專利名稱:渦輪碼的并行譯碼以及數(shù)據(jù)處理方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及無線通信系統(tǒng)信道譯碼,尤其涉及渦輪碼的并行譯碼的方法 和裝置。
背景技術(shù):
近年來,正在發(fā)展一種在包含移動通信系統(tǒng)、信息記錄系統(tǒng)、數(shù)字廣播 系統(tǒng)等的通信領(lǐng)域和信息處理領(lǐng)域中所使用的高性能、高可靠性的編碼方式,
所謂渦輪碼(Turbo)方式。隨著數(shù)據(jù)速率日益增加的需要,渦輪碼面臨著嚴 峻的挑戰(zhàn)。傳統(tǒng)的渦輪碼在其子譯碼器(component decoder)中釆用串行的 方式進行軟入軟出(soft in soft out) (SISO)處理。這種處理需要大量的時鐘 周期,從而制約了硬件譯碼速度。
為了清楚起見,下面簡要說明渦輪碼的傳統(tǒng)的串行譯碼機制(以下稱為 "SD"方法)。
圖1示出了傳統(tǒng)的串行迭代渦輪譯碼器的圖(詳見C. Berrou, A. Glavieux, 和P. Thitimajshima, "Near Shannon limit error-correcting coding and decoding: Turbo-codes(I)," Proc.1993 IEEE Int. Conf. Commun. (ICC,93), Geneva, Switzerland, 1993年5月,1064-1070頁)。該譯碼器包括兩個子譯碼器(1、 2 )、 交織器、以及去交織器,以迭代方式來進行譯碼。在每次迭代中,子譯碼器 l將其計算的外信息(extrinsic information) (Le!)在經(jīng)過交織器交織后發(fā)送 給子譯碼器2,作為先驗信息(priori information) (La2)。然后,子譯碼器2 將其外信息(Le2)在經(jīng)過去交織器去交織后反饋給子譯碼器1,用作先驗信 息(LaJ。圖1中的x和x,分別是接收的信息比特和其交織后的版本。yt和 y2是接收到的4交-瞼位,它們分別由兩個子遞歸系統(tǒng)巻積(Recursive Systematic Convolutional) (RSC)編碼器(未示出)產(chǎn)生。
子譯碼器的功能是計算每個信息比特的對數(shù)似然比(Logarithm of Likelihood Ratio) (LLR)。這種計算通常使用最大后驗概率(Maximum A
6Posteriori Probability) (MAP)算法(詳見,L.R.Bahl, J.Cocke, F.Jelinek和 J.Raviv, "Optimal decoding of linear codes for minimizing symbol error rate", IEEE Trans.Inform.Theory,VoLIT-20,284-287頁,1974年3月),其中第i(其中, i=l,2,…N-l)個信息比特的LLR為
丄丄《=log^- 公式(1 )
圖2示出了整個處理過程。顯然,為了計算^0)(即,前向處理中計算 的前向路徑度量(forward path metric)),應(yīng)該首先計算a卜;只有在算 出所有過去的a,.(力之后,才能計算"n("。 A(力(即,后向處理中計算的后 向路徑度量(backward path metric))情形類似。因此,本領(lǐng)域:f支術(shù)人員公 知,在傳統(tǒng)的SISO算法中,網(wǎng)格(trellis)中一個分支的處理依賴于過去的 分支的所有過去的計算結(jié)果,必須等待所有分支處理完成之后,才能獲得子 譯碼器的整個輸出。因此,不能在N個時鐘周期內(nèi)完成在一次迭代中的一個 子譯碼器的處理(可能需要一些額外的時鐘周期來執(zhí)行一些其他的操作),因 此一個單元SISO譯碼器的處理需要至少N個時鐘周期,其中N是網(wǎng)格圖的 長度(渦輪碼的幀長度或交織器長度)。如果時鐘頻率是fe,則MAP的處理 時延大于7^=;。假設(shè)最大迭代次數(shù)為Imax,則譯碼渦輪碼的一個碼字的延
遲大于7; =2r / =^/狀,使得信息吞吐量小于^ = !=丄。例如,
"* dec map max 尸 max "* , " 》~ 2y ,
/ c 血c max
當fTl00MHz且In^-8時,吞吐量不可能大于6.25Mbps。需要注意的是,采 用提前迭代中止技術(shù)(early-stop iteration strategy)雖然能4吏成功譯碼一個碼
字的迭代的實際迭代次數(shù)少于Imax,但硬件仍必須按照Lax來設(shè)計。
為了減少譯碼延遲并增加其吞吐量,現(xiàn)有技術(shù)中提出了渦輪碼的并行譯 碼方法。
普遍的做法是通過將整個碼字劃分為Q個子塊并使用Q個并行工作的 MAP處理器來對這Q個子塊并行譯碼,從而將所需的時鐘周期減少到N/Q, 譯碼速度相應(yīng)提高到Q倍。但存在的問題是,子塊處理中邊界處的初始條件 缺失原本不分子塊時,計算邊界處的值需要已知前面的計算結(jié)果。
如果隨機或任意設(shè)置各個子塊譯碼時的初始條件,則會導(dǎo)致嚴重的性能惡化。因此,直接并行譯碼面臨如何初始化每個子塊的邊界處的前向變量和 后向變量的問題。
為了在子塊的邊界處得到較好的初始條件,現(xiàn)有技術(shù)中提出了兩種渦輪
碼并行譯碼方法。 一種渦輪碼并#^碼方法是在Jah-Ming Hsu和Chin-Liang
Wang的 "a parallel decoding scheme for turbo codes", Proc.ISCAS'98, Vol.4,
1998年6月,445-448頁中提出的方法(以下,簡稱為"OL"方法)。
圖3示出了根據(jù)傳統(tǒng)的OL的用于計算cti(s)的重疊的子塊的圖。對于從k
到k+M-1的長度為M的特定子塊,可以從k-L開始計算,為了在一次迭代中 在一個子譯碼器中獲得所有前向變量",(",處理Q個子塊且重疊L的整個過
程需要! +丄時鐘周期,而不是^個時鐘周期,譯碼速度相應(yīng)下降到 ^
倍。L和Q越大,譯碼速度越低。例如,假設(shè)碼字塊長度為2298,將其劃分
為(^50個子塊,且重疊的長度1=30,則需要^^ + 30 76個時鐘周期來產(chǎn)
50
生所有的前向變量,而不是^^《46個周期,因此MAP譯碼速度僅可以被提
高到30倍,沒有達到預(yù)期的()=50倍。
另 一種渦4侖石馬并4亍譯石馬方法是在Seokhyn Yoon和Yeheskel Nar-Ness的"A parallel MAP algorithm for low latency turbo decoding" , IEEE communications letters,VOL.6,NO.7,2002年7月中提出的方法(以下,簡稱為"SBI"方法)。 該方法將上一次迭代中邊界處的計算值進行存儲,并稍后在下一次迭代譯碼 處理中使用該計算結(jié)果作為該子塊邊界的初始條件的近似。
相比于重疊方法,該方法不需要冗余的計算。因此,譯碼速度可以線性 增加到子塊的數(shù)量Q倍。但它需要總量大小為2 x Q x 2 的額外的存儲器來 存儲在前一次迭代中的最終結(jié)果a^(",其中v是用于量化這些變量的比特
數(shù),2""是網(wǎng)格中的狀態(tài)數(shù)量。
綜上,OL的缺點在于,重疊導(dǎo)致了一些額外的計算時延,這將降低譯碼 速度,尤其在Q較大且N較小的情況下。而SBI的缺點在于,需要額外的存 儲器容量來存儲該中間的邊界信息。當Q值較大時,此部分存儲所占的比例 不可忽-現(xiàn)。
發(fā)明內(nèi)容
8鑒于上述技術(shù)問題,本發(fā)明提出了一種新的渦輪碼的數(shù)據(jù)處理以及并行 譯碼裝置。在沒有大幅度增加存儲器容量的前提下,解決了現(xiàn)有技術(shù)中譯碼 速度與譯碼正確性不能兼得的缺陷。
根據(jù)本發(fā)明的一個方面,提供一種渦輪碼的并行譯碼數(shù)據(jù)處理方法,所
述方法包括碼字劃分步驟,用于將整個碼字劃分為Q個子塊以使所述Q個子 塊中的相鄰子塊形成多個邊界,從而對所述Q個子塊并行進行譯碼處理,其 中所述譯碼處理包括P次迭代i奪碼處理,Q是正整數(shù),且Q>1, P是正整數(shù), 且P〉1;以及邊界移動步驟,用于在第p+n次迭代譯碼處理之前,以移動量A 來移動在第p次迭代譯碼處理中形成的所述多個邊界中的至少一個的位置, 其中p是正整數(shù),il<p<P, n是正整數(shù),且l《n《P-p,所述移動量A是固 定的步長。
本發(fā)明的另一個方面為一種渦輪碼的并行譯碼數(shù)據(jù)處理方法,所述方法 包括碼字劃分步驟,用于將整個碼字劃分為Q個子塊以使所述Q個子塊中的 相鄰子塊形成多個邊界,從而對所述Q個子塊并行進行譯碼處理,其中所述 譯碼處理包括P次迭代譯碼處理,Q是正整數(shù),且Q>1, P是正整數(shù),且P>1; 以及存儲步驟,用于在對第q個子塊的第p次迭代譯碼處理中,存儲所述第 p次迭代譯碼處理的前向處理或后向處理的計算結(jié)果中具有最大概率的狀態(tài)
(s*)的索引,其中在對第q個子塊的第p+l次迭代譯碼處理的前向處理或 后向處理中,當初始條件(s)為具有最大概率的狀態(tài)時,初始條件(s)的可靠度 為1, l<q<Q,且q是整數(shù),p是正整數(shù),且l《p〈P。
本發(fā)明的另一個方面為一種渦輪碼的并行譯碼數(shù)據(jù)處理方法,所述方法 包括碼字劃分步驟,用于將整個碼字劃分為Q個子塊以使所述Q個子塊中的 相鄰子塊形成多個邊界,從而對所述Q個子塊并行進行譯碼處理,其中所述 譯碼處理包括P次迭代譯碼處理,Q是正整數(shù),且Q>1 , P是正整數(shù),且P>1; 以及存儲步驟,用于在對第q個子塊的第p次迭代-澤碼處理中,存儲所述第 p次迭代譯碼處理的前向處理或后向處理的計算結(jié)果中具有最大概率的狀態(tài)
(s*)的索引,其中在對所述第q個子塊的第p+l次迭代i奪碼處理的前向處 理或后向處理中,當初始條件(s)為具有最大概率的狀態(tài)時,初始條件(s)的可 靠度為l,當初始條件(s)不是具有最大概率的狀態(tài)(s、即s^s+時,其初始條 件與具有第二大概率狀態(tài)(s,)的可靠度以及具有最大概率狀態(tài)(s*)的可靠
度的比值有關(guān)。本發(fā)明的另 一個方面為 一種渦輪碼的并行譯碼數(shù)據(jù)處理設(shè)備,所述設(shè)備
包括碼字劃分裝置,用于將整個碼字劃分為Q個子塊以使所述Q個子塊中的 相鄰子塊形成多個邊界,從而對所述Q個子塊并行進行譯碼處理,其中所述 譯碼處理包括P次迭代譯碼處理,Q是正整數(shù),且Q>1, P是正整數(shù),且P>1; 以及邊界移動裝置,用于在第p+n次迭代譯碼處理之前,以移動量A來移動 在第p次迭代譯碼處理中形成的所述多個邊界中的至少一個的位置,其中p 是正整數(shù),且l《p〈P, n是正整數(shù),且l《n《P-p,所述移動量A是固定的步 長。
本發(fā)明還提供了 一種渦輪碼的并行譯碼設(shè)備,所述設(shè)備包括并行譯碼數(shù) 據(jù)處理設(shè)備,接收輸入數(shù)據(jù),該并行譯碼數(shù)據(jù)處理設(shè)備更包括碼字劃分裝 置,用于將整個碼字劃分為Q個子塊以使所述Q個子塊中的相鄰子塊形成多 個邊界,從而對所述Q個子塊并行進行譯碼處理,其中所述譯碼處理包括P 次迭代譯碼處理,Q是正整數(shù),且Q〉1, P是正整數(shù),且PM;以及邊界 移動裝置,用于在第p+n次迭代譯碼處理之前,以移動量A來移動在第p次 迭代譯碼處理中形成的所述多個邊界中的至少一個的位置,其中p是正整數(shù), 且l《p〈P, n是正整數(shù),且Kn《P-p,所述移動量A是固定的步長;渦輪譯 碼裝置,連接到該并行譯碼數(shù)據(jù)處理裝置,接收譯碼子塊數(shù)據(jù),該渦輪譯碼 裝置可以包括多個解交織器以及多個子譯碼器,對并行譯碼數(shù)據(jù)處理設(shè)備產(chǎn) 生的譯碼子塊數(shù)據(jù)進行渦輪譯碼;以及存儲裝置,連接到該并行譯碼數(shù)據(jù)處 理設(shè)備以及該渦輪譯碼裝置,用于存儲輸入數(shù)據(jù)以及譯碼結(jié)果。
在不重疊子塊且沒有額外的存儲器的情況下,本發(fā)明也能夠?qū)崿F(xiàn)較好的 譯碼效果。另外,在重疊子塊的情況下,本發(fā)明能夠?qū)崿F(xiàn)更短的重疊長度, 并且在使用存儲器來存儲初始條件的情況下,本發(fā)明能夠使用更少的存儲器 容量。
通過以下結(jié)合附圖對實施例的描述,本發(fā)明的上述方面、優(yōu)點和效果將 變得更清晰且容易理解,在附圖中
圖l是示出傳統(tǒng)的迭代渦4侖i斧碼器的圖2是示出MAP算法的運算的流程圖3是根據(jù)傳統(tǒng)的OL的用于計算oii(s)的重疊的子塊的圖;圖4A、 4B是描述根據(jù)本發(fā)明的第一實施例的渦輪并行譯碼設(shè)備的示意 圖和渦輪并行i爭碼方法的流程圖5A、 5B是描述根據(jù)本發(fā)明的第二實施例的渦輪并行譯碼設(shè)備的示意 圖和渦輪并行譯碼方法的流程圖6A、 6B是描述根據(jù)本發(fā)明的第三實施例的渦輪并行譯碼設(shè)備的示意 圖和渦輪并行譯碼方法的流程圖7是描述根據(jù)本發(fā)明的第三實施例的渦輪并行譯碼設(shè)備中的子塊的示 意圖8是描述根據(jù)本發(fā)明的第三實施例的計算cti(s)和卩i(s)的邊界位置的示 意圖9是描述根據(jù)本發(fā)明的第三實施例的兩次相鄰的迭代處理的子塊的邊 界位置的示意圖;以及
圖10-17的每個是本發(fā)明與現(xiàn)有技術(shù)的仿真結(jié)果的圖。
具體實施例方式
下面描述本發(fā)明的各個實施例。
圖4A、 4B是描述根據(jù)本發(fā)明的第一實施例的渦輪并行譯碼設(shè)備的示意 圖和渦輪并行譯碼方法的流程圖。
如圖4A,本發(fā)明的第一實施例的渦輪并行譯碼設(shè)備包括碼字劃分裝置 41、渦輪譯碼裝置42、和邊界移動裝置43。碼字劃分裝置41將碼字劃分為 彼此不重疊的Q個子塊,這Q個子塊之間形成邊界(Q是正整數(shù),Q>1)。渦 輪譯碼裝置42中包括Q個子譯碼器(未示出),從而對這Q個子塊并行進行 譯碼處理。在渦輪譯碼裝置42中對這Q個子塊進行最大Imax次迭代譯碼處理, 假設(shè)進行了 P次迭代處理(P是正整數(shù),且P〉1)。其中,假設(shè)在渦輪并行譯 碼設(shè)備進行了第p次迭代處理時(p是正整數(shù),且1 < p〈P ),碼字被劃分之后 的子塊邊界如圖4A所示。在進行第p+n次迭代處理之前(n是正整數(shù),且l 《n<P-p),邊界移動裝置43移動在第p次迭代處理中劃分的多個子塊邊界 中的至少一個,優(yōu)選地移動在第p次迭代處理中劃分的所有子塊邊界(例如, 在第p+n次迭代處理中劃分的子塊邊界如圖4A中所示)。然后,渦輪并行譯 碼設(shè)備繼續(xù)進行剩余的迭代處理。圖4B詳細描述了根據(jù)本發(fā)明的第一實施例 的渦輪并行譯碼方法的流程。以下將這種移動邊界的機制稱為MB (moving
iiboundary)機制。
在傳統(tǒng)的渦輪碼并行譯碼設(shè)備中,性能的惡化通常來自于在子塊的譯碼 開始點處的不準確的初始條件。如果子塊邊界的初始條件是隨機或任意設(shè)置 的,則由于在每次迭代譯碼處理時碼字被劃分的子塊邊界的位置不變,因此 該不準確的軟輸出總是發(fā)生在相同的邊界位置上。而通過上述本發(fā)明的第一 實施例,在進行了一次或多次迭代譯碼處理之后,該邊界移動裝置43相對于 之前的一次迭代處理中劃分的子塊邊界來移動一個或多個子塊邊界,使得該 子塊的譯碼開始點處的該不準確的初始條件導(dǎo)致的不準確的軟輸出結(jié)果被分 布在不同的位置上,4吏這種不準確因素不會積累,^v而可以改進最終的譯碼 性能。
當然,在本發(fā)明的第一實施例的教導(dǎo)下,本領(lǐng)域技術(shù)人員可以想象,如 果設(shè)置從第1次迭代處理開始,每次迭代處理之前都移動子塊邊界的位置(例 如11=1),和/或在移動時移動所有子塊邊界的位置,將得到更好的譯碼性能。 本領(lǐng)域技術(shù)人員也可以考慮將每次移動一個或多個邊界位置的移動量A設(shè)定 為固定的步長,以便更簡單地進行硬件或軟件配置。
圖5A、 5B是描述根據(jù)本發(fā)明的第二實施例的渦輪并行譯碼設(shè)備的示意 圖和渦輪并行譯碼方法的流程圖。
如圖5A,本發(fā)明的第二實施例的渦輪并行譯碼設(shè)備包括包括了重疊裝 置501的碼字劃分裝置51、渦輪譯碼裝置52、和邊界移動裝置53。碼字劃 分裝置51通過其中的重疊裝置501將碼字劃分為彼此重疊的Q個子塊(Q是 正整數(shù),Q>1 ),其中,保持子塊的有效數(shù)據(jù)部分長度M不變,中間的子塊(例 如,第q個子塊,2<q《Q-l)與前一個子塊(例如,第q-l個子)和后一個 子塊(例如,第q+l個子塊)相互重疊的長度為L (L>0)。渦輪譯碼裝置52 中包括Q個子譯碼器(未示出),從而對這Q個子塊并行進行譯碼處理。在 渦輪譯碼裝置52中對這Q個子塊進行最大Im^次迭代譯碼處理,假設(shè)進行了 P次迭代處理(P是正整數(shù),且PM)。其中,假設(shè)在渦輪并行譯碼設(shè)備進行 了第p次迭代處理時(p是正整數(shù),且1 < p<P ),碼字被劃分之后的子塊邊界 如圖5A所示。在進行第p+n次迭代處理之前(n是正整數(shù),且l《n《P-p), 邊界移動裝置53移動在第p次迭代處理中劃分的多個子塊邊界中的至少一 個,優(yōu)選地移動在第p次迭代處理中劃分的所有子塊邊界(例如,在第p+n 次迭代處理中劃分的子塊邊界如圖5A中所示)。然后,渦輪并行譯碼設(shè)備繼續(xù)進行剩余的迭代處理。圖5B詳細描述了根據(jù)本發(fā)明的第二實施例的渦輪并 行譯碼方法的流程。
圖8示出了傳統(tǒng)的OL或SBI中在一次迭代處理中計算前向變量a,. O)和 后向變量A ("的子塊邊界位置。圖9示出了根據(jù)本發(fā)明的第二實施例的例子、
在兩次迭代處理之間的子塊邊界變化。
假設(shè),圖8中的《和《+1是第q個子塊在第p次迭代期間的邊界位置,即
前向計算的起始點和后向計算的起始點,起始點為與前子塊重疊的起點。具 體地,假設(shè)計算第q個子塊的前向變量^(力的起始點為《,其中,第l個子
塊的前向變量a,O)的起始點為1,且第Q個子塊的前向變量^Cs)的起始點 為《。同理,計算第q個子塊的后向變量A("的起始點為Z^,其中,第1
個子塊的后向變量"'(力的起始點為《,且第Q個子塊的后向變量A (s)的起
始點為N。在第1次迭代譯碼之前,對于處理a,第一個子塊短,之后為等
長子塊。對于P,則相反。且處理a和處理p是獨立的,因此其邊界可以不
同。然而這些起始點在傳統(tǒng)的OL或SBI機制中是不變的。
參照圖9。根據(jù)本發(fā)明的實施例,子塊之間相互重疊的長度為L,子塊有
效數(shù)據(jù)部分長度為M,且假設(shè)在第2次迭代過程中用A的移動量移動了在第
1次迭代過程中的每個子塊的邊界。因此,在第1次迭代過程中, 《=(q-l)M+(q-2)L+l,且《+,q(M+L), 2《q《Q-l,且在第2次迭代過程中,
《=(q-l)M+(q-2)L+l_A ,且《,q(M+L) -△ , 2《q《Q-l 。在替換的實施例
中,在第l次迭代過程中,《=(q-l)M-L+l, 2《q《Q-l,且在第2次迭代過
程中,《=(q-l)M-L+l—△, 2《q《Q-l。當然,圖9中的示意僅是示例,在
本發(fā)明中,可以在相鄰的迭代過程中移動子塊邊界,也可以隔一個或多個迭 代過程來移動子塊邊界;在移動時,可以僅移動一個或少量子塊邊界,也可 以移動所有子塊邊界;在移動時,可以移動不固定的步長,即A不固定,也 可以移動固定的步長,即A固定。如果在第1次迭代處理之后每次迭代處理 都用固定的移動量A來移動所有子塊的邊界,則《^q-l)M+(q-2)L+l-△
(p-l),且6二 =q(M+L) — △ (p-l) , 2<q《Q-l。在替換實施例中,則 《=(q-l)M-L+l-A(p-1), 2<q《Q-l。注意,上述起始點^又為示例,在實際
中,由于碼字的長度、L和M的取值的不同,起始點的表達式也不同。本領(lǐng) 域技術(shù)人員根據(jù)本說明書的教導(dǎo),可以對起始點的表達式進行各種修改和變 換,只要在不同的迭代譯碼處理中適當移動邊界的位置,都可以實現(xiàn)本發(fā)明
13的目的。
在傳統(tǒng)的渦輪碼并行譯碼設(shè)備中,性能的惡化通常來自于在子塊的譯碼
開始點處的不準確的初始條件。在傳統(tǒng)的使用OL方法的并行譯碼機制中, 在子塊的重疊部分的起始位置處的初始條件是隨機或任意設(shè)置的。即使在譯 碼子塊的有效數(shù)據(jù)部分之前,通過重疊長度L的計算結(jié)果得到了該子塊的有 效數(shù)據(jù)部分的邊界的近似初始條件,但由于在每次迭代譯碼處理時碼字被劃 分的子塊邊界的位置不變,因此不準確的軟輸出仍然發(fā)生在相同的邊界位置 上,為了消除每次迭代中偏差的累積效果所造成的性能惡化,傳統(tǒng)的OL必 須使用比較長的重疊長度L。而通過上述本發(fā)明的第二實施例,利用先計算 子塊的重疊部分的變量的方法來得到子塊的有效數(shù)據(jù)部分起始點處的近似初 始條件,在進行了一次或多次迭代譯碼處理之后,該邊界移動裝置53相對于 之前的一次迭代處理中劃分的子塊邊界來移動一個或多個子塊邊界,使得該 子塊的譯碼開始點處近似的初始條件導(dǎo)致的不準確的軟輸出結(jié)果被分布在不 同的位置上,且這種不準確的影響不會積累,因此,可以進一步改進最終的 譯碼性能。
當然,在本發(fā)明的第二實施例的教導(dǎo)下,本領(lǐng)域技術(shù)人員可以想象,如 果設(shè)置從第1次迭代處理開始,每次迭代處理之前都移動子塊邊界的位置(例 如11=1),和/或在移動時移動所有子塊邊界的位置,將得到更好的譯碼性能。 本領(lǐng)域技術(shù)人員也可以考慮將每次移動一個或多個邊界位置的移動量A設(shè)定 為固定的步長,以便更簡單地進行硬件或軟件配置。
圖6A、 6B是描述根據(jù)本發(fā)明的第三實施例的渦輪并行譯碼設(shè)備的示意 圖和渦輪并行譯碼方法的流程圖。
如圖6A,本發(fā)明的第三實施例的渦輪并行譯碼設(shè)備包括包括了重疊裝 置601的碼字劃分裝置61、渦輪譯碼裝置62、邊界移動裝置63、和存儲裝 置64。碼字劃分裝置61通過其中的重疊裝置601將碼字劃分為彼此重疊的Q 個子塊(Q是正整數(shù),Q>1),其中,保持子塊的有效數(shù)據(jù)部分長度M不變, 中間的子塊(例如,第q個子塊,2<q《Q_l)與前一個子塊(例如,第q-l 個子)和后一個子塊(例如,第q+l個子塊)相互重疊的長度為L (L>0)。 渦輪譯碼裝置62中包括Q個子譯碼器(未示出),從而對這Q個子塊并行進 行i奪碼處理。在渦輪譯碼裝置62中對這Q個子塊進行最大Imax次迭代譯碼處 理,假設(shè)進行了 P次迭代處理(P是正整數(shù),且P〉1)。其中,假設(shè)在渦輪并行譯碼設(shè)備進行了第p次迭代處理時(p是正整數(shù),且1《p<P ),碼字被劃分
之后的子塊邊界如圖6A所示。在進行第p+n次迭代處理之前(n是正整數(shù), 且1《n《P-p),邊界移動裝置63移動在第p次迭代處理中劃分的多個子塊 邊界中的至少一個,優(yōu)選地移動在第p次迭代處理中劃分的所有子塊邊界(例 如,在第p+n次迭代處理中劃分的子塊邊界如圖6A中所示)。然后,渦輪并 行譯碼設(shè)備繼續(xù)進行剩余的迭代處理。
另外,在每次迭代處理過程中,都可以采用一種對上述SBI方法改進的 存儲索引(store index)的機制(以下稱為SI機制)來以更少的比特存儲邊 界信息。這種SI機制可以被施加于任何渦輪并行譯碼方法,例如傳統(tǒng)的直接 并行譯碼方法、OL并行譯碼方法、根據(jù)本發(fā)明的第一實施例或第二實施例的 并行譯碼方法等,來進一步減少存儲邊界信息所需的存儲器的容量。
通過圖7來詳細描述了根據(jù)本發(fā)明的第三實施例的、在利用了 OL機制 的情況下的這種OL+SI機制(當然也可以單獨利用SI機制,而不利用OL機 制)。圖7僅示出了計算一個子塊的前向變量a"的示例情況,但本發(fā)明不局 限于此,而還可以適用于計算后向變量^w。在圖7中,該子塊的有效數(shù)據(jù)部 分從k到k+M-l;從k-L到k-l的部分與前一子塊重疊。
在第p+l次迭代期間,該計算從位置k-L開始,且使用如下作為初始條
件
1og(aS"(s)^0
其中^-argmax(log(a20)"是在前一迭代處理的計算結(jié)果(例如,第p次
迭代處理)中最可能的狀態(tài),即具有最大概率的狀態(tài)。^,(力表示對第q個 子塊的第p+l次迭代譯碼處理中要在前向處理或后向處理中使用的初始條件 (s)的概率。也就是說,當初始條件(s)為具有最大概率的狀態(tài)時,初始條件 (s)的可靠度(或概率)為1。如此,根據(jù)本發(fā)明的第三實施例的存儲裝置64 可以僅存儲該最可能的狀態(tài)8*的索引,僅需要m比特的容量,而不是SBI中 的2"V比特,其中m是存儲一種狀態(tài)所需的比特數(shù),v是用于量化該變量的 比特數(shù)。
或者,在第p+l次迭代期間,該計算從位置k-L開始,且使用如下作為 初始條件J
其中= argmax(log(a2(力))和argmax{log("S(s))}分別是在前一迭代
處理的計算結(jié)果(例如,第p次迭代處理)中最可能的狀態(tài)和第二最可能的 狀態(tài),即具有最大概率的狀態(tài)和具有第二大概率的狀態(tài)。也就是說,當初始 條件(s)為具有最大概率的狀態(tài)時,初始條件(s)的可靠度(或概率)為1。當 初始條件(s)不是具有最大概率的狀態(tài)(s、即S,Z時,其初始條件與具有第
二大概率狀態(tài)(S,)的可靠度(概率)以及具有最大概率狀態(tài)(S* )的可靠度
(概率)的比值有關(guān)。如此,根據(jù)本發(fā)明的第三實施例的存儲裝置64可以僅
存儲該最可能的狀態(tài)8*的索引和指示8*有多可能的可靠度(或可能度)的
1og"2(s') —1oga^( )(或log(0')/0承)〉、或"2("/ 2(^)),僅 需要m+v比特的容量,而不是SBI中的2mv比特,其中m是存儲一種狀態(tài)所 需的比特數(shù),v是用于量化該變量的比特數(shù)。這種方式用上述初始條件來替 代現(xiàn)有技術(shù)中在位置k-L處隨機或任意設(shè)置的初始條件,用少量的存儲空間 來實現(xiàn)更近似的初始條件。
圖6B詳細描述了根據(jù)本發(fā)明的第三實施例的渦輪并行譯碼方法的流程。
通過上述本發(fā)明的第三實施例,用存儲裝置64中所存儲的從前一次迭代 處理獲得的初始條件來從子塊的重疊部分的起始點(例如k-L )起計算子塊的 重疊部分的變量,從而能夠得到子塊的有效數(shù)據(jù)部分起始點(例如k)處的 更近似的初始條件,在進行了一次或多次迭代譯碼處理之后,該邊界移動裝 置63相對于之前的一次迭代處理中劃分的子塊邊界來移動一個或多個子塊 邊界,使得該子塊的譯碼開始點處近似的初始條件導(dǎo)致的不準確的軟輸出結(jié) 果被分布在不同的位置上,且不好的影響不會堆積,因此,還可以進一步改 進最終的譯碼性能。
當然,在本發(fā)明的第三實施例的教導(dǎo)下,本領(lǐng)域技術(shù)人員可以想象,如 果設(shè)置從第1次迭代處理開始,每次迭代處理之前都移動子塊邊界的位置(例 如11=1),和/或在移動時移動所有子塊邊界的位置,將得到更好的譯碼性能。 本領(lǐng)域技術(shù)人員也可以考慮將每次移動一個或多個邊界位置的移動量A設(shè)定 為固定的步長,以便更簡單地進行硬件和/或軟件配置。
另外,需要注意的是,上述SI機制可以單獨應(yīng)用于傳統(tǒng)的并行譯碼設(shè)備
16和方法中,從而利用少量的存儲裝置容量來得到近似的初始條件。在這種情 況下,只要劃分了子塊后得知了子塊的邊界起始點k (例如,不重疊的情況
下的有效數(shù)據(jù)部分的起始點k、重疊情況下的重疊部分的起始點k-L等),用 k替代上述^^式的k-L,則得到了近似的初始條件。
圖10-17是本發(fā)明與現(xiàn)有技術(shù)的仿真結(jié)果的圖。該仿真采用在cdma2000 中定義的滿輪碼,且譯碼器采用max-log-map ( Max Logarithmic Maximum A Posteriori)算法。交織器長度是N-2014,碼率是1/3和3/4。最大迭代次數(shù) 為1皿=8。子塊的數(shù)量是(^=21。移動步長是A二7。
圖10是碼率為1/3的情況下的(根據(jù)本發(fā)明的第三實施例的)OL+SI+MB 的機制的仿真幀錯誤率(Frame Error Rate) (FER)。對于FER二0.01,很小的 重疊長度L二4就接近串行譯碼(SD)的性能(損失在0.02dB內(nèi),圖示中橫 坐標的單位長度為O.ldB,其他圖示相同),其效果幾乎等同于傳統(tǒng)的方法OL 且很長的重疊長度L42,或SBI所能達到的效果。
圖11是碼率=3/4的仿真結(jié)果??梢钥闯?,很小的重疊長度I^8,就能使 FER性能和SD相比大約只差O.ldB。注意,SI和MB可以單獨使用。
圖12示出碼率=1/3的OL+MB (沒有SI)機制在L=8的情況下,和SD 相比,F(xiàn)ER=0.01處的性能損失約為0.05dB,而僅傳統(tǒng)的OL且L=8的情況下 (即,具有與OL+MB的相同的譯碼速度和相同的計算復(fù)雜度)具有很差的 性能。
圖13示出了當L=16時OL+MB的性能,F(xiàn)ER=0.01處的性能與SD相差 約為0,2dB。而傳統(tǒng)OL在相同的重疊長度下,性能損失超過0.8dB。
圖14是1/3碼率的僅SI和SI+MB的性能。圖15是3/4碼率的性能。在 這兩種機制(僅SI和SI+MB)中,子塊不重疊(L=0)。對于1/3碼率,僅 SI和SI+MB的性能與SD相比損失都在O.ldB以內(nèi)。對于3/4碼率,性能損 失分別是0.3dB和0.2dB。在低碼率的情況下,SI的性能幾乎與SI+MB相同, 也就是說,MB帶來的進一步性能改善非常小,這是因為此時SI的性能已經(jīng) 很好了,可改善的空間很小。因此,對于低碼率的情形, 一種可能的設(shè)計是 僅使用SI,而不采用重疊(OL)和移動邊界(MB)技術(shù)。但是對于高碼率, MB或少量重疊則纟艮重要。
圖16和17表明在很小的重疊(L較小)的情況下,OL+SI已經(jīng)達到了 較好的性能。具體而言,對于1/3碼率,OL+SI且L=4的性能與傳統(tǒng)的OL
17且I^32的性能一樣好,但前者的速度提高了 20%。
比特錯誤率(Bit Error Rate) BER的仿真性能(未示出)結(jié)果與FER性
能類似。
本發(fā)明提出了兩種新的機制,存儲最可能的狀態(tài)的索引的SI機制和移動 子塊的邊界的MB機制。在SI和MB的幫助下,可以大大地減少重疊長度, 因此可以提高譯碼速度。本領(lǐng)域技術(shù)人員可以與現(xiàn)有技術(shù)中的OL機制結(jié)合, 自由地設(shè)計上述機制的組合來滿足不同的折衷需求??赡艿脑O(shè)計有MB、 OL+MB、 SI+MB、 OL+SI+MB、 SI或OL+SI等,它們具有不同的性能、譯 碼速度和存儲器需求。
本領(lǐng)域技術(shù)人員應(yīng)該理解,在所附權(quán)利要求或其等同物的范圍內(nèi),可以 基于設(shè)計需要和其他因素進行各種修改、組合、子組合和變更。
權(quán)利要求
1. 一種渦輪碼的并行譯碼數(shù)據(jù)處理方法,所述方法包括碼字劃分步驟,用于將整個碼字劃分為Q個子塊以使所述Q個子塊中的相鄰子塊形成多個邊界,從而對所述Q個子塊并行進行譯碼處理,其中所述譯碼處理包括P次迭代譯碼處理,Q是正整數(shù),且Q>1,P是正整數(shù),且P>1;以及邊界移動步驟,用于在第p+n次迭代譯碼處理之前,以移動量Δ來移動在第p次迭代譯碼處理中形成的所述多個邊界中的至少一個的位置,其中p是正整數(shù),且1≤p<P,n是正整數(shù),且1≤n≤P-p,所述移動量Δ是固定的步長。
2. 根據(jù)權(quán)利要求1所述的并行譯碼數(shù)據(jù)處理方法,所述碼字劃分步驟還 包括重疊步驟,用于使所述Q個子塊中的相鄰子塊相互重疊,以便所述第q 個子塊的有效數(shù)據(jù)長度M不變,且分別與第q-l個子塊和第q+l個子塊相互 重疊的長度為L, LX),其中,2<q<Q-l,且q是正整數(shù)。
3. 根據(jù)權(quán)利要求2所述的并行譯碼數(shù)據(jù)處理方法,其中在第p次迭代譯碼處理中第q個子塊在前向處理中的起始點與M和q的 乘積以及L與q的乘積有關(guān),而在第p次迭代譯碼處理中第q個子塊在后向 處理中的起始點與M與L之和與q的乘積有關(guān),其中,當在第p+n次迭代譯 碼處理中移動了所述多個邊界的每個,則在第p+n次迭代譯碼處理中第q個 子塊在前向處理中的起始點移動該移動量A,在第p+n次迭代譯碼處理中第 q個子塊在后向處理中的起始點移動該移動量A 。
4. 根據(jù)權(quán)利要求3所述的并行譯碼數(shù)據(jù)處理方法,其中1《q、Q,且q, 是整數(shù),所述方法還包括存儲步驟,用于在對第q,個子塊的第p,次迭代譯碼處理中,存儲所述第p,次 迭代譯碼處理的前向處理或后向處理的計算結(jié)果中具有最大概率的狀態(tài)(s* ) 的索引,其中在對第q,個子塊的第p,+l次迭代譯碼處理的前向處理或后向處 理中,當初始條件(s)為具有最大概率的狀態(tài)時,初始條件(s)的可靠度為1, 其中,p,是正整數(shù),且l《p,〈P。
5. 根據(jù)權(quán)利要求4所述的并行譯碼數(shù)據(jù)處理方法,其中存儲步驟還包括當初始條件(s)不是具有最大概率的狀態(tài)(s"時,即S^Z時,其初始條件與具 有第二大概率狀態(tài)(S,)的可靠度以及具有最大概率狀態(tài)(S*)的可靠度的比值有關(guān)。
6. —種渦輪碼的并行譯碼數(shù)據(jù)處理方法,所述方法包括 碼字劃分步驟,用于將整個碼字劃分為Q個子塊以使所述Q個子塊中的相鄰子塊形成多個邊界,從而對所述Q個子塊并行進行譯碼處理,其中所述 譯碼處理包括P次迭代譯碼處理,Q是正整數(shù),且Q>1, P是正整數(shù),且P>1; 以及存儲步驟,用于在對第q個子塊的第p次迭代譯碼處理中,存儲所述第 p次迭代譯碼處理的前向處理或后向處理的計算結(jié)果中具有最大概率的狀態(tài) (s*)的索引,并在對第q個子塊的第p+l次迭代譯碼處理的前向處理或后 向處理中,當初始條件(s)為具有最大概率的狀態(tài)時,初始條件(s)的可靠度為 1,Kq《Q,且q是整數(shù),p是正整數(shù),且Kp〈P。
7. —種渦輪碼的并行譯碼數(shù)據(jù)處理方法,所述方法包括 碼字劃分步驟,用于將整個碼字劃分為Q個子塊以使所述Q個子塊中的相鄰子塊形成多個邊界,從而對所述Q個子塊并行進行譯碼處理,其中所述 譯碼處理包括P次迭代譯碼處理,Q是正整數(shù),且Q>1, P是正整數(shù),且P>1; 以及存儲步驟,用于在對第q個子塊的第p次迭代譯碼處理中,存儲所述第 p次迭代譯碼處理的前向處理或后向處理的計算結(jié)果中具有最大概率的狀態(tài) (s* )的索引,并在對所述第q個子塊的第p+l次迭代譯碼處理的前向處理 或后向處理中,當初始條件(s)為具有最大概率的狀態(tài)時,初始條件(s)的可靠 度為1,當初始條件(s)不是具有最大概率的狀態(tài)(s、即s弇s^時,其初始條件 與具有第二大概率狀態(tài)(s,)的可靠度以及具有最大概率狀態(tài)(s*)的可靠度 的比值有關(guān)。
8. 根據(jù)權(quán)利要求6或7所述的并行譯碼數(shù)據(jù)處理方法,其中所述碼字劃 分步驟還包括重疊步驟,用于使所述Q個子塊中的相鄰子塊相互重疊,以便所述第q 個子塊的有效數(shù)據(jù)長度M不變,且分別與第q-l個子塊和第q+l個子塊相互 重疊的長度為L, L》0,其中,2<q《Q-l,且q是正整數(shù)。
9. 一種渦輪碼的并行譯碼數(shù)據(jù)處理設(shè)備,所述設(shè)備包括碼字劃分裝置,用于將整個碼字劃分為Q個子塊以使所述Q個子塊中的 相鄰子塊形成多個邊界,從而對所述Q個子塊并行進行譯碼處理,其中所述 譯碼處理包括P次迭代譯碼處理,Q是正整數(shù),且QM, P是正整數(shù),且PM; 以及邊界移動裝置,用于在第p+n次迭代譯碼處理之前,以移動量A來移動 在第p次迭代譯碼處理中形成的所述多個邊界中的至少一個的位置,其中p 是正整數(shù),且l《p〈P, n是正整數(shù),且l《n《P-p,所述移動量A是固定的步 長。
10. 根據(jù)權(quán)利要求9所述的并行譯碼數(shù)據(jù)處理設(shè)備,所述碼字劃分裝置 還包括重疊裝置,用于使所述Q個子塊中的相鄰子塊相互重疊,以便所述第q 個子塊的有效數(shù)據(jù)長度M不變,且分別與第q-l個子塊和第q+l個子塊相互 重疊的長度為L, L》0,其中,2《q<Q-l,且q是正整數(shù)。
11. 根據(jù)權(quán)利要求IO所述的并行譯碼數(shù)據(jù)處理設(shè)備,其中在第p次迭代譯碼處理中第q個子塊在前向處理中的起始點與M和q的 乘積以及L與q的乘積有關(guān),而在第p次迭代譯碼處理中第q個子塊在后向 處理中的起始點與M與L之和與q的乘積有關(guān),其中,當在第p+n次迭代譯 碼處理中移動了所述多個邊界的每個,則在第p+n次迭代譯碼處理中第q個 子塊在前向處理中的起始點移動該移動量A,在第p+n次迭代譯碼處理中第 q個子塊在后向處理中的起始點移動該移動量A。
12. 根據(jù)權(quán)利要求11所述的并行譯碼數(shù)據(jù)處理設(shè)備,其中l(wèi)《q,《Q,且 q,是整數(shù),所述設(shè)備還包括存儲裝置,用于在對第q,個子塊的第p,次迭代譯碼處理中,存儲所述第 p,次迭代-澤碼處理的前向處理或后向處理的計算結(jié)果中具有最大概率的狀態(tài) (s*)的索引,并在對第q,個子塊的第p,+l次迭代譯碼處理的前向處理或后 向處理中,當初始條件(s)為具有最大概率的狀態(tài)時,初始條件(s)的可靠度為 1,其中,p,是正整數(shù),且Kp,〈P。
13.根據(jù)權(quán)利要求12所述的并行譯碼數(shù)據(jù)處理設(shè)備,其中存儲裝置還包 括當初始條件(s)不是具有最大概率的狀態(tài)(s、時,即s^纊時,其初始條件 與具有第二大概率狀態(tài)(s,)的可靠度以及具有最大概率狀態(tài)(s*)的可靠度 的比值有關(guān)。
14. 一種渦輪碼的并行譯碼設(shè)備,所述設(shè)備包括并行譯碼數(shù)據(jù)處理設(shè)備,用于接收輸入數(shù)據(jù),該并行譯碼數(shù)據(jù)處理設(shè)備 更包括碼字劃分裝置,用于將整個碼字劃分為Q個子塊以使所述Q個子塊 中的相鄰子塊形成多個邊界,從而對所述Q個子塊并行進行譯碼處理,其中 所述譯碼處理包括P次迭代譯碼處理,Q是正整數(shù),且Q〉1, P是正整數(shù), 且P〉1;以及邊界移動裝置,用于在第p+n次迭代譯碼處理之前,以移動量A來移 動在第p次迭代譯碼處理中形成的所述多個邊界中的至少一個的位置,其中 p是正整數(shù),且l《p〈P, n是正整數(shù),且Kn《P-p,所述移動量A是固定的步長;渦輪譯碼裝置,連接到該并行譯碼數(shù)據(jù)處理裝置,用于接收譯碼子塊數(shù) 據(jù),該渦輪譯碼裝置包括多個解交織器以及多個子譯碼器,對并行譯碼數(shù)據(jù)處理設(shè)備產(chǎn)生的譯碼子塊數(shù)據(jù)進行渦輪譯碼;以及存儲裝置,連接到該并行譯碼數(shù)據(jù)處理設(shè)備以及該渦輪譯碼裝置,用于 存儲輸入數(shù)據(jù)以及譯碼結(jié)果。
全文摘要
提供一種渦輪碼的并行譯碼數(shù)據(jù)處理方法和設(shè)備以及并行譯碼設(shè)備,所述方法包括碼字劃分步驟,用于將整個碼字劃分為Q個子塊以使所述Q個子塊中的相鄰子塊形成多個邊界,從而對所述Q個子塊并行進行譯碼處理,其中所述譯碼處理包括P次迭代譯碼處理,Q是正整數(shù),且Q>1,P是正整數(shù),且P>1;以及邊界移動步驟,用于在第p+n次迭代譯碼處理之前,以移動量Δ來移動在第p次迭代譯碼處理中形成的所述多個邊界中的至少一個的位置,其中p是正整數(shù),且1≤p<P,n是正整數(shù),且1≤n≤P-p,所述移動量Δ是固定的步長。
文檔編號H03M13/29GK101442321SQ200810190658
公開日2009年5月27日 申請日期2008年12月26日 優(yōu)先權(quán)日2007年12月27日
發(fā)明者楊鴻文, 楊鴻魁, 樂 王 申請人:美商威睿電通公司