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