一.糾正一位錯的海明碼的位數k
的選取必須符合下式:
當資訊位為8
位時,海明碼校驗碼共有
4位,而當資訊位為
20位時,其校驗碼需要
5位。這是理論上進行糾錯需要用到的最少位。解釋:
k位的糾錯碼能指明的位置最多為個,即從0...0
到1...1
,除去0...0
表示第0
位出錯(沒有錯誤),再減去糾錯碼本身占用
k位,則其能編碼的最大位數
m滿足。
二.海明碼編碼的基本思想就是利用糾錯碼的變化情況指明具體是哪一位編碼在傳輸過程中出錯。那麼怎樣實現這個目標呢?我們考慮到利用二進位制來傳輸的資料每一位的具體位置,然後通過觀察描述位置的二進位制編碼的變化情況就可以檢測出具體是哪一位錯誤了。可能這樣子說很抽象那麼我們看一下資訊位為8
位,海明校驗碼為四位時的具體情況。海明碼和資訊位的放置規律如圖所示
海明碼(i=1,2,...,k)排在第位,然後將資料位依照從低到高的順序填在剩餘的空間裡,構成h1~h12
。其中ci
的確定方法如下:
三.當接收方收到資訊t`
後,對t`依據同樣的異或規則重新計算校驗碼
。然後對接收到的
c1c2c3c4
和新計算出的
c1`c2`c3`c4`
進行按位異或運算,如果結果全為
0,則傳輸無誤,如果結果不為
0,則計算的結果對應的十進位制就表明了錯誤發生的位置,如結果為0101這表示第5位出錯也就是d2出錯。
四.解釋
1).將c1和
c1`進行異或如果傳輸過程中h3,h5,h7,h9,h11均沒出錯那麼結果一定為
0,如果h3,h5,h7,h9,h11中有一位傳輸過程中出錯那麼結果一定為
1。因為我們假設的前提是傳輸過程中只能發生一位出錯的情況。如果傳輸過程中沒有出錯那麼就相當於
,由於其每乙個數字均出現兩次那麼異或結果一定為
0,但是一位出錯則單了一位那麼結果一定為
1,於是便能檢測出h3,
h5,h7,
h9,h11中必有一位錯誤。
2).我們觀察
c1,h3的二進位制編碼
0011,h5
的二進位制編碼
0101,h7
的二進位制編碼
0111,h9
的二進位制編碼
1001
,h11
的二進位制編碼
1011
。發現表示其位置的二進位製碼最後一位均為1,那麼是不是就意味著位置編碼最後一位為
1的出錯時我們能通過檢測
c1異或c1`發現呢。
同理看c2
標記的位置
0011,0110,0111,1010,1011
。意味著表示位置的二進位制編碼倒數第二位為
1的出錯時我們能通過檢測
c2異或c2
`發現。
3).於是乎我們能得到這樣乙個結論對於位置的二進位制編碼第k
位出錯則
ck異或ck`為
1,沒錯就為
0。那麼我們得到的
cn異或cn` cn-1異或cn-1` ....c1異或c1`這一串數字就表示具體的那個位置出錯。
海明碼計算及其糾錯原理詳解
海明碼計算及其糾錯原理詳解 圓圈中間乙個加號。運算法則總結兩句話就是 異為1,同為0。換言之,1 1 0,1 0 1。現在請大家閉上眼睛想一想,這種運算將在海明碼糾錯的過程中起到乙個什麼作用呢?我給大家舉個例子,你就明白了!s a1 a2.an 1 an 0,假設其中ak 0,那麼當ak由0變為1時...
海明碼校驗原理
海明校驗的基本思想 將有效資訊按某種規律分成若干組,每組安排乙個校驗位,做奇偶測試,就能提供多位檢錯資訊,以指出最大可能是哪位出錯,從而將其糾正。實質上,海明校驗是一種多重校驗。海明校驗的特點 它不僅具有檢測錯誤的能力,同時還具有給出錯誤所在準確位置的能力。一 校驗位的位數 校驗位的位數與有效資訊的...
海明碼之編碼原理和校驗方法
海明碼,小名漢明碼 hamming code 以發明者理查德 衛斯里 漢明的名字命名。海明碼具有檢錯和糾錯雙功能,它基於奇偶校驗原理,只能檢查出某一位錯碼的位置。當有多位錯碼時,它就不適用了。在了解漢明碼之前,先熟悉下異或運算和奇偶校驗。異或運算 異或運算,相異為1,相同為0。它也叫模2和 模2加法...