




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、 基于Matlab的卷積碼譯碼器的設計與仿真學生姓名: 指導老師:*摘 要 本課程設計主要解決對一個卷積碼序列進行維特比(Viterbi)譯碼輸出,并通過Matlab軟件進行設計與仿真,并進行誤碼率分析。在課程設計中,系統(tǒng)開發(fā)平臺為Windows Vista Ultimate,程序設計與仿真均采用Matlab R2007a(7.4),最后仿真詳單與理論分析一致。關鍵詞 課程設計;卷積碼譯碼器;Matlab;Simulink;設計與仿真1 引 言本課程設計主要解決對一個卷積碼序列進行維特比(Viterbi)譯碼輸出,并通過Matlab軟件進行設計與仿真。卷積碼的譯碼有兩種方法軟判決和硬判決,此課
2、程設計采用硬判決的維特比譯碼。1.1 課程設計目的卷積碼是一種向前糾錯控制編碼。它將連續(xù)的信息比特序列映射為連續(xù)的編碼器輸出符號。這種映射是高度結構化的,使得卷積碼的譯碼方法與分組碼譯碼所采用的方法完全不同??梢则炞C的是在同樣復雜度情況下,卷積碼的編碼增益要大于分組碼的編碼增益。對于某個特定的應用,采用分組編碼還是采用卷積編碼哪一種更好則取決于這一應用的具體情況和進行比較時可用的技術1。本課程設計便是通過Matlab設計一個硬判決維特比譯碼輸出的完整電路,并進行誤碼率分析。1.2 課程設計的原理卷積碼,又稱連環(huán)碼,是由伊萊亞斯(P.elias)于1955年提出來的一種非分組碼。卷積編碼的最佳譯
3、碼準則為:在給定已知編碼結構、信道特性和接收序列的情況下,譯碼器將把與已經(jīng)發(fā)送的序列最相似的序列作為傳送的碼字序列的估值。對于二進制對稱信道,最相似傳送序列就是在漢明距離上與接收序列最近的序列。卷積碼的譯碼方法有兩大類:一類是大數(shù)邏輯譯碼,又稱門限譯碼(硬判決,編者注);另一種是概率譯碼(軟判決,編者注),概率譯碼又分為維特比譯碼和序列譯碼兩種。門限譯碼方法是以分組碼理論為基礎的,其譯碼設備簡單,速度快,但其誤碼性能要比概率譯碼法差2。當卷積碼的約束長度不太大時,與序列譯碼相比,維特比譯碼器比較簡單,計算速度快。維特比譯碼算法是1967年由Viterbi提出,近年來有大的發(fā)展。目前在數(shù)字通信的
4、前向糾錯系統(tǒng)中用的較多,而且在衛(wèi)星深空通信中應用更多,該算法在衛(wèi)星通信中已被采用作為標準技術。2 維特比譯碼原理采用概率譯碼的基本思想是:把已接收序列與所有可能的發(fā)送序列做比較,選擇其中碼距最小的一個序列作為發(fā)送序列。如果發(fā)送L組信息比特,那么對于(n,k)卷積碼來說,可能發(fā)送的序列有2kL個,計算機或譯碼器需存儲這些序列并進行比較,以找到碼距最小的那個序列。當傳信率和信息組數(shù)L較大時,使得譯碼器難以實現(xiàn)。維特比算法則對上述概率譯碼做了簡化,以至成為了一種實用化的概率算法。它并不是在網(wǎng)格圖上一次比較所有可能的2kL條路徑(序列),而是接收一段,計算和比較一段,選擇一段最大似然可能的碼段,從而達
5、到整個碼序列是一個最大似然值得序列。下面以圖2.1的(2,1,3)卷積碼編碼器所編出的碼為例,來說明維特比解碼的方法和運作過程。為了能說明解碼過程,這里給出該碼的狀態(tài)圖,如圖2.2所 mjmj-1mj-2輸出序列m1,m2,mj,y1jy2j輸入序列00adcb110011010110圖2.2 (2,1,3)卷積碼狀態(tài)圖圖2.1 (2,1,3)卷積碼編碼器示。維特比譯碼需要利用圖來說明移碼過程。根據(jù)卷積碼畫網(wǎng)格的方法,我們可以畫出該碼的網(wǎng)格圖,如圖2.3所示。該圖設輸入信息數(shù)目L=5,所以畫L+N=8個時間單位,圖中分別標以0至7。這里設編碼器從a狀態(tài)開始運作。該網(wǎng)格圖的每一條路徑都對應著不同
6、的輸入信息序列。由于所有可能輸入信息序列共有2kL個,因而網(wǎng)格圖中所有可能的路徑也為2kL條。這里節(jié)點a=00,b=01,c=10,d=11。abcd節(jié)點號0123456700000000000000111111111111111100000101010101010101010101111110101010圖2.3 (2,1,3)卷積碼網(wǎng)格圖設輸入編碼器的信息序列為(11011000),則由編碼器對應輸出的序列為Y=(1101010001011100),編碼器的狀態(tài)轉移路線為abdcbdca。若收到的序列R=(0101011001011100),對照網(wǎng)格圖來說明維特比譯碼的方法。由于該卷積碼的
7、約束長度為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)和(110110),他們與R1的距離分別為2和3。上述每個節(jié)點都保留碼距較小的路徑作為幸存路徑,所以幸存路徑碼序列是(000000
8、)、(000011)、(1101001)和(001101),如圖2.4所示。用于上面類似的方法可以得到第4、5、6、7時刻的幸存路徑。abcd節(jié)點號0123000000111111010101圖2.4 維特比譯碼第3時刻幸存路徑需要指出的是,對于某個節(jié)點,如果比較兩條路徑與接收序列的累計碼距值相等時,則可以任意選者一條路徑作為幸存路徑,吃時不會影響最終的譯碼結果。在碼的終了時刻a狀態(tài),得到一條幸存路徑。如果2.5所示。由此可看到譯碼器abcd節(jié)點號0123110101456780001011100圖2.5 第8時刻幸存路徑輸出是R=(1101010001011100),即可變換成序列(1101
9、1000),恢復了發(fā)端原始信息。比較R和R序列,可以看到在譯碼過程中已糾正了在碼序列第1和第7位上的差錯。當然如果差錯出現(xiàn)太頻繁,以致超出卷積碼的糾錯能力,還是會發(fā)生糾誤的。3 Matlab中卷積碼譯碼器的設計與仿真3.1 Matlab維特比譯碼器模塊介紹在Matlab軟件的Simulink組件庫中包含有的兩種卷積碼譯碼模塊,即后驗概率卷積譯碼器和維特比譯碼器。圖3.1,圖3.2所示是維特比譯碼器參數(shù)設置對話框和模塊,它通過維特比譯碼還原出二進制信號序列。圖3.1 維特比譯碼器參數(shù)設置圖3.2 維特比譯碼器模塊如果卷積編碼器的輸入長度為k,輸出信號的長度為n,則維特比譯碼器的輸入好輸出信號長度
10、分別是n和k的整數(shù)倍。維特比譯碼器模塊主要有以下幾個參數(shù):(1)Trellis structure(Trellis結構)與維特比一冒起相對應的卷積編碼器的Trellis結構。它既可以是Matlab工作區(qū)中的一個Trellis變量,也可以是通過poly2trellis()函數(shù)產(chǎn)生的Trellis結構。(2)Decision Type(判決類型)維特比譯碼器德判決類型有3種:Unquantized(非量化)、Hard Decision(硬判決)和Soft Decision(軟判決),如表3.1所示。表3.1維特比譯碼器的判決類型判決類型解碼器的輸出類型說明Unquantized實數(shù)+1表示邏輯0;
11、-1表示邏輯1Hard Decision0, 10表示邏輯0;1表示邏輯1Soft Decision介于0和2b-1之間的整數(shù),其中b是軟判決位的個數(shù)0表示具有取值為0的最大概率;2b-1表示具有取值為1的最大概率;介于兩者之間的數(shù)表示取0和1的相對概率。(3)Number of soft decision bits(軟判決的個數(shù))當Decision type設置為Soft Decision時,本參數(shù)有效,并且當它的取值為b時,維特比譯碼器的輸出是介于0和2b-1之間的一個整數(shù)。(4)Traceback depth(反饋深度)反饋深度D影響著維特比譯碼的精度,同時也影響著解碼的時延(即在輸出第
12、一個解碼數(shù)據(jù)之前輸出的0的個數(shù))。(5)Operation mode(操作模式)維特比譯碼器有3種操作模式:Continuous、Terminated或Truncated。如果維特比譯碼器德輸出信號是抽樣信號,則應該把本參數(shù)設置為Continuous模式;當輸入信號時幀數(shù)據(jù)時,操作模式可以是Continuous、Terminated或Truncated。對于Continuous模式,維特比譯碼器在每幀數(shù)據(jù)結束時保存譯碼器的內(nèi)部狀態(tài),用于對下一幀實施解碼;在Truncated模式下,解碼器在每幀數(shù)據(jù)結束的時候總能恢復到全零狀態(tài),它對應于卷積編碼器的On each frame復位方式;Termin
13、ated模式適用于卷積編碼器的每幀輸入信號的末尾有足夠多的零,能夠把卷積編碼器在完成一幀數(shù)據(jù)的編碼之后把內(nèi)部狀態(tài)恢復為0。(6)Enable rest input port(啟用復位信號端口)當Operation mode參數(shù)設置為Continuous并且選中了本選項前面的復選框之后,維特比譯碼器增加一個輸出信號端口Rst。同時當Rst的輸入信號不等于0時,維特比譯碼器復位到初始狀態(tài)。33.2 Matlab中卷積碼維特比譯碼器的設計整個設計的結構框圖如圖3.3圖3.3 整體設計結構模塊框圖信源模塊噪聲信道信宿模塊信號編譯碼器約定參數(shù)信號信號可見,本設計由3個子系統(tǒng)組成:信源模塊對隨機二進制信號
14、進行卷積碼和二進制相位調(diào)制,輸出基帶調(diào)制信號;信道模塊是一個有噪聲信道;信宿模塊對調(diào)制信號進行軟判決譯碼,得到原始信息序列,并且計算調(diào)制信號的誤碼率。信源模塊由貝努利二進制序列產(chǎn)生器、卷積碼編碼器以及二進制相位調(diào)制3個模塊組成,如圖3.4所示 圖3.4 信源模塊系統(tǒng)框圖各個模塊的參數(shù)設置分別如表3.2表3.4所示。表3.2 Bernoulli Binary Generator(貝努利二進制序列產(chǎn)生器)的參數(shù)設置參數(shù)名稱參數(shù)值模塊類型Bernoulli Binary GeneratorProbability of zero0.5Initial seed25741Sample time0.0001
15、Frame-based outputCheckedSamples per frame10000表3.3 Convolutional Encoder(卷積碼編碼器)的參數(shù)設置參數(shù)名稱參數(shù)值模塊類型Convolutional EncoderTrellisPoly2trellis(7,171 133)ResetOn each frame表3.4 BPSK Modulator Baseband(二進制相位調(diào)制模塊)的參數(shù)設置參數(shù)名稱參數(shù)值模塊類型BPSK Modulator BasebandPhase offset(rad)0Samples per symbol1本設計使用相對較簡單的一個加性高斯白噪
16、聲信道作為噪聲信道,它在二進制相位調(diào)制信號中疊加高斯白噪聲。加性高斯白噪聲模塊的參數(shù)設置如表3.5。表3.5 AWGN Channel(加性高斯白噪聲模塊)的參數(shù)設置參數(shù)名稱參數(shù)值模塊類型AWGN ChannelInitial seed1237ModeSignal to noise ratio(SNR)SNR(dB)SNRInput signal power(watts)1信道模塊如下圖3.6所示。圖3.6 信道模塊示意圖信宿模塊在接收到二進制相位調(diào)制信號后,首先由BPSK Demodulator Baseband (二進制相位解調(diào)模塊)對信號進行量化,得到硬判決量化信號,然后通過Viterb
17、i Decoder(維特比譯碼器)對軟判決信號實施譯碼。譯碼輸出信號和信源模塊產(chǎn)生的原始信號輸入到Error Rate Calculator(誤比特率統(tǒng)計模塊)中,統(tǒng)計得到的數(shù)據(jù)一方面通過Display(顯示模塊)顯示出來,另一方面通過一個Selector(選擇器)把其中的第一個元素(即編碼信號的誤比特率)保存到工作區(qū)變量BitErrorRate中。信宿模塊如下圖3.7所示。圖3.7 信宿模塊Sink各關鍵模塊參數(shù)設置如表3.7、表3.8所示。表3.7 BPSK Demodulator Baseband(二進制相位解調(diào)模塊)的參數(shù)設置參數(shù)名稱參數(shù)值模塊類型BPSK Demodulator Ba
18、sebandPhase offset(rad)0Decision typeHard decisionOutput data typeInherit via internal rule表3.7 Viterbi Decoder(維特比譯碼器)的參數(shù)設置參數(shù)名稱參數(shù)值模塊類型Viterbi DecoderTrellis structurepoly2trellis(7, 171 133)Decision typeHard decisionTreceback depth1000Operation modeTruncated將此完整設計保存,命名為convh.mdl。3.3簡化維特比譯碼器的仿真為了驗證譯
19、碼模塊的正確性,便讓其進行最簡模式運行,為此,臨時設計一個簡化信號系統(tǒng),關閉信道噪聲,不進行二進制相位的調(diào)制與解調(diào),去掉誤比特率統(tǒng)計模塊。為了能看到輸入二進制碼和譯碼輸出二進制碼,增加了兩個To Workspace(結果輸入到工作區(qū)模塊),整個系統(tǒng)模塊框圖如圖3.8所示。圖3.8 簡化譯碼模塊框圖同時,為了便于觀察,將Bernoulli Binary Generator(貝努利二進制序列產(chǎn)生器)的參數(shù)設置為如表3.8所示,以產(chǎn)生簡單的15位二進制隨機碼,也將Viterbi Decoder的Trceback depth值改為5。將To Workspace1模塊和To Workspace模塊的變量
20、名分別設置為pdata和data。表3.8 簡化譯碼模塊的Bernoulli Binary Generator的參數(shù)設置參數(shù)名稱參數(shù)值模塊類型Bernoulli Binary GeneratorProbability of zero0.5Initial seed5Sample time10Frame-based outputCheckedSamples per frame5運行仿真(),在matlab的命令窗口中輸入pdata和data分別得到相應的二進制序列。對所得序列分別截圖,可得如圖3.9所示結果??梢?,譯碼器能夠正確進行譯碼,所設計簡化譯碼器正確,因而,從理論上可推導,原設計正確。圖3
21、.9 簡化譯碼器仿真結果通過對convh.mdl文件進行仿真,證明設計正確,但因所得二進制碼太多,此處便不進行截圖證明。4 Matlab中卷積碼譯碼器的誤碼率分析編制M文件convolutionh.m,使convh.mdl在不同的信噪比條件下重復執(zhí)行前面建立的項目convh.mdl。然后繪制信道的信噪比與編碼信號誤比特率之間的關系曲線圖。M文件代碼如下:%x表示信噪比x=-10:5;%y表示信號的誤比特率y=x;%準備一個空白圖形hold off;%重復運行convh.mdl,檢驗不同條件下硬判決譯碼的性能 for i=1:length(x) %信道的信噪比依次取x中的元素 SNR=x(i);
22、 %運行仿真程序,得到的誤比特率保存在工作區(qū)變量BitErrorRate中 sim('convh'); %計算BitErrorRate的均值作為本次仿真的誤比特率 y(i)=mean(BitErrorRate); end%繪制x和y的關系曲線圖,縱坐標采用對數(shù)坐標semilogy(x,y);%保持已經(jīng)繪制的圖形hold on執(zhí)行此M文件,得到如圖4.1所示的關系曲線圖,由此圖可見,隨著信道信噪比的提升,維特比譯碼所得結果的誤比特率越低,信道的可信度越高,信噪比在大于-2時信道的誤碼率開始明顯降低。圖4.1 convolutionh.m運行結果5 結束語此課程設計對整個通信系統(tǒng)包含的編碼、傳輸和譯碼都進行了設計與仿真,從這些過程中我們看到了通信系統(tǒng)的基本工作原理。通過整個卷積碼系統(tǒng)的設計與仿真,使我們加深了對卷積碼的理解,掌握維特比譯碼的基本思路,知道如何進行誤碼率分析從而選者合適的信道傳輸信號,更重要的是學會了使用Matlab作為學習工具來對
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年中國防火門行業(yè)發(fā)展策略規(guī)劃分析報告
- 2025-2030年中國鉆機電控系統(tǒng)市場十三五規(guī)劃與發(fā)展策略研究報告
- 2025-2030年中國訓練健身器材行業(yè)需求現(xiàn)狀及發(fā)展趨勢分析報告
- 2025-2030年中國組合電器產(chǎn)業(yè)發(fā)展趨勢及前景調(diào)研分析報告
- 武漢體育學院《機制設計理論及應用》2023-2024學年第二學期期末試卷
- 鄂爾多斯職業(yè)學院《功能表面設計》2023-2024學年第二學期期末試卷
- 大同師范高等專科學?!堆芯啃詫W習指導與管理》2023-2024學年第二學期期末試卷
- 合肥職業(yè)技術學院《社會企業(yè)》2023-2024學年第二學期期末試卷
- 新版統(tǒng)編版一年級道德與法治下冊全冊教案(完整版)教學設計含教學反思
- 城市開放空間-課件
- 2025年春季學期學校德育工作計劃安排表(完整版)
- 湖南2024年湖南省水利廳所屬事業(yè)單位招聘57人筆試歷年參考題庫附帶答案詳解
- 2025年全球及中國調(diào)頻儲能行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2024年加氫站技術規(guī)范
- 《幼兒教育政策與法規(guī)》教案-單元4 幼兒園的保育和教育
- 小學思政培訓
- 《森林火災預防與撲救技術課件教程》
- 2025年度會計人員繼續(xù)教育會計法律法規(guī)答題活動測試100題答案
- 第15課 人機對話的實現(xiàn) 說課稿 六上信息科技浙教版(2023)001
評論
0/150
提交評論