信息论实验 | 您所在的位置:网站首页 › 汉明码信道编码是什么 › 信息论实验 |
实验目的
加深理解Hamming(7,4)码的编码方法和抗干扰性能。通过编程实现Hamming (7,4)码的便拿码算法,进一步掌握按位二进制加法的实现原理。 实验要求输入:长度为4的任意二进制序列 输出:输入数据经Hamming(7,4)编码器编码之后,通过作业3(2)二元对称信道模拟器 (错误概率为0.1)传输后,再经过Hamming(7,4)译码器输出得到新宿的长度为4的二进制 序列。 实验原理 基本定义定义1:设一个D元(N, L)线性分组码的生成矩阵G,校验矩阵H。则H是一个D源(N,N-L) 线性分组码的生成矩阵,G是此码的一个校验矩阵。称这两个码互为对偶码。 定义2:一个N维向量的Hamming重量为它的对应位置值不等于0的位数。 定义3:两个N维向量的Hamming距离定义为他们的对应位置不同的位数。 信道的输入为码字U,信道的输出为向量Y,称向量 e=Y−U 为差错向量。 设H是校验矩阵,对于N维行向量t,记 s=tHT 为向量t的伴随式。 基本定理定理1:设信道输入码字U,输出向量为Y,差错向量 e=Y−U ,则e的伴随式等于Y的 伴随式。 定理2:设输出向量为Y,并计算出了Y的伴随式 s=YHT 。则此时所有可能的差错向量 恰好就是任何一个可能的差错向量加上全体码字。即此时所有可能的差错向量恰好就是方程 s=tHT 的任何一个固定解t加上全体码字。 实现原理二元码和非二元码都存在汉明码,我们以二元汉明码为例。汉明码不是一个码,而是一类码, 凄惨数具有下列形式 (n,k)=(2m−1,2m−m−1) 其中m为正整数。例如当 m=3 时,就得到了(7,4)汉明码。汉明码的校验矩阵具有特殊的性质 ,对于二元码,它的 2m−1 个列包含了除0之外的所有 n−k=m 维向量。通过观察可以发现, 校验矩阵 H 中任何两个列矢量是线性独立的,但是可以找到3个列矢量之和为0.所以对于所有的 汉明码器最小汉明距离dmin=3。由于汉明码的校验矩阵 包含了所有非零m维向量,通过编排列矢量的顺序可以很容易地得到具有 式 H=[−PT|In−k] 形式的系统汉明码的校验矩阵 H ,进而可以得到系统汉明码的生成 矩阵。例如观察如下校验矩阵,其列矢量为(001),(010),(011),(100),(101),(110),(111)。 A=⎡⎣⎢⎢⎢1000010000100001111001111101⎤⎦⎥⎥⎥=[I4|P] 算法实现汉明码的定义是一个线性分组码,它的最小Hamming距离为3,能纠正全部一位错误。 而且编码译码都非常简单,接收矢量的伴随式等于校验矩阵H中与出错位对应的矢之和。 \subsection{算法步骤} 1. 通过线性变换由信源端产生的L长的信号x生成信道编码后的N长的信号Y, Y=XG 其中G是生成矩阵。 2. 将步骤1产生的信号Y通过二元对称信道,二元对称信道需设置错误概率。通过 二元对称信道的信号计为 Y′ 3.由公式 s=Y′HT 计算出 Y′ 的伴随式s,根据定理可知信道输出 Y′ 的伴随式 和差错向量e的伴随式相等,将 Y′ 产生的伴随式当作差错向量e产生的伴随式进一步 找到可能的差错向量。 4. 在以s为伴随式的全体“可能的差错向量中”,取一个Hamming重量最小的向量作为 s的培集首,记为 e(s) 。 5. 计算通过信道前的信号Y, U=Y′−e(s) 。 6. 输出线性U的线性逆变换即为经过信道传输并经过Hamming编码译码的信号。 算法程序实现 主函数部分依次执行各个模块的功能 int main() { int n; cout |
CopyRight 2018-2019 实验室设备网 版权所有 |