利用Matlab进行BCH编码、译码仿真

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

沈阳理工大学通信系统课程设计报告1利用Matlab进行BCH编码、译码仿真1.课程设计目的(1)掌握BCH编码、译码。(2)通过Matlab仿真,加深对BCH编码理解。(3)锻炼运用所学知识,独立分析问题、解决问题的综合能力。沈阳理工大学通信系统课程设计报告22.课程设计要求了解BCH编码是建立在严格的代数数学基础上的,就有限域和扩域进行了介绍;就BCH码相关的基础知识(BCH码定义、码长、生成多项式等等)进行学习,了解BCH码的编码和译码过程;介绍了彼得森译码算法程序框图,了解彼得森译码的过程与原理。最后利用Matlab编程分析BFSK在加性高斯白噪声信道的误码率性能;通过Simulink建立BFSK+信道编码(取BCH码)在加性高斯白噪声信道下的仿真模型,从信源—BCH编码—BPSK调制—高斯信道—BPSK解调—BCH译码—信宿,设置好每个模块的参数,编写好主程序实现BFSK的输入,在程序运行过程中间调用BFSK仿真模型,仿真结果出现没有经过BCH编码的误码率曲线图和经过BCH编码后的误码率曲线图,根据仿真误码率曲线走势进行分析,注意分析不同的纠错能力对误码率性能的影响,不同的纠错能力对译码复杂度的影响(用译码的时间长短作为对其复杂度影响的参数,时间长则说明复杂度大,)通过分析后得出结论进行总结、展望。3.相关知识BCH码定义:BCH码1959年由Hocquenghem、1960年由Bose和Chandhari分别独立提出。BCH码是能够纠正多个随机错误的循环码,可以用生成多项式g(x)的根描述。给定任一有限域GF(q)及其扩域GF(mq),其中q是素数或或者某一素数的幂,m为某一正整数。设='GF(2m),l是任意整数,是GF(2m)的本源元,若V是码元取沈阳理工大学通信系统课程设计报告3自GF(2)上码长为n的循环码,他的生成多项式g(x)含有以下2t个根、2、、、2t,则由g(x)生成的循环码称为二元BCH码,若、2、、、2t中有一个是本原元,则g(x)生成的码称为本原BCH码。要考虑g(x)能否生成本原BCH码,将要考虑、2、、、2t中是否有一个本源元,实际上只要考虑是本原元,g(x)生成本原BCH码,若不是本原元,则i也一定不是本原元,因而生成本原BCH码。设i阶为ie,i=1,2,3,、、、,2t,则以、2、、、2t为根的BCH码的码长N=LCM(1e,2e,….2te)。若、2、、、2t的极小多项式分别为1m(x),2m(x),…,2tm(x).2.生成多项式g(x)以、2、、、2t为根的BCH码的生成多项式可以写成g(x)=LCM(1m(x),2m(x),…2tm(x)),由极小多项式的性质可以知道,i与()i的平方,有相同的极小多项式,因此以、2、、、2t为根的BCH码的生成多项式可以简化成g(x)=LCM(1m(x),3m(x),…21tm(x))这个g(x)=LCM(1m(x),2m(x),…2tm(x))中多以取最小公倍,是要在1m(x),2m(x),…2tm(x)中去掉那些相同的极小多项式,既然g(x)=LCM(1m(x),3m(x),…21tm(x))中已经把i的极沈阳理工大学通信系统课程设计报告4小多项式相同的去掉啦,是否可以把g(x)=LCM(1m(x),3m(x),…21tm(x))中最小公倍符号省略,直接写成1m(x),3m(x),…21tm(x)的形式,回答是否定的,这是因为,虽然1m(x),3m(x),…21tm(x)中已经去掉了一些相同的极小多项式,但是不一定去掉了所有的与1m(x)相同的极小多项式,5.码长n由g(x)=LCM(1m(x),3m(x),…21tm(x))可以知道,以、2、、、2t为根的BCH码的码长n=LCM(1e,2e,….21te)。若的阶为1e,则i的阶是1e的因子,因此码长公式可以简化为n=LCM(1e,3e,…,21te)=1e.设是GF(2m)的本原元,=l,则的阶1e=21(,21)mml即以、2、、、2t为根的BCH码的码长为n=21(,21)mml4.课程设计分析4.1BCH码的编码BCH码是循环码的一种,满足循环码的编码方法,令给定的编码方式为(n,k)生成多项式为g(x),信息码多项式为m(x)编码的步骤如下:1、用x(n-k)乘以m(x),这一运算相当于是把信息位码后附加上(n-k)个“0”.2.用g(x)除x(n-k)m(x),得到商Q(x)和余式r(x),即x(n-k)m(x)/g(x)=Q(x)+r(x)/g(x)。3.编码后的输出为T(x)=x(n-k)m(x)+r(x)。沈阳理工大学通信系统课程设计报告54.2BCH码的译码BCH码的译码方法可以有时域译码和频域译码两类。频移译码是把每个码组看成一个数字信号,把接受到的信号进行离散傅氏变换(DFT),然后利用数字信号处理技术在“频域”内译码,最后进行傅氏反变换得到译码后的码组。时域译码则是在时域直接利用码的代数结构进行译码。BCH的时域译码方法有很多,而且纠多个错误的BCH码译码算法十分复杂。常见的时域BCH译码方法有彼得森译码、迭代译码等。事实上,BCH码是一种特殊的循环码,因此它的编码器不但可以象其它循环码那样用除法器来实现,而且原则上所有适合循环码译码的方法也可以用于BCH码的译码。BCH译码的一般原理将求解错误位置转化为解线性方程组的问题,但是当设计纠错能力t比较大时,要不断对系数矩阵进行降阶处理,直到求到一个满秩的exe阶方阵为止,还是比较复杂的运算,Berlekamp的发现从根本上解决了BCH码译码的算法复杂度,得到了广泛的应用。5.仿真5.1仿真实现的思想方法先用Simulink建立BFSK+信道编码(取BCH码)在加性高斯白噪声信道下的仿真模型,设置好每个模块的参数,编写好主程序实现BFSK的输入,在程序运行过程中间调用BFSK仿真模型,将不同纠错能力的误码率曲线在一个仿真结果图里展现;分析随着信噪比的增加,误码率曲线的走势,在不同的纠错能力t下,分析(15.7.2)(15.5.3)的误比特率随信噪比的走势,记录仿真所用的不同的时间,用时间作为译码复杂度的参数。根据仿真结果分析不同的纠错能力对编码性能的影响,不同的纠错能力对译码复杂度的影响。沈阳理工大学通信系统课程设计报告65.2仿真实现的功能说明通过调用已建立的BFSK+信道编码(取BCH码)在加性高斯白噪声信道(有突发干扰)下的仿真模型,利用Matlab编程分析BFSK在加性高斯白噪声信道的误码率性能;分析不同纠错能力对误码率性能的影响和不同的纠错能力对译码复杂度的影响,根据仿真图的结果得出进行分析得出结论。5.3程序源代码与界面图clearall;clc;SNR=0.1:0.1:10;Errorrate=zeros(1,100);Errorrate_1=zeros(1,100);fori=1:100simBCH;Errorrate(i)=ErrorVec(1);Errorrate_1(i)=ErrorVec_1(1);endsemilogy(SNR,Errorrate,'r');grid;xlabel('SNR');ylabel('Errorrate');holdon;semilogy(SNR,Errorrate_1,'b');(4)Simulink框图及参数设置①BCH信道编码仿真模型沈阳理工大学通信系统课程设计报告7沈阳理工大学通信系统课程设计报告8沈阳理工大学通信系统课程设计报告9沈阳理工大学通信系统课程设计报告10沈阳理工大学通信系统课程设计报告11沈阳理工大学通信系统课程设计报告12沈阳理工大学通信系统课程设计报告136.结果分析通过理论与编程实践,我完成了这次设计的任务,其运行结果如图所示:沈阳理工大学通信系统课程设计报告14(n.k.t)曲线颜色仿真所用时间仿真次数译码复杂度正影响大小(15.5.3)红色11min10000小(15.7.2)绿色5min10000大实验结果分析1.误比特率随着信噪比的增加在逐渐下降。2.通过BCH编码以后的误比特率比未经过BCH编码的误比特率在相同的信噪比参数下,其误比特率有明显的下降,编码性能得到改善。3.随着信噪比的增加误比特率在逐渐下降,当增大到一定值的时候,误比特率趋向于零。4.理论上在信噪比比较小的情况下,编码后的误码性能没有未编码的无码性能好,也就是在信噪比比较低的情况下,未编码和经过编码后的误比特率曲线会有交点。5.(15.7)的误比特率低于(15.5),说明(15.7)的编码性能好。7.设计总结:这次通过对BCH编码解码课设,学会了BCH码的原理。而且通过此次实验更是加深了MATLAB在通信领域的应用,及通过matlab对信号仿真的重要性,并且提高自己的动手能力和编程能力。在此过程中,沈阳理工大学通信系统课程设计报告15感谢老师的指导和同学们的帮助,使我能够顺利完成实验。8.参考文献:[1]樊昌信,曹丽娜.通信原理.国防工业出版社,2010[2]徐明远,邵玉斌.MATLAB仿真在通信系统与电子工程中的应用.西安电子科技出版社,2009

1 / 15
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功