How come the Vitrebi Decoder only accepts positive integers when soft decoding?
5 次查看(过去 30 天)
显示 更早的评论
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?
0 个评论
采纳的回答
更多回答(1 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 BPSK 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!