I was trying to use the Viterbi decoder in gr-trellis for maximum
likelihood sequence detection of a bit-stuffed data source. Here the
FSM is the bit-stuffing operation. A reference for this is
Meehan, T.; Hicks, J.; Kragh, F., “Maximum Likelihood Sequence
Detection of a Bit-stuffed Data Source,” Communications, 2006. ICC
'06. IEEE International Conference on , vol.4, no.pp.1514-1519, June
For this application the number of branches entering a state is not
the same as the number leaving at a state. The documentation for
“In the following we assume that for any state, the number of incoming
transitions is the same as the number of outgoing transitions, ie,
equal to I. All applications of interest have FSMs satisfying this
Before I started digging in to modifying the code (or porting my
existing decoder to the gnuradio framework) I wanted to see if anyone
else was working to support different number of input branches to
I think at a minimum the method “fsm::generate_PS_PI()” should check
to verify that the FSM description does in fact have the same number
of incoming branches and outing branches at each state.
If there is interest in making gr-trellis support this type of FSM I
can work on it, else I will probably just port my existing work over.
Please let me know what you think.