When I presented the Simple CW Receiver few weeks ago I also mentioned and demonstrated that it is actually a double side band receiver (it's around 2:35 in the video). This is good for AM and FM, but can be very inconvenient for receiving CW and SSB (single side band). If the station we are trying to receive is surrounded by other stations on the neighbouring channels, these will interfere via the opposite side band. Therefore, it was time to look into single side band reception.
The reason for the double side band reception in the simple receiver is that the receiver uses a FIR band pass filter with real taps. Such filter takes positive values for the LOW and HIGH limits and this correspond to the upper side band (USB). However, since the signal is still complex, the response curve of this filter is "mirrored" around 0 to the negative frequency range.
Therefore, the filter passes both the upper and lower side bands.
How can I turn this into a single side band receiver?
The answer is simple: Change the FIR band pass filter to use complex taps. This will allow the LOW and HIGH parameters to have negative values and we will be able to select whether to filter the lower, upper or both side bands! I have included a few examples below. Note that the LOW and HIGH sliders got replaced with CENTER and WIDTH. They are equivalent and this way invalid states like LOW ≥ HIGH can be avoided.
A typical upper side band (USB) filter profile looks like this:
For lower side band we simply shift the center from +1.2 kHz to -1.2 kHz:
We can still use this for AM and FM reception by centring at 0 kHz and making the width wide enough:
I guess this thing with real versus complex taps is rather trivial for a DSP or SDR expert. I'm nether of those so I had to try and see. In fact, I have spent a whole day studying various methods for demodulating SSB until I realised that all I had to do was changing the filter taps from real to complex. For the same reason, having GNU Radio and the GNU Radio Companion for this kind of learn by doing experiences is absolutely priceless. I can't emphasise enough the significance of having these tools at my disposal while trying to comprehend the mysteries of software defined radios.
Now, go ahead and try it yourself! You can get my GRC files here: http://files.oz9aec.net/gnuradio/BanpassFilterDemo-2010.04.01/ . In the mean time I'll upgrade my simple receiver to single side band and test it with the USRP.