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
Newbie question!
Started by ●April 8, 2007
Reply by ●April 9, 20072007-04-09
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...
Reply by ●April 9, 20072007-04-09
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...