信息理論與編碼課設(shè)_第1頁(yè)
信息理論與編碼課設(shè)_第2頁(yè)
信息理論與編碼課設(shè)_第3頁(yè)
信息理論與編碼課設(shè)_第4頁(yè)
信息理論與編碼課設(shè)_第5頁(yè)
已閱讀5頁(yè),還剩9頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第1章 (7,4)漢明碼的構(gòu)造原理1.1漢明碼的構(gòu)造原理線(xiàn)性分組碼是一類(lèi)重要的糾錯(cuò)碼,應(yīng)用很廣泛。在(n,k)分組碼中,若監(jiān)督碼元是按線(xiàn)性關(guān)系模2相加而得到的,則稱(chēng)其為線(xiàn)性分組碼。現(xiàn)在以(7,4)漢明碼為例來(lái)說(shuō)明線(xiàn)性分組碼的特點(diǎn)。設(shè)其碼字為,前4位為信息元,后3位是監(jiān)督元,題設(shè)所給的非系統(tǒng)監(jiān)督矩陣如下:經(jīng)過(guò)初等行變換,可以獲得典型監(jiān)督矩陣如下:因此,該漢明碼的監(jiān)督元可以用如下線(xiàn)性方程表示,顯然,這3個(gè)方程是線(xiàn)性無(wú)關(guān)的。代入上述公式可得(7,4)漢明碼的全部碼組。如表1所示。表1 (7,4)漢明碼的全部碼組信息位監(jiān)督位信息位監(jiān)督位000000010000110001111100110000101

2、1010101010011001101101001001011100110010101011010010110011111000001111001111111由上表可知:(7,4)漢明碼的最小碼距,它能糾一位錯(cuò)或檢2位錯(cuò)。由此可見(jiàn),漢明碼是能夠糾正單個(gè)錯(cuò)誤的線(xiàn)性分組碼,其特點(diǎn)是:最小碼距,碼長(zhǎng)n與監(jiān)督位r滿(mǎn)足關(guān)系式:。同時(shí),由于碼率,故當(dāng)n很大和r很小時(shí),碼率接近1,可見(jiàn):漢明碼是一種高效碼。1.2監(jiān)督矩陣H和生成矩陣G1.2.1監(jiān)督矩陣H式(1.1)所表示的監(jiān)督方程可以改寫(xiě)為下式,從而得到與之對(duì)應(yīng)的矩陣表達(dá)式,并簡(jiǎn)記為:或者。其中,H成為監(jiān)督矩陣,只要H給定,信息位和監(jiān)督位的關(guān)系也就隨即確定

3、下來(lái)了。H的行數(shù)就是監(jiān)督矩陣的數(shù)目,等于監(jiān)督數(shù)目r。H矩陣可以分為兩個(gè)部分,其中,P是階矩陣,是階單位陣。因?yàn)椋钥梢杂眠@個(gè)關(guān)系式來(lái)作為判斷接收碼字A是否出錯(cuò)的依據(jù)。若,則說(shuō)明碼字A有錯(cuò),反之則說(shuō)明碼字A無(wú)錯(cuò)。1.2.2生成矩陣將(1.1)式的監(jiān)督方程補(bǔ)充完整并寫(xiě)成矩陣的形式,即,其中M為階信息碼矩陣,G為階矩陣。通過(guò)觀察可以得出,其中為階單位陣,Q為階矩陣。因此,可以推斷典型監(jiān)督矩陣和基本生成滿(mǎn)足下列關(guān)系式,1.3校驗(yàn)子(S)設(shè)一組發(fā)送碼字,在傳輸過(guò)程中可能產(chǎn)生誤碼,接收碼組,收發(fā)碼組之差定義為錯(cuò)誤圖樣E,其中,令,稱(chēng)為校驗(yàn)子。可見(jiàn):校驗(yàn)子S和錯(cuò)誤圖樣之間存在確定的線(xiàn)性變換關(guān)系。(7,4)

4、漢明碼校驗(yàn)子與錯(cuò)誤圖樣之間的對(duì)應(yīng)關(guān)系,如表2所示。表2 (7,4)漢明碼S與E對(duì)應(yīng)關(guān)系錯(cuò)誤碼位錯(cuò)誤圖樣E校驗(yàn)子錯(cuò)誤位置00000010010000001001010000100100200010001113001000011040100000101510000000116無(wú)錯(cuò)00000000007第2章Quartus軟件介紹2.1 QuartusQuartus是Altera公司推出的CPLD/FPGA的開(kāi)發(fā)工具,Quartus提供了完全集成且于電路結(jié)構(gòu)無(wú)關(guān)的開(kāi)發(fā)環(huán)境,具有數(shù)字邏輯設(shè)計(jì)的全部特性。Quartus設(shè)計(jì)軟件提供完整的多平臺(tái)設(shè)計(jì)環(huán)境,可以輕松地滿(mǎn)足特定設(shè)計(jì)的需要。它是可編程片上系統(tǒng)(S

5、OPC)設(shè)計(jì)的綜合性環(huán)境,擁有FPGA和CPLD這幾的所有階段的解決方案。與其他EDA軟件相比較,Quartus的主要特點(diǎn)包括:可利用原理圖、結(jié)構(gòu)圖、VerilogHDL、AHDL和VHDL完成電路描述,并將其保存為設(shè)計(jì)實(shí)體文件。芯片(電路)平面布局連線(xiàn)編輯。Logiclock增量設(shè)計(jì)方法,用戶(hù)建立并優(yōu)化系統(tǒng),然后添加對(duì)原始系統(tǒng)的性能影響較小或無(wú)影響的后續(xù)模塊、功能強(qiáng)大的邏輯綜合工具。完備的電路功能仿真與時(shí)序邏輯分析、定時(shí)/時(shí)序分析與關(guān)鍵路徑延時(shí)分析。可使用SignalTap邏輯分析工具進(jìn)行嵌入式的邏輯分析。使用組合編譯方式可一次完成整體設(shè)計(jì)流程。自動(dòng)定位編輯錯(cuò)誤、高效的器件編程與驗(yàn)證工具。可

6、讀入標(biāo)準(zhǔn)的EDIF網(wǎng)表文件、VHDL網(wǎng)表文件、Verilog網(wǎng)表文件。能生成第三方EDA軟件使用的VHDL網(wǎng)表文件和Verilog網(wǎng)表文件。2.2 VHDL語(yǔ)言VHDL語(yǔ)言主要用許多含有于描述數(shù)字的結(jié)構(gòu)、行為、功能和接口,除了具有硬件特征的語(yǔ)句外,VHDL的語(yǔ)言形式和描述風(fēng)格與句法是十分類(lèi)似于一般的計(jì)算機(jī)高級(jí)語(yǔ)言。VHDL的程序結(jié)構(gòu)特點(diǎn)是將一項(xiàng)工程設(shè)計(jì),或稱(chēng)設(shè)計(jì)實(shí)體(可以是一個(gè)元件,一個(gè)電路模塊或一個(gè)系統(tǒng))分成外部(或稱(chēng)可視部分)和內(nèi)部(或稱(chēng)不可視可視部分),即涉及實(shí)體的內(nèi)部功能和算法完成部分。在對(duì)一個(gè)設(shè)計(jì)實(shí)體定義了外部界面后,一旦其內(nèi)部開(kāi)發(fā)完成后,其他的設(shè)計(jì)就可以直接調(diào)用這個(gè)實(shí)體。這種將設(shè)計(jì)

7、實(shí)體分成內(nèi)外部分的概念是VHDL系統(tǒng)設(shè)計(jì)的基本點(diǎn)。應(yīng)用VHDL進(jìn)行工程設(shè)計(jì)的優(yōu)點(diǎn)如下幾點(diǎn):與其他的硬件描述語(yǔ)言相比,VHDL具有更強(qiáng)的行為描述能力,從而決定了他成為洗頭膏設(shè)計(jì)領(lǐng)域最佳的硬件描述語(yǔ)言。強(qiáng)大的行為描述能力是避開(kāi)具體的器件結(jié)構(gòu),從邏輯行為上描述和設(shè)計(jì)大規(guī)模電子系統(tǒng)的重要保證。VHDL豐富的仿真語(yǔ)句和庫(kù)函數(shù),使得在任何大系統(tǒng)的設(shè)計(jì)早期就能查驗(yàn)實(shí)際系統(tǒng)的功能可行性,隨時(shí)可對(duì)設(shè)計(jì)進(jìn)行仿真模擬。VHDL語(yǔ)句的行為描述能力和程序結(jié)構(gòu)決定了他具有支持大規(guī)模設(shè)計(jì)的分解和已有設(shè)計(jì)的再利用功能。符合市場(chǎng)需求的大規(guī)模系統(tǒng)高效,高速完成必須有多人甚至多個(gè)開(kāi)發(fā)組并行工作才能實(shí)現(xiàn)。對(duì)于用VHDL完成的一個(gè)確定

8、的設(shè)計(jì),可以利用EDA工具進(jìn)行邏輯綜合和優(yōu)化,并自動(dòng)的把VHDL描述設(shè)計(jì)轉(zhuǎn)變成門(mén)級(jí)網(wǎng)表。VHDL對(duì)設(shè)計(jì)的描述具有相對(duì)獨(dú)立性,設(shè)計(jì)者可以不懂硬件的結(jié)構(gòu),也不必管理最重設(shè)計(jì)實(shí)現(xiàn)的目標(biāo)器件是什么,而進(jìn)行獨(dú)立的設(shè)計(jì)。第3章 編碼程序設(shè)計(jì)3.1 編碼程序設(shè)計(jì)流程圖3.2 程序代碼及注釋/包含IEEE文件LIBRARY IEEE; /IEEE程序包,定義數(shù)據(jù)類(lèi)型USE IEEE.STD_LOGIC_1164.ALL;/定義一個(gè)實(shí)體,包括4個(gè)輸入變量,7輸出變量Entity VHDL_HM_CODE is port(datain:in bit_vector(3 downto 0); b:out bit_ve

9、ctor(6 downto 0);end VHDL_HM_CODE;/定義一個(gè)結(jié)構(gòu)體architecture one of VHDL_HM_CODE isbegin/輸入4位信息b(6)<=datain(3); b(5)<=datain(2); b(4)<=datain(1); b(3)<=datain(0);/計(jì)算出3位監(jiān)督碼 b(2)<=datain(2)XOR datain(1)XOR datain(0); b(1)<=datain(3)XOR datain(1)XOR datain(0); b(0)<=datain(3)XOR datain(2

10、)XOR datain(0);end one;3.3 代碼運(yùn)行方法及仿真結(jié)果3.3.1 代碼運(yùn)行方法1雙擊左鍵,打開(kāi)Quartus軟件。2.File>Open Project。3.打開(kāi)程序代碼所在的根目錄,選中并雙擊打開(kāi)。4.點(diǎn)擊如圖所示的仿真按鈕,3.3.2 仿真結(jié)果截圖(部分)該仿真將輸入設(shè)置為從0000-1111的順序,從圖中可以看到,第一排二進(jìn)制數(shù)據(jù)代表的是4位信息位數(shù)據(jù),第二排代表是7位編碼輸出結(jié)果,可見(jiàn)編碼結(jié)果跟第1章理論編碼結(jié)果一致,說(shuō)明程序的正確性。第4章 譯碼程序設(shè)計(jì)4.1 譯碼程序必要說(shuō)明在第1章(7,4)漢明碼構(gòu)造原理中,已得出典型監(jiān)督矩陣H,設(shè)需要譯碼的碼組,根據(jù)

11、校驗(yàn)子S的定義,可以得出校驗(yàn)子與譯碼碼元之間的關(guān)系,根據(jù)這個(gè)方程,可以通過(guò)譯碼碼組計(jì)算校驗(yàn)子S。若校驗(yàn)子為,則說(shuō)明接碼字正確,直接取出信息位,即為譯碼結(jié)果。若校驗(yàn)子不為全零矩陣,則碼組在傳輸過(guò)程中,出現(xiàn)錯(cuò)誤。此時(shí),根據(jù)表2對(duì)錯(cuò)誤信息位進(jìn)行修改,從而得出正確的信息碼元。42 譯碼程序流程圖4.3 程序代碼及注釋/包含IEEE文件LIBRARY IEEE;/IEEE程序包,定義數(shù)據(jù)類(lèi)型USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;/定義一個(gè)實(shí)體,b為輸入碼組,即需要譯

12、碼碼組;a為輸出碼組,即譯碼結(jié)果輸出;n為錯(cuò)誤碼元位數(shù)輸出;s為校驗(yàn)子輸出Entity VHDL_HM_DECODE isport(b:in std_logic_vector(6 downto 0); a:out std_logic_vector(3 downto 0); n:out std_logic_vector(2 downto 0); s:out std_logic_vector(2 downto 0) );end VHDL_HM_DECODE;/定義一個(gè)結(jié)構(gòu)體architecture one of VHDL_HM_DECODE is/設(shè)置中間變量bbb,存儲(chǔ)譯碼結(jié)果,即4為信息碼元s

13、ignal bbb: std_logic_vector(3 downto 0);begin/開(kāi)始一個(gè)進(jìn)程process(b)/設(shè)置變量ss,存儲(chǔ)運(yùn)算出來(lái)的校驗(yàn)子variable ss:std_logic_vector(2 downto 0);/設(shè)置變量bb,存儲(chǔ)需要譯碼的碼組variable bb:std_logic_vector(6 downto 0);begin/計(jì)算校驗(yàn)子ss(2):=b(5)xor b(4)xor b(3)xor b(2);ss(1):=b(6)xor b(4)xor b(3)xor b(1);ss(0):=b(6)xor b(5)xor b(3)xor b(0);/譯

14、碼碼組賦給變量bbbb:=b;/判斷校驗(yàn)子是否為零,若不為零,則使錯(cuò)誤的位取反,并將錯(cuò)誤的位置賦給nif ss>"000" thencase ss iswhen "001"=>bb(0):=not bb(0);n<="000"when "010"=>bb(1):=not bb(1);n<="001"when "100"=>bb(2):=not bb(2);n<="010"when "111"=&

15、gt;bb(3):=not bb(3);n<="011"when "110"=>bb(4):=not bb(4);n<="100"when "101"=>bb(5):=not bb(5);n<="101"when "011"=>bb(6):=not bb(6);n<="110"when others=>null;end case;/若沒(méi)有錯(cuò),將正確的信息碼元賦給a,且將7賦給nelse a<=b(6)&

16、amp;b(5)&b(4)&b(3); n<="111"end if;/將ss存儲(chǔ)的校驗(yàn)位賦給ss<=ss;/把糾正之后的信息碼元值賦給bbbbbb<=bb(6)&bb(5)&bb(4)&bb(3);/把bbb賦給aa<=bbb;end process;end;4.4 代碼運(yùn)行方法及仿真結(jié)果按照3.3.1的運(yùn)行方法,可以獲得如下的仿真結(jié)果截圖(部分),由于輸入碼設(shè)置是從0000001-1111111,數(shù)據(jù)量很大,所以運(yùn)行時(shí)間有點(diǎn)長(zhǎng)。還可以發(fā)現(xiàn)毛刺很多,效果很差。為了解決這個(gè)問(wèn)題,我加長(zhǎng)了結(jié)束時(shí)間并做如下操作,第一步:點(diǎn)擊圖標(biāo),如下:第二步:點(diǎn)擊之后顯示如下:第三步:選中變量,點(diǎn)擊如下圖標(biāo),第四步:點(diǎn)擊出現(xiàn)下框,設(shè)置參數(shù)如下,第五步:重復(fù)三、四步,指導(dǎo)四個(gè)變量設(shè)置完成。第六步:點(diǎn)擊最后一個(gè)“確定”之后,即可得到效果很好的仿真結(jié)果截圖(部分),觀察圖形,我們可以發(fā)現(xiàn),與理論譯碼相同,說(shuō)明程序正確。舉例說(shuō)明,第一個(gè)輸入碼組為0000001,校驗(yàn)子為001,說(shuō)明接收碼字0位出錯(cuò),糾錯(cuò)之后,正確的譯碼結(jié)果為0000。第5章 實(shí)驗(yàn)心得與課程建議5.1 實(shí)驗(yàn)心

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論