⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 code_interleaver_decoder.m

📁 (2
💻 M
字号:
%%%%%%%%%编码%%%%%%%%%%%%%%%%%%
G= poly2trellis([3],[7 5]);%生成trellis结构
L=[1 0 1 1 1];%待编码的信息
C=convenc(L,G);%编码
%%%%%%%%结束%%%%%%%%%%%%%%%%%%%%
A=[];B=[];B_e=[];%初始化
%%%%%%%交织%%%%%%%%%%%%%%%%%%%%
D=10;% 交织深度
for x=1:D        %%%%%%%10个码字交织
    A(x,:)=C;%形成交织深度为D的交织矩阵
end

B=A';            %%%%%%%交织-交织器为10X10
error=[1 1 1 1 1 0 0 0 0 0];%未使用交织的加错
C_t=mod(C+error,2);%未交织但是有5个错
error2=[1 1 1 1 1 1 1 1 1 1];%加交织的10个错误模式,所有错误在第一行,即为长连错。
B(1,:)=mod(B(1,:)+error2,2); %第一行加错——模2求和

    B_e=B;






%%%%%%%%%%%%%viterbi译码%%%%%%%%%%%%%
C_out1=vitdec(C,G,2,'trunc','hard');%未交织且没有加错时
C_out2=vitdec(C_t,G,2,'trunc','hard');%未交织加5个错时

[number1,r1]=biterr(C_out1,L);%number1没有加错时,译码后的错误个数统计,ratio1为误码率
[number2,r2]=biterr(C_out2,L);%number2未交织加5个错时,译码后的错误个数统计,ratio2为误码率


A_e=B_e'; %解交织,此时第一行共加了10错误
for y=1:10
    C_e2(y,:)=vitdec(A_e(y,:),G,2,'trunc','hard');%对每个接收码字进行viterbi译码,然后构成一个10X10的码字矩阵
end
r3=0;
[number3,ratio3]=biterr(C_e2,L);
for d=1:D%  D为交织深度
    r3=r3+ratio3(d);  %D个码字的误码率之和
end
r3=r3/D;%归一化




⌨️ 快捷键说明

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