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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

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

3、下來了。H的行數(shù)就是監(jiān)督矩陣的數(shù)目,等于監(jiān)督數(shù)目r。H矩陣可以分為兩個部分,其中,P是階矩陣,是階單位陣。因為,所以可以用這個關系式來作為判斷接收碼字A是否出錯的依據(jù)。若,則說明碼字A有錯,反之則說明碼字A無錯。1.2.2生成矩陣將(1.1)式的監(jiān)督方程補充完整并寫成矩陣的形式,即,其中M為階信息碼矩陣,G為階矩陣。通過觀察可以得出,其中為階單位陣,Q為階矩陣。因此,可以推斷典型監(jiān)督矩陣和基本生成滿足下列關系式,1.3校驗子(S)設一組發(fā)送碼字,在傳輸過程中可能產(chǎn)生誤碼,接收碼組,收發(fā)碼組之差定義為錯誤圖樣E,其中,令,稱為校驗子??梢姡盒r炞覵和錯誤圖樣之間存在確定的線性變換關系。(7,4)

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

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

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

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

8、的設計,可以利用EDA工具進行邏輯綜合和優(yōu)化,并自動的把VHDL描述設計轉變成門級網(wǎng)表。VHDL對設計的描述具有相對獨立性,設計者可以不懂硬件的結構,也不必管理最重設計實現(xiàn)的目標器件是什么,而進行獨立的設計。第3章 編碼程序設計3.1 編碼程序設計流程圖3.2 程序代碼及注釋/包含IEEE文件LIBRARY IEEE; /IEEE程序包,定義數(shù)據(jù)類型USE IEEE.STD_LOGIC_1164.ALL;/定義一個實體,包括4個輸入變量,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;/定義一個結構體architecture one of VHDL_HM_CODE isbegin/輸入4位信息b(6)<=datain(3); b(5)<=datain(2); b(4)<=datain(1); b(3)<=datain(0);/計算出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 代碼運行方法及仿真結果3.3.1 代碼運行方法1雙擊左鍵,打開Quartus軟件。2.File>Open Project。3.打開程序代碼所在的根目錄,選中并雙擊打開。4.點擊如圖所示的仿真按鈕,3.3.2 仿真結果截圖(部分)該仿真將輸入設置為從0000-1111的順序,從圖中可以看到,第一排二進制數(shù)據(jù)代表的是4位信息位數(shù)據(jù),第二排代表是7位編碼輸出結果,可見編碼結果跟第1章理論編碼結果一致,說明程序的正確性。第4章 譯碼程序設計4.1 譯碼程序必要說明在第1章(7,4)漢明碼構造原理中,已得出典型監(jiān)督矩陣H,設需要譯碼的碼組,根據(jù)

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

12、碼碼組;a為輸出碼組,即譯碼結果輸出;n為錯誤碼元位數(shù)輸出;s為校驗子輸出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;/定義一個結構體architecture one of VHDL_HM_DECODE is/設置中間變量bbb,存儲譯碼結果,即4為信息碼元s

13、ignal bbb: std_logic_vector(3 downto 0);begin/開始一個進程process(b)/設置變量ss,存儲運算出來的校驗子variable ss:std_logic_vector(2 downto 0);/設置變量bb,存儲需要譯碼的碼組variable bb:std_logic_vector(6 downto 0);begin/計算校驗子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;/判斷校驗子是否為零,若不為零,則使錯誤的位取反,并將錯誤的位置賦給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;/若沒有錯,將正確的信息碼元賦給a,且將7賦給nelse a<=b(6)&

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

溫馨提示

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

評論

0/150

提交評論