




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、摘 要 本課程設計主要解決信源編碼和信道編碼中的卷積碼的數字調制,信源輸出的模擬信號要轉換成數字信號,就需要對信源信道進行編碼譯碼操作,并通過Simulink軟件進行設計與仿真,進行誤碼率分析。卷積碼是一種性能優越的信道編碼。它的編碼器和譯碼器都比較容易實現,同時它具有較強的糾錯能力。隨著糾錯編碼理論研究的不斷深入,卷積碼的實際應用越來越廣泛。本文簡明地介紹了卷積碼的編碼原理和譯碼原理。并在SIMULINK模塊設計中,完成了對卷積碼的編碼和譯碼以及誤比特統計整個過程的模塊仿真。最后,通過在仿真過程中分別改變卷積碼的重要參數來加深理解卷積碼的這些參數對卷積碼的誤碼性能的影響。經過仿真和實測,并對
2、測試結果作了分析。得出了以下三個結論: (1)當改變卷積碼的碼率時,系統的誤碼性能也將隨之發生變化。 (2)對于碼率一定的卷積碼,當約束長度N 發生變化時,系統的誤碼性能也會隨之發生變化。 (3)回溯長度也會不同程度上地影響誤碼性能。關鍵詞 : 編譯碼器;simulink;設計與仿真 卷積碼;碼率ABSTRACTThis course is designed to solve source coding and channel coding convolutional codes in the digital modulation, the source output analog signa
3、ls into digital signals to be converted to the need for the source and channel coding and decoding operations, and through the Simulink software design and simulation, and the bit error rate analysis. Convolutional code is a superior performance of channel coding. Its encoder and decoder are relativ
4、ely easy to implement, and it has a strong error correction capability. Error-correcting coding theory research with the deepening of the practical application of convolutional codes more widely. This concise introduction to the principles of convolutional coding and decoding principles. SIMULINK mo
5、dule in the design, completed the coding and decoding convolutional code and bit error statistics of the whole process simulation module. Finally, changes in the simulation process of convolutional codes, respectively, to deepen our understanding of the important parameters of these parameters on co
6、nvolutional codes convolutional codes error performance. The simulation and measurement, and test results are analyzed. Reached the following three conclusions: (1) When the change rate convolutional code, the system error performance will subsequently change. (2) For a certain rate convolutional co
7、des, when the constraint length N changes, the system BER performance also will be changed. (3) back length will be affected to varying degrees, error performance. Keywords: codec; simulink;design and simulation of convolutional code目 錄第1章 引言11.1 課題背景11.2 國內外研究現狀11.3 本課題的意義11.4 本課題的研究方法2第2章 MATLAB組件
8、介紹及通信系統概述32.1 MATLAB與通信仿真的發展現狀及應用32.2 通信系統概述與組成32.3 通信仿真42.4 Simulink仿真及工作原理6第3章 信源編碼83.1 A律律編碼特性83.1.1 A律編碼83.1.2 律編碼83.1.3 A律13折線93.2 A律、律的特性比較11第4章 信道編碼及譯碼154.1 卷積碼的概念介紹154.2 卷積碼的編碼過程介紹154.3 卷積碼譯碼過程的概述164.4 卷積碼的最大似然譯碼194.5 輸入與同步單元21第5章 卷積碼的仿真225.1 Simulink仿真模塊的參數設置以及重要參數的意義225.2 簡化維特比譯碼器的仿真26第6章
9、卷積碼譯碼器的誤碼率分析286.1信噪比與誤碼率的關系286.2.不同回溯長度對卷積碼性能的影響296.3 不同碼率對卷積碼誤碼性能的響316.4 不同約束長度對卷積碼的誤碼性能影響32第7章 結論35參考文獻36致 謝37第1章 引言1.1 課題背景隨著現代通信的發展,高速信息傳輸和高可靠性傳輸成為信息傳輸的兩個主要方面,而可靠性尤其重要。A律編碼、律編碼以及卷積碼以其高速性和可靠性在實際應用中越來越廣泛。其中1967年Viterbi譯碼算法的提出,使卷積碼成為信道編碼中最重要的編碼方式之一1。1.2 國內外研究現狀在對A律、律研究中,隨著數字化技術的發展,逐步形成了使用折現分段近似壓擴特性
10、的方法,這類方法簡單且準確,因而獲得了廣泛的應用,并被采納為相應的國際建議。而在對卷積碼的研究中,其中編碼器較簡單,模式也很統一。主要是研究提高卷積碼的譯碼速度和可靠度。譯碼算法中最重要的卷積碼的Viterbi算法問世以來,軟件仿真和實現都得到了迅速發展。目前,利用計算機仿真Viterbi算法,模擬在各種不同情況下卷積編碼時的譯碼性能,尋找Viterbi算法的最佳適用信道和不同要求(如誤碼率)下最優編碼。1.3 本課題的意義在信源編碼中,隨著數字化技術的發展,逐步形成了使用折現分段近似壓擴特性的方法,這類方法簡單且準確,因而獲得了廣泛的應用,并被采納為相應的國際建議。在卷積碼中,因為Viter
11、bi算法效率高,速度快,結構相對簡單等特點,被廣泛應用于各種數據傳輸系統。在現代信息處理系統中,需要處理的信息量越來越大,實時性要求越來越高。為減少對主處理器各種資源的占用,要求通信模塊方面的大部分工作能獨立完成。因此采用Viterbi譯碼算法具有非常現實的意義。1.4 本課題的研究方法本文通過基于MATLAB的SIMULINK下的模塊對A律和律碼以及卷積編碼,解碼進行仿真。通過仿真可以更清楚的認識到卷積碼的編碼,解碼的各個環節,并對仿真結果進行了分析。得出卷積碼Viterbi譯碼的誤比特性能和回溯長度,碼率,約束長度的關系。第2章 MATLAB組件介紹及通信系統概述2.1 MATLAB與通信
12、仿真的發展現狀及應用MATLAB是由美國的Math Works 公司推出的一種科學計算和工程仿真軟件,它的名字院子Matrix Laboratory,專門以矩陣的形式處理數據。MATLAB將高性能的科學計算、結果可視化和編程集中在一個易于操作的環境中,并提供大量的內置函數,具有強大的矩陣計算和繪畫功能,是用于科學計算、控制系統、信息處理等領域分析、仿真和設計工作。目前,在世界范圍內被科研工作者、工程技術人員和院校師生廣泛應用。Simulink是MATLAB中的一種可視化仿真工具,廣泛應用于線性系統、數字控制、非線性系統以及數字信號處理的建模和仿真中。Simulink采用模塊化建模方式,每個模塊
13、都有自己的輸入/輸出端口,實現其功能5。 本課題能避開硬件系統的不足,巧妙的運用軟件來仿真硬件才能實現的實驗結果,大大降低了實驗設備要求,節約了人力和財力,而且有很多的庫函數可以在實驗時直接調用,避免了用硬件做實驗的局限性。可以更方便的做信號系統實驗,為教學和研究提供了方便。還能夠鍛煉一個人在面對一個具體的項目時,遇到問題,分析問題,解決問題的能力;獲得獨立策劃、實施課題,并按照既定計劃進行開發的經驗,以及查找相關文獻的能力。通過自己的努力使得對于Matlab有一個全面的、深刻的認識,并且對Matlab做界面的軟件有了一定的了解,對系統規劃有了初步的認識。為以后研發工作打下堅實的基礎,積累寶貴
14、的經驗。 2.2 通信系統概述與組成通信系統(Communication System)是用以完成信息傳輸過程的技術系統的總稱?,F代通信系統主要借助電磁波在自由空間的傳播或導引媒體中的傳輸機理來實現,前者成為無線通信系統,后者成為有線通信系統。由于人們對通信容量要求越來越高,對通信的業務要求越來越多樣化,所以通信系統正迅速向著寬帶化方向發展,而光纖通信系統將在通信網中發揮越來越重要的作用2。通信是將信息從發信者傳遞給在另外一個時空點的收信者。通信流程可用下圖2-1所示基本模型圖來表示。整個流程是由信源、發送設備、信道(或傳輸媒質)、接收設備和收信者(信宿)五部分組成。 圖2-1 通信系統的基本
15、模型(1) 信源信源是信息的產生者或信息的形成者。根據信源所產生信號的性質不同,可分為模擬信源和離散信源。(2)發送設備發送設備的基本功能是將信源和傳輸媒介匹配起來,即將信源產生的消息信號變換為有利于傳送的信號形式送往傳輸媒介。(3)信道信道是指信號傳輸的媒介,信號是經過信道傳送到接收設備的。在信號傳輸過程中,必然會引入發送設備、接收設備和傳輸媒介的熱噪聲和各種干擾和衰減,及信號在信道中傳輸時,會產生信道噪聲。(4)接收設備接收設備的主要作用是將來自信道的帶有干擾的發送信號加以處理,并從中提取原始信息,完成發送變換過程的逆變換解調和譯碼。(5)信宿信宿是將復原的原始信號轉換成相應的消息。2.3
16、 通信仿真通信仿真是衡量通信系統性能的工具。實際的通信系統是一個功能結構相當復雜的系統,對這個系統作出的任何改變都可能影響到整個系統的性能和穩定。因此,在對原有的通信系統作出改進或建立一個新系統之前,通常對這個系統進行建模和仿真,通過仿真結果衡量方案的可行性,從中選擇最合理的系統配置和參數設置,然后在應用到實際系統中,這個過程就叫通信仿真2。通信系統仿真一般分為3個步驟,即仿真建模、仿真實驗、仿真分析。由于仿真過程是一個螺旋式發展的過程,因此,這3個步驟可能需要循環執行多次之后才能夠獲得令人滿意的仿真結果。(1)仿真建模仿真建模是根據實際通信系統建立仿真模型,它是整個通信仿真過程中的一個關鍵步
17、驟,因為仿真模型的好壞直接影響著仿真的結果以及仿真結構的真實性和可靠性。仿真模型是對實際系統的一種模擬和抽象。過于簡單的仿真模型會忽略實際系統的細節,在一定程度上會影響仿真結果的可靠性。但過于復雜的仿真模型會產生很多相互因素,從而大大延長仿真時間和增加仿真結果分析的復雜度。因此,仿真模型的建立需要綜合考慮其可行性和簡單性。在仿真建模過程中,可以先建立一個相對簡單的仿真模型,然后再根據仿真結果和仿真過程的需要逐步增加仿真模型的復雜度。在仿真建模過程中,首先需要分析實際系統存在的問題或設立系統改造的目標,并把這些問題和目標轉化成數學變量和公式。確定了方針目標后,下一步是獲取實際通信系統的各種運行參
18、數。在以上工作準備好仿真模型后,就是仿真軟件的選擇了,使用仿真軟件建立好模型后,仿真建模的這一步驟就基本完成了。(2)仿真實驗仿真實驗是一個或一系列針對仿真模型的測試。在仿真實驗過程中,通常需要多次改變仿真模型輸入信號的數值,以觀察和分析仿真模型對這些輸入信號的反應,以及仿真系統在這個過程中表現出來的性能。在明確了仿真系統對輸入/輸出信號的要求之后,最好把這些設置整理成一份簡單的文檔。(3)仿真分析仿真分析是一個通信仿真流程的最后一個步驟。在仿真過程中,用戶已經從仿真過程中獲得了足夠多的關于系統性能的消息,但是這些信息只是一些原始數據,一般還需要經過數值分析和處理才能獲得衡量系統性能的尺度,從
19、而獲得對仿真性能的一個總體評價。仿真分析并不一定意味著通信仿真過程的完全結束。如果仿真分析得到的結果打不到預期的目標,用戶還需要重新修改通信仿真模型,這時候仿真分析就成為了一個新的循環的開始2.4 Simulink仿真及工作原理Simulink是MATLAB提供的用于對動態系統進行建模、仿真和分析的工具包。Simulink提供了專門用于顯示輸出信號的模塊,可以在仿真過程中隨時觀察仿真結果。同時,通過Simulink的存儲模塊,仿真數據可以方便地以各種形式保存到工作空間或文件中,以供用戶在仿真結束后對數據進行分析和處理。另外Simulink把具有等級結構的子系統,因此具有內在的模塊化設計要求?;?/p>
20、于以上優點,Simulink作為一種通用的仿真建模工具,廣泛用于通信仿真、數字信號處理、機械控制和虛擬現實等領域中2。作為一款專業仿真軟件,Simulink具有以下特點:·基于矩陣的數值計算;·高級編程語言已經可視化的圖形操作界面;·包含各領域的仿真工具箱,使用方便快捷并可以擴展;·豐富數據的I/O接口;·提供與其他高級語言的接口;·支持多平臺(PC/UNIX)根據輸出信號與輸入信號的關系,Simulink提供三種類型的模塊:連續模塊、離散模塊和混合模塊。連續模塊是指輸出信號隨著輸入信號發生連續變化的模塊;離散模塊則是輸出信號以固定間
21、隔變化的模塊。對于連續模塊,Simulink采用積分方式計算輸出信號的數值,因此,連續模塊主要涉及數值的計算及其積分。離散模塊的輸出信號在下一個抽樣到來之前保持恒定,這時候Simulink只需要以一定的間隔計算輸出信號的數值。混合模塊是根據輸入信號的類型來確定輸出信號類型的,它既能差生連續輸出的信號,也能夠產生離散輸出信號。Simulink仿真包括兩個階段:初始化階段和模型執行階段。(1) 初始化階段在初始化階段,Simulink內部主要完成以下工作。·模型參數傳給MATLAB進行估值,得到的數值結果將作為模型的實際參數。·展開模型的各個層次,每一個非條件執行的子系統被它包
22、含的模塊代替。·模型中模塊按更新的次序進行排序。·決定模型由無顯示設定的信號屬性。·決定所有無顯示設定才采樣的時間的模塊的采樣時間。·分配和初始化用于儲存每個模塊的狀態和輸入當前值的存儲空間。完成以上工作后就可以進行下一步工作了,也就是模塊執行階段(2) 模塊執行階段一般模型是使用數值積分來進行仿真的,所運用的仿真解法器(仿真算法)依賴于模型提供它的連續積分能力。計算微分可分為以下兩步來進行。首先,按照排列所確定的次序計算每個模塊的輸出。然后,根據當前時刻的輸入和狀態來決定狀態的微分;得到微分向量后再把它返回給解法器;后者用它來計算下一個采樣點的狀態向量
23、。一旦新的狀態向量計算完畢,被采樣的數據模塊和接收模塊才被更新。在仿真開始時,模型設定待仿真系統的初始狀態和輸出。在每個時間步中,Simulink計算系統的輸入、狀態和輸出,并更新模塊來反映計算出的值。在仿真結束時,模型得出系統的輸入、狀態和輸出。在每個時間步中,Simulink所采取的動作依次如下:(1)按照排列好的次序更新模型中的輸出。Simulink通過調用模塊的輸出函數計算模塊的輸出。Simulink只把當前值、模塊的輸入以及狀態量傳給這些函數計算模塊的輸出。對于離散系統,Simulink只有在當前時間是模塊采樣時間的整數倍時,才會更新模塊的輸出。(2)按照排列好的次序更新模塊中模塊的
24、狀態。Simulink計算一個模塊的離散狀態的方法是調用模塊的離散狀態更新函數。而對于連續狀態,則對連續狀態的微分進行數值積分來獲得當前的連續狀態。(3)檢查函數連續狀態的不連續點。Simulink使用過零檢測來檢測連續狀態的不連續點。(4)計算下一個仿真時間步的時間。這是通過調用模塊獲得下一個采樣時間函數來完成的。第3章 信源編碼3.1 A律律編碼特性信源編碼也稱為量化或信號格式化,它一般是為了減少冗余度或為后續的處理做準備而進行的數據處理。在Simulink中,包含了A律編碼、律編碼等,這里分別進行介紹。3.1.1 A律編碼如果輸入信號為x,輸出信號為y,則A律壓縮滿足式3-1。sgn(x
25、) (3-1) sgn(x) 式中,A為A律壓縮參數,最常采用的A值為87.6;V為輸入信號的峰值;log為自然對數;sgn函數當輸入為正時,輸出1,當輸出為負時,輸出0。模塊的輸入并無限制。如果輸入為向量,則向量中的每一個分量將被單獨處理7。A律壓縮編碼模塊及其參數及其設定框如圖3-1所示。A律壓縮編碼模塊中包含兩個參數:A value:用于指定濃縮參數A的值Peak signal magnitude:用于指定能輸入信號的峰值V。3.1.2 律編碼和A律壓縮編碼類似,律壓縮編碼中如果輸入信號為x,輸出信號為y,則律壓縮滿足式3-2。 sgn(x) (3-2)式中,為律壓縮參數;V為輸入信號的
26、峰值;log為自然對數;sgn函數當輸入為正時,輸出1,當輸入為負時,輸出0模塊的輸入并無限制。如果輸入為向量,則向量中的每一個分量將會被單獨處理7。律壓縮編碼中包含兩個參數:mu value:用于指定律壓縮參數的值Peak signal magnitude:用于指定能輸入信號的峰值V,也是輸出信號的峰值。3.1.3 A律13折線13段折線的壓縮特性如下圖3-3所示。過程為:第一步:把x(x>0 部分)劃分為不均勻的8段。第一分點取在V/2處,然后每段都是剩下部分的1/2。;依次取第八段為VV/2,第七段為V/2V/4;第一段為V/1280。第二步:把每段均勻劃分為16等份,每一份表示一
27、個量化級,顯然8段共16x8=128= 個量化級,需要二進制7位編碼表示??梢钥闯雒總€量化級是不均勻的。在小信號的量化臺階很小,使小信號時量化噪聲減小。如果按均勻量化計算,以最小臺階 為單位,最大信號需用L=128X16=2048個量化級表示,既需要11位編碼。這樣非均勻編碼使小信號量化臺階縮小了16倍,相當于小信號信噪比改善了20dB。第三步:把y軸均勻劃分為8段,每段均勻分為16分。這樣y也分為128個量化級,與x軸的128個量化級對應。因此,壓擴特性各段的斜率 是不同的。第一段斜率 其他段為7: 以上分段為x取正值時的情況。而x取負值時,壓擴特性與x取正值成奇對稱。在正8段和負8段中,正
28、1,2段和負1,2段斜率相同,合為一段。所以原來的16段折線變為13段折線。圖3-1 13折線A律壓擴特性實際中,往往都采用近似于A律函數規律的13折線(A=87.6)的壓擴特性。這樣,它基本上保持了連續壓擴特性曲線的優點,又便于用數字電路實現。折線形成的方法是把x軸的0-1分成8個不均勻段,而y軸的01均勻地分成八段,與x軸的八段一一對應。至于當x在-10及y在-10的第三象限中,壓縮特性的形狀與以上討論的第一象限壓縮特性的形狀相同,且它們以原點為奇對稱,所以負方向也有八段直線,合起來共有16個線段。由于正向一、二兩段和負向一、二兩段的斜率相同,這四段實際上為一條直線,因此正、負雙向的折線總
29、共由13條直線段構成,故稱其為13折線。13折線和A律(A=87.6)壓擴特性的近似程度,可以由表3-1看出:表 3-1 A律13折線y01/82/83/84/85/86/87/81x101/1281/60.61/30.61/15.41/7.791/3.931/1.981x201/1281/641/321/161/81/41/21段落12345678斜率161684211/21/4u律15折線形成如下。把y坐標從0到1之間劃分為八個均勻等分,對應于分界點y坐標i/8的x坐標,根據律壓縮特性得到(u255),共14個斜率發生變化的分界點,將其分成15段直折線。其具體值可見表3-2: 表 3-2
30、u律15折線i012345678y=i/801/82/83/84/85/86/87/81x=(2i-1)/25501/2553/2557/25515/25531/25563/255127/2551相對斜率8/255(y/x)11/21/41/81/161/321/641/128段落123456783.2 A律、u律的特性比較畫出A律13折線近似的壓縮特性曲線,與A=87.56對應的壓縮特性曲線進行比較。2 畫出u律15折線近似的壓縮特性曲線,與u=255對應的壓縮特性曲線進行比較。MATLAB程序:clear allclose alldx=0.01;x=-1:dx:1;u=255;A=87.6
31、;% u Law yu=sign(x).*log(1+u*abs(x)/log(1+u);% A Lawfor i=1:length(x)if abs(x(i)<1/Aya(i)=A*x(i)/(1+log(A);elseya(i)=sign(x(i)*(1+log(A*abs(x(i)/(1+log(A);endendfigure(1)plot(x,yu,'k.:')title('u Law')xlabel('x')ylabel('y')grid onhold onxx=-1,-127/255,-63/255,-31/25
32、5,-15/255,-7/255,-3/255,-1/255,1/255,3/255,7/255,15/255,31/255,63/255,127/255,1;yy=-1,-7/8,-6/8,-5/8,-4/8,-3/8,-2/8,-1/8,1/8,2/8,3/8,4/8,5/8,6/8,7/8,1;plot(xx,yy,'r')stem(xx,yy,'b-.')legend('u 律壓縮特性','折線近似u 律',4)figure(2)plot(x,ya,'k.:')title('A Law')x
33、label('x')ylabel('y')grid onhold onxx=-1,-1/2,-1/4,-1/8,-1/16,-1/32,-1/64,-1/128,1/128,1/64,1/32,1/16,1/8,1/4,1/2,1;yy=-1,-7/8,-6/8,-5/8,-4/8,-3/8,-2/8,-1/8,1/8,2/8,3/8,4/8,5/8,6/8,7/8,1;plot(xx,yy,'r')stem(xx,yy,'b-.')legend('A 律壓縮特性','折線近似A 律',4)圖3-2
34、 A律13折線圖33 律15折線 如圖3-2所示,13折線各段落的分界點A=87.56曲線十分逼近,并且兩特性起始段的斜率均為16,這就是說,13折線非常逼近A=87.56的對數壓縮特性。在A律特性分析中可以看出,取A=87.56有兩個目的:一是使特性曲線原點附近的斜率湊成16;二是使13折線逼近時,x的八個段落量化分界點近似于按2的冪次遞減分割,有利于數字化。如圖3-3所示,15折線非常逼近=225的對數壓縮特性。第4章 信道編碼及譯碼4.1 卷積碼的概念介紹卷積碼是一種性能優越的信道編碼。(n ,k ,N) 表示把k個信息比特編成n個比特,N 為編碼約束長度,說明編碼過程中互相約束的碼段個
35、數。卷積碼編碼后的n 個碼元不僅與當前組的k 個信息比特有關,而且與前N - 1 個輸入組的信息比特有關6。編碼過程中相互關聯的碼元有N ×n 個。R = k/ n 是卷積碼的碼率,碼率和約束長度是衡量卷積碼的兩個重要參數1。4.2 卷積碼的編碼過程介紹以(2,1,4)為例,如圖4-1所示,詳細介紹卷積碼的編碼流程。圖4-1 (2,1,4)卷積碼編碼器方框圖 (4-1) (4-2) 由(4-1)式和(4-2)式可以看出:輸出的數據位V1,V2和寄存器D0,D1,D2,D3之間的關系。根據模2加運算特點可以得知奇數個1模2運算后結果仍是1,偶數個1模2運算后結果是0。在實際應用中,根據
36、模2加的特點,將所要處理的數據直接相加后除2求余,這樣得到的結果和模2 運算結果相同。這樣可以得到: (4-3) (4-4)編碼程序流程圖圖4-2 卷積碼編碼程序流程圖4.3 卷積碼譯碼過程的概述卷積碼的譯碼方式有三種3:(1)1963年由梅西(Massey)提出的門限譯碼,這是一種基于碼代數結構的代數譯碼,類似于分組碼中的大數邏輯譯碼;(2) 1963年由費諾(Fano)改進的序列譯碼,這是基于碼的樹狀圖結構上的一種準最佳的概率譯碼;(3) 1967年由維特比提出的Viterbi算法。這是基于碼的網(trellis)圖基礎上的一種最大似然譯碼算法,是一種最佳的概率譯碼方法8。其中,代數譯碼,
37、利用編碼本身的代數結構進行譯碼,不考慮信道本身的統計特性。該方法的硬件實現簡單,但性能較差,其中具有典型意義的是門限譯碼。另一類是概率譯碼,這種譯碼通常建立在最大似然準則的基礎上。由于計算是用到了信道的統計特性.因而提高了譯碼性能,但這種性能的提高是以增加硬件的復雜度為代價的。常用的概率譯碼方法有維特比譯碼和序列譯碼。維特比譯碼具有最佳性能,但硬件實現復雜;門限譯碼性能最差,但硬件簡單;序列譯碼在性能和硬件方面介于維特比譯碼和門限譯碼之間。 (1)譯碼原理: 卷積碼譯碼方法主要有兩類:代數譯碼和概率譯碼。代數譯碼主要根據碼本身的代數特性進行譯碼,而信道的統計特性并沒有考慮在內。目前,代數譯碼的
38、主要代表是大數邏輯解碼。該譯碼方法對于約束長度較短的卷積碼有較好的效果,并且設備較簡單。概率譯碼,又稱最大似然譯碼,是基于信道的統計特性和卷積碼的特點進行計算。在現代通信系統中,維特比譯碼是目前使用最廣泛的概率譯碼方法。 維特比譯碼算法基本原理是:將接收到的信號序列和所有可能的發送信號序列比較,選擇其中漢明距離最小的序列認為是當前發送序列。 具體步驟如下:1.從時間單元j=m開始,計算進入每個狀態的路徑的漢明距離。存儲每個狀態的路徑(即幸存路徑)以及最小漢明距離。這里存儲的路徑通常是該狀態所對應的幸存路徑上的前一狀態值。2.j增加1。計算進入每一個狀態所有路徑的漢明距離。這個漢明距離是進入該狀
39、態的分支度量加上在與該分支相連的前一步的幸存路徑的度量值。對于每個狀態,共有 個這樣的度量值,從中選出并存儲最優路徑(漢明距離最小的路徑)并保存最小漢明距離。3.如果j<L+m.重復步驟2,知道結束。在整個過程中,這樣就可以得到一條漢明距離最小的最優路徑。同樣以(2,1,4)為例,具體分析維特比譯碼過程。維特比譯碼的前提是建立合適的網格圖,以便尋找最優路徑?;蛘呖梢哉J為,維特比譯碼的關鍵是尋找最優路徑。在實際的譯碼操作過程中,怎樣建立網格以及建立網格后的路徑的選擇是譯碼的關鍵問題。圖4-3 (2,1,4)碼狀態轉移圖如圖所示,圖4-3為(2,1,4)碼的狀態轉移圖,圖4-5為 (2,1,
40、4)碼的網格圖。注意:由于D1D2D3表示的順序不同,所產生的網格圖和狀態轉移圖也不同,并且譯碼過程是根據網格圖實現,所以本文所以涉及的維特比譯碼方法具有一定的特殊性,但是整體過程還是具有研究價值。 (2)編程實現 維特比譯碼可分為網格圖建立,尋找最優路徑,譯碼這三部分。譯碼程序流程如圖4-4所示:圖4-4譯碼流程圖 網格圖建立根據圖4-5所示的(2,1,4)碼的網格圖,可以發現D1D2D3決定了從000111的8個狀態。并且進一步觀察網格圖可以發現從狀態000-011是由輸入的信息位0產生,從狀態100-111是由輸入的信息位1產生。此外,以001狀態為例,可以看出狀態001是由狀態010和
41、狀態011產生。由上面可知,假設當前狀態為i,那么在前一時刻中,產生狀態i的兩個狀態是2*i和2*i+1。根據i是否小于4,來判斷狀態i是由信息位0還是信息位1生成。進一步可以推知指向狀態i的前一時刻的兩個狀態生成的碼組,這樣便于以判斷漢明距離。圖4-5 (2,1,4)碼網格圖 尋找最優路徑 網格圖建立之后,根據接收碼組和網格圖中生成的碼組比較,判斷最優路徑。假設某一時刻的狀態i,首先判斷前一時刻所有狀態中,是哪兩個狀態指向當前狀態i;其次,根據這兩個指向當前狀態i的狀態生成的碼組和前一時刻接收的碼組比較,保留漢明距離最小的那條路徑以及到達狀態i時的最小漢明距離。下一時刻,同樣操作,但是保留的
42、最小漢明距離是前面最小漢明距離累加。在所有的接收碼組處理完之后,會得到一組漢明距離以及所對應的最優路徑。比較選擇出最小的漢明距離,那么該最小漢明距離所對應的路徑即為最優路徑。 譯碼如圖4-5所示,其中紅線表示計算得到的最優路徑。觀察其變化規律,可以發現,假設i時刻的狀態和第(i+1)時刻比較得知,若第(i+1)時刻小于第i時刻,那么對應代表實際信息中0;若大于,則為1。然后逐次比較譯出信息值。4.4 卷積碼的最大似然譯碼卷積碼概率譯碼的基本思路是4:以接收碼流為基礎,逐個計算它與其他所有可能出現的、連續的網格圖路徑的距離,選出其中可能性最大的一條作為譯碼估值輸出。概率最大在大多數場合可解釋為距
43、離最小,這種最小距離譯碼體現的正是最大似然的準則。卷積碼的最大似然譯碼與分組碼的最大似然譯碼在原理上是一樣的,但實現方法上略有不同。3主要區別在于:分組碼是孤立地求解單個碼組的相似度,而卷積碼是求碼字序列之間的相似度?;诰W格圖搜索的譯碼是實現最大似然判決的重要方法和途徑。用格圖描述時,由于路徑的匯聚消除了樹狀圖中的多余度,譯碼過程中只需考慮整個路徑集合中那些使似然函數最大的路徑。如果在某一點上發現某條路徑已不可能獲得最大對數似然函數,就放棄這條路徑,然后在剩下的“幸存”路徑中重新選擇路徑。這樣一直進行到最后第L級(L為發送序列的長度)。由于這種方法較早地丟棄了那些不可能的路徑,從而減輕了譯碼
44、的工作量,Viterbi譯碼正是基于這種想法。 對于(n, k, K )卷積碼,其網格圖中共2kL種狀態。由網格圖的前K-1條連續支路構成的路徑互不相交,即最初2k_1條路徑各不相同,當接收到第K條支路時,每條路徑都有2條支路延伸到第K級上,而第K級上的每兩條支路又都匯聚在一個節點上。在Viterbi譯碼算法中,把匯聚在每個節點上的兩條路徑的對數似然函數累加值進行比較,然后把具有較大對數似然函數累加值的路徑保存下來,而丟棄另一條路徑,經挑選后第K級只留下2K條幸存路徑。選出的路徑同它們的對數似然函數的累加值將一起被存儲起來。由于每個節點引出兩條支路,因此以后各級中路徑的延伸都增大一倍,但比較它
45、們的似然函數累加值后,丟棄一半,結果留存下來的路徑總數保持常數。由此可見,上述譯碼過程中的基本操作是,“加-比-選”,即每級求出對數似然函數的累加值,然后兩兩比較后作出選擇。有時會出現兩條路徑的對數似然函數累加值相等的情形,在這種情況下可以任意選擇其中一條作為“幸存”路徑。卷積碼的編碼器從全零狀態出發,最后又回到全零狀態時所輸出的碼序列,稱為結尾卷積碼。因此,當序列發送完畢后,要在網格圖的終結處加上(K-1)個己知的信息作為結束信息。在結束信息到來時,由于每一狀態中只有與已知發送信息相符的那條支路被延伸,因而在每級比較后,幸存路徑減少一半。因此,在接收到(K-1)個己知信息后,在整個網格圖中就
46、只有唯一的一條幸存路徑保留下來,這就是譯碼所得的路徑。也就是說,在己知接收到的序列的情況下,這條譯碼路徑和發送序列是最相似的。由上述可見,Viterbi譯碼過程并不復雜,譯碼器的運行是前向的、無反饋的。它接收一段,計算一段,選擇一段最可能的碼段(分支),從而達到整個碼序列是一個有最大似然函數的序列。傳輸序列很長時,判決需要的長延時和相當大的存儲量是我們無法承受的。因此,實際應用中采用截短Viterbi算法,即不需要接收到所有序列才進行判決,當譯碼器接收并處理完了固定的T (T <<L)個碼段后,在接收第(T+1)個碼段的時候,它將比較前T級的路徑量度,然后從中選取最小者,由此得到與
47、最小量度對應的幸存路徑,將此路徑對應的T個碼段判決輸出。T稱為截短深度,T選的足夠大時,則對譯碼器輸出的譯碼錯誤概率影響很小。4.5 輸入與同步單元輸入同步單元為譯碼器提供正確的支路同步,每次正確地輸出屬于一條支路的n個比特。顯然,當支路定時失步時,譯碼過程中將會出現大量的差錯,只要能檢測出這種狀態,即能有效地調整支路同步。一種方法是監視路徑量度的增長率;另一種方法是檢查網格圖的路徑合并性質。當譯碼器出現失步時,網格圖中幸存路徑合并的速率比同步時慢得多9。每當接收到一條新支路的一組n個量度值(硬判決時為n比特),支路量度計算單元就對網格圖中每一條不同的支路確定一新的量度值。對R=k/n碼來說,
48、每次將有2個不同的量度值。在軟判決Viterbi譯碼時,支路量度值不但隨支路不同而異,而且還與接收信號的量化值有關。在此單元中,支路量度與以前所存儲的路徑量度相加,然后對匯聚到同一節點處的支路進行路徑量度比較,選擇一條路徑量度最小的路徑保留下來。一種最佳的也是最常用的方法是基于最大似然譯碼。對于R=1/n卷積碼而言,每接收一組新的支路信息,在各個狀態的路徑存儲器中存入經“加一比一選”電路選出的一位假想信息比特,同時將最先存入路徑存儲器的一位比特輸出給判決單元。因此,每接收到一條新支路,路徑存儲器就更新一次它所存儲的假想信息序列10。第5章 卷積碼的仿真5.1 Simulink仿真模塊的參數設置
49、以及重要參數的意義在建立如圖5-1的仿真模塊后,對各個模塊分別一一進行設置后并運行仿真。圖5-1貝努利二進制序列產生器模塊的設置框圖如上圖5-1是貝努利二進制序列產生器模塊的設置框圖,其中參數有三項:第一項probability of a zero取值為0.5,表示0和1出現的概率相等。Initial seed 表示隨機種子數。不同的隨機種子數將產生不同的二進制序列,特定的隨機種子數可以產生一個特定的二進制序列。Sample time=0.0001表示抽樣時間,也就是說輸出序列中每個二進制符號的持續時間是0.0001秒。Samples per frame 表示每幀的抽樣數用來確定每幀的抽樣點的
50、數目。Frame-based outputs 是用來確定幀的輸出格式。圖5-2 BPSK調制器模塊的設置框圖如上圖5-2是BPSK調制器模塊的設置框圖中有二項,第一項是Phase offset(rad)(相位偏移),這里設置為0。第二項是Samples per symbol(輸出信號采樣數)這里設置為1。圖5-3卷積編碼器模塊的設置框圖如上圖5-3是卷積編碼器模塊的設置框圖。其中Trellis structure( Trellis結構)中通過poly2trellis()函數把卷積碼的約束長度,生成多項式以及反饋多項式轉換成Trellis結構的形式。如上面是(2,1,3)卷積碼的參數設置。(3,
51、6,7)說明約束長度是3,生成多項式是(八進制)6和7,無反饋多項式。后面還要用到的(2,1,7)的參數是(7,171,133)是約束長度是7,生成多項式是171和133。Reset是復位方式,這里設置為on each frame,它表示卷積碼編碼器在每幀數據開始之前自動對寄存器復位。圖5-4誤比特統計模塊的設置框圖如上圖5-4是誤比特統計模塊的設置框圖。其中Receive delay表示的是接收延遲,意思是在通信接收的端口需要對已經接收到的信號進行解調,解碼或解交織而帶來一定的延遲,使得到達誤碼統計模塊接收端的信號滯后于發送端的信號。為了補償這種延遲這里設置為0。Computation de
52、lay表示計算延遲,在仿真過程中,有時間需要忽略最初的若干個輸入數據就通過計算延遲來實現。這里設置為0。Computation mode表示計算模式,幀的計算模式(Entire frame),誤碼統計模塊對發送端和接收端的所有輸入數據進行統計。output data是輸出數據,這里設置為Port的意思是表示把統計數據從端口中輸出。workspace表示把統計數據輸出到工作區。圖5-5數據選通器模塊的設置框圖如上圖5-5是數據選通器模塊的設置框圖。對應圖4-1看Elements是指輸出端口的個數為1。Input port width表示輸入端口的個數為3。圖5-6卷積碼譯碼器模塊的設置框圖如上圖
53、5-6是卷積碼譯碼器模塊的設置框圖。Trellis structure: Trellis結構(前面已說明)。Decision type是指判決類型,有3種:(1)Unquantized(非量化)(2)Hard Decision(硬判決),(3)Soft Decision(軟判決) Traceback depth表示反饋深度。它的值會影響譯碼精度和解碼延遲。Operation mode是指操作模式。在Truncated模式下,解碼器在每幀數據結束的時候總能恢復到全0狀態,它與卷積編碼器的on each frame復位方式相對應。5.2 簡化維特比譯碼器的仿真為了驗證譯碼模塊的正確性,便讓其進行最
54、簡模式運行,為此,臨時設計一個簡化信號系統,關閉信道噪聲,不進行二進制相位的調制與解調,去掉誤比特率統計模塊。為了能看到輸入二進制碼和譯碼輸出二進制碼,增加了兩個To Workspace(結果輸入到工作區模塊),整個系統模塊框圖如圖5-7所示。圖5-7 簡化譯碼模塊框圖同時,為了便于觀察,將Bernoulli Binary Generator(貝努利二進制序列產生器)的參數設置為如表5-1所示,以產生簡單的15位二進制隨機碼,也將Viterbi Decoder的Trceback depth值改為5。將To Workspace1模塊和To Workspace模塊的變量名分別設置為pdata和da
55、ta。表5-1 簡化譯碼模塊的Bernoulli Binary Generator的參數設置參數名稱參數值模塊類型Bernoulli Binary GeneratorProbability of zero0.5Initial seed5Sample time10Frame-based outputCheckedSamples per frame5運行仿真(),在matlab的命令窗口中輸入pdata和data分別得到相應的二進制序列。對所得序列分別截圖,可得如圖5-8所示結果??梢?,譯碼器能夠正確進行譯碼,所設計簡化譯碼器正確,因而,從理論上可推導,原設計正確。圖5-8 簡化譯碼器仿真結果通過對convh.mdl文件進行仿真,證明設計正確,但因所得二進制碼太多,此處便不進行截圖證明。第6章 卷積碼譯碼器的誤碼率分析6.1信噪比與誤碼率的關系編制M文件convolutionh.m,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 國家開放大學學習網電大傳感器與測試技術形考作業1234答案
- 醫學美容技術專業教學標準(高等職業教育??疲?025修訂
- 2025年中國可穿戴醫療監測智能設備行業市場全景分析及前景機遇研判報告
- 2025年中國精細陶瓷行業市場全景分析及前景機遇研判報告
- 中國裝飾畫行業市場評估分析及發展前景調研戰略研究報告
- 中國二氧化氯發生器行業發展前景預測及投資策略研究報告
- 培訓職工課件
- 生物質燃料項目可行性研究報告(參考模板范文)
- 2025年 云南省電氣試驗作業人員理論考試練習題附答案
- 2025年中國金屬類印刷行業市場發展前景及發展趨勢與投資戰略研究報告
- 醫療器械市場調整與價格波動對策
- 機械原理課程設計-高位自卸汽車的設計
- 髖關節假體松動查房
- 【基于單片機的超速報警器的電路設計6100字(論文)】
- 研學旅行概論 課件 第八章 研學旅行的安全管理
- 鼠疫介紹演示培訓課件
- 2024屆貴州黔東南州高一化學第二學期期末統考試題含解析
- 凝血分析的質量控制
- 康復科提高康復住院患者自主呼吸訓練的執行率和正確率醫院持續質量改進PDCA項目匯報書
- 智慧校園大數據可視化分析平臺建設方案
- 110kv升壓站施工組織設計
評論
0/150
提交評論