A Digital AM FM SSB

Demodulator


Introduction

The demodulator is the last stage of any radio receiver, it has as input the last F.I and as output the demodulated audio signal. This function is generally done in the analog domain. Depending of the signal to demodulate, different technics are used :

In this page, I will describe the internals of demod.cld, a program I wrote for the DSP56002EVM board, that demodulates AM, FM and SSB in the digital domain.
The DSP56002EVM is a Motorola evaluation board, that include a 56002 DSP, 64K words of memory and a stereo codec that could sample at up to 48KHz.
This board was popular among the radio amateur enthusiams.
I do this design to put it in a old FRG-7 receiver but it could an add-on for any other receiver.

Description

The following figure shows the signal path in this demodulator :
digital demodulator

Analog front-end

As the EVM56K codec is only able to sample data up to 48Khz, and because last receiver F.I are in general higher (445Khz or 10.7Mhz are usual values), we need some analog front end to downmix the F.I.
In fact this front-end have a double task :

This is done by a pair of mixer, feed by a quadrature oscillator at the F.I.
A quadrature oscillator have 2 outputs with a 90 degrees phase shift between the two.The result of the mix is a complex signal in the audio range that could be sampled by EVM56K stereo codec.

Man could implement this front end with any mixer and oscillator suitable for the given F.I.
My implementation for the 455KHz F.I of my FRG-7 is highly inspired from the Philips application note : AN1980.
It uses HEF4066 as mixer, HEF4013 and 74LS04 as quadrature oscillator and a OP249 as Opamp:

analog front end

Digital processing

Most of the works is done in the digital domain, by the demod.cld program after the analog to digital conversion (ADC).
The I and Q signals, coming from the ADCs at a 9.6Khz sampling rate, are filtered by FIR filters and send to the demodulation function.
Filters and function depend of the selected mode (AM , FM , USB or LSB).
The resulting audio signal goes to a FIR bandpass audio filter and outputted to the codec DAC for digital to analog conversion and audio amplification.

AM/FM demodulation

The AM and FM demodulation is based on the CORDIC algorithm. This algo compute the phase and magnitude of a I/Q signal.
For AM and FM the I/Q filters are just low pass filters to select only the usefull input bandpass (2 x 6Khz).

SSB demodulation

The SSB demodulation is based on the phasing technique :

Then I and shifted Q are added or substracted together depending of SSB mode (USB or LSB).
The great advantage of digital over analog for this technique is the ability to build a quasi perfect digital Hilbert filter when it's very difficult in analog domain.

For a description of the background theory needed to understand how all that could work, see the very good DSP tutorial by KF6DX publied in QEX Mar/Apr 1998.

Download

The sources are here : lcedemod01.zip

Future extensions

Spectrum display

I have bought a graphical LCD display to connect it to the EVM board, in order to display the spectrum of the input signal in real-time. This will need to compute a sliding window FFT and display the result in real time.

Digital modes

demod.cld has already near all is needed to decode some digital mode, in particular FSK modes like RTTY.
It could display the result on the small LCD or output the result to the EVM serial interface for external display.


Copyrights © Thierry Leconte 2001