How come the Vitrebi Decoder only accepts positive integers when soft decoding?

3 views (last 30 days)
I have some convolutionally encoded data that was then modulated by BPSK. I then added some noise to it so the values are now things like -0.3 or +1.2 or something. Now I thought the strength of the Vitrebi decoder was that it could do soft decision decoding economically by using these negative and positive values to calculate the Euclidean distance?
However when I input:
vitdec(corrupted_codeword(i, :), trellis_poly, 4, 'term', 'soft', 3)
Where corrupted_codeword(i, :) is of size 12x1209. 12 for 12 different values of SNR and 1209 is the output size. It originally came from codeword(i, :) which was just 1's and 0's. I then modulated it with BPSK converting 0's to -1. I then added noise depending on the SNR value:
corrupted_codeword(i, :) = sqrt(0.5*(1./SNR(i)))*codeword_BPSK(i, :) + temp_reg(i, :);
where temp_reg is:
temp_reg = randn(12, length(codeword));
term means it should terminate at state 0 with soft decision coding and 3 quantization bits (I don't really know what this means but MATLAB had 3 in their example) and trellis_poly is my polynomial to trellis:
trellis_poly = poly2trellis(4, {'x3 + x2 + 1', 'x3 + x + 1', 'x3 + 1'});
Where 4 is the constraint length. I have three delay terms so I thought this would be 4 but again, in MATLAB's example they had three delay terms in the diagram but 4 as the input so I assume that's right. The issue is, I then get this error:
Invalid input for chosen decision-type. Allowed input values for hard-decision decoding are 0 and 1. Allowed input values for soft-decision decoding are integers in the range 0 to (2^N)-1, where N is the number of soft decision bits.
Wouldn't converting to positive integers take away from the whole point of soft decision decoding?

Accepted Answer

Philip Masters
Philip Masters on 10 Dec 2021
I should've used 'unquant' not 'soft' please ignore :)

More Answers (1)

Amare
Amare on 4 Jul 2024
give me mathalba code for viterbi decoder

Products


Release

R2021a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!