crc校驗及其應用
海明校驗及其實現
同一編碼中,任意兩個合法編碼之間不同二進位制位數的最小值
例:0011與0001的碼距為1,一位錯誤無法識別
校驗碼中增加冗餘位的目的就是增加碼距
碼距與檢查或糾錯能力的關係
1)碼距 >= e+1
可檢測e個錯誤
2)碼距 >= 2t+1
可糾正t個錯誤
3)碼距 >= e + t + 1
可同時檢測e個錯誤,糾正t個錯誤(e >= t)
選擇碼距要考慮的因素
碼距越大,抗干擾能力越強,糾錯能力越強,資料冗餘越大,編碼效率低,編碼電路也相對複雜;
選擇碼距必須考慮資訊發生差錯的概率和系統能容許的最小差錯率。
1)增加冗餘碼(校驗位)
2)編碼:根據有效資訊計算校驗資訊位,使校驗位(資料+1位校驗資訊)中1的個數滿足奇/偶校驗的要求
特點:編碼和檢錯簡單
編碼效率高
不能夠檢測偶數字錯誤,無錯結論不可靠,是一種錯誤檢測碼
不能定位錯誤,因此不具備糾錯能力
雙向奇偶校驗
方塊校驗
垂直水平校驗
可糾正1位錯誤
可檢測出某行(列)上的奇數字
可檢出一部分偶數字錯誤
不能檢測出錯碼分布在矩形四個頂點上的錯誤
路由器的配置
記憶體條同步傳輸:奇校驗。非同步傳輸:偶校驗
基本原理
增加冗餘碼(校驗位)
生成多項式g(x)
收發雙方約定乙個(r+1)位二進位制數,傳送方利用g(x)對資訊多項式做模2除運算,生成校驗碼。接收方利用g(x)對收到的編碼多項式做模2除運算檢測差錯以及錯誤定位。
g(x)應滿足的條件
a、最高位和最低位必須為1;
b、當被傳送資訊(crc碼)任何一位傳送錯誤時,被生成多項式做除後應該使餘數不為0;
c、不同位傳送錯誤時,模2除運算後餘數不同;
d、對不為0餘數繼續進行模2除運算應使餘數迴圈;
模2運算規則
a)加減運算(異或運算,加不進製,減不借位)
b)按模2減,求部分餘數,不借位
c)上商規則
1.部分餘數首位為1時,商為1,減除數;
2.部分餘數首位為0時,商為0,減0;
3.當部分餘數的位數小於除數的位數時,該餘數即為最後餘數;
crc編碼方法
a)根據待校驗資訊的長度k,按照k+r<=2r-1確定校驗位r的位數
如對4位資訊1100進行crc編碼,根據4+r <= 2r-1
得rmin = 3;
b)根據r和多項式的選擇原則,選擇位數字r+1的生成多項式g(x)=1011
c)將待校驗的二進位制資訊q(x)邏輯左移r位,得到q(x)』
d)對q(x)'按模2運算法則除q(x),求crc編碼中的r位校驗資訊
e)用得到的餘數替換q(x)'的最後r位即可得到對應的crc編碼
接收方利用g(x)對收到的有錯編碼多項式做模2運算
餘數不為0說明傳輸有錯
不同位數出錯,餘數是不一樣的
不同生成多項式,對應的相同位出錯的餘數,是不盡相同的。
一位出錯情況下餘數的迴圈特性進行糾錯
若餘數不為0,一邊對餘數補0繼續做模2除,同時讓被檢測的校驗碼迴圈左移,當余數字101時,出錯位也移到a1位置。通過異或運算糾正後繼續迴圈左移和執行餘數模2除法,直到修改後的出錯位回原位,不需對每一位提供糾正電路。
當位數增多時,迴圈碼校驗能有效地降低硬體代價,這是它得以廣泛應用的主要原因。
增加冗餘碼(校驗位)
1)設k+r位海明碼從左到右依次為第1,2,3,…,k+r位,r位校驗位記為pi(i=1,2,…),分別為位於k+r位海明編碼的第2i-1(i=1,2,…,r)位上,其餘依次放置被校驗的資料位;
2)
計算機組成與體系結構 校驗碼(7)
基礎知識 原理 通過加一冗餘碼,來檢驗或糾錯編碼 碼距 兩個二進位制數比較,在同一數字的地方,數字值不同的個數有多少個,即碼距 如 0100 和 1111碼距是多少 1 看 有3個數字值不同,則碼距 3 2 異或計算 異或 相同為0,不同為1 0100 1111 異或運算 1011 有幾個1 則碼距...
計算機組成與體系結構 校驗碼知識點
關於校驗碼的知識點,首先我們應該知道有關校驗碼的三個基本名詞的含義。檢錯 糾錯與碼距 檢錯與糾錯,顧名思義就是檢查錯誤和糾正錯誤。碼距,指的是在乙個編碼系統中任意兩個碼的最小距離。簡單點說,就是有多少位的二進位制編碼最小碼距就是多少。三者之間的關係為 在乙個碼組中為了檢測e個誤碼,要求最小碼距 在乙...
計算機校驗碼分類及原理
由於元件故障和雜訊干擾等因素常常導致計算機在處理資訊的過程中出現錯誤。為了防止資訊在傳輸過程的錯誤,將訊號採用專門的邏輯電路進行編碼以檢測錯誤,甚至校正錯誤。通常的方法是在每個字上新增一些校驗位,用來確定字中出現錯誤的位置。在計算機中有三種常見的檢驗碼,分別是 奇偶校驗碼,海明校驗碼,迴圈冗餘碼 1...