The definition of the OS table is different than the one you suggest:
For every state “s” and for every INPUT SYMBOL “i” it tells you what the
output symbol index “o” should be.
The reason a “transition” “t” is defined
as the pair (s,i) and not as a succession of states (s,s’) is that the
latter case cannot deal with “parallel” transitions.
So you need to rewrite your *.fsm description.
In addition, I suppose you have implemented some sort of “demodulator”,
ie, the device that takes the IQ CPM samples and projects these signals
onto an (at least approximate) orthonormal basis. The way to do that is
From: Grzegorz Suder
Subject: Re: [Discuss-gnuradio] extending gr-trellis to perform
Viterbi, MLSD on GMSK
Date: Wed, 11 Feb 2009 10:19:42 +0100
I am trying to decode CPM signal according to your email but I have
problem with understanding some things. What I’d like to do is to decode
some kind of I/Q samples according to following scenario:
- decimation of symbol rate N-times
- decoding I/Q symbols according to FSM file and provided constellation
For VA I am using:
dimensionality = 1
However the results are not as expected to be. My guess is that
something might be wrong with FSM file - I’ve looked through *.fsm files
example and seems that table OS (output symbols) is generated somehow.
What I know about my state machine is:
- there is S unique states
- each state can have transition to one of I states
- each input symbol is equal to IB bits
- transition from state S(i-1) to S(i) corresponds to O output symbols
- each output symbol is written on OB bits
So in general - I have defined NS table. I thought that OS table in
*.fsm file is just table that tells: transition from state S(a) to state
S(b) is equal to output symbol O(ab) but it seems that I’m wrong. Is
there any easy way to generate OS table in *.fsm file? I have seen fsm
constructor that generates these values according to (n,k) and G - is
that only way to generate OS table?