計算機組成與體系結構 校驗碼(7)

2021-10-08 21:55:13 字數 2318 閱讀 6606

基礎知識

原理:通過加一冗餘碼,來檢驗或糾錯編碼

碼距:兩個二進位制數比較,在同一數字的地方,數字值不同的個數有多少個,即碼距

如:0100 和 1111碼距是多少

1、看:有3個數字值不同,則碼距:3

2、異或計算:(異或:相同為0,不同為1)

0100 1111 異或運算 = 1011

有幾個1 則碼距是多少;碼距:3

可檢查1位錯誤,不可糾錯

編碼方法:由若干有效資訊(如乙個位元組),再加上乙個二進位制位(校驗位)組稱校驗碼

奇校驗:整個校驗碼(有效資訊和校驗位)中「1」的個數為奇數。

偶校驗:整個校驗碼(有效資訊和校驗位)中「1」的個數為奇數。

例:原始編碼1011 0111

原始編碼中1的個數有6個

奇校驗: 1 1011 0111 有奇數(7)個1

偶校驗:0 1011 0111 偶數(6)個1

總結: 奇偶校驗可以檢測出奇數個錯誤而無法檢查出偶數個錯誤,也無法糾正錯誤,無法定位錯誤位置。

crc校驗,可校錯,不可糾錯

編碼方法:在k位資訊碼之後拼接r位校驗碼。

多項式:乙個二進位制數碼都可用乙個係數為0或1的多項式與之對應。

比如:二進位制數碼 1101

對應的g(x) = 1 * x3 + 1 * x2 + 0 * x1 + 1 * x0 = x3 + x2 + 1

例:資訊碼:110 0101 0101,生成多項式: x4 + x3 + x2 + 1。crc編碼結果為:

1)多項式對應的二進位製碼: 11101

2)r = 多項式的最高次冪 = 4

3)拼接:k位資訊碼 + r位校驗碼(補0) 110 0101 0101 0000

4)模2除法得餘數(異或運算):110 0101 0101 0000 / 11101 取模 0011即校驗碼

5)結果:110 0101 0101 0000 0011

海明校驗,可檢錯,也可糾錯。

原理:在有效資訊中加入幾個校驗碼形成海明碼,使碼距比較均勻地拉大。

並把海明碼的每個二進位制位分配到奇偶校驗組中。

當某一位出錯後,就會引起有關的幾個校驗位的值發生變化,

這不但可以發現錯誤,還能指出錯誤的位置,為自動糾錯提供了依據

2p ≥ m + p + 1 m:二進位制長度,r:校驗位

例:

求資訊1010的海明碼

1)確定海明碼位數:2p ≥ m + p + 1,

m = 4 ; 2p ≥ 4 + p + 1;p= 3

海明碼位數: m + p = 7;

2)校驗位 一般放在 2n (n = 0,1,2……)位置上

3)確定校驗位

p1 (001) ----> m3(011) m5(101) m7(111) 二進位制最後一位都是1

將m轉化為值並根據奇偶校驗確定值p的值:

奇校驗值:011 0010

偶校驗值:101 1010

3)傳送,其中有一位錯誤(奇校驗)

錯誤:011 0110

4)將接收端資訊補全

5)奇校驗得到e的值 101

101轉化為十進位制 = 5

則可知第5位出錯了。

若最後結果為0,則表示無錯

6)糾錯:將第5位取反

錯:011 0110

改:011 0010

計算機組成與體系結構 校驗碼知識點

關於校驗碼的知識點,首先我們應該知道有關校驗碼的三個基本名詞的含義。檢錯 糾錯與碼距 檢錯與糾錯,顧名思義就是檢查錯誤和糾正錯誤。碼距,指的是在乙個編碼系統中任意兩個碼的最小距離。簡單點說,就是有多少位的二進位制編碼最小碼距就是多少。三者之間的關係為 在乙個碼組中為了檢測e個誤碼,要求最小碼距 在乙...

計算機組成 校驗碼

crc校驗及其應用 海明校驗及其實現 同一編碼中,任意兩個合法編碼之間不同二進位制位數的最小值 例 0011與0001的碼距為1,一位錯誤無法識別 校驗碼中增加冗餘位的目的就是增加碼距 碼距與檢查或糾錯能力的關係 1 碼距 e 1 可檢測e個錯誤 2 碼距 2t 1 可糾正t個錯誤 3 碼距 e t...

計算機組成與體系結構

計算機硬體的組成 控制器控制器是分析和執行指令的部件,也是統一指揮並控制計算機各部件協調工作的中心部件,所依據的是機器指令。指令暫存器ir 儲存即將執行的指令 指令解碼器id 對指令中的操作碼字段進行分析解釋 時序部件 提供時序控制訊號 運算器運算器也稱為算術邏輯單元 arithmeticandlo...