在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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 16:07 ? 次閱讀

為了保證通信過程中數(shù)據(jù)傳輸?shù)恼_性和完整性,并且在通信過程中,如果數(shù)據(jù)傳輸發(fā)生一位錯誤,能夠?qū)⑵涑C正過來,將信息數(shù)據(jù)進(jìn)行漢明編碼后再進(jìn)行數(shù)據(jù)傳輸。

漢明碼(Hamming Code)也叫海明碼,是Richard Hamming(貝爾實(shí)驗(yàn)室)于1950年發(fā)明的,漢明碼也是利用了奇偶校驗(yàn)位概念,通過在數(shù)據(jù)位后增加一些比特以驗(yàn)證數(shù)據(jù)的有效性,故漢明碼也屬于線性糾錯碼(可糾錯1-bit錯誤檢出2-bit錯誤)。漢明碼無法實(shí)現(xiàn)2位及2位以上糾錯。

漢明碼原理

漢明碼運(yùn)算需要構(gòu)造G生成矩***和H監(jiān)督矩***,關(guān)于構(gòu)造方法可參考相關(guān)計(jì)算機(jī)原理書籍,這里只需了解些簡單的概念即可。

設(shè)數(shù)據(jù)位數(shù)為m,校驗(yàn)位數(shù)為k,則總編碼位數(shù)為n,所以,n=m+k,則,

有Hamming不等式:

2^k-1》=n

也可表示為:2^k》=m+k+1,該不等式用于對比運(yùn)算計(jì)算數(shù)據(jù)位數(shù)和檢驗(yàn)位數(shù),舉個例子假設(shè)數(shù)據(jù)位為64,那么校驗(yàn)位則為(“2^k-k》=65” =》k=7)。

校驗(yàn)位數(shù)一般指最小值,因?yàn)閗越小總信息位會越小,傳輸開銷自然越小。

信息位數(shù)一般指最大值,但由于2^k-k只能在固定的離散值里取值,所以信息位也可能不是最大值,比如信息位為24,計(jì)算需要校驗(yàn)位5,但同樣可信息位為25時,校驗(yàn)位同樣是5。

校驗(yàn)位數(shù)VS信息位數(shù)關(guān)系如下表:

漢明碼編碼原理介紹

注:漢明碼的特性決定,一般不會做太多信息位的校驗(yàn),信息位越長出現(xiàn)多余兩個錯誤的概率會越高,這將帶來糾錯的難度。

漢明碼編碼原理

設(shè)碼長為n,信息位長度為k,監(jiān)督位長度為r=n-k。如果需要糾正一位出錯,因?yàn)殚L度為n的序列上每一位都可能出錯,一共有n種情況,另外還有不出錯的情況,所以我們必須用長度為r的監(jiān)督碼表示出n+1種情況。而長度為r的監(jiān)督碼一共可以表示2^r種情況 。因此

2^r 》= n + 1, 即r 》= log(n+1)

我們以一個例子來說明漢明碼。假設(shè)k=4,需要糾正一位錯誤,則

2^r 》= n + 1 = k + r + 1 = 4 + r + 1

解得r 》= 3。我們?nèi)=3,則碼長為3+4=7。用a6,a5,。。.a0表示這7個碼元。用S1,S2,S3表示三個監(jiān)關(guān)系式中的校正子。我們作如下規(guī)定(這個規(guī)定是任意的):

S1 S2 S3 錯碼的位置

0 0 1 a0

0 1 0 a1

1 0 0 a2

0 1 1 a3

1 0 1 a4

1 1 0 a5

1 1 1 a6

0 0 0 無錯

按照表中的規(guī)定可知,僅當(dāng)一個錯碼位置在a2,a4,a5或a6時校正子S1為1,否則S1為0。這就意味著a2,a4,a5,a6四個碼元構(gòu)成偶校驗(yàn)關(guān)系:

S1 = a6⊕a5⊕a4⊕a2 (1)式

同理,可以得到:

S2 = a6⊕a5⊕a3⊕a1 (2)式

S3 = a6⊕a4⊕a3⊕a0 (3)式

在發(fā)送信號時,信息位a6,a5,a4,a3的值取決于輸入信號,是隨機(jī)的。監(jiān)督為a2,a1,a0應(yīng)該根據(jù)信息位的取值按照監(jiān)督關(guān)系決定,即監(jiān)督位的取值應(yīng)該使上述(1)(2)(3)式中的S1,S2,S3為0,這表示初始情況下沒有錯碼。即

a6⊕a5⊕a4⊕a2 = 0

a6⊕a5⊕a3⊕a1 = 0

a6⊕a4⊕a3⊕a0 = 0

由上式進(jìn)行移項(xiàng)運(yùn)算,得到:

a2 = a6⊕a5⊕a4

a1 = a6⊕a5⊕a3

a0 = a6⊕a4⊕a3

已知信息位后,根據(jù)上式即可計(jì)算出a2,a1,a0三個監(jiān)督位的值。

接收端受到每個碼組后,先按照(1)~(3)式計(jì)算出S1,S2,S3,然后查表可知錯碼情況。

例如,若接收到的碼字為0000011,按照(1)~(3)計(jì)算得到:

S1 = 0, S2 = 1, S3 = 1

查表可得在a3位有一個錯碼。

這種編碼方法的最小漢明距離為d=3,所以這種編碼可以糾正一個錯碼或者檢測兩個錯碼。

漢明碼實(shí)例

下文示例為(30,24)漢明碼計(jì)算方法,用在MIPI DSI包頭部分(MIPI Alliance Specification for Display Serial Interface,Chapter 9),DSI包頭格式固定為24bits Data+8bits ECC,8bitsECC中預(yù)設(shè)P6=P7=0,所以實(shí)際n=30,m=24,k=6。

檢驗(yàn)位計(jì)算方法參考MIPI DSI table22生成矩***(Px vs [DataBit0~DataBitx]),比如P5=D10^D11^.。。.D23,表示對應(yīng)DataBit23的P5列,只有這些DataBit位為1。

int main() {

char res;

char in[20]={0};

char D0,D1,D2,D3,D4,D5,D6,D7,D8,D9,D10,D11,D12,D13,D14,D15,D16,D17,D18,D19,D20,D21,D22,D23;

char P0,P1,P2,P3,P4,P5,P6,P7;

cout《《“Checking Codes(eg.0x1234AF, \”-\“ for exit): 0x”;

cin》》in;

if(in[0]==‘-’) {

return 0;

}

for(int i=0;i《6;i++){

if((in[i]》=‘0’) && (in[i]《=‘9’)) {

in[i] = in[i]-0x30;

}else if((in[i]》=‘A’) && (in[i]《=‘F’)){

in[i] = in[i]-‘A’+10;

}else {

return 0;

}

}

D0=in[1]&0x01; D1=(in[1]&0x02)》》1;

D2=(in[1]&0x04)》》2; D3=(in[1]&0x08)》》3;

D4=in[0]&0x01; D5=(in[0]&0x02)》》1;

D6=(in[0]&0x04)》》2; D7=(in[0]&0x08)》》3;

D8=in[3]&0x01; D9=(in[3]&0x02)》》1;

D10=(in[3]&0x04)》》2; D11=(in[3]&0x08)》》3;

D12=in[2]&0x01; D13=(in[2]&0x02)》》1;

D14=(in[2]&0x04)》》2; D15=(in[2]&0x08)》》3;

D16=in[5]&0x01; D17=(in[5]&0x02)》》1;

D18=(in[5]&0x04)》》2; D19=(in[5]&0x08)》》3;

D20=in[4]&0x01; D21=(in[4]&0x02)》》1;

D22=(in[4]&0x04)》》2; D23=(in[4]&0x08)》》3;

P7=0;

P6=0;

P5=D10^D11^D12^D13^D14^D15^D16^D17^D18^D19^D21^D22^D23;

P4=D4^D5^D6^D7^D8^D9^D16^D17^D18^D19^D20^D22^D23;

P3=D1^D2^D3^D7^D8^D9^D13^D14^D15^D19^D20^D21^D23;

P2=D0^D2^D3^D5^D6^D9^D11^D12^D15^D18^D20^D21^D22;

P1=D0^D1^D3^D4^D6^D8^D10^D12^D14^D17^D20^D21^D22^D23;

P0=D0^D1^D2^D4^D5^D7^D10^D11^D13^D16^D20^D21^D22^D23;

res = ((P7&0x01)*8+(P6&0x01)*4+(P5&0x01)*2+(P4&0x01))*16+(P3&0x01)*8+(P2&0x01)*4+(P1&0x01)*2+(P0&0x01);

printf(“Result:0x%02X\r\n”,res);

return 0;

}

聲明:本文內(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

    瀏覽量

    8101
收藏 人收藏

    評論

    相關(guān)推薦

    實(shí)現(xiàn)漢明糾錯碼的編碼和解碼方案設(shè)計(jì)

    理解漢明碼首先要理解奇偶校驗(yàn),奇校驗(yàn)就是在一串編碼里增加一位校驗(yàn)位使這一串編碼里的1的個數(shù)位奇數(shù)。偶校驗(yàn)同理,使編碼里1的個數(shù)為偶數(shù)。
    發(fā)表于 05-04 09:00 ?3088次閱讀
    實(shí)現(xiàn)漢明糾錯碼的<b class='flag-5'>編碼</b>和解碼方案設(shè)計(jì)

    [6.6.1]--漢明碼

    編碼信息論
    jf_75936199
    發(fā)布于 :2023年01月08日 15:31:52

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

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

    基于FPGA的交織編碼技術(shù)研究及實(shí)現(xiàn)

    26期摘  要:對于采用信道編碼技術(shù)進(jìn)行糾錯的系統(tǒng),只能糾正隨機(jī)錯誤,無法解決突發(fā)錯誤的問題。詳細(xì)闡述了一種基于漢明碼的交織編碼技術(shù),并以FPGA為平臺進(jìn)行了實(shí)現(xiàn)與仿真。仿真結(jié)果表明該交織編碼
    發(fā)表于 05-11 14:09

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

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

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

    基于FPGA的漢明碼編碼解碼設(shè)計(jì)實(shí)驗(yàn)簡述本實(shí)驗(yàn)的目的是實(shí)現(xiàn)漢明糾錯碼的編碼和解碼1.1漢明碼簡介 漢明碼,是在電信領(lǐng)域的一種線性調(diào)試碼,以發(fā)
    發(fā)表于 04-15 11:47

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

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

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

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

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

    基于漢明碼(Hamning Code)編碼方式實(shí)現(xiàn)串行通信中的自動檢糾錯功能。重點(diǎn)分析漢明碼編碼方式和糾錯方式,并介紹實(shí)現(xiàn)算法。在算法中,將
    發(fā)表于 05-16 14:09 ?27次下載

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

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

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

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

    漢明碼計(jì)算及其糾錯原理詳解

    漢明碼(Hamming Code),是在電信領(lǐng)域的一種線性調(diào)試碼,以發(fā)明者理查德·衛(wèi)斯里·漢明的名字命名。漢明碼在傳輸?shù)南⒘髦胁迦腧?yàn)證碼,以偵測并更正單一比特錯誤。由于漢明編碼簡單,它們被廣泛應(yīng)用于內(nèi)存(RAM )。
    的頭像 發(fā)表于 03-02 15:08 ?3w次閱讀
    <b class='flag-5'>漢明碼</b>計(jì)算及其糾錯原理詳解

    漢明碼編譯碼器的數(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)化解決方案

    通信數(shù)據(jù)量不大,還可以縮短編碼長度,比如采用[8,4,3]8比特漢明碼。這樣雖然有效信息只是總編碼長度的50%,但比起出現(xiàn)多個差錯后而要求發(fā)送方重發(fā)數(shù)據(jù)要好。
    的頭像 發(fā)表于 09-16 17:52 ?1.6w次閱讀
    <b class='flag-5'>漢明碼</b>糾錯的基本原理及優(yōu)化解決方案

    漢明碼編譯碼文檔

    電子發(fā)燒友網(wǎng)站提供《漢明碼編譯碼文檔.doc》資料免費(fèi)下載
    發(fā)表于 11-17 16:04 ?4次下載
    <b class='flag-5'>漢明碼</b>編譯碼文檔
    主站蜘蛛池模板: 欧美一级视频免费观看 | 欧美大尺度aaa级毛片 | 国产成人福利夜色影视 | 久久777国产线看观看精品卜 | 手机看片久久青草福利盒子 | 婷婷六月丁香色婷婷网 | free性欧美69高清 | 欧美日韩不卡码一区二区三区 | 天天干天天日天天射天天操毛片 | 色婷婷5月精品久久久久 | 丁香六月婷婷激情 | 黄色三级视频 | 黑粗硬大欧美视频 | 久久久精品2021免费观看 | 手机看片久久青草福利盒子 | 久久伊人网站 | 日本不卡在线视频高清免费 | 中文字幕在线播放第一页 | 色婷丁香| 天天操精品 | 日本高清色视频www 日本高清色视频在线观看免费 | 欧美黄色免费 | fenfencao在线观看免费视频 | 草草影院www色极品欧美 | 国产一区二区三区欧美精品 | 狠狠色噜噜狠狠狠狠米奇777 | 国产精品亚洲四区在线观看 | 男人天堂伊人网 | 男操女视频在线观看 | 高h细节肉爽文男男 | cijilu刺激 国产 | 久久99精品一级毛片 | 国产精品香蕉成人网在线观看 | 看免费黄色大片 | 天天弄天天模 | 免费人成在线观看视频播放 | 国产午夜精品久久理论片小说 | 亚洲午夜大片 | 狠狠色综合久久久久尤物 | 丝袜紧身裙国产在线播放 | 免费观看视频高清www |