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