DSPRelated.com
Forums

Optimal digital FSK demodulator

Started by mf January 28, 2010
Hi There,

I was wondering if someone could help to define a good choice for digital
FSK demodulation method?
I need to demodulate a coherent FSK signal where fc=135kHz and mark and
space separation is 10kHz. The detector must be able to work in a somewhat
noisy environment but operate at (near) real-time. So a good trade-off
between speed and accuracy as well as complexity since i'm only a
undergraduate student.

I have looked at:

1) zero-crossing - looks a bit simple to me and i think it won't perform
well in a noisy environment.

2) short time DFT - very computationally intense. Think I don't have that
processing power.

3) digital PLL - I actually moved from this theory to the arctan
differentiated method as the part of phase detection is very similar.

4) arctan differentiated (quadrature demodulation) - this one looks
promising.

5) autocorrelation - for what I have read this seems to be the best
method, but also seems very complex and I don't think I want that for now.
So maybe there are more "satisfying" arguments why one doesn't want this?
 
I have started work on (4), this method comes up a lot on the internet,
but no one really explains why this is a good method.

I'm not asking for anyone to do my homework, i'm just looking for some
pointers and I don't really have the time to thoroughly test al the
options.


To everybody that can help me out, thank you very much!

Regards,

mf


mf wrote:
> Hi There, > > I was wondering if someone could help to define a good choice for digital > FSK demodulation method? > I need to demodulate a coherent FSK signal where fc=135kHz and mark and > space separation is 10kHz. The detector must be able to work in a somewhat > noisy environment but operate at (near) real-time. So a good trade-off > between speed and accuracy as well as complexity since i'm only a > undergraduate student. > > I have looked at: > > 1) zero-crossing - looks a bit simple to me and i think it won't perform > well in a noisy environment. > > 2) short time DFT - very computationally intense. Think I don't have that > processing power. > > 3) digital PLL - I actually moved from this theory to the arctan > differentiated method as the part of phase detection is very similar. > > 4) arctan differentiated (quadrature demodulation) - this one looks > promising. > > 5) autocorrelation - for what I have read this seems to be the best > method, but also seems very complex and I don't think I want that for now. > So maybe there are more "satisfying" arguments why one doesn't want this? > > I have started work on (4), this method comes up a lot on the internet, > but no one really explains why this is a good method. > > I'm not asking for anyone to do my homework, i'm just looking for some > pointers and I don't really have the time to thoroughly test al the > options.
I didn't answer before because I have no particular expertise in this field. If I were attacking the problem, my early thought would be to use a pair of filters tuned (one each) to the mark and space frequencies, and compare their outputs. I'd avoid the temptation to make them too selective, because that slows down their responses. FSK is, after all, a form of FM; all the techniques developed for that are available, but since FSK is binary, simplifications will certainly be available too. You mention "(near) real time." Are your data in a file? If so, why near? Are they streaming in? If so, why not hard real time? Why ask your questions so many times? Jerry -- Engineering is the art of making what you want from things you can get. �����������������������������������������������������������������������

mf wrote:

> Hi There, > > I was wondering if someone could help to define a good choice for digital > FSK demodulation method? > I need to demodulate a coherent FSK signal where fc=135kHz and mark and > space separation is 10kHz.
> I'm not asking for anyone to do my homework, i'm just looking for some > pointers and I don't really have the time to thoroughly test al the > options.
Thank you for been honest about homework. As for FSK demodulation method, try multiplying signal with delayed version of itself. This is as simple as it gets. Vladimir Vassilevsky DSP and Mixed Signal Design Consultant http://www.abvolt.com
 > fc=135kHz
Sounds like an RFID. Do you generate the fc ?
Downconversion from fc to audio is not possible ?
What sort of CPU do intend to use ?

> The detector must be able to work in a somewhat noisy environment > 5) autocorrelation - for what I have read this seems to be the best > method, but also seems very complex and I don't think I want that for now.
Delay&Multiply isn?t optimal for radio/noise but is simple to implement. MfG JRD
> > I didn't answer before because I have no particular expertise in this > field. If I were attacking the problem, my early thought would be to use > a pair of filters tuned (one each) to the mark and space frequencies, > and compare their outputs. I'd avoid the temptation to make them too > selective, because that slows down their responses. >
this method actually enjoys an advantage, if the mark/spacing is wide compared to the baud rate, then the two filter BWs can be reduced such that the system will reject noise and interference BETWEEN the mark and space. THe PLL and other FM demod approaches do not share that advantage. Mark

Rafael Deliano wrote:


> > Delay&Multiply isn?t optimal for radio/noise but is simple to implement.
Delay Multiply is a kind of discriminator. As such, if properly implemented, its SNR performance is no different from other discriminators (atan2, dfi/dt, frequency counter, etc.) Vladimir Vassilevsky DSP and Mixed Signal Design Consultant http://www.abvolt.com

Mark wrote:

>>I didn't answer before because I have no particular expertise in this >>field. If I were attacking the problem, my early thought would be to use >>a pair of filters tuned (one each) to the mark and space frequencies, >>and compare their outputs. I'd avoid the temptation to make them too >>selective, because that slows down their responses. >> > this method actually enjoys an advantage, if the mark/spacing is wide > compared to the baud rate, then the two filter BWs can be reduced such > that the system will reject noise and interference BETWEEN the mark > and space. THe PLL and other FM demod approaches do not share that > advantage.
The PLL and other FM demod approaches do have that advantage if implemented properly. VLV
Vladimir Vassilevsky wrote:
> > > Rafael Deliano wrote: > > >> >> Delay&Multiply isn?t optimal for radio/noise but is simple to implement. > > Delay Multiply is a kind of discriminator. As such, if properly > implemented, its SNR performance is no different from other > discriminators (atan2, dfi/dt, frequency counter, etc.)
I remember delay-and multiply discriminator, but I don't have a handle on the best delay. Jerry -- Engineering is the art of making what you want from things you can get. �����������������������������������������������������������������������

Jerry Avins wrote:
> Vladimir Vassilevsky wrote: > >> >> >> Rafael Deliano wrote: >> >> >>> >>> Delay&Multiply isn?t optimal for radio/noise but is simple to implement. >> >> >> Delay Multiply is a kind of discriminator. As such, if properly >> implemented, its SNR performance is no different from other >> discriminators (atan2, dfi/dt, frequency counter, etc.) > > > I remember delay-and multiply discriminator, but I don't have a handle > on the best delay.
1/2 T = ---------------- Fmark - Fspace Vladimir Vassilevsky DSP and Mixed Signal Design Consultant http://www.abvolt.com
Vladimir Vassilevsky wrote:
> > > Jerry Avins wrote: >> Vladimir Vassilevsky wrote: >> >>> >>> >>> Rafael Deliano wrote: >>> >>> >>>> >>>> Delay&Multiply isn?t optimal for radio/noise but is simple to >>>> implement. >>> >>> >>> Delay Multiply is a kind of discriminator. As such, if properly >>> implemented, its SNR performance is no different from other >>> discriminators (atan2, dfi/dt, frequency counter, etc.) >> >> >> I remember delay-and multiply discriminator, but I don't have a handle >> on the best delay. > > 1/2 > T = ---------------- > Fmark - Fspace
Thanks. I remember demodulating NBFM that way, but I didn't recall T/deviation. Jerry -- Engineering is the art of making what you want from things you can get. �����������������������������������������������������������������������