專利名稱:Turbo并行譯碼的方法及譯碼器的制作方法
技術領域:
本發(fā)明涉及通信領域,尤其涉及Turbo并行譯碼的方法及譯碼器。
背景技術:
Turbo碼,又稱并行級聯(lián)卷積碼(PCCC),是由C. Berrou等在ICC,93會議上提出 的。它巧妙地將卷積碼和隨機交織器結合在一起,實現(xiàn)了隨機編碼。譯碼采用軟輸入軟輸出 迭代譯碼來逼近最大似然譯碼。仿真結果表明,turbo碼的譯碼性能接近shannon(仙農(nóng)) 限。Turbo碼的良好糾錯性能使其成為很多通信協(xié)議(WiMAX、LTE)采用的糾錯碼之一。LTE (Long Term Evolution,長期演進)作為一種新的無線接入技術,在空中接口 方面用頻分多址(0FDM/FDMA)替代了 3GPP長期使用的碼分多址(CDMA),并大量采用多輸入 多輸出(MIMO)技術和自適應技術提高數(shù)據(jù)率和系統(tǒng)性能。LTE的上行峰值速率為50Mbps, 下行峰值速率為IOOMbps (能力級3)/150Mbps (能力級4)。下行接收鏈路中,turbo譯碼計 算復雜,多次迭代使得譯碼延時大,大的譯碼延時很難滿足LTE高速數(shù)據(jù)速率的要求,因此 減少譯碼延時是實現(xiàn)高速turbo譯碼器所要解決的問題之一。如
圖1所示是turbo譯碼器的基本結構圖,由兩個軟輸入軟輸出(SISO)譯碼器 串行級聯(lián)而成,SIS01對輸入的譯碼信息進行譯碼,產(chǎn)生的外信息作為SIS02的先驗信息, SIS02譯碼產(chǎn)生的外信息又作為下次迭代SIS01的先驗信息,如此迭代下去,直到外信息趨 于穩(wěn)定。對于SISO內(nèi)部的譯碼如圖2所示,首先前向順序計算路徑度量γ和前向狀態(tài)度 量α,當路徑到達序列的尾部時,在反向順序計算后向狀態(tài)度量β和計算外信息Le。由此 可以看出,這樣串行計算譯碼延時較大,特別是當輸入的譯碼序列較長時。并行譯碼可以有效降低譯碼延時,并行譯碼方式主要有兩種,滑動窗算法和并行 窗算法?;瑒哟八惴▽⑤斎氲淖g碼序列(長度為N)分為W個窗(可以稱為子碼塊),譯碼 過程中,在同一時間段內(nèi),對不同窗的不同變量可以并行運算。而并行窗算法是不同窗的相 同變量可以并行運算,并行窗算法的并行度高于滑動窗算法。并行窗算法在實現(xiàn)的過程中 可能會產(chǎn)生內(nèi)存接入沖突的問題,而LTE采用沖突避免交織器可以有效的避免內(nèi)存接入沖 突,保證了并行窗算法的可行性。下面詳細介紹下當前并行窗算法的處理流程,如圖3所
7J\ ο步驟301 將輸入的譯碼序列(長度為N)分為W個窗,每個窗的長度為L = N/W。 第一次迭代,每個窗并行執(zhí)行前向狀態(tài)度量α的計算,由于α是遞歸運算,當前時刻的值 依賴于上一個時刻的α值,因此并行計算時每個窗(除窗1)的α初始值不知道,需要自 己設定,以MAX-Log-MAP算法為例,通常設定的方法如式1所示對于窗1
0S = O
權利要求
一種Turbo并行譯碼的方法,其特征在于,包括步驟1,譯碼器將輸入的譯碼序列分成W個相同長度的窗,依次在窗2至窗W的最前邊均添加Tα個比特,每個窗中添加的Tα個比特是上一個窗的最后的Tα個比特,依次在窗W 1至窗1的最后邊均添加Tβ個比特,每個窗中添加的Tβ個比特是后一個窗的最前面的Tβ個比特,其中W、Tα、Tβ為預設值;步驟2,譯碼器開始第一次迭代的前向狀態(tài)度量計算,窗2至窗W的前Tα個比特依并行窗算法并行執(zhí)行前向狀態(tài)度量的計算,當路徑到達窗的原始起始位置時,窗1開始同其余的各窗一起并行執(zhí)行前向狀態(tài)度量的計算,存儲窗的原始結束位置的前向狀態(tài)度量,作為第二次迭代時,下一個窗的前向狀態(tài)度量的初始值;步驟3,譯碼器開始第一次迭代的后向狀態(tài)度量計算,窗1至窗W 1的前Tβ個比特依并行窗算法并行執(zhí)行后向狀態(tài)度量的計算,當路徑到達窗的原始結束位置時,窗W開始同其余的各窗一起并行執(zhí)行后向狀態(tài)度量的計算,并且所有窗開始計算外信息,存儲窗的原始起始位置的后向狀態(tài)度量,作為第二次迭代時,前一個窗的后向狀態(tài)度量的初始值;步驟4,譯碼器去掉每個窗添加的比特段中的Tα個和Tβ個比特,依并行窗算法進行后續(xù)迭代,當?shù)螖?shù)達到預設的最大迭代次數(shù)時,迭代停止。
2.如權利要求1所述的Turbo并行譯碼的方法,其特征在于, 前向狀態(tài)度量采用16位位寬,所述步驟2進一步為,步驟21,譯碼器按如下公式初始化各個窗的前向狀態(tài)度量計算起始位置的前向狀態(tài)度量,對于窗1 οs = 01η0Γ(5) = 1-32678 其他,對于其他窗, In = Iog(I)O其中,α為前向狀態(tài)度量,s為譯碼器所處的狀態(tài);步驟22,譯碼器對窗2至窗W的前Ta個比特執(zhí)行前向狀態(tài)度量的計算,當路徑到達窗 的原始起始位置時,開始對窗1同其余的各窗一起并行執(zhí)行前向狀態(tài)度量的計算;步驟23,譯碼器存儲窗的原始結束位置的前向狀態(tài)度量,作為第二次迭代時,下一個窗 的前向狀態(tài)度量的初始值。
3.如權利要求1所述的Turbo并行譯碼的方法,其特征在于, 后向狀態(tài)度量均采用16位位寬,所述步驟3進一步為,步驟31,譯碼器按如下公式初始化各個窗的后向狀態(tài)度量計算起始位置的后向狀態(tài)度量,對于窗W,
4.如權利要求1所述的Turbo并行譯碼的方法,其特征在于, 所述步驟4進一步為,步驟41,譯碼器去掉每個窗添加的比特段中的億個和Te個比特,步驟42,譯碼器按如下方法進行后續(xù)迭代直到迭代次數(shù)達到預設的最大迭代次數(shù)為止,在每次迭代時,窗1的前向狀態(tài)度量初始值如下式所示;
5.如權利要求1所述的Turbo并行譯碼的方法,其特征在于,所述步驟2中開始對窗1同其余的各窗一起并行執(zhí)行前向狀態(tài)度量的計算的計算長度 為窗的原始長度;所述步驟3中開始對窗W同其余的各窗一起并行執(zhí)行后向狀態(tài)度量的計算的計算長度 為窗的原始長度。
6.一種Turbo并行譯碼器,其特征在于,包括窗口劃分模塊,用于將輸入的譯碼序列分成W個相同長度的窗,依次在窗2至窗W的最 前邊均添加Ta個比特,每個窗中添加的Ta個比特是上一個窗的最后的Ta個比特,依次在窗W-I至窗1窗的最后邊均添加T0個比特,每個窗中添加的T0個比特是后一個窗的最前 面的T0個比特,其中W、Ta、Te為預設值;第一前向計算模塊,用于開始第一次迭代的前向狀態(tài)度量計算,窗2至窗W的前Ta個 比特依并行窗算法并行執(zhí)行前向狀態(tài)度量的計算,當路徑到達窗的原始起始位置時,窗1 開始同其余的各窗一起并行執(zhí)行前向狀態(tài)度量的計算,存儲窗的原始結束位置的前向狀態(tài) 度量,作為第二次迭代時,下一個窗的前向狀態(tài)度量的初始值;第一后向計算模塊,用于開始第一次迭代的后向狀態(tài)度量計算,窗1至窗W-I的前T0 個比特依并行窗算法并行執(zhí)行后向狀態(tài)度量的計算,當路徑到達窗的原始結束位置時,窗W 開始同其余的各窗一起并行執(zhí)行后向狀態(tài)度量的計算,并且所有窗開始計算外信息,存儲 窗的原始起始位置的后向狀態(tài)度量,作為第二次迭代時,前一個窗的后向狀態(tài)度量的初始 值;后續(xù)迭代模塊,用于去掉每個窗添加的比特段中的億個和T0個比特,依并行窗算法進 行后續(xù)迭代,當?shù)螖?shù)達到預設的最大迭代次數(shù)時,迭代停止。
7.如權利要求6所述的Turbo并行譯碼器,其特征在于, 前向狀態(tài)度量采用16位位寬,所述第一前向計算模塊進一步用于,按如下公式初始化各個窗的前向狀態(tài)度量計算起始位置的前向狀態(tài)度量, 對于窗1
8.如權利要求6所述的Turbo并行譯碼器,其特征在于, 后向狀態(tài)度量均采用16位位寬,所述第一后向計算模塊進一步用于按如下公式初始化各個窗的后向狀態(tài)度量計算起始位置的后向狀態(tài)度量, 對于窗W,
9.如權利要求6所述的Turbo并行譯碼器,其特征在于, 所述后續(xù)迭代模塊進一步用于去掉每個窗添加的比特段中的Ta個和Te個比特, 按如下方法進行后續(xù)迭代直到迭代次數(shù)達到預設的最大迭代次數(shù)為止, 在每次迭代時,窗1的前向狀態(tài)度量初始值如下式所示;
10.如權利要求6所述的Turbo并行譯碼器,其特征在于,所述開始對窗1同其余的各窗一起并行執(zhí)行前向狀態(tài)度量的計算的計算長度為窗的 原始長度;所述開始對窗W同其余的各窗一起并行執(zhí)行后向狀態(tài)度量的計算的計算長度為窗的 原始長度。
11.一種Turbo并行譯碼的方法,其特征在于,包括步驟1,譯碼器對輸入的譯碼序列的第一次迭代計算采用現(xiàn)有的滑動窗算法; 步驟2,從第二次迭代開始,譯碼器的迭代計算采用現(xiàn)有的并行窗算法,當?shù)螖?shù)達 到預設的最大迭代次數(shù)時,迭代停止。
12.如權利要求11所述的Turbo并行譯碼的方法,其特征在于, 所述步驟1進一步為,步驟121,譯碼器將輸入的譯碼序列分為W個相同長度的窗,在第一個時間段內(nèi),窗1的 譯碼數(shù)據(jù)首先輸入并存儲起來;步驟122,譯碼器對窗1的數(shù)據(jù)存儲后,在第二個時間段里,對窗1執(zhí)行后向遞歸計算, 得出后向狀態(tài)度量,后向狀態(tài)度量的初始值設定如下式;同時將窗2的譯碼數(shù)據(jù)存儲起來; 對于窗W
13.如權利要求11所述的Turbo并行譯碼的方法,其特征在于, 所述步驟2進一步為,步驟131,譯碼器按如下方法進行后續(xù)迭代直到迭代次數(shù)達到預設的最大迭代次數(shù)為止,在每次迭代時,窗1的前向狀態(tài)度量初始值如下式所示;
14.一種Turbo并行譯碼器,其特征在于,包括第一迭代模塊,用于對輸入的譯碼序列的第一次迭代計算采用現(xiàn)有的滑動窗算法; 第二迭代模塊,從第二次迭代開始,譯碼器的迭代計算采用現(xiàn)有的并行窗算法,當?shù)?次數(shù)達到預設的最大迭代次數(shù)時,迭代停止。
15.如權利要求14所述的Turbo并行譯碼器,其特征在于, 所述第一迭代模塊進一步用于將輸入的譯碼序列分為W個相同長度的窗,在第一個時間段內(nèi),窗1的譯碼數(shù)據(jù)首先輸 入并存儲起來;對窗1的數(shù)據(jù)存儲后,在第二個時間段里,對窗1執(zhí)行后向遞歸計算,得出后向狀態(tài)度 量,后向狀態(tài)度量的初始值設定如下式;同時將窗2的譯碼數(shù)據(jù)存儲起來;對于窗W
16.如權利要求14所述的Turbo并行譯碼器,其特征在于, 所述第二迭代模塊進一步用于按如下方法進行后續(xù)迭代直到迭代次數(shù)達到預設的最大迭代次數(shù)為止, 在每次迭代時,窗1的前向狀態(tài)度量初始值如下式所示;
全文摘要
本發(fā)明一種Turbo并行譯碼的方法及譯碼器,包括步驟1,譯碼器將輸入的譯碼序列分成W個相同長度的窗,依次在窗的前后添加比特;步驟2,譯碼器開始第一次迭代的前向狀態(tài)度量計算,存儲窗的原始結束位置的前向狀態(tài)度量,作為第二次迭代時,下一個窗的前向狀態(tài)度量的初始值;步驟3,譯碼器開始第一次迭代的后向狀態(tài)度量計算,存儲窗的原始起始位置的后向狀態(tài)度量,作為第二次迭代時,前一個窗的后向狀態(tài)度量的初始值;步驟4,譯碼器去掉每個窗添加的比特段,依并行窗算法進行后續(xù)迭代,當?shù)螖?shù)達到預設的最大迭代次數(shù)時,迭代停止。本發(fā)明能夠減少現(xiàn)有的并行窗算法的性能損失。
文檔編號H03M13/29GK101951266SQ20101026214
公開日2011年1月19日 申請日期2010年8月24日 優(yōu)先權日2010年8月24日
發(fā)明者唐杉, 王佩, 王劍, 石晶林, 鄭娟 申請人:中國科學院計算技術研究所