一種用於turbo碼解碼器中防止狀態度量溢出方法
2023-06-08 17:44:56
專利名稱:一種用於turbo碼解碼器中防止狀態度量溢出方法
技術領域:
本發明屬通信領域或移動通信領域,具體地講涉及turbo碼解碼器實現的優化技術。
為了求得z1k,先求全部輸入序列提供的關於第k個符號的似然信息即後驗概率。L1k(dk)=Pr{dk|x1N,z2|1N,y1|1N}----(2)]]>令Rk=(xk,z2k,y1k)k(dk,Sk)=Pr{dk,Sk|R1k}]]>k(Sk)=Pr{Rk+1N|Sk}/Pr{Rk+1N|R1k}---(3)]]>則dk的似然函數為L1k(dk)=SkPr{dk,Sk|R1N}=Skk(dk,Sk)k(Sk)----(4)]]>令γk(Rk,Sk,dk,Sk-1)=Pr{Rk,Sk,dk|Sk-1}=Pr{dk|Sk-1}Pr{y1k|dk,Sk-1}Pr{xk|dk}z2k(dk) (5)有遞推算法 我們注意到在(4)中只有αk項包含γk,即包含xk和z2k,因此,它們對最終的似然輸出的貢獻是乘性的,也就是說只要把似然輸出值除以它們再做歸一化即可得到外信息z1k 實際算法用的是對數域運算,因此原乘法就變成了加法,而原加法就變成了一種非線性運算。其中的α和β是通過遞推而計算的,且每一步要計算M個狀態的α和β值,然後分別對M個α和M個β進行歸一化。即將M個α加起來,然後將各個α除以這個和(即要有M-1個加法運算和M個除法運算)。
為了保證解碼的性能,對運算的量化有一定的要求,即運算中的位數不能太少。這與實現規模及運算速度之間是相矛盾的。特別是由於度量是不斷累加的,如果不考慮每一步做歸一化處理,這樣可能原採樣的量化數並不高,但經過很多步累加後(WCDMA中turbo碼的碼長最長可達5114),位數將會變得很長(對WCDMA而言,將會增加13位的寬度),從而需要大量的晶片面積,且運算速度將會大受影響。而如果要採用相對少得多的運算位數,則在運算若干步後,運算結果就會溢出,對此基本的作法是在每一節拍狀態度量累加後,做一次歸一化處理,這樣的做法會成倍地增加運算量(歸一化運算量與狀態數成正比),增加延時,從而使解碼吞吐量受到很大的影響。
發明內容
本發明的目的就是要提供一種簡化的裝置或方法,把每一節拍運算後的結果範圍控制很有限的範圍內,從而使運算位數大大下降,而此防溢出方法比歸一化運算要簡化得多。簡化地說,本方法就是對每一步計算出的各狀態的α或β並不直接修正,而是根據各狀態的對數度量值是否有很大的值或是否全負而決定對下一步將要用到的信道對數概率進行修正,且修正值可以只取固定的Δp(正修正,當前一步各狀態度量全負時)和Δn(負修正,當前一步各狀態度量至少有一個超過門限T時)。
turbo碼的分量碼為效率1/2的二進位卷積碼,因此每一步信道轉移對數概率只有4個值γ00、γ01、γ10和γ11。一般情況下這四個值的均值應為0,因此如果當前輸入的信息位和校驗位的信道符號對數似然比(為1的概率比上為0的概率)分別為x和y時,γ00、γ01、γ10和γ11分別為-a,y-a,x-a和x+y-a。其中a=(x+y)/2。可見這幾個值都有一個偏移量a。
而在α和β的遞推公式中可以看出,如果γ有一個一致的偏移量,則此偏移量將直接反映到所有狀態的α或β上。因此,可以通過調節此偏移量a達到控制α和β計算結果的作用。
具體的做法是(參見附圖
)(1)如果前一步的所有狀態的度量值(α或β)均為負值,說明遞推有向負溢出的可能,因此在計算當前的γ時將偏移量a增加Δp以將當前的所有狀態度量值提高Δp以避免向負溢出,即a=(x+y)/2+Δp。
(2)如果前一步有一個狀態的度量值(α或β)超過某一設定門限T,說明遞推有向正溢出的可能,因此在計算當前的γ時將偏移量a減去Δn以將當前的所有狀態度量值降低Δn以避免向正溢出,即a=(x+y)/2-Δn。
(3)如果上述兩個條件均不滿足,則說明遞推運算在正常範圍內,不必對其進行幹預,即a=(x+y)/2。
(4)對狀態度量計算結果進行限幅處理,即根據所需的位數確定所能表達的最大的數MAX和最小數min,將計算結果與它們相比,如果大於MAX,則以MAX為最終結果供下一步遞推,如果小於min,則以min為最終結果供下一步遞推。
本發明對門限T和修正值Δp和Δn的具體取值要求並不嚴格,因此可以選取較低的有效位數(低位取零),一般有效位數取2位就夠了。實際上只要限X和Y輸入位數的高兩位為01其它位為零,即可作為T、Δp和Δn。
本發明有益效果(1)本發明並不直接對計算出的狀態度量進行歸一化操作,而只修正下一步的信道轉移對數概率的偏移量,從而大大減少了運算量(歸一化操作中需要M個減法,M為狀態數,而本發明只用一個加法運算,與狀態數無關)(2)本發明用狀態度量的極性及與一固定值的比較作為修正依據,與標準歸一化操作相比大大減少了運算量(標準歸一化操作需要M-1個非線性運算才能實現對數域求和)(3)本發明對門限T和修正值Δp和Δn的具體取值要求並不嚴格,因此可以選取較低的有效位數(低位取零),從而使運算複雜度進一步降低,一般有效位數取2位就夠了。(4)採用本發明後,實際上達到了歸一化的效果,即每一步的結果位數隻取決於該步遞推的計算位數,而與碼長無關。(5)雖然進行了簡化,但在解碼的誤碼性能上幾乎沒有任何損失。
圖2為信道轉移對數概率(γ)計算器,這裡以8狀態turbo為例,圖中UOR、UOS、U1R、U1S、U2R、U2S、U3R和U3S分別表示turbo碼分量碼8個狀態的度量結果,根據這8個度量值確定下一步的修正偏移量,然後鎖存一拍以便與下一步的輸入同步。
此方法可以在各種可編程邏輯器件中實施,也可用於專用集成電路,還可用於DSP運算,其所能來來的優勢是一樣的。一個具體的實施例子是用Altera公司的APEX20K200中作為turbo解碼器的一部分實現。
權利要求
1.一種用於turbo碼解碼器中防止狀態度量溢出的方法,其特徵在於根據各狀態的對數度量值是否有很大的值或是否全負而決定對下一步將要用到的信道對數概率進行修正,且修正值可以只取固定的Δp(正修正,當前一步各狀態度量全負時)和Δn(負修正,當前一步各狀態度量至少有一個超過門限T時)。
2.如權利要求1所述的一種用於turbo碼解碼器中防止狀態度量溢出的方法,其特徵在於通過調節此偏移量a達到控制α和β計算結果的作用。
3.如權利要求1所述的一種用於turbo碼解碼器中防止狀態度量溢出的方法,其特徵在於所述調節偏移a的方法按以下步驟(1)如果前一步的所有狀態的度量值(α或β)均為負值,說明遞推有向負溢出的可能,因此在計算當前的γ時將偏移量a增加Δp以將當前的所有狀態度量值提高Δp以避免向負溢出,即a=(x+y)/2+Δp,(2)如果前一步有一個狀態的度量值(α或β)超過某一設定門限T,說明遞推有向正溢出的可能,因此在計算當前的γ時將偏移量a減去Δn以將當前的所有狀態度量值降低Δn以避免向正溢出,即a=(x+y)/2-Δn,(3)如果上述兩個條件均不滿足,則說明遞推運算在正常範圍內,不必對其進行幹預,即a=(x+y)/2。(4)對狀態度量計算結果進行限幅處理,即根據所需的位數確定所能表達的最大的數MAX和最小數min,將計算結果與它們相比,如果大於MAX,則以MAX為最終結果供下一步遞推,如果小於min,則以min為最終結果供下一步遞推。
全文摘要
本發明公開了一種既能避免turbo碼MAP解碼算法中前反向遞推過程中每一步遞推所需的大量的歸一化操作,同時可保證量化運算位數儘量少且與碼長無關的防溢出方法及使用這種方法的防溢出裝置。該方法根據上一次遞推運算結果中各狀態度量的最高位(極性)和次高位而對本次遞推運算中的分支度量進行某一增量的加/減/不操作。採用本方法後,運算精度與碼長無關,而只與輸入量化電平數有關。而有關的操作只是檢查各狀態度量的最高兩位,及加減某一固定數,運算量很少,因而對解碼速度的影響很小。因此在實現上所佔的晶片面積很小,同時也保證了高吞吐量。
文檔編號H03M13/00GK1374758SQ02100430
公開日2002年10月16日 申請日期2002年1月30日 優先權日2002年1月30日
發明者周世東, 趙明, 許希斌 申請人:信息產業部電信傳輸研究所, 清華大學