DSPRelated.com
Forums

Newbie question!

Started by Jonas Hallgren April 8, 2007
Hello!

I am interested in FFT and sampling and have just started a project at
home, which involves programming and dsp/signal theory/sampling.

My setup is a shortwave radio and I want to decode some simple 50 baud
FSK signals in an application that I am currently building. So far I
have successfully sampled an audio signal, so I have raw sample data
from my sound card, in chunks of for example 1024 samples. I also have
made use of a forceful mathematics library and now my application
sports a realtime FFT spectrogram of the audio input, sampled in 8000,
11025 or 22050 Hz. I can also change number of FFT pins in order to
raise or lower the spectrum resolution.

But now to my question!

I wonder if anyone could describe to me how I go from a sampled audio
buffer to for example showing an eye diagram., or how to show the
instantaneous frequency plotted continously, clearly showing the
levels. In general terms.

When I've done this I aim at do the same for PM signals and showing a
QAM plot in real time. It's great fun but right now I'm a bit stumped
on how to go from sampled audio to FSK levels and then to eye diagram
and then bits =)

Regards,
Jonas Hallgren
Sweden

Jonas Hallgren wrote:

> It's great fun but right now I'm a bit stumped > on how to go from sampled audio to FSK levels and then to eye diagram > and then bits =)
I'm a newbie too, but I've accomplished what you describe. :0) For classical 2-tone BFSK-signals ( RTTY,Sitor-B, ARQ-E, ARQ-E3, etc..) the basic steps are as follows: 1. The raw sound samples are fed through 2 filters ( IIR, FIR ), one for the mark frequency, one for the space frequency. I am currently using 125 Hz wide FIR filters. 2. The filter outputs are then fed through envelope detectors to get rid of the audio frequency component. I used a simple low pass filter. 3. The detector outputs then go to a decision (comparator) circuit, the output of which will be 1/0 value according to the received signal. 4. For synchronous signals, the comparator output is sent to a PLL-circuit which samples the signal at the bit center ( the PLL obviously needs to know the baud rate) . I've used a simple edge-detector + counter + a heavy low pass filter to minimize the effect of noise spikes. For asynchronous RTTY signals, the comparator output is sent to a classical start/stop detector: wait for a 1>0 transition, check for startbit=0 1/2 bittime later, sample N bits, check stop bit, etc... 5. For synchronous signals, the next step is to get into frame sync, and to decode the signal depending on the code/alphabet used. Example: <http://users.pandora.be/dirk.claessens2/DSP/scrshot.JPG> BTW: I could not have accomplished all the above without the *lot* of help & tips I got in this group...
Thank you very much!

I will try to implement a filter first then :)

Regards,
Jonas

On 9 Apr, 12:09, DSP-Newbie <N...@way.invalid> wrote:
> Jonas Hallgren wrote: > > It's great fun but right now I'm a bit stumped > > on how to go from sampled audio to FSK levels and then to eye diagram > > and then bits =) > > I'm a newbie too, but I've accomplished what you describe. :0) > > For classical 2-tone BFSK-signals ( RTTY,Sitor-B, ARQ-E, ARQ-E3, etc..) > the basic steps are as follows: > > 1. The raw sound samples are fed through 2 filters ( IIR, FIR ), one > for the mark frequency, one for the space frequency. I am currently > using 125 Hz wide FIR filters. > > 2. The filter outputs are then fed through envelope detectors to get > rid of the audio frequency component. I used a simple low pass filter. > > 3. The detector outputs then go to a decision (comparator) circuit, the > output of which will be 1/0 value according to the received signal. > > 4. For synchronous signals, the comparator output is sent to a > PLL-circuit which samples the signal at the bit center ( the PLL > obviously needs to know the baud rate) . I've used a simple > edge-detector + counter + a heavy low pass filter to minimize the > effect of noise spikes. > For asynchronous RTTY signals, the comparator output is sent to a > classical start/stop detector: wait for a 1>0 transition, check for > startbit=0 1/2 bittime later, sample N bits, check stop bit, etc... > > 5. For synchronous signals, the next step is to get into frame sync, > and to decode the signal depending on the code/alphabet used. > > Example: > <http://users.pandora.be/dirk.claessens2/DSP/scrshot.JPG> > > BTW: I could not have accomplished all the above without the *lot* of > help & tips I got in this group...