一種高速並行級聯碼的解碼方法及解碼器的製作方法
2023-04-23 15:11:31 1
專利名稱:一種高速並行級聯碼的解碼方法及解碼器的製作方法
技術領域:
本發明涉及用於數字移動通信系統中的解碼方法和解碼器,特別是涉及Turbo碼的解碼方法和解碼器。
自從1993年Berrou等人提出Turbo碼的編解碼方案後,許多學者對其解碼算法及物理實現進行了研究。到目前為止,主要有以下幾種算法1.最大後驗估計算法這是對Bahl軟輸出算法做了一定修正後的算法;它的運算量為對於約束長度為K的卷積碼,每比特需做6×2K-1次乘法和5×2K-1次加法;這種算法由於有大量的乘法運算,因而限制了解碼的規模和速度。
2.對數域算法該算法實際上是把上述最大後驗估計算法中的似然函數用對數來表示,這樣乘法就轉變為加法運算,其總的運算量為對於約束長度為K的卷積碼,每比特需進行16×2K-1次加法、5×2K-1次求最大值運算和5×2K-1次查表運算。
3.軟輸出維特比(Viterbi)解碼算法在專利號為US5,537,444的美國專利「Extended list output and soft symbol output Viterbialgorithms」中介紹了這種算法,它與前面的最大後驗估計算法類似,但該算法的運算量為標準維特比(Viterbi)算法的兩倍,而且其性能損失最大,約1-2dB左右。
在專利號為US5,563,897的美國專利「Method for detectinginformation bits processed by concatenated block codes」中涉及到了迭代解碼方法,它是針對至少兩個分組碼的乘積的,在每個碼字搜尋中,這種方法需要確定一個數據矩陣和一個判決矩陣,它的解碼速度較慢。
在專利號為US5,446,747的美國專利「Error-correction coding methodwith at least two systematic convolutional codings in parallel,corresponding iterative decoding method,decoding module anddecoder」中介紹了一種卷積碼和分組碼並聯糾錯編碼方法,該方法的解碼性能無論怎樣加長碼組長度,均不能象Turbo碼那樣接近Shannon限,而且時延也將隨碼組長度增加而增加。
雖然有一些發明人根據上述這些算法用DSP或FPGA實現了Turbo碼解碼,但由這些晶片構成的Turbo碼解碼器都不能滿足第三代移動通信系統中的要求,其主要的缺陷是解碼算法的運算量太大,解碼延遲也很大,結果造成解碼速度慢。
關於用於第三代數字移動通信系統的高速Turbo碼解碼器的研究現處於起步階段,尚未發現有這方面的相關文獻。
本發明的目的之一在於提供一種高速的Turbo碼解碼方法。
本發明的目的之二在於提供一種採用上述高速的Turbo碼解碼方法的解碼器,它以適應高速率數據的實時解碼滿足第三代移動通信系統的要求。
一種高速Turbo碼解碼方法,包括以下步驟1)接收信息比特;2)計算所有時刻的支路度量;3)計算所有時刻的前向狀態度量和反向狀態度量;4)計算對數似然比輸出;5)校正對數似然比輸出。
為實現本發明的目的,構造一種高速Turbo碼解碼器,它包括第一級解碼器、第二級解碼器、交織器和解交織器;所述第一級解碼器的輸入信號為需要解碼的信息比特,其輸出端通過所述交織器與所述第二級解碼器的輸入端相連,所述第二級解碼器的輸出端與所述解交織器相連,由所述解交織器輸出解碼後的信號。
所述第一級解碼器與所述第二級解碼器的結構一樣,均包括軟輸入/軟輸出基本解碼器、加法器、延時器和標度因數校正電路;所述加法器的輸出端與所述軟輸入/軟輸出基本解碼器的輸入端相連;所述加法器和所述軟輸入/軟輸出基本解碼器的輸出端接至所述標度因數校正電路的輸入端;所述標度因數校正電路的輸出端一端接所述延時器,另一端輸出解碼信號;所述延時器的輸出端接所述加法器。
所述軟輸入/軟輸出基本解碼器包括支路度量計算單元、支路度量存貯單元、前向/反向狀態度量計算單元、狀態度量存貯單元和對數似然比計算單元;所述支路度量計算單元的輸入來自所述加法器與外來信號,其輸出端分別與所述前向/反向狀態度量計算單元的輸入端、所述支路度量存貯單元的輸入端相連;所述支路度量存貯單元的輸出端與所述前向/反向狀態度量計算單元的輸入端相連;所述前向/反向狀態度量計算單元的輸出端分別與所述對數似然比計算單元的輸入端、所述狀態度量存貯單元的輸入端相連;所述狀態度量存貯單元的輸出端與所述對數似然比計算單元的輸入端相連;所述對數似然比計算單元的輸出端與所述標度因數校正電路相連。
下面結合附圖對本發明進行進一步的詳細描述。
圖1為本發明所述的高速Turbo碼解碼器的結構示意圖;圖2為圖1中軟輸入/軟輸出基本解碼器101的結構示意圖;圖3為圖2中前向/反向狀態度量計算單元203的結構示意圖;圖4為交迭分組解碼的原理示意圖。
在圖1所示的解碼器結構中,它由第一級解碼器10、第二級解碼器11、交織器12和解交織器13組成;每一級解碼器對應於Turbo碼編碼器的一個基本編碼器,其結構完全一樣,因此圖1中只給出第二級解碼器11的結構,包括軟輸入/軟輸出基本解碼器101、加法器102、延時器103和標度因數校正電路104;所述第一級解碼器10與所述第二級解碼器11之間通過所述交織器12連接;所述第二級解碼器11的輸出經所述解交織器13後輸出;圖1中的虛線是在迭代解碼時採用的。
圖1中各符號表示的含義如下X表示未編碼的信息比特;Y1表示由Turbo碼編碼器的第一個基本編碼器產生的校驗比特;Y2表示由Turbo碼編碼器的第二個基本編碼器產生的校驗比特;Liin(i=1,2)為系統輸入;Liout(i=1,2)為第i個軟輸入/軟輸出基本解碼器101輸出的對數似然比;Liex是(i=1,2)由標度因數校正電路104輸出的校驗比特獲得的信息;Liex,old(i=1,2)是Liex經過延時器103後得到的信息;L2為一次迭代後由解交織器13輸出的對數似然比。
由於軟輸入/軟輸出基本解碼器101有解碼延時,所以在每一級解碼器中增加了延時器103以保證時間同步;交織器12、解交織器13的作用與Turbo碼編碼器中交織器的作用相對應。
在每一時刻,Turbo碼解碼器有三個不同的軟輸入,即輸入至第一級解碼器10的X、Y1和輸入至第二級解碼器11的Y2;軟輸入/軟輸出基本解碼器101也有三個輸入,即X、Y1(Y2)和反映信息比特的先驗分布信息L1ex,old(L2ex,old)。
軟輸入/軟輸出基本解碼器101的作用是處理上述三種信息,產生對數似然比輸出Liout;該輸出Liout同時也能為另外的軟輸入/軟輸出(SISO)解碼單元所用。
在每一時刻,輸入X與信號L1ex,old在第一級解碼器10中的加法器102中相加得到信號L1in,此信號與輸入Y1進入軟輸入/軟輸出基本解碼器101中,所產生的對數似然比輸出L1out經過標度因數校正電路104和交織器12後,作為第二級解碼器11的先驗信息輸入,此輸入信號經第二級解碼器11中的加法器102與信號L2ex,old相加後,得到信號L2in,此信號與輸入Y2一起進入軟輸入/軟輸出基本解碼器101中解碼,其輸出L2out經過標度因數校正電路104和解交織器13輸出後,完成一次迭代,輸出信息比特的對數似然比L2。
上述解碼過程在進行判決之前還可重複n次,即迭代n次,直到輸出滿足性能要求為止。
圖2為軟輸入/軟輸出基本解碼器101的結構圖,可以看出,所述軟輸入/軟輸出基本解碼器101主要由四部分組成支路度量計算單元201;支路度量存貯單元202;前向/反向狀態度量計算單元203;狀態度量存貯單元204;對數似然比計算單元205;所述支路度量計算單元201的輸入來自所述加法器102和外來信號Y1(Y2),輸出端分別與所述支路度量存貯單元202的輸入端、所述前向/反向狀態度量計算單元203的輸入端相連,用於接收信息比特,根據接收的比特計算每個支路度量;所述支路度量存貯單元202的輸出端與所述前向/反向狀態度量計算單元203的輸入端相連,主要用於存貯由支路度量計算單元201計算得到的支路度量;所述前向/反向狀態度量計算單元203的輸出端分別與所述狀態度量存貯單元204的輸入端、所述對數似然比計算單元205的輸入端相連;所述支路度量計算單元201計算得到的支路度量送入所述支路度量存貯單元202和所述前向/反向狀態度量計算單元203中計算前向狀態度量,所述支路度量存貯單元202中的支路度量反向讀出送入前向/反向狀態度量單元203中計算反向狀態度量;所述狀態度量存貯單元204的輸出端與所述對數似然比計算單元205的輸入端相連,用於存貯由所述前向/反向狀態度量計算單元203產生的新的狀態度量;所述對數似然比計算單元205的輸出端與所述標度因數校正電路104相連,用於計算信息比特的對數似然比,並輸出解碼數據Liout。
高速Turbo碼解碼器的核心是軟輸入/軟輸出基本解碼器101,它採用本發明所述的高速Turbo碼解碼方法在對數域中實現Turbo碼的迭代解碼。為提高解碼速度,採用了一次計算所有狀態度量的方法,即採用並行處理的方法。
軟輸入/軟輸出基本解碼器101採用的高速Turbo碼解碼方法詳述如下首先,接收由上一級編碼器或上一級解碼器輸入的信息比特;在按下面所給的支路度量和狀態度量的遞推公式計算所有時刻的支路度量和狀態度量。
狀態度量和支路度量的遞推公式為 其中Ami表示時刻i時狀態m的前向狀態度量;Bmi表示時刻i時狀態m的反向狀態度量;Dd,mi表示抽樣時刻i時,給定當前狀態m和輸入比特d∈{0,1的支路度量;b(d,m)表示給定當前狀態m和輸入比特d∈{0,1時的前一狀態;xi表示第i個未編碼信息比特抽樣,yi表示第i個校驗比特抽樣;cd,m表示給定狀態m和比特d的編碼比特;d′=1-2d及c′d,m=1-2cd,m。
根據計算所得的支路度量和狀態度量,按下式計算對數似然比輸出LioutLouti=maxmAim+Di0,m+Bi+1f(0,m)-maxmAim+Di1,m+Bi+1f(1,m)]]>其中i為抽樣時刻;m∈{0,Λ,Ns-1為當前狀態,Ns表示Turbo碼編碼器狀態數;f(d,m)表示給定當前狀態m和輸入比特d∈{0,1時的下一狀態;下面對對數似然比輸出Liout進行校正。
信息Liex的計算公式為Liex=sf·(Liout-Liin)其中,sf為標度因數,校正後對數似然比為L2=Lcor=(Lin+Lex)。
前向/反向狀態度量計算單元203包括兩個加法器301a、301b,如圖3所示。在計算前向狀態度量的過程中,在進行選擇操作之前,需要將在支路度量計算單元201中計算得到的兩個待選擇的路徑度量與當前狀態的反向狀態度量相加,這樣分別得到「0」分支度量和「1」分支度量,將兩組度量的最大值相減即得當前比特的對數似然比輸出。
造成Turbo碼解碼器解碼延遲的主要原因之一是解碼器須在接收整個數據分組之後,才能開始解碼。解決這個問題的一個方法是在Turbo碼解碼器的接收端採用交迭分組解碼,其原理示意圖如圖4所示。採用交迭分組解碼的方法可將減小解碼延遲,且減小的程度與分組的組數成反比,但相應的每一數據分組的計算量會增加。選取適當的組數,既可以有效地減小延遲,又可以使計算量不會增加太大。
假設整個數據分組被分成三部分。在接收整個數據分組之前,反向狀態度量的遞推計算從一未知狀態開始。圖4所示的是接收1/3數據分組後開始解碼的情況。由於此時存在反向狀態度量遞推計算數據誤差,所以第一組的λ個軟輸出不要;當第二個1/3數據分組接收後,將上述λ個軟輸出重新計算;接收最後1/3數據分組後,整個數據分組為已知狀態,所以這時計算出的軟輸出是可信的。
交迭分組解碼的具體做法是將長為N的輸入信息符號序列分解成長度為K的數段,最後一段可短於K,再分別求每段的軟輸出。在每段的計算中採用先計算反向狀態度量,再計算前向狀態度量的方法,其中前向狀態度量的初值可由上一段的計算結果給出;為了得到基本正確的反向狀態度量,需要多計算λ個符號,這λ個符號在下一段的反向狀態度量計算中重新計算。在後續序列未知的情況下,由反向狀態度量的定義可知其初值應設為均勻分布,當然,對最後一段例外。
這時,簡化的LOG-MAP算法應修正為1)對每一段,同時考慮下一段的前λ個符號,令反向狀態度量在此時為均勻分布,對最後一段,令最後時刻的反向0狀態度量為1,其餘狀態的度量值為0。2)用遞推公式計算每個時刻的反向狀態度量,一直算到本段的第一個符號,將本段中的各時刻的反向度量值存貯下來。3)利用上一段計算出的最後時刻的前向狀態度量作為本段的初值,用前向狀態度量遞推公式計算本段各時刻的前向狀態度量值並及時與對應時刻的反向狀態度量值相加得出相應的似然比輸出。
本發明所述高速Turbo碼解碼器與現有的通用Turbo碼解碼器相比,其主要優點在於它是針對第三代移動通信系統的建議而設計的,通過採用交迭分組解碼、數據反向輸入或輸出、改進度量合併方法及迭代並行處理等措施來減小計算量和整個解碼器的延遲時間;在一定的延時條件下,能夠實現對高速率數據的實時解碼;在第三代移動通信系統中採用本發明所述解碼器,能大為改善編碼增益,滿足高質量業務的需要,同時也使通信系統的抗幹擾性能大大增強,降低擴頻解調設備所需的信噪比,從而使系統的容量得以提高。
權利要求
1.一種高速Turbo碼解碼方法,其特徵在於包括以下步驟1)接收信息比特;2)計算所有時刻的支路度量;3)計算所有時刻的前向狀態度量和反向狀態度量;4)計算對數似然比輸出;5)校正對數似然比輸出。
2.如權利要求1所述的一種高速的Turbo碼解碼方法,其特徵在於在所述步驟1)中將接收的長為N的輸入信息符號序列分解成長度為K的數段,最後一數段可短於K。
3.如權利要求1或2所述的一種高速的Turbo碼解碼方法,其特徵在於所述步驟3)包括以下步驟①對於每一數段,同時考慮下一數段的前λ個符號,令反向狀態度量在此時為均勻分布;對於最後一數段,令最後時刻的反向0狀態度量為1,其餘狀態的度量值為0;②用反向狀態度量遞推公式計算每個時刻的反向狀態度量,一直算到每數段的第一個符號,將每段中的各時刻的反向度量值存貯下來;③利用上一數段計算出的最後時刻的前向狀態度量作為本數段的初值,用前向狀態度量遞推公式計算本數段各時刻的前向狀態度量值,並及時與對應時刻的反向狀態度量值相加得出相應的似然比輸出。
4.如權利要求3所述的一種高速的Turbo碼解碼方法,其特徵在於所述步驟2)和3)所採用的支路度量、前向狀態度量和反向狀態度量的計算公式為
5.如權利要求1、2、4任意之一所述的一種高速的Turbo碼解碼方法,其特徵在於所述步驟4)是按下述公式計算對數似然比輸出的Louti=maxmAim+Di0,m+Bi+1f(0,m)-maxmAim+Di1,m+Bi+1f(1,m)]]>。
6.如權利要求5所述的一種高速的Turbo碼解碼方法,其特徵在於所述步驟5)的校正對數似然比輸出的公式為Liex=sf·(Liout-Liin);L2=Lcor=(Lin+Lex)。
7.一種採用如權利要求1所述的高速Turbo碼解碼方法的高速Turbo碼解碼器,包括交織器(12)、解交織器(13),其特徵在於它還包括第一級解碼器(10)和第二級解碼器(11);所述第一級解碼器(10)的輸入信號為需要解碼的信息比特,其輸出端通過所述交織器(12)與所述第二級解碼器(11)的輸入端相連,所述第二級解碼器(11)的輸出端與所述解交織器(13)相連,由所述解交織器(13)輸出解碼後的信號。
8.如權利要求7所述的一種高速Turbo碼解碼器,其特徵在於所述第一級解碼器(10)與所述第二級解碼器(11)有同樣的結構,包括軟輸入/軟輸出基本解碼器(101)、加法器(102)、延時器(103)和標度因數校正電路(104);所述加法器(102)的輸出端與所述軟輸入/軟輸出基本解碼器(101)的輸入端相連;所述加法器(102)和所述軟輸入/軟輸出基本解碼器(101)的輸出端接至所述標度因數校正電路(104)的輸入端;所述標度因數校正電路(104)的輸出端一端接所述延時器(103),另一端輸出解碼信號;所述延時器(103)的輸出端接所述加法器(102)。
9.如權利要求7或8所述的一種高速Turbo碼解碼器,其特徵在於所述軟輸入/軟輸出基本解碼器(101)包括支路度量計算單元(201)、支路度量存貯單元(202)、前向/反向狀態度量計算單元(203)、狀態度量存貯單元(204)和對數似然比計算單元(205);所述支路度量計算單元(201)的輸入來自所述加法器(102)與外來信號,其輸出端分別與所述前向/反向狀態度量計算單元(203)的輸入端、所述支路度量存貯單元(202)的輸入端相連;所述支路度量存貯單元(202)的輸出端與所述前向/反向狀態度量計算單元(203)的輸入端相連;所述前向/反向狀態度量計算單元(203)的輸出端分別與所述對數似然比計算單元(205)的輸入端、所述狀態度量存貯單元(204)的輸入端相連;所述狀態度量存貯單元(204)的輸出端與所述對數似然比計算單元(205)的輸入端相連;所述對數似然比計算單元(205)的輸出端與所述標度因數校正電路(104)相連。
10.如權利要求9所述的一種高速Turbo碼解碼器,其特徵在於所述前向/反向狀態度量計算單元(203)包括兩個依次連接的加法器(301a、301b)。
全文摘要
一種高速Turbo碼解碼方法,包括接收信息比特;計算支路度量;計算前向狀態度量和反向狀態度量;計算對數似然比輸出;校正對數似然比輸出;採用上述方法的高速Turbo碼解碼器,包括第一級解碼器(10)、第二級解碼器(11)、交織器(12)和解交織器(13);本發明所述的解碼器採用交迭分組解碼、數據反向輸入或輸出、改進度量合併方法及迭代並行處理等措施減小計算量和解碼器延遲時間,實現對高速率數據的實時解碼。
文檔編號H03M13/00GK1286533SQ9911720
公開日2001年3月7日 申請日期1999年11月12日 優先權日1999年11月12日
發明者王進 申請人:深圳市中興通訊股份有限公司