福建农林大学计算机与信息学院
信息工程类
实践报告
课程名称:
基于 BPSK 调制的 BCH 码仿真
实践报告题目:
BCH 码的仿真
姓
专
年
学
名:
系:
业:
级:
号:
指导教师:
职
称:
电子信息工程系
电子信息工程
2015
谢秀娟
讲师
2013 年 12 月 31 日
福建农林大学计算机与信息学院信息工程类
实践结果评定
评语:
成绩:
指导教师签字:
任务下达日期:2013.11.26
评定日期:
目
录
1 实践目的 ………………………………………………………………………4
2 实践要求 ………………………………………………………………………4
3 实践报告内容 …………………………………………………………………4
3.1 BCH 编码的定义 ……………………………………………………………4
3.2 BCH 的编码 …………………………………………………………………5
3.3 BCH 的译码 …………………………………………………………………5
4 simulink 仿真 ………………………………………………………………5
4.1 各个模块参数 ………………………………………………………………5
4.2 BCH 仿真框图 ………………………………………………………………10
4.3 matlab 代码 ………………………………………………………………11
4.3 测试结果 …………………………………………………………………12
5 结果与分析 …………………………………………………………………12
参考文献 ……………………………………………………………………12
基于 BPSK 调制的 BCH 码仿真
1.实践目的
综合运用通信与信息处理相关课程的理论知识进行频谱分析和调制解调器设计,
通过理论推导得出相应结论,再利用 MATLAB 作为编程工具进行计算机实现,或
采用 Sumilink 建立仿真框图实现,从而加深对所学知识的理解。
2. 实践要求
(1)掌握信号与系统、数字信号处理、数据通信原理等课程的基本概念、基本
理论和基本方法。
(2)学会 MATLAB 或 Simulink 仿真工具的使用,掌握 MATLAB 的程序设计方法及
Simulink 的动态仿真方法。
(3)掌握 MATLAB/Simulink 仿真实现 BCH 码的编码译码;
(4)学会对仿真的结果进行分析和处理。
3. 实践报告内容
3.1 BCH 码的定义
BCH 1959 年由 Hocquenghem、1960 年由 Bo se 和 Chandhari 分别独立提出。
BCH 码是循环码的一个重要子类,它具有纠多个错误的能力,BCH 码有严密的代
数理论,是目前研究最透彻的一类码。它的生成多项式与最小码距之间有密切的
关系,人们可以根据所要求的纠错能力 t 很容易构造出 BCH 码,它们的译码器也
容易实现,是线性分组码中应用最普遍的一类码。
BCH 码是纠正多个随机错误的循环码,可以用生成多项式 g(x)的根描述。给
定任一有限域 GF(q)及其扩域 GF(qm),其中 q 是素数或素数的幂,m 为某一正整
数。若码元取自 GF(q)上的一循环码,它的生成多项式 g(x)的根集合 R 中含有以
下δ-1 个连根时,则由 g(x)生成的循环码称为 q 进制 BCH 码。
设 mi(x)和 ei 分别是(i=0, 1, …, δ-2)元素的最小多项式和级,则 BCH
码的生成多项式和码长分别是:g(x)=LCM(m0(x), m1(x), …, mδ-2 (x))
n=LCM(e0, e1, …, eδ-2)
如果生成多项式 g(x)的根中,有一个 GF(qm)中的本原域元素,则 n=qm-1,
称这种码长 n=qm-1 的 BCH 码为本原 BCH 码;否则, 称为非本原 BCH 码。 GF(qm)
中元素的级一定是 qm-1 的因子, 所以非本原 BCH 码的码长也一定是 qm-1 的因
子。
3.2 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.3 BCH 码的译码
BCH 码的译码方法可以有时域译码和频域译码两类。频移译码是把每个码组
看成一个数字信号,把接受到的信号进行离散傅氏变换(DFT),然后利用数字信
号处理技术在“频域”内译码,最后进行傅氏反变换得到译码后的码组。时域译
码则是在时域直接利用码的代数结构进行译码。BCH 的时域译码方法有很多,而
且纠多个错误的 BCH 码译码算法十分复杂。BCH 译码的一般原理将求解错误位置
转化为解线性方程组的问题,但是当设计纠错能力 t 比较大时,要不断对系数矩
阵进行降阶处理,直到求到一个满秩的 exe 阶方阵为止,还是比较复杂的运算,
Berlekamp 的发现从根本上解决了 BCH 码译码的算法复杂度,得到了广泛的应用。
4.1 各个模块参数设置
Bernoulli Binary Generator 参数:
BCH Encoder 参数:
AWGN Channel 参数:
BCH Encoder 参数:
Error Rate Caculation 参数:
Error Rate Caculation1 参数:
To Workspace 参数: