武汉理工大学《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