汉明码编译码一 设计思想汉明码是一种常用的纠错码,具有纠一位错误的能力。本实验使用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)是指传输前后错误码字数占全部码字数的比值。通过按位比较、按帧比较可以实现误码率和误帧率的统计。3. 构建完整通信系统图 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= 01000111M3) 由 CMG 得到码字010001101101000010111C4) 进入信道传输假设是 BSC 信道,错误转移概率设定为0.1 传输后接收端得到的码流为000011110100000111101R红色表示错误比特。5) 计算=TS RH得到伴随式011= 100001S错误图样0000001 0000010 0000100 0001000 0010000 0100000 1000000 伴随式101 111 011 110 001 010 100 查表可知第一行码字错误图样为0100000,第二行码字错误图样为1000000,第三行码字错误图样为0000001。进行 ??= +C R E 即可得到纠错解码的码字C2。6) 得到解码码流0110100200000001110010C7) 得到解码信息序列0100200000010M可以看出解码信息序列与原信息序列一样,体现了汉明码的纠错能力。2.性能分析1)BSC 信道...