Simulink基于BPSK调制与BCH码仿真报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Simulink基于BPSK调制与BCH码仿真报告
摘要
主要内容是介绍了信道编码中的BCH码(BCH码的定义、编码、译码、解码)。BCH码是一类重要的循环码,能纠正多个错误,通过调用已建立的BFSK+信道编码(取BCH码)在加性高斯白噪声信道下的仿真模型,利用Matlab编程分析BFSK在加性高斯白噪声信道的误码率性能;先用Simulink建立BFSK+信道编码(取BCH码)在加性高斯白噪声信道下的仿真模型,设置好每个模块的参数,编写好主程序实现BFSK的输入,在程序运行过程中间调用BFSK仿真模型,画出没加信道编码的误码率曲线和通过BCH编码的误码率曲线;分析随着信噪比的增加误码率曲线的走势。看看通过信道编码后对误码率的改善程度。通过改变码长或信息位数数值,分析信噪比与误码率的走势。观看误码率的改善情况。
目录
摘要 (1)
一、背景 (3)
1.1软件介绍 (3)
1.2 BCH码 (3)
1.2.1 BCH码定义: (3)
1.2.2 生成多项式g(x) (4)
1.2.3 码长n (4)
1.3 BCH码的编码 (5)
1.4 BCH码的译码 (5)
二、目的和要求 (5)
三、系统设计与仿真 (6)
3.1系统框架图 (6)
3.2 仿真图 (6)
3.3 系统参数设置 (8)
四、测试结果 (11)
4.1 通过有无BCH编码仿真系统的运行得到如下图 (11)
4.2 通过有BCH编码仿真系统示波器观察编码前后和解码前后波形 (12)
4.3码长相同的情况不同信息位数误码率与信噪比 (13)
4.4 相同纠错个数情况下不同码长对误码率的影响 (14)
五、总结 (14)
参考文献 (15)
一、背景
1.1软件介绍
Simulink是MATLAB最重要的组件之一,它提供一个动态系统建模、仿真和综合分析的集成环境。在该环境中,无需大量书写程序,而只需要通过简单直观的鼠标操作,就可构造出复杂的系统。Simulink具有适应面广、结构和流程清晰及仿真精细、贴近实际、效率高、灵活等优点,并基于以上优点Simulink已被广泛应用于控制理论和数字信号处理的复杂仿真和设计。同时有大量的第三方软件和硬件可应用于或被要求应用于Simulink。
是一种基于MATLAB的框图设计环境,是实现动态系统建模、仿真和分析的一个软件包,被广泛应用于线性系统、非线性系统、数字控制及数字信号处理的建模和仿真中。Simulink可以用连续采样时间、离散采样时间或两种混合的采样时间进行建模,它也支持多速率系统,也就是系统中的不同部分具有不同的采样速率。为了创建动态系统模型,Simulink提供了一个建立模型方块图的图形用户接口(GUI) ,这个创建过程只需单击和拖动鼠标操作就能完成,它提供了一种更快捷、直接明了的方式,而且用户可以立即看到系统的仿真结果。
1.2 BCH码
1.2.1 BCH码定义:BCH 码1959 年由Hocquenghem、1960 年由Bose 和Chandhari分别独立提出。BCH码是能够纠正多个随机错误的循环码,可以用生成多项式g(x)的根描述。给定任一有限域GF(q)及其扩域GF(mq),其中q 是素数或或者某一素数的幂,m为某一正整数。设 =' GF(2m),l是任意整数, 是GF(2m)的本源元,若V是码元取自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).
1.2.2 生成多项式g(x)
以 、2 …2t 为根的BCH码的生成多项式可以写成g(x)=LCM(1m(x),2 m(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),…21 tm BCH码的分析与仿真 10 (x))中已经把i 的极小多项式相同的去掉啦,是否可以把g(x)=LCM(1m(x),3m(x),…21tm (x))中最小公倍符号省略,直接写成1m(x),3m(x),…21tm (x)的形式,回答是否定的,这是因为,虽然1m(x),3m(x),…21tm (x)中已经去掉了一些相同的极小多项式,但是不一定去掉了所有的与1m(x)相同的极小多项式,
1.2.3 码长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
1.3 BCH码的编码
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)。
1.4 BCH码的译码
BCH码的译码方法可以有时域译码和频域译码两类。频移译码是把每个码组看成一个数字信号,把接受到的信号进行离散傅氏变换(DFT),然后利用数字信号处理技术在“频域”内译码,最后进行傅氏反变换得到译码后的码组。时域译码则是在时域直接利用码的代数结构进行译码。BCH的时域译码方法有很多,而且纠多个错误的BCH码译码算法十分复杂。常见的时域BCH译码方法有彼得森译码、迭代译码等。事实上,BCH码是一种特殊 BCH码的分析与仿真 11 的循环码,因此它的编码器不但可以象其它循环码那样用除法器来实现,而且原则上所有适合循环码译码的方法也可以用于BCH码的译码。BCH译码的一般原理将求解错误位置转化为解线性方程组的问题,但是当设计纠错能力t比较大时,要不断对系数矩阵进行降阶处理,直到求到一个满秩的exe阶方阵为止,还是比较复杂的运算,Berlekamp的发现从根本上解决了BCH码译码的算法复杂度,得到了广泛的应用。
二、目的和要求
先用Simulink建立BFSK+信道编码(取BCH码)在加性高斯白噪声信道下的仿真模型,设置好每个模块的参数,编写好主程序实现BFSK的输入,在程序运行过程中间调用BFSK仿真模型,画出没加信道编码的误码率曲线和通过BCH编码的误码率曲线;分析随着信噪比的增加误码率曲线的走势。看看通过信道编码后对误码率的改善程度。