奇偶校驗碼和海明碼原理

奇偶校驗:

不管是奇校驗還是偶校驗,監督位都在數據的後面,而且僅一位。如:

信息位

監督位

111001110

1

編碼原理:

                                信息位

監督位

1110 0110 00

1110 0110 00

奇校驗時

0

1

偶校驗時

1

0

上面的形式是10位數據位+1位監督位。

奇校驗,要保證插入監督碼後”1“的個數爲奇數,其中數據位是不變的,所以監督位置1或0;也就是說,若數據位中”1“的個數是偶數,則監督位爲1;若數據位中”1“的個數是奇數,則監督位爲0。

偶校驗,要保證插入監督碼後”1“的個數爲偶數,其中數據位是不變的,所以監督位置1或0;也就是說,若數據位中”1“的個數是偶數的話,則監督0;若數據位中”1“的個數是奇數,則監督爲1。
 

公式表示:

設碼組長度爲n,前n-1位信息碼元,第n位爲監督位

在偶校驗時   有:

             則監督位:

在奇校驗時   有:

             則監督位:

其中表示模2和,等同“異或”運算。

奇偶校驗只能發現單個或者奇數個錯誤,而不能校測出偶數個錯誤,因而它的校錯能力不強。

海明碼:

  奇偶校驗只能檢錯,並不能糾錯,因爲一位的監督碼並不足以把錯誤的位置表示出來。海明碼是一種多重(複式)奇偶檢錯系統。監督位的長度並不一定,信息位越長,監督位越長,因爲它還要把錯誤的位置表示出來。

若信息長爲n,信息位數爲k,監督位爲r=n-k。則要求:

若有兩個監督位,那麼兩個校正字就有4種可能的組合:

00

無錯

01

第一位出錯

10

第二位出錯

11

第三位出錯

監督位不是放在信息位的後面,也不是連續的。

監督位在上,n是爲整數且假如四位信息碼爲“1011”,怎麼去求校驗位的值。
海明碼也分爲偶校驗海明碼、奇校驗海明碼。下面採用偶校驗舉例。

 對信息碼1011”進行海明編碼:
第一步:確定校驗碼的個數和位置。

已知:信息位數k=4,由得最小的校驗位數r=3。位置在上。P代表校驗位,D代表信息位,如下:

碼字位置(二進制)

1(0001)

2(0010)

3(0011)

4(0100)

5(0101)

6(0110)

7(0111)

碼位類型

碼值

1

0

1

1

第二步:根據關係式求出每一個校驗位。

負責校驗信息位,在偶校驗時有

                         則:=0

負責校驗信息位,在偶校驗時有

                         則:=1

負責校驗信息位,在偶校驗時有

                         則:=0

對信息碼1011”進行海明編碼後爲“0110011”。

  在這裏的每一個校驗位該負責哪幾個信息位是有規律的,從上面的表格可以看出來,每一個校驗碼跟其負責的任一信息位的碼字位置進行“與”運算等於1,根據這規律就知道每個校驗位負責的所有信息位。

如: 0001)&(0001)=1     (0001)&(0101=0

     (0001)&(0110)=1     (0001)&(0111=1

所以負責的校驗信息位是。同理得出

以上是發送方的處理過程,在接收方根據下面3個校驗方程對接收到的信息進行奇偶測試:

A==0

B==0

C==0

以A爲最低有效位,可構成二進制數CBA.

若CBA=000,即等式右邊都等於0,說明沒有錯;若CBA=001,說明出錯;若CBA=100,說明出錯。

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章