專利名稱:TD-SCDMA/3G硬核turbo譯碼器的制作方法
技術(shù)領域:
本實用新型提出一種新型、技術(shù)領先的TD-SCDMA及第三代移動通信(3G,含cdma2000、UMTS、TD-SCDMA等)的硬核turbo譯碼器,屬移動通信技術(shù)領域。
背景技術(shù):
3GPP Turbo碼糾錯碼在通信系統(tǒng)中的使用是為了提高在低信噪比信道上接收數(shù)據(jù)的可靠性,主要是通過增加冗余比特而實現(xiàn)的。目前Turbo碼被公認為最強大的糾錯碼。然而,Turbo碼強大的能力僅在長數(shù)據(jù)塊編碼中體現(xiàn),而不適用于傳輸語音數(shù)據(jù),因為語音用長數(shù)據(jù)塊傳輸會引起無法承受的延遲。
發(fā)明內(nèi)容 設計目的在第三代個人無線標準(3GPP和3GPP2)中,2Mbps高速分組數(shù)據(jù)很適合使用Turbo碼,本實用新型提出一種用于3GPP標準的Turbo譯碼器,當然本實用新型的內(nèi)容也能適用于3GPP2Turbo碼,兩種Turbo碼之間主要區(qū)別是Turbo交織器和編碼率;3GPP使用1/3編碼率而3GPP2使用1/2和1/4編碼率。
1、解碼器結(jié)構(gòu)3GPP標準表明使用Turbo碼數(shù)據(jù)速率可以達到2.0Mbps。在這種速率下,ASIC中采用特定的硬核加速器完成解碼最為有效。本實用新型提出這樣的一種高效率硬核Turbo解碼器。該解碼器使用的技術(shù)包括諸如并行計算,訓練步進窗口(SW-WT)和提前停止。
這幾種技術(shù)有助于提高解碼速度,最小化存儲空間,降低功率開銷。該解碼器使用的解碼算法是背景技術(shù)中描述的Max-log-MAP算法。
2、總體架構(gòu)帶有高效存儲器的硬核Turbo解碼器的架構(gòu)如圖1所示。此架構(gòu)使用一個將Stage0和Stage1結(jié)合的SISO_DECODER(軟輸入-軟輸出-解碼器),而不是在Stage0和Stage1各使用分離的SISO_DECODER。Stage0運算yks,0,ykp,0和L0(uk)產(chǎn)生Le0(uk)和sgn(L(uk|y)),Stage 1運算yks,1,ykp,1和L1(uk)產(chǎn)生Le1(uk)和sgn(L(uk|y))。L0(uk)數(shù)據(jù)從LLR_BUF中讀出,Stage0輸出的外賦(對數(shù)似然比)LLR,Le0(uk)被重新寫回到LLR_BUF。在Stage1中,解碼過程使用存儲在LLR_BUF中的ykp,0和Le0(uk)進行Turbo交織計算獲得系統(tǒng)接收的比特yks,1和后驗信息的Turbo交織譯文。解碼Stage1的輸出Le1(uk)然后被解交織并寫回到LLR_BUF作為stage 0下一個解碼迭代過程中(如EQ5所示)的后驗信息L0(uk)。解碼器假定接收符號在他們各自的組yks,0,ykp,0,yks,1,和ykp,1已經(jīng)被解復用。注意到y(tǒng)ks,1僅僅是尾部比特被發(fā)送。高吞吐量解碼器設計的關鍵就是LSP_BUF。LSP_BUF由4個回環(huán)緩存器構(gòu)成,這些回環(huán)緩存器緩存一個步進窗口長度的yks,ykp和L(uk)。這些yks,ykp和L(uk)將被送入SISO_DECODER用于解碼。解碼過程中,在WINDOW_ADDR_GEN將下一個窗長的數(shù)據(jù)寫入其中一個LSP_BUF緩存器的同時,也將其它3個LSP_BUF緩存器中的內(nèi)容送入SISO_DECODER。LSP_BUF的讀寫時序請參考后面內(nèi)容。在圖1所示的Turbo譯碼器中,包含了一個EARLY_STOP_CNTRL模塊,該模塊用于執(zhí)行預提前停止評判準則,以節(jié)省計算開銷。
用于實現(xiàn)Max-log-MAP算法的SISO_DECODER的框圖,如圖2所示 SISO_DECODER由以下幾個部分構(gòu)成前向遞歸計算塊,ALPHA_CALC產(chǎn)生Ak(s),反向遞歸計算塊,BETA_CALC產(chǎn)生Bk-1(s′),對數(shù)似然比計算塊,LLR_CALC產(chǎn)生外賦LLRLe(uk)和后驗LLRLL(uk|y)。SISO_DECODER的操作并不依賴于是否它是解碼階段Stage0或Stage1。在此架構(gòu)中,僅Ak(s)需要緩存,ALPHA_BUF操作模式是堆棧式(后進先出)。
3、信號流程和數(shù)據(jù)時序這種解碼器的設計目標有兩個,最小化的存儲空間需求和吞吐量,而信號流程和數(shù)據(jù)時序?qū)_到這一設計目標起決定性的作用。
在MAP算法中,當Bk-1(s′)的反向遞歸計算在反向從BK+2(s′)開始到B0(s′)為止遍歷接收碼比特y時,Ak(s)的前向遞歸計算在前向從A0(s)開始到AK+2(s)為止遍歷接收碼比特y,因而直接實現(xiàn)MAP算法需要Ak(s)和Bk-1(s′)兩個都要預計算和緩存,這樣當A0(s′)可被LLR_CALC使用時,B1(s)也可被LLR_CALC使用?;蛘?,換句話說,當BK+2(s)可被LLR_CALC使用時,AK+1(s′)也可被LLR_CALC使用。用于緩存Ak(s)或Bk-1(s′)的整個塊長度的存儲空間大小是(K+3)·8個字,這里K=5114時提供3GPP Turbo碼的最大長度。這種直接的方法由于引入了巨大的延時而影響吞吐量。
一個減少矩陣狀態(tài)的緩存空間大小需求和減少延時的解決方案,就是采用訓練步進窗口(SW-WT),圖3表示SISO_DECODER的數(shù)據(jù)流程圖,正如前面內(nèi)容所闡述的,當ALPHA_CALC僅使用一個前向遞歸計算器時,BETA_CALC塊使用兩個遞歸計算器(BETA_CALC0和BETA_CALC1)遍歷整個解碼格。
在付出一定計算開銷的代價的前提下,SW-WT方法在一個時間段用較小的數(shù)據(jù)窗口操作來減少對狀態(tài)矩陣緩存空間需求,以及減少解碼延時,并最大化吞吐量。用這種方法,Bk-1(s′)的計算量比采用直接方法計算大約多兩倍。SW-WT的緩存大小是8w,這里w是窗口長度,8是解碼格的8個狀態(tài)。在SW-WT方法中,兩個反向狀態(tài)矩陣計算塊以下列順序輸出Bk-1(s′)Bw-1(s′),Bw-2(s′),...,B1(s′),B0(s′),B2w-1(s′),...,Bw(s′),B3w-1(s′),...,BK+3(s′),...,B(Nw-1)w(s′)EQ25式中,Nw是步進窗的數(shù)目,由下式給出。
EQ 26 反向矩陣是一個遞歸計算,基于之前計算過的狀態(tài),這些狀態(tài)從BK+2(s′)開始并且結(jié)束狀態(tài)是確定的。然而,正如所示,要獲得可靠的遞歸狀態(tài)矩陣,不必從非常后面的狀態(tài)開始做反向狀態(tài)計算。在SW-WT方法中,在輸出Bk-1(s′)之前,反向狀態(tài)矩陣計算塊只對少量幾個階段(時間步長)的輸入數(shù)據(jù)做遍歷。輸出Bk-1(s′)之前的遞歸計算稱為“訓練”。用于確定準確的狀態(tài)矩陣所需要的訓練階段數(shù)目由實驗確定,且設計成與步進窗口長度w的取值相同。
建議訓練階段數(shù)是Turbo編碼的約束長度的5倍,這樣如果約束長度是4,階段數(shù)就是20。訓練窗的遞歸過程,是采用訓練窗開始于所有狀態(tài)的概率相等的假設條件來初始化。
反向矩陣運算器為計算Bnww-1(s′)到B(nw-1)w(s′),這里(0≤nw≤Nw-1),它必須先計算BT(nw+1)w-1(s′)到BTnww(s′),這里BTk(s′)中的T指的是訓練反向矩陣,并且它不是十分可靠而被丟棄。通過使用兩個反向狀態(tài)矩陣運算器,使得BETA_CALC塊輸出Bk-1(s′)的速率與ALPHA_CALC塊輸出Ak(s)的速率相同。使用三個遞歸運算器的SW-WT方法時序圖如3所示 在這個設計中,正如圖3中行A中箭頭方向指示,Ak(s)的計算開始于下標k=nww結(jié)束于下標k=(nw+1)w-1,然后將結(jié)果保存在ALPHA_BUF中。當Ak(s)計算出后,反向狀態(tài)運算器中的一個運算器處于訓練階段,如圖3中T所示。一旦完成訓練階段,此時ALPHA_BUFF已經(jīng)滿了,反向狀態(tài)運算器將計算Bk-1(s′),開始于下標k=(nw+1)w-1并將結(jié)束于下標k=nww,然后將它輸出到LLR_CALC.。
當反向狀態(tài)運算器輸出Bk-1(s′)并將它直接送到LLR_CALC時,LLR_CALC正以相反的順序讀取ALPHA_BUFF。通過這種方法,LLR_CALC按照反向狀態(tài)運算器輸出Bk-1(s′)的相同順序計算外賦LLR。同樣重要的是,Bk-1(s′)不需要狀態(tài)矩陣緩存器。圖3中表明在任一個步進窗口期間,其中一個LSP_BUF處于寫操作,同時其他三個處于讀操作。通過使用回環(huán)緩存方案,LSP_BUF的4個緩存器中任一個每寫一次,就會被讀三次。這樣,就減輕了TURBO_INT_ADDR_GEN的負荷,并將輸入數(shù)據(jù)的讀出率提高了3倍。
圖3也顯示出LSP_BUF的讀寫調(diào)度過程。
LSP write行中的記號——Wnw:LSPm——表示將窗數(shù)據(jù)nw,寫入LSP_BUFm。
在行A,B0,和B1中的記號——LSPm:Wnw——表示從LSP_BUFm讀出窗數(shù)據(jù)nw。
行A中的左箭頭表示ALPHA_CALC正在針對數(shù)據(jù)窗nw計算前向遞歸。然后將結(jié)果保存在ALPHA_BUF中,以供下一個數(shù)據(jù)窗計算使用。
B0,B1和Le(uk)行中的右箭頭表示BETA_CALC0,BETA_CALC1和LLR_CALC正在針對數(shù)據(jù)窗nw計算反向遞歸和對數(shù)似然比。
在B0,B1行中的T表示BETA_CALC 0/1處于訓練模式。對于穩(wěn)定狀態(tài)的解碼操作,一個BETA_CALC(0/1)處于訓練模式中,而其它的BETA_CALC(0/1)處于輸出Bk-1(s′)的過程中。由于Bk-1(s′)只是每一時刻LLR_CALC計算所使用的臨時變量,所以BETA_CALC不必保存Bk-1(s′)。
LLR_CALC按與Bk-1(s′)相同的順序輸出Le(uk)和L(uk|y)。
4、并行計算前向和反向遞歸計算,及LLR計算均可采用并行計算的優(yōu)勢,在前向遞歸計算中,ALPHA_CALC在一個時鐘周期內(nèi)使用EQ21和EQ23計算所有的8個狀態(tài)如圖4中所示, 圖4中Γkm(s′,s)的上標m是一個對應于比特對xksxkp的十進制值。前向遞歸計算使用由16×3個2-輸入(2-input)加法操作和8個比較-選擇(compare-select)操作構(gòu)成的Max-log-MAP算法。
反向遞歸計算和前向遞歸計算類似,只不過在反向遞歸計算中,狀態(tài)是向反方向跳轉(zhuǎn),并且使用EQ22和EQ23計算。反向矩陣計算同樣使用的是由16×3個2-輸入加法操作和8個比較-選擇操作構(gòu)成的使用算法Max-log-MAP。LLR_CALC使用EQ24和EQ23計算外賦LLR和后驗LLR。作為3GPP解碼器,對于每個比特,其LLR的計算都是由16×4個2-輸入加法操作和8個比較-選擇操作來算出對數(shù)似然比的分子和分母。對于數(shù)據(jù)比特uk,其外賦和后驗LLR的最終計算由2個2-輸入加法操作和2個比特移位(bit-shift)操作構(gòu)成。其中一個2-輸入加法操作和1個比特移位(bit-shift)操作被用于外賦LLR的重新歸一化操作。
前向和反向狀態(tài)矩陣Ak(s)和Bk-1(s′)計算是并行的,并且各自的結(jié)果是互不相關的,然而LLR是依賴于前向和反向遞歸運算器二者輸出的結(jié)果。
提前停止方案Turbo解碼使用迭代的解碼算法,每次迭代過程將提供更可靠的uk估計值。解碼器一般使用固定的迭代次數(shù)。迭代的次數(shù)通常被設置成足夠高,以能夠在比較低的SNR時完成對數(shù)據(jù)塊的解碼。但解碼器卻很少需要用到最大的解碼迭代次數(shù)以及不必要的功率消耗來達到收斂。在某些情況下,過多的解碼迭代次數(shù)反而會引起塊解碼錯誤,一個替代和優(yōu)選的減少功率開銷Turbo解碼方案就是當輸出收斂時就停止解碼。
解碼器可以利用(u0,...uK-1)獲得BLER(塊誤碼率)統(tǒng)計值,迭代次數(shù)統(tǒng)計,并被用作收斂指示的判別準則。然而這在實際系統(tǒng)中是不可能的。實用的提前停止方案包括迭代過程的交叉熵(cross entropy)和最小LLR門限。
本實用新型與背景技術(shù)相比,一是提高解碼速度,二是實現(xiàn)了最小化存儲空間,三是降低功率消耗。
圖1顯示的是帶有高效存儲器的硬件Turbo譯碼器架構(gòu)框圖。
圖2顯示的是Max-log-MAP SISO譯碼器框圖(實現(xiàn)Max-log-MAP算法的SISO_DECODER的框圖)。
圖3顯示的是SW_WT方法的時序圖(使用三個遞歸運算器(ALPHA_CALC,BETA_CALC0,和BETA_CALC1)的SW-WT方法的時間過程圖)。
圖4顯示的是前向遞歸狀態(tài)轉(zhuǎn)換圖。
具體實施方式
1、總體架構(gòu)帶有高效存儲器的硬核Turbo解碼器的架構(gòu)如圖1所示。此架構(gòu)使用一個將Stage0和Stage1結(jié)合的SISO_DECODER(軟輸入-軟輸出-解碼器),而不是在Stage0和Stage1各使用分離的SISO_DECODER。Stage0運算yks,0,ykp,0和L0(uk)產(chǎn)生Le0(uk)和sgn(L(uk|y)),Stage 1運算yks,1,ykp,1和L1(uk)產(chǎn)生Le1(uk)和sgn(L(uk|y))。L0(uk)數(shù)據(jù)從LLR_BUF中讀出,Stage0輸出的外賦(對數(shù)似然比)LLR,Le0(uk)被重新寫回到LLR_BUF。在Stage1中,解碼過程使用存儲在LLR_BUF中的ykp,0和Le0(uk)進行Turbo交織計算獲得系統(tǒng)接收的比特yks,1和后驗信息的Turbo交織譯文。解碼Stage1的輸出Le1(uk)然后被解交織并寫回到LLR_BUF作為stage 0下一個解碼迭代過程中(如EQ 5所示)的后驗信息L0(uk)。解碼器假定接收符號在他們各自的組yks,0,ykp,0,yks,1,和ykp,1已經(jīng)被解復用。注意到y(tǒng)ks,1僅僅是尾部比特被發(fā)送。高吞吐量解碼器設計的關鍵就是LSP_BUF。LSP_BUF由4個回環(huán)緩存器構(gòu)成,這些回環(huán)緩存器緩存一個步進窗口長度的yks,ypk和L(uk)。這些yks,ykp和L(uk)將被送入SISO_DECODER用于解碼。解碼過程中,在WINDOW_ADDR_GEN將下一個窗長的數(shù)據(jù)寫入其中一個LSP_BUF緩存器的同時,也將其它3個LSP_BUF緩存器中的內(nèi)容送入SISO_DECODER。LSP_BUF的讀寫時序請參考后面內(nèi)容。
在圖1所示的Turbo編碼器中,包含了一個EARLY_STOP_CNTRL模塊,該模塊用于執(zhí)行預提前停止評判準則,以節(jié)省計算開銷。
用于實現(xiàn)Max-log-MAP算法的SISO_DECODER的框圖,如圖2所示。
SISO_DECODER由以下幾個部分構(gòu)成前向遞歸計算塊,ALPHA_CALC產(chǎn)生Ak(s),反向遞歸計算塊,BETA_CALC產(chǎn)生Bk-1(s′),對數(shù)似然比計算塊,LLR_CALC產(chǎn)生外賦LLRLe(uk)和后驗LLRL(uk|y)。SISO_DECODER的操作并不依賴于是否它是解碼階段Stage0或Stage1。在此架構(gòu)中,僅Ak(s)需要緩存,ALPHA_BUF操作模式是堆棧式(后進先出)。
2、信號流程和數(shù)據(jù)時序這種解碼器的設計目標有兩個,最小化的存儲空間需求和吞吐量,而信號流程和數(shù)據(jù)時序?qū)_到這一設計目標起決定性的作用。
在MAP算法中,當Bk-1(s′)的反向遞歸計算在反向從BK+2(s′)開始到B0(s′)為止遍歷接收碼比特y時,Ak(s)的前向遞歸計算在前向從A0(s)開始到AK+2(s)為止遍歷接收碼比特y,因而直接實現(xiàn)MAP算法需要Ak(s)和Bk-1(s′)兩個都要預計算和緩存,這樣當A0(s′)可被LLR_CALC使用時,B1(s)也可被LLR_CALC使用。或者,換句話說,當BK+2(s)可被LLR_CALC使用時,AK+1(s′)也可被LLR_CALC使用。用于緩存Ak(s)或Bk-1(s′)的整個塊長度的存儲空間大小是(K+3)·8個字,這里K=5114時提供3GPP Turbo碼的最大長度。這種直接的方法由于引入了巨大的延時而影響吞吐量。
一個減少矩陣狀態(tài)的緩存空間大小需求和減少延時的解決方案,就是采用訓練步進窗口(SW-WT),圖3表示SISO_DECODER的數(shù)據(jù)流程圖,正如前面內(nèi)容所闡述的,當ALPHA_CALC僅使用一個前向遞歸計算器時,BETA_CALC塊使用兩個遞歸計算器(BETA_CALC0和BETA_CALC1)遍歷整個解碼格。
在付出一定計算開銷的代價的前提下,SW-WT方法在一個時間段用較小的數(shù)據(jù)窗口操作來減少對狀態(tài)矩陣緩存空間需求,以及減少解碼延時,并最大化吞吐量。用這種方法,Bk-1(s′)的計算量比采用直接方法計算大約多兩倍。SW-WT的緩存大小是8w,這里w是窗口長度,8是解碼格的8個狀態(tài)。在SW-WT方法中,兩個反向狀態(tài)矩陣計算塊以下列順序輸出Bk-1(s′) EQ 25 Bw-1(s′),Bw-2(s′),...,B1(s′),B0(s′),B2w-1(s′),...,Bw(s′),B3w-1(s′),...,BK+3(s′),...,B(Nw-1)w(s′)式中,Nw是步進窗的數(shù)目,由下式給出。
EQ 26 反向矩陣是一個遞歸計算,基于之前計算過的狀態(tài),這些狀態(tài)從BK+2(s′)開始并且結(jié)束狀態(tài)是確定的。然而,正如所示,要獲得可靠的遞歸狀態(tài)矩陣,不必從非常后面的狀態(tài)開始做反向狀態(tài)計算。在SW-WT方法中,在輸出Bk-1(s′)之前,反向狀態(tài)矩陣計算塊只對少量幾個階段(時間步長)的輸入數(shù)據(jù)做遍歷。輸出Bk-1(s′)之前的遞歸計算稱為“訓練”。用于確定準確的狀態(tài)矩陣所需要的訓練階段數(shù)目由實驗確定,且設計成與步進窗口長度w的取值相同。
建議訓練階段數(shù)是Turbo編碼的約束長度的5倍,這樣如果約束長度是4,階段數(shù)就是20。訓練窗的遞歸過程,是采用訓練窗開始于所有狀態(tài)的概率相等的假設條件來初始化。
反向矩陣運算器為計算Bnww-1(s′)到B(nw-1)w(s′),這里(0≤nw≤Nw-1),它必須先計算BT(nw+1)w-1(s′)到BTnww(s′),這里BTk(s′)中的T指的是訓練反向矩陣,并且它不是十分可靠而被丟棄。通過使用兩個反向狀態(tài)矩陣運算器,使得BETA_CALC塊輸出Bk-1(s′)的速率與ALPHA_CALC塊輸出Ak(s)的速率相同。使用三個遞歸運算器的SW-WT方法時序圖如圖3所示 在這個設計中,正如圖3中行A中箭頭方向指示,Ak(s)的計算開始于下標k=nww結(jié)束于下標k=(nw+1)w-1,然后將結(jié)果保存在ALPHA_BUF中。當Ak(s)計算出后,反向狀態(tài)運算器中的一個運算器處于訓練階段,如圖3中T所示。一旦完成訓練階段,此時ALPHA_BUFF已經(jīng)滿了,反向狀態(tài)運算器將計算Bk-1(s′),開始于下標k=(nw+1)w-1并將結(jié)束于下標k=nww,然后將它輸出到LLR_CALC.。
當反向狀態(tài)運算器輸出Bk-1(s′)并將它直接送到LLR_CALC時,LLR_CALC正以相反的順序讀取ALPHA_BUFF。通過這種方法,LLR_CALC按照反向狀態(tài)運算器輸出Bk-1(s′)的相同順序計算外賦LLR。同樣重要的是,Bk-1(s′)不需要狀態(tài)矩陣緩存器。圖3中表明在任一個步進窗口期間,其中一個LSP_BUF處于寫操作,同時其他三個處于讀操作。通過使用回環(huán)緩存方案,LSP_BUF的4個緩存器中任一個每寫一次,就會被讀三次。這樣,就減輕了TURBO_INT_ADDR_GEN的負荷,并將輸入數(shù)據(jù)的讀出率提高了3倍。
圖3也顯示出LSP_BUF的讀寫調(diào)度過程。
LSP write行中的記號——Wnw:LSPm——表示將窗數(shù)據(jù)nw,寫入LSP_BUFm。
在行A,B0,和B1中的記號——LSPm:Wnw——表示從LSP_BUFm讀出窗數(shù)據(jù)nw。
行A中的左箭頭表示ALPHA_CALC正在針對數(shù)據(jù)窗nw計算前向遞歸。然后將結(jié)果保存在ALPHA_BUF中,以供下一個數(shù)據(jù)窗計算使用。
B0,B1和Le(uk)行中的右箭頭表示BETA_CALC0,BETA_CALC1和LLR_CALC正在針對數(shù)據(jù)窗nw計算反向遞歸和對數(shù)似然比。
在B0,B1行中的T表示BETA_CALC 0/1處于訓練模式。對于穩(wěn)定狀態(tài)的解碼操作,一個BETA_CALC(0/1)處于訓練模式中,而其它的BETA_CALC(0/1)處于輸出Bk-1(s′)的過程中。由于Bk-1(s′)只是每一時刻LLR_CALC計算所使用的臨時變量,所以BETA_CALC不必保存Bk-1(s′)。
LLR_CALC按與Bk-1(s′)相同的順序輸出Le(uk)和L(uk|y)。
3、并行計算前向和反向遞歸計算,及LLR計算均可采用并行計算的優(yōu)勢,在前向遞歸計算中,ALPHA_CALC在一個時鐘周期內(nèi)使用EQ21和EQ23計算所有的8個狀態(tài)如圖4中所示, 圖4中Гkm(s′,s)的上標m是一個對應于比特對xksxkp的十進制值。前向遞歸計算使用由16×3個2-輸入(2-input)加法操作和8個比較-選擇(compare-select)操作構(gòu)成的Max-log-MAP算法。
反向遞歸計算和前向遞歸計算類似,只不過在反向遞歸計算中,狀態(tài)是向反方向跳轉(zhuǎn),并且使用EQ22和EQ23計算。反向矩陣計算同樣使用的是由16×3個2-輸入加法操作和8個比較-選擇操作構(gòu)成的使用算法Max-log-MAP。LLR_CALC使用EQ24和EQ23計算外賦LLR和后驗LLR。作為3GPP解碼器,對于每個比特,其LLR的計算都是由16×4個2-輸入加法操作和8個比較-選擇操作來算出對數(shù)似然比的分子和分母。對于數(shù)據(jù)比特uk,其外賦和后驗LLR的最終計算由2個2-輸入加法操作和2個比特移位(bit-shift)操作構(gòu)成。其中一個2-輸入加法操作和1個比特移位(bit-shift)操作被用于外賦LLR的重新歸一化操作。
前向和反向狀態(tài)矩陣Ak(s)和Bk-1(s′)計算是并行的,并且各自的結(jié)果是互不相關的,然而LLR是依賴于前向和反向遞歸運算器二者輸出的結(jié)果。
4、提前停止方案Turbo解碼使用迭代的解碼算法,每次迭代過程將提供更可靠的uk估計值。解碼器一般使用固定的迭代次數(shù)。迭代的次數(shù)通常被設置成足夠高,以能夠在比較低的SNR時完成對數(shù)據(jù)塊的解碼。但解碼器卻很少需要用到最大的解碼迭代次數(shù)以及不必要的功率消耗來達到收斂。在某些情況下,過多的解碼迭代次數(shù)反而會引起塊解碼錯誤,一個替代和優(yōu)選的減少功率開銷Turbo解碼方案就是當輸出收斂時就停止解碼。
解碼器可以利用(u0,...uK-1)獲得BLER(塊誤碼率)統(tǒng)計值,迭代次數(shù)統(tǒng)計,并被用作收斂指示的判別準則。然而這在實際系統(tǒng)中是不可能的。實用的提前停止方案包括迭代過程的交叉熵(Gross entropy)和最小LLR門限。
實施例1參照附圖1~4。用于TD-SCDMA/3G硬核turbo譯碼器,包括turbo解碼控制器5,地址生成器1的信號輸出端一路接LLR緩存器3的信號輸入端、一路接LSP緩存器4的信號輸入端,LLR緩存器3的信號輸出端接LSP緩存器4的信號輸入端,LSP緩存器4的信號輸出端接軟輸入輸出解碼器7的信號輸入端,軟輸入輸出解碼器7的信號輸出端一路接LLR緩存器3的信號輸入端、一路接解碼輸出緩存器8的信號輸入端、一路接提前停止控制器9的信號輸入端、一路接LSP緩存器4的信號輸入端,解交織輸出緩存器2的信號輸出端接LSP緩存器4的信號輸入端,地址生成器10的信號輸出端一路接LLR緩存器3的信號輸入端、一路接解碼輸出緩存器8的信號輸入端、一路接提前停止控制器9的信號輸入端。地址生成器1由Turbo交織地址生成器和訓練窗地址生成器構(gòu)成,Turbo交織地址生成器的信號輸出端接LLR緩存器3的信號輸入端,訓練窗地址生成器的信號輸出端接LSP緩存器4的信號輸入端。地址生成器10由LLR-BUF地址生成器和Turbo解交織地址生成器構(gòu)成。
實施例2參照附圖2。用于TD-SCDMA/3G硬核turbo譯碼器,前向遞歸計算塊12的信號輸出端一路接對數(shù)似然計算塊16的信號輸入端、一路接前向后驗概率矩陣緩存器11的信號輸入端,前向后驗概率矩陣緩存器11的信號輸出端接前向遞歸計算塊12的信號輸入端,反向遞歸計算塊13和14的信號輸出端分別接BG-MUX模塊15的信號輸入端,BG-MUX模塊15的信號輸出端接對數(shù)似然計算塊16的信號輸入端。
需要理解到的是上述實施例雖然對本實用新型作了比較詳細的說明,但是這些說明,只是對本實用新型的簡單說明,而不是對本實用新型的限制,任何不超出本實用新型實質(zhì)精神內(nèi)的發(fā)明創(chuàng)造,均落入本實用新型的保護范圍內(nèi)。
權(quán)利要求1.一種用于TD-SCDMA/3G硬核turbo譯碼器,包括turbo解碼控制器(5),其特征是地址生成器(1)的信號輸出端一路接LLR緩存器(3)的信號輸入端、一路接LSP緩存器(4)的信號輸入端,LLR緩存器(3)的信號輸出端接LSP緩存器(4)的信號輸入端,LSP緩存器(4)的信號輸出端接軟輸入輸出解碼器(7)的信號輸入端,軟輸入輸出解碼器(7)的信號輸出端一路接LLR緩存器(3)的信號輸入端、一路接解碼輸出緩存器(8)的信號輸入端、一路接提前停止控制器(9)的信號輸入端、一路接LSP緩存器(4)的信號輸入端,解交織輸出緩存器(2)的信號輸出端接LSP緩存器(4)的信號輸入端,地址生成器(10)的信號輸出端一路接LLR緩存器(3)的信號輸入端、一路接解碼輸出緩存器(8)的信號輸入端、一路接提前停止控制器(9)的信號輸入端。
2.根據(jù)權(quán)利要求1所述的用于TD-SCDMA/3G硬核turbo譯碼器,其特征是地址生成器(1)由Turbo交織地址生成器和訓練窗地址生成器構(gòu)成,Turbo交織地址生成器的信號輸出端接LLR緩存器(3)的信號輸入端,訓練窗地址生成器的信號輸出端接LSP緩存器(4)的信號輸入端。
3.根據(jù)權(quán)利要求1所述的用于TD-SCDMA/3G硬核turbo譯碼器,其特征是地址生成器(10)由LLR-BUF地址生成器和Turbo解交織地址生成器構(gòu)成。
4.一種用于TD-SCDMA/3G硬核turbo譯碼器,特特征是前向遞歸計算塊(12)的信號輸出端一路接對數(shù)似然計算塊(16)的信號輸入端、一路接前向后驗概率矩陣緩存器(11)的信號輸入端,前向后驗概率矩陣緩存器(11)的信號輸出端接前向遞歸計算塊(12)的信號輸入端,反向遞歸計算塊(13,14)的信號輸出端分別接BG-MUX模塊(15)的信號輸入端,BG-MUX模塊(15)的信號輸出端接對數(shù)似然比計算塊(16)的信號輸入端。
專利摘要本實用新型涉及一種用于TD-SCDMA/3G硬核turbo譯碼器,包括turbo解碼控制器,地址生成器的信號輸出端一路接LLR緩存器的信號輸入端、一路接LSP緩存器的信號輸入端,LLR緩存器的信號輸出端接LSP緩存器的信號輸入端,LSP緩存器的信號輸出端接軟輸入輸出解碼器的信號輸入端,軟輸入輸出解碼器的信號輸出端一路接LLR緩存器的信號輸入端、一路接解碼輸出緩存器的信號輸入端、一路接提前停止控制器的信號輸入端、一路接LSP緩存器的信號輸入端,解交織輸出緩存器的信號輸出端接LSP緩存器的信號輸入端,地址生成器的信號輸出端一路接LLR緩存器的信號輸入端、一路接解碼輸出緩存器的信號輸入端、一路接提前停止控制器的信號輸入端。地址生成器由Turbo交織地址生成器和訓練窗地址生成器構(gòu)成,Turbo交織地址生成器的信號輸出端接LLR緩存器的信號輸入端,訓練窗地址生成器的信號輸出端接LSP緩存器的信號輸入端。地址生成器由LLR-BUF地址生成器和Turbo解交織地址生成器構(gòu)成。
文檔編號H04L1/00GK201018490SQ200720105308
公開日2008年2月6日 申請日期2007年1月4日 優(yōu)先權(quán)日2007年1月4日
發(fā)明者盛 殷, 許曉斌 申請人:浙江華立通信集團有限公司