clc; clear;
m = 8; % Number of bits per symbol
n = 2^m-1; k = 223; % Word lengths for code
data = ceil(255*rand(20, 223)); % 构建20个随机生成的数据包
msg = gf(data,m); % 生成伽罗华域,Three rows of m-bit symbols
code = rsenc(msg,n,k); % use RS encoder
% 构建20个随机生成的错误,第i个包有i个错误,RS(255,223)可以纠正(n-k)/2=16个连续错误
errs = tril(ones(20,20),0); %20*20的0 1矩阵
errs = ceil(255*rand(20, 20).*errs);
errs = [errs zeros(20,235)];
errors = gf(errs,m);
noisycode = code + errors; % 二进制模2加
[dec,cnumerr] = rsdec(noisycode,n,k); % use RS decoder cnumerr是一个列向量,记载了每一行纠正的错误数,-1表示纠错失败
for i=1:20 %行
if code(i)==dec(i)
disp([num2str(i),' th message is decoded right']); %输出 num2str(i)?????
else
disp([num2str(i),' th message is decoded wrong']);
end
end
- 1
- 2
前往页