




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
2010年本科畢業(yè)設(shè)計:Turbo碼的編譯碼算法研究 2010屆畢業(yè)生 畢業(yè)論文題目:Turbo碼研究學號:指導(dǎo)教師:教師職稱:教授2010年6月2日
摘要在現(xiàn)代數(shù)字通信系統(tǒng)中,信道編碼常用來保護系統(tǒng)免遭噪聲和外界干擾,并用于降低系統(tǒng)的比特誤碼率,提高系統(tǒng)的可靠性。Turbo碼,由于性能接近香農(nóng)理論限,在低信噪比的應(yīng)用環(huán)境下比其他編碼好,因而在第三代移動通信系統(tǒng)多種方案中,考慮將Turbo碼作為無線信道的編碼標準之一。本文討論了Turbo碼的編譯碼基本原理,對Turbo碼的幾種常用的編譯碼算法進行了分析,并在給出編譯碼器模型的基礎(chǔ)上,用MATLAB語言實現(xiàn)了整個系統(tǒng)的計算機仿真并給出參考設(shè)計程序。關(guān)鍵詞:Turbo碼、軟判決Viterbi譯碼、交織器Title:TurbocodeencodinganddecodingalgorithmAbstractInmoderndigitalcommunicationsystems,channelcodingsystemusedtoprotectagainstnoiseandinterference,andusedtoreducethesystem'sbiterrorrateandimprovesystemreliability.Turbocode,AstheperformanceapproachestheShannontheoreticallimit,theapplicationofalowSNRenvironmentbetterthantheotherencodings,andthusthethirdgenerationmobilecommunicationsystemsinavarietyofprograms,considertheTurbocodeasthewirelesschannelofthecodingstandard.ThisarticlediscussesthebasicprinciplesofTurboCodesEncodingandDecodingofTurboCodesEncodingandDecodingofseveralcommonlyusedalgorithmsareanalyzedandpresentedcodecbasedonthemodel,withtheMATLABlanguagetoimplementthecomputersimulationofthesystemandtothereferencedesignprogram.Keywords:RecursivesystematicconvolutionalcodeSoft-decisionViterbidecodingInterleaver1引言 12Turbo碼概述 22.1Turbo碼簡介 22.2Turbo碼的優(yōu)缺點 22.3Turbo碼的發(fā)展 33Turbo碼的編碼原理 43.1編碼器組成 43.2編碼原理 63.3編碼算法 74Turbo碼譯碼原理 94.1 譯碼器組成 94.2譯碼原理 114.3MAPimumaposteriori算法 124.4 Log-MAP算法和-Log-MAP算法 144.5 SOVA算法 155Turbo碼的性能仿真 165.1仿真軟件介紹 165.2仿真系統(tǒng)構(gòu)建 185.3編碼子系統(tǒng) 185.4譯碼子系統(tǒng) 195.5仿真結(jié)果與分析 20結(jié)論 24致謝 25參考文獻 26附錄 271引言在數(shù)字通信系統(tǒng)中,根據(jù)不同的目的,編碼可分為信源編碼和信道編碼。信源編碼是為了提高數(shù)字信號的有效性以及為了使模擬信號數(shù)字化而采取的編碼。信道編碼是為了降低誤差率,提高數(shù)字通信的可靠性而采取的編碼。數(shù)字信號在傳輸過程中,加性噪聲、碼間串擾等都會生產(chǎn)誤碼。為了提高系統(tǒng)的抗干擾性能,可以加大發(fā)射功率,降低接受設(shè)備本身的噪聲,以及合理選擇調(diào)制、解調(diào)方法等。此外,還可以采用信道編碼技術(shù)。長期以來,編碼界一直致力于尋找編碼率接近香農(nóng)理論極限值、誤碼率小、解碼復(fù)雜度可以忍受的信道前向差錯控制編碼方法,提出了可重復(fù)解碼的編碼技術(shù),包括乘積碼、級聯(lián)碼、多級碼及其推廣。在重復(fù)解碼、軟入軟出解碼、遞歸系統(tǒng)卷積碼和非均勻交織等概念的基礎(chǔ)上,1993年C.Berrou等在國際通信會議上最先提出了Turbo碼,它是并行級聯(lián)帶反饋系統(tǒng)卷積碼Parallelconcatenationofrecursivesystematicconvolutionalcodes的簡稱。仿真結(jié)果表明,在AWGN信道中,Turbo碼的糾錯性能接近香農(nóng)極限。從此Turbo碼的研究成為了編碼界的一個研究熱點,并開始在各種通信系統(tǒng)中實現(xiàn)應(yīng)用。MATLAB將高性能的數(shù)值計算和可視化集成在一起,并提供了大量的內(nèi)置函數(shù),從而被廣泛地應(yīng)用于科學計算、控制系統(tǒng)、信息處理等領(lǐng)域的分析、仿真和設(shè)計工作,而且利用MATLAB產(chǎn)品的開放式結(jié)構(gòu),可以非常容易地對MATLAB的功能進行擴充。MATLABSimulink是MATLAB提供的動態(tài)仿真工具,它采用模塊組合的方法來創(chuàng)建動態(tài)系統(tǒng)的計算機模型,其最突出的特點就是它的開放性,用戶可以通過S一函數(shù)定制自己的模塊和模塊庫,本文本文首先介紹了Turbo碼編譯碼的基本原理以及研究較深的幾種算法,在這個基礎(chǔ)上使用MATLAB建立仿真模型,最后給出仿真結(jié)果。2Turbo碼概述2.1Turbo碼簡介著名的Shannon信道編碼定理指出,每一信道都有一定的信道容量C,對任何RC的傳信率,都存在有速率為R的碼,用最大似然(ML)譯碼可達到任意小的錯誤概率P。該定理包含兩方面的含義:一是Shannon用隨機編碼方式證明,當RC時,若n趨近于無窮,則使P趨近于0的好碼是存在的;二是為了達到理論值,應(yīng)該利用最大似然譯碼。Turbo碼由兩個二元卷積碼并行級聯(lián)而成。Turbo碼編譯碼器采用流水線結(jié)構(gòu),其編譯碼基本思想是,采用軟輸入/軟輸出(SISO)的迭代譯碼算法,編碼時將短碼構(gòu)成長碼,譯碼時再將長碼轉(zhuǎn)為短碼。譯碼算法的特點是,利用兩個子譯碼器之間信息的往復(fù)迭代遞歸調(diào)用,加強后驗概率對數(shù)似然比,從而提高判決可靠性,Turbo碼由此而得名,這種算法也被稱為最大后驗概率(MAP)算法。由于Turbo碼很好地應(yīng)用了Shannon信道編碼定理中的隨機性編譯碼條件,從而獲得幾乎接近Shannon理論極限的譯碼性能。2.2Turbo碼的優(yōu)缺點Turbo碼可以在譯碼復(fù)雜性與碼率之間達到較好的平衡,而且在中高噪聲的應(yīng)用環(huán)境中,性能比以往其它信道編碼好很多。通過數(shù)值模擬表明,在AWGN信道下,碼率為12的Turbo碼在達到誤比特率BER≤10時,僅為約0.7dB這種情況下達到信道容量的理想值為0dB,遠遠超過了其他的編碼方式Turbo碼在某些對時延要求高的通信系統(tǒng)中的應(yīng)用受到限制;(3)理論分析困難,至今對于Turbo碼的譯碼復(fù)雜性、比特誤碼率,尚未形成完整的理論分析和估計。2.3Turbo碼的發(fā)展對Turbo碼的研究進展大體有三個方面:1主要涉及到Turbo碼理論的研究。大多數(shù)研究集中在算法的改進,包括分量碼的選擇,交織器的設(shè)計,譯碼算法的改進,終止技術(shù)等Turbo碼的各個環(huán)節(jié),取得了大量的成果,為Turbo碼的實現(xiàn)和在其它領(lǐng)域的應(yīng)用打下了堅實的基礎(chǔ)。2隨著Turbo碼技術(shù)的成熟,最新研究大多集中在Turbo碼和其它技術(shù)結(jié)合的應(yīng)用上,并且取得了很大的進展。如Turbo碼和其它糾錯碼的級聯(lián),Turbo碼和調(diào)制技術(shù)的結(jié)合即TTCM技術(shù),Turbo碼均衡技術(shù),Turbo碼多用戶檢測技術(shù)等。3由于Turbo碼時延問題的限制,應(yīng)用最先集中在對時延不敏感的場合,如衛(wèi)星通信和一些非實時的場合。隨著硬件技術(shù)的發(fā)展,Turbo碼在實時領(lǐng)域的應(yīng)用成為可能,值得一提的是Turbo碼已經(jīng)成為3G方案中高速數(shù)據(jù)的糾錯技術(shù)之一,可見其應(yīng)用的潛力是很大的。但Turbo碼在衰落信道中的應(yīng)用還有很多問題需要解決,是目前研究的熱點。Turbo碼理論的出現(xiàn)是信道編譯碼史上的一個里程碑。它可以相當接近信道容量的極限,在高速效據(jù)傳遞中有著傳統(tǒng)碼無可比擬的優(yōu)勢,以其優(yōu)良的性能引起了廣泛的重視。目前Turbo碼技術(shù)已經(jīng)從理論研究和仿真實驗開始走向應(yīng)用,其許多關(guān)鍵的技術(shù)已經(jīng)有了多種改進的方案,使其性能更加提高,更有利于軟件和硬件的實現(xiàn)。Turbo碼和其它技術(shù)的結(jié)合以及在其它領(lǐng)域的應(yīng)用也是最近研究的熱點,并取得了大量的成果。相信隨著軟件和硬件技術(shù)的發(fā)展,Turbo碼技術(shù)的時延和算法復(fù)雜性等問題會得到極大地改善,并逐步取代業(yè)已成熟的分組碼和卷積碼技術(shù),而且還會進一步與其它的技術(shù)結(jié)合,廣泛應(yīng)用于數(shù)字通信的各個領(lǐng)域。3Turbo碼的編碼原理3.1編碼器組成(1)編碼器結(jié)構(gòu)Turbo碼的基本思想是利用短碼構(gòu)造等效長度意義上的長碼。Turbo一個典型的Turbo碼編碼器如圖所示。編碼是通過兩個相同的編碼器和一個交織器組成。第一個編碼器直接對信源信息序列進行編碼,第二個編碼器則對經(jīng)過交織器后的信息序列進行編碼,交織器對輸入的原信息序列進行隨機交織后輸出。Uu1,u2......un經(jīng)過―個N位交織器,形成―個新序列UI長度與內(nèi)容沒變,但比特位置經(jīng)過重新排列。U與UI分別經(jīng)由兩個相同結(jié)構(gòu)的子編碼器(分量碼編碼器)編碼,生成序列X1,X2。X1,X2再與未編碼的序列經(jīng)過復(fù)用,即生成Turbo碼序列X。在實際應(yīng)用中,為了提高Turbo碼的碼率,經(jīng)常增加一個刪余過程,對校驗序列X1,X2進行刪余,周期的刪除一些校驗位,形成新的校驗序列,再與未編碼序列經(jīng)過復(fù)用調(diào)制后,生成Turbo碼序列X。(2)子編碼器子編碼器(componentencoder)也叫。一般一個Turbo碼編碼器由兩個可以多個子編碼器和通過交織器的作用并行級聯(lián)組成子編碼器的結(jié)構(gòu)可以不同但一般取相同結(jié)構(gòu),以簡化譯碼子碼可以是卷積碼或者是分組碼Turbo碼中級聯(lián)的兩個子編碼器必須是系統(tǒng)碼,所以一般選擇遞歸系統(tǒng)卷積碼(RSC)。(3)RSC碼RSC碼是與Turbo碼同時提出的一類新的遞歸型系統(tǒng)卷積碼,該碼在高碼率時比最好的NSC(非系統(tǒng)卷積碼)還要好。Turbo碼既然要求采用系統(tǒng)碼,理所當然就選上了遞歸型系統(tǒng)卷積碼RSC。RSC與NSC的狀態(tài)轉(zhuǎn)移圖對比如下圖:圖3-2RSC與NSC的狀態(tài)轉(zhuǎn)移圖(4)交織器交織器Turbo碼中的主要作用是減少校驗比特間的相關(guān)性進而在迭代譯碼過程中降低誤比特。其基本的原則是通過增加交織器的長度可使譯碼性能得到提高交織器應(yīng)該使輸入序列盡能地隨機化從而避免編碼生成碼字的信息序列交織后編碼仍舊生成低重碼字導(dǎo)致Turbo碼的自由距離減少。隨機交織器反映的實際上是一種映射關(guān)系。其工作過程是:對于長為n的信息序列,首先標記每個比特的位置,然后生成n個[0,1]之間的隨機數(shù),按產(chǎn)生的順序排列成序列X,每個隨機數(shù)都對應(yīng)于信息序列中的信息比特。然后把X中元素按一定的規(guī)則重新排列得到新的序列Y,并按Y中元素的順序讀出相應(yīng)的信息比特,這樣就完成了交織。比如隨機序列[0.76210.45650.01850.82140.4447],它對應(yīng)信息序列X為[]。將隨機序列按升序排列得到[0.01850.44470.45650.76210.8214],則現(xiàn)在對應(yīng)的信息序列Y為[]。這樣,就完成了交織。如果一個碼率為的卷積碼的生成矩陣為:式3-1則其對應(yīng)的遞歸系統(tǒng)卷積碼的生成矩陣為:式3-2如以生成矩陣為(也可以表示為g=[1101;1111])的遞歸系統(tǒng)卷積碼作為子碼,它對應(yīng)的Turbo碼結(jié)構(gòu)如圖圖3-3Turbo碼的編碼結(jié)構(gòu)圖輸入編碼器的信息序列為,它一方面直接輸入到進行編碼,生成系統(tǒng)序列和校驗序列,另一方面,U經(jīng)過交織器后,輸入到中進行編碼,產(chǎn)生另一個校驗序列,這三個序列經(jīng)復(fù)用單元復(fù)用后完成編碼,得到發(fā)送序列。復(fù)用單元的作用是調(diào)整編碼速率,并將并行數(shù)據(jù)變換為串行數(shù)據(jù)流。通常系統(tǒng)序列全部傳送,校驗序列按照收縮矩陣收縮。圖示Turbo碼編碼器可以采用收縮矩陣將編碼速率調(diào)整到1/2,矩陣的每行對應(yīng)一個子編碼器,第一列和第二列分別對應(yīng)子編碼器輸出的第偶數(shù)個碼元和第奇數(shù)個碼元。1表示該碼元需要傳送,0表示不需傳送。如果稱對原始信息序列編碼為水平方向的編碼,稱對經(jīng)過交織器后的信息序列編碼為垂直方向的編碼。在每個方向上,個信息比特經(jīng)過編碼器輸出為 式3-3其中,或表示信息比特,表示與該信息比特對應(yīng)的校驗比特,校驗比特數(shù)取決于系統(tǒng)卷積碼的生成多項式。顯然式3-4傳輸前經(jīng)過收縮,有一部分校驗比特將不予傳送,在接收端未被傳送的比特位用零填充。從上面的介紹我們可以看到,Turbo碼編碼部分級聯(lián)結(jié)構(gòu)和交織器的共同作用,使Turbo編碼接近隨機編碼,從而保證了Turbo碼必定是一種好碼。g的理解。圖遞歸系統(tǒng)碼對照遞歸系統(tǒng)卷積碼的一般的編碼結(jié)構(gòu)圖。,其中[1,m+1](其中m是寄存器的數(shù)目)。是矩陣g的第一行,可以看成是對應(yīng)的圖中的反饋環(huán)支路;是矩陣g的第二行,可以看成對應(yīng)的是輸出的支路。和分別對應(yīng)兩點的信息。無論還是中的后m個信息位的每一位都分別對應(yīng)一個寄存器。它們可以看成是標志著一種狀態(tài)。第一行中的后m位表示產(chǎn)生反饋信息所用到的寄存器,比如說第j+1位,它對應(yīng)于第j個寄存器,該位為1表示用到了該寄存器內(nèi)的信息,即該寄存器有反饋到輸出信息的那個加法器,為零則表示沒有反饋回去。同理,中的后m位表示產(chǎn)生信息所用到的寄存器。對于encoder1:d=input;L_infolengthd;L_totalL_info+m;goto3;Y(1,:)=X;Y2,:=Y(jié);對于encoder2:d=Y(jié)(1,:)(alpha);%alpha為隨機交織圖樣%(是L_total列行向量)L_total=length(d);L_info=L_total;goto3;Y3,:=Y(jié);Goto(4)。①state為一m列行向量。初始化為零②ifL_info,=;elseifL_infoL_total=[2:m+1]state;=;endif③[state];=[state];state[state1:m-1];k=k+1;ifkL_totalgoto②;令Y2Y-1(把0和1信號調(diào)制成-1和1信號)然后進行并/串變換:如果沒有刪余,則對矩陣Y按列的順序取,取完第一列,取第二列,直到最后一列(第L_total列);如果有刪余,則對于Y的第一行系統(tǒng)碼,當取第奇數(shù)個系統(tǒng)碼時,取對應(yīng)列第二行的校驗碼,當取第偶數(shù)個系統(tǒng)碼時,取對應(yīng)列第三行的校驗碼。4Turbo碼譯碼原理譯碼算法的研究是Turbo碼研究的一個主要方面,因為它決定整個系統(tǒng)能否充分發(fā)揮Turbo碼的固有性能。選擇算法的基本原則是在一定的復(fù)雜性和時延要求下保持一定的性能,并且利于硬件實現(xiàn)。選擇合適的譯碼算法,對于使Turbo碼能在實用系統(tǒng)中充分發(fā)揮其性能優(yōu)勢是非常重要的。Turbo碼譯碼器采用反饋結(jié)構(gòu),以迭代方式譯碼,而迭代(iterative)譯碼思想是Turbo碼的一大特色。Turbo編碼器的兩個子編碼器對應(yīng),譯碼器也采用兩個子譯碼器,通過交換稱為邊信息(外部信息)的輔助信息相互支持,從而提高譯碼性能。邊信息的交換在迭代的過程中實現(xiàn),前一次迭代產(chǎn)生的邊信息經(jīng)交換后將作為下一次迭代的先驗信息。Turbo碼譯碼器結(jié)構(gòu)如圖所示的是Turbo碼譯碼器結(jié)構(gòu)。每個子譯碼器將從本身的譯碼過程中得到的外部信息ExtrinsicInformation提供給另一個子譯碼器,作為其譯碼的輔助信息,從而提高整體譯碼性能。在執(zhí)行軟輸入/軟輸出的迭代譯碼過程中,子譯碼器之間相互配合,從而達到一種全局譯碼的效果,充分挖掘了碼的固有糾錯性能。Turbo碼的譯碼策略,在于使用簡單的譯碼單元的迭代來替代復(fù)雜的一次性譯碼,相對于長約束長度的卷積碼來說,Turbo碼每個譯碼單元的狀態(tài)數(shù)要少得多,因而譯碼復(fù)雜性減少,其缺點是迭代過程帶來的不可避免的時延,因為從時間的角度看,它相當于n級(n等于迭代次數(shù))具有相同結(jié)構(gòu)得譯碼單元相連為了產(chǎn)生和利用邊信息(外部信息),子譯碼單元必須具有軟輸入/軟輸出的能力。適合于這種譯碼思想的算法以Bahl的算法最具有代表性,應(yīng)用也最廣。這是一種對具有有限狀態(tài)馬爾可夫特性的碼及離散無記憶特性的信道提供逐符號或逐比特似然值的最優(yōu)算法。圖Turbo碼迭代譯碼形式1、似然函數(shù)設(shè)是元素為+1,-1的GF2即二元伽羅華域的元素,在模2加下,+1表示零元。隨機變量的對數(shù)似然函數(shù)定義為式4-1其中表示隨機變量取值為的概率。似然函數(shù)稱為隨機變量的軟值。的符號代表硬判決值,的絕對值表示該判決的可靠性。沒有特殊說明,對數(shù)取自然對數(shù)。在已知另一隨機變量的條件下,條件似然函數(shù)比定義為式4-22、軟信道值對一個軟值為的二進制變量進行編碼,可得到一個軟值為的碼元。對于一個系統(tǒng)碼,前個碼元和信息比特相等。經(jīng)過一個二進制對稱信道或高斯/衰落信道,在接收端匹配濾波器輸出為的條件下,有:式4-3運用前面定義,有式4-4其中稱為信道可靠性能。表示衰落因子,在高斯信道中,我們令。是信號能量,是高斯白噪聲的單邊帶功率密度譜。在通常情況下,如衰落信道,是時變的,而在高斯信道中是恒定不變的。以下部分我們假定信道是高斯信道。軟信道值中包含了關(guān)于信道的信息。編碼器的輸出碼字序列為:,在經(jīng)過離散無記憶高斯信道的傳輸后,碼字變?yōu)?其中,。設(shè)為時刻編碼器所處的狀態(tài),是時刻到時刻轉(zhuǎn)移時的輸入比特,時刻和時的狀態(tài)分別用m和m表示。譯碼的數(shù)據(jù)比特的后驗概率可以從聯(lián)合概率得到,其中,由下式定義: (-5)這樣,譯碼的數(shù)據(jù)比特的后驗概率則等于:(-6)由(),與解碼比特相聯(lián)系的對數(shù)似然比可寫成: (-7)最后,解碼器通過對和一個等于0的門限值比較后,作出以下判決:若 若(-8)為了計算概率,我們引入概率函數(shù),和:(-9)(-10)= (-11)這里,表示從格柵起始時刻到時刻收到的符號序列,表示從時刻到格柵終止收到的符號序列。其中中得q(??|??)取值為“0”或“1”,最后一項(??|??)為譯碼器的狀態(tài)轉(zhuǎn)移概率,由于編碼比特以等概率1/2取“0”和“1”,所以這一項就等于1/2。則聯(lián)合概率可用貝葉斯定理重寫為: (-12)這樣,我們得到(-13)考慮到如果狀態(tài)已知,時刻k后的事件不受觀察值和比特的影響,則概率等于: (-14)MAP算法從概率采用前、后向遞推的方式來計算和。最后我們可得: (-15)及 (-16)顯然在的遞推過程中,要知道格柵最后時刻所處的狀態(tài),我們通常假設(shè)格柵的起始和終止狀態(tài)都為零。這樣和可初始化為: (-17) (-18)運用(-7)式所定義的對數(shù)似然比公式及(-14)、(-15)和(-16),為: (-19)由于編碼器是系統(tǒng)碼(),表達式中的轉(zhuǎn)移概率是與狀態(tài)值和無關(guān)的。因此,將這個條件代入(-19)式的分子和分母,則有: (-20)根據(jù)條件(或,變量是均值為1或-1和方差為的高斯變量,因此對數(shù)似然比依然是等于: (-21)其中, (-22)是一個由編碼器引入的冗余信息函數(shù),一般情況下和的符號一樣,因此可以改進每一個解碼器數(shù)據(jù)比特的對數(shù)似然比。這個數(shù)值代表了解碼器提供的外在信息,但它并不依賴于解碼器的輸入,這個性質(zhì)可以用來對兩個并行級連編碼器進行解碼。MAP算法非常復(fù)雜,運算量極大,運算中不僅有大量的乘法和加法,還有在數(shù)字電路中較難實現(xiàn)的指數(shù)和對數(shù)運算,這極大的影響了MAP算法的實用。Koch和Baier及Erfanian等人提出-Log-MAP算法,大大地簡化了MAP算法的復(fù)雜性,由于計算中做了一定地近似,這種算法不是最優(yōu)的。Robertson等人對-Log-MAP算法做了一定地修正,被稱作Log―MAP算法。本文中只對Log-MAP算法進行了仿真。Log-MAP算法在MAP算法中將似然值運算全部用對數(shù)似然值表示,通過一定的簡化,可將乘法運算變成加法運算,即(式4-23)在該式中?(*)是一個相關(guān)函數(shù)。-Log-MAP算法-Log-MAP對MAP所做的修改是直接在對數(shù)域里進行計算省去了許多指數(shù)和對數(shù)運算,大大簡化了運算量。在―Log―MAP譯碼過程中主要忽略了(式4-23)式中的對數(shù)分量,令(式4-24)則有(式4-25)SOVA算法SOVASoftOutputViterbiAlgorithm是對原Viterbi算法做了一定的修改,使其適合于Turbo碼的迭代譯碼。所作的修改主要有兩個方面:1在柵格圖中選擇最大似然路徑時要把先驗信息考慮進去;2不僅要把每個比特UK是+l或一1譯碼出來,同時也要給出Uk譯碼的可靠度,以LLR形式給出LUk|Y,作為“Softoutput”,從中可以獲得一些關(guān)于UK的先驗信息,為下次迭代所使用。這正是此算法被命名為SOVA的原因。SOVA算法在刪除低似然路徑是保留必要的信息,以給每個輸出比特提供一個可信度,其基本思想是利用最優(yōu)路徑和被刪路徑的度量差,差值越小意味著這次選取的可靠性越低。5Turbo碼的性能仿真在本文的設(shè)計中,主要通過基于MATLAB自帶的Simulink工作環(huán)境進行仿真。5.1仿真軟件介紹計算機對科學技術(shù)的幾乎一切領(lǐng)域產(chǎn)成了極其深遠的影響。熟練掌握并利用計算機進行科學計算研究及工程應(yīng)用已是廣大科研設(shè)計人員所必備的基本技能之一。從事科學研究和工程應(yīng)用時候所遇到的最大的困擾大抵是我們在計算涉及矩陣運算或畫圖時,采用Fortran、C及C++等計算機語言進行程序設(shè)計是一項十分麻煩的工作,不僅需要對所利用的有關(guān)算法有深刻的了解,還需要掌握所用語言的語法及編程技巧。為了準確的把一個控制系統(tǒng)的復(fù)雜模型輸入計算機,然后對之進行進一步的分析與仿真,1990年Mathworks公司為Matlab提供了新的控制系統(tǒng)模型圖形輸入與仿真工具Simulab,該工具很快在控制界得到了廣泛的使用。但因其名字與著名的軟件公司Simula相似,所以在1992年正式改名為Simulink,此軟件有兩個明顯的功能:仿真與連接,亦即利用鼠標在模型窗口上畫出所需的控制系統(tǒng)模型,然后利用該軟件提供的功能對系統(tǒng)直接進行仿真處理。很明顯,這種做法使得一個很復(fù)雜的系統(tǒng)的輸入相當容易。Simulink的出現(xiàn),使得Matlab為控制系統(tǒng)的仿真及其在CAD等中的應(yīng)用打開了嶄新的局面。1、Matlab的特點Matlab作為一種數(shù)值計算和與圖形處理工具軟件,其特點是語法結(jié)構(gòu)簡明、數(shù)值計算高效、圖形處理完備、易學易用,它在矩陣代數(shù)數(shù)值計算、數(shù)字信號處理、震動理論、神經(jīng)網(wǎng)絡(luò)控制、動態(tài)仿真等領(lǐng)域都有廣泛的應(yīng)用。與C、C++、Fortran等高級語言相比,Matlab不但在數(shù)學語言的表達與解釋方面表現(xiàn)出人機交互的高度一致,而且具有優(yōu)秀高技術(shù)計算環(huán)境所不可缺少的如下特征:高質(zhì)量、高可靠的數(shù)值計算能力;基于向量、數(shù)組和矩陣的高維設(shè)計語言;高級圖形和可視化數(shù)據(jù)處理的能力;廣泛解決各學科各專業(yè)領(lǐng)域內(nèi)復(fù)雜問題的能力;擁有一個強大的非線性系統(tǒng)仿真工具箱――Silmulink;支持科學和工程計算標準的開放式、可交互結(jié)構(gòu);跨平臺兼容。2、Matlab工具箱和內(nèi)容目前Matlab已經(jīng)成為國際上最流行的軟件之一,它除了傳統(tǒng)的交互式編程外,還提供了豐富可靠的矩陣運算。圖形繪制、數(shù)據(jù)處理、圖象處理、方便的Windows編程等便利工具。出現(xiàn)了各種以Matlab為基礎(chǔ)的使用工具箱,廣泛的應(yīng)用于自動控制、圖象信號處理、生物醫(yī)學工程、語言處理、雷達工程、信號分析、震動理論、時序分析與建模、化學統(tǒng)計學、優(yōu)化設(shè)計等領(lǐng)域,并表現(xiàn)出一般高級語言難以比擬的優(yōu)勢。較為常見的工具箱主要包括:控制系統(tǒng)工具箱(Contorlsystemstoolbox)系統(tǒng)識別工具箱(Systemsidentificationtoolbox)多變量頻率設(shè)計工具箱(Multivariablefreguencydesigntoolbox)魯棒控制工具箱(Robustcontroltoolbox)分析與綜合工具箱(analysisandsynthesistoolbox)神經(jīng)網(wǎng)絡(luò)工具箱(Neuralnetworktoolbox)最優(yōu)化工具箱(Optimizationtoolbox)信號處理工具箱(Signalprocessingtoolbox)模糊推理數(shù)據(jù)工具箱(Fuzzyinferencesystemtoolbox)小波分析工具箱(Wavelettoolbox)通信工具箱(Communicationstoolbox)3、Simulink簡介Simulink是實現(xiàn)動態(tài)系統(tǒng)模型仿真的一個集成環(huán)境,她的存在使Matlab的功能得到進一步的擴展。這種擴展的意義表現(xiàn)在:(1)實現(xiàn)可視化建模。在Windws環(huán)境下,用戶通過簡單的鼠標操作就可以建立直觀的系統(tǒng)模型,并進行仿真;(2)實現(xiàn)多工作環(huán)境內(nèi)文件互用和數(shù)據(jù)交換,如Sinulink與Matlab,Simulink與Fortran、C和C++,Simulink與實時硬件工作環(huán)境的信息交換都可以方便的實現(xiàn);(3)把理論研究和工程實現(xiàn)有利地結(jié)合在一起。Simulink為用戶提供了用方框圖進行建模的圖形接口,采用這種結(jié)構(gòu)化模型就像紙和筆一樣容易,它與系統(tǒng)仿真軟件包用微分方程和差分方程建模相比具有更直觀、方便、靈活的優(yōu)點。由于Matlab與Simulink是集成在一起的,因此用戶可以在這兩種環(huán)境下對自己的模型進行仿真。BernoulliBinaryGenerator來表示,產(chǎn)生序列中0和1出現(xiàn)的概率基本相等,該模塊以1秒為周期。信宿為一個輸出口,將得到的數(shù)據(jù)輸出到工作區(qū)內(nèi)。Turbo編碼器、Turbo譯碼器、信道與噪聲則是Simulink子系統(tǒng),復(fù)雜的算法由S函數(shù)調(diào)用M文件實現(xiàn)。信道子系統(tǒng)有各種不同的信道可供選取,可以方便的仿真Turbo碼在不同信道下的性能,本文中只選用了AWGN信道模型對Turbo碼的編譯碼算法進行了仿真研究。Turbo碼譯碼器部分則采用不同的譯碼子程序,比較各種譯碼算法對Turbo碼性能的影響。交織子程序在Turbo編碼子系統(tǒng)中被調(diào)用,主要完成對信息比特序列進行位置的隨機置換;抽取子程序在Turbo編碼子系統(tǒng)中被調(diào)用,實現(xiàn)數(shù)據(jù)的抽取和重復(fù)過程;Log-MAP譯碼子程序、MAP算法譯碼子程序、SOVA在該Turbo碼仿真系統(tǒng)中選擇的部分參數(shù)如下:交織器類型選擇:偽隨機交織器。N:交織器的大小,也等于Turbo碼的分組長度,即每個分組所包含的信息序列的長度。信道類型選擇:加性高斯白噪聲信道AWGN。譯碼算法選擇:Log-MAP,MAP和SOVA三種譯碼算法。5.3編碼子系統(tǒng)在本系統(tǒng)中,Turbo碼的編碼器由兩個分量碼編碼器通過交織器并行級聯(lián)而成,其碼率可以選擇1/2、1/3等。Turbo編碼器的輸入信號在進入卷積編碼器之前首先通過零填充模塊ZeroPad,在輸入數(shù)據(jù)幀中添加6個0,使在輸入數(shù)據(jù)幀編碼結(jié)束之后,分量碼編碼器的寄存器回到全零狀態(tài)。分量碼編碼器采用的是兩個相同的帶反饋的卷積碼編碼器,Turbo編碼就是這兩個卷積碼編碼器的輸出信號經(jīng)過信號抽取和重復(fù)之后得到的輸出信號。卷積碼編碼器反饋多項式為dD1+D2+D3。在仿真當中,選擇碼率為1/2,卷積碼的兩個生成多項式分別是n0D1+D+D3和n1D1+D+D2+D3,八進制就分別為15、17,約束長度為4。首先用貝努利發(fā)生器BernoulliBinaryGenerator產(chǎn)生序列,從參數(shù)面板調(diào)節(jié)幀大小和采樣率。原始序列進入第1卷積編碼器ConvolutionalEncoder,并經(jīng)過隨機交織器RandomInterleaver后進入第2卷積編碼器ConvolutionalEncoderl。兩個刪余模塊同時接在第1卷積編碼器的后面。第一個刪余模塊puncture的輸出為第1卷積編碼輸出的奇序列,第二個刪余模塊puncture1的輸出為第1卷積編碼輸出的偶序列。第三個刪余模塊puncture2接在第2卷積編碼器的后面,其輸出第2卷積編碼輸出的偶序列。這3路序列經(jīng)過串并變換后合成一路序列,作為Turbo編碼輸出。圖5-1Turbo碼編碼仿真的Simulink模塊示意5.4譯碼子系統(tǒng)由于Turbo碼的編碼部分由兩個子編碼器組成,在其譯碼部分也就相應(yīng)有兩個子譯碼器。該模塊可以調(diào)用Log―MAP譯碼子程序、MAP算法譯碼子程序、SOVA算法子程序口3供譯碼模塊調(diào)用。這些算法通過仿真模塊中的S函數(shù)實現(xiàn),并且用參數(shù)誤碼率BER對三種算法的性能進行了比較。圖5-2Turbo碼譯碼仿真的Simulink模塊示意5.5仿真結(jié)果與分析圖5-3Turbo碼系統(tǒng)仿真的Simulink模塊示意1.交織長度對Turbo碼的影響選擇不同的交織長度的比較圖如圖5-4所示。由圖可見,交織長度越大,Turbo碼的糾錯性能也就越好,這是因為交織器產(chǎn)生的交織增益,使得Turbo碼的性能隨幀長呈指數(shù)增長。但是,隨著交織器的增大,幀長越長,迭代譯碼的復(fù)雜程度也隨之增加,編碼時延、傳輸時延、譯碼時延等越大,所以在實際應(yīng)用中,需要根據(jù)系統(tǒng)要求選定最佳交織長度。圖5-4不同交織長度對Turbo碼性能的影響2.不同譯碼算法對Turbo碼的影響圖5-5給出了在其它條件相同時采用MAP、LogMAP、SOVA譯碼算法的結(jié)果。從圖中可以看出,在三種算法中,Log-MAP算法的性能最好,但是,Log-MAP的實現(xiàn)也是三種算法中最復(fù)雜的,特別在實際應(yīng)用中要在硬件上實現(xiàn)是很難的,這才導(dǎo)致了SOVA這些簡化算法的產(chǎn)生。MAP算法的性能與Log-MAP算法的性能大致相當。在這三種算法中,SOVA算法最簡單,同時其性能也最差。所以在實際應(yīng)用中,需要根據(jù)系統(tǒng)要求選擇合適的譯碼算法。在比較低的信噪比情況下,SOVA只是次優(yōu)的算法,如果要獲得比較好的糾錯效果,最好是基于Log-MAP算法進行修正。圖5-5不同譯碼算法的對比3.不同迭代次數(shù)對Turbo碼的性能的影響迭代譯碼結(jié)構(gòu)是Turbo碼具有良好譯碼性能的一個重要原因。在交織長度為640、采用Log―MAP譯碼算法的情況下,分別迭代1次、2次、3次進行比較??梢钥闯?,迭代次數(shù)越多,誤碼率越低,譯碼性能優(yōu)越。同時,進一步可以發(fā)現(xiàn)迭代次數(shù)存在一個飽和值,一般5~10次即飽和,當達到飽和時,即使次數(shù)增加,譯碼的性能也不會明顯改進,反而是迭代次數(shù)的增加會造成不必要的計算負擔,所以在實際系統(tǒng)中要考慮飽和點來設(shè)計迭代次數(shù)。圖5-6不同迭代次數(shù)對Turbo碼性能的影響結(jié)論利用MATLAB的強大運算功能,基于MATLAB/Simulink進行Turbo碼的編譯碼系統(tǒng)仿真,設(shè)計方便、快捷,極大的減輕了工作量。在設(shè)計過程中可以對信噪比特性,隨時更改參數(shù),以達到對各種算法優(yōu)缺點的理解。經(jīng)過近三個月的摸索和學習,在老師的指導(dǎo)和同學的幫助下我完成了此研究。在研究的實現(xiàn)中我主要做了如下工作:Turbo碼編譯碼算法的理解;(2)設(shè)計仿真系統(tǒng)模型加以分析比較;(3)分析比較各種算法,特別是三種譯碼算法的性能比較。通過自行設(shè)計系統(tǒng)模型與仿真,加深了對Turbo碼的理解。從理論上進行分析比較,再從仿真圖形中進行對比,對自己在學習中的誤區(qū)改善具有良好的指導(dǎo)作用。致謝參考文獻O.TakeshiaandD.Costello.Newdeterministicinterleaverdesignsforturbocodes.IEEETransactionInformationTheory,2000,Vol.46:1988-2006.X.Liu,G.Zhang,Thedesignofanewinterleaverforturbocodes.JournalofSunYat-SenUniversityNaturalScienceEdition,2000,396:39-43.王會.王忠.Turbo碼性能分析與仿真.2002袁東風,張海霞.寬帶移動通信中的先進信道編碼技術(shù).北京郵電大學出版社,2004曹雪紅.張宗橙信息論與編碼.2004(美)傳特.通信系統(tǒng)仿真原理與無線應(yīng)用.機械工業(yè)出版社,2005周建興.MATLAB從入門到精通.人民郵電出版社,2008張德豐.MATLAB/Simulink建模與仿真.電子工業(yè)出版社,2009邵玉斌.MATLAB/SIMULINK通信系統(tǒng)建模與仿真實例分析.清華大學出版社,2008馮鑌,劉文予,朱光喜,馬展.AWGN信道下Turbo碼誤比特率模型.計算機科學,2006,334:114-117.(美)麥克伊利斯著,李斗等譯.信息論與編碼理論(第二版).電子工業(yè)出版社,北京,2004年2月.王丙義編著.信息分類與編碼.國防工業(yè)出版社,北京,2003年7月.袁東風,張海霞等編著.?寬帶移動通信中的先進信道編碼技術(shù).北京郵電大學出版社,北京,2004年03月.?付永慶,劉雅琴,杜海明.Turbo碼譯碼的收斂性與停止迭代判據(jù).計算機工程,2004,3019:164-165.傅祖蕓,趙建中編著.信息論與編碼.電子工業(yè)出版社,北京,2006年04月附錄functionen_outputencodermx,g,alpha,puncture%usesinterleavermap'alpha'%ifpuncture1,unpunctured,producesarate1/3outputoffixedlength%ifpuncture0,punctured,producesarate1/2output%multiplexerchoosesoddcheckbitsfromRSC1%andevencheckbitsfromRSC2%determinetheconstraintlengthK,memorym%andnumberofinformationbitsplustailbits.[n,K]sizeg;mK-1;L_infolengthx;L_totalL_info+m;%generatethecodewordcorrespondingtothe1stRSCcoder%end1,perfectlyterminated;inputx;output1rsc_encodeg,input,1;%makeamatrixwithfirstrowcorresponingtoinfosequence%secondrowcorresponsingtoRSC#1'scheckbits.%thirdrowcorresponsingtoRSC#2'scheckbits.y1,:output11:2:2*L_total;y2,:output12:2:2*L_total;%interleaveinputtosecondencoderfori1:L_totalinput11,iy1,alphai;endoutput2rsc_encodeg,input11,1:L_total,-1;y3,:output22:2:2*L_total;%paralelltoserialmultiplextogetoutputvector%puncture0:rateincreasefrom1/3to1/2;%puncture1;unpunctured,rate1/3;ifpuncture0%unpuncturedfori1:L_totalforj1:3en_output1,3*i-1+jyj,i;endendelse%puncturedintorate1/2fori1:L_totalen_output1,n*i-1+1y1,i;ifremi,2%oddcheckbitsfromRSC1en_output1,n*iy2,i;else%evencheckbitsfromRSC2en_output1,n*iy3,i;endendend%antipodalmodulation:+1/-1en_output2*en_output-onessizeen_output;functionyrsc_encodeg,x,terminated%encodesablockofdatax0/1witharecursivesystematic%convolutionalcodewithgeneratorvectorsing,and%returnstheoutputiny0/1.%ifterminated0,thetrellisisperfectlyterminated%ifterminated0,itisleftunterminated;%determinetheconstraintlengthK,memorym,andrate1/n%andnumberofinformationbits.[n,K]sizeg;mK-1;ifterminated0L_infolengthx;L_totalL_info+m;elseL_totallengthx;L_infoL_total-m;end%initializethestatevectorstatezeros1,m;%generatethecodewordfori1:L_totalifterminated0|terminated0&iL_infod_kx1,i;elseifterminated0&iL_info%terminatethetrellisd_kremg1,2:K*state',2;enda_kremg1,:*[d_kstate]',2;[output_bits,state]encode_bitg,a_k,state;%sincesystematic,firstoutputisinputbitoutput_bits1,1d_k;yn*i-1+1:n*ioutput_bits;endfunction[output,state]encode_bitg,input,state%Thisfunctiontakesasaninputasinglebittobeencoded,%aswellasthecoeficientsofthegeneratorpolynomialsand%thecurrentstatevector.%Itreturnsasoutputnencodeddatabits,where1/nisthe%coderate.%therateis1/n%kistheconstraintlength%mistheamountofmemory[n,k]sizeg;mk-1;%determinethenextoutputbitfori1:noutputigi,1*input;forj2:koutputixoroutputi,gi,j*statej-1;end;endstate[input,state1:m-1];functionL_alllogmaporec_s,g,L_a,ind_dec%Log_MAPalgorithmusingstraightforwardmethodtocomputebranchmetrics%noapproximationisused.%Canbesimplifiedto-Log-MAPbyusingapproximationlne^x+e^yx,y.%Input:rec_s:scaledreceivedbits.%rec_s0.5*L_c*yk2*a*rate*Eb/N0*yk%g:codegeneratorforthecomponentRSCcode,inbinarymatrixform.%L_a:aprioriinfo.forthecurrentdecoder,%scrambledversionofextrinsicInftyo.ofthepreviousdecoder.%ind_dec:indexofdecoder.Either1or2.%Encoder1isassumedtobeterminated,whileencoder2isopen.%%Output:L_all:log-likelihoodratioofthesymbols.Completeinformation.%Totalnumberofbits:Inftyo.+tailL_totallengthrec_s/2;[n,K]sizeg;mK-1;nstates2^m;%numberofstatesinthetrellis%Setupthetrellis[next_out,next_state,last_out,last_state]trellisg;Infty1e10;%InitializationofAlphaAlpha1,10;Alpha1,2:nstates-Infty*ones1,nstates-1;%InitializationofBetaifind_dec1BetaL_total,10;BetaL_total,2:nstates-Infty*ones1,nstates-1;elseifind_dec2BetaL_total,1:nstateszeros1,nstates;elsefprintf'ind_decislimitedto1and2!\n';end%Traceforward,computeAlphafork2:L_total+1forstate21:nstatesgamma-Infty*ones1,nstates;gammalast_statestate2,1-rec_s2*k-3+rec_s2*k-2*last_outstate2,2....-log1+expL_ak-1;gammalast_statestate2,2rec_s2*k-3+rec_s2*k-2*last_outstate2,4....+L_ak-1-log1+expL_ak-1;ifsumexpgamma+Alphak-1,:1e-300Alphak,state2-Infty;elseAlphak,state2logsumexpgamma+Alphak-1,:;endendtempkAlphak,:;Alphak,:Alphak,:-tempk;end%Tracebackward,computeBetaforkL_total-1:-1:1forstate11:nstatesgamma-Infty*ones1,nstates;gammanext_statestate1,1-rec_s2*k+1+rec_s2*k+2*next_outstate1,2....-log1+expL_ak+1;gammanext_statestate1,2rec_s2*k+1+rec_s2*k+2*next_outstate1,4....+L_ak+1-log1+expL_ak+1;ifsumexpgamma+Betak+1,:1e-300Betak,state1-Infty;elseBetak,state1logsumexpgamma+Betak+1,:;endendBetak,:Betak,:-tempk+1;end%Computethesoftoutput,log-likelihoodratioofsymbolsintheframefork1:L_totalforstate21:nstatesgamma0-rec_s2*k-1+rec_s2*k*last_outstate2,2....-log1+expL_ak;gamma1rec_s2*k-1+rec_s2*k*last_outstate2,4...+L_ak-log1+expL_ak;temp0state2expgamma0+Alphak,last_statestate2,1+Betak,state2;temp1state2expgamma1+Alphak,last_statestate2,2+Betak,state2;endL_allklogsumtemp1-logsumtemp0;endfunctionL_allsovarec_s,g,L_a,ind_dec%ThisfunctionimplememtsSoftOutputViterbiAlgorithmintracebackmode%Input:%rec_s:scaledreceivedbits.rec_sk0.5*L_ck*yk%L_c4*a*Es/No,reliabilityvalueofthechannel%y:receivedbits%g:encodergeneratormatrixinbinaryform,g1,:forfeedback,g2,:forfeedforward%L_a:aprioriinformationabouttheinfo.bits.Extrinsicinfo.fromtheprevious%componentdecoder%ind_dec:indexofthecomponentdecoder.%1:componentdecoder1;Thetrellisisterminatedtoallzerostate%2:componentdecoder2;Thetrellisisnotperfectlyterminated.%Output:%L_all:logPx1|y/Px-1|y%%Framesize,info.+tailbitsL_totallengthL_a;[n,K]sizeg;mK-
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 兼職跑腿員工合同范例
- 義賣贊助合同范例
- 借款合同范例txt
- 2025年幼兒園新綱要試題及答案
- 免責保險合同范例
- 假結(jié)婚合同范例
- 中醫(yī)診所合同范例
- 修建裝卸碼頭合同范例
- 農(nóng)村私人修路合同范例
- 內(nèi)部承包協(xié)議合同范例
- 《2024年 《法學引注手冊》示例》范文
- 2022年4月07138工程造價與管理試題及答案含解析
- 項目部施工班組管理辦法
- 氣管插管操作并發(fā)癥
- JT∕T 795-2023 事故汽車修復(fù)技術(shù)規(guī)范
- 預(yù)防接種門診驗收表4-副本
- 2024年交管12123學法減分考試題庫及完整答案(典優(yōu))
- 數(shù)智時代的AI人才糧倉模型解讀白皮書(2024版)
- (2024年)高中化學校本課程教材《綠色化學》
- 中醫(yī)-血家藥方四物湯
- 2024年北師大版八年級下冊數(shù)學第二章綜合檢測試卷及答案
評論
0/150
提交評論