陳海飛,權(quán)進(jìn)國,林孝康
(清華大學(xué)深圳研究生院現(xiàn)代通信實(shí)驗(yàn)室,深圳518055)
1994年,Pyndiah等人[1]在 Chase算法的基礎(chǔ)上提出了一種線性分組碼的軟輸入軟輸出迭代譯碼算法,并將它應(yīng)用于乘積碼譯碼中,獲得了很好的編碼增益。由于其性能與Turbo卷積碼較為相近?;贑hase算法的TPC迭代譯碼算法是一種通過縮小碼字搜索范圍的次最優(yōu)譯碼算法。在譯碼時(shí),將碼元的對(duì)數(shù)似然比(Log-Likelihood Ratio,LLR)作為譯碼器的軟輸出,并將軟輸出信息減去軟輸入信息,作為下次迭代的外信息。通過這種方式不斷修正碼元的軟信息,增大其可靠度,獲得較好的譯碼性能。但是傳統(tǒng)的迭代譯碼方法都是采用固定的迭代因子以及迭代次數(shù),在信道的信噪比變化比較大的情況下,固定的迭代譯碼方法不能靈活的選擇最優(yōu)的迭代因子以及迭代次數(shù),并且在低噪聲信道環(huán)境下,較大的迭代次數(shù)會(huì)帶來不必要的功耗浪費(fèi)。針對(duì)以上問題提出一種自適應(yīng)迭代譯碼算法,估算信道的信噪比,靈活地選擇最適合的迭代因子,并根據(jù)譯碼的結(jié)果自動(dòng)終止迭代譯碼。
以二維乘積碼為例來講述乘積碼的構(gòu)成。設(shè)分組碼:C1(n1,k1,d1)和 C2(n2,k2,d2)。其中 n 表示編碼長度,k表示信息比特長度,d表示最小漢明距離。二維乘積碼P=C1?C2的構(gòu)造方式如圖1所示。
Turbo乘積碼是一種串行級(jí)聯(lián)碼,所以采用軟判決迭代譯碼能提升Turbo乘積碼的性能。最常用的就是Chase譯碼迭代算法。Chase算法是一種軟輸入硬輸出的譯碼算法,其輸出為硬判決信息,1998年 Pyndiah[2]針對(duì) Turbo 乘積碼提出一種基于修正的Chase譯碼算法的迭代譯碼算法。迭代譯碼結(jié)構(gòu)由行、列譯碼器串行級(jí)聯(lián)而成,結(jié)構(gòu)如圖2所示。
圖1 二維TPC編碼框圖
圖2 SISO迭代譯碼圖
每一次迭代譯碼輸入外信息W[m],經(jīng)過軟譯碼單元計(jì)算輸出外信息W[m+1]。如圖2所示,在單元譯碼器中α[m]表示第m次迭代時(shí)的加權(quán)因子,β[m]表示第m次迭代時(shí)的可靠度因子。它們的值都是通過經(jīng)驗(yàn)獲得,在迭代初始階段信噪比較大時(shí),α[m]一般取值較小,主要用于抑制了外信息W[m]的作用,在迭代的后期,信噪比較小時(shí),其值可以逐漸增大。β[m]主要用于控制軟輸出信息的輸出峰值范圍。
大量實(shí)驗(yàn)表明,不同的迭代因子{α,β}在不同的信噪環(huán)境下對(duì)TPC迭代譯碼的收斂速度以及誤碼率影響很大。經(jīng)典的Turbo乘積碼譯碼算法采用固定的迭代次數(shù)和固定的迭代因子{α,β},沒有充分考慮到信道環(huán)境給譯碼器性能帶來的影響,并且在低噪聲信道環(huán)境下,較大的迭代次數(shù)會(huì)帶來不必要的功耗浪費(fèi)。
提出一種自適應(yīng)Turbo迭代譯碼算法,針對(duì)不同的信道環(huán)境選擇最優(yōu)的迭代因子,并根據(jù)譯碼結(jié)果自動(dòng)終止迭代譯碼。整個(gè)譯碼的原理框圖如圖3所示。
首先根據(jù)解調(diào)端輸出的軟信息R估算信道的信噪比,針對(duì)不同的信道環(huán)境選擇合適的迭代因子,然后將軟信息R及迭代因子送入Turbo碼SISO迭代譯碼器,迭代終止判斷單元檢測(cè)每次譯碼的碼字,并和上一次譯碼的碼字做比較,當(dāng)滿足迭代終止條件時(shí),結(jié)束譯碼并輸出碼字。
圖3 自適應(yīng)迭代譯碼框圖
其中SISO迭代譯碼單元采用經(jīng)典的Turbo乘積碼迭代譯碼算法,在這里不詳細(xì)介紹。論文的重心在于:信噪比估計(jì)單元、迭代因子單元、迭代終止判斷單元。
信噪比的計(jì)算公式復(fù)雜,不直接給出信噪比的計(jì)算公式,用一個(gè)與信噪比正相關(guān)的量S來表示信道的信噪比大小。設(shè)接收的軟信息 Rn×m是一個(gè)n×m的矩陣,首先對(duì)R的每一個(gè)元素做硬判決得到矩陣K
然后根據(jù)行、列編碼規(guī)則C1、C2對(duì)矩陣K做硬譯碼:硬譯碼可以先對(duì)K的行進(jìn)行譯碼,再對(duì)K的列進(jìn)行譯碼。得到譯碼碼字Dhard。最后根據(jù)硬譯碼碼字Dhard與軟信息R估算信道環(huán)境。信道環(huán)境的好壞,表現(xiàn)為信道信噪比的大小,信噪比估算單元不直接計(jì)算信道信噪比,而用Dhard與R之間的距離來表示信道信噪比的大小:
迭代因子選擇單元根據(jù)信噪比估計(jì)單元輸出的信噪比S選擇最合適的迭代因子α、β,作為SISO譯碼器的迭代因子。S與α、β的對(duì)應(yīng)關(guān)系事先由MATLAB仿真獲得。
3.2.1 S與α、β的對(duì)應(yīng)關(guān)系
MATLAB仿真流程圖如圖4所示。
(1)生成一組信噪比測(cè)試向量SNR={snr1snr2...snrn},預(yù)先設(shè)定一組備選迭代因子向量{α1,α2,α3,...,αn},{β1,β2,β3,...,βn}
(2)選擇信噪比snrk
(3)用MATLAB里生成信噪比為snrk的噪聲序列n,生成發(fā)送碼字c,則接收的軟信息:r=c+n
根據(jù)公式2估算S
圖4 MATLAB確定最優(yōu)迭代因子流程圖
(4)將軟信息 R和每一個(gè)組合{αi,βj}送入SISO迭代譯碼器,找出信噪比Sk下最優(yōu)的迭代因子。迭代因子好壞的評(píng)價(jià)標(biāo)準(zhǔn)為公式4。兩個(gè)評(píng)價(jià)因子:誤碼率和迭代次數(shù)。
其中c是權(quán)重,f1(·),f2(·)是歸一化函數(shù),將誤碼率和迭代次數(shù)映射到一個(gè)可比較的空間里。
(5)k=k+1,重復(fù)步驟(2)直至k=n。
(6)得到信噪比{S}與迭代因子{α、β}的對(duì)應(yīng)關(guān)系。在這里設(shè)Sk對(duì)應(yīng)的迭代因子為{αk、βk}
3.2.2 選擇合適的迭代因子
仿真得到的信噪比{S}與迭代因子{α、β}的對(duì)應(yīng)關(guān)系點(diǎn)數(shù)有限,是離散的集合。實(shí)際應(yīng)用中信噪比估算單元輸出的可能不屬于仿真集合{S},為了得到合適的迭代因子{、},可以對(duì)離散的{S}與{α、β}的對(duì)應(yīng)向量進(jìn)行線性插值,插值的公式如下:
設(shè)Sk≤<Sk+1,則線性插值得到的迭代譯碼因子{α=、β=}為:
最大似然譯碼是在許可碼字空間找到與輸入軟信息R距離最小的碼字作為譯碼輸出。隨著迭代次數(shù)的增加,信噪比逐漸減小,但是迭代次數(shù)達(dá)到一定程度之后,進(jìn)一步的迭代譯碼并不能更進(jìn)一步降低誤碼率。迭代終止單元給出一種低復(fù)雜度的迭代終止判斷方法,自適應(yīng)的選擇迭代次數(shù)。根據(jù)迭代譯碼輸出的碼字Dn與上一次譯碼輸出Dn-1的距離來判斷譯碼器是否繼續(xù)迭代。距離的計(jì)算方法如下:
判斷依據(jù)為:若dis(n)≤H終止迭代,否則繼續(xù)迭代。其中H是迭代門限,迭代門限的值與TPC編碼方案有關(guān),一般根據(jù)實(shí)際的應(yīng)用取經(jīng)驗(yàn)值。
以二維TPC為例,采用經(jīng)典的Chase-Pyndiah作為迭代譯碼單元,仿真自適應(yīng)迭代譯碼器的性能。TPC信息矩陣每行的編碼 C1為 hamming(63,57,3),每列的編碼 C2為 hamming(63,57,3)。
由仿真圖5所示,隨著性噪比增加,譯碼器迭代次數(shù)減少。仿真圖6是固定迭代譯碼算法與自適應(yīng)迭代譯碼算法的誤碼率比較,結(jié)合圖5與圖6可見,在低信噪比信道里,自適應(yīng)迭代譯碼的迭代次數(shù)比較高,誤碼率比固定迭代譯碼算法低,這保證了在低信噪比信道里自適應(yīng)迭代譯碼器的性能。在信噪比較高的情況下,自適應(yīng)迭代譯碼器的迭代次數(shù)很小,這樣有效降低了譯碼功耗。
圖5 迭代次數(shù)與信噪比仿真圖
圖6 不同的迭代譯碼器誤碼率比較
對(duì)傳統(tǒng)的TPC迭代譯碼算法提出改進(jìn),提出了一種自適應(yīng)迭代譯碼算法。與傳統(tǒng)的TPC迭代譯碼算法相比自適應(yīng)迭代譯碼算法更加靈活,適用于信道環(huán)境多變的應(yīng)用場(chǎng)景。
詳細(xì)介紹了自適應(yīng)迭代譯碼器的核心單元:信噪比估計(jì)單元、迭代因子單元、迭代終止判斷單元,最后以 C1=C2=Hamming(63,57,3)的二維 TPC 編碼方案進(jìn)行了仿真。實(shí)驗(yàn)結(jié)果表明自適應(yīng)迭代譯碼在低信噪比信道環(huán)境下誤碼率較低;在高信噪比信道環(huán)境下迭代次數(shù)較小,有效的降低了功耗。
[1] PYNDIAH R,GLAVIEUX A,PICARTA,et al.Near optimum de-coding of product codes[C].//1994 IEEE GLOBECOM.NewYork:IEEE,1994:339-343.
[2] Pyndiah R.Near-Optimum Decoding of Product Codes:Block Turbo Codes[J].IEEE Trans.on Communications,1998,48(8):1003-1010.
[3] Pyndiah R,Combelles P,Adde P.A very low complexity block turbo decoder for product codes[C].//Communications:The Key to Global Prosperity,1996:101-105.
[4] Chase D.A Class of Algorithms for Decoding Block Codes with Channel Measurement Information[J].IEEE Trans.Inform.Theory,1972,18(1):170-182.
[5] Hirst Simon A,Honary Bahram,Markarian Garik.Fast Chase Algorithm with an Application in Turbo Decoding[J].IEEE Trans.on Communications,2001,49(10):1693-1699.