Hi,

I am writing a TETRA demodulator with GNU Radio Companion without any OOT block.

My flowgraph works but as I don't have a signal processing background, I'm not really sure that my choice of the blocks and their parameters is the best for my purpose.

The TETRA modulation uses PI/4 DQPSK with a bitrate of 36 kHz (symbol rate of 18 kHz), and a RRC filter.

For now, my decoder consists of :

* Freq Xlating FIR Filter : to center and low-pass the signal, and lower the sample rate to have about 2 SPS.
* Fractional resampler : to have exactly 2 SPS
* Feed Forward AGC : to normalize the amplitude to 1
* FLL Band Edge : to fine-tune the frequency
* Polyphase Clock Sync : to sample the symbols at the right timing
* Differential Phasor : to get the difference between two symbols
* Constellation decoder : to discretize the symbols
* Unpack K bits : to convert the symbols to bits.

The flowgraph and screenshots can be found at https://github.com/Tim---/tetra-toolkit/tree/master/grc .

Do you have any advice on how to improve this flowchart ?


Bonus questions :

* using the FLL band edge after the low-pass seems odd because, even if it can recover frequency offset, some of the bandwidth will be lost. Should I use the error ouput of the FLL to change the freq used by the Freq XLating FIR FIlter ? If yes, is there an example of this somewhere ?

* at first I wanted to use the Constellation receiver, but from what I understand the constellations in gnuradio work by first discretizing the signal, then doing the diff. This does not work with PI/4 DQPSK because you need to first diff the complex samples, then discretize. Is there any way I could cheat to create a PI/4 DQPSK constellation in gnuradio ?


Thanks in advance,

Timothée.
_______________________________________________
Discuss-gnuradio mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Reply via email to