[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [linrad] DSP Question


Thanks for the reply. I've taken some time and tried to understand what you
are saying.

>    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.

I've begun to picture the complex LO as a phasor that rotates. To my
understanding,  it will be positive during half of it's rotation and
negative during the other half. Does that mean that this replica will change
as the phasor rotates, or are you referring to the direction in which the
phasor rotates?

> Either case, if you place a (complex) bandpass filter centered at zero
> frequency you cut away that
> unwanted response.

Do I need to do this bandpass filtering before I do the complex FFT below,
or can I use filtering in the frequency domain? If I do filter it here,
should I decimate the sample to a lower sampling rate before doing the FFT?

> 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.

I think I understand what you are saying, but let me make sure.  A graph
would be helpful, but I'll try and explain my understanding in words.

Lets say that I do a 1024 point complex FFT and the (complex) bins are
numbered from 0 to 1023.  The contents of bins 0 to 511 represent the USB
signal and bins from 1023 to 512 represent the LSB.

To receive USB, I replace bin 1023 with the complex conjugate of bin 0, bin
1022 with the CC of bin 1, 1021 with CC of bin 2 and so forth.

To receive LSB, I replace bin 0 with the CC of bin 1023, 1 with the CC of
bin 1022, etc.

> 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
> BTW, this is how SDRadio works.  http://www.sdradio.org

Thanks for the info on your SDRadio.  I downloaded the program and it looks
pretty impressive. Is the source code of at least the demodulation
available? A lot of time, I can understand an algorithm better if it's
expressed in code, even if it's not in a language that I use.

> 73  Alberto  I2PHD

> P.S. An excellent book on this stuff is "Digital Signal Processing in
> Communication Systems",
> by Marvin E. Frerking, ISBN 0-442-01616-6

Thanks for the pointer on the Frerking book.

Thanks again and 73,