複製鏈接
請複製以下鏈接發送給好友

Turbo碼

鎖定
Turbo碼是Claude.Berrou等人在1993年首次提出的一種級聯碼
中文名
Turbo碼
特    點
具有偽隨機特性的長碼
範    圍
信道編碼
作    用
實現了偽隨機譯碼
應用學科
通信

Turbo碼簡介

Shannon 編碼定理指出:如果採用足夠長的隨機編碼,就能逼近Shannon 信道容量。但是傳統的編碼都有規則的代數結構,遠遠談不上“隨機”;同時,出於譯碼複雜度的考慮,碼長也不可能太長。所以傳統的信道編碼性能與信道容量之間都有較大的差距。事實上,長期以來信道容量僅作為一個理論極限存在,實際的編碼方案設計和評估都沒有以Shannon限為依據。

Turbo碼歷史發展

Turbo碼 Turbo碼
1993 年兩位法國教授Berrou、Glavieux 和他們的緬甸籍博士生Thitimajshima 在ICC 會議上發表的Near Shannon limit error-correcting coding and decoding: Turbo codes”,提出了一種全新的編碼方式——Turbo 碼。它巧妙地將兩個簡單分量碼通過偽隨機交織器並行級聯來構造具有偽隨機特性的長碼,並通過在兩個軟入/軟出(SISO)譯碼器之間進行多次迭代實現了偽隨機譯碼。
仿真結果表明,在AWGN 信道下,碼率為1/2 的Turbo 碼在達到誤比特率(BER) ≤ 10−5時,Eb/N0僅為約0.7dB (這種情況下達到信道容量的理想Eb/N0值為0db),遠遠超過了其他的編碼方式,一時在信息和編碼理論界引起了轟動。
從此以後,Turbo 碼得到了廣泛的關注和發展,並對當今的編碼理論研究方法產生了深遠的影響,信道編碼學也隨之進入了一個新的階段。
Turbo碼由於其近Shannon界的突出糾錯能力,成為近年信道編碼理論研究的熱點問題。其編碼器由兩個(或多個)帶反饋的系統卷積碼器經一交織器並行級聯而成,接收端一般採用逐位最大後驗概率譯碼器通過反覆迭代循環來譯碼。
本文首先對Turbo碼的編碼原理進行了闡述和舉例,進而重點講解了Turbo碼譯碼的原理,對比了MAP譯碼算法和SOVA譯碼算法。由以上的分析得出了很多重要的結論:如Turbo碼採用反饋卷積碼是為了獲得更大的交織增益;Turbo碼的性能主要取決於它的有效自由距離;Turbo碼在低信噪比下具有近Shannon界糾錯能力的原因;自由距離較低引起Turbo碼在中信噪比下出現糾錯平台現象等等。

Turbo碼研究現狀

對於Turbo碼的研究最初集中於對於其譯碼算法、性能界和獨特編碼結構的研究上,經過十多年來的發展歷程,已經取得了很大的成果,在各方面也都走向使用階段。Turbo碼由於很好地應用了香農信道編碼定理中的隨機性譯碼條件而獲得了接近香農理論極限的譯碼性能。它不僅在信噪比較低的高噪聲環境下性能優越,而且具有很強的抗衰落、抗干擾能力。目前,Turbo碼的研究主要集中在以下幾個方面:

Turbo碼編譯碼技術

編碼方面主要包括對並行級聯編碼與串行級聯編碼的分析,以及對混合級聯方式的研究;譯碼方面主要包括迭代譯碼、譯碼算法(最大後驗概率算法MAP、修正的MAP算法Max-Log-MAP、軟輸出Viterbi算法SOVA等)的研究。

Turbo碼Turbo碼的設計和分析

主要包括交織器的設計、碼的級聯方式、譯碼算法、Turbo碼的性能分析等。在性能分析中,主要對碼重分佈及距離譜進行分析,但由於沒有相應的理論支持,這種分析只能是近似的,且僅侷限於短碼長、小碼重的情況。
Turbo 碼在直擴(CDMA) 系統中的研究及應用
Turbo 碼不僅在信道信噪比很低的高噪聲環境下性能優越,而且還具有很強的抗衰落、抗干擾能力,因此它在信道條件差的移動通信系統中有很大的應用潛力,在第三代移動通信系統(IMT-2000)中己經將Turbo碼作為其傳輸高速數據信道編碼標準。第三代移動通信系統(IMT-2000)的特點是多媒體和智能化,要能提供多元傳輸速率、高性能、高質量的服務,為支持大數據量的多媒體業務,必須在布限帶寬信道上傳輸數據。由於無線信道傳輸媒質的不穩定性及噪聲的不確定性,一般的糾錯碼很難達到較高要求的譯碼性能(一般要求比特誤碼率小於10-6e),而Turbo碼引起超乎尋常的優異譯碼性能,可以糾正高速率數據傳輸時發生的誤碼。另外,由於在直擴(CDMA) 系統中採用Turbo 碼技術可以進一步提高系統的容量,所以有關Turbo碼在直擴(CDMA) 系統中的應用,也就受到了各國學者的重視。

Turbo碼面向分組的Turbo 碼

主要面向分組的Turbo 碼的構造、譯碼譯碼器的分析。

Turbo碼Turbo 碼與其它通信技術的結合

包括Turbo 碼與調製技術(如網格編碼調製TCM)的結合、Turbo碼與均衡技術的結合(Turbo碼均衡)、Turbo碼編碼與信源編碼的結合、Turbo碼譯碼與接收檢測的結合等等。Turbo碼與OFDM調製、差分檢測技術相結合,具有較高的頻率利用率,可有效地抑制短波信道中多徑時延、頻率選擇性衰落人為干擾與噪聲帶來的不利影響。國內在Turbo碼的研究領域也取得了一定的成果和進展,西安電子科技大學綜合業務網國家重點試驗室在Turbo碼的理論和應用研究方面取得了很多研究成果。此外,清華大學北京郵電大學上海交通大學等高校都在進行Turbo碼相關的其它關鍵技術的研究方面取得一定的進展。深圳華為公司等在推動Turbo碼在移動通信系統中的應用方面起了積極的作用。

Turbo碼特點

Turbo碼 Turbo碼
Turbo碼有一重要特點是其譯碼較為複雜,比常規的卷積碼要複雜的多,這種複雜不僅在於其譯碼要採用迭代的過程,而且採用的算法本身也比較複雜。這些算法的關鍵是不但要能夠對每比特進行譯碼,而且還要伴隨着譯碼給出每比特譯出的可靠性信息,有了這些信息,迭代才能進行下去。用於Turbo碼譯碼的具體算法有:MAP(Maximum A Posterior)
Max-Log-MAP、Log-MAP和SOVA(Soft Output Viterbi Algorithm)算法。MAP算法是1974年被用於卷積碼譯碼,但用作Turbo碼的譯碼還是要做一些修改;Max-Log-MAP與Log-MAP是根據MAP算法在運算量上做了重大改進,雖然性能有些下降,但使得Turbo碼的譯碼複雜度大大的降低了,更加適合於實際系統的運用;Viterbi算法並不適合Turbo碼的譯碼,原因就是沒有每比特譯出的可靠性信息輸出,修改後的具有軟信息輸出的SOVA算法,就正好適合了Turbo碼的譯碼。這些算法在複雜度上和性能上具有一定的差異,系統地瞭解這些算法的原理是對Turbo碼研究的基礎,同時對這些算法的複雜度和性能的比較研究也將有助於Turbo的應用研究。
Turbo碼的仿真一般參考吳宇飛的經典程序。
此外,要想在移動無線系統中成功的使用Turbo碼,首先要考慮在語音傳輸中最大延遲的限制。在短幀情況下的仿真結果表明短交織Turbo碼在AWGN信道和Rayleigh衰落下仍然具有接近信道容量的糾錯能力,從而顯示出Turbo碼在移動無線通信系統中非常廣闊的應用前景。
Turbo碼 (Turbo Code)
Turbo 碼(Turbo Code)是一類應用在外層空間衞星通信和設計者尋找完成最大信息傳輸通過一個限制帶寬通信鏈路在數據破壞的噪聲面前的其它無線通信應用程序的高性能糾錯碼。有兩類 Turbo 碼在那裏,塊 Turbo 碼和卷積 Turbo 碼(CTCs),它們是相當不同的,因為它們使用不同的構件碼,不同的串聯方案和不同的 SISO 算法。

Turbo碼速率匹配

圖3-38  LTE Turbo碼速率匹配原理圖 圖3-38 LTE Turbo碼速率匹配原理圖
在E-UTRA系統中,Turbo碼速率匹配原理如圖3-38所示,也採用CBRM的速率匹配方式。在圖3-38中,Turbo編碼器輸出的系統比特流、第一校驗比特流和第二校驗比特流分別獨立地交織後,被比特收集單元依次收集。首先,交織後的系統比特流依次輸入到緩衝器中,然後交織後的第一校驗比特流和第二校驗比特流交替地輸入到緩衝器中。
在TD-LTE物理層HARQ重傳規定了4個冗餘版本(RV,Redundancy Version),因此CBRM對於同一個編碼數據塊對應着4個傳輸開始的比特位置。這4個冗餘版本均勻地分佈在緩衝器中,以快速地發起重傳。根據高層配置的冗餘版本,從冗餘版本對應的比特開始,比特選擇單元從緩衝器中逐位讀取,直至達到預定的比特數。當讀取到緩衝器的尾部,仍然沒有達到預定的比特數時,比特選擇單元自動跳至緩衝器的頭部繼續讀取。
Turbo碼速率匹配採用的交織器與卷積碼相同,不再累述。

Turbo碼編碼原理

Turbo 碼最先是由C. Beηou等提出的。它實際上是一種並行級聯卷積碼(Parallel Concatenated Convolutional Codes)。Turbo 碼編碼器是由兩個反饋的系統卷積編碼器通過一個交織器並行連接而成,編碼後的校驗位經過刪餘陣,從而產生不同的碼率的碼字。如圖所示:信息序列u={u1,u2,……,uN}經過交織器形成一個新序列u'={u1',u2',……,uN'}(長度與內容沒變,但比特位經過重新排列),u 和u'分別傳送到兩個分量編碼器(RSC1與RSC2) ,一般情況下,這兩個分量編碼器結構相同,生成序列X和X,為了提高碼率,序列X和X需要經過刪餘器,採用刪餘(puncturing)技術從這兩個校驗序列中週期的刪除一些校驗位,形成校驗序列X,X,與未編碼序列X'經過複用調製後,生成了Turbo碼序列X.

Turbo碼分量碼的選擇

Turbo 碼的一個重要特點是它的分量碼採用遞歸系統卷積碼(RSC,Recursive Systematic Convolutional code) ,這也是它性能優越的一個重要原因。之所以選擇RSC編碼器作為Turbo碼的子碼主要有以下原因:
首先,RSC碼具有系統碼的優點。這一特性使用户在譯碼時無需變換碼字而直接對接收的碼字進行譯碼,所以,遞歸系統卷積碼(RSC)對於非系統卷積碼(NSC)而言譯碼簡單、快速。
其次,從差錯控制編碼的相關文獻中可知,非系統卷積碼(NSC)的BER性能在高信噪比時比約束長度相同的非遞歸系統碼要好,而在低信噪比時情況卻正好相反。遞歸系統卷積碼綜合了NSC碼和非遞歸系統卷積碼的特性,且然它與NSC碼具有相同的trellis結構和自由距離,但是在高碼率(R≥2/3)的情況下,對任何信噪比,它的性能均比等效的NSC碼要好。由於系統遞歸卷積碼具有以上特點,並且能改善誤碼率,所以通常選擇RSC碼作為Turbo碼的子編碼器。
Turbo碼 Turbo碼
遞歸系統卷積碼(RSC)不同於一般的卷積碼器在於其結構中不僅有向前結構,還有向後反饋結構,在下圖中可以看出。RSC 編碼器一般有2-5 級移位寄存器, 用生成多項式表示為:
Turbo碼 Turbo碼
式中,1表示系統比特,gl 和g2分別表示編碼器的前饋多項式和反饋多項式。用RSC碼構成Turbo碼的分量碼的碼率R為:
式中:R1,R2為構成Turbo 碼的分量碼的碼率,在經刪餘後,分量RSC1和RSC2的碼率可以不同。
Turbo 碼的最大似然譯碼性能分析出,Turbo 碼在高信噪比下的性能主要由它的自由距離所決定。因為Turbo碼的自由距離主要由重量為2的輸入信息序列所產生的碼字間的最小距離所決定,用本原多項式作為反饋連接多項式的分量編碼器所產生的碼字的最小重量為最大,因此當Turbo碼交織器的大小給定後,如果分量碼的反饋連接多項式採用本原多項式,則Turbo碼的自由距離會增加,從而Turbo碼在高斯信噪比情況下的“錯誤平層(errorfloor)”會降低。錯誤平層效應指的是在中高信噪比情況下,誤碼曲線變平。也就是説,即使是再增大信噪比,無碼率也降不下來(一般的系統,比如説是BPSK的誤碼曲線,誤碼率隨着信噪比的增大是單調下降的)。

Turbo碼交織器的設計

交織器是影響Turbo碼性能的一個關鍵因素,它可以便Turbo碼的距離譜細化,即碼重分佈更為集中。它的特性的好壞直接關係着Turbo碼的性能。
Turbo碼 Turbo碼
編碼器中交織器的使用是實現Turbo碼近似隨機編碼的關鍵。交織器實際上是一個一一映射函數,作用是將輸入信息序列中的比特位置進行重置,以減小分量編碼器輸出校驗序列的相關性和提高碼重。通常在輸入信息序列較長時可以採用近似隨機的映射方式,相應的交織器稱為偽隨機交織器。由於在具體的通信系統中採用Turbo碼時交織器必須具有固定的結構,同時是基於信息序列的,因此在一定條件下可以把Turbo碼看成一類特殊的分組碼來簡化分析。交織是對信息序列加以重新排列的一個過程。如果定義一個集合A , A={1,2,…,N}。則交織器可以定義為一個一一對應的映射函數π(A-->A):J=π(i),(i,j屬於A) 這裏的i ,j 分別是未交織序列C 和交織序列C' 中的元素標號。映射函數可以表示為πN = (π⑴,π⑵,π⑶,…,π(N))。其原理如圖在交織器的設計中,基本上是遵循下列原則:
Turbo碼 Turbo碼
1)最大程度的置亂原來的數據排列順序,避免置換前相距較近的數據在置換後仍然相距較近,特別是要避免相鄰的數據在置換後仍然相鄰。2) 儘量提高最小碼重碼字的重量和減小低碼重碼字的數量。
3) 儘可能避免與同一信息位直接相關的兩個分量編碼器中的校驗位均被刪除;
4) 對於不歸零的編碼器,交織器設計時要避兔出現"尾效應" 圖案。
在設計交織器時,應考慮具體應用系統的數據的大小,使交織深度在滿足時延要求的前提下,與數據大小一致,或是數據幀長度的整數倍。
交織器和分量碼的結合可以確保Turbo碼編碼輸出碼字都具有較高的漢明重量。在Turbo編碼器中交織器的作用是將信息序列中的比特順序重置。當信息序列經過第一個分量編碼器後輸出的碼字重量較低時,交織器可以使交織後的信息序列經過第二個分量編碼器編碼後以很大的概率輸出較高重碼字,從而提高碼字的漢明重量:同時好的交織器還可以奇效地降低校驗序列間的相關性。因此,交織器設計的好壞在很大程度上影響着Turbo碼的性能。
交織器的類型可以分為兩大類,一是規則交織器,也稱確定性交織器,其交織器的映射函數可以由一個確定的解析函數給出。二是隨機交織器,其映射函數不能由-個確定的解析表達式給出。
Turbo 碼常用的交織器包括以下幾種:分組交織器、隨機交織器、s-隨機交織器等等。

Turbo碼刪餘技術

對於數字通信領域日益緊張的帶寬資源,提高碼率就意味着節省帶寬和降低通信費用。刪餘(Puncturing)是目前提高Turbo碼碼率的主要方法。
Turbo碼 Turbo碼
Turbo 碼中,刪餘器通常比較簡單,因為在一般的應用中,碼率都是在1/2 或者1/3 ,因此即使有刪餘器,它一般也只是週期性的從兩個分量編碼器中選擇校驗比特輸出即可。其具體做法是:從兩個RSC編碼生成的校驗序列中週期地刪除一些校驗位,然後再與未編碼的信息序列複用重組成最後的編碼輸出序列,調製後進入信道傳輸。若信息序列為d1 =(C11) ,長度為N ,那麼兩個RSC分量編碼器的輸出為:圖3. 6 所示示為採用了刪餘技術的編碼結構,若取RSC1輸出的奇比特和RSC2的偶比特,即採用刪餘矩陣P= [ 10,01] , 那麼編碼輸出長度為2N,碼率提高為1/2的序列為Cp.兩個分量碼編碼器的輸出經過刪餘得到的序列被稱為奇偶序列,是校驗序列。一個好的刪餘算法應該符合以下幾點要求:
Turbo碼 Turbo碼
1) 不能刪除信息位.刪除信息位會造成較大的信息損失,從而使誤碼率有較大的損失;
2) 刪餘應該在時間域上均勻進行,刪餘同一時刻所有的比特位會造成此時刻信息損失較大,影響誤碼率
3) 刪餘應該對於各分量碼均勻進行,從而使信息的損失均勻分佈在各分量碼上,避免由於信息損失不均勻導致分量碼譯碼性能下降。

Turbo碼編碼器

典型的Turbo碼編碼器由兩個遞歸系統卷積碼(RSC,Recursive Systematic Convolutional codes)並行級聯而成,因此Turbo碼又被稱為並行級聯卷積碼(PCC,Parallel Concatenated Convolutional codes)。
圖3-33  Turbo碼編碼器的結構 圖3-33 Turbo碼編碼器的結構
Turbo碼編碼器的基本結構如圖3-33所示。
Turbo碼編碼器一般包括兩個結構相同的遞歸系統卷積編碼器和一個隨機交織器。長度為N的信息序列u一方面直接進入第1個分量編碼器RSC1,另一方面經過隨機交織器處理後送入第2個分量編碼器RSC2。隨機交織器的處理是輸入序號至輸出序號的一映射,它的輸出為長度相同,但比特位置經隨機排列的交織序列。兩個分量編碼器RSC1和RSC2分別產生兩個不同的校驗比特序列xx。為了提高Turbo碼的碼率,除可以選用高碼率的分量碼外,還可以採用打孔(Puncturing)技術從這兩個校驗序列中刪除一些校驗位,然後再與信息序列x複用在一起輸出。例如,假定圖3-33中兩個分量編碼器的碼率均是1/2,為了得到1/2碼率的Turbo碼,可以採用打孔矩陣,即刪去來自RSC1的校驗序列x的偶數位置比特與來自RSC2的校驗序列x的奇數位置比特。為了處理更加簡單,在TD-LTE中採用了循環緩存速率匹配技術(CBRM,Circular Buffer Rate Matching),具體內容見3.5.2.2節相關描述。
圖3-34  (37,21)分量編碼器RSC結構 圖3-34 (37,21)分量編碼器RSC結構
Turbo碼的兩個分量編碼器結構為遞歸形式,而卷積碼一般都採用非系統、非遞歸形式。從相關文獻中可知,RSC碼與非系統卷積碼(NSC,Non-Systematic Convolutional codes)具有相同的Trellis結構和自由距離,但是在低碼率時,NSC碼的誤碼性能在高信噪比時比RSC碼更好;而在低信噪比時情況卻正好相反。另外,在高碼率的情況下,對任何信噪比,RSC碼的性能往往優於NSC碼。因此,Turbo碼編碼器採用RSC碼作為分量碼。例如,(37,21)Turbo碼的分量編碼器的生成多項式包括反饋多項式g0=37和前饋多項式g1=21,如圖3-34所示。
Turbo碼的譯碼複雜度一般隨分量編碼器的寄存器個數呈現指數級增長。例如,(37,21)Turbo碼使用4個寄存器,譯碼複雜度一般是16的倍數。在TD-LTE系統中,Turbo的分量編碼器的生成多項式為(g0=13,g1=15),使用了3個寄存器,因此譯碼複雜度較小。

Turbo碼Turbo內置交織器

Turbo碼內置的交織器是在第2個分量編碼器RSC2編碼處理之前將信息序列的N個比特的位置進行隨機排列,它起着關鍵的作用,很大程度上影響着Turbo碼的性能。通過隨機交織,使得編碼由簡單的短碼得到了近似長碼。當交織器充分大時,Turbo碼就具有近似於隨機長碼的特性。
在E-UTRA系統中,Turbo碼的交織器採用二次置換多項式函數(QPP,Quadratic Permutation Polynomials),即
公式 公式
其中,x代表交織後的序號,f(x)代表交織器輸入的序號,f1f2為設計參數。這個交織器,又稱QPP交織器,它的主要優點是無衝突交織處理,能夠支持並行譯碼,提高譯碼速度。
Turbo碼譯碼器採用迭代譯碼方法,其中使用兩個分量譯碼器,並在第一分量譯碼器與第二分量譯碼器之間傳遞軟譯碼信息,如圖3-35所示。無衝突交織器支持並行譯碼的主要原理是:在進行迭代譯碼時,第一分量譯碼器將信息序列進行分段,每個分段使用單獨的一個專用的譯碼處理單元獨立地進行譯碼,各分段譯碼過程可以並行進行,提高譯碼速度。但是第二分量譯碼器也需要採用相同的、並行的分段譯碼方法,這就要求第二分量譯碼器的每個獨立專用的譯碼處理單元同一時刻訪問不同的分段,這樣才能避免信息序列分段地訪問衝突,從而實現第二分量譯碼器的並行分段譯碼,提高整個迭代譯碼的速度。圖3-36所示為無衝突交織器的示意圖,4個窗口(Windows)A、B、C、D分別代表獨立的分段譯碼,它們需要通過交織器獲取各自的原始數據,此時4個窗口A、B、C、D在讀取原始數據時,不會出現在同一時刻訪問同一分段,不會發生資源訪問衝突的問題,這樣保證了4個窗口A、B、C、D可以並行地分段譯碼。
圖3-35  Turbo碼譯碼器的迭代譯碼框圖 圖3-35 Turbo碼譯碼器的迭代譯碼框圖
圖3-36  並行譯碼示意圖 圖3-36 並行譯碼示意圖
為了支持靈活的系統結構,同時保證魯棒系統性能,在TD-LTE系統中優化設計了188種QPP交織器長度,可以支持相應的188種Turbo編碼塊大小。這裏,列舉其中的3種交織器。
例1:當N=40時,則f1=3,f2=10。
例2:當N=1008時,則f1=55,f2=84。
例3:當N=6144時,則 f1=263,f2=480。
TD-LTE Turbo碼的QPP交織器長度N的每個因子都可以作為分段大小和並行度,比如例3中,N=6144=8×768,對應的Turbo譯碼器可以使用8個並行的分段譯碼器,每個分段譯碼器的譯碼長度是768bit。
QPP交織器除了支持並行譯碼,還有其他的優點,例如計算複雜度較小,實現非常簡單等,因此被應用於TD-LTE系統中。

Turbo碼性能界

為了便於分析Turbo碼的理論性能的上界(Upper Bound),一般使用誤比特率(BER)來統計性能,並假設最大似然譯碼(ML)、BPSK調製和加性高斯白噪聲信道(AWGN)。Turbo碼的性能上界就可以使用聯合界(Union Bound)來確定,即
公式 公式
(3-19)
其中,
是首一輸入序列對應的所有重量為
的碼字中信息位的全部重量之和。
式(3-19)還可以進一步寫成
公式 公式
(3-20)
其中,wd代表碼字重量為d的每個碼字的平均信息位重量,Nd代表碼字重量為d的碼字數目,即碼字多樣性(Multiplicity)。另外,還定義一個等效的多樣性(Effective Multiplicity),即
公式 公式
(3-21)
當信噪比較高時,式(3-20)可以進一步簡化,獲得Turbo碼的漸近性能(Asymptotic Performance),即
公式 公式
(3-22)
式(3-22)説明,Turbo碼的漸近性能主要是由自由距離()決定的。
為了進一步解釋Turbo的性能界,以上述(37,21)Turbo碼為例,交織器大小為65536,它的碼率R=1/2,自由距離dfree=6,平均重量wfree=2,等效的多樣性為
公式 公式
(3-23)
Turbo碼的漸近性能為
公式 公式
(3-24)
圖3-37給出了這個式(3-24)對應的漸近性能曲線,同時給出了(2,1,14)卷積碼的漸近性能曲線作為對比。Turbo碼性能界出現的平坦特徵主要由較小的自由距離決定,而卷積碼的性能界出現陡峭特徵主要由較大的自由距離決定。Turbo碼的性能優勢主要出現在較低的信噪比範圍,此時漸近性能曲線位置相對較低,其原因是Turbo碼具有很小的等效多樣性,這在很大程度上決定了Turbo碼的優異性能。顯然,交織器長度越大,對應的信息比特長度N越大,Turbo碼的性能增益就越大。
圖3-37  Turbo碼性能界 圖3-37 Turbo碼性能界

Turbo碼譯碼原理

香農信息論告訴我們,最優的譯碼算法是概率譯碼算法,也就是最大後驗概率算法(MAP)。但在Turbo碼出現之前,信道編碼使用的概率譯碼算法是最大似然算法(ML)。ML算法是MAP算法的簡化,即假設信源符號等概率出現,因此是次優的譯碼算法。Turbo碼的譯碼算法採用了MAP算法,在譯碼的結構上又做了改進,再次引入反饋的概念,取得了性能和複雜度之間的折衷。同時,Turbo 碼的譯碼採用的是迭代譯碼,這與經典的代數譯碼是完全不同的。
Turbo碼 Turbo碼
Turbo 碼的譯碼算法是最早在BCJR 算法的基礎上改進的,我們稱以MAP算法,後來又形成Log-MAP算法、Max-Log-MAP以及軟輸入軟輸出(SOVA)算法。Turbo 碼的譯碼結構圖
⒈Turbo 碼的譯碼結構如圖所示. Turbo 譯碼器有以下的特點:
1) 串行級聯
3) 在迭代譯碼過程中交換的是外部信息
概率譯碼譯碼原理及結構
譯碼時首先對接收信息進行處理,兩個成員譯碼器之間外部信息的傳遞就形成了一個循環迭代的結構。由於外部信息的作用,一定信噪比下的誤比特率將隨着循環次數的增加而降低。但同時外部信息與接受序列間的相關性也隨着譯碼次數的增加而逐漸增加,外部信息所提供的糾錯能力也隨之減弱,在一定的循環次數之後,譯碼性能將不再提高。

Turbo碼譯碼算法

Turbo碼 Turbo碼
如前所述,turbo碼需要一種軟輸入軟輸出的譯碼算法。軟輸出譯碼器的輸出不僅應包含硬判決值,而且包括做出這種判斷的可信程度。譯碼算法應該考慮到三方面的問題,及外信息的引入;如何在迭代譯碼中充分利用各類信息,防止簡單正反饋的形成,確保算法收斂;充分利用碼原件的相關信息。常見的算法有一下幾種:

Turbo碼標準MAP算法

是對bahl軟輸出算法做一定修正後,通過除以先驗分佈來消除正反饋的算法。對於約束長度為M 1的卷積碼,其運算量為每比特6x3^M次乘法和5x2^M次加法。由於乘法運算量大,限制了譯碼的規模和速度。

Turbo碼Log-MAP算法

實際上就是對標準MAP算法中的似然全部用對數似然度來表示,這樣,乘法運算變成了加法運算。總的運算量成為6x2^M次加法,5x2^M次求最大運算和5x2^M次查表。

Turbo碼Max-Log-MAP算法

是在上述對數域的算法中,將似然值加法表示式中的對數分量忽略,是似然加法完全變成求最大值運算,這樣除了省去大部分的加法運算外,最大的好處是省去了對信噪比的估計,使得算法更穩健。

Turbo碼軟輸出維特比譯碼(SOVA)

Turbo碼 Turbo碼
其運算量為標準維特比算法的兩倍。維特比算法是最大似然序列估計算法,但由於在它的每一步都要刪除一些低似然路徑,為每一狀態只保留一條最優路徑,它無法提供軟輸出。為了給他輸出的每個比特賦予一個可信度,需要在刪除低似然路徑是做一些修正,以保留必要的信息。其基本思想是利用最優留存路徑和被刪路徑的度量差,這個差越小意味着這次算去的可靠性越好。然後用這個差去修正這條路徑上各個比特的可信度。

Turbo碼性能仿真比較

目前Turbo 碼的大部分研究致力於在獲得次優性能的情況下減小譯碼複雜度和時延,從而得到可實現的Turbo碼系統。
1.幾種主要譯碼算法的性能比較
Turbo碼 Turbo碼
譯碼算法對Turbo碼的影晌
對MAP算法、Log-MAP算法、Max-Log-MAP算法和SOVA算法在加性高斯白噪聲信道(AWGN)環境下進行仿真比較,系統採用的是BPSK調製方式,Turbo 碼的交織長度是1024 , RSC子碼的生成多項式為(37,21) ,系統編碼率為R=1/2,譯碼時迭代5次,結果以曲線圖給出如圖。仿真結果表明,四種算法中,MAP算法性能最好,Log-MAP 算法的性能跟MAP 算法在較低的SNRq時比較接近, 高信噪比時差別則較大。Max-Log-MAP算法和SOVA算法的性能十分接近,一般情況下,Max-Log-MAP算法的性能,總是稍優於SOVA算法。它們跟MAP和Log-MAP相比,性能下降十分明顯。從算法複雜度而言,MAP算法最為複雜,Log-MAP 其次,之後是Max- Log-MAP ,SOVA算法最簡單。由此可以看出,性能優異的Turbo碼譯碼算法十分複雜,如果要使得譯碼容易實現而對算法進行簡化或者是採用簡單的算法,往往需以性能的降低為代價。
⒉ 不同迭代次數對Turbo碼性能的影響
Turbo碼 Turbo碼
迭代次數對Turbo碼的影響左圖給出了在不同解碼迭代次數下,碼率為1/ 2的Turbo碼的BER與Eb/N0的關係曲線。Turbo 碼的交織長度是1024 ,RSC 子碼的生成多項式為(37,21) ,系統編碼率為R=1/2。如Turbo碼譯碼原理中所述,兩個譯碼器之間互相交外部信息進行迭代。可以得到,迭代譯碼次數增大,譯碼性能增加。在第一次迭代的誤比特性能都比較差,這是因為兩個分量譯碼器之間的信息還沒有被很好的相互利用。隨着迭代次數的增加,兩個分量譯碼器之間的外信息被更好的利用,對信息比特的估計更接近最大似然比,判決輸出的正確性就越高。迭代次數達到一定數值時,譯碼性能趨於穩定,再增加新的迭代對性能的改善非常小。迭代增加了譯碼時延,在大幀編碼時尤其如此。仿真中迭代次數增大時運行時間顯著增加。
Turbo碼 Turbo碼
由於達到一定迭代次數後,新增加的迭代對性能改善不大,而法代又極大地增加譯碼時延,所以在實際設計Turbo碼系統時,需要選擇適當的迭代次數,在允許的譯碼時延內,達到最佳的譯碼性能。這種預先規定迭代次數的方式是終止譯碼迭代次數的方法之一.當要求的信噪比比較大,誤碼率要求不太高的情況,往往經過很少的幾次迭代就能達到譯碼要求正確譯碼。此時,如果預設迭代次數比較大,那麼譯碼器會繼續譯碼,一直進行到預設次數的迭代為止.後邊的幾次送代並沒有明顯地提高性能,是完全不必要的,而且多餘的法代食給譯碼帶來了額外的時延。
⒊ 不同編碼約束度K 對Turbo 碼性能的影響
不同的約束度對Turbo 碼性能的影響
採用不同子碼的Turbo碼的性能也有很大差別。Turbo 碼的設計中首先就是選擇好的RSC子碼。這裏只對幾種常用的、較好的採用不同約束長度的RSC 做子碼的Turbo 碼進行仿真,以分析約束長度對Turbo 碼性能的影響。可以看出,隨着約束長度K增大,編碼後的碼元與更多個信息比特相關,因此譯碼糾錯能力越強誤比特率HER就越小.當BER<10-2e 時,增加卷積碼的約束度將會改善Turbo 碼HER性能。在交織器長度和碼率一定時,約束度越大,Turbo 碼的HER 性能越好。

Turbo碼在3G中的應用

信道編碼技術可改善數字信息傳輸過程中噪聲和干擾造成的誤差,提高系統可靠性。因而挺供高效的信道編譯碼技術成為3G移動通信系統中的關鍵技術之一。3G移動通信系統所提供的業務種類的多樣性、靈活性,對差錯控制編譯碼提出了更高的要求。WCDMAcdma2000方案都建議採用除與IS-95 CDMA系統類似的卷積編碼技術和交織技術之外,採用Turbo編碼技術。
⒈ RSC 編碼器的設計
cdma2000 方案中,Turbo 碼被用在CDMA系統前向、反向鏈路信道中。反向鏈路信道中,子編碼器(3,1,3)RSC 的生成矩陣為:
Turbo碼
RSC編碼器基於8狀態的並行級聯卷積碼(8PCCC)。交織採用了比特翻轉技術。通過刪餘處理,碼率為1/4,1/2,1/3的Turbo碼被採用。分別對兩個子編碼器的輸出奇偶位V2和V2‘交替刪餘,可得到碼率為1/4的Turbo碼;對V1,V1' 刪餘,可得碼率為1/3;對V2、V2’間隔幾V1,V1‘刪餘,可得碼率1/2。
WCDMA中,對於收務服務質量需求BER介於10-3e和10-6e之間。並且允許時延較長的數據業務,RSC子編碼器使用8態並行級聯卷積碼8-PCCι。生成矩陣為:
WCDMA中的turbo編碼器
⒉ 交織長度的選擇
在3G移動通信中,業務速率由32kbit/s到2Mbit/s。10ms一幀,幀長由20 到20000。為了提高譯碼器性能,在一些低速業務中,可採用多幀組成一個數據塊,加大交織深度。
在WCDMA中,Turbo碼交織器是可截短型塊交織器。交織行數為5、10或20行,在行數確定的基礎上選擇列數。數據按行讀入交織器,按固定模式進行行間轉換,不同輸入序列長度對應不同的行數和行間轉換模式。行轉換完成後,近行列轉換。不同行對應不同列間轉換參數,採取的是接近隨機化的素數取模算法。數據在完成行列轉換後,按列讀出。
cdma2000 也是基於塊交織。交織行數為2^5=32行,列數N=2n,n為滿足使32N大於或等於幀長度的最小值。數據按行讀入。行間轉換的依據是比特翻轉原則。列間轉換的置換公式是:x(i+1) = [x(i) + c] mod N,即為同模取餘法,為了更接近隨機化,使每列的偏置取不同值。數據經過行列轉換後,按列輸出。
⒊ 譯碼器的設計
由於Turbo碼譯碼算法複雜,譯碼延時長,所以對於時延要求高的數據業務應用受限。因而低複雜度譯碼器的設計成為Turbo碼譯碼算法設計的焦點。為了換取複雜度的簡化,允許次優性能譯碼的存在。例如3GPP中允許Turbo碼的譯間比標準MAP算法有1dB的增益損失。結合CRC校驗來減少迭代次數,在SNR 較大時可以減少譯碼複雜度和譯碼延時。

Turbo碼發展前景

日前Turbo碼的研究尚缺少理論基礎支持,但是在各種惡劣條件下(即低SNR情況下),提供接近Shannon 極限的通信能力已經通過模擬證明。但Turbo碼也存在着一些急待解決的問題,例如譯碼算法的改進、複雜性的降低、譯碼延時的減小。作為商用3G 移動通信系統的關鍵技術之一,Turbo 碼也將逐漸獲得較好的理論支持並且得到進一步開發和完善。