循环码编译码matlab程序.docx
- 文档编号:2492492
- 上传时间:2022-10-30
- 格式:DOCX
- 页数:3
- 大小:16.93KB
循环码编译码matlab程序.docx
《循环码编译码matlab程序.docx》由会员分享,可在线阅读,更多相关《循环码编译码matlab程序.docx(3页珍藏版)》请在冰豆网上搜索。
循环码编译码matlab程序
循环码编码程序
function[C]=cyclic_encoder(Si)
%C为循环编码的输出编码结果
%对x^8+1进行模2因式分解得到:
x^8+1=(x^3+x^2+x+1)*(x^5+x^4+x+1)
y=size(Si,2);%y表示Si的列数,即输入码元的个数
M=ceil(y/5);%将信息码元分成M帧,一帧5个信息码元
n=8;%循环编码的一帧码长
k=5;%信息位的个数
r=n-k;%监督位的个数
gx=[1,1,1,1];%(8,5)循环码的生成多项式g(x)=x^3+x^2+x+1
Ai=zeros(1,8*M);%Ai用来存放所输入的码元经过循环编码后的码字
Axi=zeros(1,8);%Axi用来表示循环编码后的一帧的编码输出码字
mi=zeros(1,5);%mi用来存放每一帧的信息码元
fori=1:
M
forj=1:
5
mi(j)=Si(j+(i-1)*5);
end
Axi(4:
8)=mi(1:
5);
Axi=circshift(Axi',-r)';%实现(x^(n-k))*m(x),其中m(x)的系数由mi决定
[qx,rx]=deconv(Axi,gx);%实现((x^(n-k))*m(x))/g(x),得到商q(x)和余数r(x)
Axi=Axi+rx;%实现Axi(x)=Axi(x)+r(x),得到的Axi就是循环编码的编码输出码字
Ai(8*i-4:
8*i)=Axi(1:
5);
Ai(8*i-7:
8*i-5)=Axi(6:
8);
end
%for循环是为了实现模2相加,使循环编码的输出码字Ai中只有0,1
fori=1:
8*M
ifrem(abs(Ai(i)),2)==0
Ai(i)=0;
else
Ai(i)=1;
end
end
C=Ai;%循环编码的输出码字C=Ai
end
循环码译码程序
function[So]=cyclic_decoder(R)
%输入R为经AWGN信道传输后的二进制信息,So为循环译码器的译码结果
R=1*(R>0.5);%对接收到的信号进行抽样判决
y=size(R,2);%y表示R的列数,即输入码元的个数
M=ceil(y/8);%将接收到的码元R分成M帧,一帧8个码元
So=zeros(1,5*M);%用来存放纠检错之后的译码结果
Axo=zeros(1,8);%用来存放纠检错之后每一帧的译码结果
%对接收信号进行纠检错译码
n=8;%循环编码的码长
k=5;%信息位的个数
r=n-k;%监督位的个数
s=zeros(1,3);%用来存放校正子s
h=[1,1,0,0,1,1];%监督多项式h(x)=x^5+x^4+x+1
hn=[];%hn(x)为监督多项式h(x)的逆多项式,hn用来放hn(x)的各项系数
fori=2:
5
hn(i)=h(k+2-i);
end
hn
(1)=h
(1);
hn(6)=h(6);
%计算监督矩阵H
H=zeros(r,n);%监督矩阵H为r*n阶矩阵
H0=zeros(1,n);%用来存放hn(x)的系数
H1=zeros(1,n);%用来存放x*hn(x)的系数
H2=zeros(1,n);%用来存放x^2*hn(x)的系数
H0(3:
8)=hn(1:
6);
H1(2:
7)=hn(1:
6);
H2(1:
6)=hn(1:
6);
H(1,:
)=H2(1:
8);
H(2,:
)=H1(1:
8);
H(3,:
)=H0(1:
8);
flag=0;%出错的标志,为1表示检测出错误
fori=1:
M
forj=1:
8
Axo(j)=R(j+(i-1)*8);
end
s=Axo*H';%计算校正子s
fork=1:
3
ifrem(abs(s(k)),2)==0
s(k)=0;
else
s(k)=1;
end
end
ifs==[000]
ifflag==0
flag=0;
end
else
flag=1;
end
fork=1:
8
ifrem(abs(Axo(k)),2)==0
Axo(k)=0;
else
Axo(k)=1;
end
end
So(1+(i-1)*5:
5+(i-1)*5)=Axo(4:
8);
end
ifflag==1
disp('检测出有错误,但无法纠正!
');
else
disp('没有错误');
end
end
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 循环码 译码 matlab 程序