intrlvcode.m

来自「用matlab是实现半带抽取、半带内插滤波器」· M 代码 · 共 20 行

M
20
字号
st1 = 27221; st2 = 4831;    %定义随机数产生的状态
n = 7; k = 4;              %汉明码的参数
msg = randint(k*500,1,2,st1);   %信息序列
code = encode(msg,n,k,'hamming/binary');  %编码
%产生突发错误,使得相邻码字发生错误
errors = zeros(size(code)); errors(n-2:n+3) = [1 1 1 1 1 1];

inter = randintrlv(code,st2);     %交织
inter_err = bitxor(inter,errors);   %加入突发错误
deinter = randdeintrlv(inter_err,st2);   %解交织
decoded = decode(deinter,n,k,'hamming/binary');  %译码
disp('Number of errors and error rate, with interleaving:');
[number_with,rate_with] = biterr(msg,decoded);   %误码数据

%没有交织
code_err = bitxor(code,errors);          %加入突发错误
decoded = decode(code_err,n,k,'hamming/binary');    %译码
disp('Number of errors and error rate, without interleaving:');
[number_without,rate_without] = biterr(msg,decoded)   %误码数据

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?