校正之:海明碼校正、同位

來源:互聯網
上載者:User

標籤:

1、同位碼

同位通過在編碼中增加一個校正位來使編碼中的1的個數為奇數(奇數同位)或者偶數(偶校正),從而使碼距變為2.對於奇數同位,它可以檢測代碼中奇數位出錯的編碼,但不能發現偶數位出錯的情況。既當合法編碼中奇數位出現錯誤。也就是1變成0或者0變成1,其編碼的奇偶性就發生了變化,從而發現錯誤。但是這種校正只能發現出現了錯誤但是不知道具體是哪一位發生了錯誤。

8421碼的同位碼

   十進位數       8421 BCD碼         帶奇數同位位的8421碼        帶偶校正位的8421碼    
0 0000 0000  1 0000  0
1 0001 0001  0 0001  1
2 0010 0010  0 0010  1
3 0011 0011  0 0011  0
4 0100 0100  1 0100  1
5 0101 0101  0 0101  0
6 0110 0110  1 0110  0
7 0111 0111  0 0111 1
8 1000 1000  0 1000  1
9 1001 1001  1 1001  0

常用的同位有三種:水平同位,垂直同位校正和水平垂直同位。

水平同位:對每一種資料的編碼添加校正位,使資訊位與校正位處於同一行

垂直同位:這種校正將資料分為若干組,一組一行,整齊排列,再加上一行校正位,針對每一列採樣奇數同位或偶校正。

對32位元據:10100101  00110110  11001100 10101011 進行校正:

        編碼分類                垂直奇數同位                垂直偶校正        
資料

10100101

00110110

11001100

10101011

10100101

00110110

11001100

10101011

校正位 00001011 11110100

就是這個意思:--------------------------------------------------------------------------------------------------------------

 

水平校正與垂直水平校正都類似。

2.海明碼

海明碼也是利用同位和錯誤修正校正的方法,海明碼的構成是:在資料位元之間插入k個校正位,通過擴大碼距來時間檢查和錯誤修正。例如:對於8位的資料,需要4個校正位來進行校正。如,令資料位元:D7、D6、D5、D4、D3、D2、D1、D0和校正位位:P4、P3、P2、P1。則編碼位置:

H12     H11    H10    H9    H8    H7    H6    H5    H4    H3    H2    H1   

D7     D6     D5     D4      P4      D3     D2     D1    P3     D0     P2    P1

校正碼的設定位置在2^i的位置上。每個校正位只校正資料中位置號的二進位編碼和自身位置號的二進位編碼相匹配的資料:

即如所示:

 

因此校正關關係為:

P1偶校正:P1、D0、D1、D3、D4、D6

即:P1=D0⊕D1⊕D3⊕D4⊕D6

P2偶校正:P2、D0、D2、D3、D5、D6

即:P2=D0⊕D2⊕D3⊕D5⊕D6

P3偶校正:P3、D1、D2、D3、D7

即:P3=D1⊕D2⊕D3⊕D7

P4偶校正:P4、D4、D5、D6、D7

即:P4=D4⊕D5⊕D6⊕D7

海明碼的錯誤偵測也非常簡單,對使用海明碼的資料進行如下計算即可: 

G1=P1⊕D0⊕D1⊕D3⊕D4⊕D6

G2=P2⊕D0⊕D2⊕D3⊕D5⊕D6

G3=P3⊕D1⊕D2⊕D3⊕D7

G4=P4⊕D4⊕D5⊕D6⊕D7

對於所得的值,若採用偶校正,則全為0表示接受的資料無誤(奇數同位則全為1)當G4G3G2G1不全為0,說明發生了錯誤,而且是G4G3G2G1的十進位值指出了錯誤的位置:如:G4G3G2G1=1010,則說明H10(D5)出了問題,將其取反便可糾正。

 

 

設資料01101001,採用四個校正位求其偶校正的海明碼:

0    1    1    0    1    0    0    1

D7 D6 D5  D4  D3  D2  D1  D1

P1=D0⊕D1⊕D3⊕D4⊕D6=1⊕0⊕1⊕0⊕1=1

P2=D0⊕D2⊕D3⊕D5⊕D6=1⊕0⊕1⊕1⊕1=0

P3=D1⊕D2⊕D3⊕D7=0⊕0⊕1⊕0=1

P4=D4⊕D5⊕D6⊕D7=0⊕1⊕1⊕0=0

所以校正的海明碼為:

 

 

 

校正之:海明碼校正、同位

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.