信道編碼的FPGA實現(xiàn)_第1頁
信道編碼的FPGA實現(xiàn)_第2頁
信道編碼的FPGA實現(xiàn)_第3頁
信道編碼的FPGA實現(xiàn)_第4頁
信道編碼的FPGA實現(xiàn)_第5頁
已閱讀5頁,還剩48頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、畢業(yè)設計論文任務書、題目信道編碼的FPGA實現(xiàn)、研究主要內(nèi)容(1) 了解信道編碼理論和其發(fā)展狀況。(2)掌握線性分組碼編碼原理,并基于 MATLAB和FPGA進行實現(xiàn)(3)掌握Turbo碼編碼原理,并基于 MATLAB和FPGA進行實現(xiàn)。(4)掌握RS碼編碼原理,并基于 MATLAB和FPGA進行實現(xiàn)。三、主要技術指標(1)分別禾用MATLAB和Quartus II對同一組隨機產(chǎn)生的數(shù)據(jù)序列進行(7,4) 線性分組碼編碼,并使得編碼結(jié)果一致。(2)分別利用 MATLAB和Quartus II對同一組隨機產(chǎn)生的數(shù)據(jù)序列進行 Turbo碼編碼,并使得編碼結(jié)果一致。-可編輯修改-(3)分別利用 MA

2、TLAB和Quartus II對同一隨機產(chǎn)生的數(shù)據(jù)序列進行RS(10,8)碼編碼,并使得編碼結(jié)果一致四、進度和要求第1周-第4周 搜集相關資料、復習有關MATLAB和信道編碼知識第5周-第6周查閱資料、選定研究方向、翻譯文獻第7周-第9周學習Verilog語言并完成Quartus II軟件的下載和安裝第10周-第11周 熟悉Quartus II仿真工具的操作、進行試編程第12周-第14周 使用MATLAB和Quartus II完成各種編碼的仿真實驗第15周-第17周撰寫畢業(yè)設計論文及答辯五、主要參考書及參考資料1田耘,徐文波,張延偉著.無線通信FPGA設計.北京:電子工業(yè)出版社,2009.72

3、樊昌信,曹麗娜著.通信原理.北京:國防工業(yè)出版社,2006.93張蓮,周登義,余成波著.信息論與編碼.北京:中國鐵道出版社,2008.44劉皖,何道君,譚明著.FPGA設計與應用.北京:清華大學出版社,2006.65劉冬華著.Turbo碼原理與應用技術.北京:電子工業(yè)出版社,2004.16何秋陽著.基于FPGA的RS編碼器的設計與實現(xiàn).EDN電子設計技術,2009.3-可編輯修改-7趙琦著編碼理論.北京:北京航空航天大學出版社,2009.3-可編輯修改-學生 指導教師 系主任信道編碼發(fā)展迅速,應用越來越廣泛,而信道編碼的好壞對眾多工程技術領 域的發(fā)展有著重要影響,所以對信道編碼的研究工作有著非

4、常重要的意義。本論文從闡述信道編碼理論出發(fā),介紹了編碼理論的背景和其發(fā)展狀況; 分 析了一般編碼原理和流程,并著重對線性分組碼、 Turbo碼和RS碼編碼原理以 及編碼器設計進行了詳細介紹。本文是基于FPGA的信道編碼實現(xiàn)。選取三種典型編碼方式:線性分組碼、-可編輯修改-Turbo碼和RS碼分別進行Quartus II平臺的仿真實現(xiàn),為了檢驗仿真的正確性,在另一種仿真環(huán)境-MATLAB 下進行驗證。并盡量使 MATLAB設計與FPGA 設計采用相同的設計思想。關鍵詞:線性分組碼,Turbo碼,RS碼,F(xiàn)PGA, MATLAB-可編輯修改-ABSTRACTChannel coding used

5、more widely and developed rapidly, while channel coding is good or bad on the development of a number of engineering technology have an important impact , so the channel coding research has very important significance.The thesis expounded the theory of channel coding, introduced the background and i

6、ts coding theory development; analysis of a general coding principles and processes, focusing on linear block codes, Turbo codes and RS coding principle and the detailed design of the encoder.This article is based on FPGA implementation of channel coding. Select the encoding of three typical ways: l

7、inear block codes, Turbo codes and RS codes and Simulate on Quartus II platform separately, to test the accuracy of simulation, verify under another simulation environment - MATLAB. And to make MATLAB&FPGA design use the same design idea.KEY WORDS : Linear block codes, Turbo codes, RS codes, FPGA, M

8、ATLAB-可編輯修改-第一章緒論11-可編輯修改-o1.1本課題的研究意義 TOC o 1-5 h z HYPERLINK l bookmark26 o Current Document FPGA與信道編碼 .12. HYPERLINK l bookmark28 o Current Document 本論文研究目的和主要內(nèi)容 1.3.第二章信道編碼簡介15引言16. HYPERLINK l bookmark30 o Current Document 數(shù)字通信系統(tǒng)和信道編碼 16. HYPERLINK l bookmark32 o Current Document 信道編碼的基本思想和分類 1

9、.9.信道編碼的發(fā)展2.1. HYPERLINK l bookmark36 o Current Document FPGA 簡介24. HYPERLINK l bookmark38 o Current Document FPGA工具簡介28 HYPERLINK l bookmark40 o Current Document FPGA 語言(VERILOG HDL)簡介30. HYPERLINK l bookmark47 o Current Document 第三章線性分組碼編碼原理和仿真實現(xiàn) 36 HYPERLINK l bookmark49 o Current Document 線性分組碼簡

10、介36.漢明碼37.循環(huán)碼38.BCH 碼39. HYPERLINK l bookmark60 o Current Document 線性分組碼編碼原理40. HYPERLINK l bookmark62 o Current Document 線性分組碼的 MATLAB實現(xiàn)42 . HYPERLINK l bookmark64 o Current Document 線性分組碼的FPGA實現(xiàn).4.4.結(jié)論分析 4.7.第四章 TURBO碼編碼原理和仿真實現(xiàn)48-可編輯修改- TOC o 1-5 h z HYPERLINK l bookmark72 o Current Document Turbo

11、特點和發(fā)展現(xiàn)狀49.Turbo碼編碼原理 5.1.Turbo碼的編碼結(jié)構(gòu)5.1.RSC遞歸系統(tǒng)卷積碼54.Turbo碼的交織器55.Turbo碼的截余模塊 5.7.Turbo碼譯碼原理 5.8.Turbo碼的譯碼結(jié)構(gòu)58.MAP 算法以及 Log-MAP 算法、Max-Log-MAP 算法.6 0Turbo碼編碼的MATLAB實現(xiàn)63TURBO碼編碼的FPGA實現(xiàn) 65.結(jié)論分析68i.第五章RS碼編碼原理和仿真實現(xiàn)69RS 碼特點69.RS碼編碼算法 7.1.RS碼編碼器7.2.基于乘法形式的 RS編碼器72.基于除法形式的 RS編碼器72RS碼譯碼算法 75.RS碼編碼的MATLAB實現(xiàn)7

12、.6.RS碼編碼的FPGA實現(xiàn)79.結(jié)論分析 82.-可編輯修改- TOC o 1-5 h z 第六章全文總結(jié)83參考文獻84致謝87畢業(yè)設計小結(jié)88-可編輯修改-第一章緒論本課題的研究意義信息時代的來臨使得高效可靠的數(shù)據(jù)傳輸成為一個重要課題。隨著現(xiàn)代通信技術和計算機技術的迅速發(fā)展,每天都在不斷涌現(xiàn)新的通信業(yè)務和信息業(yè)務,同時用戶對通信質(zhì)量和數(shù)據(jù)傳輸速率的要求也在不斷提高。從第三代移動通信系統(tǒng) 方案來看,普通要求提供中速或高速的數(shù)據(jù)業(yè)務,一般的數(shù)據(jù)業(yè)務信道為64kbps、 144kbps、384kbps。3G移動通信系統(tǒng)所提供的業(yè)務種類的多樣性、靈活性, 對差錯控制編譯碼提出更高的要求。但是由

13、于通信信道固有的噪聲和衰落特性, 信號在經(jīng)過信道傳輸?shù)竭_通信接 收端的過程中不可避免會受到干擾而出現(xiàn)信號失真。 通常需要采用差錯控制碼來 檢測和校正由信道失真引起的信息傳輸錯誤。由于差錯控制碼主要用于實現(xiàn)信道 糾錯,因此又稱為糾錯碼或信道碼-可編輯修改-圖1.1糾錯碼的分類最早的糾錯控制碼主要用于深空通信和衛(wèi)星通信,隨著數(shù)字蜂窩電話、數(shù)字電視以及高分辨率數(shù)字存儲設備的出現(xiàn),信道編碼技術的應用已經(jīng)不僅僅局限于 科研和軍事領域,而是逐漸在各種實現(xiàn)信息交流和存儲的設備中得到成功應用, 與我們的生活聯(lián)系更加密切??梢哉f,現(xiàn)代信息社會是離不開信道編碼技術的, 而信道編碼技術的好壞決定著這個社會文明的進步

14、速度。FPGA與信道編碼信道編碼也就是糾錯編碼,他是為了降低信息碼元的傳輸誤碼率, 提高數(shù)字 通信的可靠性而采取的編碼技術。信道編碼的實現(xiàn)主要可分為軟件實現(xiàn)和硬件實 現(xiàn)兩種,目前主流的是通過可編程邏輯器件的硬件技術來實現(xiàn)。FPGA (FieldProgrammable Gate Array),即現(xiàn)場可編程門陣列作為專用集成電路 (ASIC)領 域中的一種半定制電路,解決了定制電路的不足和原有可編程器件門電路數(shù)有限 的缺點。發(fā)展迅速,應用越來越廣泛,在通信、數(shù)據(jù)處理、網(wǎng)絡、儀器、工業(yè)控-可編輯修改-制、軍事和航空航天等眾多領域都有涉及信道編碼器的作用是在信息序列中嵌入冗余碼元,提高其糾錯能力,在

15、有限的信號功率、系統(tǒng)帶寬和硬件復雜性要求下提高系統(tǒng)的可靠性,因此對硬件速度 和精度要求較高。目前主流的 FPGA是基于查找表(Look Up Table , LUT)技術 的,已經(jīng)遠遠超出了先前版本的基本性能,并且整合了常用功能(如RAM、時鐘管理和DSP)的硬塊。FPGA的集成度很高,其器件密度從數(shù)萬門到數(shù)千萬門不 等,可以完成及其復雜的時序與邏輯組合邏輯電路功能,適用于高速、高密度的高端數(shù)字邏輯電路設計領域,用于信道編碼器的制作具有很大優(yōu)勢,并且 FPGA 發(fā)展趨勢是朝著大容量、低電壓、低功耗方向,對于靈巧便攜的移動通信系統(tǒng)更 是必不可少。并且FPGA在設計階段,完全由用戶通過軟件進行配置

16、和編程, 不需額外地 改變PCB電路板,只是在計算機上修改和更新程序,使得硬件設計工作成為軟 件開發(fā)工作,縮短了系統(tǒng)設計周期,提高了實現(xiàn)的靈活性并降低了設計過程中的 成本。本論文研究目的和主要內(nèi)容目前針對信道編解碼的研究已經(jīng)比較成熟,各種新的理論也在不斷出現(xiàn),適用于不同領域的信道編解碼方案也在不斷推出和完善,諸多成果已經(jīng)用于實踐環(huán) 節(jié)。本論文以信道編碼理論為主要研究方向,選取三種典型編碼方式線性分組碼、 RS碼和Turbo碼進行功能性驗證,首先根據(jù)上述編碼理論進行編碼器的結(jié)構(gòu)設 計,繼而進行硬件仿真,所選用的仿真工具為Xilinx公司的Foundation Series ISE,設計語言選用V

17、iewlogic公司開發(fā)的Verilog HDL。最后分別對三種編碼-可編輯修改- 方式的仿真結(jié)果進行評估和對比。本論文分為六部分:第一章 主要介紹信道編碼背景,設計實現(xiàn)和文章概要;第二章介紹了數(shù)字通信系統(tǒng)和信道編碼理論及其發(fā)展,簡要介紹了 FPGA和仿 真軟件及其語言;第三章研究線性分組碼編碼理論和設計思想,并進行 MATLAB和基于FPGA 的仿真實現(xiàn)。第四章研究Turbo碼編碼理論和設計思、想,并進行基于 FPGA和MATLAB的 設計以及仿真實現(xiàn)第五章 研究RS碼編碼理論和設計思想,并進行MATLAB和基于FPGA的仿真 實現(xiàn)。第六章全文總結(jié)-可編輯修改-第二章信道編碼簡介-可編輯修改

18、-2.1引言自從1948年香農(nóng)(C.E.Shannon)給出有噪信道編碼定理-在有噪信道中, 當信息傳送速率小于信道容量時, 就存在一種編碼、解碼方法,能夠使譯碼的錯 誤概率任意小,廣大通信工程師和數(shù)學家都致力于尋找糾錯能力強、編譯碼復雜 度低和硬件實現(xiàn)簡單的信道糾錯編碼方法。信道編碼的主要目的是消除或降低信息傳輸錯誤概率,從其發(fā)展歷程來看,主要可以分為分組碼和卷積碼兩類。 為了 進一步提高碼字的糾錯性能和寬帶效率,又相繼提出了級聯(lián)碼及格形編碼調(diào)制 (TCM)等方法。在過去的60年間,信道編碼取得了飛速的發(fā)展,已成為現(xiàn)代通 信系統(tǒng)不可或缺的一項標準技術。隨著無線通信系統(tǒng)的快速發(fā)展和個人通信的全

19、 球化,數(shù)據(jù)速率也越來越高,對信道編碼技術的要求也越來越嚴格。雖然性能良好的碼層出不窮,但都是在分組碼和卷積碼的基礎之上構(gòu)建而成 的。由于時間和本人水平有限,本論文僅對線性分組碼的一種-RS碼和現(xiàn)有信道編碼方案中最好的Turbo碼編碼器進行功能性驗證。數(shù)字通信系統(tǒng)和信道編碼圖2.1給出了數(shù)字通信系統(tǒng)的模型和信息流的傳輸過程。下面對其中的各個組成模塊進行簡單的介紹。-可編輯修改-圖2.1數(shù)字通信系統(tǒng)模型在數(shù)字通信系統(tǒng)中,發(fā)送端的主要組成部分為信源編碼器、信道編碼器、數(shù) 字調(diào)制器。進入信源編碼器的信源可以是模擬信號也可以是數(shù)字信號。如果信源是模擬信號,則在送入數(shù)字系統(tǒng)傳輸之前需要進行采樣和量化等數(shù)

20、字化處理。信源編碼 器的作用是提高傳輸帶寬的利用率和信息傳輸?shù)男?,因為在信源中,相鄰的符號之間存在一定的相關性,或者符號出現(xiàn)的概率具有一定的統(tǒng)計特性, 利用信源編碼器可以提取符號間的相關性及其統(tǒng)計特性, 在信源譯碼器中利用這 些符號間的相關性以及統(tǒng)計特性,還原出信源,這樣信源編碼器可以剔除一些冗 余信息,提高了每個符號所帶的信息量。傳輸信道通常是存在一定的噪聲和衰落, 為了抗擊傳輸過程中的各種干擾,通常需要采取一些差錯控制措施。信道編碼器的作用就是在信息序列中人為地增加一些冗余度,使其具有自動檢錯或者糾錯能力。信道編碼的基本思想是將每 k個連續(xù)的信息比特分為一組, 經(jīng)過適當?shù)臄?shù)字運算(編碼)

21、后得到那組比特的輸出,這n個比特組成的序列稱為 一個碼字。好的差錯控制碼所生成的碼字應該是在碼字集合中,所有碼字之間的區(qū)別盡可能大,從而使通信系統(tǒng)中的無法糾正或檢測的信道錯誤盡可能少。差錯-可編輯修改-控制碼的基本目標是在有限的信號功率、系統(tǒng)帶寬和硬件復雜性要求下使通信的 可靠性最大。比特形式的信息不適合在物理信道上傳輸,因此需要利用數(shù)字調(diào)制 器將這些編碼信息比特轉(zhuǎn)換成適合于在信道上傳輸?shù)倪B續(xù)波形信號。調(diào)制器的基本思想是將編碼的數(shù)字序列映射成適合在信道上傳輸?shù)哪M連 續(xù)信號。信號經(jīng)過調(diào)制器后送入物理信道進行傳輸。典型的傳輸信道包括有線信道、 光纖信道、無線信道、衛(wèi)星信道、磁記錄信道等。無論是那

22、種傳輸媒體,都會引 入一定的傳輸噪聲。信號經(jīng)過信道傳輸后到達接收端。接收端包括 :數(shù)字解調(diào)器、信道譯碼器、 信源譯碼器。數(shù)字解調(diào)器的作用是通過對接收的調(diào)制信號序列或傳輸碼字進行最 優(yōu)估計,然后輸出數(shù)字編碼序列到信道譯碼器。 信道譯碼器對傳輸信息進行估計 和判決,估計準則是跟據(jù)編碼準則和信道特性而定的,目的是使信道噪聲所造成的信號判決錯誤最小化。最后信源譯碼器根據(jù)信源編碼準則將得到的信道譯碼器 輸出的編碼信息序列經(jīng)過信源譯碼后,得到信宿。作為提高數(shù)字傳輸可靠性的重要技術之一, 信道編碼在數(shù)字通信中得到了廣 泛的應用。比如在移動通信系統(tǒng)中, GSM系統(tǒng)采用了奇偶校驗碼和卷積碼;第 三代移動通信系統(tǒng)

23、中,采用了卷積碼和 Turbo碼;在衛(wèi)星通信系統(tǒng)中,空間數(shù) 據(jù)咨詢委員會(CCSDS)則推薦Turbo碼為遙測標準碼;在計算機通信中,采用 了簡單檢錯碼和循環(huán)碼。由此可見,信道編碼技術在數(shù)字通信中有著舉足輕重的 作用,不可忽視,而一種優(yōu)秀的編碼技術往往可以帶來通信技術的變革。-可編輯修改-信道編碼的基本思想和分類在討論信道編碼的基本思想之前,我們要知道信道編碼在工程實踐中提出的 主要技術指標有傳輸速率、差錯率、可靠性與經(jīng)濟性等。1.傳輸速率(1)碼元傳輸速率 碼元是指攜帶數(shù)據(jù)信息的信號單元。每秒通過信道傳輸?shù)拇a 元數(shù)稱為碼元傳輸速率,單位是波特,簡稱波特率。碼元傳輸速率又稱調(diào)制速率。(2)比特

24、傳輸速率 每秒通過信道傳輸?shù)男畔⒘糠Q為比特傳輸率,單位是比特/秒,簡稱比特率。這兩種傳輸速率的定義不同,但都是衡量系統(tǒng)傳輸能力的主要指標。對于二 進制來說,每個碼元的信息含量為1比特,因此,二進制的碼元傳輸速率與比特 傳輸速率在數(shù)值上是相等的。對于M進制來說,每一碼元的信息含量為M版g特,因此,如果碼元傳輸速率為r s波特,則相應的比特傳輸速率r b為ib = rslog M。差錯率是衡量傳輸質(zhì)量的重要指標之一。它有以下幾種不同的定義:碼元差錯率 指在傳輸?shù)拇a元總數(shù)中發(fā)生差錯的碼元數(shù)所占的比例(平均值),簡稱誤碼率,一般用符號p。表示。e比特差錯率 指在傳輸?shù)谋忍乜倲?shù)中發(fā)生差錯的比特數(shù)所占的比

25、例(平均值),用符號p BE表示。在二進制傳輸系統(tǒng)中,碼元差錯率就是比特差錯率。(3)碼組差錯率 指在傳輸?shù)拇a組總數(shù)中發(fā)生差錯的碼組書所占的比例(平均值)。系統(tǒng)的設計者和用戶根據(jù)不同的應用場合對差錯率有不同的要求。3.可靠性可靠性是衡量傳輸系統(tǒng)質(zhì)量的又一重要指標。而降低誤碼率以滿足系統(tǒng)的要-可編輯修改-求通常有兩種途徑:一是降低信道(包括調(diào)制解調(diào)器、傳輸媒介)本身所引起的誤 碼率;二是采用信道編碼,在數(shù)字通信系統(tǒng)中增加差錯控制設備。了解信道中產(chǎn)生差錯的特點以后,我們來討論信道編碼的基本思想。 信道編 碼的編碼對象是信源編碼器輸出的數(shù)字序列M ,又稱信息序列。通常是由二兀符號0.、1組成的序列,

26、而且符號1和0是獨立等概率的。所謂信道編碼,就是 按一定得規(guī)律在待發(fā)送的信息碼中加入一些人為多作的碼元,以保證傳輸過程的可靠性。即信道編碼的任務就是通過構(gòu)造出以最小多余度代價換取最大抗干擾性 能的好碼”,即通過選擇地發(fā)射的數(shù)據(jù)中引入冗余,防止數(shù)據(jù)出現(xiàn)差錯。用于檢 測差錯的信道碼稱為檢錯碼;而可以檢測和校正差錯的信道碼稱為糾錯碼。采用簡單重復方式增加人為多余度, 可以實現(xiàn)提高抗干擾性,但并不是好的 方法。從原理上看,增加人為多余度的規(guī)則和方法是多種多樣的,可劃分為兩大類型:如果規(guī)則是線性的,即碼元之間的關系是線性關系,則稱這類信道編碼為 線性碼,否則稱為非線性碼。另外,從信源信息序列所對應的編碼

27、方式上也可進 一步劃分為兩種類型:如果將信源的信息序列按照獨立分組進行處理和編碼,則稱為分組碼,否則稱為非分組碼。此外,信道編碼從功能上也可以分為 3類僅具有發(fā)現(xiàn)差錯功能的檢錯碼,如循環(huán)冗余校驗 (CRC)碼、自動請求重傳(ARQ) 碼等;具有自動糾正差錯功能的糾錯碼,如循環(huán)碼中的BCH碼、RS碼以及卷積碼、級聯(lián)碼、Turbo碼;既有檢錯功能又有糾錯功能的信道編碼, 最典型的是混合ARQ ,又稱為HARQ。-可編輯修改-o2.4信道編碼的發(fā)展1948年信息論的開創(chuàng)者C.E.Shannon在他的開創(chuàng)性論文A mathematical theory of communication”中首次提出著名

28、的信道編碼定理,闡明了在有擾信道中實現(xiàn)可靠通信的方法,提出了著名的有擾信道編碼定理。從理論上為信息編 碼的研究指出了明確的方向,莫定了糾錯碼的基石。對于離散信道,Shannon編碼定理告訴我們:任意給定平穩(wěn)離散無記憶信 道,都存在信道容量C,當信息傳輸速率RC時,任何編碼方式都不能使 P-0.對于非離散信道也是如此。Shannon同時證明了信道容量C取決于傳輸信號的信噪比SNR,C是SNR 的增函數(shù)。設某信道的容量 C確定時,當信信息傳輸速率 R-C為實現(xiàn)無差錯 傳輸,R所對應的SNR稱為Shannon容限。在信道編碼定理證明過程中引入了三個基本條件 :.采用隨機編碼方式.碼字長度趨向于無窮大

29、.采用最大似然譯碼算法并指出隨機選擇的碼以很高的概率為好碼。對于隨機碼的最大似然譯碼,其譯碼算法復雜度與所傳輸?shù)拇a字長度和碼率呈指數(shù)關系,可見隨機碼是不實用 的。但是這三個條件為今天的信道編譯碼的構(gòu)造和譯碼算法的研究指明了方向。由于編碼定理的證明是非構(gòu)造性的,沒有給出如何構(gòu)造能逼近Shannon限的編 碼方法,構(gòu)造逼近Shannon限的糾錯碼和對其性能的研究,成為競相研究的課-可編輯修改- 題之一,形成了信息論的一個重要分支-信道編碼理論。信道編碼的發(fā)展大致可以由以下幾種編碼的產(chǎn)生而分為各個階段。1950年,漢明碼由漢明提出,它是可以糾正一個錯誤的完備碼。1959年, 霍昆格姆(Hocgeng

30、hem)和1960年博斯(Bose)及雷 查德胡里(Ray Chaudhuri) 分別提出了糾正多個隨機錯誤的循環(huán)碼 BCH碼。1960年Peterson找到了二元 BCH碼的第一個有效算法,從而將它從理論推向?qū)嵱?。同年,Reed和Solomon 發(fā)現(xiàn)了 BCH在基于素數(shù)的有限域中的一個子類 RS碼的構(gòu)造方法,從來將分組 碼的理論推到了一個高峰。1955年,愛里斯(Elias)提出了卷積碼,由于它在編碼過程中充分利用了前 后比特的相關性,因此性能優(yōu)于同等碼率的分組碼,并且在同等碼率和相似的糾 錯能力下,卷積碼的實現(xiàn)要比分組碼簡單。1967年Viterbi提出卷積碼的一種最大似然譯碼算法,無論從

31、理論還是實際應用上都極大的推動了卷積碼的發(fā)展。 卷積碼在各種通信系統(tǒng)中都得到了廣泛的應用。1966年,F(xiàn)orney首先提出了由兩個確定的短碼來構(gòu)造長碼的串行級聯(lián)結(jié)構(gòu), 實現(xiàn)了質(zhì)量好的長碼和譯碼復雜度的良好結(jié)合,并采用準最佳的廣義最小距離譯碼推到了級聯(lián)碼的性能界限。在目前的無線通信系統(tǒng)中,包括衛(wèi)星通信和陸地移 動通信系統(tǒng),很多都采用級聯(lián)碼作為信道編碼方案。上世紀九十年代以前,信道編碼的設計一直是沿著 Shannno信息論的后兩 個方向發(fā)展。針對Shannon信息論指出的信道編碼設計的第三個要素-最大 似然譯碼算法,由于其譯碼復雜度高,不適合工程實現(xiàn)。而 Viterbi提出的最大 后驗概率譯碼算法

32、是目前真正能達到最佳譯碼性能的算法, 它在信源等概率的條 件下等效于最大似然譯碼算法。但是, Viterbi算法也只適合于約束長度較小的-可編輯修改-卷積碼和短的或低糾錯能力的分組碼,對于長碼來說,由于其運算復雜度過高, 使得實時譯碼不可實現(xiàn)。針對信道編碼設計的第二個要素-編碼器的構(gòu)造,由于長碼的譯碼復雜度 太高,而性能優(yōu)異的短碼能達到的傳輸速率 R System Verilog 等。ModelSim 最大的特點是其強大的調(diào)試功能:先進的數(shù)據(jù)流窗口,可以迅 速追蹤到產(chǎn)生不定或錯誤狀態(tài)的原因;性能分析工具幫助分析性能瓶頸,加速仿真;代碼覆蓋率檢查確保測試的完備;多種模式的波形比較功能;先進的Si

33、gnal Spy功能,可以方便的訪問VHDL或VHDL和Verilog混合設計中的底層信號; 支持加密IP;可以實現(xiàn)與MATLAB中Simulink的聯(lián)合仿真。實現(xiàn)工具包含的工具比較多,面也比較廣。如果能夠較好的掌握這些工具, 將大幅度提高設計者的能力,縮短設計周期。ISE和Quartus II中集成的實現(xiàn)工 具主要有約束編輯器、引腳與區(qū)域編輯器、時序分析器、底層編輯器、芯片觀察 窗和布局規(guī)劃器等。實現(xiàn)的過程主要分為翻譯(Transplate)、映射(Map)和布局布線(Place&Route)3個步驟。一般都必須選擇芯片生產(chǎn)商所提供的工具軟件進 行實現(xiàn)。FPGA 語言(Verilog HDL

34、)簡介Verilog HDL和VHDL是目前世界上最流行的兩種硬件描述語言-可編輯修改-(Hardware Description Language , HDL),均為 IEEE標準,被廣泛應用于基于可編程邏輯器件的項目開發(fā)中。二者都是在20世紀80年代中期開發(fā)出來的, 前者由Gateway Design Automation(GDA) 公司開發(fā),后者由美國軍方研發(fā)。 其中,HDL以文本形式來描述數(shù)字系統(tǒng)硬件結(jié)構(gòu)和行為的語言,用它可以表示 邏輯電路圖、邏輯表達式,還可以表示數(shù)字邏輯系統(tǒng)所完成的邏輯功能。本論文主要使用Verilog HDL語言,故接下來對其進行簡單介紹。HDL是一種用形式化方法

35、來描述數(shù)字電路和系統(tǒng)的語言,可以從上層到下 層來逐層描述自己的設計思想,用一系列分層次的模塊來表示復雜的數(shù)字系統(tǒng), 并逐層進行驗證仿真,再把具體的模塊組合由綜合工具轉(zhuǎn)化成門級網(wǎng)標。接下來再利用布局布線工具把網(wǎng)表轉(zhuǎn)化為具體電路結(jié)構(gòu)的實現(xiàn)。目前,這種自頂向下的方法已被廣泛使用。概括的講,HDL語言包含以下主要特征:HDL語言既包含一些高級程序設計語言的結(jié)構(gòu)形式,同時也兼顧描述硬件 線路連接的具體結(jié)構(gòu)。通過使用結(jié)構(gòu)級行為描述,可以在不同的抽象層次描述設計。HDL語言采用自頂向下的數(shù)字電路設計方法,主要包括 3個領域5個抽象層次。HDL語言是并行處理的,具有同一時刻執(zhí)行多任務的能力。這和一般高級 設計

36、語言串行執(zhí)行的特征是不同的。HDL語言具有時序的概念。一般的高級編程語言是沒有時序概念的,但在 硬件電路中從輸入到輸出總是有延時存在的,為了描述這一特征,需要引入時延的概念。因此HDL語言不僅可以描述硬件電路的功能,還可以描述電路的時序。自從1983年GDA硬件描述語言公司的 Philip Moorby 首創(chuàng)了 Verilog HDL語言,經(jīng)過數(shù)十年的發(fā)展和進一步完善,Verilog HDL的應用越來越廣泛。-可編輯修改-Verilog HDL既是一種行為描述語言,也是一種結(jié)構(gòu)描述語言。如果按照一 定的規(guī)則和風格編寫代碼,可以將功能行為模塊通過工具自動轉(zhuǎn)化為門級互聯(lián)的 結(jié)構(gòu)模塊。這意味著利用V

37、erilog語言所提供的功能,就可以構(gòu)造一個模塊間的 清晰結(jié)構(gòu)來描述復雜的大型設計,并對所作設計的邏輯電路進行嚴格的設計。Verilog HDL語言和C語言風格有很多的相似之處,學習起來比較容易。表2-1 給出了 Verilog HDL 語言的表述能力。表2-1 Verilog HDL語言的表述能力描述級別抽象級別功能描述物理模型行為級系統(tǒng)級用語言提供的高級結(jié)構(gòu)能夠?qū)崿F(xiàn)所設計模塊外部性能的模型芯片、電路板和物理劃分的子模塊算法級用語言提供的高級功能能夠?qū)崿F(xiàn)算法運行的模型部件之間的物理連接,電路板RTL級描述數(shù)據(jù)如何在寄存器之間流動和如何處理、控制這些數(shù)據(jù)流動的模型芯片、宏單元邏輯級門級描述邏輯

38、門和邏輯門之間連接的模型標準單兀布圖電路級開關級描述器件中三極管和存儲節(jié)點以及它們之間連接的模型晶體管布圖Verilog HDL和VHDL都是用于邏輯設計的硬件描述語言。 Verilog HDL和VHDL的相同點在于:都能形式化地抽象表示電路的行為和結(jié)構(gòu);支持邏輯設計中層次與范圍的描述;可以簡化電路行為的描述;具有電路仿真和驗證機制;-可編輯修改-支持電路描述由高層到底層的綜合轉(zhuǎn)換;與實現(xiàn)工藝無關;偏于管理方面和設計 重用但Verilog HDL和VHDL又有各自的特點,由于 Verilog HDL推出較早, 因而擁有更廣泛的客戶群體、更豐富的資源。Verilog HDL還有一個優(yōu)點就是容 易

39、掌握,如果具有C語言學習的基礎,很快就能夠掌握。而 VHDL需要Ada編 程語言基礎,一般需要半年以上的專業(yè)培訓才能夠掌握。傳統(tǒng)觀點認為VerilogHDL在系統(tǒng)抽象方面較弱,不太適合特大型的系統(tǒng),但經(jīng)過 Verilog 2001標準 的補充之后,系統(tǒng)級表述性能和可綜合性能有了大幅度提高。用Verilog HDL描述的電路設計就是該電路的 Verilog HDL 模型,也稱為 模塊,是Verilog的基本描述單位。用模塊描述某個設計的功能或結(jié)構(gòu),以及與 其他模塊通信的外部接口,一般來說,一個文件就是一個模塊,但并不絕對如此。模塊是并行運行的,通常需要一個高層模塊通過調(diào)用其他模塊的實例來定義一個

40、 封閉的系統(tǒng),包括測試數(shù)據(jù)和硬件描述。一個模塊的基本架構(gòu)如下module module_name(port_list)regwireparameterinputoutputinoutfunctiontask/聲明變量和信號/寄存器/線網(wǎng)/參數(shù)/輸入信號/輸出信號輸入/輸出信號/函數(shù)/任務-可編輯修改-/Statements initial assignment always assignmentmodule assignment gate assignmentUDP assignment coninous assignmentendmodule說明部分用于定義不同的項,比如模塊描述中使用的寄存

41、器和參數(shù)。 語句用 于定義設計的功能和結(jié)構(gòu)。說明部分可以分散于模塊的任何地方,但是變量、寄 存器、線網(wǎng)和參數(shù)等的說明必須在使用前出現(xiàn)。Verilog HDL語言的基本要素,包括標識符、數(shù)據(jù)類型、模塊端口、常量集 合及運算符和表達式等。Verilog HDL可以完成實際電路不同抽象級別的建模, 具體而言,有三種描述形式:如果從電路結(jié)構(gòu)的角度來描述電路模塊,則稱為結(jié)構(gòu)描述形式;如果對線型變量進行操作,就是數(shù)據(jù)流描述形式;如果只從功能和 行為的角度來描述一個實際電路,就成為行為級描述形式。電路具有5種不同模 型,其中,系統(tǒng)級、算法級、RTL級屬于行為描述;門級屬于結(jié)構(gòu)描述;開關級 涉及模擬電路,在數(shù)

42、字電路中一般不考慮。-可編輯修改-可編輯修改-第三章線性分組碼編碼原理和仿真實現(xiàn)3.1線性分組碼簡介線性分組碼中的分組是指編碼方法是按信息分組來進行的,而線性則是指編碼規(guī)律即監(jiān)督位與信息位之間的關系遵從線性規(guī)律。線性分組碼是一組固定長度的碼組,可表示為(n , k),通常它用于前向糾錯。 在分組碼中,監(jiān)督位被加到信息位之后,形成新的碼。在編碼時,k個信息位被編為n位碼組長度,而n-k個監(jiān)督位的作用就是實現(xiàn)檢錯與糾錯。當分組碼的 信息碼元與監(jiān)督碼元之間的關系為線性關系時,這種分組碼就稱為線性分組碼。對于長度為n的二進制線性分組碼,它有2 n種可能的碼組,從2 n種碼組中, 可以選擇M= 2k個碼

43、組(kn)組成一種碼。這樣,一個k比特信息的線性分組碼 可以映射到一個長度為n碼組上,該碼組是從M= 2k個碼組構(gòu)成的碼集中選出來 的,這樣剩下的碼組就可以對這個分組碼進行檢錯或糾錯。線性分組碼是建立在代數(shù)群論基礎之上的, 各許用碼的集合構(gòu)成了代數(shù)學中 的群,它們的主要性質(zhì)如下:(1)任意兩許用碼之和(對于二進制碼這個和的含義是模二和)仍為一許用碼, 也就是說,線性分組碼具有封閉性;(2)碼組間的最小碼距等于非零碼的最小碼重。線性分組碼種類眾多,下面對其中的典型代表進行簡單介紹。-可編輯修改-3.1.1漢明碼當計算機存儲或移動數(shù)據(jù)時,可能會產(chǎn)生數(shù)據(jù)位錯誤,這時可以利用漢明碼 來檢測并糾錯,簡單

44、的說,漢明碼是一個錯誤校驗碼碼集,由 Bell實驗室的 R.W.Hamming 發(fā)明,因此定名為漢明碼。與其他的錯誤校驗碼類似,漢明碼也利用了奇偶校驗位的概念, 通過在數(shù)據(jù) 位后面增加一些比特,可以驗證數(shù)據(jù)的有效性。利用一個以上的校驗位,漢明碼 不僅可以驗證數(shù)據(jù)是否有效,還能在數(shù)據(jù)出錯的情況下指明錯誤位置。 漢明碼利 用奇偶塊機制降低了前向糾錯的成本。進行奇偶校驗的方法是先計算數(shù)據(jù)中1的個數(shù),通過增加一個0或1(稱為 校驗位),使1的個數(shù)變?yōu)槠鏀?shù)(奇校驗)或偶數(shù)(偶校驗)。例如,數(shù)據(jù)1001總共 是4個比特位,包括2個1, 1的數(shù)目是偶數(shù),因此,如果是偶校驗,那么增加 的校驗位就是一個0,反之

45、,增加一個1作為校驗位。通過異或”運算來實現(xiàn)偶 校驗,同或”運算來實現(xiàn)奇校驗。單個比特位的錯誤可以通過計算1的數(shù)目是否 正確來檢測出來,如果1的數(shù)目錯誤,說明有一個比特位出錯,這表示數(shù)據(jù)在傳 輸過程中受到噪音影響而出錯。利用更多的校驗位,漢明碼可以檢測兩位碼錯, 每一位的檢錯都通過數(shù)據(jù)中不同的位組合來計算出來。 校驗位的數(shù)目與傳輸數(shù)據(jù) 的總位數(shù)有關,可以通過漢明規(guī)則進行計算:d+p+1 =3,t2 m-1),存在著能糾正t個以內(nèi)錯誤的BCH碼,其參數(shù)為:碼長n=2m-1(3-3)監(jiān)督元位數(shù):n-k=2t+1-可編輯修改-(3-5)其生成多項式g(x)為GF(2m)上最小多項式mi(x), m

46、2(x),m2t(x)的最小公倍式,即 g(x)=LCMm i(x), m 2(x),m2t(x)。3.2線性分組碼編碼原理編碼原理的介紹以最簡單的(7,3)線性分組碼為例進行說明。以每 3位信息比特作為一組進行編碼,即輸入編碼器的信息位長度k=3 ,完成編碼后輸出編碼器的碼組長度為n=7 ,顯然監(jiān)督位長度n-k=4位,編碼效率r=k/n=3/7 。(1)編碼方程設輸入的信息碼元為:U=( U0, Ui, U 2)輸出的碼組為:C=(C0, C 1 , C 2 , C 3 , C 4 , C 5 , C 6)輸出碼組中信息位為:Co= U0 , C 1 = U1 , C 2= U2監(jiān)督位為:C

47、3 = U0 U2,,4=U0 U1 U2,,5=U0 U,。6=5 U2在輸出的碼組中,前3位即為信息位,后4位是監(jiān)督位。其中監(jiān)督位是由前3個信息位構(gòu)成的線性組合。將信息位和監(jiān)督位寫成相應的矩陣形式為:10 0 1110C=(Co ,C1,C2 ,C3,C4,C5,C6)=(Uo,U1,U2)0 1 0011 1=U G (3-6)0011101若G=(I:G),其中I為單位矩陣,則稱C為系統(tǒng)碼。G為生成矩陣,可見,-可編輯修改-如已知信息碼組U與生成矩陣G,即可生成碼組。生成矩陣主要用于編碼器產(chǎn) 生碼組。(2)監(jiān)督方程組若將式()中的后4位監(jiān)督方程組改為:C3=U0U 2 =C0C2C4

48、=U0U1U2 二C0 C1C2C5=U0U1 =C0 C1(C6=U1U 2 =C1C2(3-7)將上述線性方程改寫為下列矩陣形式為:C0Ci1011000 C 01110 1001/ _必ii 0 0 0 i0 C3=01 1 1 0 0 0 1 C40C5C6(3-8)它可以表示為:H CT=0TO稱H為監(jiān)督矩陣,若H=(P : I),其中I為單位 矩陣,則稱C為系統(tǒng)碼。監(jiān)督矩陣一般用于譯碼器的譯碼過程。(3)校正子方程若在接收端,接收信號為:Y=(y0,y,yn-1尸x+n=c e(3-9)式中,C=(C0, C1,,Cn-1)為發(fā)送的碼組,e=(e, 1,,51)為傳輸 中的誤碼,由

49、H CT= 0T可知,若傳輸中無差錯,即 e=0 ,則接收端必然要滿足 監(jiān)督方程H CT=0T;若傳輸中有差錯,即e為,則接收端監(jiān)督方程應改為:H YT=H(C e)T=H CT HeT= H eT= ST-可編輯修改-(3-10)由式(3-9)求得校正子S為:S= (ST)T= ( HYT)t=Y HT=C HT+e HT(3-11)稱式(3-10)和式(3-11 )為校正子方程,接收端利用它們來進行譯碼。其中S 僅與e有關,而與碼字C無關。由于H矩陣是個(n-k)行n列的矩陣,所以S是 一個(n-k)維矢量,它可以給出(n-k)個獨立的方程,然而傳輸?shù)牟铄e e則是一個 n維矢量,有n個待定

50、值,所以S并不能唯一地確定e。由某個給定的S,可以 有2k個e的解,即同一個伴隨式可以得到2 k個錯誤圖樣,而真正的錯誤圖樣應該 是2 k中的其中一個,所以譯碼器必須從這2卜個候選錯誤矢量中決定出一個真正的 錯誤矢量。為了使譯碼平均錯誤概率最小,在二進制對稱信道的條件下,最可能 的錯誤圖樣是譯碼漢明重量最小的接受碼組,即非零個數(shù)最小的碼組。3.3線性分組碼的MATLAB實現(xiàn)本論文主要以(7,4)漢明碼為例,實現(xiàn)線性分組碼的 MATLAB仿真。漢明碼是指能糾正單個隨機錯誤的線性分組碼,主要參數(shù)為:碼長:n=2m-1信息位:k= 2m -1-m監(jiān)督位:n-k=m,且mm最小距離:d min =3下

51、面進行MATLAB仿真。(1)主程序名為hamming7_4.m輸入信息比特 msg=1 0 0 1-可編輯修改-A = 1 1 1;1 1 0;1 0 1;0 1 1 ;G = eye(k) A ;%生成矩陣H = A eye(n-k) ;%校驗矩陣jnsg 二10011圖3.1輸入序列取第二個碼字發(fā)(2)調(diào)用mod函數(shù)進行編碼,這里在信道傳輸中加了一個錯誤,生錯誤。編碼后輸出為code=1 1 0 1 1 0 0 二1101100圖3.2編碼錯誤輸出序列(3)譯碼后指示錯誤碼字位置imdu冗-2 I圖3.3錯誤碼字位置-可編輯修改-(4)糾正錯誤后的譯碼結(jié)果correctedca de =

52、圖3.4譯碼結(jié)果糾錯后(5)去除校驗碼,得到和輸入信息序列一樣的輸出信息序列g_decade-d =圖3.5輸出信息序列線性分組碼的FPGA實現(xiàn)使用Verilog實現(xiàn)一個(7,4)漢明碼的編碼電路,其編碼矩陣如下所示:1011000G=0 10 00 0 100110001編碼電路的Verilog 程序linearcoder.v 如下:-可編輯修改-omodule linearcode(reset, u, c);input reset;input 3:0 u;output 6:0 c;assign c3:0 = reset?4b000: u3:0;assign c4=reset ?0:(u0Au2 Au3);assign c5=reset ?0:(u0au1 au2);assign c6=reset ?0:(u1au2 au3);endmodule上述程序經(jīng)過Integrated Synthesis綜合后,可以得到如圖3.6所示的RTL結(jié)構(gòu)圖。-可編輯修改-上述程序經(jīng)過QuartusII Simulator仿真后,在輸入序列為1 0 0 1

溫馨提示

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

最新文檔

評論

0/150

提交評論