邵璐
(寧夏大學新華學院信息與計算機科學系 寧夏回族自治區銀川市 750021)
Turbo 碼的編碼端[2]包含兩個或以上編碼器組件,輸入的序列碼通過交織器進行交織處理后,再經由每個編碼器組件進行卷積編碼。在譯碼端(以兩個編碼器組件為例),選擇軟判決算法替代硬判決,并將譯碼結果迭代若干次,以得到更可靠的性能結果。一般來說,Turbo 碼的編碼可以看作為一種改進的級聯結構,譯碼是對相關碼序列的迭代算法運算。
Turbo 編碼器的經典結構包含兩個編碼器組件(Component code),如圖1所示。編碼器組件通常選擇遞歸系統卷積(RSC)編碼器,如圖2所示。在實際應用中,RSC 編碼器總是保持一半速率,每位輸入比特的輸出處對應產生一比特系統位和一比特校驗位。為了實現半速率Turbo 碼,Turbo 編碼器中的每個編碼器組件都需要進行刪余(Puncturing)。在實際工作中,Turbo 編碼器一般采用刪余方式,通常選擇RSC 編碼器的全速率的系統序列和半速率的校驗序列。并且,通常選擇刪余奇偶校驗位而不是系統位,是因為刪余前者的性能往往超過后者。
此外,在兩個編碼器組件之間還存在一個交織器(Interleaver)[3],其目的是克服信道衰落引起的突發衰落。若沒有交織器,信道編碼(如Turbo 編碼)雖可以有效地消除孤立性誤碼,但遭遇突發性誤碼時往往會失效。
K=3 的遞歸系統卷積編碼器[1]如圖2所示(生成多項式為(7,5))。
與編碼器類似,Turbo 迭代譯碼器的經典結構也包含兩個由交織器連接的編碼器組件,如圖3所示。在譯碼器原理圖中,有三個輸入,包括編碼后的信道輸出及其各自對應的奇偶校驗位,以及來自其他編碼器組件對原始譯碼信息的估計——稱為先驗信息(a-priori information)。在Turbo 碼中,譯碼器在譯碼過程中不僅要為下一次判決生成一系列軟輸出(Soft),還要生成每一比特位對應的正確譯碼概率。注意,軟輸出被稱為對數似然比(Log Likelihood Ratios,LLRs),分別表示每個正確判決的概率。
Turbo 譯碼器采用了迭代譯碼,示意圖如圖3。在第一次迭代中,編碼器組件1(Component decoder 1),即分量譯碼器1 只接收信道輸出信息并生成一個軟輸出,該軟輸出是信道輸出比特的估計值。之后,編碼器組件2,即分量譯碼器2 同時獲取來自分量譯碼器1和信道輸出信息在得到一個估計值,作為第一次迭代的結果。接下來,在第二次迭代中,分量譯碼器1 不僅接收信道輸出信息,還同時接收由第一次迭代中分量譯碼器2 在第一次迭代中生成的結果。第一次迭代生成的額外信息,構成了第二次迭代對應的先驗信息,用于分量譯碼器2 的第二次迭代[1],以得到更精確的譯碼輸出結果。這一過程循環往復,可提高譯碼正確率,即誤碼率(BER)隨著迭代的進行而降低。在實際工作中,考慮到譯碼的復雜度,通常選用8 次迭代譯碼[1]。由于編碼器中使用了交織器,因此在迭代譯碼過程中,需要使用交織器和去交織器來避免重復出現LLRs,從而消除傳輸誤差。此外,同樣的信息在每次迭代譯碼中只能使用一次,因此Berou 等人定義了外部信息和內部信息[4],使其在Turbo 碼的解碼中更加清晰。

圖1:Turbo 編碼器結構[1]

圖2:遞歸系統卷積編碼器結構[1]

圖3:Turbo 解碼器的結構[1]
本文在Turbo 譯碼階段采用近似Log-MAP 算法。1995年,Robertson[5]設計出另一種可完全正確進行估計的算法,稱為近似Log-MAP (Approximation Log-MAP,approx-Log-MAP)算法,其性能與MAP 算法相當,但復雜度較低。它的實現效率極高,目前已廣泛應用于Turbo 譯碼器之中。本文選擇了此種譯碼算法,算法基本表達式如下:

圖4:AWGN 信道下不同迭代次數Turbo 碼的性能

圖5:AWGN 信道下Turbo 碼不同調制方案的性能

圖6:非相關瑞利衰落信道下Turbo 碼不同迭代次數的性能

其中fc(x)為修正項,其值可通過查表得到。
如圖4所示,在AWGN 信道壞境下,增加迭代次數可以提高Turbo 碼的性能(QPSK),例如經歷2 次迭代的Turbo 碼的誤碼率整體優于1 次迭代的Turbo 碼。然而,隨著迭代次數的不斷提高,對誤碼率的改進極小,但Turbo 碼的復雜度卻大大提高。另外,將未編碼通信系統與1 次迭代的Turbo 碼系統進行比較,可以明顯地看出10-5誤碼率處提高了7dB。
以1 次迭代的Turbo 碼為例(圖5),QPSK 具有所有其他方案中最好的性能,其中僅需要6dB 就可以實現10-5的誤碼率。而對于8PSK、16QAM 和64QAM,若想達到足夠低的誤碼率,則需要更好的信噪比環境。特別是對于64QAM,大約需要27dB 才能得到10-5的誤碼率,這是仿真中所有調制方案中性能最差的。
圖6對比了AWGN 和非相關瑞利衰落信道下未編碼和使用了Turbo 碼的信號性能。無論是在AWGN 信道還是在非相關的瑞利衰落信道下使用Turbo 編碼,均遠優于不加信道編碼的系統性能。
從仿真結果來看,Turbo 碼是一種有效的信道編碼方式。仿真結果表明,在AWGN 信道和非相關的瑞利信道環境下,Turbo 碼的迭代次數和調制方式的表現差異都得到了驗證和比較。毫無疑問,Turbo 編碼提高了通信系統的性能,但也造成了延遲和硬件實現的復雜度。隨著芯片集成度的持續提高,硬件實現這一問題得以解決。但無線網絡時延要求的日漸提高,編碼與譯碼造成的延遲則是未來要考慮的主要因素。