利用海明碼的監督關係式求解碼字

2021-08-20 15:38:09 字數 1114 閱讀 8762

關於海明碼的介紹,前面幾篇部落格中已經說明了。這裡主要是介紹如何根據海明碼的監督關係式求解海明碼的碼字。下面主要以典型例題的方式介紹如何求解。

例題1:

假定資訊碼為0010,海明碼的監督關係式為:

s2 = a2+a4+a5+a6

s1 = a1+a3+a5+a6

s0 = a0+a3+a4+a6

求解海明碼的碼字。

解:(1)由監督關係式可知冗餘碼為a2 a1 a0,共三位。

(2)冗餘碼與資訊碼合成的海明碼是:0 0 1 0 a2 a1 a0,共七位。可通過**示意如下:

a6a5

a4a3

a2a1a00

010s2

s1s0

設s2 = s1 = s0 = 0,也即假定a2=a1=a0=0,由監督關係式得:

s2 = a2+a4+a5+a6 = 0 + 1 +0 + 0 = 1,(「+」號代表異或運算)

s1 = a1+a3+a5+a6 = 0 + 0 + 0 + 0 = 0

s0 = a0+a3+a4+a6 = 0 + 0 + 1 + 0 = 1

所以s2s1s0=a2a1a0=101,則海明碼的碼字為:0010101。

例題2:

使用海明碼進行糾錯,

7 位碼長

(x7x6x5x4x3x2x1)

,其中4

位資料,監督關係式為:

c0 = x1+x3+x5+x7

c1 =x2+x3+x6+x7

c2 =x4+x5+x6+x7

如果接收到的碼字為

1000101

,那麼糾錯後的碼字是?

解:海明碼碼字可示意如下表:

x7x6

x5x4

x3x2x11

0001

01c0 = x1+x3+x5+x7 = 1+1+0+1=1

c1 =x2+x3+x6+x7 = 0+1+0+1=0

c2 =x4+x5+x6+x7 = 0+0+0+1=1

通過監督關係式的異或運算可得c2c1c0=101,  二進位制101對應的十進位制為5,也就是1000101從右往左數的第五位出錯了,第五位是0,正確的應該是1,所以糾錯後的碼字是1010101。

海明碼(漢明碼)的工作機制

一 海明碼的形成方式 1 首先海明碼是由資訊位和校驗位組成的 2 資訊位校驗位的關係 校驗位的位數r 資訊位的位數i 2 r 1 i r 3 校驗位的位置是2的整數次方 如 1 2 4 8 4 海明碼位數分組 因為海明碼其實是分組的奇偶校驗碼,所以有個分組的概念 1 1 3 5 7 2 2 3 6 ...

海明碼生成的方案

輸入一段10101 序列,生成其海明碼。生成過程在 中已經表示出來了。本 在code blocks17.12中正常執行。include include include define maxsize 60 2的冪 intpower int subnum int res 2 while subnum 0...

關於海明碼的筆記

漢明碼簡要介紹,自 海明碼 也叫漢明碼 具有一位糾錯能力。本文以1010110這個二進位制數為例解釋海明碼的編碼和校驗方法。設資料有n位,校驗碼有x位。則校驗碼一共有2x種取值方式。其中需要一種取值方式表示資料正確,剩下2x 1種取值方式表示有一位資料出錯。因為編碼後的二進位制串有n x位,因此x應...