On Mon, 2017-04-03 at 09:06 -0400, Achilleas Anastasopoulos wrote: > sure, feel free to look into the gr-trellis documentation and provide > some feedback. > If you have further questions please let us know. > > best, > Achilleas
Hi Achilleas: My objective is to implement an AIS (GMSK, BT=0.4, L=3) receiver, using the Viterbi algorithm for optimal demodulation of the CPM symbols. In examining gr-trellis/examples/python/test_cpm.py, I see that everything is perfectly synchronized, for the purposes of demonstration. (The addition of a 0.0 to the end of the 99% energy orthonormal basis vectors for the matched filter correlators, to have the taps completely fall into the initial all-0 history of the fir filter blocks, was a nice trick BTW). In my design concept for a receiver, I believe I have worked out carrier frequency offset correction, phase offset correction, symbol timing recovery at either 4 or 5 samples per symbol, and injecting samples to properly realign the symbols entering the decimating matched filter correlators when a new burst is received. What I can't quite figure out is how to properly synchronize the correction of f0T carrier frequency shift introduced by the CPM decomposition, without unintentionally adding an arbitrary phase shift to the symbol's signal in the CPM decomposition. Do I restart the complex exponential frequency shift sequence with a phase of 0 at the start of each symbol? I think that works for Q=4. But what about for Q=5? The reason I ask is that it appears the phase of the complex correlation output by the matched filters will affect the metric for which CPM decomposition signal gets selected as the best match. Looking at the 16, 99% energy CPM decomposition signals generated by the test_cpm.py script: >>> print abs(Sf.transpose()) [[ 1.81592306 0.83465307] [ 1.81592306 0.83465307] [ 1.90550352 0.600571 ] [ 1.90550352 0.600571 ] [ 1.96823385 0.34970555] [ 1.96823385 0.34970555] [ 1.90550352 0.600571 ] [ 1.90550352 0.600571 ] [ 1.90550352 0.600571 ] [ 1.90550352 0.600571 ] [ 1.96823385 0.34970555] [ 1.96823385 0.34970555] [ 1.90550352 0.600571 ] [ 1.90550352 0.600571 ] [ 1.81592306 0.83465307] [ 1.81592306 0.83465307]] Many of the signals can only be distinguished from each other properly when the correlator outputs have proper phase. Thank you for any advice you can provide. Regards, Andy _______________________________________________ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org https://lists.gnu.org/mailman/listinfo/discuss-gnuradio