PDA

View Full Version : PC FSK decoding - stuck beginner!


mcd
04-01-2005, 01:55 PM
Hi,
I'm urgently trying to get my head around methods for decoding an FS
encoded signal on my PC.
I have a .wav file of the transmitted data, and I want to get the dat
out.
I'm doing my work in Matlab/Simulink for now for simplicity.
So far I've tried:
- Goertzel algorithm as used for dtmf
- mag˛ of fft and peak detect
I've struggled with both of these techinques. With a 22kHz .wav source
don't have enough samples/bit for Goertzel and seemingly for the df
technique either. I have the mag˛ working at 50 baud but not at 10
(reqd).

So, I went back to the drawing board and searched again, this time on fs
decoding. I came up with:
- Matched filters and Cauchy-Schwarz inequality
- Soft PLL

Is there a standard way of decoding FSK please? If so can anybody offe
any tips on what it is/how to do it, a dummys guide as it were. I lik
the idea of the matched filter but I'm completely stuck when it comes t
implementing the Caucht-Schwarz inequality.

Any help would be very much appreciated...

Thanks,

Martin




This message was sent using the Comp.DSP web interface o
www.DSPRelated.com

purplenoise
05-10-2005, 06:18 PM
Hi,

Although I am not familiar with the techniques you are attempting to use
you should take a step back and remember how FSK used to be implemented i
the first place: in very simple hardware. For this reason, FSK signals use
for saving data of old computers (C64) or music equipment (olde
sequencers) are usually frequency varying square waves: they are th
direct output of a clock going thru a sequential circuit of some sort.

Detection could be circuits that will retrigger a clock (astabl
multivibrator for instance) on each zero crossing or upwards zer
crossing. This would provide a time reference. The multivibrator shoul
frewheel at the average measured frequency thus far in the absence of
pulse (this is much easier in software than in hardware) And othe
circuits that detect the prescence of zero crossings within specifie
timeframes marked by the multivibrator. This makes me think that th
easiest way to implement FSK decoding would be to go with the "naiive
approach instead and just write a state machine program that reads eac
sample and emulates the hardware counterparts instead of a pure DS
approach.

Good luck!

-Aurelio


>Hi,
>I'm urgently trying to get my head around methods for decoding an FSK
>encoded signal on my PC.
>I have a .wav file of the transmitted data, and I want to get the data
>out.
>I'm doing my work in Matlab/Simulink for now for simplicity.
>So far I've tried:
>- Goertzel algorithm as used for dtmf
>- mag˛ of fft and peak detect
>I've struggled with both of these techinques. With a 22kHz .wav source I
>don't have enough samples/bit for Goertzel and seemingly for the dft
>technique either. I have the mag˛ working at 50 baud but not at 100
>(reqd).
>
>So, I went back to the drawing board and searched again, this time o
fsk
>decoding. I came up with:
>- Matched filters and Cauchy-Schwarz inequality
>- Soft PLL
>
>Is there a standard way of decoding FSK please? If so can anybody offer
>any tips on what it is/how to do it, a dummys guide as it were. I like
>the idea of the matched filter but I'm completely stuck when it comes to
>implementing the Caucht-Schwarz inequality.
>
>Any help would be very much appreciated...
>
>Thanks,
>
>Martin
>
>
>
>
>This message was sent using the Comp.DSP web interface on
>www.DSPRelated.com
>





This message was sent using the Comp.DSP web interface o
www.DSPRelated.com

Mark
05-10-2005, 09:03 PM
depends on how much noise there is on the signal and how close to ideal
you want the decoder to work...

If the signal is noisy and the freq dev between mark and space is large
compared to the baud rate, I understand the two filter method, one for
mark and one for space is close to ideal because it tends to ignore the
noise energy in the gap between the mark and space.

Mark (not space)