關(guān)于信道編碼中Turbo碼的原理與實(shí)現(xiàn)_第1頁
關(guān)于信道編碼中Turbo碼的原理與實(shí)現(xiàn)_第2頁
關(guān)于信道編碼中Turbo碼的原理與實(shí)現(xiàn)_第3頁
關(guān)于信道編碼中Turbo碼的原理與實(shí)現(xiàn)_第4頁
關(guān)于信道編碼中Turbo碼的原理與實(shí)現(xiàn)_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、Turbo碼的編碼原理及實(shí)現(xiàn) 摘要糾錯(cuò)碼技術(shù)作為改善數(shù)字通信可靠性的一種有效手段,在數(shù)字通信的各個(gè)領(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è)計(jì)實(shí)際系統(tǒng)時(shí),應(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 low SN

3、R 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 model sho

4、ws 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ù)Shanno噪信道編碼定理,在信道傳輸速率R不超過信道容量C的前提下,只有在碼組長度無限的碼集合中隨機(jī)地選擇編碼碼字

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

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

7、lab/Simulink來進(jìn)行建模仿真。1 Turbo碼編碼原理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)卷積碼。通常兩個(gè)分量碼采用相同的生成矩陣,當(dāng)然分量碼也可以是不同的。

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

9、序列,將編碼序列調(diào)制后,即可發(fā)射進(jìn)入信道傳輸。分量編碼器CES2交織器復(fù)接器 分量編碼器CRS1 2 Matlab仿真及結(jié)果2.1 Turbo碼仿真系統(tǒng)的實(shí)現(xiàn)Turbo碼是經(jīng)過模擬仿真來的,而不是根據(jù)既定的設(shè)計(jì)準(zhǔn)則得到的。許多研究者正尋找其工作機(jī)理以便更好為Turbo碼的構(gòu)造提供理論依據(jù)。至到現(xiàn)在Turbo碼的研究成果很大一部分是通過對各種參數(shù)的模擬性能結(jié)果中得到的。模擬仿真時(shí),衡量其編碼性能的好壞主要以誤碼率BER(Bit Error Rate)來的。仿真中使用加性高斯白噪聲信道(AWGN)模型,因?yàn)樗子跇?gòu)建,也是具有代表性的信道模型之一,同時(shí)假設(shè)使用BPSK調(diào)制方式。根據(jù)Turbo碼系統(tǒng)

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

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

12、程序、交織子程序、RSC編碼子程序、使用不同的算法進(jìn)行譯碼的譯碼子程序等。交織子程序供主程序調(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)用,用于對單個(gè)輸入比特進(jìn)行編碼。信道模型及復(fù)用調(diào)制子程序供主程序調(diào)用,用于生成信道模型,將兩個(gè)RSC分量編碼器編碼序列和信息序列進(jìn)行復(fù)用,根據(jù)需要

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

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

15、o碼的影響2.2.2 迭代次數(shù) 圖7 迭代次數(shù)對Turbo碼的影響圖7給出了不同迭代次數(shù)下,Turbo碼的誤比特率與信噪比的關(guān)系曲線,采用MAX-Log-MAP算法,碼率為。從圖7所示的仿真結(jié)果可以看出,隨著迭代次數(shù)的增加,Turbo碼的誤比特率曲線不斷降低并趨于收斂;而且隨著信噪比的增加,迭代對誤比特率性能的影響越來越明顯。這是Turbo碼通過迭代譯碼充分利用冗余信息來提高編譯碼性能這一特點(diǎn)的反映。最初,迭代譯碼的增益較高,但隨著迭代次數(shù)的增加,譯碼增益增長相對緩慢,雖然繼續(xù)增加迭代次數(shù)可以提高Turbo碼的性能,但權(quán)衡迭代所需要的時(shí)間、性能改善的幅度,我們通常都選取合適的迭代次數(shù)。 2.2

16、.3 交織長度 圖8 交織長度對Turbo碼的影響圖8給出了不同交織長度下,Turbo碼的誤比特率與信噪比的關(guān)系曲線。從圖8中可以看出,交織長度越大,性能就越好,而且交織長度對性能的影響是很大的,這是由于交織器的存在所產(chǎn)生的所謂交織增益,使得Turbo碼的性能隨交織長度的增長而改善且在交織長度足夠長時(shí)接近信道容量。交織長度是決定Turbo碼性能的一個(gè)重要因素。但是與Turbo碼不同,卷積碼的一個(gè)優(yōu)點(diǎn)在于只要幀長遠(yuǎn)大于碼的約束長度,其性能就與幀長沒有關(guān)系,另外,Turbo碼性能的另一個(gè)重要因素是迭代譯碼所產(chǎn)生的譯碼復(fù)雜度,所以我們有必要在短幀的情況下,將Turbo碼與采用最大似然譯碼算法的卷積碼

17、糾錯(cuò)性能和復(fù)雜度作一個(gè)比較。在高斯信道環(huán)境下作了仿真比較,得到在同樣信噪比的條件下,要達(dá)到級BER的要求時(shí),卷積碼的復(fù)雜度小于Turbo碼,在瑞利衰落信道下,結(jié)論也相似。短幀傳輸有著廣泛的應(yīng)用,諸如在移動(dòng)通信中,話音和控制信息通常采用小于300比特的短幀,通常話音和信令的誤碼率要求在到之間。由上述結(jié)論可知,在對幀長有要求的移動(dòng)通信系統(tǒng)中,在一定的誤碼率要求下,Turbo碼并不是最佳的準(zhǔn)則,在考慮譯碼復(fù)雜度的情況下,卷積碼反而比Turbo碼具有更好的性能。反之,對于幀長較長的情況下,采用Turbo碼將更有優(yōu)勢。同時(shí),我們還應(yīng)該注意到交織深度和編譯碼時(shí)延之間還存在著一個(gè)兼顧的問題。Turbo碼的時(shí)

18、延包括編碼時(shí)延、碼組傳輸時(shí)延、譯碼器時(shí)延及交織和解交織時(shí)延。交織長度越長,時(shí)延也越大。通信系統(tǒng)中,時(shí)延是個(gè)很重要的因素,實(shí)時(shí)的通信系統(tǒng)中總是對時(shí)延提出了較高的要求。在實(shí)際的應(yīng)用中,需要根據(jù)時(shí)延的要求來確定最佳的碼長。5 結(jié)束語 Turbo碼的出現(xiàn)為信道編碼理論和實(shí)踐帶來了一場革命,在理論上,它有著不同于以往的結(jié)構(gòu),使通過可譯碼編碼逼近信道容量成為可能;在實(shí)踐上,只要時(shí)延和復(fù)雜度允許,Turbo碼可在各種惡劣條件下提供接近極限的通信能力。Turbo碼在中高噪聲的應(yīng)用環(huán)境中的性能比以往其他的信道編碼要好很多,這是它的一大優(yōu)點(diǎn)。但是,Turbo碼也有自己的不足:  (1)計(jì)算量大

19、,要得到高碼率,往往需要很大的交織器,這就增加了譯碼的復(fù)雜性,而較短的交織器不可能達(dá)到高碼率,因此往往要根據(jù)實(shí)際需要來確定碼率和計(jì)算復(fù)雜性之間的平衡來設(shè)計(jì)相應(yīng)的Turbo碼。 (2)由交織和迭代譯碼造成的時(shí)延使Turbo碼在某些對時(shí)延要求高的通信系統(tǒng)(如數(shù)字電話、數(shù)字音像廣播、數(shù)據(jù)包通信、太空通信等)中的應(yīng)用受到限制。 (3)理論分析困難,至今尚未有對Turbo碼譯碼復(fù)雜性,比特誤碼率完整的理論分析和估計(jì)。一般是通過數(shù)值模擬與單個(gè)卷積碼、乘積碼、級聯(lián)碼比較或不同譯碼方法之間的性能比較。參考文獻(xiàn)1王會(huì),王忠.Turbo碼性能分析與仿真D.成都:四川大學(xué),2002.2陳朝,陳芳

20、,周峰.一種基于Matlat的Turbo碼編碼仿真實(shí)現(xiàn)J.信息與電子工程,2005, 3(3) : 179-181.3鄧華.Matlat,通信仿真及應(yīng)用實(shí)例詳解M.北京:人民郵電出版社2003.4周賢偉,趙欣,王麗娜.使用Simulink構(gòu)建Turbo碼仿真系統(tǒng)J.微計(jì)算機(jī)信息,2006, 22( 1s) : 202-204.5鐘麟,王峰.M atlal,仿真技術(shù)與應(yīng)用教程M .北京:國防工業(yè)出版社,2004.附錄:核心源碼展示:Logmap.mfunction L_all = logmapo(rec_s,g,L_a,ind_dec)L_total = length(rec_s)/2;%系統(tǒng)信

21、息/校驗(yàn)信息的長度n,K = size(g); m = K - 1; %編碼器移位寄存器個(gè)數(shù)nstates = 2m; %編碼網(wǎng)格圖狀態(tài)數(shù)%建立網(wǎng)格圖,得到網(wǎng)格圖上前一個(gè)輸出比特及狀態(tài)、下一個(gè)輸出比特及狀態(tài)next_out, next_state, last_out, last_state = trellis(g);Infty = 1e10; %定義無窮大% 初始化AlphaAlpha(1,1) = 0; Alpha(1,2:nstates) = -Infty*ones(1,nstates-1);% 初始化beta,第一個(gè)分量碼的網(wǎng)格圖歸零,第二個(gè)不歸零if ind_dec=1 Beta(L_

22、total,1) = 0; Beta(L_total,2:nstates) = -Infty*ones(1,nstates-1); elseif ind_dec=2 Beta(L_total,1:nstates) = zeros(1,nstates);end% 前向遞推計(jì)算alpha值for k = 2:L_total+1 for state2 = 1:nstates gamma = -Infty*ones(1,nstates); %計(jì)算輸入為0時(shí)的gamma值; gamma(last_state(state2,1)=(-rec_s(2*k-3)+rec_s(2*k2)*last_out(st

23、ate2,2). -log(1+exp(L_a(k-1); %計(jì)算輸入為1時(shí)的gamma的值; gamma(last_state(state2,2)= (rec_s(2*k-3)+rec_s(2*k-2)*last_out(state2,4). +L_a(k-1)-log(1+exp(L_a(k-1); %根據(jù)gamma值和前一時(shí)刻的alpha值計(jì)算前向遞推計(jì)算當(dāng)前時(shí)刻的alpha值 if(sum(exp(gamma+Alpha(k-1,:)<1e-300) Alpha(k,state2)=-Infty; else Alpha(k,state2) = log( sum( exp( gamma+Alpha(k-1,:) ) ) ); end end %alpha值歸一化,對數(shù)形式為減去最大值 tempmax(k) = max(Alpha(k,:); Alpha(k,:) = Alpha(k,:) - tempmax(k);end % 后向遞推計(jì)算beta值for k = L_total-1:-1:1 for state1 = 1:nstates gamma = -Infty*ones(1,nstates); %輸入為0時(shí)的gamma值 gamma(next_state(state1,1) = (-rec_s(2*k+1)+rec_s(2*k+2)

溫馨提示

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

最新文檔

評論

0/150

提交評論