Re: Problems with Viterbi decoding

2021-03-30 Thread Achilleas Anastasopoulos
There may be some additional things to consider when using gr-trellis:

The fsm class does not understand bits. It understands input symbols and
output symbols.
Your fsm has binary input symbols and quaternary output symbols.
So the encoder gets L input bits and produces L quaternary symbols (if you
are wondering why, please read the gr-trellis documentation to see the
design philosophy).
For the VA to work you have to provide L (noisy) quaternary symbols at the
input.

I attach a modified version of the tcm.grc example (in the
gr.trellis/examples/grc/tcm.grc)
that shows that the VA works perfectly (0 BER) with your encoder.


test_tcm1.grc
Description: Binary data


Re: Problems with Viterbi decoding

2021-03-30 Thread Achilleas Anastasopoulos
My understanding is that the constructor takes first k=1 and then n=2 as a
parameter
for an (n,k) code, so it should be:
trellis.fsm(1,2,[0b11001,0b10111])

Achilleas

//##
//# Automatically generate the FSM from the generator matrix
//# of a (n,k) binary convolutional code
//##
fsm::fsm(int k, int n, const std::vector& G)


Problems with Viterbi decoding

2021-03-29 Thread bitwisebill
Greetings all,

I'm trying to implement a decoder for NXDN in GRC and the Viterbi decoding is 
not cooperating with me. I'm wondering if one of you could please take a few 
minutes to look this over and see if you could point out where I have gone 
wrong, because I am thoroughly puzzled by this. Any insight would be highly, 
highly appreciated.
I've pulled all the parameters and the input testing data straight from the 
NXDN technical specs so I'm really at a loss here.

ECC parameters: K=5, R=1/2, G1= 1 + x^3 + x^4, G2= 1 + x + x^2 + x^4
Trellis permutation: size 252, (0,21,42,63,84,105,126,147,168,189,210,231,1,...)
FSM constructor: trellis.fsm(2,1,[0b11001,0b10111])
Block size 252, initial state 0, final state 0

Input data: 1410 0024 0154 0404 a120 6088 0224 0004 8280 4d14 0340 0019 4101 
9240 1ec2 40b
Correct decoding: 0101 0020 0001 0001   00
My decoding:  0606 00c0 0006 0006   00

Many thanks in advance!