Forum: GNU Radio FSK demodulation

3b1bc8ef20e4cb7473a02d4b67c77562?d=identicon&s=25 Marc Miller (Guest)
on 2014-06-18 13:18
(Received via mailing list)
Hi, I am new to gnuradio, I want to develop 4FSK system. transmitter and
receiver. Is there any existing 4FSK transceiver system in gnuradio ?
Also,
which one of the following two is the best/optimum 4FSK demodulator for
low
SNR?

a. Quadrature demodulation
b. Correlator demdulation (autocorrelate tones-->energy detect->pick
largest)

Which one of the above can be implemented in gnuradio ?


Marc
D17685d174fee4ca258c75cce7bc2202?d=identicon&s=25 Marcus Müller (Guest)
on 2014-06-18 14:23
(Received via mailing list)
Hi Marc,

demod:
both can be implemented in GNU Radio. Correlation of course is more
computationally intensive; I haven't thought about 4-FSK so far, but I
guess for quadrature demodulation, you'd need multiple branches to
distinguish the possible symbols. There are other approaches (e.g. polar
discrimination by calculating the phase difference between two samples
etc. There's an exciting new polyphase filterbank channelizer
implementation, also, which you could abuse to do FSK, too).

Generally, if you are synchronized, you might even just estimate the
frequency of a symbol. In the easiest case, this might break down to an
abs(FFT_4) (which, by the way, is mathematically *very* similar to
correlating with known frequencies).

But since you asked about low-SNR situations: Employ a lot of
oversampling, if possible. Processing gain when correlating/averaging
should be proportional to oversampling factor. Oversampling, giving you
more bandwidth, would also be beneficial if you used a filterbank
approach, since it reduces the need for frequency synchronization in a
practical system, if your FSK shift is sufficiently larger than your
frequency offset.

All in all, the question which demodulator architecture to use is an
academic/research one and not related to the implementation in GNU Radio
modulation. This is a highly interesting field and I can but encourage
you to read a lot of books [1] and papers on this.

modulation:

Assuming you don't want phase jumps between symbols, why not just use
the VCO block to generate frequencies out of your input values?

Greetings,
Marcus

[1] a nice list:
http://gnuradio.org/redmine/projects/gnuradio/wiki...
Please log in before posting. Registration is free and takes only a minute.
Existing account

NEW: Do you have a Google/GoogleMail, Yahoo or Facebook account? No registration required!
Log in with Google account | Log in with Yahoo account | Log in with Facebook account
No account? Register here.