fire_test.m

来自「实现了信道编码」· M 代码 · 共 34 行

M
34
字号
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% 法尔码纠突发错误长度的性能测试 %%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

clear all;
close all;
N_Length=input('请输入突发错误长度:');
if isempty(N_Length)    % 突发长度缺省值为12
   N_Length=12;
end
N_Interval=230;     % 突发间隔
bit_err_num=0;      % 误码总数
N=20;               % 帧数
for n=0:(N-1)
    signal=round(rand(1,184));          % 原始信息序列
    fire_enc=fire_sys_encode(signal);   % 法尔码编码,编码后输出序列长度224bits

    % 在信道中加入突发干扰
    Noise=BurstNoise(N_Interval,N_Length,length(fire_enc));     
    channel_output=mod(fire_enc+Noise,2);

    [fire_dec,sysinfo]=fire_sys_decode(channel_output);    % 法尔码译码,译码后输出序列长度184bits
    temp=length(find(signal~=fire_dec));
    if temp~=0
        bit_err_num=bit_err_num+temp;          % 累计每一帧的误码个数
    end
end

if bit_err_num==0     % 如果误码总数为0,说明法尔码可以纠正该长度的突发错误
    display "可以纠正该长度的突发错误!"
else
    display "不能纠正该长度的突发错误!"
end

⌨️ 快捷键说明

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