A hands-on project for exploring the core concepts of RF data processing using a Software Defined Radio (SDR). This project captures, processes, and visualizes real-time RF spectrum data to detect signals based on configurable thresholds.
This project is designed to help learners and developers understand:
- SDR configuration and data acquisition
- Signal processing fundamentals (FFT, windowing, power spectrum)
- Real-time signal detection
- Visualization of RF spectrum data
rf_sensing_project/
β
βββ rf_sensing/ # Main package
β βββ __init__.py
β βββ config.py # Configuration constants
β βββ sdr_interface.py # SDR setup and teardown
β βββ signal_processing.py # Signal processing and detection logic
β βββ visualization.py # Plotting and display logic
β
βββ main.py # Entry point for the application
βββ requirements.txt # Dependencies
βββ README.md # Project overview and usage
Key parameters for SDR and signal detection:
SDR_IP = "ip:192.168.2.1"
CENTER_FREQ = 2450e6
SAMPLE_RATE = 5e6
RX_LO = int(CENTER_FREQ)
RX_BUFFER_SIZE = 4 * 1024
GAIN_CONTROL_MODE = "slow_attack"
RX_GAIN_DB = 70
DETECTION_THRESHOLD_DB = -25pip install -r requirements.txtEnsure your ADI Pluto SDR is connected and accessible at the configured IP address.
python main.pyPress Ctrl+C to stop the application.
- A real-time plot of the RF spectrum
- Signal detection status based on a configurable threshold
- Visual feedback when a signal is detected
sdr_interface.py: Initializes and tears down the SDR connection.signal_processing.py: Applies FFT and detects signals based on power threshold.visualization.py: Displays the spectrum and detection status in real time.
- Python 3.x
- ADI Pluto SDR
- Python packages:
numpymatplotlibadi(Analog Devices' SDR interface)
- Understand how to interface with SDR hardware
- Learn basic RF signal processing techniques
- Visualize and interpret RF spectrum data
- Build a foundation for more advanced RF sensing applications