通信原理課程設計_第1頁
通信原理課程設計_第2頁
通信原理課程設計_第3頁
通信原理課程設計_第4頁
通信原理課程設計_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、劉君 基于Matlab/Simulink的卷積碼編碼技術仿真與性能分析 第14頁 共19頁基于Matlab/simulink的卷積碼編碼技術仿真與性能分析學生姓名 XX 指導老師:胡雙紅摘 要 本課程設計主要解決通信系統中基帶傳輸信道糾錯編碼技術中的卷積碼編碼技術。產生一段隨機的二進制非歸零碼的基帶信號,對其進行卷積編碼 ,而后采用維特比(Viterbi)譯碼輸出,并通過Matlab軟件進行設計與仿真,并進行差錯率-誤碼率曲線繪制和性能分析。關鍵詞 課程設計;卷積碼編碼器;維特比譯碼器;Matlab ;Simulink ;設計與仿真性能分析1 引 言1.1 課程設計目的本課程設計的目的主要是仿

2、真通信系統中基帶傳輸信道糾錯編碼技術中的卷積碼編碼技術。產生一段隨機的二進制非歸零碼的基帶信號,對其進行卷積碼編碼后再送入二進制對稱信道傳輸,在接收端對其進行卷積解碼以恢復原信號,觀察還原是否成功,改變二進制對稱信道的差錯率,計算傳輸前后的誤碼率,繪制信道差錯率-誤碼率曲線,并與理論曲線比較進行說明。 2 課程設計的原理2.1 卷積編碼原理卷積碼,又稱連環(huán)碼,是由伊萊亞斯(P.elias)于1955年提出來的一種非分組碼。卷積編碼的最佳譯碼準則為:在給定已知編碼結構、信道特性和接收序列的情況下,譯碼器將把與已經發(fā)送的序列最相似的序列作為傳送的碼字序列的估值。對于二進制對稱信道,最相似傳送序列就

3、是在漢明距離上與接收序列最近的序列。卷積碼的編碼器一般都比較簡單。 圖2-1 卷積碼編碼器原理框圖圖2-1是一般情況下的卷積碼編碼器框圖。它包括NK級的輸入移位器,一組n個模2和加法器和n級的輸出移位寄存器 。對應于每段k比特的輸入序列,輸出n個比特。由圖可知,n個輸出比特不但與當前的k個輸入比特有關,而且與以前的(N-1)k個輸入信息比特有關。整個編碼過程可以看成是輸入信息序列與由移位寄存器和模2加法器的連接方式所決定的另一個序列的卷積,卷積碼由此得名。本文采用的是沖擊響應描述法編碼思想 圖2-2 卷積編碼器如圖2-2是卷積碼(2,1,3)卷積編碼器的一個框圖。左邊是信息的輸入。下面分別是系

4、統位輸出和校驗位輸出。其中間是3個移位寄存器和一個模2加法器。簡單的說就是信息位經過移位寄存器和一個模2加法器產生一個系統位和校驗位加在一起輸出??梢钥闯觯好枯斎胍粋€比特,移位寄存器中就向右移動一個位子。原來的第三個寄存器就被移出??梢娋矸e編碼不只與現在的輸入比特有關還與前面的3-1個比特有關。所以約束長度是3。在這里,其中K=1 ,n=2所以碼率R=K/ n=1/2。2.2 維特比譯碼原理卷積碼的譯碼方法有兩大類:一類是大數邏輯譯碼,又稱門限譯碼(硬判決);另一種是概率譯碼(軟判決),概率譯碼又分為維特比譯碼和序列譯碼兩種。門限譯碼方法是以分組碼理論為基礎的,其譯碼設備簡單,速度快,但其誤碼

5、性能要比概率譯碼法差。當卷積碼的約束長度不太大時,與序列譯碼相比,維特比譯碼器比較簡單,計算速度快。維特比譯碼算法是1967年由Viterbi提出,近年來有大的發(fā)展。目前在數字通信的前向糾錯系統中用的較多,而且在衛(wèi)星深空通信中應用更多,該算法在衛(wèi)星通信中已被采用作為標準技術。采用概率譯碼的基本思想是:把已接收序列與所有可能的發(fā)送序列做比較,選擇其中碼距最小的一個序列作為發(fā)送序列。如果發(fā)送L組信息比特,那么對于(n,k)卷積碼來說,可能發(fā)送的序列有2kL個,計算機或譯碼器需存儲這些序列并進行比較,以找到碼距最小的那個序列。當傳信率和信息組數L較大時,使得譯碼器難以實現。維特比算法則對上述概率譯碼

6、做了簡化,以至成為了一種實用化的概率算法。它并不是在網格圖上一次比較所有可能的2kL條路徑(序列),而是接收一段,計算和比較一段,選擇一段最大似然可能的碼段,從而達到整個碼序列是一個最大似然值得序列。下面以圖2-3的(2,1,3)卷積碼編碼器所編出的碼為例,來說明維特比解碼的方法和運作過程。為了能說明解碼過程,這里給出該碼的狀態(tài)圖。維特比譯碼需要利用圖2-3來說明移碼過程mjmj-1mj-2輸出序列m1,m2,mj,y1jy2j輸入序列00adcb110011010110 圖2-3 卷積碼編碼器圖2-4 (2,1,3)卷積碼 根據卷積碼畫網格的方法,我們可以畫出該碼的網格圖,如圖2-5所示。該

7、圖設輸入信息數目L=5,所以畫L+N=8個時間單位,圖中分別標以0至7。這里設編碼器從a狀態(tài)開始運作。該網格圖的每一條路徑都對應著不同的輸入信息序列。由于所有可能輸入信息序列共有2kL個,因而網格圖中所有可能的路徑也為2kL條。這里節(jié)點a=00,b=01,c=10,d=11。abcd節(jié)點號0123456700000000000000111111111111111100000101010101010101010101111110101010圖2-5 卷積碼網格圖設輸入編碼器的信息序列為(11011000),則由編碼器對應輸出的序列為Y=(1101010001011100),編碼器的狀態(tài)轉移路線為

8、abdcbdca。若收到的序列R=(0101011001011100),對照網格圖來說明維特比譯碼的方法。由于該卷積碼的約束長度為6位,因此先選擇接收序列的前6位序列R1=(010101)同到達第3時刻的可能的8個碼序列(即8條路徑)進行比較,并計算出碼距。該例中到達第3時刻a點的路徑序列是(000000)和(111011),他們與R1的距離分別為3和4;到達第3時刻b點的路徑序列是(000011)和(111000),他們與R1的距離分別為3和4;到達第3時刻c點的路徑序列是(001110)和(110101),他們與R1的距離分別為4和1;到達第3時刻d點的路徑序列是(001101)和(110

9、110),他們與R1的距離分別為2和3。上述每個節(jié)點都保留碼距較小的路徑作為幸存路徑,所以幸存路徑碼序列是(000000)、(000011)、(1101001)和(001101),如圖1-6所示。用于上面類似的方法可以得到第4、5、6、7時刻的幸存路徑。abcd節(jié)點號0123000000111111010101 圖2-6 維特比譯碼第3時刻幸存路徑需要指出的是,對于某個節(jié)點,如果比較兩條路徑與接收序列的累計碼距值相等時,則可以任意選者一條路徑作為幸存路徑,吃時不會影響最終的譯碼結果。在碼的終了時刻a狀態(tài),得到一條幸存路徑。abcd節(jié)點號0123110101456780001011100圖2-7

10、 第8時刻幸存路徑如圖2-7所示。由此可看到譯碼器輸出是R=(1101010001011100),即可變換成序列(11011000),恢復了發(fā)端原始信息。比較R和R序列,可以看到在譯碼過程中已糾正了在碼序列第1和第7位上的差錯。當然如果差錯出現太頻繁,以致超出卷積碼的糾錯能力,還是會發(fā)生糾誤的。3 Matlab中卷積碼編碼器和譯碼器的設計與仿真3.1 Matlab/Simulink卷積編碼譯碼系統總圖介紹 圖3-1 系統總圖 如圖2-1所示本設計是采用二進制伯努利產生器產生一一段隨機二進制序列作為簡單的信源,通過卷積編碼器后得到編碼后的信號送到二進制對稱的信道,然后送入維特比譯碼器模塊對卷積進

11、行譯碼。為衡量解碼的正確性在譯碼器后加一誤碼率計算模塊并在Display模塊中顯示出來,并且用示波器觀測信源、信源編碼后、解碼后的三個波形。3.2 各模塊參數設計(1)信源模塊圖3-2 bernoulli binary generator參數設置將二進制伯努利產生器中probably of zero 零的概率設為0.5,sample time抽樣時間設為0.01秒(2)卷積編碼模塊圖3-3Convolutional Encoder模塊圖3-4Convolutional Encoder參數設置如上圖2-4是卷積編碼器模塊的設置框圖。其中Trellis structure( Trellis結構)中

12、通過poly2trellis()函數把卷積碼的約束長度,生成多項式以及反饋多項式轉換成Trellis結構的形式。如上面是(2,1,3)卷積碼的參數設置。(3,6,7)說明約束長度是3,生成多項式是(八進制)6和7,無反饋多項式。選擇continuous模式(3)BSC信道 圖3-5二進制對稱信道模塊(4)卷積譯碼模塊 圖3-6Verterbi譯碼模塊 圖3-7Viterbi Decoder參數設置如上圖3-7是卷積碼譯碼器模塊的設置框圖。Trellis structure: Trellis結構(前面已說明)。Decision type是指判決類型,有3種:(1)Unquantized(非量化)

13、(2)Hard Decision(硬判決),(3)Soft Decision(軟判決) Traceback depth表示反饋深度。它的值會影響譯碼精度和解碼延遲。Operation mode是指操作模式。在Truncated模式下,解碼器在每幀數據結束的時候總能恢復到全0狀態(tài),它與卷積編碼器的on each frame復位方式相對應。其中需要注意的是要講碼數結構改成與編碼器相同,Decision type選擇Hard decision,回溯長度為6故Traceback depth設為6 (5)誤碼統計模塊圖3-8 Error Rate Calculation參數設置其中接收延時設置為6秒(與

14、回溯長度相同),計算延時設為0,計算區(qū)域為整個波形,輸出數據選擇到port上(6)示波器參數設置在得到譯碼信號后,為了直接觀察譯碼后的信號是否正確需用示波器觀察,由于本系統中是用一個示波器觀測三路信號,故如下設置示波器參數圖 3 -9 示波器參數設置(7)數據選擇開關模塊圖3-10數據線選擇開關參數設置3.3 Matlab/Simulink卷積編碼譯碼系統仿真圖(1) 無差錯率時仿真圖形各模塊參數設置好后,點擊窗口上方Simulink-start檢查無錯誤后即可在示波器上觀看波形,為方便看出仿真是否正確本次仿真時間設為20秒,抽樣時間改為0.1。BSC信道中差錯率設為0圖3-11差錯率為0時卷

15、積編碼輸入,維特比譯碼輸出第一路為伯努利信源隨機信源信號,第二路為卷積編碼后信號,第三路為卷積譯碼后信號。觀察到第一路與第三路信號完全相同,只是有一小段時間的延時,故可得出結論此次仿真成功。(2)差錯率設為0.1時仿真圖形圖3-12差錯率為0.1時卷積編碼輸入譯碼輸出由圖3-12看出仿真時間在6-8秒之間出現了一小段誤碼3.4 Matlab中卷積碼差錯率誤碼率分析編制M文件wumalu.m使wmalu.m在不同差錯率條件下重復執(zhí)行前面建立的項目liujun.mdl,改變仿真時間為200s,抽樣時間改為0.01s,然后繪制信道的差錯率與編碼信號誤碼率之間的關系曲線圖。M文件代碼如下:x=0:0.

16、01:0.1; %x表示信道差錯率 y=x; %重復運行scopea.mdl,檢驗不同條件下的譯碼性能for n=1:length(x) %信道的差錯率依次取x中的元素 errB=x(n) sim('liujun') y(n)=mean(Errorrate)'endplot(x,y) 圖3.13差錯率誤碼率曲線 由圖3.13差錯率誤碼率關系曲線可以看出,隨著差錯率的升高,誤碼率也逐漸升高,信道的可信度降低且誤碼率小于信道差錯率,這說明卷積編碼使信道的差錯率得到了一定的改善4 結束語通過本次的課程設計是我第一次對專業(yè)理論知識的一次實踐,這兩個星期的實踐使我對整個通信系統的

17、結構以及原理有了更深層次的理解,了解到一個完整的通信系統必須經過調制、編碼、解調、譯碼過程。在此過程中我也充分意識到matlab的強大功能以及掌握它的使用方法的必要性。 接下來我總結一下此次課程設計中我遇到的問題及疑惑 (1)設計中要用到的Simulink仿真軟件是我第一次接觸,所以剛接到題目時無從下手,后來通過上網和借助圖書館的書籍,學習這門新的軟件,學習過程中遇到很多困難,但通過自己的努力和老師的幫助,最終掌握了仿真的基本方法。(2)由于面臨考試的問題,和此次設計工作的時間安排上有一定的沖突。為了順利完成設計工作,老師安排了每周的工作量和所要達到的目標,自己也制定了相應的時間表,以求更充分的利用時間。(3)剛開始在設計的步驟和方法上比較混亂,如構造系統模塊總圖時一次性將所有模塊添加到模塊文件中,最后檢錯時發(fā)現錯誤不知道從何改起,后來經過請教老師及同學了解到必須一個個模塊設計參數后

溫馨提示

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

評論

0/150

提交評論