專利名稱:隨機存取多向cdma2000 turbo編碼交織器的制作方法
背景I.領域本發(fā)明一般涉及通信系統(tǒng),尤其涉及為數(shù)字通信系統(tǒng)中turbo編碼方案使用的交織器。
II.背景數(shù)字數(shù)據(jù)的傳輸本來就易受到干擾,這會把誤差引入已發(fā)射數(shù)據(jù)。已經(jīng)提出差錯檢測方案來盡可能可靠地確定誤差是否被引入已發(fā)射數(shù)據(jù)。例如,通常以分組發(fā)射數(shù)據(jù)并對每個分組加入一個循環(huán)冗余校驗(CRC)字段,例如長度為16比特的字段,它攜帶分組數(shù)據(jù)的校驗和。當接收機接收數(shù)據(jù)時,接收機計算已接收數(shù)據(jù)上的同一校驗和并校驗計算結果是否與CRC字段內(nèi)的校驗和相同。
當被發(fā)射的數(shù)據(jù)不作在線使用時,當檢測到誤差時可能請求重發(fā)出錯的數(shù)據(jù)。然而,當進行在線傳輸時,譬如,在電話線、蜂窩電話、遠程視頻系統(tǒng)等等當中,不可能請求重發(fā)。
已經(jīng)引入卷積碼,使數(shù)字數(shù)據(jù)的接收機即使在傳輸期間可能發(fā)生差錯時也能正確地確定已發(fā)射數(shù)據(jù)。卷積碼把冗余引入被發(fā)射數(shù)據(jù)并且把被發(fā)射數(shù)據(jù)打包成分組,其中每比特的值都取決于序列中前面的比特。這樣,當發(fā)生差錯時,接收機仍能通過追溯接收數(shù)據(jù)中的可能序列而推斷出原始數(shù)據(jù)。
為了進一步改進傳輸信道的性能,某些編碼方案包括交織器,它在編碼期間混合分組中比特的順序。這樣,當干擾在傳輸期間破壞某些鄰近比特時,干擾的效應會被分散到整個原始分組并能更容易地由解碼過程克服。其它改進可能包括多分量編碼,它以并行或串行方式對分組進行多于一次的編碼,并行或串行。例如,本領域已知,采用糾錯方法使用至少兩個并行的卷積編碼器。這種并行編碼通常被稱為turbo編碼。
對于多分量編碼而言,最佳解碼通常是很復雜的任務,并且可能需要對于在線解碼通常不能提供的大時間周期。已經(jīng)研發(fā)了迭代解碼技術來克服這個問題。接收機在表示比特為1的概率的多級尺度上為每個比特分配一個值,而不是立即確定接收到的比特是0還是1。常用的尺度稱為對數(shù)似然比(LLR)概率,它用某范圍、如{-32,31}內(nèi)的整數(shù)來表示每個比特。值31表示已發(fā)射比特為0的概率很大,而值-32表示已發(fā)射比特為1的概率很大。值零表示邏輯比特值是不確定的。
多級尺度上表示的數(shù)據(jù)被稱為“軟數(shù)據(jù)”,且迭代解碼通常是軟入/軟出,即,解碼過程接收與比特值概率相對應的輸入序列,并且考慮到編碼限制而提供為輸出校正的概率。一般而言,執(zhí)行迭代解碼的解碼器用來自前面迭代的軟數(shù)據(jù)來對由接收機讀取的軟數(shù)據(jù)進行解碼。在多分量編碼的迭代解碼期間,解碼器用一個編碼的解碼結果來改進第二個編碼的解碼。當使用并行編碼器時,如在turbo編碼中,可以為此而方便地并行使用兩個相應的解碼器。這種迭代解碼為多次迭代而被實現(xiàn),直到相信軟數(shù)據(jù)接近地表示已發(fā)射數(shù)據(jù)為止。具有表示它們更接近于1的概率的那些比特(例如,上述尺度0和31之間)被分配到二進制0,剩下的比特被分配到二進制1。
“Turbo編碼”表示前向糾錯(FEC)領域的重要進步。有許多種turbo編碼,但大多數(shù)turbo編碼類型通過結合迭代解碼使用由交織步驟分開多重編碼步驟。這種結合提供了通信系統(tǒng)中關于噪聲容差的先前不能提供的性能。即,turbo編碼允許以使用現(xiàn)有前向糾錯技術時以前是不可接受的每噪聲功率譜密度的每比特能量(Eb/No)的級別上進行通信。
許多通信系統(tǒng)使用前向糾錯技術并因此會受益于turbo編碼的使用。例如,turbo碼會改進無線衛(wèi)星鏈路的性能,其中衛(wèi)星的有限下行發(fā)射功率需要能工作在低Eb/No電平的接收機系統(tǒng)。
數(shù)字無線電信系統(tǒng),譬如數(shù)字蜂窩和PCS電話系統(tǒng),也用于前向糾錯。例如,電信工業(yè)聯(lián)盟已經(jīng)公布了空中接口標準TIA/EIA臨時標準95及其派生物,譬如IS-95B(這里總稱為IS-95),它定義了使用卷積編碼提供編碼增益來增加系統(tǒng)容量的數(shù)字無線通信系統(tǒng)。美國專利號5103459中描述了大致按照IS-95標準的用于處理射頻(RF)信號的系統(tǒng)和方法,該專利被轉(zhuǎn)讓給本發(fā)明的受讓人并且完全通過引用被結合于此。
通信工業(yè)中不斷驅(qū)使以持續(xù)地改進編碼增益。在常規(guī)數(shù)字無線通信系統(tǒng)中,已經(jīng)發(fā)現(xiàn)可以用同余的隨機序列有利地實現(xiàn)用于turbo編碼的串行交織器。本領域已知可以通過使用線性同余的遞歸算法來產(chǎn)生均勻的隨機序列。如,參見2D.Knuth編著的The Art of Computer Programming(1969)(描述了用線性同余的遞歸產(chǎn)生偽隨機數(shù))。還已經(jīng)發(fā)現(xiàn)采用二維交織器(即,被組織為包括多行和多列的矩形數(shù)據(jù)數(shù)組的交織器)的并行turbo編碼器就編碼增益而言一般勝過具有一維交織器(即,其中數(shù)據(jù)被組織為單獨、線性數(shù)組的交織器)的并行turbo編碼器。
最好進一步加強turbo編碼器的性能。此外,由于turbo編碼器的實現(xiàn)遠比卷積編碼器復雜,因此期望提供具有減少了的復雜度的turbo編碼器實現(xiàn)。這樣,需要一種復雜度減少的、二維交織器,它使用多個線性同余序列。
蜂窩電信系統(tǒng)的特征在于多個移動收發(fā)器,譬如移動電話,它們與一個或多個基站進行通信。每個收發(fā)器包括一個發(fā)射機和一個接收機。
在典型的收發(fā)器中,模擬射頻(RF)信號由天線接收,并由RF部分下變頻至中頻(IF)。信號處理電路執(zhí)行噪聲濾波并且通過模擬自動增益控制(AGC)電路調(diào)節(jié)信號的幅度。然后,IF部分把信號混合成基帶,并把模擬信號轉(zhuǎn)換成數(shù)字信號。然后,數(shù)字信號被輸入基帶處理器用于進一步的信號處理以輸出話音或數(shù)據(jù)。
同樣,發(fā)射機從基帶處理器接收數(shù)字輸入,并把輸入轉(zhuǎn)換成模擬信號。然后,該信號被濾波并由IF級上變頻至中頻。發(fā)射信號的增益被調(diào)節(jié),IF信號被上變頻至RF,用于準備無線電傳輸。
發(fā)射機和接收機間的鏈路是信道。增加基站和相關移動站間信道的信息承載容量的一種方法是提高信號對干擾比(SIR)。SIR通常被表示為接收到的每信息比特能量對接收信號干擾密度的比值。為了增加系統(tǒng)容量,移動站和基站內(nèi)的接收機必須有效地工作在較低信號對干擾比(SIR)下,或者必須增加信道的SIR。為了增加SIR,通常要增加發(fā)射信號的功率,這是代價昂貴的,它增加了對其它移動站的干擾,并因此在許多應用中不切實際?;蛘撸瑸榱藴p少所需的SIR通常采用特別的編碼方案。
通信信號的編碼涉及把冗余信息加入信號。通過戰(zhàn)略上把冗余加入噪聲環(huán)境中發(fā)送的通信信號中,由噪聲信道引入的差錯被減少為期望水平。如香農(nóng)在1948年所示,如果通信信號的信息速率低于信道容量,則可以達到期望的噪聲水平而無須減少信息速率。如果噪聲環(huán)境中未采用冗余,則難以或者不可能獲得無差錯的性能。
設計了許多編碼和解碼系統(tǒng)來控制在通信系統(tǒng)中信息傳輸期間發(fā)生的與噪聲和干擾有關的誤差。在設計高度可靠的現(xiàn)代數(shù)字通信系統(tǒng)時,編碼是重要的考慮。
在噪聲或衰落環(huán)境中高效工作的能力在碼分多址(CDMA)無線通信系統(tǒng)中特別重要,其中瑞利衰落的信號環(huán)境和來自其它用戶的同信道干擾是常見的。瑞利衰落由移動站位移引起的接收信號中的多普勒頻偏移造成。同信道干擾在CDMA通信系統(tǒng)保持多個系統(tǒng)用戶時發(fā)生,每個附加用戶額外地助長了同信道干擾。同信道干擾一般比其它形式的信道噪聲大,譬如,附加的白高斯噪聲(AWGN)。
在瑞利衰落的信號環(huán)境中,已發(fā)射通信信號的功率電平按照瑞利分布波動。功率一般在10dB到50dB的動態(tài)范圍內(nèi)波動。衰落的持續(xù)時間是如蜂窩電話這樣的移動站的速度、為該移動站分配的頻率信道、以及總信號環(huán)境的函數(shù)。隨著移動單元的速度增加,衰落持續(xù)時間減少,導致較短的突發(fā)差錯。隨著移動單元速度的減少,衰落持續(xù)時間增加,導致較長的突發(fā)差錯。
為了改進噪聲和瑞利衰落環(huán)境中無線通信系統(tǒng)的性能,通常采用跟隨信號編碼器的交織器。交織器擴展來自編碼器的碼字輸出,使得給定碼字的單獨比特彼此分開并在不同時間被發(fā)送。結果,給定編碼的單獨比特遭受獨立的衰落,其中受到突發(fā)差錯影響的比特屬于幾個碼字。在接收機處,接收到的信號采樣在解碼前被去交織。這樣,突發(fā)差錯的效應散布于報文,從而能用原始的糾錯碼恢復數(shù)據(jù)。存在幾種類型的交織器,包括對角線、卷積、塊間和塊交織器。
Turbo碼是兩個或多個組成碼的串行串接或并行串接,由一個或多個編碼交織器分開。通常采用Turbo編碼器和解碼器來改進差錯控制并減少所需的SIR。Turbo碼通常用相對有效的迭代算法來解碼,從而在接近香農(nóng)限制的信噪比(SNR)處達到低差錯率。作為Turbo碼的基本部分,必須在組成代碼的編碼器和解碼器之間分別插入代碼交織器和去交織器。Turbo碼的性能取決于代碼交織器的長度和結構。過去用具有偽隨機結構的交織器已經(jīng)達到了良好的turbo編碼性能。
美國專利申請?zhí)?9/205511、由D.Rowitch等人于1998年12月4日提交的、題為“TURBO CODE INTERLEAVER USING LINEAR CONGRUENTIAL SEQUENCES”(代理案卷號QCPA720)中揭示并要求了特別有利的交織器設計,該專利發(fā)明的原理通過引用被結合于此。Rowitch等人的交織器根據(jù)個人電腦上允許的仿真提供了許多優(yōu)點。然而,需要用硬件(即,蜂窩電話)有效地實現(xiàn)該交織器。
因此,本領域中需要一種用硬件實現(xiàn)Rowitch等人主張的原理的系統(tǒng)和方法,使得該原理可以被結合在蜂窩電話中使用的集成電路或芯片中。
概述本發(fā)明的交織器針對本領域中的需求。發(fā)明的交織器包括第一計算單元,用于接收輸入地址并且對其響應而在第一時鐘周期期間計算第一順序交織的地址。包括第二計算單元,用于接收輸入地址并且對其響應而在第一時鐘周期期間計算第二順序交織的地址。發(fā)明的交織器還包括比較器,用于確定第一還是第二順序交織的地址無效并對其響應而產(chǎn)生信號。比較器的輸出把控制信號提供給開關,后者選擇第一或第二順序交織的地址作為第一時鐘周期的輸出交織地址。
在說明性實施例中,第一和第二計算單元實現(xiàn)下列表達式A=bitrev(row)·2c+{(col+1)·c(i)}modC,其中A是經(jīng)交織的地址,“行”是5LSB,“列”是輸入線性地址的c MSB,e是列數(shù),而c(i)是查找表的輸出,其中“i”是當前行數(shù)。
交織器被設計成響應方向控制信號而控制所述交織器關于所述輸入地址在正向或反向上移動。包括了一種機制,用于提供關于輸入地址的地址偏置。圖中所示的地址偏置存儲器86以及加載計數(shù)器84的能力使交織器能在交織器序列中的任意期望點開始。從Rowitch等人的專利中的算法中可知,從開始到結束都需要運行交織器——沒有用于在序列中隨機點處開始的指定方法。通過預先存儲交織器序列中期望點的地址偏置,交織器序列可以在那些期望點處開始,或在正向或在反向運行。
發(fā)明的交織器提供了由CDMA2000標準使用的LCS turbo交織器算法的唯一實現(xiàn)。
附圖簡述
圖1是并行串接的turbo編碼器的框圖。
圖2是可以在圖1的并行串接的turbo編碼器內(nèi)使用的交織器框圖。
圖3是可以結合圖2的交織器使用的組成編碼器的框圖。
圖4是turbo編碼器的頂層框圖,它帶有兩個卷積編碼器和按照本原理構造的交織器。
圖5是示出圖4交織器細節(jié)的簡化框圖。
圖6是結合當前公開的實施例原理的turbo解碼器的說明性實現(xiàn)框圖。
詳細說明按照一個實施例,如圖1所述,并行串接的turbo編碼器10,即turbo編碼器10包括第一和第二編碼器12、14、交織器16、以及多路復用器18。第一編碼器12和交織器16用于接收編碼器輸入數(shù)據(jù)20,它一般是用戶信息或者控制數(shù)據(jù)。第一編碼器12輸出系統(tǒng)碼元22,它一般是原始輸入比特20的復制品,以及一致校驗碼元24。第二編碼器14用于接收交織器16經(jīng)交織的輸出26,并用于輸出第二組一致校驗碼元28。由第二編碼器14產(chǎn)生的系統(tǒng)碼元(未示出)被抑制,且第一和第二編碼器12、14剩下的相應輸出22、24、28由多路復用器18多路復用成輸出數(shù)據(jù)流30。
可以并聯(lián)加入附加的編碼器和交織器以減少編碼率,從而提供提高了的前向糾錯。或者,可以截去某些系統(tǒng)碼元22和/或奇偶校驗碼元24以增加編碼率并提供改進了的頻譜效率。
第一和第二編碼器12、14可以是本領域已知的各類編碼器,包括分組編碼器和卷積編碼器。Bernard Sklar所著的Digital Communications 245-380(1988)中描述了示例性分組編碼器和卷積編碼器,該文通過引用被結合于此。第一和第二編碼器12、14最好是具有相對小約束長度K的卷積編碼器,譬如K=4,從而由于低約束長度減少了相應解碼器(未示出)的復雜度,因此提供減少了的復雜度。第一和第二編碼器12、14還最好是遞歸的系統(tǒng)卷積(RSC)編碼器,如本領域已知。如下所述,交織器16最好是二維交織器。
一般而言,第一和第二編碼器12、14為每個接收到的比特20輸出兩個奇偶校驗碼元24、28,為每個編碼器12、14產(chǎn)生編碼率R=1/2。然而,由于來自第二編碼器14的系統(tǒng)比特被截去,因此turbo編碼器10的總編碼率為R=1/3。
如圖2所示,按照一個實施例的二維(2-D)、線性同余序列(LCS)交織器100包括四張查找表(LUT)102、104、106、108、七個二輸入多路復用器(MUX)110、112、114、116、118、120、122,一個R-輸入MUX124、一個行計數(shù)器126、第一和第二比特倒置邏輯塊128、130、一個地址驗證模塊132、多個(R個)列下標或行下標寄存器134、136、138、140(為了簡化被示出為四個寄存器),用于標記列下標復位的寄存器142、第一和第二k位乘法器144、146、以及四個k位加法器148、150、152、154。LCS遞歸發(fā)生器156由虛線包圍部分描述。交織器100可以用于圖1的并行串接turbo編碼器中,或者,交織器100可用于串行串接turbo編碼器內(nèi),其中交織器100中放有外部和內(nèi)部組成碼,這能由本領域的技術人員理解。
交織器100的大小為N,它小于或等于2m并且大于2m-1。行數(shù)R乘以列數(shù)C等于2m。列數(shù)C等于2k,即k=log2C。行數(shù)R等于2r,即r=log2R。
地址確認模塊132最好用被配置為移位寄存器和加法器的離散門邏輯來實現(xiàn)。地址確認模塊132用來檢查X輸入是否小于列數(shù)C和Y輸入(行下標)的乘積,與Z輸入(列下標)相加,執(zhí)行如移位和加法功能。地址確認模塊132用來產(chǎn)生一個標志,表示該地址是否無效,即,該地址是否包含應被丟棄的超出2次冪的比特(即,交織器大小是否在2的連續(xù)冪之間)。
如下所述,LCS遞歸發(fā)生器156通過在四個LUT 102、104、106、108的輸入處接收行數(shù)值下標并且產(chǎn)生列下標(地址確認模塊132的Z輸入),從而偽隨機地重排、或攪亂交織器100的每行內(nèi)包含的比特值。本領域的技術人員可以理解,在如圖1所述的并行串接turbo編碼器中,最好防止數(shù)據(jù)元素的物理重排,有利地使用關于由第二編碼器定址的讀取而偽隨機產(chǎn)生的LCS。如下所述并且如本領域已知,第一和第二比特倒置邏輯塊128、130用來按照預定義的比特倒置規(guī)則重排或攪亂交織器100內(nèi)的行。
LUT 102、104、106、108可以用本領域已知的任何存儲媒體來實現(xiàn)。第一LUT102用于存儲系數(shù)c的值。第二LUT 104用于存儲系數(shù)a的值。第三LUT 106用于存儲系數(shù)a對系數(shù)b的冪的值。第四LUT 108用于存儲x(-1)的值。每個LUT 102、104、106、108的大小為r×k個比特。交織器100的總存儲器要求為4r×k個比特加上寄存器134、136、138、140的r×k個寄存器比特。
寄存器143接收表示行數(shù)的比特值,它最初被設為R-1。在每個處理周期中,寄存器142輸出表示列數(shù)的比特值,它最初被設為不等于零。寄存器142從而用來每當行數(shù)周期經(jīng)過所有行就復位列下標。
在每個處理周期中,輸入MUX 110產(chǎn)生或為1或為-1的值,這取決于是否設定了向后運行(RunBackwards)標志。該值被提供給加法器148,它把該值加入標為下一行(NextRow)的比特值。產(chǎn)生的和被提供給行計數(shù)器126的數(shù)據(jù)輸入。值1被提供給行計數(shù)器126的第二輸入。行計數(shù)器126產(chǎn)生一個行值(最初被存儲為寄存器142內(nèi)的R-1),它被提供給第二比特倒置邏輯塊130。該行值還被提供給LUT 102、104、106、108的每一個。該行值還被提供給加法器150,它把該行值加入值1,并把產(chǎn)生的和提供給第一比特倒置邏輯塊128。該產(chǎn)生的和還被提供給MUX 112的第一輸入。
在每個處理周期內(nèi),第一比特倒置邏輯塊128把一個值提供給MUX 114的第一輸入。第二比特倒置邏輯塊130把行下標值提供給MUX 114的第二輸入,還提供給地址確認模塊132的Y輸入。地址確認模塊132接收X輸入處的值N。地址確認模塊132根據(jù)Z輸入處存儲的系數(shù)接收一個值。LCS地址確認模塊132計算C和Y輸入值的乘積,把該乘積加入Z輸入值,并檢查結果是否大于或等于X輸入值N。如果經(jīng)計算的值大于或等于N,則地址確認模塊132輸出值1。否則,輸出值為0。輸出值是標為Addr_GT_N的標志,它在被設為1時表示交織器大小處在2的連續(xù)冪之間,使得超出2的較低次冪的比特應被丟棄。
Addr_GT_N值作為選擇器輸入被提供給MUX 112、114、120和122。如果Addr_GT_N值被設為1,則MUX 112選擇其第一輸入。作為MUX 112輸出的所選輸入是經(jīng)交織的NextRow值。如果Addr_GT_N值被設為1,則MUX 114選擇其第一輸入。作為MUX 114輸出的所選輸入表示最后一行的下標值。
LCS遞歸發(fā)生如下進行。在每個處理周期內(nèi),表示系數(shù)c的k位值從第一LUT102被發(fā)送至數(shù)據(jù)通路k位加法器152。值a從第二LUT 104被發(fā)送至MUX 116的第一輸入。表示a的b次冪的值從第三LUT 106被發(fā)送至MUX 116的第二輸入。MUX116接收選擇器輸入處的RunBackwards標志。如果RunBackwards標志為1,則MUX116選擇其第二輸入并把所選值,一個k位值,提供給乘法器144。否則,MUX 116把它的第一輸入,一個k位值,提供給乘法器144。值x(-1)從第四LUT 108被發(fā)送至MUX 118的第一輸入。MUX 118在第二輸入處接收從MUX 124輸出的k位值。MUX 118在選擇器下標處接收列下標值。列下標值最初被設為不等于零。如果列下標值為1,則MUX 118選擇其第二輸入。否則,MUX 118選擇其第一輸入。所選輸入值,一個k位值,被提供給乘法器144。從乘法器144產(chǎn)生的乘積被提供給k位加法器152。數(shù)據(jù)通路k位加法器152最好是可編程加法器/減法器,如本領域已知。當交織器100向后運行時,加法器152減去值c。
k位加法器152在每個處理周期內(nèi)把一個輸出值提供給地址確認模塊132的Z輸入。加法器152的輸出還被提供給MUX 120的第一輸入并被提供給第一到第(R-1)個行寄存器136、138、140的每一個。加法器152的輸出還作為k位輸入值被提供給MUX 122的第一輸入。
MUX 120從k位加法器154接收第二輸入值。如果MUX 120的選擇器輸入被設為1,則MUX 120選擇其第一輸入。否則,MUX 120選擇其第二輸入。所選輸入被提供給第零個行寄存器134。每個行寄存器134、136、138、140把一個輸出值提供給MUX 124的相應輸出。此外,第零個行寄存器134的輸出值被提供給乘法器146。MUX 124接收選擇器輸入處的行值(行計數(shù)器126的輸出)。由MUX 124選擇的行寄存器輸入取決于選擇器輸入處行值的值。這樣,當行值等于相應的行寄存器號時,每個行寄存器134、136、138、140被更新,而當標志Addr_GT_N等于零時,也啟用第零個行寄存器134。
R=0的k位初始輸入值b被提供給乘法器146。乘法器146還接收從第零個行寄存器134輸出的值。乘法器146把兩個接收到的值相乘并把乘積提供給k位加法器154。數(shù)據(jù)通路k位加法器154還接收R=0的初始值c。數(shù)據(jù)通路k位加法器154最好是可編程加法器/減法器,如本領域已知。當交織器100向后運行時,加法器154減去初始值c。加法器154把兩個接收到的值相加(或,按照已編程那樣,相減)。產(chǎn)生的和,一個k位值,被提供給MUX122的第二輸入。
如果MUX 122的選擇器輸入被設為1,它就選擇其第一輸入。否則,MUX 122選擇其第二輸入。MUX 122把所選的輸入作為最后一列的下標值輸出。下一比特值的地址是R和來自MUX 122的最后一行下標值的乘積,與來自MUX 114的最后一列下標值輸出相加。
在一個實施例中,按照下列恒等式產(chǎn)生周期為M的LCSx(n+1)=(ax(n)+c)modM整數(shù)a、c和M滿足下列三個條件(1)c與M互質(zhì)。(2)a-1一定是p的倍數(shù),其中p是除盡M的任一質(zhì)數(shù)。當M為4的倍數(shù)時,a-1一定是4的倍數(shù)。(3)x(0)是種子值,它可以是任意整數(shù)。為了簡化實現(xiàn),M最好被選為2的冪數(shù)。這樣,a的形式為4p+1,而c可以是任意奇數(shù)。注意到上面的x(0)用來表示初始條件,而x(-1)用于表示結合圖2所述的實施例中的初始條件。對于所使用的不同數(shù)字不加權。
按照一個實施例的2-D、LCS交織器如下指定令交織大小為K=2N,交織器被規(guī)定為R行C列的矩形矩陣,其中R和C都是2的冪數(shù)。要被交織的數(shù)據(jù)逐行地被寫入矩陣。數(shù)據(jù)行首先按照任何常規(guī)交織規(guī)則被交換(即,被交織)。數(shù)據(jù)行最好按照行下標所用的比特倒置規(guī)則被交換。在每一行內(nèi),列(即,數(shù)據(jù)元素,因為每行中每列僅有一個數(shù)據(jù)元素)按照由相關LCS指定的規(guī)則而被交換。與兩個相異行相關的LCS最好是不同的,但或者也可以是相同的。在所有行的交換后,數(shù)據(jù)逐列地被讀出來產(chǎn)生經(jīng)交織的序列。本領域的技術人員可以理解,可以通過從長度為2N的交織器中刪除無效地址而產(chǎn)生長度小于2N大于2N-1的交織器。
在一個實施例中,2-D、LCS交織器包括下列規(guī)格交織器大小為32(即,N=5)數(shù)據(jù)組被定義為{d(0),d(1),d(2),...d(31)}。交織器組織成為具有四行、每行八個元素的數(shù)組。以下列方式逐行填入數(shù)據(jù)元素d(0)d(1)d(2)d(3)d(4)d(5)d(6)d(7)d(8)d(9)d(10)d(11)d(12)d(13)d(14)d(15)d(16)d(17)d(18)d(19)d(20)d(21)d(22)d(23)d(24)d(25)d(26)d(27)d(28)d(29)d(30)d(31)]]>以二進制(00,01,10,11)表示的行下標最好是比特倒置的(即,00,10,01,11),且行被交換,得到d(0)d(1)d(2)d(3)d(4)d(5)d(6)d(7)d(16)d(17)d(18)d(19)d(20)d(21)d(22)d(23)d(8)d(9)d(10)d(11)d(12)d13d(14)d(15)d(24)d(25)d(26)d27d(28)d(29)d(30)d(31)]]>比特倒置用來按照預定義的比特倒置算法來攪亂交織器的行。比特倒置算法的應用提供了交織器行之間期望的時間分離。然而,比特倒置對于交織器的實現(xiàn)并非必須。
在特定實施例中,按照下列方程產(chǎn)生交換LCSx1(n+1)=(5x1(n)+7)mod8,其中x1(0)=3,x2(n+1)=(x2(n)+5)mod8, 其中x2(0)=0,x3(n+1)=(5x3(n)+3)mod8,其中x3(0)=4,以及
x4(n+1)=(x4(n)+3)mod8,其中x4(0)=3。
對于四行分別由{3,6,5,0,7,2,1,4}、{0,5,2,7,4,1,6,3}、{4,7,6,1,0,3,2,5}和{7,2,5,0,3,6,1,4}給出交換模式。因此,在應用了列交換之后,第一行成為(d(3)d(6)d(5)d(0)d(7)d(2)d(1)d(4)),第二行成為(d(16)d(21)d(18)d(23)d(20)d(17)d(22)d(19)),第三行成為{d(12)d(15)d(14)d(9)d(8)d(11)d(10)d(13)},而第四行成為{d(31)d(26)d(29)d(24)d(27)d(30)d(25)d(28)}。
在所有列在它們相應的行內(nèi)被交換后,經(jīng)交織的數(shù)據(jù)矩陣型式如下d(3)d(6)d(5)d(0)d(7)d(2)d(1)d(4)d(16)d(21)d(18)d(23)d(20)d(17)d(22)d(19)d(12)d(15)d(14)d(9)d(8)d(11)d(10)d(13)d(31)d(26)d(29)d(24)d(27)d(30)d(25)d(28)]]>交織后矩陣內(nèi)的數(shù)據(jù)逐列被讀出,產(chǎn)生下列經(jīng)交織的序列{d(3),d(16),d(12),d(31),d(6),d(21),d(15),d(26),d(5),d(18),d(14),...,d(11),d(30),d(1),d(22),d(10),d(25),d(4),d(19),d(13),d(28)}。如果期望長度為30的交織器,則可以通過刪除數(shù)據(jù)元素d(30)和d(31)而縮短如上產(chǎn)生的交織器,產(chǎn)生下面經(jīng)交織的序列{d(3),d(16),d(12), d(6),d(21),d(15),d(26),d(5),d(18),d(14),...,d(11), d(1),d(22),d(10),d(25),d(4),d(19),d(13),d(28)}。
交織器結構內(nèi)采用的LCS根據(jù)期望或在正向或在反向中產(chǎn)生,為了turbo解碼中與MAP解碼器的最優(yōu)使用。在一個實施例中,倒置序列發(fā)生由下列方程給出x(n)=(aβx(n+1)-c)modM其中β=(M/2)-1應該注意的是,上述方程中使用的項β代表結合圖2實施例描述的系數(shù)b。這樣,LCS的產(chǎn)生要求用3R個參數(shù)唯一地定義每個交織器,其中R是行數(shù)。需要相對短的log2(C)×log2(C)乘法器。由于模數(shù)操作,因此不必要產(chǎn)生超出比特單元log2(C)的比特。需要一組R個寄存器來保持R個同余序列的中間結果。
由于每行的參數(shù)x(0)、a和b不同,因此交換序列有許多不同的可能。期望進行搜索來優(yōu)化與特定turbo碼一起使用的交織器參數(shù)。
在圖3中,為了CDMA數(shù)字無線通信系統(tǒng)中所用的特定turbo碼優(yōu)化按照一個實施例的組成編碼器200。編碼器200包括七個模2加法器202、204、206、208、210、212、214和三個比特單元216、218、220。比特單元216、218、220可以用一個三位寄存器來實現(xiàn),或者用三個一位寄存器來實現(xiàn)。模2加法器202、204、206、208、210、212、214以精確的方式與比特單元216、218、220耦合,以便產(chǎn)生一組期望點反饋抽頭。這樣,加法器202用于接收輸入比特。加法器202還把比特單元216耦合至加法器204和206。比特單元216與比特單元218耦合,并且與加法器204和206耦合。比特單元218與比特單元220耦合,并且與加法器208和210耦合。加法器210與加法器202耦合。加法器204與加法器212耦合。加法器206與加法器208耦合。加法器208與加法器214耦合。比特單元220與加法器210、214和212耦合。加法器212、214分別用于輸出第一和第二碼元。
本領域已知,誤差性能可以用組成解碼器(未示出)內(nèi)誤差事件的輸入和輸出權重來表征。參見如S.Benedetto和G.Montorsi所著的Unveiling Turbo CodesSome Results on Parallel Concatenated Coding Schemes,登載在42 IEEE Trans.Info. Theory 409-28(1996年3月)上。誤差事件的輸入權重是比特誤差數(shù),而誤差事件的輸出權重是編碼碼元誤差的數(shù)目。輸入權重1的誤差事件會清楚地與全零態(tài)分開出來并且不再重新合并(1會在移位寄存器內(nèi)無限循環(huán),順次積累越來越多的輸出權重)。這由編碼器的遞歸、或反饋部分引起。由于該結構,已經(jīng)示出高信噪比(SNR)下turbo碼的性能由輸入權重為2的輸出誤差事件來支配。參見同前??梢杂盟^有效自由距離漸近線來精確地預測turbo碼誤差下限。有效自由距離是輸入權重為2的所有誤差事件的最小輸出權重。長度短的輸入權重2誤差事件一般會引起最小距離誤差事件。對于圖3的編碼器200而言,反饋多項式為,1+D2+D3,而所有可能的輸入權重2誤差事件的形式為DK(1+D7j),其中j=1,2,K,而k是范圍在0,K,K-7j范圍內(nèi)的任意移位(假定K為交織器大小)。本領域的技術人員可以理解,這可以通過檢查組成編碼器200的網(wǎng)格而容易地驗證。
應該注意到,圖3實施例的交織器大小被標為K,而圖2實施例的交織器大小被標為N。技術人員可以理解,使用了不同字母不會造成特別大的區(qū)別。
例如,假定誤差型式DK(1+D7)引起第一解碼器的最小距離誤差事件輸出。Turbo交織器會把兩個誤差(DK,Dk+7)映射到兩個位置(Dn,Dm)。如果|m-n|=7或7的某個倍數(shù),則很可能得到第二解碼器的低距離誤差事件輸出。Turbo交織器的基本目的是防止發(fā)生這種映射。即,交織器應該最好把易于第一維中的低權重誤差事件的比特集合映射為產(chǎn)生第二維內(nèi)大量輸出權重的比特。因此,設計交織器的期望方法是試圖防止位于下標(k,k+7j)的比特對映射為位于下標(s,S+7t)的比特對,特別強調(diào)j和t的較小值。這種輸入誤差事件在下表1中列出。對于每個事件而言,用速率1/2、1/3和1/4的正向鏈路turbo碼的適當?shù)慕囟棠J搅谐龅谝唤M成碼的輸出一致校驗權重,如IS-95中所規(guī)定的。
表1輸入權重2誤差事件
如果給定交織器包含形式為Dk1(1+D7)→Dk2(1+D7)的輸入權重2→2映射,則所產(chǎn)生的誤差事件的組成輸出權重對于速率1/2 turbo碼而言將為2+3+3=8。在前面的計算中,系統(tǒng)比特的權重(2)與來自兩個組成編碼器的相應一致校驗權重(3和3)相加。同樣,如果交織器包含形式為Dk1(1+D7)→Dk2(1+D14)的輸入權重2→2映射,則所產(chǎn)生的誤差事件的組成輸出權重對于速率1/2 turbo碼而言將為2+3+6=11,或者對于速率1/3 turbo碼而言為2+6+10=18。
此外,低組成輸出權重的輸入權重4誤差事件可能映射為第二維中低輸出權重的兩個輸入權重2誤差事件。這種映射用4→{2,2}來表示。雖然輸入權重4的組成誤差事件沒有封閉型解決方式,然而下表包含了組成編碼器200的某些低輸出權重誤差事件,其中在使用從IS-95得到的空中接口的CDMA數(shù)字無線通信系統(tǒng)中,組成編碼器200被用作正向鏈路turbo碼的第一組成編碼器。
表2輸入權重4誤差事件
表2(續(xù))輸入權重4誤差事件
例如,如果交織器包含形式為Dk1(1+D3+D4+D5)→{Dk2(1+D7)Dk3(1+D7)}的輸入權重4→{2,2}映射,則所產(chǎn)生的誤差事件的復合輸出權重對于速率1/2 turbo碼而言將為4+2+3+3=12。該復合誤差事件不比由映射Dk1(1+D7)→Dk2(1+D14)引起的誤差事件差很多,后者的復合輸出權重為11。因此,主要的設計目標是優(yōu)化交織器的參數(shù),以便避免上述壞映射類型,或至少使其最小。理想中,具有最低復合輸出權重的壞映射是對避免和/或最小化最重要的映射。在設計特定大小(如,1530)的交織器時,可以優(yōu)化交織器參數(shù),以便使兩類映射(即,權重2→2和權重4→{2,2})最小。該方法產(chǎn)生該特定大小的最佳交織器。應該指出,在設計中,大小為2N的交織器可以被穩(wěn)健地截短為大于2N-1的任意大小(被成為“友好截短”的交織器),對權重4→{2,2}映射的優(yōu)化可能更難以實現(xiàn)。
為了從按照圖3實施例的2D、LCS交織器中獲得大小為2N的友好截短的交織器,進行一項搜索。下表3包含搜索的初始結果。對于每個交織器大小而言,所使用的行數(shù)和所使用的列數(shù)與x(0)、a和c系數(shù)一起被指定。為了實現(xiàn)的簡潔和效率,為所有交織器使用了32行。
表32-D LCS交織器系數(shù)
表3(續(xù))2-D LCS交織器系數(shù)
在替代實施例中,系數(shù)a可能被設為等于1,進行新的搜索,從而從2-D、LCS交織器中獲得大小為2N的友好截短的交織器。正向和反向LCS遞歸方程分別簡化為如下x(n+1)=(x(n)+c)modM,以及x(n)=(x(n+1)-c)modM。
下表4包含搜索的初始結果。為了實現(xiàn)的簡潔和效率,為所有交織器使用了32行。本領域的技術人員可以從表4所示的結果中得知,在所有LCS遞歸中設a等于1不會引起多個所產(chǎn)生的交織器中質(zhì)量的惡化。此外,從設a等于1的簡化中實現(xiàn)的復雜度增益是實質(zhì)上的。例如,不需要圖2實施例所述的第二和第三LUT(用于存儲值a和ab的LUT)。圖2實施例中所述的k位乘法器也是不必要的。從下表4可見,只需要為交織器的每一行指定初始條件x(-1)和加性常數(shù)c。表中未包括較大交織器的系數(shù),表中僅指定了初始搜索結果,這是因為較大交織器的系數(shù)在提交本申請時仍不可用。
表42-D LCS交織器系數(shù)
表4(續(xù))2-D LCS交織器系數(shù)
按照一個實施例,輸入比特的連續(xù)流被送入兩個編碼器,無變化地進入一個,通過交織器進入另一個。在兩個編碼器的輸出處,一致校驗碼元根據(jù)數(shù)據(jù)速率較高的某些編碼速率的某些因素下被一起多路復用成另一個輸出連續(xù)流。如果兩個編碼器的編碼速率均為_,是指對于到來的每個碼元而言,輸出兩個碼元,輸出速率會是輸入速率的三倍,這是因為每個編碼器會發(fā)出一個額外的一致校驗碼元加上信息系統(tǒng)輸出。由于從每個編碼器輸出的信息碼元相同,因此丟棄一個碼元。
圖4是turbo編碼器310的項層框圖,它帶有按照本發(fā)明原理的兩個組成卷積編碼器320和340以及一個交織器360。(本領域的技術人員可以理解,為了實現(xiàn)本發(fā)明,編碼器不需要相同。)每個組成編碼器320和340包括第一異或(XOR)門322。異或門322為每個編碼器320和340提供輸入終端。異或門322是每個編碼器內(nèi)作為單個一比特加法器實現(xiàn)的幾個相同2∶1異或門中的第一個。第一異或322的輸出被輸入第一個一位移位寄存器324,并被分別轉(zhuǎn)送入第二和第三異或門326和328。第一個一位寄存器324是每個編碼器內(nèi)實現(xiàn)的幾個一位寄存器中之一。
第二和第三異或門326和328的第二輸入由第一移位寄存器324的輸出提供。第一移位寄存器324的輸出還被提供給第二移位寄存器330。第三異或門328和第二移位寄存器330為第四異或門334提供第一和第二輸入。第二移位寄存器330還輸出到第三移位寄存器332和第五異或門336。第二異或門326和第三移位寄存器332為第六異或門338提供第一和第二輸入。第四異或門334和第三移位寄存器332為第七異或門342提供第一和第二輸入。
本領域的技術人員可以理解,在說明中,編碼器320和340為K=4速率的1/3卷積編碼器,其前饋發(fā)生器多項式為15octal和17octal。反饋發(fā)生器多項式為13octal。在說明中,turbo解碼器的編碼多項式按1998年末首先發(fā)布的編碼多項式硬連線。
在操作中,信息比特的輸入流xk由第一編碼器320的第一異或門322接收,并由交織器360接收。交織器360以下面詳述的方式交換輸入流,并為第二編碼器340的第一異或門322提供一個輸入。信息比特的輸入流xk通過編碼器被直接饋送,并且作為輸出和一致校驗比特yk0,0和yk0,1一起被提供給第一編碼器320,與yk1,0和yk1,1一起被提供給第二編碼器340。(本領域的技術人員可以理解,編碼器320是“系統(tǒng)”編碼器,由于輸入流xk不經(jīng)改變而通過其中。)這五個輸出信號被多路復用成一個連續(xù)流,并被繼續(xù)傳遞至發(fā)射機內(nèi)的下一個元件(未示出)。
圖5是詳細示出圖4交織器的簡化框圖。由于圖4的編碼器320和340的輸入關于彼此而被交換,因此檢錯要求交換編碼器(如,320)的輸出以匹配其它解碼器(340)的輸入流。同樣,必須去交織第二解碼器(340)的輸出以匹配第一編碼器(320)的輸入流。
困擾仿真交織器的實際實現(xiàn)的問題與產(chǎn)生適當交織器地址的要求有關,因為否則數(shù)據(jù)地址在交織過程期間會變得混亂。這些功能由交織器360實現(xiàn),它在交織過程期間提取適當?shù)牡刂贰?br>
按照本發(fā)明的原理,交織器360把線性地址序列映射為經(jīng)交換的地址序列。經(jīng)交換的地址序列的產(chǎn)生方式與產(chǎn)生比特倒置塊交織器的方式相似,除了塊的給定行中的地址用線性同余序列(LCS)進一步被交換之外。為了產(chǎn)生經(jīng)交織的地址序列,從最頂行開始用線性地址序列填充R×C矩陣,從左至右填充。行數(shù)為R=32=25,矩陣中的列數(shù)為C=2C。在這個特定交織器中,行數(shù)固定為32,因此R等于25?!癈”等于列數(shù)。例如,如果交織器單元的數(shù)目為128,則會有四列和32行,C會等于四。然后,每行內(nèi)的地址按照行特定的LCS被攪亂。于是,矩陣的行按照行下標所用的比特倒置規(guī)則被攪亂。最后,從最左列開始從矩陣中讀取地址,從上至下讀取,并且進行到右邊。每行所用的LCS的形式為xi(n+1)=xi(n)+c(i)[1]其中i是行下標,c(i)是奇數(shù)常數(shù)模C。對于cdma2000 turbo交織器360而言,每行的初始狀態(tài)由xi(0)=c(i)給出,因此可以計算上述方程而無須存儲前面的值。這樣,xi(n)=c(i)·(n+1) [2]因此,假定線性序列0,...,K-1中的任意地址(A),則可以如下計算相應的經(jīng)交織的地址A=bitrev(row)·2C+{(col+1)·c(i)}modC[3]其中A是經(jīng)交織的地址,“row”是輸入線性地址的5個最低有效位(LSB),“col”是輸入線性地址的c個最高有效位(MSB),C是列數(shù),c(i)是查找表的輸出,其中“i”是當前行號。c(i)系數(shù)用查找表(LUT)來實現(xiàn)。交織器360為每個所支持的C值包括一個單獨的查找表。為了為大小屬于2k-1<K<=2k的交織器產(chǎn)生經(jīng)交織的地址序列,相應于C=2k-5而選擇c(i)LUT,并通過方程(3)產(chǎn)生地址。任何大于K-1的地址都被丟棄。由于交織器按列而非按行被“讀出”,因此決不會有兩個或多個連續(xù)的壞地址。在線性數(shù)組中,值會按列被讀出,意指在開始行2之前會讀出行1的所有元素。本交織器按列被讀取。這通過把行符號放置在交織器地址的較高部分中而在交織器方程中被指定。cdma2000標準中可以找到大小為512,1024,...,32768的交織器的查找表。
對于非2次冪的交織器長度必須截短LCS交織器。為了隨機訪問交織器,訪問點前的截短數(shù)量必須已知,并且能被加載到交織器函數(shù)內(nèi)。為了實現(xiàn)高解碼速率,期望產(chǎn)生每時鐘周期一個有效的交織器地址。如上所述,(方程3)的交織器算法不能產(chǎn)生兩個連續(xù)的無效地址。本發(fā)明利用了這個屬性。如圖5中所述,交織器360用雙計算單元362和364來實現(xiàn),其中每一個都用來實現(xiàn)方程3。各計算單元362和364分別包括比特倒置單元366、370以及系數(shù)查找表368和372。數(shù)據(jù)計算通路按照上述CDMA2000表中來實現(xiàn)。即,各計算單元用于實現(xiàn)上面方程3的算法。
第一計算單元362計算了當前被交織的地址,而第二計算單元364計算了下一個交織器地址。因此,交織器360總是每時鐘周期產(chǎn)生一個有效的經(jīng)交織的地址。
如果,在第一計算單元362的輸出處值n+m<N,其中n是列地址、m是行地址,N是交織器長度,則由閾值檢測器374檢測壞地址并且輸出“壞地址”信號。由閾值檢測器374輸出的壞地址信號控制交織器選擇多路復用器376。多路復用器376根據(jù)壞地址信號把第一計算單元62的輸出或者第二計算單元362的輸出選作為交織器360的輸出。
每個所產(chǎn)生的無效地址還使地址偏置計數(shù)器384遞增。地址偏置計數(shù)器384與外部控制器382和地址偏置寄存器386一起被包括在地址偏置電路380內(nèi),它可以用隨機存取存儲器(RAM)來實現(xiàn)。地址偏置電路380操縱輸入線性地址來通過第一加法器378補償被截短的地址。隨機訪問的支持通過使用可加載的地址偏置計數(shù)器384來實現(xiàn)。在隨機訪問交織器數(shù)組中的線性地址之前把地址偏置寄存器386設為截斷數(shù)量交織器360從地址數(shù)組中的任何單元處開始。
實現(xiàn)turbo解碼器的常用方法是通過為組成解碼器使用對數(shù)MAP的解碼器。對數(shù)MAP解碼器要求通過編碼網(wǎng)格進行正向和反向迭代,它一般又要求turbo交織器既工作在反向又工作在正向。正向被定義為從線性地址0到最大要求的地址操作交織器。相反地,反向被定義為從最高線性地址到線性地址0運行交織器。可能以僅要求正向交織器操作的方式來實現(xiàn)基于對數(shù)MAP的turbo解碼器,然而考慮到就附加臨時存儲來說這將是極其代價昂貴的。為了減少對數(shù)MAP解碼器的狀態(tài)度量存儲,對數(shù)MAP解碼器通常用滑動窗來實現(xiàn)。交織器便于滑動窗的使用,它不僅向后運行,而且能隨機訪問交織器數(shù)組。為此,本發(fā)明的交織器60被設計成既能正向運行又能反向運行。
為了在反向運行而使交織器算法不變,但雙計算單元的輸入被改變。與分別工作在input_address+address_offset(輸入地址+地址偏置)和input_address+address_offset+1(輸入地址+地址偏置+1)上的計算單元不同,雙計算單元工作分別工作在input_address+address_offset和input_address+address_offset-1上。這可由圖6解碼器400提供的正向反向信號的命令下,用第二加法器388和第二多路復用器90來實現(xiàn),這在下面詳細描述。該信號來自解碼器的控制邏輯。即,解碼器會通過它當前執(zhí)行的操作性質(zhì)確定它應該在正向還是在反向操作交織器。
此外,為了保持正確的截短計數(shù)(或地址偏置),由控制器382驅(qū)使地址偏置計數(shù)器34充當向下計數(shù)器,而非正向中的向上計數(shù)器。
簡言之,本發(fā)明原理提供了由CDMA 2000標準使用的LCS turbo交織器算法的唯一實現(xiàn)。Turbo交織器算法利用了CDMA 2000交織器算法的巧妙特性來產(chǎn)生強有力的設計。
圖6是結合了本發(fā)明原理的turbo解碼器的說明性實現(xiàn)框圖。Turbo解碼器400是常規(guī)設計,除了按照本發(fā)明原理實現(xiàn)的交織器和去交織器之外。Turbo解碼器400接收由編碼器輸出的五個信號(一般在信道上)并且實現(xiàn)帶反饋的迭代過程,第一軟輸入軟輸出(SISO)解碼器410借此接收數(shù)據(jù)流以及非交織的一致校驗比特,并輸出到交織器420。
在圖6中,x0...XK-1是信息碼元向量,y00...yK-10是來自第一編碼器320的一致校驗碼元向量,而y01...yK-11是來自圖4的turbo編碼器310的第二編碼器340的一致校驗碼元向量。此外,z0...ZK-1是來自每個SISO解碼器的先驗信息向量,L0...LK-1是對數(shù)似然比向量,最后,u0...uK-1是已解碼的數(shù)據(jù)比特向量。
接收到的經(jīng)交織信號以及本地交織器420的輸出為第二SIS0解碼器430的輸入,后者具有通過硬判決單元450輸出到第一去交織器440的輸出及至第二去交織器460的輸出。本地去交織器420、去交織器440和去交織器460的實現(xiàn)與turbo編碼器310內(nèi)所用的交織器360的實現(xiàn)相同。
Turbo解碼器400每次解碼一個編碼器(320或340)的輸出。SIS0解碼器410和430傳遞彼此間加權的誤差以提供給下一個解碼器先驗指示,表示解碼硬判決比特應該是什么。本質(zhì)上,該過程是迭代的,因為每個步驟都為下一個解碼器提供增漲的更多權重,從而幫助所執(zhí)行的解碼過程。因此,每個解碼器410和430的工作在下一個解碼步驟中被影響。
硬判決單元450用來把軟輸出碼元轉(zhuǎn)換成硬輸出比特,這可由本領域的技術人員所理解并能用本領域常用的比較器來實現(xiàn)。硬判決單元450的輸出被去交織,以提供解碼器400的已解碼數(shù)據(jù)比特向量輸出。
這樣,描述了一種新穎并改進了的turbo碼交織器。本領域的技術人員可以理解,雖然這里公開的實施例用蜂窩電話系統(tǒng)的上下文來描述,然而本發(fā)明的特征也提供給任何形式的通信系統(tǒng),包括,如衛(wèi)星通信系統(tǒng)。本領域的技術人員還可以理解,這里描述的實施例可用于或編碼數(shù)據(jù)或編碼話音通信。還可以理解,上述說明中可能涉及的數(shù)據(jù)、指令、命令、信息、信號、比特、碼元和碼片最好由電壓、電路、電磁波、磁場或其粒子、光場或其粒子、或它們的任意組合來表示。
本領域的技術人員可以理解,結合這里所描述的實施例來描述的各種說明性的邏輯塊、模塊和算法步驟的實現(xiàn)或執(zhí)行可以用數(shù)字信號處理器(DSP)、專用集成電路(ASIC)、離散門或晶體管邏輯、諸如寄存器和FIFO之類的離散硬件組件、執(zhí)行一組固件指令的處理器、或者任意常規(guī)的可編程軟件模塊和處理器。處理器最好是微處理器,然而或者,處理器可以是任何常規(guī)的處理器、控制器、微控制器或狀態(tài)機。軟件模塊可以駐留于RAM存儲器、快閃(flash)存儲器、寄存器、硬盤、或本領域中已知的任何其它形式的存儲媒體中。
上述優(yōu)選實施例的描述使本領域的技術人員能制造或使用本發(fā)明。這些實施例的各種修改對于本領域的技術人員來說是顯而易見的,這里定義的一般原理可以被應用于其它實施例中而不使用創(chuàng)造能力。因此,本發(fā)明并不限于這里示出的實施例,而要符合與這里揭示的原理和新穎特征一致的最寬泛的范圍。
權利要求
1.一種裝置,包括交織器,用于接收數(shù)據(jù)傳輸并對其進行重排,在交織器中,所述數(shù)據(jù)傳輸被視為一個通過以行順序向矩陣添加數(shù)據(jù)的矩陣,在輸出期間,交織器重排數(shù)據(jù)傳輸,使矩陣中行的順序根據(jù)一比特倒置算法而改變,矩陣的每一行中數(shù)據(jù)的順序根據(jù)一線性同余序列遞歸而偽隨機地改變,使至少兩行以不同的順序被改變,并且以行順序從矩陣中取出數(shù)據(jù);以及耦合至所述交織器的解碼器。
2.如權利要求1所述的裝置,其特征在于,所述交織器包括用于實現(xiàn)下列表達式的裝置A=bitrev(row)·2c+{(col+1)·c(i)}modC,其中A是第一順序交織的地址,beirev是對包括5個最低有效比特的行中的比特順序進行倒轉(zhuǎn)的函數(shù),col是輸入地址的c個最高有效比特,mod是在一個數(shù)除以另一個數(shù)時返回余數(shù)的函數(shù),C是列數(shù),c(i)是查找表的輸出,其中“i”是當前行號。
3.如權利要求2所述的裝置,其特征在于,所述第二裝置包括用于實現(xiàn)下列表達式的裝置A=bitrev(row)·2c+{(col+1)·c(i)}modC,其中A是第二順序交織的地址,beirev是對包括5個最低有效比特的行中的比特順序進行倒轉(zhuǎn)的函數(shù),col是輸入線性地址的c個最高有效比特,mod是在一個數(shù)除以另一個數(shù)時返回余數(shù)的函數(shù),C是列數(shù),c(i)是查找表的輸出,其中“i”是當前行號。
4.如權利要求3所述的裝置,其特征在于還包括用于保存系數(shù)的多個查找表,其中一個查找表對應于一列。
5.如權利要求1所述的裝置,其特征在于還包括第一編碼器,適用于接收第一輸入;以及第二編碼器,適用于接收第一輸入的經(jīng)交織的形式。
6.如權利要求5所述的裝置,其特征在于還包括用于標識壞地址的閾值檢測器。
7.如權利要求6所述的裝置,其特征在于,所述閾值檢測器適用于在檢測到壞地址時輸出壞地址信號。
8.如權利要求7所述的裝置,其特征在于還包括第一地址計算單元;第二地址計算單元;以及多路復用器,適用于響應于壞地址信號而選擇第一和第二地址計算單元中的一個。
9.如權利要求8所述的裝置,其特征在于,所述第一地址計算單元計算當前交織器地址,所述第二地址計算單元計算下一個當前交織器地址。
10.如權利要求1所述的裝置,其特征在于,所述解碼器是一軟輸入軟輸出解碼器。
11.如權利要求10所述的裝置,其特征在于還包括耦合至所述軟輸入軟輸出解碼器的第二解碼器。
12.如權利要求11所述的裝置,其特征在于,所述第二解碼器是硬判決解碼器。
13.一種交織器控制器,包括地址偏移發(fā)生器,具有用于接收壞地址指示符的第一輸入和用于提供地址偏移的輸出;耦合至所述地址偏移發(fā)生器的控制器,用于控制所述地址偏移發(fā)生器以提供一地址偏移來補償無效地址;以及耦合至所述地址偏移發(fā)生器和所述控制器的存儲器控制器,用于存儲當前地址。
14.如權利要求13所述的交織器控制器,其特征在于,所述地址偏移發(fā)生器包括用于管理輸入地址的地址偏移計數(shù)器;外部控制器;以及地址偏移寄存器。
15.如權利要求14所述的交織器控制器,其特征在于,所述地址偏移發(fā)生器還包括耦合至所述地址偏移計數(shù)器的加法器。
16.如權利要求15所述的交織器控制器,其特征在于,所述地址偏移發(fā)生器管理輸入地址以通過加法器補償經(jīng)截短的地址。
17.如權利要求15所述的交織器控制器,其特征在于,所述地址偏移寄存器被設為等于經(jīng)截短的地址。
18.如權利要求13所述的交織器控制器,其特征在于,所述控制器適用于選擇一起始地址。
19.如權利要求18所述的交織器控制器,其特征在于,所述地址偏移發(fā)生器適用于從起始地址開始生成正向遞增的地址。
20.如權利要求18所述的交織器控制器,其特征在于,所述地址偏移發(fā)生器適用于生成反向遞減的地址,其中所述地址偏移發(fā)生器從所述起始地址開始遞減地址。
21.一種交織器控制器,包括第一裝置,用于檢測無效地址;以及第二裝置,用于響應于檢測到無效地址而生成地址偏移。
22.如權利要求21所述的交織器控制器,其特征在于,所述用于生成地址偏移的第二裝置包括用于管理輸入地址的地址偏移計數(shù)器;外部控制器;以及地址偏移寄存器。
23.如權利要求22所述的交織器控制器,其特征在于,所述用于生成地址偏移的第二裝置管理輸入地址以通過第一地址補償經(jīng)截短的地址。
24.如權利要求22所述的交織器控制器,其特征在于,所述用于生成地址偏移的第二裝置將地址設為等于經(jīng)截短的地址。
25.如權利要求22所述的交織器控制器,其特征在于,所述用于檢測無效地址的第一裝置還包括用于檢測交織器的無效輸入地址的裝置。
26.如權利要求21所述的交織器控制器,其特征在于,所述交織器控制器用于控制一交織器,所述交織器被構造成用于生成到turbo解碼器的交織輸入。
27.如權利要求22所述的交織器控制器,其特征在于,所述地址偏移等于多個無效地址。
28.一種交織器,包括交織器控制器,用于生成地址偏移;第一計算單元,用于接收所述地址偏移并生成第一地址;以及無效地址指示符單元,用于在第一地址為壞地址時提供指示符。
29.如權利要求28所述的交織器,其特征在于,所述第一計算單元計算當前交織的地址。
30.如權利要求28所述的交織器,其特征在于,所述指示符是無效地址信號。
31.如權利要求28所述的交織器,其特征在于,所述交織器還包括用于計算下一交織器地址的第二計算單元。
32.如權利要求32所述的交織器,其特征在于,所述交織器還包括一多路復用器,用于選擇第一計算單元的輸出或第二計算單元的輸出作為交織器的輸出。
33.如權利要求33所述的交織器,其特征在于,所述多路復用器響應于無效地址信號而選擇輸出。
全文摘要
描述了實現(xiàn)由CDMA2000標準使用的LCS turbo交織器算法的交織器。交織器包括第一計算單元,用于接收輸入地址并且對其響應而在第一時鐘周期期間計算第一順序交織的地址。包括第二計算單元,用于計算輸入地址并且對其響應而在第一時鐘周期期間計算第二順序交織的地址。交織器還包括比較器,用于確定第一還是第二順序交織的地址無效并對其響應而產(chǎn)生信號。比較器的輸出把控制信號提供給開關,后者選擇第一或第二順序交織的地址作為第一時鐘周期的輸出交織地址。交織器還被設計成在正向或反向移動。
文檔編號B64F5/00GK1937473SQ200610142180
公開日2007年3月28日 申請日期2002年2月22日 優(yōu)先權日2001年2月23日
發(fā)明者S·J·霍爾特 申請人:高通股份有限公司