I'm trying to demodulate a CPFSK signal using the Viterbi algorithm. The 
gr-trellis module seems to have most of the components I'll need, but I'm 
having trouble figuring out how to wrangle my problem into the FSM format. 
Basically, I have a binary CPFSK signal with a modulation index, h=25/3. 
Following the guidance of [1] section 3.3-2, I know that for CPM with rational 
h=m/p, (here, m=25 and p=3), with m odd, I have 2p=6 phase states. I worked out 
the phase trajectories and took them modulo 2*pi to get this set of terminal 
phase states: {0, pi/3, 2*pi/3, pi, 4*pi/3, 5*pi/3}.

I'm trying to understand the FSM format in gr-trellis, and how to build my FSM. 
If you consider the set of terminal phase states above as being zero-indexed, 
the phase transitions should go according to the "Next state" mapping of the 
FSM file format below. I've added my comments as to my understanding of the 
format. Please correct me if I'm wrong.

FSM file:
2 6 2       # 2 possible input symbols // 6 possible FSM states // 2 possible 
output symbols

# Next state mapping
5 1          # if in state 0 and a 0 is received, go to state 5, else (1 is 
received, and) go to state 1
0 2          # if in state 1 and a 0 is received, go to state 0, else go to 
state 2
1 3          # ...
2 4
3 5
4 0

# Output symbol mapping
[...]

I'm having trouble understanding how to define the output symbol mapping. Is 
there a plain-language interpretation like the one I spelled out for Next state 
mapping in my comments above?

Thanks!
Sean

[1] Proakis & Salehi, Digital Communications, 5ed.
_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Reply via email to