專利名稱:Turbo碼編碼中的交織方法及相關(guān)裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信系統(tǒng)中信號(hào)編碼技術(shù),特別涉及通信系統(tǒng)中對(duì)信號(hào)進(jìn)行Turbo碼編碼交織的技術(shù)。
背景技術(shù):
信息論誕生50多年以來,人們一直努力尋找更加接近香農(nóng)(Shannon)限、誤差概率小的編碼方法。在1993年國(guó)際通信年會(huì)(International Conference onCommunication)上,C.Berrou,A.Glavieux和P.Thitimajshiwa提出了一種稱之為Turbo碼的編、譯碼方案,并進(jìn)行了計(jì)算機(jī)仿真,仿真結(jié)果表明,其編碼增益與香農(nóng)信道容量的差距小于1dB。
由于Turbo碼的性能接近香農(nóng)理論限,在低信噪比的應(yīng)用環(huán)境下比其他編碼好,因而第三代移動(dòng)通信系統(tǒng)多種方案中,考慮將Turbo碼作為無線信道的編碼標(biāo)準(zhǔn)之一。第三代移動(dòng)通信系統(tǒng)候選方案普遍要求提供中速或者高速的數(shù)據(jù)業(yè)務(wù),一般的數(shù)據(jù)業(yè)務(wù)信道為64kbps、144kbps、384kbps。在低信噪比的無線信道中,Turbo碼的性能要優(yōu)異得多,與第二代移動(dòng)通信中的級(jí)聯(lián)RS加卷積碼相比,Turbo碼性能可提高1dB以上。同時(shí),Turbo碼具有優(yōu)異的糾錯(cuò)性能,適用于高速率對(duì)譯碼時(shí)延要求不高的數(shù)據(jù)傳輸業(yè)務(wù),并可降低對(duì)發(fā)射功率的要求、增加系統(tǒng)容量。
Turbo編碼器由兩個(gè)系統(tǒng)遞歸卷積(Recursive Systematic Convolution,簡(jiǎn)稱“RSC”)編碼器、交織器和刪除器組成。每個(gè)RSC編碼器有兩路交驗(yàn)位輸出,兩個(gè)輸出經(jīng)刪除復(fù)用后形成Turbo碼。事實(shí)上,當(dāng)碼率大于2/3時(shí),在任何大小信噪比情況下,由于RSC編碼的自由距離都比非系統(tǒng)卷積(Nonsystematic Convolution,“NSC”)編碼大,比特誤碼率(Bit Error Rate,簡(jiǎn)稱“BER”)比其小,顯出更好的性能,因而Turbo碼中采用了RSC編碼器。
Turbo譯碼器由兩個(gè)軟輸入、軟輸出的譯碼器、交織器、去交織器構(gòu)成,經(jīng)對(duì)輸入信號(hào)交替譯碼、軟輸出多輪譯碼、過零判決后得到譯碼輸出。
在Turbo碼編碼過程中,輸入信息編碼器的信息單元一方面直接輸入第一個(gè)RSC編碼器進(jìn)行編碼,生成一個(gè)校驗(yàn)序列;另一方面經(jīng)過交織器交織后,產(chǎn)生一個(gè)經(jīng)交織的系統(tǒng)序列,經(jīng)過第二個(gè)RSC編碼器產(chǎn)生另一個(gè)校驗(yàn)序列。編碼器由多個(gè)存儲(chǔ)單元構(gòu)成,其輸入為信息比特。為使編碼器初始狀態(tài)置于全零狀態(tài),需在信息序列之后增加尾信息比特,而要使兩個(gè)編碼器同步置零,要在不進(jìn)行交織的一路加上延時(shí)。
Turbo碼編碼的交織器通常是對(duì)輸入的原始信息序列進(jìn)行隨機(jī)置換后從前向后讀出。交織器的兩個(gè)主要作用是可以產(chǎn)生長(zhǎng)碼;使兩個(gè)RSC編碼器的輸入不相關(guān),編碼過程趨于獨(dú)立。交織使編碼產(chǎn)生隨機(jī)度,使碼隨機(jī)化、均勻化,起著對(duì)碼重量整形的作用,直接影響Turbo碼的性能。在譯碼端,由于交織使得信息相互關(guān)聯(lián),對(duì)于某一個(gè)子譯碼器來說不可糾正的錯(cuò)誤事件,交織后在另一個(gè)譯碼器被打散,成為可糾正差錯(cuò),由此提高容錯(cuò)性能。
Turbo碼編碼的交織方式主要有規(guī)則交織、不規(guī)則交織和隨機(jī)交織3種。通常規(guī)則交織即行寫列讀,實(shí)現(xiàn)起來簡(jiǎn)單,但編碼效果不好,隨機(jī)程度、均勻程度不夠。隨機(jī)交織指交織格式是隨機(jī)分配的,是理論上性能最好的交織方式,但是由于要將整個(gè)交織信息位置信息等傳送給譯碼器,占用了帶寬,降低了編碼效率,不適合實(shí)際應(yīng)用。實(shí)際應(yīng)用中一般采用不規(guī)則交織,這是一種偽隨機(jī)交織方式,對(duì)每一編碼塊采用固定的交織方式,但塊與塊之間交織器結(jié)構(gòu)不一樣。一方面為了獲得較高的編碼增益,往往增加交織器的長(zhǎng)度;另一方面在無線移動(dòng)通信系統(tǒng)對(duì)時(shí)延要求較高,交織器長(zhǎng)度不能太大,因此一般采用交織長(zhǎng)度為400左右的偽隨機(jī)短交織器。
信道編碼技術(shù)可改善數(shù)字信息在傳輸過程中由于噪聲和干擾而造成的誤差,提高系統(tǒng)可靠性和信道容量。因而提供高效的信道編譯碼技術(shù)成為第三代(3rd Generation,簡(jiǎn)稱“3G”)移動(dòng)通信系統(tǒng)中的關(guān)鍵技術(shù)之一。3G移動(dòng)通信系統(tǒng)所提供的業(yè)務(wù)種類的多樣性、靈活性,對(duì)差錯(cuò)控制編譯碼提出了更高的要求。3G候選方案寬帶碼分多址(Wideband Code Division MultipleAccess,簡(jiǎn)稱“WCDMA”)和碼分多址2000(Code Division Multiple Access,簡(jiǎn)稱“cdma2000”)都建議采用除Turbo編碼技術(shù)。
下面簡(jiǎn)單介紹3G移動(dòng)通信系統(tǒng)所采用的Turbo碼編碼技術(shù),該技術(shù)規(guī)范由第三代合作伙伴項(xiàng)目(3rd Generation Partnership Project,簡(jiǎn)稱“3GPP”)TS 25.212詳細(xì)描述。
cdma2000方案中,Turbo碼被用在CDMA系統(tǒng)前向、反向鏈路信道中。RSC編碼器基于8狀態(tài)的并行級(jí)聯(lián)卷積碼(8-state Parallel ConcatenatedConvolutional Code,簡(jiǎn)稱“PCCC”)。交織采用了比特翻轉(zhuǎn)技術(shù)。通過刪余處理,Turbo碼的碼率可以1/4,1/2,1/3。WCDMA方案中,對(duì)于業(yè)務(wù)服務(wù)質(zhì)量需求較高,并且允許時(shí)延較長(zhǎng)的數(shù)據(jù)業(yè)務(wù),RSC子編碼器使用8PCCC。
圖1示出了3G移動(dòng)通信系統(tǒng)所采用的Turbo碼編碼器組成結(jié)構(gòu)。該編碼器包含兩個(gè)基于8PCCC的RSC編碼器101和102和一個(gè)Turbo碼內(nèi)部交織器103,編碼速率為1/3。其中RSC編碼器101和102的傳遞函數(shù)為G(D)=[1,g1(D)g0(D)],]]>這里g0(D)=1+D2+D3,g1(D)=1+D+D3。D表示延時(shí)算子。RSC編碼器用移位寄存器實(shí)現(xiàn),在開始輸入時(shí)移位寄存器初始值被置為0。輸入比特流為x1,x2,...,xK,同時(shí)輸入RSC編碼器101和Turbo碼內(nèi)部交織器103,K為比特流長(zhǎng)度。經(jīng)過交織后從Turbo碼內(nèi)部交織器103輸出為x′1,x′2,...,x′K,交織后的信息進(jìn)入RSC編碼器102。輸出比特流z1,z2,...,zKand z′1,z′2,...,z′K分別從RSC編碼101和102輸出。
Turbo碼內(nèi)部交織器103的實(shí)現(xiàn)又分為交織地址表的計(jì)算和交織操作兩部分。所謂交織地址表的計(jì)算,即計(jì)算出交織前每個(gè)信息比特在交織之后的位置。交織操作,就是根據(jù)交織地址表,對(duì)輸入數(shù)據(jù)流進(jìn)行數(shù)據(jù)重排。
由于Turbo碼的譯碼性能除了受交織器隨機(jī)作用影響外,很大程度上取決于交織深度。在3G移動(dòng)通信系統(tǒng)中,業(yè)務(wù)速率由32kbit/s到2Mbit/s,10ms一幀,幀長(zhǎng)由20到20000。因此為了提高譯碼器性能,在一些低速業(yè)務(wù)中,可采用多幀組成一個(gè)數(shù)據(jù)塊,加大交織深度。
在WCDMA方案中,Turbo碼交織器是可截短型塊交織器。交織行數(shù)為5、10或20行,在行數(shù)確定的基礎(chǔ)上選擇列數(shù)。數(shù)據(jù)按行讀入交織器,按固定模式進(jìn)行行間轉(zhuǎn)換,不同輸入序列長(zhǎng)度對(duì)應(yīng)不同的行數(shù)和行間轉(zhuǎn)換模式。行轉(zhuǎn)換完成后,進(jìn)行列轉(zhuǎn)換。不同行對(duì)應(yīng)不同列間轉(zhuǎn)換參數(shù),采取的是接近隨機(jī)化的素?cái)?shù)取模算法。數(shù)據(jù)在完成行列轉(zhuǎn)換后,按列讀出。
cdma2000方案也是基于塊交織。交織行數(shù)為25-32行,列數(shù)N-2n,n為滿足使32N大于或等于幀長(zhǎng)度的最小值。數(shù)據(jù)按行讀入。行間轉(zhuǎn)換的依據(jù)是比特翻轉(zhuǎn)原則。列間轉(zhuǎn)換的置換為同模取余法,為了更接近隨機(jī)化,使每列的偏置取不同值。數(shù)據(jù)經(jīng)過行列轉(zhuǎn)換后,按列輸出。
可以看出當(dāng)前Turbo碼編碼中采用的交織方法均包含較多的取模運(yùn)算。在實(shí)際工程應(yīng)用中,Turbo碼編碼通常用數(shù)字信號(hào)處理器(Digital SignalProcessor,簡(jiǎn)稱“DSP”)或中央處理單元(Central Process Unit,簡(jiǎn)稱“CPU”)實(shí)現(xiàn),而DSP或CPU器件均通過定點(diǎn)除法實(shí)現(xiàn)取模運(yùn)算,比如A對(duì)B取模運(yùn)算是先計(jì)算A/B的值并取整得到[A/B],然后由A-[A/B]×B計(jì)算得到Amod B的值。由于除法運(yùn)算效率較低,使得Turbo碼編碼的交織速度較慢,不能滿足對(duì)實(shí)時(shí)性要求高的業(yè)務(wù)需求。
另外,考慮到實(shí)際業(yè)務(wù)數(shù)據(jù)交互過程中,數(shù)據(jù)量是隨機(jī)動(dòng)態(tài)變化的,導(dǎo)致Turbo碼交織表長(zhǎng)度動(dòng)態(tài)變化,而不同長(zhǎng)度下的交織表是完全不同的,因此需要實(shí)時(shí)計(jì)算Turbo碼交織表。這更需要加快Turbo碼交織表的運(yùn)算速度,而現(xiàn)有的Trubo碼編碼中的交織方法則由于處理速度慢而直接影響系統(tǒng)數(shù)據(jù)面的處理效率。
在實(shí)際應(yīng)用中,上述方案存在以下問題現(xiàn)有Turbo碼編碼中的交織方法運(yùn)算速度較慢,直接影響系統(tǒng)數(shù)據(jù)面的處理效率,不能滿足實(shí)時(shí)性要求高的業(yè)務(wù)需求。
造成這種情況的主要原因在于,現(xiàn)有Turbo碼編碼中的交織方法均采用了取模運(yùn)算,取模運(yùn)算大大增加了計(jì)算復(fù)雜度。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的主要目的在于提供一種Turbo碼編碼中的交織方法,使得Turbo碼編碼中的交織計(jì)算復(fù)雜度降低,提高Turbo碼編碼速度,進(jìn)而提高系統(tǒng)數(shù)據(jù)面的處理速度,適應(yīng)實(shí)時(shí)性業(yè)務(wù)需求。
為實(shí)現(xiàn)上述目的,本發(fā)明提供了一種Turbo碼編碼中的交織方法,包含以下步驟,A將輸入比特流填入交織矩陣;B對(duì)所述交織矩陣進(jìn)行行內(nèi)置換和行間置換;C從交織后的所述交織矩陣輸出比特流;其中,所有取模運(yùn)算均采用高效取模算法實(shí)現(xiàn)。
所述高效取模算法包含以下步驟,
對(duì)所有可能的模值進(jìn)行預(yù)取余處理,根據(jù)以下式子計(jì)算得到預(yù)取余值,建立模值到預(yù)取余值的映射表A=[2N/P],其中A為所述預(yù)取余值,P為所述模值,N為位數(shù),[g]表示取整運(yùn)算;對(duì)任意取模運(yùn)算,查詢所述模值到預(yù)取余值的映射表得到所述預(yù)取余值,并根據(jù)以下式子通過乘法和移位運(yùn)算計(jì)算取模結(jié)果L=M-((M×A)>>N)×P,其中L為所述取余結(jié)果,M為被取模值,A為所述預(yù)取余值,N為所述位數(shù),P為所述模值,X>>n表示移位運(yùn)算,即將左值X右移,移動(dòng)位數(shù)為右值n。
所述位數(shù)N的值可以根據(jù)實(shí)際精度需要而設(shè)定,N越大精度越高。
所述步驟A包含以下子步驟,據(jù)輸入比特流長(zhǎng)度確定所述交織矩陣的行數(shù);根據(jù)所述輸入比特流長(zhǎng)度確定用于行內(nèi)置換的質(zhì)數(shù)和所述交織矩陣的列數(shù);將輸入比特流按行填入所述交織矩陣,并將多余比特填滿。
所述步驟B包含以下子步驟,B1根據(jù)所述用于行內(nèi)置換的質(zhì)數(shù)查表得到相應(yīng)的初始根;B2根據(jù)以下遞推公式構(gòu)建用于行內(nèi)置換的基序列S(0)=1,對(duì)于j>0有S(j)=(v×S(j-1))fmod p,其中S(j),j=0,1,..,p-2表示所述用于行內(nèi)置換的基序列,p為所述用于行內(nèi)置換的質(zhì)數(shù),v為所述初始根,fmod為采用所述高效取模算法實(shí)現(xiàn)的取模運(yùn)算,其左值為所述被取模值,右值為所述模值;B3選擇連續(xù)的最小質(zhì)數(shù)集;<qi>,i=1,2,..,R-1q0=1,對(duì)于任意i>0選擇滿足條件“qi和p-1的最大公約數(shù)為1,且qi>6,qi>qi-1”的最小質(zhì)數(shù)作為qi值。
B4根據(jù)所述輸入比特流長(zhǎng)度和所述交織矩陣的行數(shù)選擇行間交換模式T(i),i=0,1,..,R-1;B5將所述最小質(zhì)數(shù)集<qi>轉(zhuǎn)換得到轉(zhuǎn)換后最小質(zhì)數(shù)集<ri>;B6根據(jù)所述交織矩陣的列數(shù)不同選擇不同的行內(nèi)置換模式,進(jìn)行所述行內(nèi)置換,所述交織矩陣的列數(shù)與所述行內(nèi)置換模式對(duì)應(yīng)關(guān)系如下當(dāng)C=p時(shí),Ui(j)=S((j×ri)fmod(p-1)),j=0,1,..,p-2,且Ui(p-1)=0,當(dāng)C=p+1時(shí),Ui(j)=S((j×ri)fmod(p-1)),j=0,1,..,p-2,且Ui(p-1)=0,Ui(p)=p,另外若K=C×R成立,即沒有填入空比特時(shí),還要交換UR-1(p)和UR-1(0),當(dāng)C=p-1時(shí),Ui(j)=S((j×ri)fmod(p-1))-1,j=0,1,..,p-2,其中C為所述交織矩陣的列數(shù),Ui(j)為所述行內(nèi)置換模式,即表示第i行的第j列在經(jīng)過所述行內(nèi)置換后為的Ui(j)列,S(g)為所述用于行內(nèi)置換的基序列,ri為所述轉(zhuǎn)換后最小質(zhì)數(shù)集,p為所述用于行內(nèi)置換的質(zhì)數(shù),K為所述輸入比特流長(zhǎng)度,R為所述交織矩陣的行數(shù),fmod為采用所述高效取模算法實(shí)現(xiàn)的取模運(yùn)算,其左值為所述被取模值,右值為所述模值;B7根據(jù)所述行間置換模式進(jìn)行行間置換。
所述步驟B2中的所述高效取模算法中的所述位數(shù)N=18;所述步驟B6中的所述高效取模算法中的所述位數(shù)由以下式子確定N=18p<612067≤p≤13122137≤p≤257,]]>其中N所述位數(shù),p為所述用于行內(nèi)置換的質(zhì)數(shù),所述步驟B6中的取模運(yùn)算中的所述模值均為p-1。
所述步驟C包含以下子步驟,從所述交織矩陣按列讀取輸出比特流;將所述多余比特去除。
本發(fā)明還提出了一種高效取模裝置,包含乘法器,用于將輸入的兩數(shù)相乘后輸出;移位器,用于將輸入的數(shù)作向右移位操作,所移動(dòng)的位數(shù)至少為1;減法器,用于將輸入的被減數(shù)減去輸入的減數(shù)后輸出;預(yù)取余器,用于將輸入的模值作預(yù)取余處理,根據(jù)以下式子計(jì)算并輸出預(yù)取余值A(chǔ)=[2N/P],其中A為所述預(yù)取余值,P為所述模值,N為所述位數(shù),[g]表示取整運(yùn)算;為了將輸入的被取模值M和所述模值P作取模運(yùn)算后輸出取模結(jié)果L,所述預(yù)取余器先將輸入的所述模值P作預(yù)取余處理后輸出所述預(yù)取余值A(chǔ);第一個(gè)所述乘法器將輸入的所述預(yù)取余值A(chǔ)和所述被取模值M相乘后輸入到所述移位器;所述移位器將第一個(gè)所述乘法器輸出的結(jié)果右移N位后再輸入到第二個(gè)所述乘法器;第二個(gè)所述乘法器將所述移位器輸出的結(jié)果和所述模值P相乘后輸入到所述減法器;所述減法器將所述被取模值減去第二個(gè)所述乘法器輸出的結(jié)果后輸出所述取模結(jié)果L。
通過比較可以發(fā)現(xiàn),本發(fā)明的技術(shù)方案與現(xiàn)有技術(shù)的主要區(qū)別在于,采用預(yù)取余處理和乘法、移位等簡(jiǎn)單運(yùn)算實(shí)現(xiàn)高效取模算法,基于不同精度需求的高效取模算法完成快速取模運(yùn)算,并在此基礎(chǔ)上發(fā)展Turbo碼編碼的交織方法。
這種技術(shù)方案上的區(qū)別,帶來了較為明顯的有益效果,即通過高效取模算法對(duì)取模運(yùn)算的改進(jìn),降低了取模運(yùn)算的復(fù)雜度,大大提高了Turbo碼編碼中交織表的計(jì)算效率,從而提高系統(tǒng)數(shù)據(jù)面的處理速度。
圖1是3G移動(dòng)通信系統(tǒng)采用的Turbo碼編碼器結(jié)構(gòu)示意圖;圖2是根據(jù)本發(fā)明的一個(gè)實(shí)施例的高效取模算法流程圖;圖3是根據(jù)本發(fā)明的一個(gè)實(shí)施例的高效取模算法實(shí)現(xiàn)裝置圖;圖4是根據(jù)本發(fā)明的一個(gè)實(shí)施例的Turbo碼編碼中的交織方法流程圖。
具體實(shí)施例方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步地詳細(xì)描述。
本發(fā)明通過采用乘法和移位等簡(jiǎn)單運(yùn)算實(shí)現(xiàn)高效取模算法,并且用高效取模算法實(shí)現(xiàn)取模運(yùn)算,可以有效地提高Turbo碼編碼中交織地址表的處理速度,進(jìn)而提高整個(gè)系統(tǒng)數(shù)據(jù)面的處理速度。
圖2示出了在本發(fā)明的一個(gè)實(shí)施例中高效取模算法流程圖,對(duì)于如下的取模運(yùn)算L=M mod p,即M對(duì)p取模得到L,進(jìn)行如下步驟的處理步驟201中,對(duì)所有可能的模值p進(jìn)行預(yù)取余處理得到預(yù)取余值A(chǔ),建立p-A表,計(jì)算公式為A=[2N/p],其中[g]為取整運(yùn)算,位數(shù)N為一整數(shù),N的值根據(jù)實(shí)際精度需要設(shè)定,N越大精度越高。由于在Turbo碼編碼中,所有取模運(yùn)算的模值都取自一個(gè)固定的集合,因此對(duì)于所有p值計(jì)算A值,建立p-A表是可行的。
接著進(jìn)入步驟202,對(duì)于任意取模運(yùn)算L=M mod p,用乘法和移位計(jì)算取模結(jié)果L值,計(jì)算公式為L(zhǎng)=M-((M×A)>>N)×p,其中X>>n為移位運(yùn)算,即將X右移n位,其效果相當(dāng)于X除以2n??梢钥闯觯撨\(yùn)算中只需兩次乘法一次移位一次減法即可,其復(fù)雜度遠(yuǎn)遠(yuǎn)低于除法運(yùn)算,這正是本發(fā)明提出的高效取模算法的優(yōu)點(diǎn)所在。為區(qū)別普通取模運(yùn)算,下文用L=L fmod p表示采用高效取模算法實(shí)現(xiàn)的取模運(yùn)算。
圖3示出了在本發(fā)明的一個(gè)實(shí)施例中高效取模算法實(shí)現(xiàn)裝置圖。圖中的構(gòu)件包括乘法器、加法器、移位器和預(yù)取余器。關(guān)鍵點(diǎn)在于先將模值p輸入到預(yù)取余器中進(jìn)行預(yù)取余,具體計(jì)算方法和公式在前面已經(jīng)闡述。圖中的移位器是用N個(gè)一階的移位器來表示一個(gè)N位的移位器。這里的預(yù)取余器可以通過一個(gè)存儲(chǔ)的映射表實(shí)現(xiàn)。
本發(fā)明所采用的高效取模算法巧妙的將除法操作事先用預(yù)取余處理代替,這使得每次取余操作都只需進(jìn)行簡(jiǎn)單的查表即可獲得預(yù)取余值,并用于取模運(yùn)算,極大的降低了取模運(yùn)算的復(fù)雜度,從而提高整個(gè)交織過程及其Turbo碼編碼的效率。
通過以上對(duì)取模運(yùn)算的改進(jìn),可以得到運(yùn)算效率更高的交織方法。圖4示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的Turbo碼編碼中的交織方法流程,包含以下三個(gè)步驟步驟401,將輸入比特流填入交織矩陣;步驟402,對(duì)交織矩陣進(jìn)行行內(nèi)置換和行間置換;步驟403,從交織后的交織矩陣輸出比特流。
其中,步驟401將輸入比特流填入交織矩陣包含以下子步驟首先,根據(jù)輸入比特流的長(zhǎng)度確定交織矩陣的行數(shù)。如前所述用x1,x2,x3,K,xK表示輸入比特流,其中為K比特流長(zhǎng)度,滿足條件40≤K≤5114。用R表示交織矩陣的行數(shù),則根據(jù)如下公式K由確定R, 由此交織矩陣的行號(hào)自上而下分別定義為0,1,...,R-1。
接著,由輸入比特流長(zhǎng)度K確定用于行內(nèi)置換的質(zhì)數(shù)p以及交織矩陣的。判斷條件481≤K≤530是否滿足,如果滿足,則取p=53,且C=p;否則,從表一查詢滿足條件K≤R×(p+1)的最小的質(zhì)數(shù)p值作為p的值,且根據(jù)下式確定列數(shù)C的值,C=p-1K≤R×(p-1)pR×(p-1)<K≤R×pp+1K>R×p.]]>由此交織矩陣的列號(hào)自左而右分別定義為0,1,...,C-1。
表一
注p為質(zhì)數(shù),v為初始根最后,將輸入比特流x1,x2,x3,K,xK填入大小為R×C的交織矩陣中。當(dāng)交織矩陣不能被填滿時(shí),即R×C>K時(shí),剩余比特將被任意填補(bǔ),這些填補(bǔ)的比特在交織完成后將被剔除。
在得到交織矩陣后,步驟402分為以下子步驟完成第一步,根據(jù)步驟401中確定的質(zhì)數(shù)p查詢表一得到相應(yīng)的初始根v。易見,所有可能的p取值在表一中均能查到。
第二步,構(gòu)建用于行內(nèi)置換的基序列,用<S(j)>,j=0,1,..,p-2表示,其中尖括號(hào)表示序列,下標(biāo)j從0至p-2?;蛄械闹涤梢韵逻f推式計(jì)算得到
這些屬性使CPE只需觀注變動(dòng)的參數(shù),提高CPE對(duì)配置文件的處理效率。因?yàn)镃PE一般處理能力較弱,所以要盡量減少其工作量。
第六、配置文件中的表對(duì)象要帶有NumberOfInstances屬性,用于表示該表的行記錄數(shù)。當(dāng)配置文件中的表對(duì)象所帶有的行記錄增加或者刪除時(shí),需要將表對(duì)象的NumberOfInstances屬性更新為變化后實(shí)際的行記錄數(shù),將表對(duì)象的MFlag屬性置為“1”,并且將新增行的AddFlag屬性置為“1”,將刪除行的DelFlag屬性置為“1”雖然通過參照本發(fā)明的某些優(yōu)選實(shí)施例,已經(jīng)對(duì)本發(fā)明進(jìn)行了圖示和描述,但本領(lǐng)域的普通技術(shù)人員應(yīng)該明白,可以在形式上和細(xì)節(jié)上對(duì)其作各種改變,而不偏離本發(fā)明的精神和范圍。
當(dāng)C=p時(shí),Ui(j)=S((j×ri)fmod(p-1)),j=0,1,..,p-2,其中Ui(p-1)=0;這里Ui(j)指是第i行在完成行內(nèi)置換后第j個(gè)輸出比特在輸入時(shí)的位置,下同。
當(dāng)C=p+1時(shí),Ui(j)=S((j×ri)fmod(p-1)),j=0,1,..,p-2,其中Ui(p-1)=0且Ui(p)=p,另外若K=C×R成立,即沒有填入空比特時(shí),還要交換UR-1(p)和UR-1(0)。
當(dāng)C=p-1時(shí),Ui(j)=S((j×ri)fmod(p-1))-1,j=0,1,..,p-2。
上述模式中fmod均表示采用高效取模算法實(shí)現(xiàn)取模運(yùn)算。在本發(fā)明的一個(gè)較佳實(shí)施例中,針對(duì)模值p-1的取值范圍以及一般系統(tǒng)的精度要求,設(shè)定高效取模算法中的位數(shù)如下N=18p<612067≤p≤13122137≤p≤257,]]>這里的p為質(zhì)數(shù)p。
第七步,根據(jù)模式T(i),i=0,1,..,R-1進(jìn)行行間置換,這里T(i)的值即為原先行號(hào)為i的行在交換之后的行號(hào)。
步驟403中,在完成矩陣的行內(nèi)置換和行間置換后,按列順序讀出矩陣內(nèi)容從0,1,...,C-1,同時(shí)計(jì)算出對(duì)應(yīng)的輸入比特的位置,并去掉大于K的地址值。這里采用行寫列讀的方式使得交織更加徹底。
雖然通過參照本發(fā)明的某些優(yōu)選實(shí)施例,已經(jīng)對(duì)本發(fā)明進(jìn)行了圖示和描述,但本領(lǐng)域的普通技術(shù)人員應(yīng)該明白,可以在形式上和細(xì)節(jié)上對(duì)其作各種各樣的改變,而不偏離所附權(quán)利要求書所限定的本發(fā)明的精神和范圍。
權(quán)利要求
1.一種Turbo碼編碼中的交織方法,其特征在于,包含以下步驟,A將輸入比特流填入交織矩陣;B對(duì)所述交織矩陣進(jìn)行行內(nèi)置換和行間置換;C從交織后的所述交織矩陣輸出比特流;其中,所有取模運(yùn)算均采用高效取模算法實(shí)現(xiàn)。
2.根據(jù)權(quán)利要求1所述一種Turbo碼編碼中的交織方法,其特征在于,所述高效取模算法包含以下步驟,對(duì)所有可能的模值進(jìn)行預(yù)取余處理,根據(jù)以下式子計(jì)算得到預(yù)取余值,建立模值到預(yù)取余值的映射表A=[2N/P],其中A為所述預(yù)取余值,P為所述模值,N為位數(shù),[g]表示取整運(yùn)算;對(duì)任意取模運(yùn)算,查詢所述模值到預(yù)取余值的映射表得到所述預(yù)取余值,并根據(jù)以下式子通過乘法和移位運(yùn)算計(jì)算取模結(jié)果L=M-((M×A)>>N)×P,其中L為所述取余結(jié)果,M為被取模值,A為所述預(yù)取余值,N為所述位數(shù),P為所述模值,X>>n表示移位運(yùn)算,即將左值X右移,移動(dòng)位數(shù)為右值n。
3.根據(jù)權(quán)利要求2所述一種Turbo碼編碼中的交織方法,其特征在于,所述位數(shù)N的值可以根據(jù)實(shí)際精度需要而設(shè)定,N越大精度越高。
4.根據(jù)權(quán)利要求3所述一種Turbo碼編碼中的交織方法,其特征在于,所述步驟A包含以下子步驟,據(jù)輸入比特流長(zhǎng)度確定所述交織矩陣的行數(shù);根據(jù)所述輸入比特流長(zhǎng)度確定用于行內(nèi)置換的質(zhì)數(shù)和所述交織矩陣的列數(shù);將輸入比特流按行填入所述交織矩陣,并將多余比特填滿。
5.根據(jù)權(quán)利要求4所述一種Turbo碼編碼中的交織方法,其特征在于,所述步驟B包含以下子步驟,B1根據(jù)所述用于行內(nèi)置換的質(zhì)數(shù)查表得到相應(yīng)的初始根;B2根據(jù)以下遞推公式構(gòu)建用于行內(nèi)置換的基序列S(0)=1,對(duì)于j>0有S(j)=(v×S(j-1))fmod p,其中S(j),j=0,1,..,p-2表示所述用于行內(nèi)置換的基序列,p為所述用于行內(nèi)置換的質(zhì)數(shù),v為所述初始根,fmod為采用所述高效取模算法實(shí)現(xiàn)的取模運(yùn)算,其左值為所述被取模值,右值為所述模值;B3選擇連續(xù)的最小質(zhì)數(shù)集;<qi>,i=1,2,..,R-1q0=1,對(duì)于任意i>0選擇滿足條件“qi和p-1的最大公約數(shù)為1,且qi>6,qi>qi-1”的最小質(zhì)數(shù)作為qi值。B4根據(jù)所述輸入比特流長(zhǎng)度和所述交織矩陣的行數(shù)選擇行間交換模式T(i),i=0,1,..,R-1;B5將所述最小質(zhì)數(shù)集<qi)轉(zhuǎn)換得到轉(zhuǎn)換后最小質(zhì)數(shù)集<ri);B6根據(jù)所述交織矩陣的列數(shù)不同選擇不同的行內(nèi)置換模式,進(jìn)行所述行內(nèi)置換,所述交織矩陣的列數(shù)與所述行內(nèi)置換模式對(duì)應(yīng)關(guān)系如下當(dāng)C=p時(shí),Ui(j)=S((j×ri)fmod(p-1)),j=0,1,..,p-2,且Ui(P-1)=0,當(dāng)C=p+1時(shí),Ui(j)=S((j×ri)fmod(p-1)),j=0,1,..,p-2,且Ui(p-1)=0,Ui(p)=p,另外若K=C×R成立,即沒有填入空比特時(shí),還要交換UR-1(p)和UR-1(0),當(dāng)C=p-1時(shí),Ui(j)=S((j×ri)fmod(p-1))-1,j=0,1,...,p-2,其中C為所述交織矩陣的列數(shù),Ui(j)為所述行內(nèi)置換模式,即表示第i行的第j列在經(jīng)過所述行內(nèi)置換后為的Ui(j)列,S(g)為所述用于行內(nèi)置換的基序列,ri為所述轉(zhuǎn)換后最小質(zhì)數(shù)集,p為所述用于行內(nèi)置換的質(zhì)數(shù),K為所述輸入比特流長(zhǎng)度,R為所述交織矩陣的行數(shù),fmod為采用所述高效取模算法實(shí)現(xiàn)的取模運(yùn)算,其左值為所述被取模值,右值為所述模值;B7根據(jù)所述行間置換模式進(jìn)行行間置換。
6.根據(jù)權(quán)利要求5所述一種Turbo碼編碼中的交織方法,其特征在于,所述步驟B2中的所述高效取模算法中的所述位數(shù)N=18;所述步驟B6中的所述高效取模算法中的所述位數(shù)由以下式子確定N=18p<612067≤p≤13122137≤p≤257,]]>其中N所述位數(shù),p為所述用于行內(nèi)置換的質(zhì)數(shù),所述步驟B6中的取模運(yùn)算中的所述模值均為p-1。
7.根據(jù)權(quán)利要求3所述一種Turbo碼編碼中的交織方法,其特征在于,所述步驟C包含以下子步驟,從所述交織矩陣按列讀取輸出比特流;將所述多余比特去除。
8.一種高效取模裝置,其特征在于,包含乘法器,用于將輸入的兩數(shù)相乘后輸出;移位器,用于將輸入的數(shù)作向右移位操作,所移動(dòng)的位數(shù)至少為1;減法器,用于將輸入的被減數(shù)減去輸入的減數(shù)后輸出;預(yù)取余器,用于將輸入的模值作預(yù)取余處理,根據(jù)以下式子計(jì)算并輸出預(yù)取余值A(chǔ)=[2N/P],其中A為所述預(yù)取余值,P為所述模值,N為所述位數(shù),[g]表示取整運(yùn)算;為了將輸入的被取模值M和所述模值P作取模運(yùn)算后輸出取模結(jié)果L,所述預(yù)取余器先將輸入的所述模值P作預(yù)取余處理后輸出所述預(yù)取余值A(chǔ);第一個(gè)所述乘法器將輸入的所述預(yù)取余值A(chǔ)和所述被取模值M相乘后輸入到所述移位器;所述移位器將第一個(gè)所述乘法器輸出的結(jié)果右移N位后再輸入到第二個(gè)所述乘法器;第二個(gè)所述乘法器將所述移位器輸出的結(jié)果和所述模值P相乘后輸入到所述減法器;所述減法器將所述被取模值減去第二個(gè)所述乘法器輸出的結(jié)果后輸出所述取模結(jié)果L。
全文摘要
本發(fā)明涉及通信系統(tǒng)中信號(hào)編碼技術(shù),公開了一種Turbo碼編碼中的交織方法及相關(guān)裝置,使得Turbo碼編碼中的交織計(jì)算復(fù)雜度降低,提高Turbo碼編碼速度,進(jìn)而提高系統(tǒng)數(shù)據(jù)面的處理速度,適應(yīng)實(shí)時(shí)性業(yè)務(wù)需求。這種Turbo碼編碼中的交織方法中,采用預(yù)取余處理和乘法、移位等簡(jiǎn)單運(yùn)算實(shí)現(xiàn)高效取模算法,基于不同精度需求的高效取模算法完成快速取模運(yùn)算,并在此基礎(chǔ)上發(fā)展Turbo碼編碼的交織方法。
文檔編號(hào)H03M13/29GK1859014SQ20051003738
公開日2006年11月8日 申請(qǐng)日期2005年9月16日 優(yōu)先權(quán)日2005年9月16日
發(fā)明者郭政 申請(qǐng)人:華為技術(shù)有限公司