Technics in software defined radio (SDR)

With the rise of digital processing systems (PC, DSP, microcontrollers, FPGAs) software demodulation of radio signals is now the method of choice for best performance both in terms of sensitivity and implementation cost. However, the fact of demodulating in a purely software manner the signals causes radically different architectures of those traditionally used in analog demodulation structures (Costa loop, PLL, etc.).

Training objectives

Provide participants with an overview on the most used software radio techniques (SDR), for final implementations on microcontrollers, DSP, FPGA, or even PC. The methods will be practiced via exercises with Scilab (free equivalent of Matlab).

Duration of training

Three days

Date and place of training

Place: Toulouse (France), dates : contact us.


1 - Introduction and pre-processing

In this first part, we will first try to have an overview of the components necessary to perform a demodulation system, then we will study pre-processing techniques in order to extract requested radio channels from a 'wideband' input.

  • Introduction: Description of a typical radio channel demodulation chain and presentation of the different components required.
  • Conversion to baseband: Notion of I/Q signal. Conventional method (downconversion and suppression of the image) and Hilbert filter method.
  • DDS (realization of digital oscillators): description and advantages / disadvantages of the main techniques: LUT, CORDIC, harmonic oscillator. Implementation in a local oscillator. Implementation in a PLL.
  • Channel filtering: filter synthesis techniques with Scilab tool. Multi-rate filtering and polyphase filters. CIC filters for systems heavily over-sampled.
  • Multiple canalization: optimized canalization from polyphase filter and FFT (Harris method)

2 - Modulations / demodulations

In this section, we will first do a roundup of various classic digital modulations (waveforms), then we will discuss various techniques for baseband demodulation.

  • Presentation of classical waveforms: FSK / GFSK, BPSK, QPSK / OQPSK, QAM, OFDM
  • Formating symbols: Problematic of inter-symboles interferences (ISI), notion of matched filters, NRZ filters, gaussian filters, RC / SRRC filters.
  • Low complexity demodulation techniques: incoherent demodulation of phase / frequency modulations (polar discriminations, ...).
  • Carrier recovery techniques: initial locking (FFT), tracking techniques (PLL / second order loop), possibles detectors (based or not on symbol decision).
  • Clock recovery techniques: architecture of correction loops (PLL), timing error detectors (early late gate, Gardner, Mueller \& Muller), interpolators (cardinal splines, Farrow).
  • Automatic gain correction (AGC), impact of the location of the AGC in the demodulation chain
  • Channel / filter equalization techniques: ZFE, LMS, DFE, MLSE (Viterbi / Turbo-codes)
  • Automatic SNR estimation techniques

3 - Demodulator qualification

In this section, we will see how to qualify a demodulation chain, in a purely software manner , and taking into account the problems encountered in reality.

  • Introduction: Notions bit error rate (ber), frame error rate, normalized SNR (Eb/N0)
  • Theoretical limits under AWGN (additive white gaussian noise): BPSK, QPSK, etc. modulations
  • Dispersive channels: effects of multipath and Doppler. Rayleigh and Rice models.
  • Other important perturbations (clock noise, phase noise, doppler shift), speed of PLL locking, sensitivity to adjacent channels, blocking, etc.

4 - Error correcting codes (ECC)

The objective here is to present an overview of the most used correcting codes and their applications:

  • Polynomials codes (CRC, Reed-Salomon)
  • Convolutive codes (RSC / Viterbi, Turbo-codes)
  • LDPC codes
  • Coded modulations
We will see also how to compute the LLR (Log-Likelyhood Ratios) at the output of a demodulator so as to implement soft decoding to gain in sensibility.