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
on 2014-06-18 15:18
on 2014-06-18 16:23
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  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  a nice list: http://gnuradio.org/redmine/projects/gnuradio/wiki...