專利名稱:LTE系統(tǒng)中高速并行Turbo碼的解碼系統(tǒng)及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種解碼系統(tǒng)及方法,尤其涉及長期演進(Long TermEvolution, LTE) 系統(tǒng)中高速并行Turbo碼的解碼系統(tǒng)及方法。
背景技術(shù):
LTE系統(tǒng)中要求下行峰值速率達到lOOMb/s,上行峰值速率達到50Mb/s,這對信道編碼的解碼速度提出了更高的要求,目前已應(yīng)用到芯片設(shè)計中的Turbo解碼算法,大多數(shù)是針對Rel 6的,如果LTE沿用Rel 6中的Turbo碼解碼方法,無法滿足上述數(shù)據(jù)速率的要求。針對LTE系統(tǒng)的Turbo碼解碼加速器的實現(xiàn)方案很多,已知的常見的方法如下一種是將Turbo碼解碼常用的滑動窗方法拓展為并行方法實現(xiàn),Rel 6中Turbo 碼的解碼器通常采用滑動窗方法,窗與窗是串行實現(xiàn)的,即上一個窗計算完畢再進行下一個窗的計算。而并行的滑動窗方法是多個滑動窗同時開始計算,每個窗預留一定長度的訓練序列作為初值。在交織器設(shè)計方面,根據(jù)LTE系統(tǒng)的交織函數(shù)的特點,將LTE的交織函數(shù)進行分解,LTE系統(tǒng)的交織函數(shù)為P(i) = (f^i+f^OmodK,其中K為解碼器輸入比特的長度,f\,f2根據(jù)塊長K的值取不同的值,具體取法請參見LTE協(xié)議3GPP TS 36. 212V8. 5. O中的表5. 1.3-3。通常采用迭代的方式求出交織地址,令交織函數(shù)中的i = i+Ι,得到P(i+1) =P(i) + (f\+f2+f2 · 2 · i)modK,避免了乘方運算。上述的滑動窗方法,窗的個數(shù)至少為4,實施時通常窗的個數(shù)為8或者16,如此導致窗的長度變短,由于每個窗均要預留一定長度(至少為16比特)的訓練序列,當窗長度本身不是很長的情況下,訓練序列占用的計算時間開銷不容忽視,并且窗的長度和訓練序列的長度變短,解碼性能會受到很大影響。上述的交織地址的計算方式,雖然避免了乘方運算,但是每次計算交織地址,也會降低解碼器的速度。還有一些研究人員提出了 Radix-4和Radix-8的快速處理方法,但由于這些方法關(guān)鍵路徑增加,并且系統(tǒng)耗費資源也等量級增加,實際上還是通過成倍的增加計算單元和存儲單元來換取成倍的速度,對解碼加速器的性能并沒有本質(zhì)的改善。
發(fā)明內(nèi)容
本發(fā)明目的在于提出一種并行的Turbo碼的解碼系統(tǒng)及方法,應(yīng)用本發(fā)明提供的系統(tǒng)及方法,可應(yīng)用很少的存儲單元,實現(xiàn)高速解碼,滿足LTE系統(tǒng)高吞吐率的需求,并且具有很好的解碼性能。為解決上述問題,根據(jù)本發(fā)明的一種Turbo碼的解碼系統(tǒng),該系統(tǒng)包括輸入存儲器,用以接收輸入的經(jīng)過編碼的軟信息;輸入控制器,與輸入存儲器連接,控制輸入存儲器的對軟信息輸入及將信息輸出至Turbo碼解碼器中; Turbo碼解碼器,具有多個最大后驗概率算法實現(xiàn)單元(MAP單元),該MAP單元從輸入存儲器取出軟信息值進行迭代解碼計算;局部存儲器,用于存儲Turbo碼解碼器計算過程中產(chǎn)生的值;輸出控制器,用以控制Turbo碼解碼器硬判輸出結(jié)果;硬判輸出存儲器,存儲Turbo碼解碼器硬判輸出結(jié)果。依據(jù)上述主要特征,所述的系統(tǒng)是一種應(yīng)用于LTE系統(tǒng)中的8位并行的Turbo碼解碼系統(tǒng)。依據(jù)上述主要特征,所述的輸入存儲器包括8個輸入存儲單元。依據(jù)上述主要特征,所述的軟信息依據(jù)系統(tǒng)位、第一校驗位1和第二校驗位2劃分
為三路信息。依據(jù)上述主要特征,所述的碼塊長度小于768時,不進行分段處理,將三路信息存放在輸入存儲器的第一輸入存儲單元中;當碼塊長度大于768時,將三路信息分別分成8段存放在該輸入存儲器的8個不同的輸入存儲單元中。依據(jù)上述主要特征,所述的Turbo碼解碼器具有8個MAP單元,當該8個MAP處于就緒(Ready)狀態(tài)后,分別從8個不同的輸入存儲單元取出軟信息值進行迭代解碼計算。依據(jù)上述主要特征,所述的每個MAP單元包括第一軟入軟出單元,第一外信息計算單元,交織單元,第二軟入軟出單元,第二外信息計算單元,解交織單元,迭代控制單元及軟入硬出硬判單元,其中所述的第一軟入軟出單元根據(jù)系統(tǒng)位,第一校驗位1及外信息計算對數(shù)似然信息;所述的第一外信息計算單元根據(jù)第一軟入軟出單元輸出的對數(shù)似然信息及輸入的外信息計算新的外信息;所述的交織單元將系統(tǒng)位信息與新的外信息進行交織; 所述的第二軟入軟出單元根據(jù)交織信息與第二校驗位2計算對數(shù)似然信息;所述的第二外信息計算單元根據(jù)第二軟入軟出單元的輸出計算出一個更為準確的外信息;所述的解交織單元將準確的外信息進行解交織;所述的迭代控制單元根據(jù)解交織后的外信息判定是否停止迭代;所述的軟入硬出硬判單元根據(jù)迭代控制單元發(fā)出的停止迭代指令對解交織后的外信息進行硬判決輸出。依據(jù)上述主要特征,所述的局部存儲器具有8個局部存儲單元。依據(jù)上述主要特征,所述的8個MAP單元與8個局部存儲單元并不是一一對應(yīng)的, 并且同一時刻,沒有兩個MAP單元會訪問同一塊局部存儲單元。依據(jù)上述主要特征,當碼塊長度小于768時,不進行分段處理,只用到第一 MAP單
元和第一局部存儲單元。為實現(xiàn)上述目的,本發(fā)明提供一種利用上述的Turbo碼的解碼系統(tǒng)對Turbo碼進行解碼的方法,其中該方法包括如下步驟判斷碼塊長度K是否大于768,即步驟一;如是,則將輸入三路軟信息存放在該輸入存儲器的輸入存儲單元中;持續(xù)判斷Turbo碼解碼器的多個MAP單元是否處于Ready狀態(tài);當多個MAP單元均處于Ready狀態(tài)后,每一 MAP單元分別從多個不同的輸入存儲單元取出軟信息值進行迭代解碼計算,解碼計算過程中產(chǎn)生的值分別存儲于多個局部存儲單元中;判斷是否達到最大迭代次數(shù)或者循環(huán)冗余(CRC)校驗通過;如是則對軟信息進行硬判輸出,K個輸出結(jié)果保存在輸出存儲器中,如否則返回步驟一;
6
如碼塊長度K小于或等于768,則碼塊不進行分段處理,將三路信息存放在輸入存儲器的一預定的輸入存儲單元中,之后持續(xù)判斷Turbo碼解碼器的一預定的MAP單元是否處于Ready狀態(tài);如此預定的MAP單元處于Ready狀態(tài),則該MAP單元從預定的輸入存儲單元中取出軟信息值進行迭代解碼計算,解碼計算過程中產(chǎn)生的值存儲于預定的一局部存儲單元中;判斷是否達到最大迭代次數(shù)或者CRC校驗通過;如是則對軟信息進行硬判輸出,K 個輸出結(jié)果保存在輸出存儲器中,如否則返回步驟一。依據(jù)上述主要特征,該Turbo碼解碼器具有8個MAP單元,分別為第一至第八MAP 單元,該Turbo碼的解碼系統(tǒng)相應(yīng)的也設(shè)有8個局部存儲單元,分別為第一至第八局部存儲單元,并且輸入存儲器具有8個輸入存儲單元,分別為第一至第八輸入存儲單元,如碼塊長度K小于或等于768,則將三路信息存放在輸入存儲器的第一輸入存儲單元中,后續(xù)由第一 MAP單元從第一輸入存儲單元中取出軟信息值進行迭代解碼計算,解碼計算過程中產(chǎn)生的值存儲于第一局部存儲單元中。依據(jù)上述主要特征,在步驟二中,將輸入的軟信息分為三路dl、d2、d3,其中dl、 d2、d3的長度分別為K+4,將三路信息分別分成8段存放在該輸入存儲器的8個不同的輸入存儲單元中。依據(jù)上述主要特征,在步驟五中,所述的每個MAP單元包括第一軟入軟出單元,第一外信息計算單元,交織單元,第二軟入軟出單元,第二外信息計算單元,解交織單元,迭代控制單元及軟入硬出硬判單元,每個MAP單元內(nèi)部的處理流程包括步驟一將系統(tǒng)位dl(i)、校驗信息d2(i)以及外信息輸入到第一軟入軟出單元,計算對數(shù)似然信息,其中i = 1,…,8,表示8個不同的輸入存儲單元的輸入;步驟二 第一外信息計算單元根據(jù)對數(shù)似然信息和輸入的外信息計算新的外信息;步驟三交織單元將系統(tǒng)位dl(i)、新的外信息進行交織后,與校驗信息d3⑴一起輸入到第二軟入軟出單元,計算對數(shù)似然信息;步驟四第二外信息計算單元利用第二軟入軟出單元的輸出計算出一個更為準確的外信息;步驟五解交織單元對計算出的外信息進行解交織;步驟六迭代控制單元先對解交織后的外信息進行CRC運算,如果CRC校驗未通過,再判斷是否達到最大迭代次數(shù);步驟七如果CRC校驗通過或達到最大迭代次數(shù),則進行硬判決輸出解碼結(jié)果,如未達到最大迭代次數(shù)則返回步驟一。依據(jù)上述主要特征,所述的第一與第二軟入軟出單元采用修正的最大后驗概率算法(Max-Log-MAP算法)和用雅可比公式簡化加法運算的修正最大后驗概率算法(Max * -Log-MAP 算法)。依據(jù)上述主要特征,在軟入軟出單元內(nèi)部采用前向分支度量α值和后向分支度量β值同時進行對推的方案;其具體做法是從單個軟入軟出單元處理的數(shù)據(jù)段的末尾利用反向遞推公式計算每一時刻的β值,一直算到本段的第一個符號,并將各個時刻計算得到的β值存儲下來。與此同時,用正向遞推公式從數(shù)據(jù)段的開頭開始計算本段各個時刻的 α值,一直到本段的最后一個符號,將本段中個時刻的α值存儲下來。當解碼進行到本段的中間時刻之后的每一個時刻均可利用計算得到的α值和相應(yīng)時刻的β值相乘求和得到相應(yīng)的似然輸出,此時每個時刻可得到兩個比特的似然輸出。依據(jù)上述主要特征,所述的前向分支度量α值和后向分支度量β值的初值選取方法是本次迭代的邊界初值采用上次迭代得到的結(jié)果,同時在本次迭代中計算出下次迭代的邊界初值;其具體的實現(xiàn)方法如下(1)對于第一次迭代,邊界的α和β均假設(shè)為均勻分布,其中第一段的α初值和最后一段的β初值除外,這兩種情況均為零狀態(tài)概率最大,在此假定的邊界初值條件下, 每個MAP單元按軟入軟出單元內(nèi)部的前向分支度量α值和后向分支度量β值同時進行對推的算法進行譯碼,同時計算出下次迭代的邊界初值并存儲下來;(2)對于非首次的迭代,邊界的α和β均采用上次迭代計算得到的結(jié)果,其中第一段的α初值和最后一段的β初值除外,這兩種情況均為零狀態(tài)概率最大,在此初值條件下,每個MAP單元按軟入軟出單元內(nèi)部的前向分支度量α值和后向分支度量β值同時進行對推的算法進行譯碼,同時計算出下次迭代的邊界初值并更新上次存儲的值。依據(jù)上述主要特征,該方法利用同一模塊實現(xiàn)交織與解交織過程,首先地址生成器用于生成外信息存儲器的讀地址,第一軟入軟出單元鎖存每個外信息的同時,將其讀地址同時鎖存,當?shù)谝卉浫胲洺鰡卧嬎愠鲂碌耐庑畔⒅抵?,將這個新的外信息寫回其讀出地址;在后半次迭代過程中,當?shù)诙浫胲洺鰡卧嬎愠鲂碌耐庑畔⒑?,就將這個外信息再次存儲到最初鎖存的地址,這樣完成的解交織過程;并且每個碼塊,以及同樣長度的碼塊只進行一次地址計算,并不是每次迭代都要進行地址計算。與現(xiàn)有技術(shù)相比較,本發(fā)明具有如下優(yōu)點(1)并行塊內(nèi)部采用并行處理方式,即并行塊內(nèi)部采用前向分支度量α和后向分支度量并行相對計算的方式,如此提高了處理速度;(2)解交織方法中不用每次迭代生成交織地址,提高了處理速度;(3)與通常的滑窗方法相比,不需要增加預推長度,極大降低了計算復雜度并且提高了處理速度;(4)與通常的滑窗方法的預推方法相比較,本發(fā)明提供的采用上次迭代結(jié)果作為初值的方法,具有更高的解碼性能;(5)當碼長小于768時,自動轉(zhuǎn)為串行的執(zhí)行方式,這樣處理即滿足了處理速度的要求,又使性能有所提高。
圖1為實施本發(fā)明的系統(tǒng)架構(gòu)圖。圖2為實施本發(fā)明的流程圖。圖3為實施本發(fā)明的MAP單元的組成架構(gòu)圖。圖4為圖2所示一步驟的細節(jié)流程圖。圖5至圖8為圖2所示一步驟的細節(jié)流程圖。圖9為現(xiàn)有技術(shù)的滑窗方法與本發(fā)明提供的方法的性能比較圖。
具體實施方式
以下結(jié)合附圖對實施本發(fā)明的LTE系統(tǒng)中高速并行Turbo碼的解碼系統(tǒng)及方法進行具體說明。請參閱圖1所示,為實施本發(fā)明的系統(tǒng)架構(gòu)圖,該解碼系統(tǒng)包括輸入存儲器,用以接收輸入的經(jīng)過編碼的軟信息,在本實施例中該輸入存儲器包括8個輸入存儲單元,分別為第一至第八輸入存儲單元,該軟信息包括系統(tǒng)位、校驗位1和校驗位2,根據(jù)LTE協(xié)議規(guī)定,其長度為3女K+12,其中K為碼塊長度,dl、d2、d3的長度分別為K+4,將三路信息分別分成8段存放在該輸入存儲器的8個不同的輸入存儲單元中,當碼塊長度K < 768吋,不進行分段處理,將三路信息存放在輸入存儲器的第一輸入存儲單元中;輸入控制器,與輸入存儲器連接,控制輸入存儲器的對軟信息輸入及將信息輸出至Turbo碼解碼器中;Turbo碼解碼器,具有8個MAP單元,分別為第一至第八MAP單元,當該8個MAP處于Ready狀態(tài)后,分別從8個不同的輸入存儲單元取出軟信息值進行迭代解碼計算;局部存儲器,具有8個局部存儲單元,用于存儲MAP単元解碼計算過程中產(chǎn)生的值,由于內(nèi)交織的存在,8個MAP単元與8個局部存儲單元并不是一一對應(yīng)的,也就是第一 MAP單元讀寫的局部存儲單元不一定是第一局部存儲單元,但是同一時刻,沒有兩個MAP單元會訪問同一塊局部存儲單元,這是LTE無爭用的交織器的特點決定的,當碼塊長度K小于 768吋,不進行分段處理,只用到第一 MAP単元和第一局部存儲單元;輸出控制器,用以控制Turbo碼解碼器硬判輸出結(jié)果;硬判輸出存儲器,存儲Turbo碼解碼器硬判輸出結(jié)果。請參閱圖2所示,為實施本發(fā)明的流程圖,包括如下步驟步驟200 判斷碼塊長度K是否大于768 ;如是,則進行步驟201,即將輸入三路軟信息dl、d2、d3 (長度分別為K+4)分別分成8段存放在該輸入存儲器的8個不同的輸入存儲單元中;步驟203 持續(xù)判斷Turbo碼解碼器的8個MAP單元是否處于Ready狀態(tài);步驟204 當8個MAP單元均處于Ready狀態(tài)后,每ー MAP單元分別從8個不同的輸入存儲單元取出軟信息值進行迭代解碼計算,解碼計算過程中產(chǎn)生的值分別存儲于8個局部存儲單元中;步驟206 判斷是否達到最大迭代次數(shù)或者CRC校驗通過;如是則進行步驟207, 即將對軟信息進行硬判輸出,K個輸出結(jié)果保存在輸出存儲器中,如否則返回步驟200 ;
如碼塊長度K小于或等于768,則進行步驟202,即碼塊不進行分段處理,將三路信息存放在輸入存儲器的第一輸入存儲單元中,之后持續(xù)判斷Turbo碼解碼器的第一 MAP單元是否處于Ready狀態(tài),即步驟208 ;之后進行步驟205,即只通過第一 MAP單元從第一輸入存儲單元中取出軟信息值進行迭代解碼計算,解碼計算過程中產(chǎn)生的值存儲于第一局部存儲單元中;之后判斷是否達到最大迭代次數(shù)或者CRC校驗通過;如是則進行步驟209,即將對軟信息進行硬判輸出,K個輸出結(jié)果保存在輸出存儲器中,如否則返回步驟200。 請參閱圖3所示,為實施本發(fā)明的MAP単元的組成架構(gòu)圖,該MAP単元由第一軟入軟出單元,第一外信息計算單元,交織單元,第二軟入軟出単元,第二外信息計算單元,解交織單元,迭代控制単元,軟入硬出硬判單元組成,其中
所述的第一軟入軟出単元根據(jù)系統(tǒng)位,第一校驗位1及外信息計算對數(shù)似然信息;所述的第一外信息計算單元根據(jù)第一軟入軟出單元輸出的對數(shù)似然信息及輸入的外信息計算新的外信息;所述的交織單元將系統(tǒng)位信息與新的外信息進行交織;所述的第二軟入軟出単元根據(jù)交織信息與第二校驗位2計算對數(shù)似然信息;所述的第二外信息計算單元根據(jù)第二軟入軟出単元的輸出計算出ー個更為準確的外信息;所述的解交織單元將準確的外信息進行解交織;所述的迭代控制單元根據(jù)解交織后的外信息判定是否停止迭代;所述的軟入硬出硬判単元根據(jù)迭代控制單元發(fā)出的停止迭代指令對解交織后的外信息進行硬判決輸出。請參閱圖4所示,為圖3中每ー MAP単元進行迭代解碼的細節(jié)流程圖,包括如下步驟步驟400 將系統(tǒng)位dl(i)、校驗信息d2(i)以及外信息輸入到第一軟入軟出単元 SIS01,計算對數(shù)似然信息,其中i = 1,…,8,表示8個不同的輸入存儲單元的輸入;步驟401 第一外信息計算單元根據(jù)對數(shù)似然信息和輸入的外信息計算新的外信息;步驟402 交織單元將系統(tǒng)位dl(i)、新的外信息進行交織后,與校驗信息d3⑴一起輸入到第二軟入軟出単元SIS02,計算對數(shù)似然信息;步驟403 第二外信息計算單元利用SIS02的輸出計算出一個更為準確的外信息;步驟404 解交織單元對計算出的外信息進行解交織;步驟405 迭代控制単元先對解交織后的外信息進行CRC運算(LTE系統(tǒng)中規(guī)定的 CRC),如果CRC校驗未通過,再判斷是否達到最大迭代次數(shù)。步驟406 如果CRC校驗通過或達到最大迭代次數(shù),則進行硬判決輸出解碼結(jié)果, 如未達到最大迭代次數(shù)則轉(zhuǎn)到步驟400。請參閱圖5至圖8所示,為圖2中SISOl計算方法的流程圖,SIS02與SISOl計算方法相似,不再重復敘述。該方法中采用工程應(yīng)用中通常用到的修正的最大后驗概率算法 (Max-Log-MAP算法),Max-Log-MAP算法主要是對前向分支度量α和后向分支度量β進行計算,通過狀態(tài)轉(zhuǎn)移實現(xiàn)迭代譯碼,其他內(nèi)容在現(xiàn)有技術(shù)中多有掲示,此處不再詳細說明, 主要說明α值和β值如何實現(xiàn)并行計算。在軟入軟出(SISO)內(nèi)部采用α值和β值同時進行對推的方案。具體做法是從單個SISO處理的數(shù)據(jù)段的末尾利用反向遞推公式計算每一時刻的β值,一直算到本段的第一個符號,并將各個時刻計算得到的β值存儲下來。與此同吋,用正向遞推公式從數(shù)據(jù)段的開頭開始計算本段各個時刻的α值,一直到本段的最后ー個符號,將本段中個時刻的 α值存儲下來。上述過程如圖5所示。當解碼進行到本段的中間時刻吋,往后每一個時刻均可利用計算得到的α值和相應(yīng)時刻的β值相乘求和得到相應(yīng)的似然輸出,此時每個時刻可得到兩個比特的似然輸出,如圖7所示。
在實施中,假設(shè)碼長為N,并行度為P,則相當于有P個MAP解碼器同時進行解碼, 每個解碼器需要處理的碼字個數(shù)為N/P。相當于將原來的碼長分為P段,每一段分別由ー個解碼器來解碼。由于P個MAP解碼器同時進行解碼,故每一段碼的α初值和β初值均不確定(除了第一段的α初值和最后一段的β初值),因此需要解決每ー個數(shù)據(jù)段的邊界初值問題。本發(fā)明通過令本次迭代的邊界初值采用上次迭代得到的結(jié)果,同時在本次迭代中計算出下次迭代的邊界初值,具體的實現(xiàn)方法如下1.對于第一次迭代,邊界的α和β均假設(shè)為均勻分布(第一段的α初值和最后一段的β初值除外,這兩種情況均為零狀態(tài)概率最大),在此假定的邊界初值條件下,每個MAP単元按圖5與圖6所示的單個MAP単元內(nèi)部算法進行解碼,同時計算出下次迭代的邊界初值并存儲下來,如圖7所示。2.對于非首次的迭代,邊界的α和β均采用上次迭代計算得到的結(jié)果(第一段的α初值和最后一段的β初值除外,這兩種情況均為零狀態(tài)概率最大),在此初值條件下, 每個MAP単元按照圖5與圖6所示的單個MAP単元內(nèi)部算法進行解碼,同時計算出下次迭代的邊界初值并更新上次存儲的值,如圖8所示。完成上述的前向分支度量α和后向分支度量β計算輸出似然信息就可以進行外信息的計算。另外,本發(fā)明的交織和解交織過程可以用同一模塊實現(xiàn),如圖3中的交織和解交織可以合并為ー個地址生成器模塊。首先地址生成器用于生成外信息存儲器的讀地址, SISOl鎖存每個外信息的同吋,將其讀地址同時鎖存,當SISOl計算出新的外信息值之后, 將這個新的外信息寫回其讀出地址。在后半次迭代過程中,當SIS02計算出新的外信息后, 就將這個外信息再次存儲到最初鎖存的地址,這樣完成的解交織過程,并且每個碼塊,以及同樣長度的碼塊只進行一次地址計算,并不是每次迭代都要進行地址計算。在實施時,本發(fā)明用8比特實現(xiàn),主要存儲器構(gòu)成如下表所示
權(quán)利要求
1.一種Turbo碼的解碼系統(tǒng),其特征在于,包括 輸入存儲器,用以接收輸入的經(jīng)過編碼的軟信息;輸入控制器,與輸入存儲器連接,控制輸入存儲器對軟信息輸入及將信息輸出至Turbo 碼解碼器中;Turbo碼解碼器,具有多個MAP單元,該MAP單元從輸入存儲器取出軟信息值進行迭代解碼計算;局部存儲器,用于存儲Turbo碼解碼器計算過程中產(chǎn)生的值; 輸出控制器,用以控制Turbo碼解碼器硬判輸出結(jié)果; 硬判輸出存儲器,存儲Turbo碼解碼器硬判輸出結(jié)果。
2.根據(jù)權(quán)利要求1所述的Turbo碼的解碼系統(tǒng),其特征在于,所述的解碼系統(tǒng)是一種應(yīng)用于LTE系統(tǒng)中的8位并行的Turbo碼解碼系統(tǒng)。
3.根據(jù)權(quán)利要求1所述的Turbo碼的解碼系統(tǒng),其特征在于,所述的輸入存儲器包括8 個輸入存儲單元。
4.根據(jù)權(quán)利要求1所述的Turbo碼的解碼系統(tǒng),其特征在于,所述的軟信息依據(jù)系統(tǒng)位、第一校驗位1和第二校驗位2劃分為三路信息。
5.根據(jù)權(quán)利要求4所述的Turbo碼的解碼系統(tǒng),其特征在于,所述的碼塊長度小于768 時,不進行分段處理,將三路信息存放在輸入存儲器的第一輸入存儲單元中;當碼塊長度大于768時,將三路信息分別分成8段存放在該輸入存儲器的8個不同的輸入存儲單元中。
6.根據(jù)權(quán)利要求4所述的Turbo碼的解碼系統(tǒng),其特征在于,所述的Turbo碼解碼器具有8個MAP單元,當該8個MAP處于Ready狀態(tài)后,分別從8個不同的輸入存儲單元取出軟信息值進行迭代解碼計算。
7.根據(jù)權(quán)利要求6所述的Turbo碼的解碼系統(tǒng),其特征在于,所述的每個MAP單元包括第一軟入軟出單元,第一外信息計算單元,交織單元,第二軟入軟出單元,第二外信息計算單元,解交織單元,迭代控制單元及軟入硬出硬判單元,其中,所述的第一軟入軟出單元根據(jù)系統(tǒng)位,第一校驗位1及外信息計算對數(shù)似然信息; 所述的第一外信息計算單元根據(jù)第一軟入軟出單元輸出的對數(shù)似然信息及輸入的外信息計算新的外信息;所述的交織單元將系統(tǒng)位信息與新的外信息進行交織; 所述的第二軟入軟出單元根據(jù)交織信息與第二校驗位2計算對數(shù)似然信息; 所述的第二外信息計算單元根據(jù)第二軟入軟出單元的輸出計算出一個更為準確的外 fn息;所述的解交織單元將準確的外信息進行解交織; 所述的迭代控制單元根據(jù)解交織后的外信息判定是否停止迭代; 所述的軟入硬出硬判單元根據(jù)迭代控制單元發(fā)出的停止迭代指令對解交織后的外信息進行硬判決輸出。
8.根據(jù)權(quán)利要求1所述的Turbo碼的解碼系統(tǒng),其特征在于,所述的局部存儲器具有8 個局部存儲單元。
9.根據(jù)權(quán)利要求6或7或8所述的Turbo碼的解碼系統(tǒng),其特征在于,所述的8個MAP 單元與8個局部存儲單元并不是一一對應(yīng)的,并且同一時刻,沒有兩個MAP單元會訪問同一塊局部存儲單元。
10.根據(jù)權(quán)利要求6或7或8所述的Turbo碼的解碼系統(tǒng),其特征在于,當碼塊長度小于768時,不進行分段處理,只用到第一 MAP單元和第一局部存儲單元。
11.一種利用權(quán)利要求1所述的Turbo碼的解碼系統(tǒng)對Turbo碼進行解碼的方法,其特征在于該方法包括如下步驟判斷碼塊長度K是否大于768,即步驟一;如是,則將輸入三路軟信息存放在該輸入存儲器的輸入存儲單元中;持續(xù)判斷Turbo碼解碼器的多個MAP單元是否處于Ready狀態(tài);當多個MAP單元均處于Ready狀態(tài)后,每一 MAP單元分別從多個不同的輸入存儲單元取出軟信息值進行迭代解碼計算,解碼計算過程中產(chǎn)生的值分別存儲于多個局部存儲單元中;判斷是否達到最大迭代次數(shù)或者CRC校驗通過;如是則對軟信息進行硬判輸出,K個輸出結(jié)果保存在輸出存儲器中,如否則返回步驟一;如碼塊長度K小于或等于768,則碼塊不進行分段處理,將三路信息存放在輸入存儲器的一預定的輸入存儲單元中,之后持續(xù)判斷Turbo碼解碼器的一預定的MAP單元是否處于 Ready狀態(tài);如此預定的MAP單元處于Ready狀態(tài),則該MAP單元從預定的輸入存儲單元中取出軟信息值進行迭代解碼計算,解碼計算過程中產(chǎn)生的值存儲于預定的一局部存儲單元中;判斷是否達到最大迭代次數(shù)或者CRC校驗通過;如是則對軟信息進行硬判輸出,K個輸出結(jié)果保存在輸出存儲器中,如否則返回步驟一。
12.根據(jù)權(quán)利要求11所述的方法,其特征在于,該Turbo碼解碼器具有8個MAP單元, 分別為第一至第八MAP單元,該Turbo碼的解碼系統(tǒng)相應(yīng)的也設(shè)有8個局部存儲單元,分別為第一至第八局部存儲單元,并且輸入存儲器具有8個輸入存儲單元,分別為第一至第八輸入存儲單元,如碼塊長度K小于或等于768,則將三路信息存放在輸入存儲器的第一輸入存儲單元中,后續(xù)由第一 MAP單元從第一輸入存儲單元中取出軟信息值進行迭代解碼計算,解碼計算過程中產(chǎn)生的值存儲于第一局部存儲單元中。
13.根據(jù)權(quán)利要求12所述的方法,其特征在于,在步驟二中,將輸入的軟信息分為三路 dl、d2、d3,其中dl、d2、d3的長度分別為K+4,將三路信息分別分成8段存放在該輸入存儲器的8個不同的輸入存儲單元中。
14.根據(jù)權(quán)利要求12所述的方法,其特征在于,所述的步驟五中,所述的每個MAP單元包括第一軟入軟出單元,第一外信息計算單元,交織單元,第二軟入軟出單元,第二外信息計算單元,解交織單元,迭代控制單元及軟入硬出硬判單元,每個MAP單元內(nèi)部的處理流程包括步驟一將系統(tǒng)位dl(i)、第一校驗信息d2⑴以及外信息輸入到第一軟入軟出單元,計算對數(shù)似然信息,其中i = 1,…,8,表示8個不同的輸入存儲單元的輸入;步驟二 第一外信息計算單元根據(jù)對數(shù)似然信息和輸入的外信息計算新的外信息;步驟三交織單元將系統(tǒng)位dl(i)、新的外信息進行交織后,與第二校驗信息d3⑴一起輸入到第二軟入軟出單元,計算對數(shù)似然信息;步驟四第二外信息計算單元利用第二軟入軟出單元的輸出計算出一個更為準確的外 fn息;步驟五解交織單元對計算出的外信息進行解交織;步驟六迭代控制單元先對解交織后的外信息進行CRC運算,如果CRC校驗未通過,再判斷是否達到最大迭代次數(shù);步驟七如果CRC校驗通過或達到最大迭代次數(shù),則進行硬判決輸出解碼結(jié)果,如未達到最大迭代次數(shù)則返回步驟一。
15.根據(jù)權(quán)利要求14所述的方法,其特征在于,所述的第一與第二軟入軟出單元采用 Max-Log-MAP 算法和 Max * -Log-MAP 算法。
16.根據(jù)權(quán)利要求15所述的方法,其特征在于,在軟入軟出單元內(nèi)部采用前向分支度量α值和后向分支度量β值同時進行對推的方案;其具體做法是從單個軟入軟出單元處理的數(shù)據(jù)段的末尾利用反向遞推公式計算每一時刻的β值,一直算到本段的第一個符號, 并將各個時刻計算得到的β值存儲下來。與此同時,用正向遞推公式從數(shù)據(jù)段的開頭開始計算本段各個時刻的α值,一直到本段的最后一個符號,將本段中個時刻的α值存儲下來。當解碼進行到本段的中間時刻之后的每一個時刻均可利用計算得到的α值和相應(yīng)時刻的β值相乘求和得到相應(yīng)的似然輸出,此時每個時刻可得到兩個比特的似然輸出。
17.根據(jù)權(quán)利要求16所述的方法,其特征在于,所述的前向分支度量α值和后向分支度量β值的初值選取方法是本次迭代的邊界初值采用上次迭代得到的結(jié)果,同時在本次迭代中計算出下次迭代的邊界初值;其具體的實現(xiàn)方法如下(1)對于第一次迭代,邊界的α和β均假設(shè)為均勻分布,其中第一段的α初值和最后一段的β初值除外,這兩種情況均為零狀態(tài)概率最大,在此假定的邊界初值條件下,每個 MAP單元按軟入軟出單元內(nèi)部的前向分支度量α值和后向分支度量β值同時進行對推的算法進行譯碼,同時計算出下次迭代的邊界初值并存儲下來;(2)對于非首次的迭代,邊界的α和β均采用上次迭代計算得到的結(jié)果,其中第一段的α初值和最后一段的β初值除外,這兩種情況均為零狀態(tài)概率最大,在此初值條件下, 每個MAP單元按軟入軟出單元內(nèi)部的前向分支度量α值和后向分支度量β值同時進行對推的算法進行譯碼,同時計算出下次迭代的邊界初值并更新上次存儲的值。
18.根據(jù)權(quán)利要求15所述的方法,其特征在于,該方法利用同一模塊實現(xiàn)交織與解交織過程,首先地址生成器用于生成外信息存儲器的讀地址,第一軟入軟出單元鎖存每個外信息的同時,將其讀地址同時鎖存,當?shù)谝卉浫胲洺鰡卧嬎愠鲂碌耐庑畔⒅抵?,將這個新的外信息寫回其讀出地址;在后半次迭代過程中,當?shù)诙浫胲洺鰡卧嬎愠鲂碌耐庑畔⒑?,就將這個外信息再次存儲到最初鎖存的地址,這樣完成的解交織過程;并且每個碼塊,以及同樣長度的碼塊只進行一次地址計算,并不是每次迭代都要進行地址計算。
全文摘要
一種Turbo碼的解碼方法,先判斷碼塊長度K是否大于768;如是則將輸入的三路軟信息分段存放在輸入存儲單元中,如否,則將三路信息存放在一預定的輸入存儲單元中,之后只通一預定的MAP單元從預定的輸入存儲單元中取出軟信息值進行迭代解碼計算,解碼計算過程中產(chǎn)生的值存儲于預定的一局部存儲單元中;之后,持續(xù)判斷Turbo碼解碼器的8個MAP單元是否處于就緒狀態(tài);如是,每一MAP單元分別從多個不同的輸入存儲單元取出軟信息值進行迭代解碼計算,解碼計算過程中產(chǎn)生的值分別存儲于多個局部存儲單元中;最后判斷是否達到最大迭代次數(shù)或者CRC校驗通過;如是則對軟信息進行硬判輸出,將K個輸出結(jié)果保存在輸出存儲器中。
文檔編號H03M13/29GK102571107SQ20101059222
公開日2012年7月11日 申請日期2010年12月15日 優(yōu)先權(quán)日2010年12月15日
發(fā)明者冷欣, 張力, 董霄劍 申請人:展訊通信(上海)有限公司