FSK demodulation and SNR measurements
Started by 8 years ago●4 replies●latest reply 8 years ago●1158 viewsHi all,
First of all i am not a DSP guy, so forgive in advance for any mistake i may made describing my scenario. Currently i have implemented an FSK modulator/ demodulator where a chirp signal is transmitted and after the chirp a pause time is transmitted. The two tones corresponding to each bit are transmitted after the pause time. At the receiver part in a double circular buffer i try to find the peak of chirp correlation for signal detection and knowing the pause time i can know the starting of my message where i demodulate the bits with two matching filters.
My question are related to two problems:
1. Can you guys suggest maybe another efficient method or improvment for packet detection as for the currently one needs to know the chirp threshold. If instead i use bit sequences how can be efficiently implemented in the receiver as i don't know where the bits of message starts.
2. How can the SNR of such received signal can be measured, and if somehow the pause time can be exploited for correct calucation.
I am working on acoustic, 25 kHz of fc with 5 kHz of band.
Thank you very much,
PS: I am not asking to solve my homeworks but any suggestion will be very appreciable :)
The initial waveform used to get synchronization is known as a "preamble", and right now you're using a chirp. One nice property of a chirp is that it has a good autocorrelation sequence which provides good detection of a time instant, and that's what you're using it for. Really any waveform with a good autocorrelation sequence can do this, and if you use a chunk of modulated fsk signal that has a good autocorrelation sequence, that could probably be made to work, too, and may have some additional benefits as well.
Usually the initial part of a preamble detection is done the same way you described; using a cross-correlation of the expected waveform with the received signal. So from that standpoint it sounds like you're doing basically the right thing, but often efficiency can be improved with careful selection of the preamble sequence and the oversampling rate.
I'm not quite sure what you're asking about the SNR, but sometimes it is possible to get a rough initial SNR from the peak-to-mean ratio of the output of the cross-correlation, especially if it is oversampled.
Thank you very much for your prompt response.
What does the "oversampled" means and how can be archived. If using fsk autocorrelation for detection I think it will be more computational expensive as i need to find many peaks for each bit and the correlation should be larger in terms of signal input length. Can be easily implemented for a real time demodulator?
About the SNR i mean, if i record the received signal which is bounded by the two preambles (or one is needed) how
can i calculate the SNR of such signal for performance purposes. Can i
use somehow the pause time and assume its only noise. How can be easily archived?
PS: Which might be the additional benefits if i use the FSK signal as preamble ?
Thanks again, and apologize for any wrong concept :)
I'm pretty sure that Eric means taking more than one sample per bit period.
Whatever you use, in the real world you'll have to deal with multiple peaks, and somehow discerning the difference between a real preamble and noise.
I don't know the easy pre-packaged answer to this, but if you do the math for your FSK receiver, you can compute the statistics of the analog values going to the bit slicers as a function of SNR. Then, in the real receiver, you can calculate those same statistics, and use them to infer the actual SNR. It's not an exact process, but if what you really care about is letting the user sort things into "good, bad, ugly", then there should be enough information.
(It boils down to the ratio between the number that you're bit-slicing on and it's variance. Things should be better with FSK because you always have that silent channel -- but that's just a help, not a World Beating Solution.)
Thank you very much Tim,
You mean more than one sample per bit period for SNR calculation, or preamble detection. Currently i have some miss-understanding how the preamble detection can be used by using bits of information, or fixed pattern. It means that the receiver is continuously demodulation bits until the pattern has been found. Is this computably feasible and which might be the benefits besides avoiding the threshold of chirp.
Thank you also for the SNR hint, i though i could measure the variance of the signal and the variance of the noise in some interval when no symbol has been set. Do u think this is enough?
BR