matlab74汉明码和74循环码的编程设计.docx

matlab74汉明码和74循环码的编程设计.docx

二、创新实验设计 创新实验一:(7,4)汉明码的编码与译码实现 1、实验目的 实现(7,4)汉明码的编码与译码,通过这次实验不但加深了对汉明码编码 和译码原理了解,而且对线性分组码有所了解。 2、实验原理 线性分组码的构造方法比较简单、理论较为成熟,应用比较广泛。汉明码是一种能够纠正一个错码的效率比较高的线性分组码,下面以( 7,4)码为例就汉明码的编码与译码分别进行介绍: 编码原理 一般来说,若汉明码长为n,信息位数为k,则监督位数r=n-k。若希望用r 个监督位构造出 r 个监督关系式来指示一位错码的 n 种可能位置,则要求 2r ?1 ? n 或 2r ?1 ? k ? r ?1 (1) 设汉明码(n,k)中k=4,为了纠正一位错码,由式(1)可知,要求监督位 6数 r≥3。若取r=3,则 n=k+r=7。这样就构成了(7,4)码。用a 6 a a a a a a 5 4 3 2 1 0 来 表 示这 7 个码元,用 s s s 1 2 3 的值表示 3 个监督关系式中的校正子,则 s s s 1 2 3 的值与 错误码元位置的对应关系可以规定如表 1 所列。 s s s s s 1 2 3 001 010 错码位置 a 0 a 1 a 2 a 3 s s s 1 2 3 101 110 100 111 错码位置 a 4 a 5 a 6 011 000 无错码 则由表 1 可得监督关系式: s ? a 1 6 ? a ? a ? a 5 4 2 ?2? s ? a ? a ? a ? a ?3? 2 6 5 3 s ? a 3 6 ? a ? a ? a 4 3 0 ?4? 6 5 4 3在发送端编码时,信息位a a a a 6 5 4 3 、、21 0监督位 a a a 、 、 2 1 0 错码,则S , S , S 1 2 3 等于 0,即 ?a ? a ? a ? a ? 0 ? 6 5 4 2 ?a ? a ? a ? a ? 0 (5) ? 6 5 3 1 ?a ? a ? a ? a ? 0 6 4 3 0 方程组(5)可等效成如下矩阵形式 ?a ? ? 6 ? ?a ? 5 ?1 1 1 0 1 0 0? ?a ? ? ?0? ? ? ? 4 ? ? ? 3 ? ? ??1 1 0 1 0 1 0? 3 ? ? ? (6) ??1 0 1 1 0 0 1?? ?a ? ??0?? ? 2 ? ? a ? ? 1 ? ??a ? ? 0 式(6)可简化为 HAT ? 0T ,H 为监督矩阵,则由式(6)可得到监督矩阵 H ? ?11 H ? ?1 1 0 1 0 1 0? =[P I ] (7) ??1 0 1 1 0 0 1?? ? ? r 因为生成矩阵G=[I k Q]=[I k P ],所以由(7)得生成矩阵 G 如下: ?100 ?1 0 0 0 1 1 Q? ?0 1 0 0 1 1 ] ? ? k k ?0 0 1 0 1 0 0? G ? ?I ? [I P  ??0 0 0 1 0 ? ? 1? ?1 1? ? 然后利用信息位和生成矩阵 G 相乘产生整个码组,即有 A=?a a a a a a a ?? ?a a a a ?G (8) 6 5 4 3 2 1 0 6 5 4 3 其中 A 为整个码组矩阵, a 6 a a a 5 4 3 是信息位。 根据上述原理可以得到(7,4)汉明码的整个码组。 译码与检错、纠错原理 当数字信号编码成汉明码后,由于信道噪声的存在,使得经过信道后的汉明码会发生差错,使得接收端接收到错码,因此需要多错码进行纠正,以提高通信系统的抗干扰能力及可靠性。下面分析纠错译码原理。 设 B 为接收码组,它是一行 7 列的矩阵,即 B=[b b b b b b b ],B 中可能含 1 2 3 4 5 6 7 有错码,错误图样 E ? A ? B=[e e e e e e e ] ,在 E 的表达式中,有 7 6 5 4 3 2 1 ??0 ? e ? i ?1 当b ? a 时 i i 当b ? a 时 i i (i ? 0,1,2 ,7) 若e ? 0 ,表示该码元没错;若e i i ? 1 ,表示该码元为错码。 由 E ? A ? B 得 A ? B ? E (9) 表示接收码组和错误图样之和等于正确码组 U,通过(9)式就可以实现 纠错。可以用标准阵来表示所有可能的2 n 个 n 元码组的接收矢量,(n,k)码的标准阵形式如下: A A 1 2 E A ? E 2 2 2 A 3 A ? E 3 2 A 4 A ? E 4 2 A 5 A ? E 5 2 E A ? E 3

文档评论(0)

1亿VIP精品文档

相关文档