DSPRelated.com

SDR

Category: Hardware | Also known as: Software-Defined Radio

Software-Defined Radio (SDR) is a radio communication architecture in which components traditionally implemented in dedicated analog or digital hardware -- such as mixers, filters, modulators, demodulators, and detectors -- are instead implemented in software running on a general-purpose processor, FPGA, or DSP. The RF front end typically still uses analog hardware for amplification and frequency conversion, but the bulk of the signal processing chain is moved into software.

In practice

In a typical SDR system, an analog RF front end conditions the signal, and a high-speed ADC samples a wide swath of spectrum; the resulting digitized baseband or IF data is streamed to a host processor or FPGA for demodulation, decoding, and protocol processing. Common low-cost SDR hardware used in embedded and hobbyist contexts includes RTL-SDR dongles (originally DVB-T tuners repurposed for wideband reception), the HackRF One, ADALM-PLUTO, and LimeSDR. For production systems, platforms like Analog Devices AD9361-based designs or purpose-built modules integrate the RF transceiver with an FPGA or SoC for lower latency and tighter real-time control.

On the software side, GNU Radio is widely used for prototyping signal processing chains. It provides a block-based dataflow framework that runs on Linux, Windows, or macOS, making it practical to experiment with modulation schemes, filters, and protocol stacks without writing hardware from scratch. For deeply embedded targets, DSP libraries (CMSIS-DSP on Cortex-M, or vendor-specific DSP cores) can run simplified SDR processing chains, though resource constraints limit what is feasible.

A key challenge in embedded SDR is the data throughput requirement: even a modest 2 MHz bandwidth at 8-bit resolution generates 16 Mbps of raw sample data, which can saturate USB 2.0 or SPI buses quickly. Real-time processing demands careful attention to pipeline latency, sample buffer management, and avoiding dropped samples. The blog post "SDR: Does it makes sense? Part 1/2" covers some of the practical tradeoffs involved in deciding when SDR is the right architectural choice. Similarly, "RF in Slow Motion: Sonifying a Wi-Fi 7 Packet" illustrates how SDR tools can be used to inspect and understand real-world RF signals at a deep level.

Security and regulatory considerations are also relevant: SDR hardware capable of transmitting across wide frequency ranges may require licensing compliance in many jurisdictions, and production designs must ensure the software stack cannot be trivially reconfigured to operate outside permitted bands or power levels.

Discussed on DSPRelated

Frequently asked

What is the difference between an SDR and a conventional radio receiver?
A conventional receiver uses dedicated analog and mixed-signal hardware for each stage of the receive chain (filtering, down-conversion, demodulation). An SDR moves most of those stages into software or reconfigurable hardware operating on digitized samples, though many SDRs still rely on substantial analog front-end hardware and some processing blocks may remain in dedicated FPGA or DSP logic. This makes the SDR reconfigurable -- you can change modulation, bandwidth, or protocol by updating software rather than redesigning hardware -- but at the cost of higher computational load and, in some designs, higher power consumption.
Can SDR run on a microcontroller?
Simple SDR receive functions (narrow-band AM/FM demodulation, low-symbol-rate FSK) have been demonstrated on mid-range Cortex-M4/M7 class MCUs using CMSIS-DSP and a suitable RF front end. However, most practical SDR workloads require an FPGA, DSP, or application processor. The combination of high sample rates, floating-point-heavy filtering, and real-time constraints quickly exceeds the capabilities of typical 8- or 16-bit MCUs.
What hardware is commonly used to get started with SDR?
RTL-SDR-based USB dongles (built around chips like the RTL2832U paired with tuners such as the R820T2) are the most accessible entry point, typically costing under $30 and covering roughly 24 MHz to 1.7 GHz for receive-only use. Transmit-capable platforms like the HackRF One (1 MHz to 6 GHz, half-duplex) or ADALM-PLUTO (325 MHz to 3.8 GHz, full-duplex) are common next steps. Higher-end production-grade platforms use transceivers like the AD9361 or AD9371 integrated with Xilinx or Intel FPGAs.
What software frameworks are used with SDR hardware?
GNU Radio is the dominant open-source framework, providing a graphical and Python-based environment for building signal processing flowgraphs. SoapySDR provides a hardware abstraction layer that allows GNU Radio and other tools to work across different SDR hardware. For embedded Linux targets, liquid-dsp is a lightweight C library useful when GNU Radio's overhead is prohibitive. Vendor-specific tools (e.g., Analog Devices IIO framework, Xilinx RFSoC tooling) are commonly used in production SDR designs.
What are the main pitfalls when integrating SDR into an embedded design?
The most common issues are: (1) data throughput -- high sample rates can overwhelm USB or PCIe links, DMA paths, and CPU/FPGA processing capacity if the processing chain cannot keep up; (2) clock and frequency reference quality -- SDR performance is sensitive to oscillator phase noise and frequency accuracy, so many designs use an external TCXO or GPSDO reference; (3) RF front-end dynamic range -- a low-noise amplifier and band-pass filter ahead of the ADC are often necessary to prevent strong out-of-band signals from saturating the receiver; and (4) latency -- USB-based SDR hardware typically introduces milliseconds of buffering latency, which can be problematic for time-critical protocols.

Differentiators vs similar concepts

SDR is sometimes confused with cognitive radio, which is a related but more specific concept: cognitive radio adds autonomous sensing of the RF environment and dynamic reconfiguration of operating parameters (frequency, power, modulation) to avoid interference or improve spectrum efficiency. Cognitive radios typically rely on an SDR-capable platform in practice, but most SDR implementations are not cognitive radios. SDR is also distinct from a simple DSP-based radio: a DSP radio may digitize and process a signal in software but is hardwired to a fixed frequency band and protocol, whereas SDR implies a broader reconfigurability of the signal processing chain itself.