当前位置:文档之家› BCH编码仿真

BCH编码仿真

BCH编码仿真
BCH编码仿真

BCH编码仿真

1.课程设计目的

(1)掌握BCH编码。

(2)通过Matlab仿真,加深对BCH编码理解。

(3)锻炼运用所学知识,独立分析问题、解决问题的综合能力。

2.课程设计要求

了解BCH编码是建立在严格的代数数学基础上的,就有限域和扩域进行了介绍;就BCH码相关的基础知识(BCH码定义、码长、生成多项式等等)进行学习,了解BCH 码的编码和译码过程;介绍了彼得森译码算法程序框图,了解彼得森译码的过程与原理。最后利用Matlab编程分析BFSK在加性高斯白噪声信道的误码率性能;通过Simulink 建立BFSK+信道编码(取BCH码)在加性高斯白噪声信道下的仿真模型,从信源—BCH 编码—BPSK调制—高斯信道—BPSK解调—BCH译码—信宿,设置好每个模块的参数,编写好主程序实现BFSK的输入,在程序运行过程中间调用BFSK仿真模型,仿真结果出现没有经过BCH编码的误码率曲线图和经过BCH编码后的误码率曲线图,根据仿真误码率曲线走势进行分析,注意分析不同的纠错能力对误码率性能的影响,不同的纠错能力对译码复杂度的影响(用译码的时间长短作为对其复杂度影响的参数,时间长则说明复杂度大,)通过分析后得出结论进行总结、展望。

3.相关知识

3.1 BCH码定义

BCH 码1959 年由Hocquenghem、1960 年由Bose和Chandhari分别独立提出。BCH码是能够纠正多个随机错误的循环码,可以用生成多项式g(x)的根描述。给定任

一有限域GF(q)及其扩域GF(m q ), 其中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 β阶为i e ,i=1,2,3,、、、,2t ,则以β、2β、、、2t β为根的BCH 码的码长 N=LCM(1e ,2e ,….2t e )

若β、2β、、、2t β的极小多项式分别为1m (x ),2m (x ),…,2t m (x ),生成多项式g (x )

以β、2β、、、2t

β为根的BCH 码的生成多项式可以写成g (x )=LCM (1

m (x ),2

m (x ),…

2t m (x )

),由极小多项式的性质可以知道,i β与()i

β的平方,有相同的极小多项式,因此以β、2β、、、2t β为根的BCH 码的生成多项式可以简化成

g (x )=LCM (1m (x ),3m (x ),…21t m -(x ))

这个g (x )=LCM (1m (x ),2m (x ),…2t m (x ))中多以取最小公倍,是要在1m (x ),

2m (x ),…2t m (x )

中去掉那些相同的极小多项式,既然g (x )=LCM (1m (x ),3m (x ),…21t m -(x ))中已经把i

β的极小多项式相同的去掉啦,是否可以把g (x )=LCM (1m (x ),

3m (x ),…21t m -(x ))中最小公倍符号省略,直接写成1m (x ),3m (x ),…21t m -(x )的形式,回答是否定的,这是因为,虽然1m (x ),3m (x ),…21t m -(x )中已经去掉了一些相同的极小多项式,但是不一定去掉了所有的与1m (x )相同的极小多项式,由g (x )=LCM (

1

m (x ),

3

m (x ),…

21

t m -(x ))可以知道,以β、2β、、、2t β为根的BCH

码的码长n=LCM(1e ,2e ,….21t e -)。若β的阶为1e ,则i β的阶是1e 的因子,因此码长公式可以简化为n=LCM(1e ,3e ,…,21t e -)=1e . 设α是GF (2m )的本原元,β=l α,则β的阶

1e =21(,21)

m m l -- 即以β、2β、、、2t β为根的BCH 码的码长为

n=21(,21)

m m

l -- 4课程设计分析 4.1 思想方法

先用Simulink 建立BFSK+信道编码(取BCH 码)在加性高斯白噪声信道下的仿真模型,设置好每个模块的参数,编写好主程序实现BFSK 的输入,在程序运行过程中间调用BFSK 仿真模型,将不同纠错能力的误码率曲线在一个仿真结果图里展现;分析随着信噪比的增加,误码率曲线的走势,在不同的纠错能力t 下,分析(15.7.2)(15.5.3)的误比特率随信噪比的走势,记录仿真所用的不同的时间,用时间作为译码复杂度的参数。根据仿真结果分析不同的纠错能力对编码性能的影响,不同的纠错能力对译码复杂度的影响。

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 )。

4.2 功能说明

通过调用已建立的BFSK+信道编码(取BCH码)在加性高斯白噪声信道(有突发干扰)下的仿真模型,利用Matlab编程分析BFSK在加性高斯白噪声信道的误码率性能;分析不同纠错能力对误码率性能的影响和不同的纠错能力对译码复杂度的影响,根据仿真图的结果得出进行分析得出结论。

5 仿真

5.1源代码

clear all;

clc;

SNR=0.1:0.1:10;

Errorrate=zeros(1,100);

Errorrate_1=zeros(1,100);

for i=1:100

sim BCH;

Errorrate(i)=ErrorVec(1);

Errorrate_1(i)=ErrorVec_1(1);

end

semilogy(SNR,Errorrate,'r');grid;

xlabel('SNR');

ylabel('Errorrate');

hold on;

semilogy(SNR,Errorrate_1,'b');

5.2 Simulink框图及参数设置

5.2.1 系统框图

图5.1 系统框图

5.2.2参数设置

图5.2信号发生器参数设置

图5.3BCH码编码器参数设置

图5.4BPSK调制器参数设置

图5.5高斯信道参数设置

图5.6BPSK解调器参数设置

图5.7BCH解码器参数设置

图5.8误码率计算参数设置

6运行结果

图6.1仿真结果

结果分析总结:

误比特率随着信噪比的增加在逐渐下降。

通过BCH编码以后的误比特率比未经过BCH编码的误比特率在相同的信噪比参数下,其误比特率有明显的下降,编码性能得到改善。

随着信噪比的增加误比特率在逐渐下降,当增大到一定值的时候,误比特率趋向于零。

理论上在信噪比比较小的情况下,编码后的误码性能没有未编码的无码性能好,也就是在信噪比比较低的情况下,未编码和经过编码后的误比特率曲线会有交点。

这次通过对BCH 编码解码课设,学会了BCH码的原理。而且通过此次实验更是加深了MATLAB在通信领域的应用,及通过matlab对信号仿真的重要性,并且提高自己的动手能力和编程能力。在此过程中,感谢老师的指导和同学们的帮助,使我能够顺利完成实验。

7参考文献

[1] 许波,刘征《MATLAB工程数学应用》北京:清华大学出版社,2000

[2] 李庆杨,关治,白峰杉《数值计算原理》北京:清华大学出版社,2000

[3] 樊昌信,曹丽娜《通信原理》国防工业出版社,2010

[4] 邓华,等《MATLAB通信仿真及应用实例详解》北京:人民邮电出版社,2003

[5] 吴湘淇《信号、系统及信号处理》北京:电子工出版社,1999

[6] 徐明远,邵玉斌《MATLAB仿真在通信系统与电子工程中的应用》西安电子科技

出版社,2009

相关主题
文本预览
相关文档 最新文档