What is Software Defined Radio?
Traditional radios use fixed hardware circuits — crystal filters, analog mixers, dedicated demodulators — that lock you into specific frequencies and modulation types. Change the band or protocol, and you need different hardware.
Software Defined Radio flips this by moving nearly all signal processing into software running on a general-purpose computer. An antenna feeds an RF frontend that selects a slice of spectrum. An analog-to-digital converter (ADC) digitizes the signal into IQ samples — complex number pairs encoding amplitude and phase. From there, everything happens in code: filtering, demodulation, decoding, display.
This means a single $30 USB dongle can receive FM radio, decode aircraft transponders, pull satellite images from orbit, monitor amateur radio, and sniff ISM-band IoT devices — all by changing software.
Antenna → RF Frontend (tuner + LNA) → ADC (digitize to IQ) → USB → Computer → Software (filter → demodulate → decode → display)
Choose Your Device
The SDR hardware market spans three tiers: receive-only dongles ($22–$200), half-duplex transceivers ($300–$400), and full-duplex platforms ($150–$400). Filter by what you need:
- Freq Range
- 500 kHz – 1.77 GHz
- Bandwidth
- 2.4 MHz
- ADC
- 8-bit (RTL2832U)
- Tuner
- R828D
- Interface
- USB 2.0 (SMA)
- Key Feature
- Built-in HF upconverter
- Freq Range
- 24 – 1700 MHz
- Bandwidth
- 6 MHz
- ADC
- 12-bit
- Effective Bits
- 10.4 ENOB
- Interface
- USB 2.0 (SMA)
- Key Feature
- 70 dB dynamic range
- Freq Range
- 24 – 1700 MHz
- Bandwidth
- 10 MHz
- ADC
- 12-bit
- Oversampling
- Up to 16-bit eff.
- Interface
- USB 2.0 (SMA)
- Key Feature
- Ext clock for arrays
- Freq Range
- 325 MHz – 3.8 GHz*
- Bandwidth
- 20 MHz
- ADC
- 12-bit (AD9363)
- FPGA
- Xilinx Zynq
- Interface
- USB 2.0 OTG
- Key Feature
- *Hackable to 70 MHz–6 GHz
- Freq Range
- 1 MHz – 6 GHz
- Bandwidth
- 20 MHz
- ADC
- 8-bit
- Duplex
- Half (not simultaneous)
- Interface
- USB 2.0 (SMA)
- Key Feature
- Widest freq range
- Freq Range
- 10 MHz – 3.5 GHz
- Bandwidth
- 40 MHz
- ADC
- 12-bit
- FPGA
- Lattice ECP5
- Interface
- USB 3.0
- Key Feature
- srsRAN LTE compatible
- Freq Range
- 24 – 1766 MHz
- Bandwidth
- 2.56 MHz × 5
- ADC
- 8-bit × 5 synced
- Channels
- 5 coherent
- Interface
- USB-C
- Key Feature
- Direction finding (MUSIC)
Chinese clones flooding AliExpress ($50–$100) use inferior components with no support. Buy genuine from Great Scott Gadgets, Hak5, SparkFun, or Nooelec.
Antenna Selection
The antenna matters as much as the SDR. A discone (25 MHz – 1.3 GHz, omnidirectional) is the best general-purpose choice. For weather satellites, a V-dipole (two 53 cm elements at 120°) or QFH helical works well. For maximum gain on a specific band, nothing beats a Yagi. For HF, a long wire with a 9:1 balun is the practical solution.
Key rule: Always mount the antenna outdoors, place an LNA at the antenna feedpoint (not at the computer), and use low-loss coax (LMR-400 for runs over 3m).
Software That Turns Your PC Into a Radio
The current top recommendation for newcomers and experienced users alike. SDR++ uses an ImGui-based interface with buttery-smooth waterfall rendering. Supports RTL-SDR, Airspy, HackRF, PlutoSDR, LimeSDR, and anything via SoapySDR. Built-in AM/FM/SSB/CW decoders. The Community Edition fork (SDR++CE) adds ADS-B, AIS, APRS, POCSAG, frequency scanning, and MPX analysis.
Platforms: Windows, Linux, macOS, Android | License: GPLv3
The most popular Windows-only SDR application with the deepest plugin ecosystem — frequency scanner, RDS decoder, digital noise reduction, MPX output, trunking support. Native SPY Server support streams SDR data over the network. Version 1.0.0.1732+ is current. A 214-page community guide documents every feature and plugin.
Platforms: Windows only | License: Freeware
Lightweight, open-source, built on GNU Radio's DSP engine with a clean Qt interface. Version 2.17.7 (May 2025) added experimental Windows support. Excellent Hamlib-compatible remote control for automated scanning. Best choice for Linux desktops and Raspberry Pi.
Platforms: Linux, macOS, Windows (experimental) | License: GPLv3
Not a receiver app — it's a full signal processing development environment. The visual flowgraph editor (GNU Radio Companion) wires together 400+ processing blocks to build custom radio systems. Version 3.10.12.0 (Feb 2025) is current. GNU Radio 4.0, a complete C++23 rewrite, is in development but not production-ready. Install via radioconda for the smoothest cross-platform experience.
Platforms: Linux, macOS, Windows | License: GPLv3
The unified tool for all weather satellite work — replaces the old multi-tool chain of SDR# → VBCable → WXtoImg → LRPT decoders. Handles SDR control, Doppler correction, demodulation, decoding, image compositing, and map overlays for 90+ satellites in a single application. Essential for Meteor M2 LRPT and GOES HRIT.
Platforms: Windows, Linux, macOS, Android | License: GPLv3
Universal Radio Hacker (URH) — IoT protocol reverse engineering: record → analyze → replay with automatic modulation detection and protocol fuzzing.
SigDigger — Deep signal analysis with independent DSP stack (not GNU Radio). Inspector-based analysis for serious signal characterization.
rtl_433 — Decodes 260+ ISM-band device protocols (weather stations, TPMS, doorbells, utility meters). Native MQTT output for Home Assistant integration.
First-Time Setup
Buy an RTL-SDR Blog V4 with dipole antenna kit (~$40). Then follow the setup for your OS:
Linux Setup
# Install drivers and blacklist DVB-T kernel module sudo apt install rtl-sdr echo 'blacklist dvb_usb_rtl28xxu' | sudo tee /etc/modprobe.d/blacklist-rtlsdr.conf sudo modprobe -r dvb_usb_rtl28xxu # For V4: build RTL-SDR Blog fork from source git clone https://github.com/rtlsdrblog/rtl-sdr-blog cd rtl-sdr-blog && mkdir build && cd build cmake .. -DINSTALL_UDEV_RULES=ON make && sudo make install && sudo ldconfig # Verify hardware detected rtl_test -t # First reception — FM broadcast rtl_fm -M wbfm -f 101.1M -s 200000 -r 48000 - | \ aplay -r 48000 -f S16_LE -t raw -c 1
Windows Setup
1. Download Zadig (zadig.akeo.ie). 2. Plug in RTL-SDR, select "Bulk-In, Interface 0", verify USB ID 0BDA 2838. 3. Click "Replace Driver" to install WinUSB. 4. Download SDR++ or SDR# with RTL-SDR Blog drivers. 5. Launch, select RTL-SDR source, tune to a local FM station at 88–108 MHz in WFM mode.
FM broadcast (88–108 MHz, WFM mode) → Aircraft voice (118–137 MHz, AM) → NOAA Weather Radio (162.4–162.55 MHz, NFM) → 433 MHz ISM band bursts (watch the waterfall for short blips from wireless sensors)
Interactive Frequency Band Explorer
Click any band to see what lives there. The entire range below is receivable with an RTL-SDR V4.
The electromagnetic spectrum is divided into bands, each carrying different services. SDR lets you explore all of them with a single device.
Projects: From Beginner to Astrophysicist
ADS-B Aircraft Tracking
Track every aircraft overhead in real-time. Build a quarter-wave ground plane antenna, run readsb + tar1090, and feed FlightAware/Flightradar24 for a free premium subscription. Expect 100–250+ NM range.
Weather Satellite Imagery
NOAA POES satellites were decommissioned in 2025. Meteor M2-3/M2-4 now provide 1 km/pixel color LRPT imagery. Use SatDump for automated decode. V-dipole or QFH antenna recommended.
FM/AM Broadcast Reception
The "hello world" of SDR. V4's built-in upconverter enables clean AM broadcast. Narrowband FM for ham repeaters on 2m (144 MHz) and 70cm (420 MHz) bands.
AIS Ship Tracking
Monitor both AIS channels simultaneously. AIS-catcher provides a built-in web map and feeds MarineTraffic. A VHF whip antenna at rooftop height yields 20–40 NM range.
POCSAG Pager Decoding
Pagers broadcast at high power — even the stock antenna works. See hospital dispatches, IT alerts, and emergency messages. Pipe rtl_fm to multimon-ng.
ISM Band IoT Decoding
rtl_433 decodes 260+ device protocols — weather stations, tire pressure sensors, doorbells, utility meters. Native MQTT output for Home Assistant.
Trunked Radio Monitoring
Monitor public safety communications on P25 Phase 1/2, DMR, and NXDN. Look up control channels on RadioReference.com. Many agencies now encrypting.
Hydrogen Line Radio Astronomy
Detect neutral hydrogen in the Milky Way. Use a parabolic dish + SAWbird+ H1 LNA. Measure Doppler shifts to map galactic spiral arm rotation — real astrophysics for under $200.
FT8 / WSPR Weak Signal
Decode amateur stations 20+ dB below the noise floor worldwide. RTL-SDR V4 → VB-Cable → WSJT-X decodes hundreds of stations/hour. No TX license needed for receive.
ISS SSTV Reception
During ARISS events (4–6x/year), the ISS transmits color images via Slow Scan TV. Use any FM receiver + Robot36 app on Android. Images build line-by-line over 2 minutes.
GPS Reception with GNSS-SDR
Software-defined GPS receiver: acquire satellites, track L1 C/A code, compute position fix. Computationally intensive — run volk_profile for SIMD optimization. PlutoSDR preferred over RTL-SDR.
Passive Radar
Detect aircraft using existing TV broadcast signals. Requires coherent dual-channel SDR (KrakenSDR). Cross-correlate reference and surveillance channels for bistatic range-Doppler plots. Aircraft detection at 8+ km demonstrated.
DSP: The Math That Makes It Work
IQ Sampling — Interactive Demo
SDRs output complex IQ samples — pairs of numbers (I + jQ) that encode both amplitude and phase. Drag the sliders to see how frequency and amplitude map to the IQ plane and time-domain waveform.
Key DSP Concepts
The Fast Fourier Transform converts time-domain IQ samples into a frequency spectrum. Resolution = Sample Rate / FFT Size. A 2.4 MSPS stream with 4096-point FFT gives 585 Hz per bin. Window functions (Hann, Blackman-Harris) control spectral leakage — the Blackman-Harris window provides -92 dB sidelobe suppression for weak signal work near strong emitters.
Decimation by factor M keeps every M-th sample after lowpass filtering, reducing data rate and CPU load. Each doubling of decimation provides ~3 dB SNR improvement because noise power is proportional to bandwidth. An RTL-SDR capturing 2.4 MHz can be decimated by 48× to isolate a 50 kHz FM channel.
AM: Compute magnitude √(I² + Q²). FM: Compute angle between consecutive IQ samples — angle(x[n]·conj(x[n-1])). SSB: Frequency-shift and bandpass filter. Digital (PSK/QAM): Carrier recovery (Costas loop) → timing recovery → symbol decision. All happen purely in software on the same IQ stream.
Thermal noise floor: -174 dBm/Hz at room temp. Total noise = -174 + 10·log₁₀(BW) + NF. An RTL-SDR at 2.4 MHz with 5 dB noise figure: -174 + 63.8 + 5 ≈ -105 dBm. Dynamic range ≈ 6.02 dB/bit: 8-bit → ~50 dB, 12-bit → ~74 dB. This is why Airspy handles urban environments far better than RTL-SDR.
Legal Framework
In the US, no license is needed for receive-only SDR. The FCC does not restrict passive reception under 47 CFR § 15.101. The critical exception: the ECPA (18 U.S.C. § 2510) prohibits intercepting cellular phone frequencies — penalties reach $500,000 and 5 years imprisonment. Encrypted communications must not be decrypted.
Amateur Radio License — Technician ($15 exam + $35 FCC fee): all VHF/UHF + limited HF. Study at hamstudy.org. ISM Bands — Unlicensed low-power at 433 MHz, 902–928 MHz, 2.4/5.8 GHz under Part 15. Part 15 FM — Ultra-low-power FM transmitter legal without license (250 µV/m at 3m, ~200 ft range). Jamming — Absolutely prohibited in all cases. Penalties include equipment seizure, fines, and criminal prosecution.
Where to Go From Here
PySDR
Complete online DSP textbook with Python examples. Covers IQ sampling through OFDM. Best structured learning resource.
RTL-SDR.com Blog
Daily SDR news, hardware reviews, project tutorials. The de facto community hub since 2013.
SDR with HackRF
11 free CC-BY video lessons by Michael Ossmann covering DSP fundamentals through replay attacks.
SigIDWiki
568+ identified radio signals with waterfall images and audio. Invaluable for identifying unknown signals.
r/RTLSDR
Active Reddit community for SDR discussion, project sharing, troubleshooting, and hardware reviews.
GNU Radio Wiki
Official tutorials, block documentation, and guides for GNU Radio flowgraph development.