信息与编码理论 第2版 课件 6.4 BCH和RS码的仿真实例_第1页
信息与编码理论 第2版 课件 6.4 BCH和RS码的仿真实例_第2页
信息与编码理论 第2版 课件 6.4 BCH和RS码的仿真实例_第3页
信息与编码理论 第2版 课件 6.4 BCH和RS码的仿真实例_第4页
信息与编码理论 第2版 课件 6.4 BCH和RS码的仿真实例_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

§6.4BCH和RS码的仿真实例【例6-14】考虑例6-2中有限域各个元素的MATLAB仿真问题。如表6-4所示,用于表示有限域中元素的方法有幂形式和向量形式(即多项式形式中的系数),此外也经常将向量形式折算成对应的十进制整数来表示,称为整数形式。表6-4GF(8)元素的三种表示下列代码可以生成并显示中元素的幂形式、向量形式和整数形式。prim_poly=[1101];%用素多项式x^3+x+1生成GF(8)gf8_elements=[-inf0123456]';%生成GF(8)中的元素(幂形式的指数)[polyformat,expformat]=gftuple(gf8_elements,prim_poly);integerformat=bi2de(polyformat);disp('GF(8)中的元素(幂形式中的指数):');disp(expformat);disp('GF(8)中的元素(向量形式):');disp(polyformat);disp('GF(8)中的元素(整数形式):');disp(integerformat);程序运行结果如下图:

p=2;%有限域GF(2)g2=[11111];%多项式x^4+x^3+x^2+x+1x1=[01];%x^1[quot1,remd1]=gfdeconv(x1,g2,p);x2=[001];%x^2[quot2,remd2]=gfdeconv(x2,g2,p);x3=[0001];%x^3[quot3,remd3]=gfdeconv(x3,g2,p);x4=[00001];%x^4[quot4,remd4]=gfdeconv(x4,g2,p);x5=[000001];%x^5[quot5,remd5]=gfdeconv(x5,g2,p);disp('元素X^1的多项式形式为:’);disp(remd1);disp('元素X^2的多项式形式为:’);disp(remd2);disp('元素X^3的多项式形式为:’);disp(remd3);disp('元素X^4的多项式形式为:’);disp(remd4);disp('元素X^5的多项式形式为:’);disp(remd5);程序运行结果如下图:【例6-16】考虑例6-5中最小多项式的仿真问题。用于产生共轭类的最小多项式的代码如下。m=4;%GF(2^m)=GF(16)prim_poly=[11001];%GF(16)的生成多项式gf_elements=[1248]';%生成幂形式的元素alpha^{1,2,4,8}[polyformat,expformat]=gftuple(gf_elements,prim_poly);integerformat=bi2de(polyformat);apoly=gf([integerformat(1)1],m);%x+alphabpoly=gf([integerformat(2)1],m);%x+alpha^2cpoly=gf([integerformat(3)1],m);%x+alpha^4dpoly=gf([integerformat(4)1],m);%x+alpha^8epoly=conv(apoly,bpoly);fpoly=conv(cpoly,dpoly);min_poly=conv(epoly,fpoly);disp('元素alpha的最小多项式为:’);disp(min_poly.x);【例6-17】考虑例6-7中生成多项式的仿真问题。采用上题生成最小多项式的方法,可以得到产生该BCH码生成多项式的代码如下:m=4;%GF(p^m)=GF(16)prim_poly=[11001];%GF(16)的生成多项式%-----------------------------------------------------------------------gf_elements=[1248]';%生成幂形式的元素alpha^{1,2,4,8}[polyformat,expformat]=gftuple(gf_elements,prim_poly);integerformat=bi2de(polyformat);apoly=gf([integerformat(1)1],m);%x+alphabpoly=gf([integerformat(2)1],m);%x+alpha^2cpoly=gf([integerformat(3)1],m);%x+alpha^4dpoly=gf([integerformat(4)1],m);%x+alpha^8epoly=conv(apoly,bpoly);fpoly=conv(cpoly,dpoly);min_poly_alpha=conv(epoly,fpoly);%元素alpha的最小多项式%-----------------------------------------------------------------------gf_elements=[36129]';%生成幂形式的元素alpha^{3,6,12,9}[polyformat,expformat]=gftuple(gf_elements,prim_poly);integerformat=bi2de(polyformat);apoly=gf([integerformat(1)1],m);%x+alpha^3bpoly=gf([integerformat(2)1],m);%x+alpha^6cpoly=gf([integerformat(3)1],m);%x+alpha^12dpoly=gf([integerformat(4)1],m);%x+alpha^9epoly=conv(apoly,bpoly);fpoly=conv(cpoly,dpoly);min_poly_beta=conv(epoly,fpoly);%元素alpha^3的最小多项式%-----------------------------------------------------------------------gf_elements=[510]';%生成幂形式的元素alpha^{5,10}[polyformat,expformat]=gftuple(gf_elements,prim_poly);integerformat=bi2de(polyformat);apoly=gf([integerformat(1)1],m);%x+alpha^5bpoly=gf([integerformat(2)1],m);%x+alpha^10min_poly_gamma=conv(apoly,bpoly);%元素alpha^5的最小多项式%-----------------------------------------------------------------------gf_elements=[7141311]';%生成幂形式的元素alpha^{7,14,13,11}[polyformat,expformat]=gftuple(gf_elements,prim_poly);integerformat=bi2de(polyformat);apoly=gf([integerformat(1)1],m);%x+alpha^7bpoly=gf([integerformat(2)1],m);%x+alpha^14cpoly=gf([integerformat(3)1],m);%x+alpha^13dpoly=gf([integerformat(4)1],m);%x+alpha^11epoly=conv(apoly,bpoly);fpoly=conv(cpoly,dpoly);min_poly_delta=conv(epoly,fpoly);%元素alpha^7的最小多项式%-----------------------------------------------------------------------a_x=conv(min_poly_alpha,min_poly_beta);b_x=conv(min_poly_gamma,min_poly_delta);g_x=conv(a_x,b_x);%生成多项式disp('生成多项式的系数为:');disp(g_x.x);程序运行结果如下图:【例6-18】考虑例6-9中BCH码译码问题的MATLAB仿真,代码如下:n=15;%码字向量长度k=7;%消息向量长度[genpoly,t]=bchgenpoly(n,k);%genpoly是生成多项式,t是可纠正错误个数y=gf([000000000001001]);%接收向量X^3+1[decoded,cnumerr,ccode]=bchdec(y,n,k);%译码disp('纠错后的消息向量:');disp(decoded.x);disp('错误个数:');disp(cnumerr);disp('纠错后的码字向量:');disp(ccode.x);程序运行结果如下图:【例6-19】考虑例6-10中RS码生成多项式的仿真问题。生成该码生成多项式的代码如下:m=4;%GF(p^m)=GF(16)prim_poly=[11001];%GF(16)的生成多项式%-----------------------------------------------------------------------gf_elements=[123456]';%生成幂形式的元素alpha^{1,2,3,4,5,6}[polyformat,expformat]=gftuple(gf_elements,prim_poly);integerformat=bi2de(polyformat);poly1=gf([integerformat(1)1],m);%x+alpha^1poly2=gf([integerformat(2)1],m);%x+alpha^2poly3=gf([integerformat(3)1],m);%x+alpha^3poly4=gf([integerformat(4)1],m);%x+alpha^4poly5=gf([integerformat(5)1],m);%x+alpha^5poly6=gf([integerformat(6)1],m);%x+alpha^6apoly=conv(poly1,poly2);bpoly=conv(poly3,poly4);cpoly=conv(poly5,poly6);dpoly=conv(apoly,bpoly);g_x_dec=conv(dpoly,cpoly);g_x_poly=double(de2bi(g_x_dec.x));[polyformat,g_x_exp]=gftuple(g_x_poly,prim_poly);disp('生成多项式的系数(幂形式的指数,升幂排列)为:');disp(g_x_exp');程序运行结果如下图:【例6-20】考虑例6-11中RS码生成多项式和码字多项式的仿真问题,代码如下:m=3;%GF(2^m)=GF(8)prim_poly=[1101];%GF(8)的生成多项式%-----------------------------------------------------------------------gf_elements=[1234]';%生成幂形式的元素alpha^{1,2,3,4}[polyformat,expformat]=gftuple(gf_elements,prim_poly);integerformat=bi2de(polyformat);poly1=gf([1integerformat(1)],m);%x+alpha^1poly2=gf([1integerformat(2)],m);%x+alpha^2poly3=gf([1integerformat(3)],m);%x+alpha^3poly4=gf([1integerformat(4)],m);%x+alpha^4apoly=conv(poly1,poly2);bpoly=conv(poly3,poly4);g_x_dec=conv(apoly,bpoly);%生成多项式的系数(整数形式)g_x_poly=double(de2bi(g_x_dec.x));[polyformat,g_x_exp]=gftuple(g_x_poly,prim_poly);disp('生成多项式(降幂排列)的系数(幂形式的指数)为:');disp(g_x_exp');%-----------------------------------------------------------------------gf_elements=[531-inf-inf-inf-inf]';%移位消息多项式的系数(幂形式)[polyformat,expformat]=gftuple(gf_elements,prim_poly);m_x=bi2de(polyformat)';%移位消息多项式的系数(整数形式)[quot,p_x]=deconv(m_x,g_x_dec);%除以生成多项式c_x=[m_x(1:3)p_x(4:7)];%码字多项式的系数(整数形式)c_x_polyformat=double(de2bi(c_x.x,3));[polyformat,c_x_expformat]=gftuple(c_x_polyformat,prim_poly);disp('码字多项式(降幂排列)的系数(幂形式的指数)为:');disp(c_x_expformat');程序运行结果如下图:【例6-21】考虑例6-12中RS码译码过程中伴随式的仿真问题,代码如下:p=2;m=3;%GF(p^m)=GF(8)g=[1101];%GF(8)生成多项式r_x_expformat=[5,-Inf,1,6,4,2,0]’;%接收多项式(降幂排列)的幂形式系数[r_x_polyformat,expformat]=gftuple(r_x_expformat,m,p);r_x_integerformat=gf(bi2de(r_x_polyformat)',m);%接收多项式(降幂排列)的整数形式系数X_expformat=[6,5,4,3,2,1,0]';%X^{6,5,4,3,2,1,0}[X_polyformat,X_expformat]=gftuple(X_expformat,m,p);X_integerformat=gf(bi2de(X_polyformat),m);s1_integerformat=r_x_integerformat*X_integerformat;s1_polyformat=double(de2bi(s1_integerformat.x));[s1_polyformat,s1_expformat]=gftuple(s1_polyformat,m,p);disp('伴随式s1为:');disp(s1_expformat);%伴随式s1(幂形式的指数)只需要将变量X_expformat的值依次换为[12,10,8,6,4,2,0]'、[18,15,12,9,6,3,0]'、[24,20,16,12,8,4

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论