邢 莉 王 忠 李興國 任 昊
摘 要:為了使Turbo碼仿真更容易,研究并建立了基于Matlab中Simulink通信模塊的Turbo碼仿真模型。Turbo碼編碼器采用兩個相同的分量編碼器通過交織器并行級聯(lián)而成。Turbo碼譯碼器采用不同的譯碼算法,這些算法由S函數(shù)調(diào)用m文件實現(xiàn)。使用所建立的模型進行仿真,結(jié)果表明,在信噪比相同的情況下,交織長度越大、迭代次數(shù)越多、譯碼算法越優(yōu),Turbo碼性能越好。設(shè)計實際系統(tǒng)時,應綜合考慮各因素。
關(guān)鍵詞:Turbo碼;Simulink仿真;交織長度;迭代次數(shù);譯碼算法
中圖分類號:TN914文獻標識碼:A
文章編號:1004-373X(2009)03-019-03
Study of Turbo Code Simulation Based on Matlab
XING Li WANG Zhong LI Xingguo2,REN Hao3
(1.College of Electrial Engineering Information,Sichuan University,Chengdu,610065,China;
2.College of Mechanism Electronic Engineering,University of Electronic Sience and Technology of China,Chengdu,610054,China;
3.System Planning Department,Sichuan Electric Power Design & Consulting Co.Ltd.,Chengdu,610016,China)
Abstract:In order to make the Turbo Code simulation easier,a Turbo code simulation model based on Simulink module of Matlab is studied.Turbo encoder concatenates two same sub-encoder in parallel through interleaver.Turbo decoder can use different decoding algorithm,which are embodied by m-file S-function.Simulation result using the established model 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;decoding algorithm
0 引 言
Shannon編碼[1]定理指出:如果采用足夠長的隨機編碼,就能逼近Shannon信道容量。而Turbo碼以其接近Shannon理論極限的譯碼性能,已被采納為3G移動通信系統(tǒng)的信道編碼標準之一。Turbo碼巧妙地將兩個簡單分量碼通過偽隨機交織器并行級聯(lián)來構(gòu)造具有偽隨機特性的長碼,并通過在兩個軟輸入/軟輸出(SISO)譯碼器之間進行多次迭代實現(xiàn)了偽隨機譯碼。采用迭代譯碼的方法來提高通信系統(tǒng)的譯碼性能是Turbo碼的最大特點。
Turbo碼的編碼器、譯碼器結(jié)構(gòu)繁瑣,是一種非常復雜的信道編碼方案,這使得對Turbo碼的理論分析十分困難,且只能對運算復雜度作宏觀分析,對Turbo碼的具體實現(xiàn)并沒有一個清楚的度量[2]。因此,使用計算機對Turbo碼進行仿真分析是十分必要的。
本文分析了Turbo碼編碼譯碼的原理,考慮到Turbo碼系統(tǒng)編譯碼的數(shù)據(jù)處理量很大,利用生成矩陣對信息序列進行編碼、譯碼時的迭代計算等等,都涉及了矩陣運算,故采用Matlab/Simulink來進行建模仿真[3],同時分析了迭代次數(shù)、交織長度及不同譯碼算法對Turbo碼性能的影響。
1 Turbo碼的編碼器和譯碼器原理
1.1 Turbo碼編碼器組成[4]
Turbo碼的編碼器的基本結(jié)構(gòu)如圖1所示。
Turbo碼編碼器主要由兩個遞歸系統(tǒng)卷積編碼器(RSC)、一個交織器與一個刪余和復用單元組成。遞歸系統(tǒng)卷積編碼器是指帶有反饋的系統(tǒng)卷積編碼器,其碼率可設(shè)為R=k/n;交織器用來改變信息序列的排列順序,獲得與原始信息序列內(nèi)容相同,但排列不同的信息序列;刪余和復用單元的作用是從總體上改善Turbo碼碼率,因此通過刪余和復用單元,Turbo碼可以獲得不同碼率的碼字。編碼器的碼字通過信道輸出到譯碼器內(nèi)。
1.2 Turbo碼譯碼器原理
Turbo碼譯碼器基本結(jié)構(gòu)如圖2所示。
Turbo碼譯碼器由兩個軟輸入/軟輸出(SISO)譯碼器DEC1和DEC2串行級聯(lián)組成,交織器與編碼器中所使用的交織器相同。譯碼器DEC1對分量碼RSC1進行最佳譯碼,產(chǎn)生關(guān)于信息序列中每一比特的似然信息,并將其中的“新信息”經(jīng)過交織送給DEC2,譯碼器DEC2將此信息作為先驗信息,對分量碼RSC2進行最佳譯碼,產(chǎn)生關(guān)于交織后的信息序列中每一比特的似然比信息,然后將其中的“外信息”經(jīng)過解交織送給DEC1,進行下一次譯碼。這樣,經(jīng)過多次迭代,DEC1或DEC2的外輸出信息趨于穩(wěn)定,似然比漸近值逼近于對整個碼的最大似然譯碼,然后對此似然比進行硬判決,即可得到信息序列的最佳估計值。
2 仿真模型的建立
仿真模型包括信源、編碼器、信道、譯碼器和信宿五個部分。
在模型中,可以任意改變的參數(shù)值為:
N:交織器的大小,即Turbo碼的分組長度,也即每個分組所包含的信息序列的長度。
信道類型選擇:Simulink模塊中可以選擇設(shè)置高斯白噪聲信道(AWGN)或多徑瑞利衰落信道(Reyleigh Fading)。
譯碼算法選擇:Log-MAP,Max-Log-MAP和SOVA三種譯碼算法。
SNR:信號與噪聲強度比值。
迭代次數(shù):迭代次數(shù)的不同對譯碼器輸出有著一定的影響。
2.1 Turbo編碼模塊
本模型中Turbo碼編碼器采用兩個相同的分量編碼器通過交織器并行級聯(lián)而成。分量編碼器是碼率為R=1/2的循環(huán)系統(tǒng)卷積碼。
首先用貝努利發(fā)生器(Bernoulli Binary Generator)產(chǎn)生序列,從參數(shù)面板調(diào)節(jié)幀大小和采樣率。原始序列進入第1卷積編碼器(Convolutional Encoder),并經(jīng)過隨機交織器(Random Interleaver)后進入第2卷積編碼器(Convolutional Encoder1)。刪余模塊1,2同時接在第1卷積編碼器的后面。刪余模塊1(puncture1)的輸出為第1卷積編碼輸出的奇序列,刪余模塊2(puncture2)的輸出為第1卷積編碼輸出的偶序列。第3個刪余模塊(puncture3)接在第2卷積編碼器的后面,其輸出第2卷積編碼輸出的偶序列。這3路序列經(jīng)過串并變換后合成一路序列,作為Turbo編碼輸出。
2.2 信道模塊
信道模塊包含有調(diào)制模塊、信道及噪聲模型、解調(diào)模塊。調(diào)制方式可以采用四相相移鍵控(QPSK)。噪聲模型可以選擇設(shè)置為高斯白噪聲信道(AWGN)或多徑瑞利衰落信道(Reyleigh Fading)。
2.3 Turbo譯碼模塊
Turbo碼的編碼部分由兩個子編碼器組成,因此在其譯碼部分也就相應有兩個子譯碼器。該模塊可以調(diào)用Log-MAP譯碼子程序、Max-Log-MAP算法譯碼子程序、SOVA算法子程序[5]供譯碼模塊調(diào)用。這些算法通過仿真模塊中的S函數(shù)實現(xiàn)。
3 仿真結(jié)果分析
3.1 交織器大小對Turbo碼性能的影響
仿真過程中,選取譯碼算法為Max-Log-MAP,分別設(shè)置交織長度為150,600,1 200。三種交織長度的誤碼率如圖3所示。
從圖3中很明顯看出,當信噪比SNR比較小時,不同的交織長度下譯碼性能的區(qū)別并不是很明顯,由此可見,信噪比對譯碼的影響是很大的。當信噪比大于1 dB時,交織長度越大,譯碼器的性能就越優(yōu)越,Turbo碼的糾錯性能也就越好。這是因為交織器產(chǎn)生的交織增益使得Turbo碼的性能隨幀長呈指數(shù)增長。同時,交織長度的增大使幀長變長,迭代譯碼的復雜程度也隨之增加。一系列問題如編碼時延、傳輸時延、譯碼時延等就明顯。在實際系統(tǒng)中,需要綜合考慮選定最佳交織長度。
3.2 迭代次數(shù)對Turbo碼性能的影響
迭代譯碼結(jié)構(gòu)是Turbo碼具有良好譯碼性能的一個重要原因。在交織長度為600、采用Max-Log-MAP譯碼算法的情況下,分別迭代1次、2次、4次進行比較。譯碼器性能如圖4所示。
可以看出,迭代次數(shù)越多,誤碼率越低,譯碼性能優(yōu)越。同時,進一步可以發(fā)現(xiàn)迭代次數(shù)存在一個飽和值,一般5~10次即飽和,當達到飽和時,即使次數(shù)增加,譯碼的性能也不會明顯改進,反而是迭代次數(shù)的增加會造成不必要的計算負擔,所以在實際系統(tǒng)中要考慮飽和點來設(shè)計迭代次數(shù)。
3.3 不同譯碼算法比較
圖5是不同算法譯碼性能的比較,其中交織長度設(shè)定為600,迭代次數(shù)為3次。比較來說,Log-MAP算法的譯碼效果最好,Max-Log-MAP算法譯碼效果比較差,但是具有較快的運算速度。SOVA算法效果不錯,是較優(yōu)方案。因此,在信噪比比較低的情況下,為了要獲得較好的糾錯效果,最好基于Log-MAP算法進行修正。
4 結(jié) 語
提出一種基于Simulink模塊和S函數(shù)共同構(gòu)建的Turbo碼仿真模型。在編碼器中,分量碼采用循環(huán)系統(tǒng)卷積碼,使分量碼的奇序列與原始信息相同;在譯碼器中,三個算法子程序可以任意選擇比較,使Turbo碼的仿真易于實現(xiàn),方便了對Turbo碼的分析和應用研究。利用仿真結(jié)果分析了迭代次數(shù)、交織長度、不同算法對譯碼性能的影響,對實際系統(tǒng)設(shè)計有一定的指導作用。
參考文獻
[1]王會,王忠.Turbo碼性能分析與仿真.成都:四川大學,2002.
[2]陳朝,陳芳,周峰.一種基于Matlab的Turbo碼編碼仿真實現(xiàn).信息與電子工程,2005,3(3):179-181.
[3]鄧華.Matlab通信仿真及應用實例詳解.北京:人民郵電出版社,2003.
[4]周賢偉,趙欣,王麗娜.使用Simulink構(gòu)建Turbo碼仿真系統(tǒng).微計算機信息,2006,22(15):202-204.
[5]鐘麟,王峰.Matlab仿真技術(shù)與應用教程.北京:國防工業(yè)出版社,2004.
[6]Giulietti A,Vander Perre L,Strum M.Parallel Turbo Coding Interleavers:Avoiding Collisions in Accesses to Storage Elements[J].Electronics Letters,2002,38(5):232 -233.
[7]杜海明.Turbo碼及其應用研究的最新進展[J].鄭州輕工業(yè)學院學報,2006(2):71-74.
[8]曹雪紅,張宗橙.信息論與編碼.北京:清華大學出版社,2004.
[9]熊華,曾常安,王峰.分組、隨機交織器相關(guān)系數(shù)仿真分析[J].華北電力大學學報,2007(1):106-110.
[10]魏景新,王琳.Turbo碼編譯碼原理與應用新進展[J].華北科技學院學報,2007(1):58-61.
[11]朱仁峰,邵菲,周輝.交織技術(shù)在信源信道聯(lián)合編譯碼中的應用[J].裝備指揮技術(shù)學院學報,2006(5):74-77.
作者簡介
邢 莉 女,1984年出生,碩士研究生。主要研究方向為現(xiàn)代信號處理,無線通信。