Sean,

I just wanted to add to the previous answer:

Indeed gr-trellis (and the fsm class specifically) has a built in
constructor for generating the FSM corresponding to ANY CPM scheme.
It only requires three parameters as explained in the comments
in the file fsm.cc
The constructed FSM is NOT based on Proakis decomposition, but on the more
elegant decomposition by:
"A decomposition approach to CPM", IEEE Trans. Info Theory, March 1988
  See also my own notes at
http://www.eecs.umich.edu/~anastas/docs/cpm.pdf
for all the details.

In this case for h=K/P, it does not matter whether K is even or odd, the
number of states is always = M^{L-1} * P (where M is the cardinality of the
input alphabet),
so in your case you'll have a trellis with 3 states as the previous email
suggested.

You may also find useful the python utility
make_cpm_signals(K,P,M,L,q,frac)
that can be found in gr-trellis/python
that generates the signal space for you.
(please see the above references for more info).

Finally, you can take a look at the example "test_cpm.py"
in the gr-trellis/examples/python
and make appropriate changes for your CPFSK signal.

------------------------

Now you can always drop all the above and design your FSM and signals from
scratch. You can create the FSM from a file (this is explained in the
gr-trellis documentaion--which is generated from
gr-trellis/doc/gr-trellis.xml).

The ouput symbol mapping is defined EXACTLY as you suggested in your email:

every line corresponds to the current state and every column to an input.
The entry is a number from 0 to I-1 (where I is the input cardinality).
How this index is translated to an actual signal IS NOT PART OF  THE FSM
DEFINITION but part of the modulation definition as explained very
extensively in the gr-trellis documentation.


let me know if you have any further questions,
Achilleas
_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Reply via email to