專利名稱:一種Turbo譯碼裝置及方法
技術領域:
本發明涉及通信領域,特別是涉及一種Turbo譯碼裝置及方法。
背景技術:
Turbo譯碼器是終端物理層的一個重要器件。在通信數據業務中,Turbo編/解碼是最重要的信道編譯碼方法。Turbo編碼器的原理和實現方法相對固定,但譯碼器的性能是直接影響終端接收機性能的因素。
Turbo碼是最早發表在1993年中。1993年C.Berrou等人提出的Turbo碼通過對子碼的偽隨機交織實現大約束長度的編碼,具有接近隨機編碼的特性,采用迭代譯碼取得了中等的譯碼復雜度,它的誤碼性能在10-5數量級上,逼近了香農(Shannon)極限。Turbo碼的基本原理是通過編碼器的巧妙構造,即多個子碼通過交織器進行并行或串行級聯(PCC/SCC),然后以類似內燃機引擎廢氣反復利用的機理進行迭代譯碼,從而獲得卓越的糾錯性能,Turbo碼也因此得名。計算機仿真表明,Turbo碼不但在抵御加性高斯噪聲方面性能優越,而且具有很強的抗衰落、抗干擾能力,其糾錯性能接近香農極限,這使得Turbo碼在信道條件較差的移動通信系統中有很大的應用潛力。目前,Turbo碼在實際應用方面的研究已經有很多,其中第三代移動通信系統IMT-2000已經將Turbo碼作為其傳輸高速數據的信道編碼標準之一;在國際海事衛星組織的INMARSAT-phone M4系統中,也是以Turbo碼為核心技術來實現壓縮頻帶的高速數據傳輸的;此外,由于Turbo碼的譯碼采用了迭代譯碼的思想,因此可以把它推廣到CDMA多用戶檢測中,實現基于Turbo碼譯碼原理的CDMA多用戶檢測接收機。
Turbo碼的糾錯能力包括兩個含義一個是這種碼本身的能力,另一個則是在特定譯碼算法下的糾錯能力。從Turbo碼的譯碼器結構也可以看到,兩個軟入軟出子譯碼器(SISO)是其核心,子譯碼器的一個重要問題則是如何對三個軟輸入R(Xk),R(Y1k),R(Y2k)進行處理,以獲得信息比特Xk的外附信息W(Xk)及其軟輸出W’(Xk)。
一般有三種方法(1)MAP算法在最初提出Turbo碼時所采用的譯碼算法是修正的Bahl算法,也叫做最大后驗概率(MAP)算法,它是Turbo碼譯碼的最優算法。MAP算法采用對數似然比函數(LLR,也即后驗概率(APP)的比值的對數值)作為其軟判決的輸出,但由于需要大量的運算,限制了譯碼的規模和速度;(2)Log-MAP算法實際上是把MAP算法中似然值運算全部用對數似然值表示,這樣將乘法運算就變成加法運算,而加法運算變成了log(eΛ1+eΛ2)=max(Λ1,Λ2)+log(1+e-|Λ2-Λ1|)]]>=max(Λ1,Λ2)+fc(|Λ2-Λ1|)]]>這里fc(·)是一個相關函數,可預先做成表,利用查表來完成運算。
(3)Max-Log-MAP算法在對數域算法中,將加法表示式中的對數分量忽略掉,采用近似式log(eΛ1+eΛ2)≈max(Λ1,Λ2),]]>使加法完全變成求最大值運算,進一步簡化了算法,但付出的代價是性能的下降。
目前大多數終端采用Max-Log-MAP算法實現Turbo譯碼器,對于從每個軟輸入軟輸出(SISO)譯碼器輸出的外附信息是不做任何處理的,經過交織或者去交織后被當作先驗信息輸入到下一個SISO譯碼器。
但Max-Log-MAP算法性能相比Log-MAP算法是較差的,而如果在終端中采用Log-MAP算法,其計算復雜,對硬件的要求就很高,或者就會增加計算延時。
發明內容
本發明的目的在于克服上述缺陷而提供的一種Turbo譯碼裝置及方法。其相比原來的MAX-Log-MAP算法,既不明顯增加計算量,又能顯著的提高其性能。
為實現本發明而提供的一種Turbo譯碼裝置,包括交織器,判斷單元,兩個解交織器,判決器,兩個SISO譯碼器,兩個SISO譯碼器串行級聯,兩個加權單元,每個SISO譯碼器后串聯一個加權單元,SISO譯碼器輸出的外附信息都由加權單元做乘加權系數S的操作。
所述的譯碼裝置,還包括迭代次數單元,所述加權系數S是迭代次數單元中的迭代次數n產生后傳輸給加權單元的。
所述加權系數S設為迭代次數n乘以參數A,再加參數B得到。
所述參數A設為迭代次數乘4后的倒數。
所述參數B設為0.6~0.65。
本發明還提供了一種Turbo譯碼方法,包括下列步驟(一)外附信息被初始化為零;(二)系統信息和外附信息輸入到SISO譯碼器中,經過計算得到新的外附信息;(三)新的外附信息與加權單元中的加權系數相乘,得到加權外附信息;(四)加權外附信息與系統信息相加,經過交織器交織后輸入到SISO譯碼器后,輸出對數似然比;(五)判斷單元判斷是否達到迭代完成的條件,如果達到則將對數似然比解交織后硬判輸出;否則,進入步驟(六);(六)如果判斷單元判斷沒有達到迭代完成的條件,則根據對數似然比得到新的外附信息,其乘以加權單元中的加權系數,得到加權外附信息;(七)加權外附信息經過解交織器解交織后重新輸入SISO譯碼器,重復步驟(二)~(七),進行下一輪譯碼。
所述步驟(三)和步驟(六)還包括下列步驟步驟A所述加權系數S由迭代次數單元中的迭代次數n產生后傳輸給加權單元。
所述步驟A中加權系數S等于迭代次數n乘以參數A,再加參數B。
所述參數A為迭代次數乘4后的倒數。
所述參數B為0.6~0.65。
本發明的有益效果本發明針對Turbo譯碼器中MAX-Log-MAP算法性能較差的缺陷,提出了提高性能的方法。該方法通過對SISO譯碼器輸出后的外附信息乘一個系數的方法來提高譯碼性能,系數的值由當前的迭代確定。不管由ASIC還是DSP實現turbo譯碼,幾乎不用增加硬件成本,同時計算量的增加也微乎其微,而性能得到大幅度的提高,在通信系統中,對于給定的誤碼率,譯碼性能的提高能提高系統容量。
圖1為本發明的Turbo譯碼器的結構示意圖;圖2是幀長為5114時譯碼性能比較圖;圖3是幀長為3856時譯碼性能的比較圖;圖4是幀長為2896時譯碼性能的比較圖;圖5是幀長為1296時譯碼性能的比較圖;圖6是幀長為640時譯碼性能的比較圖;圖7是幀長為40時譯碼性能的比較圖。
具體實施例方式
下面結合附圖1~7進一步詳細說明本發明的一種Turbo譯碼裝置及方法。其對現有的Turbo譯碼器使用MAX-Log-MAP算法時,對于外附信息乘一個系數,并且系數由當前的迭代決定。此方法大大提高了MAX-Log-MAP算法的性能。
如圖1所示,本發明的譯碼裝置包括交織器3,判斷單元5,兩個解交織器6和10,判決器7,兩個SISO譯碼器1和4,以及兩個加權單元2和9。
兩個SISO譯碼器1和4串行級聯;并在每個SISO譯碼器后串聯一個加權單元,SISO譯碼器輸出的外附信息都由加權單元做乘一個加權系數S的操作。
Turbo譯碼是一個迭代的過程,完成如圖1這樣的一次計算即進行了一次迭代。在第一次迭代開始的時候,外附信息(也稱為先驗信息)初始化為零,然后系統信息和外附信息輸入到SISO譯碼器1中,經過計算得到新的外附信息;新的外附信息與加權單元中的加權系數相乘得到加權外附信息,然后再次與系統信息相加,經交織器3交織后再輸入到SISO譯碼器4,再經過計算后得到對數似然比;然后判斷單元5判斷是否已經達到迭代完成的條件,如達到最大迭代或者根據譯碼過程中的信息判斷是否達到迭代完成的條件,如果達到則將對數似然比解交織后硬判輸出;否則,將外附信息與加權單元9中的加權系數相乘,得到加權外附信息后反饋到SISO譯碼器1進行下一次迭代的計算。
在本實施例中,判斷是否達到中止迭代的條件為迭代次數達到最大迭代次數,因此,進行迭代前,設定當前的迭代次數為n=1,2,..N,而N為設置的最大迭代次數。
一般的Turbo譯碼會在初始的時候設置一個最大迭代次數N,這個N是可變的,一般會在譯碼時間和譯碼性能之間取一個折中,因為N越大譯碼時間越長,譯碼性能也會隨之提高一點。
加權系數S利用迭代次數單元8中的迭代次數產生。
其中,加權系數S由下面的表達式來得到S=A×n+B(1)其中A、B為參數,可在譯碼前設定,n=1,2,….N,N為譯碼的迭代次數。
最佳地,A=14×N,]]>B=0.6~0.65。
對于B這個值可以在0.6到0.65之間調節,用這些值性能非常接近,能取得很好的性能。
下面結合譯碼裝置進一步詳細說明本發明的譯碼方法。
(一)在第一次迭代開始的時候,外附信息(也稱為先驗信息)初始化為零,如不是第一次迭代,則此外附信息即為從第二個SISO譯碼器后反饋的加權外附信息;先驗信息W(XK),在進行譯碼迭代之前,被初始化為零,在每次完成迭代之后,先驗信息由SISO譯碼器1和4重新計算更新先驗信息,進行下一次迭代運算。
W(XK)在本次迭代過程中叫先驗信息,而在輸入到下一級進行迭代時叫外附信息。
(二)系統信息和外附信息輸入到SISO譯碼器1中,經過計算得到新的外附信息;信道輸出的系統信息和先驗信息直接進入SISO譯碼器1,校驗比特R(Y1k)送入SISO譯碼器1,得到對數似然比Λ1(Xk);1、信道輸出的系統信息R(XK)和先驗信息相加W(XK),輸入到SISO譯碼器1中;同時,校驗比特R(Y1k)送入SISO譯碼器1。
中間變量V1(XK)=R(XK)+W(XK),其中V1(XK)是譯碼過程中間變量,它包含了系統信息R(XK)和先驗信息W(XK),輸入到SISO譯碼器1中。
同時,校驗比特經分解器(未標出)分解后,將對應子編碼器(未標出)校驗比特R(Y1k)送入SISO譯碼器1。
中間變量V1(XK)與校驗比特R(Y1k)一起輸入到SISO譯碼器1,進行一系列的計算得到對數似然比Λ1(Xk),用于進行硬判決的信息。
2、對數似然比Λ1(Xk)與系統信息相R(XK)相加,得到新的外附信息W1(XK)。
SISO譯碼器1進行一系列的計算,得到對數似然比Λ1(Xk),再利用中間變量V1(XK)與其相減,得到本次譯碼計算的額外的信息,即外附信息W1(Xk)=Λ1(Xk)-V1(XK)。
W1(Xk)為Λ1(Xk)-V1(XK),Λ1(Xk)為本次譯碼計算中得到的對數似然比,而V1(XK)是在本次譯碼計算前已知的信息,兩者相減后得到本次譯碼計算的新的外附信息W1(XK)。
(三)新的外附信息與加權單元中的加權系數相乘,得到加權外附信息;對數似然比Λ1(Xk)與中間變量V1(XK)相減,得到外附信息W1(XK)后,經過加權單元2,加權單元2對外附信息進行乘加權系數S的操作,得到新的外附信息W’1(Xk)。
SISO譯碼器1輸出的外附信息W1(XK)都利用加權單元2做一個加權系數S的乘操作,即w′(Xk)=w(Xk)×S加權系數S利用迭代次數單元經過由公式(1)產生。
外附信息W’1(Xk)輸入到下一個SISO譯碼器4,即為SISO譯碼器4的先驗信息。
(四)外附信息與系統信息相加,經過交織器3交織后輸入到SISO譯碼器4后,輸出對數似然比Λ2(Xk);1、先驗信息W’1(Xk)與系統信息R(XK)相加,得到中間變量V’2(Xk),然后經過交織器3交織,得到中間變量V2(Xk),輸入到SISO譯碼器4。
外附信息W’1(XK)系統信息R(XK)相加,得到中間變量V’2(Xk),經過交織器交織后得到的中間變量V2(Xk),以及前面的校驗比特R(Y2k)一起輸入到SISO譯碼器4。
2、校驗比特R(Y2k)送入SISO譯碼器4;校驗比特經分解器(未標出)分解后,將對應子編碼器(未標出)校驗比特R(Y1k)送入SISO譯碼器1的同時,也把對應子編碼器(未標出)校驗比特R(Y2k)送入SISO譯碼器4。
SISO譯碼器4進行一系統的計算,得到對數似然比^2(Xk)。
(五)判斷單元5判斷是否達到迭代完成的條件,如果達到則將對數似然比解交織后硬判輸出;進入步驟(六);判斷單元5判斷是否達到迭代完成的條件,所述條件可以是1)達到最大迭代;或者2)根據譯碼過程中的信息判斷是否達到迭代完成的條件;如果迭代完成的條件,即當所有迭代過程完成以后,直接將對數似然比(LLR)Λ2(Xk)進行通過解交織器6解交織,再經過判決器7硬判輸出,完成整個迭代譯碼過程。
在本實施例中,判斷是否達到終止迭代的條件為迭代次數達到最大迭代次數,因此,進行迭代前,設定當前的迭代次數為n=1,2,..N,而N為設置的最大迭代次數,當n=N時即達到了終止迭代的條件。
一般的Turbo譯碼會在初始的時候設置一個最大迭代次數N,這個N是可變的,一般會在譯碼時間和譯碼性能之間取一個折中,因為N越大譯碼時間越長,譯碼性能也會隨之提高一點。這樣是否達到迭代次數只要進行比較即可實現。另外一種迭代停止的方法是根據譯碼過程中的信息,根據算法達到條件(算法和條件和本發明無關)即可讓譯碼結果將結果進行輸出。不管哪種方法進行迭代停止,本發明都能提高譯碼的性能。
(六)如果判斷單元5判斷沒有達到迭代完成的條件,則根據對數似然比得到新的外附信息W2(XK),其乘以加權單元9中的加權系數,得到加權外附信息W’2(Xk);如果判斷單元5判斷沒有達到迭代完成的條件,則根據對數似然比,再通過中間變量V2(XK),兩者相減后得到本次譯碼計算的額外的信息,即外附信息W2(Xk)=^2(Xk)-V2(XK)。
外附信息W2(Xk),經過加權單元9,乘以加權系數后得到外附信息W’2(Xk)。
SISO譯碼器4輸出的外附信息W2(XK)都利用加權單元9做一個加權系數S的乘操作,即w′(Xk)=w(Xk)×S加權系數S利用迭代次數單元8經過由公式(1)產生。
(七)外附信息W’2(Xk)經過解交織器10解交織后得到先驗信息W(XK)后重新輸入SISO譯碼器1,重復步驟(二)~(七),進行下一輪譯碼;外附信息W’2(Xk)經過解交織器后得到下一輪迭代的先驗信息W(XK),然后再次反饋給SISO譯碼器1;重新輸入SISO譯碼器1進行下一輪譯碼,如此循環,在進行了N次迭代譯碼后,信息序列的比特誤差率和幀誤差率都降至了很低的水平。
先驗信息W(Xk)由上一輪迭代時的譯碼器產生,并通過反饋送回到SISO譯碼器1的輸入端;下面給出TD-SCDMA系統中的Turbo碼的仿真結果。
turbo編碼采用的是TD-SCDMA系統中的turbo碼,此系統中turbo編碼支持的長度為40到5114,為此仿真了幀長分別為5114、3856、2896、1296、640、40時的性能,迭代次數為6次。從仿真結果可知,采用此方法后,相比原來的MAX-Log-MAP算法(原有Max-Log-MAP算法沒有對外附信息進行調整的過程,即可當作S=1),譯碼性能大幅度提高。
本實施例是為了使本領域普通技術人員理解而對本發明所進行的詳細描述,但本領域普通技術人員可以想到,在不脫離本發明的權利要求所涵蓋的范圍內還可以做出其它的變化和修改,其均在本發明的保護范圍內。
權利要求
1.一種Turbo譯碼裝置,包括交織器(3),判斷單元(5),兩個解交織器(6,10),判決器(7),兩個SISO譯碼器(1,4),兩個SISO譯碼器(1,4)串行級聯,其特征在于,還包括兩個加權單元(2,9),每個SISO譯碼器后串聯一個加權單元,SISO譯碼器輸出的外附信息都由加權單元做乘加權系數S的操作。
2.根據權利要求1所述的譯碼裝置,其特征在于,還包括迭代次數單元(8),所述加權系數S是迭代次數單元(8)中的迭代次數n產生后傳輸給加權單元的。
3.根據權利要求2所述的譯碼裝置,其特征在于,所述加權系數S設為迭代次數n乘以參數A,再加參數B得到。
4.根據權利要求3所述的譯碼裝置,其特征在于,所述參數A設為迭代次數乘4后的倒數。
5.根據權利要求4所述的譯碼裝置,其特征在于,所述參數B設為0.6~0.65。
6.一種Turbo譯碼方法,其特征在于,包括下列步驟(一)外附信息被初始化為零;(二)系統信息和外附信息輸入到SISO譯碼器(1)中,經過計算得到新的外附信息;(三)新的外附信息與加權單元(2)中的加權系數相乘,得到加權外附信息;(四)加權外附信息與系統信息相加,經過交織器交織后輸入到SISO譯碼器(4)后,輸出對數似然比;(五)判斷單元(5)判斷是否達到迭代完成的條件,如果達到則將對數似然比解交織后硬判輸出;否則,進入步驟(六);(六)如果判斷單元(5)判斷沒有達到迭代完成的條件,則根據對數似然比得到新的外附信息,其乘以加權單元中的加權系數,得到加權外附信息;(七)加權外附信息經過解交織器(10)解交織后重新輸入SISO譯碼器(1),重復步驟(二)~(七),進行下一輪譯碼。
7.根據權利要求6所述的譯碼方法,其特征在于,所述步驟(三)和步驟(六)還包括下列步驟步驟A所述加權系數S由迭代次數單元(8)中的迭代次數n產生后傳輸給加權單元。
8.根據權利要求7所述的譯碼方法,其特征在于,所述步驟A中加權系數S等于迭代次數n乘以參數A,再加參數B。
9.根據權利要求8所述的譯碼方法,其特征在于,所述參數A為迭代次數乘4后的倒數。
10.根據權利要求9所述的譯碼方法,其特征在于,所述參數B為0.6~0.65。
全文摘要
一種Turbo譯碼裝置及方法,包括交織器(3),判斷單元(5),兩個解交織器(6,10),判決器(7),兩個SISO譯碼器(1,4),兩個SISO譯碼器(1,4)串行級聯,兩個加權單元(2,9),每個SISO譯碼器后串聯一個加權單元,SISO譯碼器輸出的外附信息都由加權單元做乘加權系數S的操作。還包括迭代次數單元(8),所述加權系數S是迭代次數單元(8)中的迭代次數n產生后傳輸給加權單元的。其相比原來的MAX-Log-MAP算法,既不明顯增加計算量,又能顯著的提高其性能。
文檔編號H04L1/00GK1983826SQ20051013192
公開日2007年6月20日 申請日期2005年12月15日 優先權日2005年12月15日
發明者鄭未 申請人:大唐移動通信設備有限公司, 上海大唐移動通信設備有限公司