汉明码编译码

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

汉明码编译码

一设计思想

汉明码是一种常用的纠错码,具有纠一位错误的能力。本实验使用Matlab平台,分别用程序语言和simulink来实现汉明码的编译码。用程序语言实现就是从原理层面,通过产生生成矩阵,错误图样,伴随式等一步步进行编译码。用simulink实现是用封装好的汉明码编译码模块进行实例仿真,从而验证程序语言中的编译码和误码性能分析结果。此外,在结合之前信源编码的基础上,还可实现完整通信系统的搭建。

二实现流程

1.汉明码编译码

图 1 汉明码编译码框图

1)根据生成多项式,产生指定的生成矩阵G

2)产生随机的信息序列M

得到码字

3)由C MG

4)进入信道传输

S RH得到伴随式

5)计算=T

6)得到解码码流

7)得到解码信息序列

2.汉明码误码性能分析

误码率(SER)是指传输前后错误比特数占全部比特数的比值。

误帧率(FER)是指传输前后错误码字数占全部码字数的比值。

通过按位比较、按帧比较可以实现误码率和误帧率的统计。

3. 构建完整通信系统

图 2 完整通信系统框图

三 结论分析

1. 汉明码编译码

编写了GUI 界面方便呈现过程和结果。

图 3 汉明码编译码演示GUI 界面

以产生(7,4)汉明码为例说明过程的具体实现。

1) 根据生成多项式,产生指定的生成矩阵G

用[H,G,n,k] = hammgen(3,'D^3+D+1')函数得到系统码形式的校验矩阵H 、G 以及码字长度n 和信息位数k

100101101011100010111H ⎡⎤⎢⎥=⎢⎥⎢⎥⎣⎦

1

10100001101001

1100101

010001G ⎡⎤⎢⎥⎢

⎥=⎢⎥

⎢⎥

⎣⎦

2) 产生随机的信息序列M

输入信息序列

Huffman 编码

Hamming 编码

信道Hamming 译码

Huffman 译码输出信息序列噪声

0010=01000111M ⎡⎤

⎢⎥⎢⎥

⎢⎥⎣⎦

3) 由C MG =得到码字

010001101101000010111C ⎡⎤

⎢⎥=⎢⎥

⎢⎥⎣⎦

4) 进入信道传输

假设是BSC 信道,错误转移概率设定为0.1 传输后接收端得到的码流为

000011110100000111101R ⎡⎤

⎢⎥=⎢⎥

⎢⎥⎣⎦

红色表示错误比特。 5) 计算=T

S RH 得到伴随式

011=100001S ⎡⎤

⎢⎥⎢⎥⎢⎥⎣⎦

查表可知第一行码字错误图样为0100000,第二行码字错误图样为1000000,第三行码字错误图样为0000001。

进行ˆˆ=+C

R E 即可得到纠错解码的码字C2。 6) 得到解码码流

0110100200000001110010C ⎡⎤

⎢⎥=⎢⎥

⎢⎥⎣⎦

7) 得到解码信息序列

0100200000010M ⎡⎤

⎢⎥=⎢⎥

⎢⎥⎣⎦

可以看出解码信息序列与原信息序列一样,体现了汉明码的纠错能力。

2.性能分析

1)BSC信道仿真

设置BSC错误转移概率Pe从0到1变化,步进为0.01,在每个Pe值进行1000次蒙特卡洛仿真,得到图4所示误码率随Pe变化曲线图和图5所示误帧率随Pe变化曲线图。

图 6误码率随Pe变化曲线图

图中绿线为BSC信道误码率,红线为设定Pe值,蓝线为Hamming码解码误码率。

由图线可以看出仿真的BSC信道误码率与Pe一致。

在Pe<0.2时, Hamming码的解码误码率随着BSC信道错误传输概率Pe的减小而减小。Hamming码的解码误码率显著下降,约为Pe的1/2。Hamming码的纠1位错起到了很好的效果。

0.20.2时,传

一个码字错误比特数近似为2,而Hamming码只能纠一位错,两位同时出错时会纠成另一个码字,这样就可能增加误比特数,使得“越纠越错”。

Pe>0.5时,情况恰好相反。

图 7误帧率随Pe变化曲线图

可以看出随着Pe增加,BSC传输误帧率和Hamming译码误帧率成S曲线上升达到1。Hamming译码误帧率要低于BSC传输误帧率,体现了其纠错能力使得码字错误减少这一效果。与误码率的图对比可以发现,误帧率要比误比特率高。

为了进一步验证结果的正确性,进行了simulink仿真。

图 8 BSC信道仿真框图

用伯努利二进制发生器产生随机序列,进行汉明码编码,进入BSC信道传输,之后进行汉明码译码,用Error Rate Calculation模块统计误码率,结果如下:

图 9 simulink仿真BER随Pe变化曲线图

与程序实现仿真的结果几乎一样。

2)AWGN信道仿真

AWGN信道仿真直接用simulink实现。

图 10 AWGN信道仿真框图

设置系统的数字调制方式为2FSK,设定AWGN信道的SNR从0到8dB以1dB步进变化,得到误码率统计图。

图 11 simulink仿真BER随SNR变化曲线图

图中绿线为2FSK调制误码率,是由于AWGN带来的。蓝线为汉明码解码后误码率。可以看出,汉明码能够很好的降低误码率。在SNR达到5dB时错误概率降低为

0.001.

3.完整通信系统的构建

以传输图片为例,信道设置为BSC信道。在不加入汉明码和加入汉明码两种情况下观察传输后图像的情况。结果如下表所示。

BSC错误转

0.1 0.05 0.01 0.001 0

移概率Pe

BSC

传输图像

加汉明码误

0.0652 0.02 0.0006 0 0

码率

加汉明码传

输图像

由结果可以看出,加入信道编码后,当BSC错误转移概率Pe<0.01后,图像恢复性能有明显的改善。这体现了汉明码虽然只有纠一位错的能力,但由于一般信道的Pe不会很大,其纠错的实用性和效果还是很好的。

相关文档
最新文档