汉明码仿真
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
摘要
汉明码(Hamming Code)是一种能够自动检测并纠正一位错码的线性纠错码,即SEC(Single Error Correcting)码,用于信道编码与译码中,提高通信系统抗干扰的能力。本文主要利用MATLAB中SIMULINK通信系统仿真模型库进行汉明码建模仿真,并调用通信系统功能函数进行编程,对汉明码的性能进行分析。
关键词:MATLAB 汉明码 SIMULINK 性能
I
目录
1 课程设计目的 (1)
2 课程设计要求 (1)
3 相关知识 (1)
4 课程设计分析 (8)
5 仿真 (11)
6结果分析 (13)
7 参考文献 (13)
II
汉明码仿真程序设计
1.课程设计目的
(1)加深汉明码(Hamming Code)基本理论知识的理解。
(2)培养独立开展科研的能力和编程能力。
(3)掌握用MATLAB实现信号的PM调制。
(4)掌握MATLAB软件的使用。
2.课程设计要求
(1)掌握汉明码(Hamming Code)的相关知识、概念清晰。
(2)掌握MATLAB使用方法,利用软件绘制图像。
(3)程序设计合理、能够正确运行。
3.相关知识
3.1 MATLAB简介
MATLAB(Matrix Laboratory,矩阵实验室)是Mathwork公司推出的一套高效率的数值计算和可视化软件。其中,MATLAB通信工具箱是一套用于在通信领域进行理论研究、系统开发、分析设计和仿真的专业化工具软件包。MATIAB通信工具箱由两大部分组成:通信系统功能函数库和SIMULINK通信系统仿真模型库。
MATLAB通信系统功能函数库由七十多个函数组成,每个函数有多种选择参数、函数功能覆盖了现代通信系统的各个方面。这些函数包括:信号源产生函数、信源编码/解码函数、纠错控制编码/解码函数、调制/解调函数(基带和通带)、滤波器函数、传输信道模型函数(基带和通带)、TDMA、FDMA、CDMA函数、同步函数、工具函数等。以纠错控制编解码函数为例:函数库提供了线性分组码、
1
2
汉明码、循环码、BCH 码、里德一索洛蒙码(REED —SOLOMON )、卷积码等6种纠错控制编码,每种编码又有编码、解码、矢量输入输出、序列输入输出等四种形式的函数表达。
在SIMULINK 通信系统仿真模型库中,整个通信系统的流程图被概括为:信号的产生与输出、编码与解码、调制与解调。在SIMULINK 中,通信系统仿真的一般模型如图3.1所示。
图3.1 通信系统仿真模型
3.2设计原理
3.2.1汉明码编码原理
一般来说,若汉明码长为n ,信息位数为k ,则监督位数r=n-k 。若希望用r 个监督位构造出r 个监督关系式来指示一位错码的n 种可能位置,则要求
21r
n -≥或211r
k r -≥++ (1)
下面以(7,4)汉明码为例说明原理:
设汉明码(n,k )中k=4,为了纠正一位错码,由式(1)可知,要求监督位
数r ≥3。若取r=3,则n=k+r=7。我们用6543210a a a a a a a
来表示这7个码元,用123s s s 的值表示3个监督关系式中的校正子,则123
s s s 的值与错误码元位置的对应关系
可以规定如表1所列。
3
表1 校正子和错码位置的关系
则由表1可得监督关系式: 16542
s a a a a =⊕⊕⊕ ()2
26531
s a a a a =⊕⊕⊕
()3 36430
s a a a a =⊕⊕⊕
()4
在发送端编码时,信息位6543a a a a
的值决定于输入信号,因此它们是随机的。监督位2a 、1a 、0a
应根据信息位的取值按监督关系来确定,即监督位应使式(2)
~式(4)中1s 、2s 、3s
的值为0(表示编成的码组中应无错码)
654265316
430000
a a a a a a a a a a a a ⊕⊕⊕=⎧⎪
⊕⊕⊕=⎨⎪⊕⊕⊕=⎩ (5)
式(5)经过移项运算,接触监督位
2654
16530
643a a a a a a a a a a a a
=⊕⊕⎧⎪
=⊕⊕⎨⎪=⊕⊕⎩ (6)
式(5)其等价形式为:
6543210111010001101010010110010a a a a a a a ⎡⎤
⎢⎥⎢⎥
⎢⎥⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦
⎢⎥⎢⎥⎢⎥⎣⎦
(7)
式(6)还可以简记为
0T T H A ∙=或0T
A H ∙= (8)
4
其中
111010011010101011001H ⎡⎤
⎢⎥=⎢⎥
⎢⎥⎣⎦
[]654321
0A a a a a a a a =
[]00
0=
111011011011P ⎡⎤⎢⎥=⎢⎥⎢⎥⎣⎦ 1
0001000
1r I ⎡⎤
⎢⎥=⎢
⎥⎢⎥⎣⎦
所以有
[]
r H PI = (9)
式(6)等价于
[][][]2
1
06
54
3654
3111110101011a a a a a a a a a a a Q
⎡⎤
⎢⎥
⎢
⎥==⎢⎥⎢⎥⎣⎦
(10)
其中Q 为P 的转置,即
T Q P = (11)
式(10)表示,信息位给定后,用信息位的行矩阵乘矩阵Q 就产生出监督位。 我们将Q 的左边加上一个k ×k 阶单位方阵,就构成一个矩阵G
10001
11010011000101
0100010
11k G I Q ⎡⎤⎢⎥⎢⎥⎡⎤==⎣⎦⎢⎥
⎢
⎥⎣⎦
(12)
G 称为生成矩阵,因为由它可以产生整个码组,即有
[][]65432106543a a a a a a a a a a a G =∙ (13)
或者
[]6
5
4
3A a a a a G
=∙ (14)
式(13)即汉明码的编码原理