汉明码、海明码怎么算?20
发布网友
发布时间:2024-03-04 20:08
我来回答
共1个回答
热心网友
时间:2024-11-22 23:06
海明码是一种可以纠正一位差错的编码。它是利用在信息位为k位,增加r位冗余位,构成一个n=k+r位的码字,然后用r个监督关系式产生
的r个校正因子 来区分无错和在码字中的n个不同位置的一位错。它必需满足以下关系式:
2r>=n+1 或 2r>=k+r+1
海明码的编码效率为:
R=k/(k+r)
式中 k为信息位位数
r为增加冗余位位数
纠错码——海明码
如果传输的数据位是m位,加了r位冗余位,那么总共传输的数据单元是m+r位。
为了能够发现这m+r位数据单元在传输到目的端后是否出错,并能够指明是在哪一位出错,那么r至少应该能够代表m+r+1种状态。r比特能够代表2r不同状态。
因此,2r>=m+r+1
若m=7,则满足上式的最小r值为:4。
海明码的纠错原理
海明码的接收端的公式:
S3= P3⊕ D4⊕D3 ⊕D2
S2= P2⊕D4 ⊕D3 ⊕D1
S1= P1⊕D4 ⊕D2 ⊕D1
假定 海明码1010101在传送中变成了1000101
S3= P3⊕ D4⊕D3 ⊕D2=0⊕1⊕0 ⊕0 =1
S2= P2⊕D4 ⊕D3 ⊕D1=0⊕1⊕ 0 ⊕1=0
S1= P1⊕D4 ⊕D2 ⊕D1=1⊕1⊕ 0 ⊕1=1
因此,由S3S2S1= 101,指出第5位错,应由0变