馬媛媛 彭娜



摘要:本論文旨在研究Turbo碼的幾種迭代譯碼算法,包括Log-MAP譯碼算法和Max-Log-MAP譯碼算法。在介紹Turbo碼基礎并推導Turbo碼的各種譯碼算法(Max-Log-MAP算法、Log-MAP算法和SOVA算法)的原理后,通過性能仿真,我們分析了迭代次數、交織長度等參數對Turbo碼的糾錯能力的影響,并橫向比較了三種算法的性能,從而得出結論。
關鍵詞:級聯碼;Turbo碼;交織器;Log-MAP算法;Max-Log-MAP算法
中圖分類號:TN929 文獻標識碼:A 文章編號:1007-9416(2018)12-0110-03
1 Turbo碼的譯碼器
一般情況下,在單個傳統編碼的譯碼器的最后獲取到的是硬判決譯碼比特,但是Turbo碼譯碼算法不局限于在譯碼器中通過的是硬判決[1]。Turbo碼一般是由兩個分量碼經過不同交織后對同一信息序列進行編碼,所以譯碼算法采用軟判決信息代替了硬判決可以更好的利用譯碼器之間的信息。
本文推導Turbo碼的各種譯碼算法(Log-MAP算法、Max-Log-MAP算法和SOVA算法)的原理,通過性能仿真,分析迭代次數、交織長度等參數對Turbo碼的糾錯能力的影響,對不同算法進行性能仿真對比,對采用那種算法更優得出結論。
2 譯碼算法
2.1 Log-MAP算法
MAP算法將Turbo碼的兩個編碼器一起使用反饋碼的結構還利用性能優異的卷積碼,并且達成軟輸入軟輸出和遞推迭代譯碼。MAP算法實施工程量大,為了避免復雜操作的數目和數字表示問題[2],Log-MAP算法對MAP修改直接在對數域里對對,,和進行計算,去除了大量的指數和對數運算,很大程度上減少了計算復雜度,提高了運算速率。
=2
(1)
對q(·)=1得到下面的表達式:
=++
+K? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (2)
可以忽略常數K。
對于lnαk(sk),我們得到:
lnαk(Sk)=
-
(3)
對dk一個先驗的對數似然比(LLR)簡稱為L(dk)。在式(2)中確定一個先驗信息。
如果:
q(dk=1|Sk,Sk-1)=1? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(4)
那么:
L(dk)==? ? ? ? ? ? ? (5)
所以:
=? ? ? ? ? ? ?(6)
對的近似可以在式(12)中找到引用:
≈? ? ? ? ? ? (7)
如果:
(8)
那么:
L(dk)==? ? ? ?(9)
因而,
=? ? ? ? ? ? ? ? ? ? ? (10)
類似地,
≈? ? ? ? ? ? ? ? ? ? (11)
由于近似的算法,Log-MAP算法比起MAP算法是次優的,其產生的是一個較低的軟輸出。
=max(δ1,δ2)+=max (δ1,δ2)+? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(12)
其中,定義是修正函數。由此,
==
+=max(δ,δn)+? ? ? ? ? ?(13)
其中,Δ==eδ.通過計算fc(x),失去了一些Max-Log-MAP的低復雜度[3]。
2.2 Max-Log-MAP算法
Log-MAP算法仍然需要很大的計算量,通過下面的表達式再次減少計算量:
(14)
可以通過連續使用n-1個最大函數只計算兩個值。定義:
=? ? ?(15)
,? ? ? ? ? ? (16)
得到:
≈
-+? ? ? ? (17)
類似地,
≈
-? ? ? ? ?(18)
這就是更進一步簡化了Log-MAP算法的Max-Log-MAP算法。
類似的:
≈
-+? ? ? (19)
2.3 SOVA算法
維特比算法(Viterbi)也是一種估計在無記憶噪聲條件下馬爾科夫過程最優的算法,它區別于MAP算法的特點在于最優的準則不同它是給定接收序列,維特比算法找出了錯誤最少的發送序列[10]。SOVA(Soft output Viterbi Algorithm)是對原維特比算法做了一些修改,使其適合于Turbo碼的迭代譯碼。所做的修改主要是以下兩個方面:
第一,選擇柵欄圖中的最大似然路徑時要考慮先驗信息;
第二,再把每個比特uk是“+1”(1)或“-1”(0)譯碼出來的同時,給出uk譯碼的可靠度,即,以LLR形式給出L(uk),作為軟輸出,從中可以獲取關于uk的先驗信息,為下次迭代所使用。
3 性能仿真
3.1 不同迭代次數下性能的仿真
Turbo碼的譯碼性能極其優異主要歸結于Turbo碼的循環迭代譯碼結構。各個譯碼單元彼此之間傳遞外信息,該外信息作為先驗概率交付于下一次迭代譯碼。以Max-Log-MAP算法為例,在交織長度為640,采用隨機交織器,并且刪余后碼率為1/2的條件下,采用控制變量法仿真對比不同迭代次數下的性能差異。結果如圖1所示。
由仿真結果中分析對比可知,最初幾次迭代次數的增加很大程度上提高了Turbo碼的譯碼性能,然而從增加到五次迭代以后,再增加迭代次數增益就變得很小,如圖中第五次和第七次的譯碼性能差不多。在硬件流水線結構中,迭代次數很大程度上決定了硬件規模,迭代次數越多,所用硬件規模越大,綜合考慮應該選擇5次迭代才能達到更好的譯碼性能。
3.2 不同交織長度下譯碼性能的仿真
從Turbo碼的性能分析得到,交織長度也是影響Turbo碼譯碼性能的重要原因之一。交織長度增加使得Turbo碼的性能就越接近Shannon極限。同樣Max-Log-MAP算法為例以再次采用控制變量法仿真對比不同交織長度的性能差別得出結論。在迭代次數為5,采用隨機交織器,并進行刪余,碼率為1/2的條件下,得出結果如圖2所示。
從圖2中對比分析可知,加長交織長度能夠明顯的提高Turbo碼的性能,如圖2中所示,交織長度為120的曲線明顯高于其他曲線,即性能遠差于其他。
3.3 不同譯碼算法性能比較
為了更詳細的了解MAX-Log-MAP、Log-MAP和SOVA這三種算法,下面對這些算法進行研究討論,具體來研究這些算法的相同點與不同點:
相同點:
(1)四種算法的譯碼輸入都是從接收信道傳來的軟判決信息與信息比特uk的先驗信息,而其譯碼輸出可以做出判決的同時給出uk的后驗概率LLR的值(L(uk)),這可以統稱它們為SISO(soft in soft out)算法[8]。
(2)單次譯碼結果中,Max-Log-MAP算法和SOVA算法都是尋找在柵欄圖中的最大似然路徑。
(3)為減少大量的加法運算量,MAX-Log-MAP算法在Log-MAP算法上做了近似。在理論的基礎上二者基本相同,都是在柵欄圖中考慮所有有可能的路徑。
不同點:
(1)在Turbo碼譯碼中,MAP算法是其最優的譯碼算法,Log-MAP算法在對數域內計算法MAP算法很大程度減少了譯碼的運算量。
(2)Max-Log-MAP算法復雜度比Log-MAP低主要在于修正函數上。在計算uk的后驗概率時,Max-Log-MAP算法只考慮兩條路徑,其中一條是最大概率的-1路徑,另一條是最大概率的+1路徑,在計算αk(Sk)和βk(Sk)的時候,只考慮到了最有可能的一種狀態轉移。
(3)SOVA算法尋找到最大似然路徑的譯碼所以復雜度相對來說最低。它計算方法αk (Sk)的方法和Max-Log-MAP算法是一致,但不同的是,它不計算βk(Sk)。
在參數相同的條件下,仿真這三種算法,圖3所示在交織長度是1024,采用隨機交織器,刪余后碼率為1/2的條件下,Turbo碼三種譯碼算法性能比較。
從仿真結果進行性能比較,性能從優到次為Log-MAP,Max-Log-MAP,SOVA。通過譯碼復雜度(仿真運算時間)則正好相反。由此看來,Log-MAP算法只是比Max-Log-MAP算法多了些查表和加法運算,增加了計算量,而性能也有較大的提高。
4 結語
本文推導出了各種譯碼算法的原理,通過在這些算法下性能的仿真可知,迭代次數初始增加迭代性能改善,迭代到5次之后性能相差不大。增大交織長度可改善Turbo碼的性能。最后對比各種算法的工作過程和異同點,從仿真結果上看性能比較從優到次依次為,Log-MAP,Max-Log-MAP,SOVA。譯碼復雜度(仿真運算時間)則正好相反。綜上所述,在實際運用中決定使用何種算法,需要折中考慮其性能和運算量。
參考文獻
[1]王視環.LTE中Turbo碼內部交織器的研究[J].南京郵電大學學報(自然科學版),2010,30(4):90-94.
[2]Patrick Robertson, Emmanuelle Villebrun ,Peter Hoeher, A Comparison of Optimal and Sub-Optimal MAP Decoding Algorithms Operating in the Log Domain, IEEE International Conference on Communications (ICC'95)[C].1995:1009-1013.
[3]Jason P. Woodard and Lajos Hanzo. Comparative Study of Turbo Decoding Techniques: An Overview[J].IEEE Transactions on Vehicular Technology,2000, 49(6):2208-2233.
[4]Patrick Robertson. Illuminating the Structure of Code and Decoder of Parallel Concatenated Recursive Systematic (Turbo) Codes[C]. Global Telecommunications Conference (GLOBECOM '94),1994:1298-1303.
[5]賴克中.CDMA2000家庭基站與Turbo編碼技術研究[J].移動通信.2009(5):50-53.
[6]何海建.基于OFDM技術電力線通信系統的編碼方案的研究[D]. 東南大學碩士學位論文.2006.
[7]王育民,李暉,梁傳甲.信息論與編碼理論[M].北京:高等教育出版社,2005.
[8]武冬冬,趙剛.Turbo碼的幾種譯碼算法及性能比較[J].儀器儀表用戶,2008(3):98-100.
Encoding and Decoding of Turbo Code and Its Performance Simulation
MA Yuan-yuan, Peng Na
(Information Engineering school, Changan University, Xian Shaanxi 710064)
Abstract:This article is to study several iterative decoding algorithms of Turbo code, including LOG-MAP decoding algorithm and MAX-LOG-MAP decoding algorithm. After introducing the fundamentals of Turbo code and deriving various decoding algorithms (Max log map algorithm, log map and SOVA algorithm) of turbo code, simulations of these decoding algorithms are performed. Based on the simulation results, we analyze the impact of iteration number and interleaver length on the error correcting capabilities of Turbo codes. Horizontal comparisons of the performances of these three kinds of decoding algorithms are also made, and get the conclusions。
Key words:concatenated code; Turbo code, interleaver; Log-MAP algorithm; Max-Log-MAP algorithm