汉明码的性能分析 下载本文

武汉理工大学《MATLAB应用》课程设计报告

1.引言

MATLAB是矩阵实验室(Matrix Laboratory)的简称,是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,其中,MATLAB通信工具箱是一套用于在通信领域进行理论研究、系统开发、分析设计和仿真的专业化工具软件包。主要包括MATLAB和Simulink两大部分。

MATLAB通信系统功能函数库由七十多个函数组成,每个函数有多种选择参数、函数功能覆盖了现代通信系统的各个方面。这些函数包括:信号源产生函数、信源编码/解码函数、纠错控制编码/解码函数、调制/解调函数(基带和通带)、滤波器函数、传输信道模型函数(基带和通带)、TDMA、FDMA、CDMA函数、同步函数、工具函数等。以纠错控制编解码函数为例:函数库提供了线性分组码、汉明码、循环码、BCH码、里德一索洛蒙码(REED—SOLOMON)、卷积码等6种纠错控制编码,每种编码又有编码、解码、矢量输入输出、序列输入输出等四种形式的函数表达。

Simulink是MATLAB中的一种可视化仿真工具,是一种基于MATLAB的框图设计环境,是实现动态系统建模、仿真和分析的一个软件包,被广泛应用于线性系统、非线性系统、数字控制及数字信号处理的建模和仿真中。Simulink是用于动态系统和嵌入式系统的多领域仿真和基于模型的设计工具。对各种时变系统,包括通讯、控制、信号处理、视频处理和图像处理系统,Simulink提供了交互式图形化环境和可定制模块库来对其进行设计、仿真、执行和测试。

汉明码是由Hamming首先构造的,它是一种能够自动检测并纠正一重错的线性纠错码,即SEC(Single Error Correcting)码。汉明码利用了奇偶校验位的概念,通过在数据位后面增加一些比特,可以验证数据的有效性。利用一个以上的校验位,汉明码不仅可以验证数据是否有效,还能在数据出错的情况下指明错误位置。它不仅性能好,而且编译码电路非常简单,易于实现。从20世纪50年代问世以来,在提高系统可靠性方面获得了广泛的应用。

5

武汉理工大学《MATLAB应用》课程设计报告

2.设计原理

2.1汉明码编码原理

一般来说,若汉明码长为n,信息位数为k,则监督位数r=n-k。若希望用r个监督位构造出r个监督关系式来指示一位错码的n种可能位置,则要求

rr22?1?n 或?1?k?r?1 (公式2-1)

下面以(7,4)汉明码为例说明原理:

设汉明码(n,k)中k=4,为了纠正一位错码,由式(1)可知,要求监督位

sssaaaaaaa数r≥3。若取r=3,则n=k+r=7。我们用6543210来表示这7个码元,用123的值表示3个监督关系式中的校正子,则可以规定如表2-1所列。

表2-1 校正子和错码位置的关系

s1s2s3的值与错误码元位置的对应关系

s1s2s3 错码位置 s1s2s3101 错码位置 001 a0a1a2a3 a4a5a6 010 100 011 110 111 000 无错码 则由表1可得监督关系式:

s1?a6?a5?a4?a2 (公式2-2) (公式2-3) (公式2-4)

s2?a6?a5?a3?a1s3?a6?a4?a3?a0在发送端编码时,信息位

a6a5a4a3的值决定于输入信号,因此它们是随机的。

监督位a2、a1、a0应根据信息位的取值按监督关系来确定,即监督位应使式(2)

~式(4)中

s1、s2、s3的值为0(表示编成的码组中应无错码)

6

武汉理工大学《MATLAB应用》课程设计报告

?a6?a5?a4?a2?0??a6?a5?a3?a1?0?a?a?a?a?0430?6 (公式2-5)

式(5)经过移项运算,接触监督位

?a2?a6?a5?a4??a1?a6?a5?a3?a?a?a?a643?0 (公式2-6)

式(5)其等价形式为:

?a6??a??5??1110100??a4??0??1101010??a???0????3?????1011001???a2???0?????a1??a??0? (公式2-7)

式(6)还可以简记为

TTT H?A?0或A?H?0 (公式2-8)

其中

?1110100??H??1101010????1011001??

A??a?a06a5a4a3a2a10??0??1?

0??00?0

?1110??1??0P??1101I?r??????1011?? ?0所以有

010H??PIr?式(6)等价于

(公式2-9)

?a2a1a0???a6a5a4?111??110????a6a3???101????011?a5a4a3?Q

(公式2-10)

7

武汉理工大学《MATLAB应用》课程设计报告

TQ?P其中Q为P的转置,即 (公式2-11)

式(10)表示,在信息位给定后,用信息位的行矩阵乘矩阵Q就产生出监督位。

我们将Q的左边加上一个k×k阶单位方阵,就构成一个矩阵G

?10001?01001k?G???IQ????00101??0001011?10??01??11? (公式2-12)

G称为生成矩阵,因为由它可以产生整个码组,即有

?a6a5a4a3a2a1a0???a6a5a4a3??G (公式2-13)

或者

A??a6a5a4a3??G (公式2-14)

式(13)即汉明码的编码原理

2.2汉明码纠错原理

当数字信号编码成汉明码形式后在信道中传输,由于信道中噪声的干扰,可能由于干扰引入差错,使得接收端收到错码,因此在接收端进行汉明码纠错,以提高通信系统的抗干扰能力及可靠性。

一般来说接收码组与A不一定相同。若设接收码组为一n列的行矩阵B,即

B??b6b5b4b3b2bb10? (公式2-15)

则发送码组和接收码组之差为

B?A?E (公式2-16)

E就是传输中产生的错码行矩阵 E??e6e5e4e3e2e1e0? (公式2-17)

若ei=0,表示接收码元无错误,若ei=1,则表示该接收码元有错。式(16)可改写成

8