奇偶校驗碼
- 如果只有一個奇偶校驗位,就只能檢測一位錯誤,還是奇數位的錯誤,也不能確定出錯的位置,也不能確定偶數位的錯誤
- 奇校驗:校驗位+資訊位的“1”的個數為奇數
- 偶校驗:校驗位+資訊位的“1”的個數為偶數
海明校驗碼(漢明碼)
- 實質:一種多重奇偶校驗碼
- L-1=D+C 且 D≥C其中,L為最小碼距,D為檢錯位數,C為糾錯位數
例項
在n=4,k=3,求1101的海明碼
1.確定海明碼位數
設n為有效資訊的位數,k為校驗位數,則應滿足
n+k≤2k -1,此題中,n=4,k=3
設資訊位位D4D3D2D1(1011),共4位
校驗位P3P2P1,則對應海明碼為H7H6H5H4H4H3H2H1,我找到的參考資料是倒著寫的,我也按這種方法
2.確定校驗位分佈
規定校驗位 Pi 在海明位號H2i-1 的位置上,其餘各位為資訊位
P1 對映到H1 = P1
P2 對映到H2 = P2
P3 對映到H4 = P3
將資訊位寫入後,得到 H7 H6 H5 H4 H3 H2 H1
D4 D3 D2 P3 D1 P2 P1
3.分組以形成校驗關係
每個資料位由多個校驗位進行校驗。但要滿足 被校驗資料位的海明位號 等於 校驗該資料位的個校驗位海明位號之和,且校驗位不用在校驗
P1(H1) | P2(H2) | P3(H4) | |||
D1 | 放在H3 ,由P2P1校驗 | 3 | 1 | 2 | |
D2 | 放在H5 ,由P1P3校驗 | 5 | 1 | 4 | |
D3 | 放在H6 ,由P2P3校驗 | 6 | 2 | 4 | |
D4 | 放在H7 ,由P1P2P3校驗 | 7 | 1 | 2 | 4 |
第一組 | 第二組 | 第三組 |
4.校驗位取值
D4D3D2D1(1011)
校驗位Pi的值為第i組所有的資料按位異或
P1 = D4異或D2異或D1 = 1
P2 = D4異或D3異或D1 = 0
P3 = D4異或D3異或D2 = 0
所以最終為1010101
5.校驗原理
每個校驗組分別利用校驗位和參與形成改校驗位的資訊位進行異或運算
S1 = P1異或D4異或D2異或D1
S2 = P2異或D4異或D3異或D1
S3 = P3異或D4異或D3異或D2
若S3S2S1為000,則無錯;若為001則說明第一位出錯,取反就行
迴圈冗餘校驗碼CRC
資訊位K位,後面直接拼上R位,常用於資料鏈路層的資料傳輸
設生成多項式為x3+x2+1,資訊位為101001,求對應CRC
1.移位
生成多項式最高冪次=R=3
資訊部位長度=K=6
N=K+R
原資訊碼右側填上3個0,相當於左移3位低位補0
101001000
2.相除
根據生成多項式寫出除數為 1101
如下圖