這一知識點困擾我許久了,在光光的指導下,我們小組成功攻克海明碼!徹底解決這一問題。
通過在編碼中增加一位校驗位來使編碼中的1的個數為奇數(奇校驗)或偶數(偶校驗),從而使碼距為2
1)奇校驗:
0001,加一位00011奇數的個數為2,所以編碼不正確
2)偶校驗:
0001,加一位00011偶數的個數為2,所以編碼正確
奇偶校驗碼只能查是否有錯誤,而且要求只有一位出現錯誤。
海明碼是一種很有效的校驗方法,是只要增加少數幾個校驗位,就能檢測出二位同時出錯、亦能檢測出一位出錯並能自動恢復該出錯位的正確值的有效手段,後者被稱為自動糾錯。
第一步:分析表示式:2^k-1>=n+k
第二步:畫**(pi=2^i-1)
1)根據pi=2(i-1)
p1=h(2(1-1))=h1
p2=h(2(2-1))=h2..
.依次算出p對應的h,結果如下表
h1h2
h3h4
h5h6
h7h8
h9h10
h11h12
p1p2
d0p3
d1d2
d3p4
d4d5
d6d7
2) 根據**分析:d0對應的h3的下標3=2+1(從最大的開始找,3裡面最大的是2),即h2對應的p2加上h1對應的p1;d0=p2+p1,依次算出。
資料位海明碼
校驗位d1
h5p1+p3
d2h6
p2+p3
d3h7
p3+p2+p1
d4h9
p4+p1
d5h10
p4+p2
d6h11
p4+p2+p1
d7h12
p4+p3
4)結果
d1=p1+p3
d2=p2+p3
d3=p3+p2+p1
d4=p4+p1
d5=p4+p2
d6=p4+p2+p1
d7=p4+p3
5)第三步:求校驗位p,從4)中找,有p1、p2、p3、p4的d1-d7
p1=d0⊕d1⊕d3⊕d4⊕d6; (這幾個d的結果中都有p1)
p2=d0⊕d2⊕d3⊕d5⊕d6;
p3=d1⊕d2⊕d3⊕d7;
p4=d4⊕d5⊕d6⊕d7;
因為資料為:01101001對應著d7-d0,又因為同0異1(比如1⊕1=0,0⊕1=1)
故p1=1,p2=0,p3=1,p4=0
第四步:完整的海明碼為:101100100110
海明碼可以查錯,也可以糾錯,限制較少
奇偶校驗碼和海明校驗碼都是採用奇偶檢測為手段榆錯和糾錯的,而迴圈冗餘校驗則是通過某種數**算來建立資料位和校驗位的約定關係的
f(x)=x4+x3+x+1
生成多項式:11011,因為4次方到0次方,只有2次方的位置沒有數,故用0表示
原始報文110010101010011
原始報文除以多項式的結果就是迴圈冗餘校驗碼.
將其中所有的合法碼字的最小距離值稱為這個編碼體制的碼距
例如:1100
1101之間碼距為1,因為只有最低位翻轉了。
而1001
0010之間碼距則為3,因為只有1位沒有變化
校驗碼總結仍有不足之處,如有指教,不勝感激。
校驗碼之奇偶校驗碼
校驗碼之奇偶校驗碼 在計算機系統中各部件需要進行資料交換,為了確保資料在傳送過程中正確無誤,我們需要使用校驗碼來測試資料是否出錯。校驗的基本思想 將編碼分為合法編碼和錯誤編碼。合理的設計編碼規則使資料在傳送過程中出現某種錯誤就會變成錯誤編碼。碼距 是指乙個編碼系統中任意兩個合法編碼之間至少有多少個二...
錯誤檢測之奇偶校驗碼
在資料傳輸的過程中,可能會產生錯誤,為了檢測出這種錯誤,一般會在傳輸的同時包含附加的位元位,用來進行錯誤的檢測。假設傳輸資訊d有d位,在偶校驗方案中,會增加乙個附加的位元,使得這d 1個位元中1的總數是偶數。採用單個奇偶校驗位的方式,接收方需要計算接收的d 1個位元位中1的數目,這種方式只能檢測奇數...
CRC校驗碼之模二演算法
最近複習計算機網路相關的知識,學到crc校驗碼時用到了模二除法,於是在回過頭去重新溫習了一下模二演算法 模2運算是一種二進位制演算法,crc校驗技術中的核心部分。與四則運算相同,模2運算也包括模2加法 模2減法 模2乘法 模2除法四種二進位制運算。與四則運算不同的是模2運算不考慮進製和借位,模2算術...