BCH码编译码matlab仿真

上传人:博****1 文档编号:544626415 上传时间:2023-12-08 格式:DOCX 页数:13 大小:175.69KB
返回 下载 相关 举报
BCH码编译码matlab仿真_第1页
第1页 / 共13页
BCH码编译码matlab仿真_第2页
第2页 / 共13页
BCH码编译码matlab仿真_第3页
第3页 / 共13页
BCH码编译码matlab仿真_第4页
第4页 / 共13页
BCH码编译码matlab仿真_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《BCH码编译码matlab仿真》由会员分享,可在线阅读,更多相关《BCH码编译码matlab仿真(13页珍藏版)》请在金锄头文库上搜索。

1、信道编码姓 名:郭宇琦 学 号:xxxxxx一、 实验目的1. 复习巩固CH码编码译码知识。2. 使用atla进行实践编写CH,理解实际应用中BCH的编码译码过程。3. 结合实践验证所学H码知识。二、 实验原理BCH 码是用于校正多种随机错误的多级、循环、错误校正、变长数字编码,是循环码的子类。本原BCH码编码原理如下:1. 拟定n、m、t2. 用函数构造扩域,q=取二进制,3. 取本原元,根据纠错能力t,拟定持续根。通过逐个验证每个元素来找出每一种根的所有共轭根系。根据计算最小多项式。4. 所有非共轭根系的最小多项式乘积得到生成多项式5. 运用系统码编码方程,进行编码。BC码译码措施重要有e

2、ern译码法和erlam迭代译码法等,其中erson译码措施如下:. 计算随着式。已知接受向量,则2.求解错误位置。引入错误位置多项式,将求解错误位置的问题转化为求解线性方程组的问题 3.用etro译码措施译码,解出错误位置多项式系数和错误图样,得到估值码字。 ().假设=,计算行列式M的值。M=则降阶,ee,同样计算直到M. (2)将上面得到的2t个持续根代入试根,求上述方程组解。取倒数即为错误位置。由此写出错误图样。 ()求出译码。每一步具体的实现措施,详见程序源代码注释。三、 程序框图编码框图过信道框图译码框图四、 实验成果分析成果截图:上面是较高信噪比时12位BCH对的译码下面是较低信

3、噪比时2为BC错误译码成果框内容(加粗部分是手动输入内容,下划线是成果重点):简易BCH编码译码系统-输入码长n=2错误:只支持本原B码输入码长n127输入纠错能力t=6计算得码长 k=8自动生成随机信息序列输入1,手动键入信息序列输入0 :1随机生成的序列为 m= 0 0 1 0 1 0 1 1 1 0 1 0 0 0 00 1 1 0 1 1 1 1 1 1 00 0 0 1 1 1 1 011 0 0 0 0 0 0 1 1 1 1 1 1 0 1 0 1 0 0 01 1 1 01 11 1 1 0 编码后生成码序列为 0 0 1 0 1 0 1 0 1 0 0 0 1 1 0 1 1

4、 0 1 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 1 1 1 1 1 0 1 0 0 0 0 1 1 0 11 1 0 1 1 10 1 1 0 1 1 1 0 0 0 0 0 0 0 0 1 00 0 0 1 0 1 1 1 1 0 0 1 0 1 1 1 1 0 10 1 1 0过高斯白信道输入1,过抱负信道输入0 :输入信道信噪比(单位分贝,15左右较合适):10接受码字为 0 1 0 1 1 0 1 0 0 01 1 0 0 1 10 1 1 0 0 1 0 0 1 1 1 0 1 00 0 0 0 0 1 1 1 1 1 1 0 1 0 0 0 1 1 0 1

5、 1 1 1 0 1 1 1 11 0 1 0 1 0 0 0 0 1 0 0 1 1 1 1 1 0 1 0 1 1 1 0 0 1 1 0发送码字为 0 0 1 1 1 0 00 0 0 0 1 1 0 1 1 0 1 1 1 1 0 0 1 0 1 1 1 11 01 0 0 0 0 0 0 1 1 1 1 1 1 1 0 1 0 0 0 0 1 1 0 1 1 1 0 0 1 10 1 1 1 0 0 1 00 0 0 0 1 0 0 1 0 0 0 0 0 1 1 1 0 1 0 1 0 1 1 1 0 1 0 1 1 1 0通过信道后出错 4 位错误图样为 00 0 0 0 0 0

6、 0 0 0 0 0 00 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 1 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0译码成果为 0 0 1 1 1 1 0 1 0 0 0 0 1 1 0 1 1 0 1 1 1 00 1 1 1 0 0 00 0 0 1 1 1 1 1 1 1 1 0 0 0 1 1 0 1 1 0 1 0 1 0 1 1 0 1 0 0 1 0 0

7、0 1 0 0 1 0 0 0 0 01 1 1 1 0 1 1 1 0 1 1 还原信息序列为m= 00 0 1 0 1 0 1 0 0 0 0 01 1 0 0 1 0 1 1 00 0 1 1 1 1 01 1 0 0 0 0 0 0 0 1 1 1 1 1 10 1 0 0 0 0 0 1 1 1 11 1 0 1 0 1 1 11译码对的 五、 实验小结整个过程严格按照所学BCH码有关知识编写,所得结论完全对的。六、 源代码clcclear l%-disp(-简易BCH编码译码系统-)flag=1;whil(fla) %输入n n=npt(输入码长n); ; while(2m-1=&

8、m20) %计算 m=m+1; end if(m=20) %非本原就重新输入 disp(错误:只支持本原C码) ele lag=; nendfag=1;while(flag) 输入t tinput(输入纠错能力t=); i((t=flor((n-1)/2)|(0) i(错误:纠错能力不能为0或者不能太大) elsflg=; eded%-a=f(2,m); %构造扩域,matlab自动只把当做扩域中的本原元for i1:2:(2t-1) %求最小多项式,只找奇数项 b=,ai; 让b分别为a.找每一种(这样定义是要卷积的) l=i; whieai=a(*l) %找共轭根系 =*l; b=conv

9、(b,1,al);%求最小多项式 end ifi=1g=; else =cnv(g,b); 求生成多项式 运用卷积,进行连乘 edend%-x=double(g.x);%从扩域到数域 相称于变成多项式knlth(gx)1;k=n(+1)+1disp(计算得码长k=,u2str(k))fla=1;while(flg) tmp=put(自动生成随机信息序列输入1,手动键入信息序列输入0 :n); i temp m=rod(ran(1,);%随机生成信息组 disp(随机生成的序列为 m= ,nu2tr(mx) flag=0; else inputst2mat(inpu(输入信息序列,s)); if lngth(nputm)=k disp(错误:输入码长应为,num2tr(k) el fla=; end x=strum(inutm(:); ended-=zes(,ength(gx);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号