二、创新实验设计
创新实验一:(7,4)汉明码的编码与译码实现
1、实验目的
实现(7,4)汉明码的编码与译码,通过这次实验不但加深了对汉明码编码和译码原理了解,而且对线性分组码有所了解。
2、实验原理
线性分组码的构造方法比较简单、理论较为成熟,应用比较广泛。汉明码是一种能够纠正一个错码的效率比较高的线性分组码,下面以(7,4)码为例就汉明码的编码与译码分别进行介绍:
(1)编码原理
一般来说,若汉明码长为n,信息位数为k,则监督位数r=n-k。若希望用r个监督位构造出r个监督关系式来指示一位错码的n种可能位置,则要求
2r?1?n或2?1?k?r?1 (1)
设汉明码(n,k)中k=4,为了纠正一位错码,由式(1)可知,要求监督位数r≥3。若取r=3,则n=k+r=7。这样就构成了(7,4)码。用示这7个码元,用
a6a5a4a3a2a1a0r来表
s1s2s3的值表示3个监督关系式中的校正子,则
s1s2s3的值与
错误码元位置的对应关系可以规定如表1所列。
表2.1 校正子和错码位置的关系
s1s2s3 错码位置 a0a1a2a3 s1s2s3 错码位置 a4a5a6 001 101 010 100 011 110 111 000 无错码 则由表1可得监督关系式:
?2?
s?a6?a5?a3?a?3? 2
s?a6?a4?a3?a0?4? 3
s1?a6?a5?a4?a2
在发送端编码时,信息位监督位
a2a6a5a4a3的值决定于输入信号,因此它们是随机的。
、
a1、
a0应根据信息位的取值按监督关系来确定,为使所编的码中无
错码,则S1,S2,S3等于0,即
?a6?a5?a4?a2?0??a6?a5?a3?a1?0?a?a?a?a?0430?6方程组(5)可等效成如下矩阵形式
?a6??a??5??1110100??a4??0??1101010??a???0????3?????1011001???a2???0?????a1??a??0?(5)
(6)
式(6)可简化为HAT?0T,H为监督矩阵,则由式(6)可得到监督矩阵
?1110100??=[PI] H??1101010r????1011001??(7)
因为生成矩阵G=[IkQ]=[IkP'],所以由(7)得生成矩阵G如下:
?10001?01001G??IkQ??[IkP']???00101??0001011?10?? 01??11?然后利用信息位和生成矩阵G相乘产生整个码组,即有
A=?a6a5a4a3a2a1a0???a6a5a4a3?G其中A为整个码组矩阵,a6a5a4a3是信息位。 根据上述原理可以得到(7,4)汉明码的整个码组。
(8)
(2)译码与检错、纠错原理
当数字信号编码成汉明码后,由于信道噪声的存在,使得经过信道后的汉明码会发生差错,使得接收端接收到错码,因此需要多错码进行纠正,以提高通信系统的抗干扰能力及可靠性。下面分析纠错译码原理。
设B为接收码组,它是一行7列的矩阵,即B=[b1b2b3b4b5b6b7],B中可能含
有错码,错误图样E?A?B=[e7e6e5e4e3e2e1],在E的表达式中,有
?0ei???1当bi?ai时当bi?ai时(i?0,1,2,7)
若ei?0,表示该码元没错;若ei?1,表示该码元为错码。 由E?A?B得
A?B?E(9)
(9)表示接收码组和错误图样之和等于正确码组U,通过(9)式就可以实现纠错。可以用标准阵来表示所有可能的2n个n元码组的接收矢量,(n,k)码的标准阵形式如下:
A1E2E3EjE2n?kA2A2?E2A2?E3A2?EjA2?E2n?kA3A3?E2A3?E3A3?EjA3?E2n?kA4A4?E2A4?E3A4?EjA4?E2n?kA5A5?E2A5?E3 A5?EjA5?E2n?k应该注意到,码组A1(全0码字)起两个作用:既是其中一个正确码组,也是错误图样E1,代表A1所在行没有错误。标准阵中的A1,E2,E3E2n?k是陪集首,
陪集首的选择是有规定的,第j行的陪集首是在前j-1行中没有出现的最小码组,即错误图样E,如果不选错误图样作为陪集首,译码将会产生错误。
?d?1?对于(7,4)汉明码,其最小码重是3,设码的纠错能力为t,根据公式t??min??2?得该码的纠错能力为1,即能纠错一位错码。由于根据完备码的定义有
2n?k?n?????j?0?j?t(12)
将(7,4)码代入(12)可以得知,(7,4)汉明码为完备码组,只能纠错和检错一位错码。
对于正确码组A而言,有
AHT?0(10)
当接收到错码变成码组B时,有
S?BHT?(A?E)HT?AHT?EHT?EHT(11)
其中S为校正子所构成的校正矩阵,由于S和E如(11)所示的一一对应的关系,对于(7,4)码,错误图样与伴随式的对应关系如下
表2.2 伴随式查询表