海明校驗碼
兩個長度相等的字符串的海明距離是在相同位置上不同的字符的個數,也就是將一個字符串替換成另一個字符串需要的替換的次數。海明距離與檢錯和糾錯的關系:
1.海明距離為d+1的編碼能檢測出d位差錯。
因為在距離為d+1的檢驗碼中,只改變d位的值,不可能產生另一個合法碼。如奇偶校驗碼,海明距離為2,能查出單個錯。
2.海明距離為2d+1的編碼,能糾正d位差錯。
因為此時,如果一個碼字有d位發生差錯,它仍然距離原來的碼字距離最近,可以直接恢復為該碼。
(奇偶校驗碼,海明距離為2,可以檢出單個錯)
糾正單比特錯的冗余位下界,m為數據位數,r為校驗位數
(m+R+1)≤2^r
1.每一個碼字從左到右編號,最左邊為第1位
2.校驗位和數據位
3.每一個校驗位設置根據:包括自己在內的一些位的集合的奇偶值(奇數或偶數)。
海明碼糾錯過程(只糾錯1位)
循環冗余檢錯碼CRC
可以檢測到所有長度小於等於r的突發錯誤
廣泛用於各種網絡,幾乎所有的局域網
使用CRC編碼時發送方和接收方必須預先商定一個生成多項式G(x),假設有一個m為的幀M(x),使用G(x)生成的幀的步驟如下:
小結: