汉明码编译码一 设计思想汉明码是一种常用的纠错码,具有纠一位错误的能力
本实验使用Matlab 平台,分别用程序语言和simulink 来实现汉明码的编译码
用程序语言实现就是从原理层面,通过产生生成矩阵, 错误图样, 伴随式等一步步进行编译码
用 simulink 实现是用封装好的汉明码编译码模块进行实例仿真,从而验证程序语言中的编译码和误码性能分析结果
此外, 在结合之前信源编码的基础上,还可实现完整通信系统的搭建
二 实现流程1
汉明码编译码生成矩阵G信息序列M产生码字C信道计算伴随式S接收码流 R校验矩阵H解码码流C2解码信息序列M2图 1 汉明码编译码框图1) 根据生成多项式,产生指定的生成矩阵G2) 产生随机的信息序列M3) 由 CMG 得到码字4) 进入信道传输5) 计算=TS RH得到伴随式6) 得到解码码流7) 得到解码信息序列2
汉明码误码性能分析误码率( SER)是指传输前后错误比特数占全部比特数的比值
误帧率( FER)是指传输前后错误码字数占全部码字数的比值
通过按位比较、按帧比较可以实现误码率和误帧率的统计
构建完整通信系统图 2 完整通信系统框图三 结论分析1
汉明码编译码编写了 GUI 界面方便呈现过程和结果
图 3 汉明码编译码演示GUI 界面以产生( 7,4)汉明码为例说明过程的具体实现
1) 根据生成多项式,产生指定的生成矩阵G用[H,G,n,k] = hammgen(3,'D^3+D+1' ) 函数得到系统码形式的校验矩阵H、G以及码字长度 n和信息位数 k 100101101011100010111H1101000011010011100101010001G2) 产生随机的信息序列M输入信息序列Huffman 编码Hamming编码信道Hamming译码Huffman 译码输出信息序列噪声0010= 0