TURBO碼的編譯碼原理及matlab仿真_第1頁
TURBO碼的編譯碼原理及matlab仿真_第2頁
TURBO碼的編譯碼原理及matlab仿真_第3頁
TURBO碼的編譯碼原理及matlab仿真_第4頁
TURBO碼的編譯碼原理及matlab仿真_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、Turbo碼的編譯碼原理及MATLAB仿真 摘要糾錯碼技術(shù)作為改善數(shù)字通信可靠性的一種有效手段,在數(shù)字通信的各個領(lǐng)域中獲得極為廣泛的應(yīng)用。Turbo碼是并行級聯(lián)遞歸系統(tǒng)卷積碼,在接近Shannon限的低信噪比下能獲得較低的誤碼率,現(xiàn)已被很多系統(tǒng)所采用。本文分析了Turbo碼編碼譯碼的原理,為了使Turbo碼仿真更容易,研究并建立了基于Matlab中Simulink通信模塊的Turbo碼仿真模型。使用所建立的模型進(jìn)行仿真,結(jié)果表明,在信噪比相同的情況下,交織長度越大、迭代次數(shù)越多、譯碼算法越優(yōu),Turbo碼性能越好,設(shè)計實際系統(tǒng)時,應(yīng)綜合考慮各因素。關(guān)鍵詞:Turbo碼;Simulink仿真;交

2、織長度;迭代次數(shù)AbstractAs an effective means to improve the reliability of digital communication, error correcting code technology is widely used in the field of digital communication.Turbo code is a parallel concatenated recursive systematic convolutional code, which can obtain lower bit error rate in the

3、 low SNR near Shannon limit,which is now used by many systems.In this paper,the principle of Turbo coding and decoding is analyzed,in order to make the Turbo Code simulation easier,a Turbo code simulation model based on Simulink module of Matlab is studied. Simulation result using the established mo

4、del shows that the longer interleaving length,the more iteration times and the better decoding algorithm bring the better Turbo code performance with the same SNR value.Keywords:Turbo code;Simulink simulation;Interleaving length;Iteration times;引言根據(jù)Shannon1有噪信道編碼定理,在信道傳輸速率R不超過信道容量C的前提下,只有在碼組長度無限的碼集合

5、中隨機(jī)地選擇編碼碼字并且在接收端采用最大似然譯碼算法時,才能使誤碼率接近為零。但是最大似然譯碼的復(fù)雜性隨編碼長度的增加而加大,當(dāng)編碼長度趨于無窮大時,最大似然譯碼是不可能實現(xiàn)的。所以人們認(rèn)為隨機(jī)性編譯碼僅僅是為證明定理存在性而引人的一種數(shù)學(xué)方法和手段,在實際的編碼構(gòu)造中是不可能實現(xiàn)的。直到Turbo的出現(xiàn),人們才改變了這種看法。1993年,Claud Bernou等人在國際通信會議(ICC' 93)上提出了并行級聯(lián)卷積碼(PCCC)即Turbo碼,由于它很好地應(yīng)用了Shannon信道編碼定理中的隨機(jī)性編譯碼條件,從而獲得了幾乎接近Shannon理論極限的譯碼性能。Turbo碼巧妙地將兩

6、個簡單分量碼通過偽隨機(jī)交織器并行級聯(lián)來構(gòu)造具有偽隨機(jī)特性的長碼,并通過在兩個軟輸入/軟輸出( SISO)譯碼器之間進(jìn)行多次迭代實現(xiàn)了偽隨機(jī)譯碼。采用迭代譯碼的方法來提高通信系統(tǒng)的譯碼性能是Turbo碼的最大特點。Turbo碼的編碼器、譯碼器結(jié)構(gòu)繁瑣,是一種非常復(fù)雜的信道編碼方案,這使得對Turbo碼的理論分析十分困難,且只能對運(yùn)算復(fù)雜度作宏觀分析,對Turbo碼的具體實現(xiàn)并沒有一個清楚的度量。因此,使用計算機(jī)對Turbo碼進(jìn)行仿真分析是十分必要的。本文分析了Turbo碼編碼譯碼的原理,考慮到Turbo碼系統(tǒng)編譯碼的數(shù)據(jù)處理量很大,利用生成矩陣對信息序列進(jìn)行編碼、譯碼時的迭代計算等等,都涉及了矩

7、陣運(yùn)算,故采用Matlab/Simulink來進(jìn)行建模仿真。1 Turbo碼編碼原理1.1Turbo碼的編碼結(jié)構(gòu)Turbo碼的典型編碼器如圖1所示,Turbo碼編碼器主要由分量編碼器、交織器復(fù)接器組成。分量碼一般選擇為遞歸系統(tǒng)卷積(RSC,Recursive Systematic Convolutional)碼2,當(dāng)然也可以是分組碼(BC, Block Code)、非遞歸卷積(NRC,Non-Recursive Convolutional)碼以及非系統(tǒng)卷積(NSC,Non-Systematic Convolutional)碼,但從后面的分析將看到,分量碼的最佳選擇是遞歸系統(tǒng)卷積碼。通常兩個分量

8、碼采用相同的生成矩陣,當(dāng)然分量碼也可以是不同的。以分量碼為RSC為例,分量編碼器為遞歸系統(tǒng)卷積碼(RSC)編碼器。第一個RSC之前不使用交織器,后續(xù)的每個RSC之前都有一個交織器與之對應(yīng)。一個Turbo編碼器中原則上可采用多個RSC,但通常只選用2個,因為過多的RSC分量編碼器將使得譯碼非常復(fù)雜而難以實現(xiàn)。通常的Turbo碼編碼器中,長度為N的信息序列在送入第一個分量編碼器的同時作為系統(tǒng)輸出直接送至復(fù)接器,同時經(jīng)過一個N位交織器,形成一個新序列(長度與內(nèi)容沒變,但比特位置經(jīng)過重新排列。與分別傳送到兩個分量碼編器(RSC1與RSC2)。一般情況下,兩個分量碼編碼器的結(jié)構(gòu)相同,生成分量碼校驗序列和

9、。與未編碼的信息序列經(jīng)過復(fù)接后,生成Turbo碼序列,將編碼序列調(diào)制后,即可發(fā)射進(jìn)入信道傳輸。 分量編碼器CRS1 圖1 Turbo碼的編碼器結(jié)構(gòu)2.2 遞歸系統(tǒng)卷積碼(RSC)糾錯編碼是將k位的輸入信息碼元編成n位的輸出信道碼元,在編碼中,可以采用一定的算法,使輸出碼元中的k位與輸入碼元一致。這樣,輸入碼元與輸出碼元有明顯的對應(yīng)關(guān)系,這種碼稱為系統(tǒng)碼。系統(tǒng)碼中一致的這k位數(shù)據(jù)稱為信息位3,輸出碼元其余的n-k位稱為校驗位,不滿足這種關(guān)系的碼稱為非系統(tǒng)碼。同樣的,卷積碼可以分為系統(tǒng)卷積(SC,Systematic Convolutional)碼與非系統(tǒng)卷積(NSC,Non-Systematic

10、 Convolutional)碼兩大類。以下圖2的(2,1,2)卷積碼為例,設(shè)時刻k的輸入碼元為,輸出碼元為和,則輸出碼元與輸入碼元的關(guān)系為 圖2 卷積碼 (2-1) (2-2)式中,的系數(shù),的系數(shù)。非遞推系統(tǒng)卷積碼,約束長度K=3,但碼生成多項式為Gl=4,G2=5。它的輸出碼元與輸入碼元的關(guān)系為 (2-3) (2-4)系統(tǒng)碼的結(jié)構(gòu)比非系統(tǒng)碼的簡單,模2加法器和連線的數(shù)量都比非系統(tǒng)碼的要少。RSC碼是由一個NSC碼編碼器通過反饋,并使等于輸入信息比特而構(gòu)成的。對RSC編碼器,移位寄存器輸入不再是數(shù)據(jù)比特,而是一個新的二元變量。如果=,輸出為式(2-4),其中由代替,而由下式遞推計算 (2-5

11、)式中 (2-6)式(2-5)可寫為 (2-7)下面討論為什么選擇RSC編碼器作為Turbo碼的子編碼器。首先,RSC碼具有系統(tǒng)碼的優(yōu)點。因為系統(tǒng)碼在從碼字恢復(fù)出信息序列時無需求逆,這一特性使用戶在譯碼時無需變換碼字而直接對接收的碼序列進(jìn)行譯碼。所以,RSC碼對于NSC碼而言譯碼簡單、快速。其次,還可以從Turbo碼重量分布的角度給予解釋。通過觀察遞歸卷積碼與非遞歸卷積碼的低重量信息序列所產(chǎn)生的碼字的分布情況,可以發(fā)現(xiàn)二者之間有明顯的不同,低重量的輸入信息序列經(jīng)過非遞歸卷積編碼器之后,只能產(chǎn)生低重量的監(jiān)督碼元序列,低重量碼字的增加將嚴(yán)重影響Turbo碼的性能,而低重量的信息序列經(jīng)過遞歸卷積編碼

12、之后,輸出的監(jiān)督碼元的重量分布在一個很寬的范圍之內(nèi),這是由其反饋特性所造成的。因此,用非遞歸卷積碼所構(gòu)造的Turbo碼的性能比較差,Turbo碼需要遞歸卷積碼實現(xiàn)。最后,從差錯控制編碼4的相關(guān)文獻(xiàn)中也可知,在對比實驗中,非系統(tǒng)卷積碼(NSC)的BER性能在高信噪比時比約束長度相同的非遞歸系統(tǒng)碼要好,而在低信噪比時情況卻正好相反13。遞歸系統(tǒng)卷積(RSC)碼綜合了NSC碼和系統(tǒng)碼的特性,雖然它與NSC碼具有相同的trellis結(jié)構(gòu)和自由距離,但是在高碼率的情況下,對任何信噪比,它的性能均比等效的NSC碼要好。由于系統(tǒng)遞歸卷積碼具有以上特點,并且能改善誤碼率,所以通常選擇RSC碼作為Turbo碼的

13、子編碼器。NSC的可由生成算子和來描述,也可將其表示為矩陣形式RSC可以表示為。NSC中的第一個支路輸出被反饋到了輸入端,從而引起了生成矩陣形式上的變化。RSC的矩陣表達(dá)式中,1對應(yīng)著輸出的系統(tǒng)信息序列,對應(yīng)著編碼器的前饋輸出,對應(yīng)著反饋到輸入端的成分。研究指出RSC的原始生成多項式的基礎(chǔ)上加上適當(dāng)?shù)姆答?,往往能獲得好碼,因為應(yīng)用了反饋之后,可以獲得最大長度的編碼序列,根據(jù)分組碼的知識,我們知道這給碼序列增加了隨機(jī)性,從而能獲得更好的誤比特率。2.3 交織器交織器其實是通信系統(tǒng)中進(jìn)行數(shù)據(jù)處理而采用的一種技術(shù),交織器從其本質(zhì)上來說就是一種實現(xiàn)最大限度的改變信息結(jié)構(gòu)而不改變信息內(nèi)容的器件,也就是使

14、在信道傳輸過程中所突發(fā)產(chǎn)生集中的錯誤最大限度的分散化4,不規(guī)則化。我們設(shè)X為交織器的輸入,Y為交織器的輸出,I就是交織器,所以。一般的應(yīng)用交織器往往都是有延時的,我們有必要引入一個新的概念:交織器的延時,它是指在時刻i,輸出的與此時此刻或以前的輸入有關(guān),且,用式子來表示就是,相應(yīng)的為交織器的最小延時。交織器是Turbo碼編碼器主要的組成部分,也是Turbo碼的重要特征之一。線性碼的糾錯譯碼性能實質(zhì)上是由碼字的重量分布決定的,Turbo碼也是線性碼,所以其性能也是由碼字重量分布決定的,由于交織器實際上決定了Turbo碼的重量分布,所以,給定了卷積編碼器后,Turbo碼的性能主要是由交織器決定的。

15、在低SNR時,交織器的大小將直接影響著Turbo碼的差錯性能。因為交織長度大時,兩個子編碼器接收的輸入序列的相關(guān)性就可以很低,就越有利于譯碼迭代,從而使得迭代結(jié)果越準(zhǔn)確。在高SNR時,是Turbo碼的低重量碼字、最小漢明距離或距離譜決定著它可以達(dá)到的BER性能,所以交織器的設(shè)計顯著的影響著低重量碼字或距離譜,重量分布是反映糾錯碼性能的重要指標(biāo)5,所謂具有好的重量分布,就是要盡量減少低重量的碼字的數(shù)量。如果沒有交織器的作用,Turbo碼的兩個子編碼器的輸入就相同。如果其中一個經(jīng)編碼后產(chǎn)生低重量的碼字,那么該序列在經(jīng)過第二個字編碼器輸出后也會產(chǎn)生低重量的碼字。反之,加入交織器,由于交織器對輸入序列

16、進(jìn)行了置換,使得數(shù)據(jù)在進(jìn)入第二個編碼器之前被打亂,也就改變了原來信息的排列方式,所以Turbo碼的兩個子編碼器同時產(chǎn)生低重量輸出的可能性就更小了,也就是說交織器減小了Turbo碼產(chǎn)生低重量碼字的概率,從而可以使Turbo碼有比較好的糾錯性能6。在Turbo碼中,交織器的這種使輸入碼元符號的順序盡可能隨機(jī)分布的作用,將使碼元符號之間的相關(guān)性減弱,使進(jìn)入各個子譯碼器的信息序列之間不相關(guān)。這種去相關(guān)的結(jié)果使得各個子譯碼器可以彼此獨立的工作。彼此獨立進(jìn)行譯碼的結(jié)果是,軟判決信息可以互相利用,判決結(jié)果也因此逐漸準(zhǔn)確。從而,使Turbo碼譯碼器的性能遠(yuǎn)遠(yuǎn)好于其它類型的譯碼器,包括其他類型的級聯(lián)譯碼器。但是

17、,由于交織器的存在,使得Turbo碼存在一定的時延,數(shù)據(jù)幀越長,延時越大。而且交織器的長度會對Turbo碼的譯碼性能有很大的影響,交織深度越大,譯碼的誤碼率越低,傳輸質(zhì)量越高。所以,對于那些允許有較大時延的業(yè)務(wù),Turbo碼的作用就可以得到充分的發(fā)揮。但是,對于那些不允許有較大時延的業(yè)務(wù),Turbo碼的應(yīng)用卻受到了限制。3 Turbo碼譯碼3.1 Turbo碼的譯碼結(jié)構(gòu)通常情況下,Turbo碼編碼器使用兩個分量RSC,編碼輸出包含了信息序列(在譯碼端常常被稱為系統(tǒng)信息或系統(tǒng)比特)和兩個分量RSC編碼器輸出的校驗信息序列。對接收到的觀測序列進(jìn)行譯碼的時候,根據(jù)編碼結(jié)果,把譯碼器分解為兩個獨立的譯

18、碼器DECl和DEC27,分別跟兩個RSC分量編碼器相對應(yīng)。為了得到對原始信息的最優(yōu)估計,兩個譯碼器分別對系統(tǒng)信息和兩個校驗序列進(jìn)行譯碼時,應(yīng)該相互利用校驗序列所含的信息,采用迭代譯碼,通過分量譯碼器之問軟信息的交換來提高譯碼性能,這也是Turbo碼獲得優(yōu)異性能的根本原因之一。圖3 Turbo碼的譯碼結(jié)構(gòu)以碼率為1/3的Turbo碼為例,編碼輸出信號為 (3-1)對于BPSK調(diào)制,輸出信號與編碼碼字 (3-2)之間滿足關(guān)系 (3-3)假定接收信號為 (3-4)式中 (3-5) (3-6)和是服從均值為0,方差為的獨立同分布高斯隨機(jī)變量。在接收端,接收采樣經(jīng)過匹配濾波之后得到的接收序列 (3-7

19、)經(jīng)過串并轉(zhuǎn)換后得到如下三序列:系統(tǒng)接收信息序列 (3-8)用于DECl的接收校驗序列 (3-9)用于DEC2的接收校驗序列 (3-10)若其中某些校驗比特在編碼過程中通過刪余矩陣被刪除,則在接收校驗序列的相應(yīng)位置以“0”填充。上述3個接收序列、和,經(jīng)過信道置信度加權(quán)后作為系統(tǒng)信息序列,信息序列和送入譯碼器。對于噪聲服從分布N(0,No2)的AWGN信道來說,信道置信度定義為 (3-11)對于第k個被譯比特,Turbo譯碼器中每個分量譯碼器都包括系統(tǒng)信息、校驗信息和先驗信息。其中先驗信息由另一個分量譯碼器生成的外部信息經(jīng)過解交織后的對數(shù)似然比值。譯碼輸出為對數(shù)似然比,其中i=l,2。在迭代過程

20、中,分量譯碼器1的輸出可表示為系統(tǒng)信息、先驗信息和外部信息之和的形式=+ (3-12)式中 (3-13)為交織映射函數(shù)。在第一次迭代時 (3-14)從而 (3-15)由于分量譯碼器1生成的外部信息與先驗信息和系統(tǒng)信息無關(guān),故可以在交織后作為分量譯碼器2的先驗信息輸入,從而提高譯碼的準(zhǔn)確性。同樣,對于分量譯碼器2,其外部信息為輸出對數(shù)似然比減去系統(tǒng)信息(經(jīng)過交織映射)和先驗信息的結(jié)果,即=- (3-16)式中= (3-17)外部信息解交織后反饋為分量譯碼器1的先驗輸入,完成一輪迭代譯碼。隨著迭代次數(shù)的增加,兩個分量譯碼器得到的外部信息值對譯碼性能提高的作用越來越小,在達(dá)到一定的迭代次數(shù)后,譯碼性

21、能不再提高。這時根據(jù)分量譯碼器2的輸出對數(shù)似然比經(jīng)過解交織后再進(jìn)行硬判決即得到譯碼輸出。3.2 譯碼中軟信息的確定首先我們來討論硬判決和軟判決的概念和區(qū)別。硬判決和軟判決是指譯碼的時候?qū)邮盏降谋忍剡M(jìn)行量化的兩種形式。硬判決譯碼中,從信道接收到一個比特,即對其進(jìn)行量化,判斷其觀測值是0或者1,然后進(jìn)入譯碼器進(jìn)行譯碼計算。軟判決譯碼中,接收到一個比特的信息,并不立即對其進(jìn)行量化而得到觀測值,而是根據(jù)多個比特依照它們之間的相關(guān)性而進(jìn)行判決。理想的軟判決譯碼中,量化是基于無限比特的,而且從信道接收到的序列值立即進(jìn)入信道譯碼器參與譯碼計算8。假設(shè)信息序列經(jīng)過信道編碼得到編碼序列,采用BPSK調(diào)制方式,

22、如果碼元為0,則調(diào)制成-1發(fā)送,若碼元為1,調(diào)制成+1。調(diào)制后的-1/+1序列在信道中傳輸,由于噪聲的影響,序列的值會發(fā)生變化。如果我們在接收端接收到3V和0.3V兩個脈沖電壓,硬判決方式會將這兩個脈沖都判決為二進(jìn)制信息1,盡管第二個比特看起來離二進(jìn)制1的判斷標(biāo)準(zhǔn)還差很遠(yuǎn)。硬判決不可避免地會產(chǎn)生一些不恰當(dāng)?shù)呐袥Q,一旦作出判決,結(jié)果是不能更改和修正的。軟判決則避免了這種情況,從信道接收到的序列不經(jīng)過判決,直接進(jìn)入譯碼器,由譯碼器分離出信息的先驗概率參與譯碼,通過多個碼元之間的相關(guān)性,計算得到一個軟輸出,再根據(jù)這個軟輸出作出最后的判決,得二進(jìn)制譯碼比特。Turbo碼譯碼時使用的是SISO(Soft

23、 In Soft Out)譯碼器,即譯碼器輸入輸出都為軟信息,對軟信息這一概念有兩種解釋:(1)假設(shè)輸出比特為1的概率是,而為0的概率是這些概率信息即稱為軟信息9。由于,故可判定此輸出比特為1。(2)軟信息的另一種定義為信道輸出的非量化模擬值。假設(shè)在0,1之間,若信道輸出值為0.753,可以判定此輸出比特為1的可能性要大于為0的可能性,在實際應(yīng)用中為硬件實現(xiàn)提供了方便,通常將信道輸出的模擬值進(jìn)行一定級數(shù)(通常大于2)的量化。例如信道輸出的模擬量經(jīng)過A/D變換的量化輸出值即代表了信道輸出為1和為0的概率,用3個比特來代表0-7級量化電平,如果輸出實數(shù)值靠近第7級量化電平,即可判定此輸出信息為1的

24、概率很高,而為0的概率卻很低,反之亦然。上邊兩種解釋的實質(zhì)是一樣的,都利用了信道提供的傳輸可靠性信息,即信息的先驗概率10。利用這種軟信息進(jìn)行譯碼判決的技術(shù)即稱為軟判決技術(shù),軟信息能夠為譯碼器提供由信道產(chǎn)生的附加可靠性信息。以二進(jìn)制信息傳輸為例,如果在解調(diào)器輸出端即對解調(diào)信息進(jìn)行判決為0或為1,并將此判決送給譯碼器,即采用硬判決譯碼方式。硬判決方式?jīng)]有充分利用信道提供的可靠性信息,而是將其完全忽略,故其譯碼性能遠(yuǎn)不如軟判決譯碼。譯碼輸出端也存在軟信息的問題,編碼端的級聯(lián)結(jié)構(gòu)使得譯碼器包含兩個或者多個成員譯碼器,各成員譯碼器之間通過譯碼信息的傳遞來進(jìn)行級聯(lián)的譯碼,如果成員譯碼器能夠輸出軟信息,就

25、可以提供給另一個成員譯碼器作為輸入軟信息,通過軟信息的相互傳遞而使譯碼性能提高。Turbo碼采用軟輸入軟輸出的譯碼結(jié)構(gòu)。圖4是軟輸入軟輸出譯碼器的示意圖。從信道接收到的觀測序列經(jīng)過分解得到系統(tǒng)信息和校驗信息,與先驗信息(由另一個成員譯碼器提供)一起進(jìn)入成員譯碼器參與譯碼,得到信息比特的對數(shù)似然比LLR,再據(jù)此作最后的判決得到譯碼序列。圖4 軟輸入軟輸出譯碼示意圖3.3 Turbo碼的譯碼算法Turbo碼的一個重要特點就是在譯碼時采用了迭代譯碼的思想,迭代譯碼的復(fù)雜性僅是隨著信息序列的大小增加而線性增長。與譯碼復(fù)雜性隨碼字長度增加呈指數(shù)形式增長的最優(yōu)MID相比,迭代譯碼具有更強(qiáng)的可實現(xiàn)性。已有研

26、究表明,基于最優(yōu)譯碼算法的迭代譯碼與MID相比,是一種次最優(yōu)譯碼。但采用迭代方式的Turbo碼譯碼可以達(dá)到接近Shannon理論極限的性能。實際上,這類并行級聯(lián)碼之所以成為Turbo碼,就是因為在譯碼器中存在反饋,類似于渦輪機(jī)的工作原理。在迭代進(jìn)行過程中,通過分量譯碼器之間互相交換軟比特信息來提高譯碼性能。Forney等人已經(jīng)證明了最優(yōu)的軟輸出譯碼器應(yīng)該是后驗概率(APP,A Posteriori Probability)譯碼器,它是以接收信號為條件的某個特定比特傳輸概率。Turbo碼的譯碼算法主要分為基于最大后驗概率(MAP)的算法11和基于軟輸出Viterbi譯碼算法兩大類。MAP系列包括

27、MAP算法、對數(shù)域Log-MAP算法以及其簡化算法Max-Log-MAP算法。Viterbi系列算法包括Viterbi算法、改進(jìn)的SOVA算法、采用滑窗的SOVA算法等。Viterbi系列算法是針對序列進(jìn)行譯碼的算法,運(yùn)算量較小,采用滑窗后還可以減小時延,易于工程實現(xiàn)。MAP類算法是針對比特進(jìn)行譯碼的算法,運(yùn)算量較大,但是性能比Viterbi算法好。3.3.1 Log-MAP算法Log-MAP算法是MAP算法的一種轉(zhuǎn)換形式,實現(xiàn)要比MAP算法簡單。為推導(dǎo)Log-MAP算法,需要把MAP算法中的變量都轉(zhuǎn)換為對數(shù)的形式,從而把乘法運(yùn)算都轉(zhuǎn)換為加法運(yùn)算,同時譯碼器的輸入輸出相應(yīng)地修正為LLR形式,再

28、把得到的算法進(jìn)行必要的修改就得到了Log-MAP算法。下面推導(dǎo)Log-MAP算法。在Log-MAP算法中,、和與MAP算法中的、和相對應(yīng),它們之間滿足對數(shù)關(guān)系=ln (3-18)=ln (3-19)=ln (3-20)首先分析對數(shù)路徑度量的計算。在MAP算法的推導(dǎo)中己知,表達(dá)式中根據(jù)是否與邊e有關(guān)而取值為1或0;概率的取值由信息比特的先驗信息來決定。對于噪聲方差為的AWGN信道忽略常數(shù)項,有: (3-21)對于AWGN信道,有 (3-22)類似地,有 (3-23) 得到對數(shù)域上的路徑度量計算式 (3-24)注意,式(3-24)僅在和之間存在傳遞時成立。盡管第二個分量碼的系統(tǒng)比特序列在編碼過程中

29、沒有傳輸,但它實際上是第一個分量碼的系統(tǒng)比特序列經(jīng)過交織后的比特序列。因為譯碼器的系統(tǒng)輸入是通過對接收信號的系統(tǒng)比特加權(quán)得到的,故可以通過對第一個分量碼的進(jìn)行交織來得到第二個分量碼的;這樣,第一個分量碼和第二個分量碼對于信息比特都有其相應(yīng)的和。從而在計算前向路徑量度和后向路徑量度時兩個分量譯碼器可以采用相同的計算公式。由于MAP算法中和的遞推運(yùn)算中存在指數(shù)和計算(由在AWGN信道上的計算引入),所以在Log-MAP算法中引入操作,其定義為 (3-25)通??梢詫ι鲜霾僮鬟M(jìn)行變形,對于兩個變量的情況(x和y),有假定編碼器的起始狀態(tài)和結(jié)束狀態(tài)分別為和,則對應(yīng)于Log-MAP算法,前、后向路徑度量

30、的遞歸計算初值分別為 (3-26) (3-27) 在實際數(shù)值計算時,可以用一個的值較大來代替。如果編碼寄存器在編碼結(jié)束時狀態(tài)未知,則初值可以設(shè)為或其它常數(shù) (3-28)根據(jù)上述推導(dǎo),可以得到信息比特完整的對數(shù)似然比輸出信息。代入的表達(dá)式,并提取通項,得到 (3-29)由式(3-29)可以看出,輸出對數(shù)似然比信息是先驗信息、系統(tǒng)信息與外部信息(剩余部分)之和。由于兩個分量譯碼器使用相同的系統(tǒng)信息,因此需要與處理先驗信息一樣,將其從中分離出來,僅以外部信息作為先驗信息用于下一輪譯碼。類似地,也可以得到碼字符號的譯碼輸出概率對數(shù)似然比。將Log-MAP算法中的簡化為通常的最大值運(yùn)算,即為MAX-Lo

31、g-MAP算法。3.3.2 軟輸出Viterbi算法SOVASOVA算法也稱為軟輸出的維特比算法(Soft-Output Viterbi Algorithms),它是在Viterbi算法的基礎(chǔ)上改進(jìn)而來的。由于在Turbo碼出現(xiàn)之前,Viterbi算法已經(jīng)廣泛應(yīng)用于工程之中,因此和其他幾種算法相比,SOVA算法更適用應(yīng)用于工程中。SOVA算法是Hagenauer在1989年出來的。他將Viterbi算法進(jìn)行了改進(jìn),改進(jìn)后的算法不僅能得到最大似然路徑,而且能計算出每個信息比特的后驗概率,這樣就使Viterbi算法可以級聯(lián)使用22。SOVA算法是對傳統(tǒng)的Viterbi算法做了兩點改進(jìn):首先,在計算

32、路徑的度量時,考慮了先驗信息,并且讓先驗信息在兩個分量譯碼器之間傳遞;其次,算法可以以后驗概率的形式為每一個信息比特提供軟輸出。Viterbi算法的基礎(chǔ)是尋找能夠使后驗概率最大的狀態(tài)序列,即: (3-30)這里代表在幸存路徑上的狀態(tài)序列,這個狀態(tài)序列在k時刻的狀態(tài)為S,表示k時刻前的接收序列。由于是已知的,因此要使上式最大,只要讓最大,這就是k時刻的度量。這個度量可以通過循環(huán)遞推的方式計算,即k時刻的度量等于k-1時刻的度量乘以在k-1時刻的狀態(tài)的已知的情況下k時刻的狀態(tài)為S并且輸出為的概率,即:= (3-31)如果令度量為log因此有:=+log (3-32)這樣就得到了SOVA算法中的支路

33、度量的計算公式:=log (3-33)4 Matlab仿真及結(jié)果4.1 Turbo碼仿真系統(tǒng)的實現(xiàn)Turbo碼是經(jīng)過模擬仿真來的,而不是根據(jù)既定的設(shè)計準(zhǔn)則得到的。許多研究者正尋找其工作機(jī)理以便更好為Turbo碼的構(gòu)造提供理論依據(jù)。至到現(xiàn)在Turbo碼的研究成果很大一部分是通過對各種參數(shù)的模擬性能結(jié)果中得到的。模擬仿真時,衡量其編碼性能的好壞主要以誤碼率BER(Bit Error Rate)來的。仿真中使用加性高斯白噪聲信道(AWGN)模型,因為它易于構(gòu)建,也是具有代表性的信道模型之一,同時假設(shè)使用BPSK調(diào)制方式。根據(jù)Turbo碼系統(tǒng)的結(jié)構(gòu)特點,將整個Turbo編譯碼系統(tǒng)合理地劃分成多個模塊,

34、使用MATLAB通過模塊化設(shè)計實現(xiàn)了可以用于計算機(jī)模擬的Turbo編譯碼系統(tǒng)。系統(tǒng)所包涵的模塊具體劃分為:主程序、信道模型子程序、交織子程序、RSC編碼子程序、使用不同的算法進(jìn)行譯碼的譯碼子程序等。仿真中使用加性高斯白噪聲信道(AWGN)模型,因為它易于構(gòu)建,也是具有代表性的信道模型之一,同時假設(shè)使用BPSK調(diào)制方式。根據(jù)Turbo碼系統(tǒng)的結(jié)構(gòu)特點,本文將整個Turbo編譯碼系統(tǒng)合理地劃分成多個模塊,使用MATLAB通過模塊化設(shè)計實現(xiàn)了可以用于計算機(jī)模擬的Turbo編譯碼系統(tǒng)。系統(tǒng)所包涵的模塊具體劃分為:主程序、信道模型子程序、交織子程序、RSC編碼子程序、使用不同的算法進(jìn)行譯碼的譯碼子程序等

35、。主程序控制著整個系統(tǒng)的流程。主程序首先完成對系統(tǒng)的先期設(shè)置,包括分量RSC的生成矩陣、幀大小(即交織器的大小)、迭代次數(shù)、使用何種譯碼算法等等。然后,隨即生成信息源,調(diào)用各子程序完成編碼、傳輸以及譯碼的過程。仿真中使用加性高斯白噪聲信道(AWGN)模型,因為它易于構(gòu)建,也是具有代表性的信道模型之一,同時假設(shè)使用BPSK調(diào)制方式。根據(jù)Turbo碼系統(tǒng)的結(jié)構(gòu)特點,本文將整個Turbo編譯碼系統(tǒng)合理地劃分成多個模塊,使用MATLAB通過模塊化設(shè)計實現(xiàn)了可以用于計算機(jī)模擬的Turbo編譯碼系統(tǒng)。系統(tǒng)所包涵的模塊具體劃分為:主程序、信道模型子程序、交織子程序、RSC編碼子程序、使用不同的算法進(jìn)行譯碼的

36、譯碼子程序等。交織子程序供主程序調(diào)用,主要完成對信息比特序列進(jìn)行位置的隨機(jī)置換,并提供給RSC2進(jìn)行編碼。對每幀進(jìn)行置換的格式將保存下來,以便在譯碼過程中進(jìn)行正確的解交織。RSC編碼子程序供主程序調(diào)用,完成編碼。網(wǎng)格圖生成子程序供譯碼子程序調(diào)用,用于生成給定生成矩陣對應(yīng)的網(wǎng)格圖。對一幀編碼的子程序供RSC編碼子程序調(diào)用,用于對一幀的信息比特編碼。對一位信息比特編碼子程序供對一幀編碼的子程序調(diào)用,用于對單個輸入比特進(jìn)行編碼。信道模型及復(fù)用調(diào)制子程序供主程序調(diào)用,用于生成信道模型,將兩個RSC分量編碼器編碼序列和信息序列進(jìn)行復(fù)用,根據(jù)需要的碼率組成整個編碼器的編碼結(jié)果,然后使用AWGN信道模型將編

37、碼序列進(jìn)行調(diào)制,模擬進(jìn)入信道傳輸。譯碼前解復(fù)用子程序供主程序調(diào)用,用于從模擬信道接收觀測序列,并將觀測序列解復(fù)用,分解成系統(tǒng)比特序列和兩個校驗序列。譯碼子程序同主程序調(diào)用,用于實現(xiàn)具體的譯碼算法,對觀測序列進(jìn)行譯碼。4.2 Turbo碼的仿真結(jié)果及分析影響Turbo碼性能的參數(shù)很多,這里分別就不同的譯碼算法、迭代次數(shù)、交織長度對Turbo碼性能的影響進(jìn)行分析,給出仿真結(jié)果。4.2.1 不同譯碼算法對Turbo 碼的性能影響圖6給出了采用不同譯碼算法下的Turbo 碼仿真結(jié)果。Turbo 碼碼率為1/3,Log-Map算法和MAX-Log-Map 算法譯碼迭代次數(shù)為3。從圖中可以觀察到Log-M

38、AP 譯碼算法性能明顯要優(yōu)于MAX-Log-MAP 和SOVA。在誤碼率為104 時,Log-MAP 譯碼算法比MAX-Log-Map 譯碼算法好0.4dB,比SOVA 好2dB 以上。Max-Log-MAP 算法用到了近似公式,故性能比Log-MAP 有所下降。驗證了譯碼算法性能MAP>Log-MAP>MAX-Log-MAP>SOVA 的結(jié)論。SOVA 算法雖然性能是幾種算法中最差的,但復(fù)雜性較低易于實現(xiàn)。在實際運(yùn)用中,要結(jié)合具體的情況,權(quán)衡硬件的復(fù)雜度和性能要求,選擇合適的譯碼算法。 圖6 不同譯碼算法對Turbo碼的影響4.2.2 迭代次數(shù) 圖7 迭代次數(shù)對Turbo碼

39、的影響圖7給出了不同迭代次數(shù)下,Turbo碼的誤比特率與信噪比的關(guān)系曲線,采用MAX-Log-MAP算法,碼率為。從圖7所示的仿真結(jié)果可以看出,隨著迭代次數(shù)的增加,Turbo碼的誤比特率曲線不斷降低并趨于收斂;而且隨著信噪比的增加,迭代對誤比特率性能的影響越來越明顯。這是Turbo碼通過迭代譯碼充分利用冗余信息來提高編譯碼性能這一特點的反映。最初,迭代譯碼的增益較高,但隨著迭代次數(shù)的增加,譯碼增益增長相對緩慢,雖然繼續(xù)增加迭代次數(shù)可以提高Turbo碼的性能,但權(quán)衡迭代所需要的時間、性能改善的幅度,我們通常都選取合適的迭代次數(shù)。 4.2.3 交織長度 圖8 交織長度對Turbo碼的影響圖8給出了不同交織長度下,Turbo碼的誤比特率與信噪比的關(guān)系曲線。從圖8中可以看出,交織長度越大,性能就越好,而且交織長度對性能的影響是很大的,這是由于交織器的存在所產(chǎn)生的所謂交織增益,使得Turbo碼的性能隨交織長度的增長而改善且在交織長度足夠長時接近信道容量。交織長度是決定Turbo碼性能的一個重要因素。但是與Turbo碼不同,卷積碼的一個優(yōu)點在于只要幀長遠(yuǎn)大于碼的約束長度,其性能就與幀長沒有關(guān)系,另外,T

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論