Hi, Given an RRC filtered 4FSK signal (similar to ETSI DMR), the task was to use the FM demodulator and perform soft symbol decoding with the convolutional decoder in GNU radio, using only existing GNU radio blocks and without writing a separate block for FSK symbol discrimination.
What I came up with was to use the FM demodulator combined with the phase modulator to obtain 4 complex symbols which can then be converted to floating point and interleaved for use with the convolutional decoder which works with (-1, 1) symbols. The flowgraph I came up with can be seen here (based on 3.7.13.4): https://github.com/qradiolink/qradiolink/blob/next/gr/gr_demod_4fsk_sdr.cpp I would be interested in criticism from experts here, flaws in the graph, limitations, obvious mistakes, better ways to do it etc. So far, I haven't figured out yet how to compensate in the flowgraph for small carrier frequency misalignment between TX and RX. The flowgraph does work though for the general case where there is no frequency difference between TX and RX, tested with a PlutoSDR. Thanks, Adrian