• Subject: Re: [linrad] DSP Question
• From: Alberto di Bene <dibene@xxxxxxxxxxx
• Date: Tue, 20 Apr 2004 00:24:13 +0200

```Mark Erbaugh wrote:

```
```From what I've read, one of the ways of demodulating SSB is through the use
```
```of an analytic pair, or I and Q signals.   The simple flow diagram shows the
incoming (real) data being mixed with a sin and cos signal (neat trick using
a sampling frequency of 4x so all you do is multiply by 0, 1 or -1) to
generate the I and Q signals.  Then the I signal is filtered through a BP
filter with a delay and the Q signal is filtered through a BP filter with
the same frequency response and delay, but also a 90 degree phase shift
(Hilbert).

```
Mark,
you can do without the Hilbert transform.
Multiplying a real SSB signal with a complex LO of the same frequency of the signal carrier, produces
a zero IF with the USB in the positive range of frequencies, and the LSB in the negative one, PLUS a
mirrored replica of this at twice the original carrier frequency in the negative semiaxis, if the sign of
the sin component of the LO was negative. If it was positive, the result is just a mirror of this.
Either case, if you place a (complex) bandpass filter centered at zero frequency you cut away that
unwanted response.
Now you have to demodulate SSB, choosing between USB and LSB. To do this, you compute a complex
FFT on your complex signal described by I and Q, the first half of the transform output describes the
USB component, while the second half describes the LSB.
You just take the half you are interested in, do a mirroring and a complex conjugation of it, filling the other
half with the result of this, and finally compute an inverse complex FFT.
The (real) result is the demodulated audio. Naturally, while you are at this, it is a breeze to apply a bandpass
filtering, using the windowed sync approach, while you are in the frequency domain. This allows to change
the bandpass limits in real time, perhaps under user control with the mouse.