Error Correction Capability of Viterbi Decoder

3 ビュー (過去 30 日間)
mounika
mounika 2017 年 11 月 1 日
回答済み: Fatin Farihah Mohd 2018 年 4 月 11 日
Hello folks,
I am using fec encoding followed by viterbi decoding. In this process, I observed that the viterbi decoder error correction capability doesn't go hand in hand with theoretical calculations.
For example, in this case, I am using 1/2 rate convolutional encoder for encoding. Theoretically, for 1/2 rate, dfree = 10 and according to error correction capability t = (df-1)/2 , which will intend to 4.5 approximating it to 4. This means, that it should correct 4 errors atleast.
In the following code, I am introducing two errors (randomly) for every 14 bits, vitdec is unable to correct them, it works fine when I introduce one error.
Can someone help me in understanding the reasoning behind it ? Your help will be highly appreciated. Thank you!
clc;clearvars;
%%Random Binary Generator
dataIn = randi([0 1],700,1);
%%Convolutional Encoder 1/2 rate
t = poly2trellis(7,[171,133]);
coderate = 1/2;
encoded = convenc(dataIn,t);
%%flip one bit for every 7 bits to introduce errors
for i = 1:14:(length(encoded))
temp = encoded(i:i+13);
u = randi([1 13],1,2);
temp(u(1)) = ~temp(u(1)); % one error
temp(u(2)) = ~temp(u(2)); % comment out to check for one error
encoded(i:i+13)= temp;
end
%%viterbi decoder
tbl = 30;
dataOut = vitdec(encoded,t,tbl,'cont','hard');
numErrsInFrameHard = biterr(dataIn(1:end-tbl),dataOut(tbl+1:end));
display(numErrsInFrameHard)

回答 (1 件)

Fatin Farihah Mohd
Fatin Farihah Mohd 2018 年 4 月 11 日
I got the same problem.. The maximum error can be corrected by Viterbi decoder is 2 bits only. Iam not sure about the formula.

カテゴリ

Help Center および File ExchangeError Detection and Correction についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by