0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

漢明碼計算及其糾錯原理詳解

倩倩 ? 來源:網(wǎng)絡(luò)整理 ? 2018-03-02 15:08 ? 次閱讀

當(dāng)計算機(jī)存儲或移動數(shù)據(jù)時,可能會產(chǎn)生數(shù)據(jù)位錯誤,這時可以利用漢明碼來檢測并糾錯,簡單的說,漢明碼是一個錯誤校驗碼碼集,由Bell 實驗室的R.W.Hamming 發(fā)明,因此定名為漢明碼。

漢明碼(Hamming Code),是在電信領(lǐng)域的一種線性調(diào)試碼,以發(fā)明者理查德·衛(wèi)斯里·漢明的名字命名。漢明碼在傳輸?shù)南⒘髦胁迦腧炞C碼,以偵測并更正單一比特錯誤。由于漢明編碼簡單,它們被廣泛應(yīng)用于內(nèi)存(RAM )。其SECDED (single error correction, double error detection)版本另外加入一檢測比特,可以偵測兩個或以下同時發(fā)生的比特錯誤,并能夠更正單一比特的錯誤。因此,當(dāng)發(fā)送端與接收端的比特樣式的漢明距離(Hamming distance)小于或等于1時(僅有1 bit發(fā)生錯誤),可實現(xiàn)可靠的通信。相對的,簡單的奇偶檢驗碼除了不能糾正錯誤之外,也只能偵測出奇數(shù)個的錯誤。

在數(shù)學(xué)方面,漢明碼是一種二元線性碼。對于每一個整數(shù),存在一個編碼,帶有個奇偶校驗位個數(shù)據(jù)位。該奇偶檢驗矩陣的漢明碼是通過列出所有米欄的長度是兩兩獨(dú)立。

漢明碼的定義和漢明碼不等式:

設(shè):m=數(shù)據(jù)位數(shù),k=校驗位數(shù)為,n=總編碼位數(shù)=m+k,有Hamming不等式:

漢明碼計算及其糾錯原理詳解

漢明碼不等式含義:

a) 總數(shù)據(jù)長度為N,如果每一位數(shù)據(jù)是否錯誤都要記錄,就需要N位來存儲。

b) 每個校驗位都可以表示:對或錯;校驗位共K位,共可表示2k種狀態(tài)

c) 總編碼長度為N,所以包含某一位錯和全對共N+1種狀態(tài)。

d) 所以2k≧N+1 e) 數(shù)據(jù)表見下

漢明碼計算及其糾錯原理詳解

Hamming碼缺點(diǎn):

無法實現(xiàn)2位或2位以上的糾錯,Hamming碼只能實現(xiàn)一位糾錯。

以典型的4位數(shù)據(jù)編碼為例,演示漢明碼的工作過程

a) 數(shù)據(jù)存儲格式:

漢明碼計算及其糾錯原理詳解

依照此前的漢明碼不等式計算出,當(dāng)數(shù)據(jù)位為4位時,漢明碼校驗位至少為3位,如上方式排列

可以看的出D8、D4、D2、D1中的數(shù)字都是2的整數(shù)冪

b) 漢明校驗碼的插入規(guī)律:

設(shè):編碼位代號k,校驗碼位代號p,數(shù)據(jù)位代號n

某個校驗碼Pp將處于整個編碼的第k位

k=2^(p-1)=2的(p-1)次方

以數(shù)據(jù)位為5的一組9位數(shù)編碼為例,如下:

漢明碼計算及其糾錯原理詳解

c) 校驗位與數(shù)據(jù)位的對應(yīng)關(guān)系:

注:^是邏輯運(yùn)算符異或。

P1=D8^D4^D1

P2=D8^D2^D1

P3=D4^D2^D1

小解釋:數(shù)據(jù)位共4位每行等式都缺少一位,而缺少的這位數(shù)據(jù)位正好是DX,等式左邊的校驗位為PY,X=2y.

d) 校驗位如何參與計算:

P1’=P1^D8^D4^D1

P2’=P2^D8^D2^D1

P3’=P3^D4^D2^D1

從高到低排列的二進(jìn)制數(shù):P3’ P2’ P1’表示的就是出錯的編碼位,從000-011-101-110-111共5種組合,可表示原數(shù)據(jù)位D8D4D2D1某一位錯&沒錯的一共5種狀態(tài)。

e) 設(shè)有一數(shù)字為:1101,帶入運(yùn)算:

D8=1、D4=1、D2=0、D1=1,

P1 =1,P2=0、P3=0。

漢明碼處理的結(jié)果就是1010101

假設(shè):D8出錯,P3’ P2’ P1’=011=十進(jìn)制的3,即表示編碼后第三位出錯,對照存儲格式表,果然就是D8錯誤。

假設(shè):D4錯誤,P3’ P2’ P1’=101=十進(jìn)制的5,即表示編碼后第五位出錯,對照存儲格式表,果然就是D4錯誤。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 漢明碼
    +關(guān)注

    關(guān)注

    0

    文章

    8

    瀏覽量

    8158
收藏 人收藏

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    請問漢明碼(7,4)一共有多少種碼字呢?

    我覺得應(yīng)該是2^4=16種吧?漢明碼(12,8)就是2^8=256種?請問對不對?
    發(fā)表于 05-22 00:09

    智能電表設(shè)計及其原理詳解

    智能電表設(shè)計及其原理詳解
    發(fā)表于 11-12 09:45

    基于FPGA的漢明碼譯碼器如何對碼元數(shù)據(jù)添加噪聲干擾?

    入門小白求助,我最近在做畢業(yè)設(shè)計的時候 看到一篇《基于FPGA的漢明碼譯碼器》相關(guān)論文,其中學(xué)者對該譯碼器是這樣設(shè)計的(附圖),我想問一下在noise_add模塊中是如何向輸入數(shù)據(jù)添加噪聲干擾
    發(fā)表于 02-26 23:29

    【原創(chuàng)】基于FPGA的漢明碼編碼解碼設(shè)計

    基于FPGA的漢明碼編碼解碼設(shè)計實驗簡述本實驗的目的是實現(xiàn)漢明糾錯碼的編碼和解碼1.1漢明碼簡介 漢明碼,是在電信領(lǐng)域的一種線性調(diào)試碼,以發(fā)明者理查德 衛(wèi)斯理 漢明的名字命名。
    發(fā)表于 04-15 11:47

    如何提高漢明碼糾錯能力?

    漢明碼糾錯原理是什么?怎樣實現(xiàn)漢明碼對連續(xù)多位差錯糾正?怎樣去設(shè)計漢明碼測試程序?
    發(fā)表于 04-27 06:22

    提高漢明碼對突發(fā)干擾的糾錯能力

    在簡要介紹漢明碼編碼原理的基礎(chǔ)上,詳細(xì)分析干擾對漢明碼糾錯的影響;通過對漢明碼重新組織排列,在不增加代碼冗余度的前提下,提高漢明碼抗突發(fā)干擾
    發(fā)表于 04-15 11:34 ?20次下載

    PIC單片機(jī)串行通信中的漢明編碼自動檢糾錯

    基于漢明碼(Hamning Code)編碼方式實現(xiàn)串行通信中的自動檢糾錯功能。重點(diǎn)分析漢明碼編碼方式和糾錯方式,并介紹實現(xiàn)算法。在算法中,將位操作轉(zhuǎn)化為對字節(jié)操作,從而可以直
    發(fā)表于 05-16 14:09 ?27次下載

    一種基于漢明碼和濕紙碼的隱寫算法

    該文通過將載體圖像分割成矩陣塊,重復(fù)利用載體矩陣塊像素,結(jié)合漢明碼和濕紙碼構(gòu)造了一種新的雙層結(jié)構(gòu)隱寫算法。該算法首先利用漢明碼在載體矩陣的行向量中嵌入信息,然
    發(fā)表于 02-09 14:45 ?8次下載

    利用FPGA實現(xiàn)模式可變的衛(wèi)星數(shù)據(jù)存儲器糾錯系統(tǒng)

    摘要:比較討論了航天器數(shù)據(jù)存儲器中漢明碼和TMR兩種典型糾錯系統(tǒng)的原理、實現(xiàn)以及數(shù)據(jù)可靠性的估計,在此基礎(chǔ)上提出了一種集成這兩種系統(tǒng)模式并可在實際應(yīng)
    發(fā)表于 06-20 15:39 ?621次閱讀
    利用FPGA實現(xiàn)模式可變的衛(wèi)星數(shù)據(jù)存儲器<b class='flag-5'>糾錯</b>系統(tǒng)

    漢明碼,漢明碼是什么意思

    漢明碼,漢明碼是什么意思 漢明碼是一種能夠糾正單個錯誤的線性分組碼。它有以下特點(diǎn): (1)最小碼距
    發(fā)表于 03-17 17:41 ?8557次閱讀

    基于FPGA的檢糾錯邏輯算法的實現(xiàn)

    基于漢明碼糾錯原理.根據(jù)對64位數(shù)據(jù)進(jìn)行檢糾錯處理的需要,設(shè)計一個利用8位校驗碼,以實現(xiàn)該功能的算法邏輯,并通過FPGA實現(xiàn)。
    發(fā)表于 09-15 15:14 ?1759次閱讀
    基于FPGA的檢<b class='flag-5'>糾錯</b>邏輯算法的實現(xiàn)

    MATLAB實現(xiàn)漢明碼編碼譯碼

    MATLAB是美國MathWorks公司出品的商業(yè)數(shù)學(xué)軟件,用于算法開發(fā)、數(shù)據(jù)可視化、數(shù)據(jù)分析以及數(shù)值計算的高級技術(shù)計算語言和交互式環(huán)境,主要包括MATLAB和Simulink兩大部分。
    發(fā)表于 03-02 16:33 ?1.3w次閱讀

    漢明碼編譯碼器的數(shù)據(jù)手冊免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是漢明碼編譯碼器的數(shù)據(jù)手冊免費(fèi)下載。
    發(fā)表于 12-13 08:00 ?0次下載
    <b class='flag-5'>漢明碼</b>編譯碼器的數(shù)據(jù)手冊免費(fèi)下載

    漢明碼糾錯的基本原理及優(yōu)化解決方案

    我們也要看到,這樣處理后提高了漢明碼對突發(fā)干擾差錯的糾錯能力,卻犧牲了對隨機(jī)干擾糾錯能力。因為這樣對漢明碼重新排序后,原來1個漢明碼的各個位
    的頭像 發(fā)表于 09-16 17:52 ?1.6w次閱讀
    <b class='flag-5'>漢明碼</b><b class='flag-5'>糾錯</b>的基本原理及優(yōu)化解決方案

    漢明碼編譯碼文檔

    電子發(fā)燒友網(wǎng)站提供《漢明碼編譯碼文檔.doc》資料免費(fèi)下載
    發(fā)表于 11-17 16:04 ?4次下載
    <b class='flag-5'>漢明碼</b>編譯碼文檔

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會員交流學(xué)習(xí)
    • 獲取您個性化的科技前沿技術(shù)信息
    • 參加活動獲取豐厚的禮品