BCH编码仿真.docx
《BCH编码仿真.docx》由会员分享,可在线阅读,更多相关《BCH编码仿真.docx(16页珍藏版)》请在冰豆网上搜索。
沈阳理工大学通信系统课程设计报告
摘要
本课设的主要内容是介绍了信道编码中的BCH码(BCH码的定义、编码、译码、解码)。
BCH码是一类重要的循环码,能纠正多个错误,通过调用已建立的BFSK+信道编码(取BCH码)在加性高斯白噪声信道下的仿真模型,利用Matlab编程分析BFSK在加性高斯白噪声信道的误码率性能;通过Simulink建立BFSK+信道编码(取BCH码)在加性高斯白噪声信道下的仿真模型,设置好每个模块的参数,编写好主程序实现BFSK的输入,在程序运行过程中间调用BFSK仿真模型,观察没加信道编码的误码率和通过BCH编码的误码率;分析随着信噪比的增加误码率的变化。
看看通过信道编码后对误码率的改善程度。
分析不同的纠错能力对误码率性能的影响,分析不同的纠错能力对译码复杂度的影响。
关键词:
BCH码;Matlab;Simulink;BFSK
II
沈阳理工大学通信系统课程设计报告
目录
1.课程设计目的 1
2.课程设计要求 1
3.相关知识 1
3.1MATLAB简介 1
3.1.1基本功能 1
3.1.2MATLAB产品应用 2
3.1.3MATLAB特点 2
3.1.4MATLAB系列工具优势 2
3.2 Simulink简介 3
3.2.1 Simulink功能 3
3.2.2 Simulink特点 4
4.课程设计分析 5
4.1BCH码说明 5
4.2思想方法 6
4.3功能说明 6
5.仿真 7
5.1Simulink框图及参数设置 7
5.1.1BCH系统框图 7
5.1.2参数设置 7
5.1.3仿真结果 11
6.结果分析 11
7.参考文献 12
II
BCH编码
1.课程设计目的
(1)掌握BCH编码。
(2)通过Matlab仿真,加深对BCH编码理解。
(3)锻炼运用所学知识,独立分析问题、解决问题的综合能力。
2.课程设计要求
了解BCH编码是建立在严格的代数数学基础上的,就有限域和扩域进行了介绍;就BCH码相关的基础知识(BCH码定义、码长、生成多项式等等)进行学习,了解BCH码的编码和译码过程;介绍了彼得森译码算法程序框图,了解彼得森译码的过程与原理。
最后利用Matlab编程分析BFSK在加性高斯白噪声信道的误码率性能;通过Simulink建立BFSK+信道编码(取BCH码)在加性高斯白噪声信道下的仿真模型。
3.相关知识
3.1MATLAB简介
3.1.1基本功能
MATLAB是很实用的数学软件它在数学类科技应用软件中在数值运算方面首屈一指。
MATLAB可以进行运算、绘制函数和数据、实现算法、创建用户界面、连接接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、金融建模设计与分析等领域。
MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且mathwork也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。
可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用。
3.1.2MATLAB产品应用
MATLAB产品族可以用来进行以下各种工作:
●数值分析
●数值和符号计算
●工程与科学绘图
●控制系统的设计与仿真
●数字信号处理技术
●通讯系统设计与仿真
3.1.3MATLAB特点
●此高级语言可用于技术计算
●此开发环境可对代码、文件和数据进行管理
●交互式工具可以按迭代的方式探查、设计及求解问题
●二维和三维图形函数可用于可视化数据
●各种工具可用于构建自定义的图形用户界面
3.1.4MATLAB系列工具优势
(1)友好的工作平台和编程环境
MATLAB由一系列工具组成。
这些工具方便用户使用MATLAB的函数和文件,其中许多工具采用的是图形用户界面。
包括MATLAB桌面和命令窗口、历史命令窗口、编辑器和调试器、路径搜索和用于用户浏览帮助、工作空间、文件的浏览器。
随着MATLAB的商业化以及软件本身的不断升级,MATLAB的用户界面也越来越精致,更加接近Windows的标准界面,人机交互性更强,操作更简单。
而且新版本的MATLAB提供了完整的联机查询、帮助系统,极大的方便了用户的使用。
简单的编程环境提供了比较完备的调试系统,程序不必经过编译就可以直接运行,而且能够及时地报告出现的错误及进行出错原因分析。
(2)简单易用的程序语言
MATLAB一个高级的矩阵/阵列语言,它包含控制语句、函数、数据结构、输入和输出和面向对象编程特点。
用户可以在命令窗口中将输入语句与执行命令同步,也可以先编写好一个较大的复杂的应用程序(M文件)后再一起运行。
新版本的MATLAB语言是基于最为流行的C++语言基础上的,因此语法特征与C++语言极为相似,而且更加简单,更加符合科技人员对数学表达式的书写格式。
使之更利于非计算机专业的科技人员使用。
而且这种语言可移植性好、可拓展性极强,这也是MATLAB能够深入到科学研究及工程计算各个领域的重要原因。
(3)强大的科学计算机数据处理能力
MATLAB是一个包含大量计算算法的集合。
其拥有600多个工程中要用到的数学运算函数,可以方便的实现用户所需的各种计算功能。
函数中所使用的算法都是科研和工程计算中的最新研究成果,而前经过了各种优化和容错处理。
在通常情况下,可以用它来代替底层编程语言,如C复数的各种运算、三角函数和其他初等数学运算、多维数组操作以及建模动态仿真等。
3.2Simulink简介
3.2.1Simulink功能
Simulink是MATLAB中的一种可视化仿真工具,是一种基于MATLAB的框图设计环境,是实现动态系统建模、仿真和分析的一个软件包,被广泛应用于线性系统、非线性系统、数字控制及数字信号处理的建模和仿真中。
Simulink可以用连续采样时间、离散采样时间或两种混合的采样时间进行建模,它也支持多速率系统,也就是系统中的不同部分具有不同的采样速率。
为了创建动态系统模型,Simulink提供了一个建立模型方块图的图形用户接口(GUI),这个创建过程只需单击和拖动鼠标操作就能完成,它提供了一种更快捷、直接明了的方式,而且用户可以立即看到系统的仿真结果。
Simulink是用于动态系统和嵌入式系统的多领域仿真和基于模型的设计工具。
对各种时变系统,包括通讯、控制、信号处理、视频处理和图像处理系统,Simulink提供了交互式图形化环境和可定制模块库来对其进行设计、仿真、执行和测试。
.
构架在Simulink基础之上的其他产品扩展了Simulink多领域建模功能,也提供了用于设计、执行、验证和确认任务的相应工具。
Simulink与MATLAB紧密集成,可以直接访问MATLAB大量的工具来进行算法研发、仿真的分析和可视化、批处理脚本的创建、建模环境的定制以及信号参数和测试数据的定义。
3.2.2Simulink特点
丰富的可扩充的预定义模块库
交互式的图形编辑器来组合和管理直观的模块图
以设计功能的层次性来分割模型,实现对复杂设计的管理
通过ModelExplorer导航、创建、配置、搜索模型中的任意信号、参数、属性,生成模型代码
提供API用于与其他仿真程序的连接或与手写代码集成
使用EmbeddedMATLAB™模块在Simulink和嵌入式系统执行中调用MATLAB算法
使用定步长或变步长运行仿真,根据仿真模式(Normal,Accelerator,RapidAccelerator)来决定以解释性的方式运行或以编译C代码的形式来运行模型
图形化的调试器和剖析器来检查仿真结果,诊断设计的性能和异常行为
可访问MATLAB从而对结果进行分析与可视化,定制建模环境,定义信号参数和测试数据
模型分析和诊断工具来保证模型的一致性,确定模型中的错误
4.课程设计分析
4.1BCH码说明
BCH码1959年由Hocquenghem、1960年由Bose和Chandhari分别独立提出。
BCH码是能够纠正多个随机错误的循环码,可以用生成多项式g(x)的根描述。
给定任一有限域GF()及其扩域GF(),其中q是素数或或者某一素数的幂,m为某一正整数。
设=GF(),l是任意整数,是GF()的本源元,若V是码元取自GF
(2)上码长为n的循环码,他的生成多项式g(x)含有以下2t个根、….,则由g(x)生成的循环码称为二元BCH码,若、、、、中有一个是本原元,则g(x)生成的码称为本原BCH码。
要考虑g(x)能否生成本原BCH码,将要考虑、、、、中是否有一个本源元,实际上只要考虑是本原元,g(x)生成本原BCH码,若不是本原元,则也一定不是本原元,因而生成本原BCH码。
设阶为,i=1,2,3,、、、,2t,则
以、、、、为根的BCH码的码长
若、、、、的极小多项式分别为(x),(x),…,(x),生成多项式g(x)以、、、、为根的BCH码的生成多项式可以写成g(x)=LCM((x),(x),…(x)),由极小多项式的性质可以知道,与的平方,有相同的极小多项式,因此以、、、、为根的BCH码的生成多项式可以简化成
g(x)=LCM((x),(x),…(x))(3.2)
这个g(x)=LCM((x),(x),…(x))中多以取最小公倍,是要在(x),(x),…(x)中去掉那些相同的极小多项式,既然g(x)=LCM((x),(x),…(x))中已经把的极小多项式相同的去掉啦,是否可以把g(x)=LCM((x),(x),…(x))中最小公倍符号省略,直接写成(x),(x),…(x)的形式,回答是否定的,这是因为,虽然(x),(x),…(x)中已经去掉了一些相同的极小多项式,但是不一定去掉了所有的与(x)相同的极小多项式,由g(x)=LCM((x),(x),…(x))可以知道,以、、、、为根的BCH码的码长n=LCM(,,….)。
若的阶为,则的阶是的因子,因此码长公式可以简化为n=LCM(,,…,)=.
设是GF()的本原元,=,则的阶
(3.3)
即以、、、、为根的BCH码的码长为
(3.4)
4.2思想方法
先用Simulink建立BFSK+信道编码(取BCH码)在加性高斯白噪声信道下的仿真模型,设置好每个模块的参数,编写好主程序实现BFSK的输入,在程序运行过程中间调用BFSK仿真模型,将不同纠错能力的误码率曲线在一个仿真结果图里展现;分析随着信噪比的增加,误码率曲线的走势,在不同的纠错能力t下,分析(15.7.2)(15.5.3)的误比特率随信噪比的走势,记录仿真所用的不同的时间,用时间作为译码复杂度的参数。
根据仿真结果分析不同的纠错能力对编码性能的影响,不同的纠错能力对译码复杂度的影响。
4.3功能说明
通过调用已建立的BFSK+信道编码(取BCH码)在加性高斯白噪声信道(有突发干扰)下的仿真模型,利用Matlab编程分析BFSK在加性高斯白噪声信道的误码率性能;分析不同纠错能力对误码率性能的影响和不同的纠错能力对译码复杂度的影响,根据仿真图的结果得出进行分析得出结论。
5.仿真
5.1Simulin