汉明码编译码重点讲义资料 下载本文

内容发布更新时间 : 2024/10/26 2:33:27星期一 下面是文章的全部内容请认真阅读。

汉明码编译码

一 设计思想

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

二 实现流程

1. 汉明码编译码

信息序列M生成矩阵G产生码字C信道解码信息序列M2解码码流C2计算伴随式S接收码流R校验矩阵H 图 1 汉明码编译码框图

1) 根据生成多项式,产生指定的生成矩阵G 2) 产生随机的信息序列M 3) 由C?MG得到码字 4) 进入信道传输

5) 计算S=RH得到伴随式

6) 得到解码码流 7) 得到解码信息序列

2. 汉明码误码性能分析

误码率(SER)是指传输前后错误比特数占全部比特数的比值。 误帧率(FER)是指传输前后错误码字数占全部码字数的比值。 通过按位比较、按帧比较可以实现误码率和误帧率的统计。

T3. 构建完整通信系统

输入信息序列Huffman编码Hamming编码信道噪声输出信息序列Huffman译码Hamming译码图 2 完整通信系统框图

三 结论分析

1. 汉明码编译码

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

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

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

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

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

?1?1001011??0??H??0101110? G???1??0010111????12) 产生随机的信息序列M

11100111100001000010?0?0? ?0??1?0010??

M=?0100????0111??3) 由C?MG得到码字

?0100011??

C??0110100????0010111??4) 进入信道传输

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

?0000011??

R??1110100????0010111??红色表示错误比特。 5) 计算S=RH得到伴随式

T?011??

S=?100????001??

错误图样 0000001 0000010 0000100 0001000 0010000 0100000 1000000 伴随式 101 111 011 110 001 010 100

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

?=R+E?即可得到纠错解码的码字C2。 进行C6) 得到解码码流

?0110100??

C2??0000000????1110010??7) 得到解码信息序列

?0100??

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