FFT SSB Modulation and Demodulation - How it works
SSB FFT Modulation and Demodulation
Some time ago I built a Software Defined Radio (SDR) program based on Labview. One motivation in the project was to move all DSP processing for SSB modulation and demodulation into the frequency domain and avoid any processing in the time domain as it is usually done in all current SDR programs. Benefits are a highly efficient signal processing. The project proved in theory and practice that this is indeed possible. The method could be called ‘SSB FFT Modulation/Demodulation’. The following article shows how it works without digging into Complex Mathematics too much.
The DSP method used relies on the analogy of time and frequency domains in linear systems. By definition all equivalent linear operations should lead to the same result if applied properly to signals in frequency or time domain. One example is the multiplication of signals with a filter’s transfer function compared to a convolution of a filter’s impulse response with that signal.
To better understand the background of SDR picture 1 shows a typical HW/SW receiver combination for HAM radio equipment.
Picture 1: I/Q Receiver used in HAM radio
An antenna signal is band pass filtered in HW and mixed with a local oscillator signal (LO). Taking a second LO signal with same frequency and exactly 90 degrees phase shift delivers the well known I & Q signals. They are passed to a soundcard in order to have a sampled signal available in the time domain to be processed by the SW application. DSP takes place and the result is made analogue again, to be send to the speakers as an audio signal.
Now let’s focus on DSP processing inside the application.
The traditional way for one single frequency to do demodulation is to use a Hilbert-Transform in one path, either I or Q and than add or subtract the signals to achieve the demodulated audio signals.
However, this does not yield the full opportunity to select a target signal out of a spectrum as it is available based on the sampling rate of the soundcard. Therefore some SDR programs do a band pass filtering to isolate the target signal, shift it down to IF or baseband and than again use the described Hilbert-Method to demodulate.
The right lower block of picture 1 shows the method used here to do everything in the frequency domain.
Please keep in mind that this is a simplified DSP block picture. In real life the signals are processed by block and therefore some methods like overlap/add are to be used. My article on ‘SDR with Labview’ gives an overview about the remaining DSP functions. Also all processing is based on Complex Number mathematics.
The digitized I & Q signals will be transformed into the frequency domain with a Fast Fourier Transform (FFT, Complex FFT). The result is the usual frequency spectrum known from many SDR programs. The width of the spectrum is defined by the sampling frequency of the soundcard.
To select a target signal from that spectrum an impulse response of a band pass filter is transformed into the frequency domain. The resulting transfer function of the band pass filter is shifted towards the target signal and multiplied with the whole I & Q signal spectrum. What is left is the resulting target signal (a smaller spectrum). This DSP is know as FFT convolution. Next step is a shift of this target signal spectrum toward baseband (multiple of FFT bins).
Normally an inverse FFT (iFFT, Complex iFFT) is used to go back to time domain and demodulate with the described Hilbert-Method.
But there is a way to avoid the time domain processing, at least for SSB modulation.
If only a part of the band pass transfer function is used, combined with a defined shift after multiplication of that function with the spectrum there is an opportunity to just use the Real part of the Complex iFFT and get directly the demodulated signal.
Some people would say that there is no constructive additive overlap of all signals like in the Hilbert-Method, but the level only loss can easily be retuned. As a benefit the whole DSP is highly efficient and takes place only in the frequency domain.
The following picture 2 shows why this method is successful, using pictures for the spectral parts processing in Real and Imaginary paths.
Picture 2: SSB FFT Demodulation
Let’s start with a band pass filtered spectrum from the antenna, which is a spectrum with multiple target signals with different modulation types around the LO frequency. To follow swaps and mirroring 2 cosine signals are reflected as arrows. This is the same spectrum that is viewable in SDR programs.
Mixing it with the cosine and sine wave of the LO (90 degrees phase shift) leads to the analogue spectrums shown in step 2. The upper path shows the I signal, the lower one the Q signal. There are also mixing products on higher frequencies, but they are not shown as the anti-aliasing filters of the soundcard will cut them off sharply.
To understand why the resulting spectra look like this will go beyond this article. At the end Complex Mathematics will prove it. Some sources to better understand this are mentioned in my article ‘SDR with Labview’.
However, most Ham radio operators know that mixing a signal will result in a frequency shifted signal overlaid with a potential signal from the ‘image frequency’. That’s exactly what is reflected in the pictures of step 2, leaving negative frequencies aside. Remember that the superposition of the 2 separate half level spectra shows the signal. If the absolute is build as it is done in normal receivers, the result for positive frequencies is the same for the I and the Q path. Follow the black arrows! It should be the same as in real life the I & Q mixer is just 2 separate direct conversion receivers, with a phase shifted LO signal.
For simplicity, other effects of soundcard digitization are not covered here
The now digitized I and Q signals are feet into a Complex FFT between step 2 and step 3. Step 3 shows the results of the FFT and the little picture on the very left side shows the superposition of the spectra done by the FFT. The FFT calculates RE + jIM, here I + jQ. Multiplication with j means phase shifting 90 degrees of the signal. The Imaginary part becomes (negative) Real.
The result is a baseband shifted antenna spectrum without any other mixing products. That’s why it is so easy for SDR programs to show the ‘antenna spectrum’ correctly. What about the Imaginary part? Here it is zero as the assumption was that there is only a special antenna spectrum, with all signals in phase. In real life the antenna spectrum will consist of signals of any phase. Visually this means a kind of cylinder around the frequency axis in step 1 if taken a Complex view. But as long as all DSP is done on I and Q in parallel, it will work. Let’s stay with the simple example.
Between step 3 and 4 the band pass filtering (FFT convolution) with a following shift towards baseband takes place. Technically this is a filter with linear phase and a zero or one transfer function; it will not change the signals. No real need to talk about specialities like Windowing and Bin-Shift here.
Also this filtering is a partial filtering as the transfer function is limited to positive or negative parts, depending on which demodulation to take place (Upper Side Band (USB) or Lower Side Band (LSB), one at a time). However step 4 shows both scenarios.
That means that the result is a negative frequency spectrum for LSB and a positive frequency spectrum for USB, perfect in correct position.
But it is not a real signal; it is analytic as it is not composed of negative and positive spectra.
Between step 4 and step 5 the iFFT takes place. Now each part from the Imaginary and Real input to the iFFT delivers an Imaginary and Real output in the time domain. As there is only a signal above or below frequency 0, there is no disturbing superposition. Step 5 shows the LSB scenario only.
The iFFT adds the missing part of a real frequency spectrum. The Real part of this operation is directly the audio signal in the time domain. The ‘preparation’ of the iFFT input together with taking advantage of the iFFT behaviour is the trick to do FFT demodulation without any time domain operation. To understand iFFT operation in detail ‘www.dspguide.com’ is a good source.
The question arrives if this tricky DSP operation will work for the TX path as well. As expected it does!
Picture 3 and picture 4 show the corresponding transmitter path. It is very much along the discussion on the receiver path.
Picture 3: I/Q Transmitter used in HAM radio
Picture 4: SSB FFT Modulation
Let’s start with a signal from a microphone as outlined in step 1. As it is a real signal it has positive and negative frequency components.
After digitization by the soundcard, it is feet to a FFT between step 1 and step 2. The FFT delivers the expected spectrum in step 2.
Again, it is a special case here for simplification as the microphone signal does only consist of in phase cosine waves.
Now the partial band pass filter is used to make the signal analytic, cutting of either the negative or the positive frequency parts of the spectrum, in right order for LSB or USB. Picture 4 shows only the LSB scenario; USB is equivalent, one at a time.
As the transmit frequency should be exactly the same as the receive frequency, step 3 shows the result of the band pass filtering along with a shift in frequency (bin shift).
Between step 3 and 4 an iFFT takes place, resulting in 4 different signal components for superposition in the Real and Imaginary part of the iFFT output.
It is no accident that there is just a sign chance for the negative frequencies in the Imaginary part of the output of the iFFT shown in step 4. If you are in doubt about that, take the formulas! This behaviour is the same as a Hilbert-Transform.
Maybe some Math-Gurus can prove that an iFFT feet with an analytic signal behaves like a Hilbert-Transform?
Between step 4 and step 5 the signal, now in the time domain, becomes analogue by the soundcard and is feet into the I Q exciter of the HW.
Analogue mixing takes place with the phase shifted LO signals which results in the spectra shown in step 5. There are image frequencies but they will be eliminated in the following superposition before transmitting the signal on air.
A lot of learning and thinking took place to arrive at the DSP methods described above. However at the end it turned out to be a lot of fun to do so. This is especially true for the combination of theory and practice. Labview offers some great opportunities to prove DSP methods directly in a real-time Ham radio environment. DSP has so much power for Ham radio and the surface has just been scratched!
Special thanks to Gerrit (DL9GFA) who went through the DSP techniques above and did not found any big mistakes.
For references and further readings take a look at ‘www.dg5mk.de’.