專利名稱:用于透平編碼的塊交織的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及通信系統(tǒng),具體涉及執(zhí)行編碼調(diào)制的交織器。
背景技術(shù):
已經(jīng)發(fā)現(xiàn)對通信信道的編碼技術(shù)(稱為編碼調(diào)制)能改進諸如調(diào)制解調(diào)器、無線通信系統(tǒng)等電子通信系統(tǒng)的比特出錯率。透平(Turbo)編碼調(diào)制已證明是一種對以白色高斯噪聲(AWGN)或衰落為特征的“隨機出錯”信道實用的、高效的和頻帶效率高的調(diào)制方法。例如,可在碼分多址(CDMA)環(huán)境中發(fā)現(xiàn)這些隨機出錯信道。CDMA環(huán)境的能力取決于工作信號/噪聲比,因而改進性能也就是提高能力。
如此高效的透平編碼器(Turbo coder)的一個方面是一種交織器,它對原始接收到的或發(fā)送的數(shù)據(jù)幀在進入到第2編碼器之前進行置換。根據(jù)一個或多個隨機化算法通過對部分隨機化而完成置換。將置換后的數(shù)據(jù)幀與原始數(shù)據(jù)幀組合,表明能獲得AWGN和衰落信道中的低BERs。交織處理增加了數(shù)據(jù)中的分集,從而當調(diào)制碼元在傳輸中失真時,能在解碼器中使用糾錯算法來恢復(fù)。
傳統(tǒng)的交織器對要發(fā)送到陣列中的信號點加以采集和編幀,實質(zhì)上對陣列一行接一行地加以填充。在預(yù)定量的信號點被編幀后,實質(zhì)上通過讀出該陣列的列進行發(fā)送而使交織器呈空狀態(tài)。結(jié)果,陣列的同一行中在原始信號點流中相互鄰近的信號點通過數(shù)量等于陣列中行數(shù)量的信號點加以分開。理想上,列和行的數(shù)量的選取應(yīng)使得相互依賴的信號點在發(fā)送后隔開得比期望的信道出錯脈沖串更長。
非均勻交織可獲得數(shù)據(jù)的“最大散布”和輸出序列的“最大無序”。因此,兩個卷積編碼器引入的冗余在Turbo編碼器的輸出序列中散布更均等。最小距離增加到比均勻交織的更大的值。非均勻交織的固有問題是怎樣實際實施交織同時獲得足夠的“非均勻性”和最小化延遲補償,該延遲補償限制了實時要求的應(yīng)用。
尋找有效的交織器是第3代CDMA標準活動中流行的主題。已經(jīng)確定和普遍認可的是,當幀規(guī)模接近無窮時,最有效的交織器是隨機交織器。然而,對于有限幀規(guī)模,最有效的交織器的確定仍在討論中。
因此,需要一種改善有限幀規(guī)模的非均勻性的交織碼的系統(tǒng)和方法。
還需要一種相當簡單實施的交織碼的系統(tǒng)和方法。
于是,本發(fā)明的目的在于提供改善有限幀規(guī)模的非均勻性的交織碼的系統(tǒng)和方法。
本發(fā)明的另一目的在于提供相當簡單實施的交織碼的系統(tǒng)和方法。
從下面的描述中本領(lǐng)域中的技術(shù)人員將會明白上述和其它目的。
發(fā)明內(nèi)容
本發(fā)明可完成上述和其它目的,其中,對數(shù)據(jù)幀進行交織,數(shù)據(jù)幀有預(yù)定規(guī)模并由若干部分組成。本發(fā)明的一實施例包含存儲數(shù)據(jù)幀和利用N1×N2指數(shù)陣列I將該數(shù)據(jù)幀指數(shù)化的方法,其中,N1和N2的積至少等于N。指數(shù)陣列中的元素表明數(shù)據(jù)幀中元素的位置。數(shù)據(jù)幀元素可以任何傳統(tǒng)方式加以存儲而無需組織成陣列。該方法進一步包含按照I(j,k)=I(j,(αjk+βj)modP)對指數(shù)陣列進行置換,其中,I是指數(shù)陣列,如上所述,j和k分別是指數(shù)陣列中行和列的指數(shù),α和β按照當前行選擇的常數(shù)組,而P和各αj是相對質(zhì)數(shù)。數(shù)據(jù)幀,通過置換的指數(shù)陣列I指數(shù)化后被有效地置換。
本發(fā)明的再一實施例包含交織器,該交織器包含存儲數(shù)據(jù)幀和存儲N1×N2指數(shù)陣列I用的存儲裝置,其中,N1和N2的積至少等于N。指數(shù)陣列中的元素表明數(shù)據(jù)幀中元素的位置。數(shù)據(jù)幀元素可以任何傳統(tǒng)方式加以存儲而無需組織成陣列。該交織器進一步包含按照I(j,k)=I(j,(αjk+βj)modP)對指數(shù)陣列進行置換的裝置,其中,I是指數(shù)陣列,如上所述,j和k分別是指數(shù)陣列中行和列的指數(shù),α和β按照當前行選擇的常數(shù)組,而P和各αj是相對質(zhì)數(shù)。數(shù)據(jù)幀,通過置換的指數(shù)陣列I指數(shù)化后被有效地置換。
本發(fā)明進一步的實施例提供了一種交織數(shù)據(jù)幀元素的交織器,該交織器包含存儲包含作為陣列D的多個元素的數(shù)據(jù)幀的輸入存儲器,該陣列D具有作為0,1,...N1-1的N1行;和作為0,1,...N2-1的N2列,其中,N1和N2是大于1的正整數(shù);與所述輸入存儲器耦連并按照下面等式將陣列D置換成陣列D1的處理器D1(j,k)=D(j,(αjk+βj)modP),其中,j是通過陣列D和D1行的指數(shù);k是通過陣列D和D1列的指數(shù);αj和βj是為各行j預(yù)定的整數(shù);P是至少等于N2的整數(shù);和各αj是相對于P的相對質(zhì)數(shù),和與所述處理器耦連并配置成存儲所述置換陣列D1的工作存儲器。
本發(fā)明再進一步的實施例提供了一種交織數(shù)據(jù)幀中元素的交織器,所述交織器包含存儲指數(shù)陣列I的存儲器,該陣列I具有作為0,1,...N1-1的N1行;和作為0,1,...N2-1的N2列,其中,N1和N2是大于1的正整數(shù),和所述存儲器還用于將接收到的數(shù)據(jù)幀元素存儲在多個存儲單元的各單元中;與所述存儲器耦連用于在陣列I中以一行接一行的相繼位置存儲表明幀元素的相應(yīng)存儲單元的值的處理器;和所述處理器還按照下列等式將I陣列置換成I1陣列I(j,k)=I(j,(αjk+βj)modP)其中,j是通過陣列I和I1的行的指數(shù);k是通過陣列I和I1的列的指數(shù);αj和βj是各行j預(yù)定的整數(shù);P是至少等于N2的整數(shù);和各αj是相對于P的相對質(zhì)數(shù),由此,按照陣列I1指數(shù)化的數(shù)據(jù)幀能有效地置換。
下面將結(jié)合圖示某些實施例和實際描述本發(fā)明。很顯然,本領(lǐng)域中的技術(shù)人員在不脫離本發(fā)明精神實質(zhì)或權(quán)利要求范圍能作各種修改、增添和刪減。
通過下面結(jié)合附圖對實施例所作的詳細描述,將能清楚地理解本發(fā)明,其中圖1示出傳統(tǒng)Turbo編碼器的說明圖;圖2示出圖1中所示交織器的框圖;圖3示出包含數(shù)據(jù)幀的陣列和對該陣列的置換;圖4示出存儲在連續(xù)存儲單元中的數(shù)據(jù)幀;圖5示出將圖4中所示數(shù)據(jù)幀指數(shù)化的指數(shù)陣列和對指數(shù)陣列的置換。
具體實施例方式
圖1示出傳統(tǒng)的Turbo編碼器。如圖所示,傳統(tǒng)的Turbo編碼器包含兩個編碼器20和一個交織器100。本發(fā)明的交織器100接收引入的數(shù)據(jù)幀110,該幀110的規(guī)模(大小)為N,其中,N是比特數(shù)、字節(jié)數(shù)或其它幀可分隔成的一些部分,它們稱為幀元素。交織器100將N個幀元素分成如行那樣的數(shù)據(jù)組。然后交織器以偽隨機方式重新安排各組中數(shù)據(jù)。交織器100可采用不同方法重新安排不同組的數(shù)據(jù)組。然而,該領(lǐng)域中的技術(shù)人員應(yīng)當認識到一種或多種方法可重新用于一個或多個數(shù)據(jù)組而不脫離本發(fā)明的范圍。在置換各組中數(shù)據(jù)后,交織器以不同于接收的次序輸出數(shù)據(jù)。
交織器100可在N1×N2規(guī)模的陣列中存儲數(shù)據(jù)幀,使得N1×N2=N。圖3所示例子表明具有3行(N1=3)6列(N2=6)的陣列350用來存儲具有18個元素的數(shù)據(jù)幀110,這18個元素表示為幀元素00(FE00)到FE17(N=18)。雖然這是較佳方法,但陣列也可設(shè)計成N1×N2是N的一部分,使得一個或多個更小的陣列按照本發(fā)明工作,并將各個較小陣列的結(jié)果在后面加以組合。
按照本發(fā)明對陣列350的置換,對陣列350中各行j分別進行,按照下面等式置換各行中的列k。
D(j,k)=D(j,(αjk+βj)modP)其中j和k分別是陣列350中行和列的指數(shù);P是大于或等于N2的數(shù);αj和P是相對質(zhì)數(shù)(1個或兩者可能是非質(zhì)數(shù),但它們的公約數(shù)只有1);βj是常數(shù),用1個值與每一行相關(guān)。
一旦所有行的數(shù)據(jù)被置換,新陣列就一列接一列地讀出。同樣,一旦行已被置換,就能在輸出數(shù)據(jù)之前置換按列分組的數(shù)據(jù)。在行和列兩者被置換的情況下,行、列或兩者可按照本發(fā)明進行置換。例如,也可以通過轉(zhuǎn)置以二進制表示行指數(shù)j的比特來轉(zhuǎn)置陣列中的行。(例如,在4行陣列中,第2和第3行將根據(jù)該方案進行轉(zhuǎn)置。)也可以按照不同的置換方法來置換行或列,但不是兩者。本領(lǐng)域中的技術(shù)人員知道,系統(tǒng)可重新安排成一列接一列存儲數(shù)據(jù),按列置換各組數(shù)據(jù)并且一行接一行讀出結(jié)果,這些都不脫離本發(fā)明的范圍。
這些交織方法是建立在數(shù)論基礎(chǔ)上的,并且可用軟件和/或硬件來實施(即,特定應(yīng)用的集成電路(ASIC),可編程邏輯陣列(PLA),或任何其它合適的邏輯器件)。而且,單偽隨機序列發(fā)生器(即,m-序列,M-序列,Gold序列,Kasami序列...等)可用作交織器。
在圖3所示例子中,P的選值為6,α值對所有3行都為5,而β值對3行分別為1、2和3。(這些僅僅是舉例。選擇其它數(shù)可獲得不同的置換結(jié)果。)α(5)的值,各為相對于如上規(guī)定的P(6)的相對質(zhì)數(shù)。
用規(guī)定的值計算規(guī)定的等式來將陣列D350中行0置換成陣列D1360中行0的過程如下D1(0,0)=D(0,(5*0+1)mod6)=D(0,(1)mod6)=D(0,1)=FE01D1(0,1)=D(0,(5*1+1)mod6)=D(0,(6)mod6)=D(0,0)=FE00D1(0,2)=D(0,(5*2+1)mod6)=D(0,(11)mod6)=D(0,5)=FE05D1(0,3)=D(0,(5*3+1)mod6)=D(0,(16)mod6)=D(0,4)=FE04D1(0,4)=D(0,(5*4+1)mod6)=D(0,(21)mod6)=D(0,3)=FE03D1(0,5)=D(0,(5*5+1)mod6)=D(0,(26)mod6)=D(0,2)=FE02于是行0變成FE01 FE00 FE05 FE04 FE03 FE02對于行1,等式變成D1(1,0)=D(1,(5*0+2)mod6)=D(1,(2)mod6)=D(1,2)=FE08D1(1,1)=D(1,(5*1+2)mod6)=D(1,(7)mod6)=D(1,1)=FE07D1(1,2)=D(1,(5*2+2)mod6)=D(1,(12)mod6)=D(1,0)=FE06D1(1,3)=D(1,(5*3+2)mod6)=D(1,(17)mod6)=D(1,5)=FE11D1(1,4)=D(1,(5*4+2)mod6)=D(1,(22)mod6)=D(1,4)=FE10D1(1,5)=D(1,(5*5+2)mod6)=D(1,(27)mod6)=D(0,3)=FE09于是行1變成FE08 FE06 FE11 FE10 FE09對于行2,等式變成D1(2,0)=13(2,(5*0+3)mod6)=D(2,(3)mod6)=D(2,3)=FE15D1(2,1)=D(2,(5*1+3)mod6)=D(2,(8)mod6)=D(2,2)=FE14D1(2,2)=D(2,(5*2+3)mod6)=D(2,(13)mod6)=D(2,1)=FE13D1(2,3)=D(2,(5*3+3)mod6)=D(2,(18)mod6)=D(2,0)=FE12D1(2,4)=D(2,(5*4+3)mod6)=D(2,(23)mod6)=D(2,5)=FE17D1(2,5)=D(2,(5*5+3)mod6)=D(2,(28)mod6)=D(0,4)=FE16于是行2變成FE15 FE14 FE13 FE12 FE17 FE16且置換后的數(shù)據(jù)幀包含在圖3所示陣列D1360。一列接一列輸出陣列將按照下面次序輸出幀元素1,8,15,0,7,14,5,6,13,4,11,12,3,10,17,2,9,16。
在本發(fā)明的一變化實施中,數(shù)據(jù)幀110不按照陣列或矩陣而是存儲在連續(xù)的存儲單元中,并存儲一分開的指數(shù)陣列用于將數(shù)據(jù)幀的元素指數(shù)化,按照本發(fā)明的等式對指數(shù)陣列置換,通過置換后的指數(shù)陣列指數(shù)化后輸出數(shù)據(jù)幀。
圖4說明在長度上存儲32個元素(因而從起始存儲單元具有偏移量0到31)的框圖。數(shù)據(jù)幀110,該例子中取為22個元素長度因而包含元素FE00到FE21,在框400中占有偏移存儲單元00到21???00中偏移存儲單元22到31包含未知的內(nèi)容。22個元素的幀長度只是一個例子,也可以選擇其它長度。在連續(xù)存儲單元中存儲幀元素是一個例子,也可采用非連續(xù)存儲單元。
圖5說明將存儲塊400指數(shù)化用的指數(shù)陣列I550。各組成具有8列的4行(N1=4,N2=8,N=N1×N2=32)。接著如圖5所示,將原始內(nèi)容填入陣列I550。該初始化按照一行接一行讀入數(shù)據(jù)幀110產(chǎn)生相同的效果。
指數(shù)陣列按照下列等式置換I1(j,k)=I(j,(αjk+βj)modP)其中,α=1,3,5,7β=0,0,0,0P=8這些數(shù)是例子,也可選擇其它數(shù),只要滿足規(guī)定P至少等于N2并且α的各值是相對于所選P值的相對質(zhì)數(shù)。
例如,如果將等式應(yīng)用于行2的列,則產(chǎn)生I1(2,0)=I(2,(5*0)mod8)=I(2,(0)mod8)=I(2,0)=16I1(2,1)=I(2,(5*1)mod8)=I(2,(5)mod8)=I(2,5)=21I1(2,2)=I(2,(5*2)mod8)=I(2,(10)mod8)=I(2,2)=18I1(2,3)=I(2,(5*3)mod8)=I(2,(15)mod8)=I(2,7)=23I1(2,4)=I(2,(5*4)mod8)=I(2,(20)mod8)=I(2,4)=20I1(2,5)=I(2,(5*5)mod8)=I(2,(25)mod8)=I(2,1)=17I1(2,6)=I(2,(5*6)mod8)=I(2,(30)mod8)=I(2,6)=22I1(2,7)=I(2,(5*7)mod8)=I(2,(35)mod8)=I(2,3)=19將等式同樣應(yīng)用于行0,1和3,產(chǎn)生圖5所示置換后的指數(shù)陣列I1560。
數(shù)據(jù)幀110從存儲框400讀出,按照一列接一列取出的置換后的指數(shù)陣列I1中規(guī)定的次序輸出,從而按照下面偏移次序輸出存儲單元0,8,16,24,1,11,21,31,2,14,18,30,3,9,23,29,4,12,20,28,5,15,17,27,6,10,22,26,7,13,19,25。
但是,該例子假定幀長度為22個元素框400中偏移存儲單元22-31的,不是數(shù)據(jù)幀部分。因此,當輸出數(shù)據(jù)幀時,它被收縮或剪除到長度22;即,大于21的偏移存儲單元忽略。于是數(shù)據(jù)幀用下面元素次序輸出0,8,16,1,11,21,2,14,18,3,9,4,12,20,5,15,17,6,10,7,13,19。
本發(fā)明的一個方面,例如,通過將二進制表示行指數(shù)j的比特反相并在輸出之前對陣列的行進行轉(zhuǎn)置。
可用若干不同的方式實施本發(fā)明的交織器100。圖2示出本發(fā)明一實施例,其中,交織器100包含接收和存儲數(shù)據(jù)幀110的輸入存儲器300。該存儲器300可包含移位寄存器、RAM等。交織器100還可包含工作存儲器310,存儲器310也可包含RAM、移位寄存器等。交織器包含處理器320(如,微處理器、ASIC等),配置成按照上述等式實時處理I(j,k)或訪問包含預(yù)先存入其中的I(J,K)結(jié)果的表。本領(lǐng)域中的技術(shù)人員將會看到,存儲器300和310可以是同一或分開的存儲器。
為了實時確定I(j,k),置換指數(shù)陣列中第1行并將對應(yīng)于置換指數(shù)的字節(jié)存儲在工作存儲器。然后置換下一行并存儲,等等,直到所有行被置換和存儲。這種行置換可順序或并行進行。
不管是實時還是查表確定置換后的I(j,k),數(shù)據(jù)都可以若干不同方式存儲在工件存儲器??赏ㄟ^以與置換后指數(shù)陣列(即,用置換函數(shù)將輸入存儲器指數(shù)化)中I(j,k)相同的次序從輸入存儲器中選擇數(shù)據(jù)并以存儲單元可用順序?qū)⑺鼈兇鎯Φ焦ぷ鞔鎯ζ鬟M行存儲。也可通過以它們存儲在輸入存儲器(即,F(xiàn)IFO)中的次序選擇字節(jié)并將它們直接存儲到工作存儲器中由置換后I(j,k)(即,用置換函數(shù)將工作存儲器指數(shù)化)確定的存儲單元中來進行存儲。一旦完成上述存儲,就可根據(jù)置換后的指數(shù)陣列一列接一列地從工作存儲器讀出數(shù)據(jù)。如上所述,在數(shù)據(jù)根據(jù)列而不是行存入工作存儲器之后,數(shù)據(jù)可進行另一輪置換,以獲得不同的結(jié)果。
如果系統(tǒng)足夠快,則可省去一個存儲器,且接收數(shù)據(jù)元素時可實時或查表以與置換后指數(shù)陣列對應(yīng)的次序?qū)⑺嫒牍ぷ鞔鎯ζ鳌?br>
所揭示的交織器可與現(xiàn)有Turbo碼結(jié)構(gòu)兼容。這些交織器呈現(xiàn)優(yōu)越的性能而不增加系統(tǒng)的復(fù)雜性。
此外,本領(lǐng)域中技術(shù)人員會看到,去交織器可用來對交織后的幀進行解碼。用于解Turbo碼的去交織器的結(jié)構(gòu)屬已有技術(shù)。同樣這里不再進行討論。但是,對應(yīng)實施例的去交織器可用上述置換后的序列構(gòu)成。
雖然上述實施例是一種在CDMA系統(tǒng)中可看到的Turbo編碼器,但本領(lǐng)域中的技術(shù)人員應(yīng)當看到,本發(fā)明的實施不限定于此,對于任何通信系統(tǒng)中的任何類型的交織和去交織都可實施。
因此,本發(fā)明能有效地實現(xiàn)上述目的,包括根據(jù)上面描述顯而易見所作的變化。實際上,本發(fā)明提供改進的交織有限長度碼同時使實施的復(fù)雜性最小的裝置和方法。
應(yīng)當看到,對上述結(jié)構(gòu)和對前面的工作次序可作各種變化,但都不脫離本發(fā)明的范圍。因此,上面描述和附圖所示包含的所有情況都是說明性的而不作限定。
還應(yīng)當看到,下面的權(quán)利要求書用來涵蓋本發(fā)明這里描述的一般的和特定的所有特征和對本發(fā)明范圍所作的全部陳述,作為語言表述可以說都落入其中。
權(quán)利要求
1.一種交織數(shù)據(jù)幀中元素的方法,其特征在于,包含下列步驟存儲包含作為陣列D的多個元素的數(shù)據(jù)幀,該陣列D具有作為0,1,...N1-1的N1行;和作為0,1,...N2-1的N2列,其中,N1和N2是大于1的正整數(shù);和按照下面等式將陣列D置換成陣列D1D1(j,k)=D(j,(αjk+βj)modP)其中,j是通過陣列D和D1行的指數(shù);k是通過陣列D和D1列的指數(shù);αj和βj是為各行j預(yù)定的整數(shù);P是至少等于N2的整數(shù);和各αj是相對于P的相對質(zhì)數(shù)。
2.如權(quán)利要求1所述的方法,其特征在于,其中,陣列D的所述元素按照第一次序存儲,而陣列D1的元素按照第二次序輸出。
3.如權(quán)利要求2所述的方法,其特征在于,其中,陣列D的元素一行接一行存儲,而陣列D1的元素一列接一列輸出。
4.如權(quán)利要求1所述的方法,進一步包含輸出陣列D1步驟,其中,N1和N2的積大于幀中元素數(shù),在輸出期間幀截斷到幀中元素的數(shù)目。
5.一種交織數(shù)據(jù)幀的交織器,其特征在于,包含存儲包含作為陣列D的多個元素的數(shù)據(jù)幀的存儲裝置,該陣列D具有作為0,1,...N1-1的N1行;和作為0,1,...N2-1的N2列,其中,N1和N2是大于1的正整數(shù);和按照下面等式將陣列D置換成陣列D1D1(j,k)=D(j,(αjk+βj)modP)其中,j是通過陣列D和D1行的指數(shù);k是通過陣列D和D1列的指數(shù);αj和βj是為各行j預(yù)定的整數(shù);P是至少等于N2的整數(shù);和各αj是相對于P的相對質(zhì)數(shù)。
6.如權(quán)利要求5所述的交織器,其特征在于,還包含按照第一次序存儲陣列D的的所述元素的裝置,和按照第二次序輸出陣列D1的元素的裝置。
7.如權(quán)利要求6所述的交織器,其特征在于,其中,所述存儲陣列D的所述元素的裝置一行接一行進行存儲,所述輸出陣列D1的元素的裝置一列接一列進行輸出。
8.如權(quán)利要求5所述的交織器,其特征在于,進一步包含輸出陣列D1和當N1和N2的積大于幀中元素數(shù)時將所述陣列D1截斷到幀中元素數(shù)目的裝置。
全文摘要
一種交織器,接收進入的規(guī)模為N的數(shù)據(jù)幀。該交織器用N
文檔編號H03M13/00GK1855736SQ20061005503
公開日2006年11月1日 申請日期2000年1月11日 優(yōu)先權(quán)日1999年1月11日
發(fā)明者崔江, 李賓, 佟文, R·R·王 申請人:諾泰網(wǎng)絡(luò)有限公司