本人第一次接觸編碼糾錯檢錯,如果說的有問題,希望大佬可以無情的辱罵。
1.漢明碼檢錯的目標。
2.漢明碼檢錯的原理。
>漢明碼檢錯的目標:
漢明碼為了檢測一串數(shù)據(jù)中是否有一位錯碼,當兩位錯碼時,配奇配偶會失敗,檢測兩位超出了漢明碼的能力。
>漢明碼檢錯的原理:
漢明碼的檢錯核心思想是用檢錯位標記所有的編碼,假設總位數(shù)為n,檢錯位為k,那么就需要2^k>n,如此K位所攜帶的信息就可以完全標記n位編碼。
那么檢錯碼所含信息如何表示?
我們將第i位檢錯碼放于數(shù)據(jù)的第2^i位(此操作是為了讓檢錯碼不檢錯其他檢錯碼,檢錯碼檢錯其他檢錯碼會綁定兩個檢錯碼,造成的結果是浪費一位),用第i位檢錯碼為 所有位數(shù)在第i位上為1的數(shù)據(jù)位配奇或配偶(后描述為配偶,因為配奇的原理相同,配偶操作將所有配偶數(shù)據(jù)的1收集,用檢錯位配成偶數(shù)個1,若檢測到配偶及檢錯數(shù)據(jù)仍為奇數(shù)個1,則出現(xiàn)錯誤)。
如此,當漢明碼檢測到第i檢錯位配偶錯誤時,有:錯誤碼的i位為1。
當漢明碼檢測到第i檢錯位配偶正確時,若有錯誤碼,則錯誤碼的i位為0。
隱含的,當漢明碼所有位配偶全部正確時,無錯誤碼。
如此我們可以根據(jù)檢錯位從高到低直接組成二進制來定位錯誤編碼位置。
這里主要是理解(用第i位檢錯碼為所有位數(shù)在第i位上為1的數(shù)據(jù)位檢錯=>當漢明碼檢測到第i檢錯位配偶錯誤時,錯誤碼的i位為1。)