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

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

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

若E=0,即接收码组无错,则B?A?E?A,将它代人式(8),该是仍成立,即有

B?HT?0 (公式2-19)

当接收码组有错时,E≠0,将B带入式(8)后,该式不一定成立。在未超过检错能力时,式(19)不成立。假设此时式(19)的右端为S,即

B?HT?S (公式2-20)

将 B?A?E代入式(20),可得

S?(A?E)HT?A?HT?E?HT

由式(8)可知,所以

S?E?HT (公式2-21)

此处S与前面的

s1s2s3有着一一对应关系,则S能代表错码位置。

因此,纠错原理即,接收端收到码组后按式(20)计算出S,再根据表1判断错码情况,进行差错纠正。

2.3程序函数及命令介绍

MATLAB中提供了汉明码的编码和译码函数,本程序直接调用进行编程。 (1)encode函数 功能:编码函数

语法:code=encode(msg,N,K)

说明:对信息msg进行汉明编码,K为信息位长度,N为码字长度。msg是一个K列矩阵。 (2)decode函数 功能:译码函数

语法:rcvcode=decode(code,N,K)

说明:对接受码字进行译码,恢复出原始信息。 (3)rand函数

9

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

功能:均匀分布随机矩阵 用法:rand(m,n),

说明:产生m×n均匀分布的随机矩阵,rand产生的是0到1(不包括1)的伪随机数。 (4)rem函数

功能:求整除余数 用法:rem(x,y) 说明:求整除x/y的余数

(5)length命令:计算向量或矩阵长度 (6)sim命令:开始进行仿真 (7)disp命令:显示结果,不显示变量名

10

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

3.仿真与程序

3.1仿真

3.1.1 SIMULINK仿真

在设计中,本系统信号产生模块选用伯努利二进制序列产生器(Bernoulli Binary Generator)来输出速率为100Bd的随机数字信号,进入Hamming encoder进行编码,在送入AWGN信道(加入高斯白噪声)传输,接收信号送入Hamming decoder进行差错纠正,其后加一误码率计算模块(Error Rate Calculation)计算误码率。再用示波器scope观察波形,用spectrum scope观测频谱。由To Workspace模块将运算结果送入M文件,并画出信噪比与误码率关系的曲线。电路如图3-6所示。

图3-1 SIMULINK仿真电路图

11

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

3.1.2 模块属性设置

图3-2 Bernoulli Binary Generator

图3-3 AWGNA Channel

12