海明碼編碼計(jì)算和糾錯(cuò)、CRC校檢碼計(jì)算

一翩隧、海明碼檢錯(cuò)/糾錯(cuò)基本思想

海明碼(Hamming Code)是一個(gè)能夠有多個(gè)校驗(yàn)位樊展。具有檢測(cè)并糾正一位錯(cuò)誤代碼的糾錯(cuò)碼,所以也僅用于信道特性比較好的環(huán)境中堆生。如以太局域網(wǎng)专缠。它的檢錯(cuò)、糾錯(cuò)基本思想例如以下:
(1)將有效信息按某種規(guī)律分成若干組淑仆,每組安排一個(gè)校驗(yàn)位通過異或運(yùn)算進(jìn)行校驗(yàn)涝婉。得出詳細(xì)的校驗(yàn)碼
(2)在接收端相同通過異或運(yùn)算看各組校驗(yàn)結(jié)果是否正確,并觀察出錯(cuò)的校校組蔗怠《胀洌或者多個(gè)出錯(cuò)的校驗(yàn)組的共同校驗(yàn)位。得出詳細(xì)的出錯(cuò)比特位寞射。
(3)對(duì)錯(cuò)誤位取反來將其糾正渔工。

二、海明碼計(jì)算

海明碼計(jì)算要按下面步驟來進(jìn)行:計(jì)算校驗(yàn)碼位數(shù)→確定校驗(yàn)碼位置→確定校驗(yàn)碼
1.計(jì)算校檢碼位數(shù)
??計(jì)算公式: m + k + 1 ≤ 2k (其中 m 是有效信息位數(shù)桥温,k表示加入校檢碼的位數(shù))

比如:10011101需要的校檢碼位數(shù)?此時(shí)引矩,m = 8,帶入公式得:8+k+1≤ 2k,所以 k = 4侵浸。(怎么算的旺韭?枚舉,枚舉掏觉,枚舉......_,就是估計(jì)帶入去算C琛)。101101100又需要多少位校檢碼呢履腋?(還是4位)珊燎。
2.確定校檢碼位置
??海明碼的校檢碼的位置必須在2n(n從0開始)。也就是從左邊開始第1遵湖、2悔政、4、8延旧、16......).
根據(jù)第一步我們知道10011101需要4位校檢碼谋国,那么校檢碼就在1、2迁沫、4芦瘾、8的位置上捌蚊。把有效信息按位置填入相應(yīng)位(不是校檢位),校檢位暫時(shí)留空近弟,于是得到下圖:

1 2 3 4 5 6 7 8 9 10 11 12
1 0 0 1 1 1 0 1

3.計(jì)算各位校檢碼
??為了說明先直接畫圖缅糟。
由于是4位校檢位,直接寫出4位2進(jìn)制的表祷愉。

8 4 2 1
1 0 0 0 1
2 0 0 1 0
3 0 0 1 1
4 0 1 0 0
5 0 1 0 1
6 0 1 1 0
7 0 1 1 1
8 1 0 0 0
9 1 0 0 1
10 1 0 1 0
11 1 0 1 1
12 1 1 0 0
13 1 1 0 1
14 1 1 1 0
15 1 1 1 1

(1)第1位要填什么窗宦?從上表找出1這列全1對(duì)應(yīng)的十進(jìn)制數(shù):1、3二鳄、5赴涵、7、9订讼、11髓窜、13、15(1沒有就不算)欺殿,看第一個(gè)表中纱烘,3、5祈餐、7擂啥、9、11中分別是1帆阳、0哺壶、1、1蜒谤、0為奇數(shù)山宾,所以第一位應(yīng)該填 1(假設(shè)采用偶校檢)。
(2)第2位要填什么鳍徽?從上表找出2這列全1對(duì)應(yīng)的十進(jìn)制數(shù)2资锰、3、6阶祭、7绷杜、10、11(2沒有)再對(duì)應(yīng)第一個(gè)表中為10110濒募,數(shù)1個(gè)數(shù)為奇數(shù)鞭盟,所以第二位填 1。
(3)第4位看4這列對(duì)應(yīng)全1的 4瑰剃、5齿诉、6、7、12(4沒有)對(duì)應(yīng)第一個(gè)表0011粤剧,1個(gè)個(gè)數(shù)為偶數(shù)歇竟,所以填 0。
(4)第8位看8這列對(duì)應(yīng)全1的 8抵恋、9焕议、10、11馋记、12(8沒有)對(duì)應(yīng)第一個(gè)表為1101,所以填 1懊烤。
(5)最后校檢碼為 1101梯醒。
(6)將校檢碼插入信息碼

1 2 3 4 5 6 7 8 9 10 11 12
1 1 1 0 0 0 1 1 1 1 0 1

總結(jié):第n位校檢碼校檢的碼位,從自己開始校檢n位腌紧,然后空n位茸习,在校檢n位。
例如:
第2位校檢2壁肋、3号胚、(空)、(空)浸遗、6猫胁、7、(空)跛锌、(空)弃秆、10、11 ......
第4位校檢4髓帽、5菠赚、6、7郑藏、(空)衡查、(空)、(空)必盖、(空)拌牲、12、13歌粥、14们拙、15 ......

【例】二進(jìn)制碼 101101100,求它的海明編碼阁吝?
1.計(jì)算k砚婆,m = 9,m + k + 1 ≤ 2k,所以k = 4装盯。
2.確定校檢碼位置:

1 2 3 4 5 6 7 8 9 10 11 12 13
1 0 1 1 0 1 1 0 0

3.確定校檢碼
(1)第1位坷虑,找到(1)、3埂奈、5迄损、7、9账磺、11芹敌、13位,為101010,1為奇數(shù)垮抗,填1.
(2)第2位氏捞,找到(2)、3冒版、6液茎、7、10辞嗡、11位捆等,為11111,1為奇數(shù),填1.
(3)第4位续室,找到(4)栋烤、5、6挺狰、7班缎、12、13位她渴,為01100,1為偶數(shù)达址,填0.
(4)第8位,找到(8)趁耗、9沉唠、10、11苛败、12满葛、13、(14)罢屈、(15)位嘀韧、為01100,1為偶數(shù),填0缠捌,
(5)校檢碼為1100.

4.所以插入了校檢碼的信息碼:1110011001100锄贷。

三译蒂、糾錯(cuò)
??依然根據(jù)上面的例題,我們將11位上改為0.也就是:

1 2 3 4 5 6 7 8 9 10 11 12 13
1 1 1 0 0 1 1 0 0 1 0 0 0

<em>由于信息只有13位谊却,下面()中的位數(shù)沒有柔昼,只是為了方便理解其分組</em>

(1)第1位,找到1炎辨、3捕透、5、7碴萧、9乙嘀、11、13位破喻,為1101000,1為奇數(shù)虎谢,錯(cuò)誤.
(2)第2位,找到2低缩、3嘉冒、6曹货、7咆繁、10、11位顶籽,為111110,1為奇數(shù)玩般,錯(cuò)誤.
(3)第4位,找到4礼饱、5坏为、6、7镊绪、12匀伏、13、(14)蝴韭、(15)位够颠,為001100,1為偶數(shù),正確.
(4)第8位榄鉴,找到8履磨、9、10庆尘、11剃诅、12、13驶忌、(14)矛辕、(15)位、為001000,1為奇數(shù),錯(cuò)誤如筛。
所以出錯(cuò)位數(shù)應(yīng)該是 1+2+8=11位堡牡,將第11位0改為1即可糾正錯(cuò)誤!

<h2>三杨刨、CRC校檢碼</h2>

CRC的實(shí)現(xiàn)原理十分易于硬件實(shí)現(xiàn)晤柄,因此被廣泛的應(yīng)用于計(jì)算機(jī)網(wǎng)絡(luò)上的差錯(cuò)控制。CRC校驗(yàn)碼需根據(jù)CRC生成多項(xiàng)式進(jìn)行妖胀。

1.根據(jù)多項(xiàng)式確定代碼 P 以及R的位數(shù)(R位數(shù) = P位數(shù) -1)芥颈。
2.在信息 M 后面加 0,加 0 的個(gè)數(shù)等于 R位數(shù).
3.用 M 對(duì) P 做模2除法(也就是按位做異或)得到余數(shù)r赚抡。
4.余數(shù) r 不夠 R位數(shù)爬坑,則在高位補(bǔ)0,得到的數(shù)即校檢碼涂臣。

異或:0 ⊕ 0 = 0盾计;0 ⊕ 1 = 1;1 ⊕ 0 = 1赁遗;1 ⊕ 1 = 0署辉;運(yùn)算數(shù)相同結(jié)果為0,不同結(jié)果為1

【例】現(xiàn)假設(shè)選擇的CRC生成多項(xiàng)式為G(X) = X4 + X3 + 1岩四,要求出二進(jìn)制序列10110011的CRC校驗(yàn)碼哭尝。
(1)更具多項(xiàng)式確定代碼P以及R的位數(shù)
多項(xiàng)式為G(X) = X4 + X3 + 1,那么

X4 X3 X2 X1 X0(=1)
1 1 0 0 1

也就是代碼P = 11001剖煌,P為5位材鹦,R位數(shù)則為5 - 1 = 4位。
(2)在信息 M 后面加 0耕姊,加 0 的個(gè)數(shù)等于 R位數(shù).
M = 10110011桶唐,那么加 4 位 0 后得到 101100110000.
(3)用 M 對(duì) P 做模2除法(由于不關(guān)心商多少,直接去掉除法上面商部分_)茉兰。

模2除法

(4)將計(jì)算出來的CRC校驗(yàn)碼添加在原始幀的后面尤泽,真正的數(shù)據(jù)幀為101100110100,再把這個(gè)數(shù)據(jù)幀發(fā)送到接收端邦邦。
(5)接收端收到數(shù)據(jù)幀后安吁,用上面選定的除數(shù),用模2除法除去燃辖,驗(yàn)證余數(shù)是否為0鬼店,如果為0,則說明數(shù)據(jù)幀沒有出錯(cuò)黔龟。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末妇智,一起剝皮案震驚了整個(gè)濱河市滥玷,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌巍棱,老刑警劉巖惑畴,帶你破解...
    沈念sama閱讀 221,820評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異航徙,居然都是意外死亡如贷,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,648評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門到踏,熙熙樓的掌柜王于貴愁眉苦臉地迎上來杠袱,“玉大人,你說我怎么就攤上這事窝稿¢垢唬” “怎么了?”我有些...
    開封第一講書人閱讀 168,324評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵伴榔,是天一觀的道長(zhǎng)纹蝴。 經(jīng)常有香客問我,道長(zhǎng)踪少,這世上最難降的妖魔是什么塘安? 我笑而不...
    開封第一講書人閱讀 59,714評(píng)論 1 297
  • 正文 為了忘掉前任,我火速辦了婚禮秉馏,結(jié)果婚禮上耙旦,老公的妹妹穿的比我還像新娘赐劣。我一直安慰自己坟奥,他們只是感情好秧均,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,724評(píng)論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著帆竹,像睡著了一般。 火紅的嫁衣襯著肌膚如雪脓规。 梳的紋絲不亂的頭發(fā)上栽连,一...
    開封第一講書人閱讀 52,328評(píng)論 1 310
  • 那天,我揣著相機(jī)與錄音侨舆,去河邊找鬼秒紧。 笑死,一個(gè)胖子當(dāng)著我的面吹牛挨下,可吹牛的內(nèi)容都是我干的熔恢。 我是一名探鬼主播,決...
    沈念sama閱讀 40,897評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼臭笆,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼叙淌!你這毒婦竟也來了秤掌?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,804評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤鹰霍,失蹤者是張志新(化名)和其女友劉穎闻鉴,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體茂洒,經(jīng)...
    沈念sama閱讀 46,345評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡孟岛,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,431評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了督勺。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蚀苛。...
    茶點(diǎn)故事閱讀 40,561評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖玷氏,靈堂內(nèi)的尸體忽然破棺而出堵未,到底是詐尸還是另有隱情,我是刑警寧澤盏触,帶...
    沈念sama閱讀 36,238評(píng)論 5 350
  • 正文 年R本政府宣布渗蟹,位于F島的核電站,受9級(jí)特大地震影響赞辩,放射性物質(zhì)發(fā)生泄漏雌芽。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,928評(píng)論 3 334
  • 文/蒙蒙 一辨嗽、第九天 我趴在偏房一處隱蔽的房頂上張望世落。 院中可真熱鬧,春花似錦糟需、人聲如沸屉佳。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,417評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽武花。三九已至,卻和暖如春杈帐,著一層夾襖步出監(jiān)牢的瞬間体箕,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,528評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工挑童, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留累铅,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,983評(píng)論 3 376
  • 正文 我出身青樓站叼,卻偏偏與公主長(zhǎng)得像娃兽,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子大年,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,573評(píng)論 2 359