《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于VHDL的漢明碼編解碼器實現
基于VHDL的漢明碼編解碼器實現
2014年微型機與應用第24期
孫志雄,謝海霞
(瓊州學院 電子信息工程學院,海南 三亞 572022)
摘要: 介紹了漢明碼的原理,分析了漢明碼編碼、解碼電路設計思路。利用VHDL語言設計(7,4)漢明碼編解碼器并通過Quartus II仿真平臺進行仿真驗證,最后下載到FPGA芯片EP1K30QC208-2實現了漢明碼編解碼電路。仿真及實驗結果證明,該方法實現的漢明碼編解碼電路方案正確,并具有速度快、修改方便、可移植性好等優點。
Abstract:
Key words :

  摘  要: 介紹了漢明碼的原理,分析了漢明碼編碼、解碼電路設計思路。利用VHDL語言設計(7,4)漢明碼編解碼器并通過Quartus II仿真平臺進行仿真驗證,最后下載到FPGA芯片EP1K30QC208-2實現了漢明碼編解碼電路。仿真及實驗結果證明,該方法實現的漢明碼編解碼電路方案正確,并具有速度快、修改方便、可移植性好等優點。

  關鍵詞: 漢明碼;編碼器;解碼器;FPGA;VHDL

0 引言

  由于數字信號在傳輸過程中受到干擾,碼元波形將變壞,接收端收到后可能發生錯誤判決,因此在設計數字通信系統時,就要考慮差錯控制編碼。在差錯控制編碼中,每種編碼所依據的原理是不同的,其中常用的是線性分組碼,線性分組碼中的信息位和監督位是由一些線性代數方程聯系著的。而漢明碼(Hamming Code)就是一種能夠糾正一位錯碼且編碼效率較高的線性分組碼。由于漢明碼的編解碼在工程上較易實現,因此應用廣泛。本文通過對信道糾錯編碼漢明碼的研究,提出了利用FPGA實現漢明碼編解碼的方法,并實現了(7,4)漢明碼的自動糾錯和檢錯的功能[1]。

1 漢明碼的編解碼原理

  漢明碼是由Richard Hamming于1950年提出的,它屬于線性分組編碼方式,用以糾正單個錯誤的線性分組碼,在軟件無線電中應用廣泛。在線性碼分組碼(n,k)中,若碼長為n,信息位數為k,則監督位數r=n-k。

  如果用r個監督位構造出r個監督關系式來指示1位錯碼的n種可能位置,則要求:

  2r-1≥n或2r≥k+r+1(1)

  這種能夠糾正1位錯碼的線性分組碼就稱為漢明碼。其基本原理是,將信息碼元與監督碼元通過線性方程式聯系起來,每一個監督位被編在傳輸碼字的特定比特位置上。系統對于錯誤的數位無論是原有信息位中的,還是附加監督位中的,都能把它分離出來。由漢明碼的性質可知,(7,4)漢明碼能糾正1位錯碼,檢測2個錯碼[2]。

  2 漢明碼的編解碼方法

  設漢明碼(n,k)中k=4,為了糾正1位錯碼,由式(1)可知,要求監督位數r≥3。若取r=3,則n=k+r=7,即(7,4)漢明碼。若用a6 a5…a0表示這7個碼元,其中a6、a5、a4和a3為信息位,a2、a1和a0為監督位;用S2、S1和S0表示3個監督關系式中的校正子,則S2、S1和S0的值與錯碼位置的對應關系可以規定如表1所示,其對應監督關系式如式(2)所示[3]。

005.jpg

  2.png

  在信息傳輸中,在發送端編碼時,信息位a6、a5、a4和a3的值由輸入信號決定,是隨機的。監督位a2、a1和a0根據信息位的取值按監督關系來確定,即監督位應使S2、S1和S0的值為0,如式(3)所示,即表示發送端編成的碼組中應無錯碼。

  3.png

  式(3)經過移項運算,解出監督位a2、a1和a0,如式(4)所示。

  4.png

  因此,(7,4)漢明碼給定信息位后,可以直接按式(4)算出監督位,結果如表2所示。

  接收端收到每個碼組后,先計算出S2、S1和S0,若為000,則表示無錯碼;若不全為0,則表示有錯碼,這時可查表1判斷錯碼情況。例如,若接收碼組為0000011,按式(2)計算可得:S2=0,S1=1,S0=1。由于S2S1S0=011,查表1可知在a3位有一錯碼,因此便可以在接收端糾正1位錯碼。表2中所列的(7,4)漢明碼的最小碼距d0=3,因此,這種碼能夠糾正1位錯碼或檢測2位錯碼。由于碼率k/n=(n-r)/n=1-r/n,故當n很大或r很小時,碼率接近1??梢姡瑵h明碼是一種高效碼[4]。

3 基于VHDL的漢明碼編解碼仿真及實現

  3.1基于VHDL的漢明碼編碼仿真

  根據漢明碼的編碼方法,利用VHDL語言編程實現一種(7,4)漢明碼的編碼及仿真,其碼長為7位,信息位為高4位,監督位為低3位。對應上述編碼方法實現的漢明碼編碼器的VHDL程序如下:

  //A 4-bit Hamming Encoder

  LIBRARY IEEE;

  USE IEEE.STD_LOGIC_1164.ALL;

  ENTITY hammingenc IS

  PORT(datain : IN BIT_VECTOR(0 TO 3);

  //d0 d1 d2 d3

  en :IN bit;

  hamout : OUT BIT_VECTOR(0 TO 6));

  //d0 d1 d2 d3 p0 p1 p2

  END hammingenc;

  ARCHITECTURE one OF hammingenc IS

  SIGNAL p0,p1,p2 : BIT;    //check bits

  BEGIN

  //generate check bits

  p0<=(datain(0)XOR datain(1))XOR datain(3)WHEN EN=′1′ELSE′0′;

  p1<=(datain(0)XOR datain(2))XOR datain(3)WHEN EN=′1′ ELSE′0′;

  p2<=(datain(1)XOR datain(2))XOR datain(3)WHEN EN=′1′ ELSE ′0′;

  //connect up outputs

  hamout(0 TO 2)<=(p0&p1&p2);

  hamout(3 TO 6)<=datain(0 TO 3);

  END one;

001.jpg

  用VHDL語言完成的漢明碼編碼器設計電路符號如圖1所示,其中datain[3..0]為輸入的4位信息碼;en為編碼輸入使能端,高電平有效;hamout[6..0]為漢明碼編碼輸出,其高4位hamout[6..3]為信息位,其低3位hamout[2..0]為監督位。

002.jpg

  實現的(7,4)漢明碼編碼器仿真波形圖如圖2所示。從圖2可以看出,當輸入信息位datain[3..0]為0000時,輸出hamout[6..0]漢明碼編碼為0000000;輸入信息位datain[3..0]為0001時,輸出hamout[6..0]漢明碼編碼為0001011,其余類推,其(7,4)漢明碼編碼結果與表2一致。

  3.2 基于VHDL的漢明碼解碼仿真

003.jpg

  用VHDL語言完成的漢明碼解碼器設計電路符號如圖3所示。其中hamin[6..0]為輸入的漢明碼。en1為譯碼器使能端,高電平有效。dataout[3..0]為漢明碼解碼輸出,輸出為4位信息位。ne為解碼輸出錯誤指示端,當ne為高電平1時表示接收的漢明碼沒有錯誤,相應的err為000;當ne為低電平0時表示接收的漢明碼有一位錯誤,并用err指出錯碼的位置,當err為001時表示錯碼為a0,當err為010時表示錯碼為a1,其余類推。經過糾正后,解碼輸出dataout[3..0]正確。

  與上述解碼方法對應的漢明碼解碼器的VHDL程序如下:

  //A 7 bit Hamming Decoder

  LIBRARY IEEE;

  USE IEEE.STD_LOGIC_1164.ALL;

  ENTITY hammingdec IS

  PORT(hamin:IN BIT_VECTOR(6 downTO 0);

  //a6 a5 a4 a3 p2 p1 p0

  EN1:IN BIT;

  dataout : OUT BIT_VECTOR(3 downto 0);

  //a6 a5 a4 a3

  ne: OUT BIT;

  err:OUT STD_LOGIC_VECTOR(2 downto 0)); //diagnostic outputs

  END hammingdec;

  ARCHITECTURE ONE OF hammingdec IS

  BEGIN

  PROCESS(hamin)

  VARIABLE syndrome:BIT_VECTOR(2 DOWNTO 0);

  BEGIN

  //generate syndrome bits

  IF EN1=′1′ THEN

  syndrome(0):=(((hamin(0) XOR hamin(3))

  XOR hamin(4)) XOR hamin(6));

  syndrome(1):=(((hamin(1) XOR hamin(3))

  XOR hamin(5)) XOR hamin(6));

  syndrome(2):=(((hamin(2) XOR hamin(4))

  XOR hamin(5)) XOR hamin(6));

  IF (syndrome="000") THEN  //no errors

  ne<=′1′;

  err<="000";

  dataout(3 downTO 0)<=hamin(6 downTO 3);

  ELSE ne<=′0′;

  CASE syndrome IS

  WHEN "001"=>err<="001";dataout(3 downTO 0)

  <=hamin(6 downTO 3);

  WHEN"010"=>err<="010";dataout(3 downTO 0)

  <=hamin(6 downTO 3);

  WHEN"100"=>err<="011";dataout(3 downTO 0)

  <=hamin(6 downTO 3);

  WHEN "011"=>err<="100";dataout(0)<=NOT hamin

 ?。?);dataout(3 downTO 1)<=hamin(6 downTO 4);

  WHEN "101"=>err<="101";dataout(1)<=NOT hamin(4);dataout(3 downTO 2)<=hamin(6 downTO 5);dataout(0)<=hamin(3);

  WHEN "110"=>err<="110";dataout(2)<=NOT hamin(5);dataout(1 downTO 0)<=hamin(4 downTO 3);dataout(3)<=hamin(6);

  WHEN "111"=>err<="111";dataout(3)<=NOT hamin(6);dataout(2 downTO 0)<=hamin(5 downTO 3);

  WHEN OTHERS=>err<="000";

  END CASE;

  END IF;

  END IF;

  END PROCESS;

  END ONE;

004.jpg

 ?。?,4)漢明碼解碼器仿真波形如圖4所示。例如,當解碼器輸入hamin[6..0]為0001010,對應的ne為低電平0說明接收的漢明碼有1位錯誤,相應的err為001時,表示錯碼為a0,經糾錯后a0為1,所以正確接收碼應為:0001011,對應的解碼為0001。從圖4可以看出,經解碼器解碼后,其正確解碼結果與編碼輸入的信息位一致。

  在仿真的基礎上,將漢明碼編解碼的配置程序下載到FPGA芯片EP1K30QC208-2,并在EDA實驗開發板進行測試,實驗結果表明漢明碼編解碼正確[5]。

4 結論

  本文利用VHDL語言編程,并基于FPGA實現了(7,4)漢明碼編解碼器的設計,體現了軟件無線電設計通信系統的思想,實現了硬件設計實驗軟件化,其加速了數字通信系統設計的效率,降低了設計成本,為通信系統的設計提供了很好的平臺[6]。

參考文獻

  [1] 盛孟剛.漢明碼編譯碼的FPGA設計與實現[J].山西電子技術,2007(6):43-47.

  [2] 章學靜,薛琳,李金平,等.漢明(Hamming)碼及其編譯碼算法的研究與實現[J].北京聯合大學學報(自然科學版),2008,22(1):46-49.

  [3] 方國濤.基于FPGA的漢明碼編譯碼系統[J].信息技術,2010(7):79-81.

  [4] 樊昌信,曹麗娜.通信原理(第6版)[M].北京:國防工業出版社,2006.

  [5] 江國強.EDA技術與應用(第3版)[M].北京:電子工業出版社,2010.

  [6] 孫志雄,謝海霞.基于FPGA的CRC編解碼器實現[J].電子器件,2012,35(6):657-660.


此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          久久国产欧美精品| 亚洲国产一区在线| 亚洲国产三级| 老司机精品视频一区二区三区| 亚洲国产女人aaa毛片在线| 亚洲国产高清在线观看视频| 欧美好吊妞视频| 亚洲三级电影在线观看| 国产精品免费在线| 激情视频一区二区三区| 久久精品视频播放| 国产精品麻豆va在线播放| 欧美一区二区高清在线观看| 久久激情视频| 亚洲精品免费在线| 久久久91精品国产一区二区三区| 欧美高清视频www夜色资源网| 欧美精品在线免费观看| 欧美va亚洲va香蕉在线| 亚洲日本va在线观看| 国产欧美综合在线| 亚洲婷婷综合久久一本伊一区| 欧美午夜一区二区| 亚洲精品久久久久久下一站| 亚洲影院色无极综合| 亚洲一区精彩视频| 一本色道久久综合亚洲精品不| 国产精品久久久久免费a∨大胸| 久久国产精品免费一区| 这里只有精品电影| 老牛国产精品一区的观看方式| 久久久久久久欧美精品| 国产精品sss| 国产精品久久久久久久久久免费| 久久久999国产| 欧美大成色www永久网站婷| 国产女人精品视频| 国产精品国产馆在线真实露脸| 亚洲免费影视第一页| 欧美一区二区三区精品电影| 欧美14一18处毛片| 欧美日韩精品福利| 亚洲免费成人av电影| 一区二区在线观看视频在线观看| 久久成人国产精品| 午夜精品一区二区三区四区| 亚洲欧美国产日韩中文字幕| 亚洲欧美电影院| 国产精品久久久久aaaa九色| 亚洲一区日本| 亚洲国产一成人久久精品| 国产视频精品xxxx| 99热在这里有精品免费| 国产精品久久国产愉拍| 麻豆视频一区二区| 亚洲欧美国产制服动漫| 在线看日韩欧美| 久久精品一区中文字幕| 久久嫩草精品久久久久| 免费美女久久99| 一区二区免费在线观看| 久久精品一区二区三区不卡| 国产一区二区三区免费不卡| 欧美日韩裸体免费视频| 最近中文字幕日韩精品| 久久精品一区二区三区四区| 国内综合精品午夜久久资源| 久久综合免费视频影院| 欧美在线免费观看| 亚洲欧洲日本国产| 亚洲一区免费看| 依依成人综合视频| 亚洲欧美日韩国产另类专区| 亚洲欧美久久久| 亚洲高清成人| 国产欧美精品| 久久精品在线视频| 黄色一区三区| 黑人一区二区三区四区五区| 亚洲国产精品一区二区三区| 亚洲国产精品欧美一二99| 精品99一区二区三区| 亚洲一区免费网站| 亚洲福利国产精品| 99视频热这里只有精品免费| 久久精品二区三区| 亚洲综合视频一区| 999在线观看精品免费不卡网站| 亚洲永久在线| 欧美成熟视频| 欧美日韩午夜视频在线观看| 久久综合成人精品亚洲另类欧美| 国产精品尤物| 欧美日韩国产经典色站一区二区三区| 久久国产精品99国产| 噜噜噜躁狠狠躁狠狠精品视频| 99国内精品久久久久久久软件| 国产精品无码专区在线观看| 一区二区欧美精品| 欧美日韩国产成人在线观看| 国产精品一区免费在线观看| 国产精品大片免费观看| 日韩手机在线导航| 亚洲激情国产| 亚洲天堂av高清| 午夜精品久久久久久99热软件| 国产乱肥老妇国产一区二| 欧美日韩美女在线观看| 欧美二区在线看| 日韩视频免费在线| 欧美在线观看视频在线| 欧美日韩一区二区三区在线视频| 亚洲欧美中文字幕| 久久五月婷婷丁香社区| 老司机精品导航| 国产精品乱子久久久久| 蜜桃av噜噜一区二区三区| 国产日韩欧美制服另类| 亚洲国产综合视频在线观看| 欧美电影在线观看| 亚洲精品综合久久中文字幕| 国产视频不卡| 欧美在线免费观看视频| 欧美亚洲综合另类| 欧美一区三区三区高中清蜜桃| 国产欧美精品一区二区三区介绍| 久久国产福利| 欧美激情一区二区三区全黄| 国产精品自拍视频| 影音先锋一区| 亚洲美女91| 国产精品自拍视频| 久久国产免费| 国产专区欧美专区| 欧美日韩精品在线观看| 国产精品每日更新| 欧美福利影院| 国产精品久久久99| 欧美xxx成人| 国产精品电影在线观看| 麻豆精品精华液| 亚洲精品国产精品国自产观看| 欧美在线看片a免费观看| 激情欧美国产欧美| 99国产精品久久久久久久久久| 亚洲一卡二卡三卡四卡五卡| 欧美激情精品久久久久久免费印度| 香蕉尹人综合在线观看| 巨乳诱惑日韩免费av| 久久久久久久久久久一区| 欧美一区二区在线看| 91久久黄色| 国产日韩视频| 欧美精品久久天天躁| 午夜精品久久久久久久久| 99视频一区二区| 136国产福利精品导航网址| 美女成人午夜| 亚洲缚视频在线观看| 国产热re99久久6国产精品| 亚洲一级电影| 欧美日韩一区二区欧美激情| 欧美一区综合| 欧美日韩大陆在线| 欧美日韩免费一区二区三区| 欧美日韩在线视频首页| 欧美日韩国产探花| 亚洲高清不卡在线| 国自产拍偷拍福利精品免费一| 国产精品一区免费在线观看| 久久久久久久激情视频| 国产欧美精品va在线观看| 亚洲欧美网站| 国产欧美日韩精品在线| 久久久999国产| 国产一区二区0| 国产日产欧美一区| 欧美一区二区精品在线| 欧美成人亚洲成人日韩成人| 亚洲图片你懂的| 欧美激情视频给我| 欧美肉体xxxx裸体137大胆| 欧美日韩在线视频一区| 欧美激情1区2区| 国产又爽又黄的激情精品视频| 亚洲一区中文字幕在线观看| 欧美成人亚洲成人日韩成人| 国产精品毛片大码女人| 亚洲精品一区二区三区蜜桃久| 欧美激情在线| 蜜桃久久精品乱码一区二区| 亚洲精品一区二区三| 久久国产欧美日韩精品| 久久精品99国产精品酒店日本| 国产亚洲欧美一区在线观看| 欧美日韩一区二区三区四区五区| 久久精品亚洲国产奇米99| 国产精品影音先锋| 蜜桃久久精品一区二区| 免播放器亚洲| 欧美色区777第一页| 国产亚洲精品综合一区91| 久久狠狠婷婷| 欧美在线视频一区| 亚洲三级电影在线观看| 一本色道久久综合精品竹菊| 久久久久99精品国产片| 国产精品你懂的在线| 亚洲美女少妇无套啪啪呻吟| 亚洲视频在线视频| 欧美jizz19hd性欧美| 欧美本精品男人aⅴ天堂| 久久综合导航| 欧美黄色视屏| 欧美综合77777色婷婷| 欧美va亚洲va国产综合| 黄色亚洲免费| 一本久道久久综合狠狠爱| 国产乱码精品一区二区三区五月婷| 久久国产精品99久久久久久老狼| 极品少妇一区二区| 欧美伊人久久久久久午夜久久久久| 久久久久久亚洲精品不卡4k岛国| 亚洲国产精品成人综合色在线婷婷| 亚洲片国产一区一级在线观看| 伊人婷婷欧美激情| 亚洲素人在线| 久久久久国产一区二区三区| 欧美高清hd18日本| 亚洲国产日韩一区| 欧美有码在线观看视频| 亚洲专区一区二区三区| 亚洲欧洲久久| 麻豆成人91精品二区三区| 亚洲韩日在线| 亚洲国产岛国毛片在线| 欧美本精品男人aⅴ天堂| 欧美a级片网站| 亚洲性夜色噜噜噜7777| 国产精品久久久久久久久久久久久久| 亚洲一级在线观看| 国产精品久久久久久超碰| 国产精品一区二区欧美| 美脚丝袜一区二区三区在线观看| 国产精品亚洲综合一区在线观看| 国产精品一区二区三区成人| 亚洲精品永久免费| 亚洲国产99精品国自产| 伊人蜜桃色噜噜激情综合| 国产精品男人爽免费视频1| 欧美ab在线视频| 91久久精品一区| 欧美亚州韩日在线看免费版国语版| 国产精品每日更新| 久久日韩粉嫩一区二区三区| 久久天天躁狠狠躁夜夜av| 欧美综合国产| 在线视频亚洲一区| 久久美女性网| 蜜臀久久99精品久久久久久9| 激情成人av| 在线观看欧美黄色| 久久精品国产第一区二区三区最新章节| 亚洲午夜在线| 麻豆av福利av久久av| 亚洲一线二线三线久久久| 最新成人av网站| 国产一区二区三区在线免费观看| 欧美精品久久久久久久| 欧美视频网址| 榴莲视频成人在线观看| 亚洲欧洲日本国产| 欧美金8天国| 欧美二区在线播放| 国产乱肥老妇国产一区二| 久久久亚洲国产天美传媒修理工| 欧美手机在线视频| 国产亚洲二区| 欧美在线观看视频一区二区| 久久久精品欧美丰满| 国产精品久久久久久户外露出| 1000部精品久久久久久久久| 亚洲国产精品成人久久综合一区| 伊人久久成人| 国产午夜精品理论片a级大结局| 亚洲乱码视频| 久久久午夜精品| 国产亚洲福利社区一区| 久久天天躁夜夜躁狠狠躁2022| 国产精品成人免费精品自在线观看| 久久se精品一区二区| 黄色亚洲大片免费在线观看| 国产精品国产三级国产普通话99| 狠狠做深爱婷婷久久综合一区| 国产亚洲女人久久久久毛片| 亚洲人成网站在线观看播放| 极品av少妇一区二区| 欧美午夜三级| 狼狼综合久久久久综合网| 国产欧美一二三区| 亚洲午夜久久久久久久久电影院| 在线观看精品| 亚洲社区在线观看| 欧美制服丝袜第一页| 久久国产精品久久久久久久久久| 国产一区久久| 国产精品久久久久aaaa樱花| 欧美一级片久久久久久久| 国产精品夜夜夜一区二区三区尤| 亚洲网站在线看| 国产亚洲va综合人人澡精品| 欧美一区中文字幕| 欧美一级大片在线免费观看| 欧美精品国产一区| 亚洲欧美日韩中文在线制服| 国产日韩精品入口| 欧美日韩精品中文字幕| 国产精品嫩草影院av蜜臀| 国产精品高潮呻吟久久av无限| 黄色成人av在线| 亚洲无吗在线| 久久天堂成人| 久久国产精品黑丝| 免费亚洲视频| 国产日韩精品一区二区浪潮av| 欧美一级淫片播放口| 能在线观看的日韩av| 欧美日韩福利|