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

[linrad] DSP Question

Hello all.

I'm starting a DSP receiver project. At this point, it's just a learning
exercise for me.

I'm feeding the 12 kHz IF from a TenTec Pegasus directly into a computer
soundcard. As near as I can tell, this is the same IF that is fed into the
ADC on the Pegasus. Basically, I'm replacing the Pegasus internal DSP with
DSP in a PC.

Using DSP software adapted from a simple example I found on the web, I've
successfully received AM and SSB signals.

I'm not a DSP professional, but I am a software (mostly business, database
stuff) professional.  I did do some higher level math back 25+ years ago in
Chemical Engineering college, but haven't used it much since.

Most of what I've learned about DSP has come from a few books and what I've
been able to find on the web.

Right now, I have a specific question that this group might be able to
address. If this question isn't appropriate, please let me know.

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

The sources I have found all mention that a filter design program should be
able to design the appropriate filters. What I'd really like to do is
calculate the filters on the fly. That way, the user can select whatever
filter they want, when they want it.  I did find one filter design program
that uses the Remez method and will give me the filters I need, but it seems
unstable when you get more than about 350 taps.

I'm using the Intel Signal Processing Library (SPL) and it has a routine
that uses the Windowing method to design a FIR filter with no phase change.
This works fine for the I signal, but there doesn't seem to be a parameter
to cause it to introduce the 90 degree shift I need for the Q channel.  Is
there an algorithm for converting introducing a 90 degree phase shift into
an FIR filter and still keep the same delay and frequency response? Or is
there a way I can shift the Q signal 90 degrees before or after the FIR

Thanks and 73,
Mark, N8ME