BCH码编译码matlab仿真.doc

上传人:scccc 文档编号:11411172 上传时间:2021-08-03 格式:DOC 页数:15 大小:514.50KB
返回 下载 相关 举报
BCH码编译码matlab仿真.doc_第1页
第1页 / 共15页
BCH码编译码matlab仿真.doc_第2页
第2页 / 共15页
BCH码编译码matlab仿真.doc_第3页
第3页 / 共15页
BCH码编译码matlab仿真.doc_第4页
第4页 / 共15页
BCH码编译码matlab仿真.doc_第5页
第5页 / 共15页
点击查看更多>>
资源描述

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

1、信道编码姓名:郭宇琦学号:xxx2009xxx实验目的1. 复习巩固BCH码编码译码知识。2. 使用matlab进行实践编写BCH, 了解实际应用中BCH的编码译码过 程。3. 结合实践验证所学BCH码知识。实验原理BCH码是用于校正多个随机错误的多级、循环、错误校正、变长数字编 码,是循环码的子类。本原 BCH码编码原理如下:1. 确定 n、m、t.2. 用函数构造扩域GF(qm),q=2取二进制,GF(2m)3. 取本原元:,根据纠错能力t,确定连续根:,2,-3,,2t。通 过逐个验证每个元素来找出每一个根的全部共轭根系。根据k 1M :(x(x- -)(x- -2)(x- -4r (x

2、-)计算最小多项式。4. 所有非共轭根系的最小多项式乘积得到生成多项式g(x)5. 利用系统码编码方程C(x)=xn-km(x)+Remg(x)xn-km(x),进行编码。BCH码译码方法主要有 Peterson译码法和Berlekamp迭代译码法等,其 中Peterson译码方法如下:1.计算伴随式。已知接受向量 R(x),则S二R),i=1,2,.2t2求解错误位置。引入错误位置多项式,将求解错误位置的问题转化为 求解线性方程组的问题SeS+Se/2+.+Se二Se+1Se+11 +Se_2+ +S2% = Se+2024。1 *S2e/2 + +S3e =S2e3用Peterson译码方

3、法译码,解出错误位置多项式系数和错误图样,得到估值码字。(1) .假设e=t,计算S行列式M的值。M=0则降阶,e=e-1,同样计算 直到M工0.(2) 将上面得到的2t个连续根代入试根,求上述方程组解。取倒数即为 错误位置。由此写出错误图样。(3) 求出译码。每一步具体的实现方法,详见程序源代码注释三、程序框图编码框图结束过信道框图译码框图输入R (x)输出四、实验结果分析结果截图:Comiinandl Window New to MATLAB? Watch thts Vkieo, sm Dang or read 右ettinci Etmrt总d.X简易0瞬匹译码至统騎入码底冲23措误:只吏

4、持本原BC胸输入SJ长冲12亍輛入纠借能力龙比计算谓円长k=35自动生龌机信息序输入1,手动毬人信息厢列騎入Q :L随机生般的和 I尿 OQlQtOlt OlOlOOflOQl Q 010】1 t I 0 0 I 0 0 G I骗码后为 OOLOlOllOlOLOOOOOl 10 011011 L 0 010 001迂高斯白信道输入1,过理想信追输扎0 :I轴入信道信噪比(单恆舟贝苗左右较合适):10接权闷宇肯(OlOjOllOlOlCOOOflllOOl LtJl L I 00 I C Q 01111发送玛字知。OlOlQllQlOlOOOOOllOOllOllLlOOlOOQllll 通过

5、信道辰出惜i位错误圈徉曲 OOQOOQOOQOCOQCOQCOQCOQCQOCQOOflOOOOQOO 译码结果为 00101011010100000110011011 L 10 010 001 L还版信息序列光卅=Q 01 a 10 L L 0 L Q 1 a 00 a 01 L 00 I lOllllflOlOOOL译码正确A I上面是较高信噪比时127位BCH正确译码F面是较低信噪比时127为BCH错误译码 N&.j to MAILAfi? Watch ths 如,5ee Errws, or read :mrtina Pmrtmtl-一简易BCI除码译码甬统一-输入即长21即输入错能力仁

6、6计算得玛检85自动主战随机信息斥列谕入1,手咖扎信息用列ffiAO :I0 0 10 10 0 10 0 0 10 10 0 0 10 1随机主战肘序列为si= 1 L ldodidoioii编码后生成码序列为1110001001011过高斯白信遒输入1,辻理想ft道输入a :I输入宿道偿噪比位分贝,15右较舍适,;510 10 010 111揍牧码宇为L1L1LOO011OO发送码字曲I I L 00 0 L 0 0 I 0 1通过信道后岀猎25位艇图捧为 OOOOOOOOOOOOOOOOOCOOOCOOOO 00000000000 彌结臬为 liiiiOOOiiQOJtOOlClLill

7、lllQlQliliOiQO 佶息斥列为 I = JlJ00010O101L100L0lllIlill0000101 译码错误Al1 011010100100001000000000结果框内容(加粗部分是手动输入内容,下划线是结果重点)-简易BCH编码译码系统-输入码长n=128错误:只支持本原BCH码输入码长n=127输入纠错能力t= 6计算得码长k=85自动生成随机信息序列输入1,手动键入信息序列输入0 :1随机生成的序列为m=0010101101010000010 0 1101111001000111110110 0 0 0000011111110101000010 1110111010

8、11 1011编码后生成码序列为0010101101010000010 0 1101111001000111110110 0 0 0000011111110101000010 111011101011101110010010 0 0 1001000010111100101010 10 101110过咼斯白信道输入1,过理想信道输入0 :1输入信道信噪比(单位分贝,15左石较合适):10接收码字为00101011010100000110110 1111001000111110110000 0 0 00111111111010000110110 111010111001100100100010 0

9、 10000101111001011100110 1110发送码字为00101011010100000110110 1111001000111110110000 0 0 00111111101010000110110 111010111011100100100010 0 10000101111001010110110 1110通过信道后出错4位错误图样为000000000000000000000 0 0 0000000000000000000000 0 0 0000000001000000000000 0 0 0000000001000000000000 0 0 000000000000000

10、0101000 0 0 000译码结果为00101011010100000110110 1111001000111110110000 0 0 0011111110101000011011101110101110111001001000 0100100001011110010101101 0 10 1110还原信息序列为 m = 001010110101000001 1001101111001000111110110 000000001 1111110101000011 01110111010111011译码正确五、实验小结整个过程严格按照所学BCH码相关知识编写,所得结论完全正确。六、源代码c

11、lc clear allwhile aAi=aA(2*l) %找共轭根系while aAi=aA(2*l) %找共轭根系%disp(-简易BCH编码译码系统-)flag=1;while(flag)%n=input(输入码长 n=);m=0;while(2Am-1=n&m=floor( (n-1)/2)|(t=0.5r(i)=1;else r(i)=0;endenddisp(接收码字为 ,num2str(r)disp(发送码字为 ,num2str(c)enum=0;for i=1:nif r(i)=c(i)enum=enum+1;endenddisp( 通过信道后出错 ,num2str(enum

12、),位 )%s=a+a; %for i=1:2*ts(i)=a+a;for j=1:n s(i)=s(i)+r(j)*aA( (n -j)*i);endendfor e=t:-1:1%A=a+a;for i=1:efor j=1:eA(i,j)=s(e+i-j);endendif det(A)=0 break; %endendd=rank(A);%B=a+a;for i=1:dB(i)=s(d+i);endif A=a+a%cc=r;E=zeros(1,n);elsesigma=A(B); %E=zeros(1,n);x=a+a;构造伴随式 , 初始化 s降阶判断行列式是否为奇异开始求方程组接

13、受的码字出错的情况错误位置多项式的系数, 是就继续降ki=1;for i=1:n % 试根h=aA0;for j=1:dh=h+sigma(j)*aA(i*j);endif h=a+a错误图样 , 可以不用求具体根, 找到位置即可x(k)=aA(n-i);E(i)=1; % ki=ki+1;endendcc=mod(E+r,2); % 校正接收码字enddisp(错误图样为 ,num2str(E)disp(译码结果为 ,num2str(cc)m=c(1:k);disp(还原信息序列为 m = ,num2str(m)if cc=c disp( 译码正确 ) else disp( 译码错误 ) end

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1