專利名稱::用于移動(dòng)通信系統(tǒng)的維特比/渦輪聯(lián)合譯碼器的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及使用在無(wú)線通信系統(tǒng)中的維特比(Viterbi)/渦輪(Turbo)聯(lián)合譯碼器,特別是涉及一種可用于接收與譯碼語(yǔ)音與數(shù)據(jù)串流的系統(tǒng)。
背景技術(shù):
:錯(cuò)誤控制編碼技術(shù)涉及使用傳輸端的信道編碼器以及接收端的通道譯碼器。信道編碼器接收訊息比特,并按照特定規(guī)則加上冗余(redundancy),以產(chǎn)生較高比特率(bitrate)的編碼數(shù)據(jù)。通道譯碼器利用該冗余以判定實(shí)際被傳送的訊息比特。錯(cuò)誤控制編碼的目的在于減少信道噪聲干擾的影響。錯(cuò)誤句柄大致上可分類成數(shù)據(jù)塊碼(blockcode)以及卷積碼(convolutionalcode)這兩種類型。卷積碼較常被應(yīng)用在無(wú)線語(yǔ)音通信系統(tǒng)中,因?yàn)檎Z(yǔ)音通信對(duì)數(shù)據(jù)重傳率(retransmissionrate)以及延遲(delay)的忍耐度較低。數(shù)據(jù)塊碼則可用來(lái)傳送通量(throughput)要求較高的應(yīng)用,但是必須要容忍較大的延遲時(shí)間。維特比(Viterbi)算法為檢測(cè)最大似然(maximum-likelihood;ML)序列的一種順序正向糾錯(cuò)(trellis)搜索算法,并且是一種用于卷積碼的理想解碼算法。由S.B.Wicker所寫的“數(shù)字通信與存儲(chǔ)的錯(cuò)誤控制系統(tǒng)(ErrorControlSystemforDigitalCommunicationandStorage,PreticeHall,1995)”中有敘述到維特比譯碼器在移動(dòng)通信系統(tǒng)中的應(yīng)用。圖1為一實(shí)際維特比譯碼器所使用的譯碼算法的流程圖。譯碼的步驟包括量化(quantization)、分支矩值(branchmetric)運(yùn)算、路徑矩值更新、存留路徑(survivorpath)記錄、以及輸出判斷的產(chǎn)生。先藉由信號(hào)抽樣以便恢復(fù)接收信號(hào),接著再將其轉(zhuǎn)換成數(shù)字信號(hào)。利用檢測(cè)數(shù)字信號(hào)中框邊界與編碼符號(hào)的位置,達(dá)到數(shù)據(jù)塊的同步。在分支矩值運(yùn)算之后,可以藉由新的分支矩值更新部分的路徑矩值,并且在每一個(gè)節(jié)點(diǎn)的存留路徑作上標(biāo)記。最后,就可以根據(jù)存留路徑信息而產(chǎn)生譯碼輸出序列。圖2為一般維特比譯碼器20的方塊圖。維特比譯碼器20包括一個(gè)分支矩值計(jì)算(branchmetriccalculating;BMC)單元202,其輸出被送至加法比較選擇(addcompareselect;ACS)單元204。狀態(tài)控制器206提供輸入給分支矩值計(jì)算單元202、加法比較選擇單元204、以及路徑矩值存儲(chǔ)器208。路徑矩值存儲(chǔ)器208像是一個(gè)雙緩沖器,用來(lái)與加法比較選擇單元204互相交換信息。加法比較選擇單元204的輸出205提供給追溯(trace-back)存儲(chǔ)器與控制器210,其輸出為已接收的信息信號(hào)211。渦輪(Turbo)碼,也被稱為并聯(lián)連鎖(parallelconeatenated)碼,其效果與香農(nóng)容量限制(Shannon’scapacitylimit)非常接近。渦輪編碼器的實(shí)施通常是將卷積編碼器以串聯(lián)或并聯(lián)方式連接,以得到連鎖的輸出值。從一個(gè)編碼器傳到另一個(gè)編碼器的位序列被一個(gè)虛擬隨機(jī)數(shù)(pseudo-random)交錯(cuò)器(interleaver)重新排列,因此由單一編碼器產(chǎn)生的低權(quán)重(low-weight)編碼字被轉(zhuǎn)換為高權(quán)重(high-weight)編碼字。第三代(3G)移動(dòng)無(wú)線標(biāo)準(zhǔn),如碼分多址(codedivisionmultipleaccess;CDMA)2000以及全球移動(dòng)通信系統(tǒng)(universalmobiletelecommunicationservice;UMTS)都采用渦輪編碼技術(shù)將數(shù)據(jù)流編碼。英國(guó)專利申請(qǐng)?zhí)朑B2352943A以及B.Vucetic與J.Yuan所撰寫的“渦輪碼,原理與應(yīng)用(Turbocodes,principlesandapplication,KluwerAcademicPublishers,2000)”均披露了渦輪譯碼器中所應(yīng)用的技術(shù),如最大后置機(jī)率判定法則(maximumaposterioriprobability;MAP)、以及軟式輸出維特比算法(softoutputViterbialgorithm;SOVA)等。圖3示出了基于最大后置機(jī)率判定法則算法的一個(gè)迭代(iterative)渦輪譯碼器30。渦輪譯碼器的一個(gè)接收符號(hào)包括表示實(shí)際被傳輸數(shù)據(jù)的系統(tǒng)(systematic)數(shù)據(jù)、以及表示被傳輸數(shù)據(jù)的編碼形式的奇偶校驗(yàn)(parity)數(shù)據(jù)。第一輸入r0信號(hào)為接收符號(hào)的奇偶校驗(yàn)數(shù)據(jù),通過(guò)交錯(cuò)器304提供至第一與第二最大后置機(jī)率判定法則譯碼器302與306。第二輸入r1信號(hào)為接收符號(hào)的系統(tǒng)數(shù)據(jù),被送至第一最大后置機(jī)率判定法則譯碼器302中。從解交錯(cuò)器(de-interleaver)310得到的遞歸(recursive)輸入311也被送至第一最大后置機(jī)率判定法則譯碼器302中。第一最大后置機(jī)率判定法則譯碼器302的輸出303于是提供給交錯(cuò)器308,此交錯(cuò)器308再將其輸出送至第二最大后置機(jī)率判定法則譯碼器306。第二最大后置機(jī)率判定法則譯碼器306從第三輸入r2信號(hào)接收輸入,并產(chǎn)生兩個(gè)輸出。第二最大后置機(jī)率判定法則譯碼器306的第一輸出307a傳至解交錯(cuò)器310,而第二輸出307b則傳至另一個(gè)解交錯(cuò)器312。解交錯(cuò)器312的輸出會(huì)提供給切割器(slicer)314作輸入,切割器314利用一個(gè)閾值將軟式輸出轉(zhuǎn)換為硬式(hard)輸出,當(dāng)作已接收的信息信號(hào)315。第三代移動(dòng)通信系統(tǒng)通常需要對(duì)語(yǔ)音和數(shù)據(jù)信號(hào)分別進(jìn)行如維特比之類的卷積編碼和渦輪編碼。這是由于語(yǔ)音與數(shù)據(jù)在傳輸速率、延遲時(shí)間等傳輸要求上有抵觸。目前的解決方法為提供兩套編碼裝置,當(dāng)輸入為高速率的數(shù)據(jù)串流時(shí)采用渦輪碼編碼,而當(dāng)輸入為語(yǔ)音或低速率數(shù)據(jù)時(shí)則改用卷積編碼。系統(tǒng)的接收端同樣也需要兩套獨(dú)立的譯碼器,如此一來(lái),就會(huì)增加編碼與譯碼的硬件實(shí)現(xiàn)的復(fù)雜度與成本。
發(fā)明內(nèi)容一種維特比(Viterbi)/渦輪(Turbo)聯(lián)合譯碼器,可以根據(jù)輸入編碼類型,選擇執(zhí)行卷積(convolutional)或渦輪譯碼。在一個(gè)實(shí)施例中,譯碼器包括分支矩值計(jì)算(branchmetriccalculation;BMC)單元、控制電路、追溯(trace-back)單元、交錯(cuò)/解交錯(cuò)器、以及渦輪緩沖器。分支矩值計(jì)算(單元接收維特比或渦輪符號(hào),并決定編碼字的各節(jié)點(diǎn)(node)對(duì)應(yīng)的分支矩值(branchmetric)。譯碼器將適應(yīng)輸入的編碼類型,而控制電路為用于兩種編碼類型的共同組件,充分的利用存儲(chǔ)體與處理器的能力??刂齐娐犯鶕?jù)從BMC單元接收到的對(duì)應(yīng)分支矩值,以及儲(chǔ)存在第一數(shù)據(jù)塊中先前節(jié)點(diǎn)上的部分路徑矩值,計(jì)算各節(jié)點(diǎn)上的部分路徑矩值??刂齐娐分髮⒂?jì)算好的部分路徑矩值儲(chǔ)存在第二數(shù)據(jù)塊中。處理下一個(gè)節(jié)點(diǎn)時(shí),控制電路先從第二數(shù)據(jù)塊中讀取,于計(jì)算完之后,儲(chǔ)存到第一數(shù)據(jù)塊中,如此迭代進(jìn)行讀取與儲(chǔ)存的操作。這兩個(gè)數(shù)據(jù)塊與處理器交換路徑矩值的信息。從這兩個(gè)數(shù)據(jù)塊讀出與寫入部份路徑矩值的順序與地址,根據(jù)平行處理的一個(gè)固定路由規(guī)則,讓部分路徑矩值能夠平行處理,以充分利用處理能力。控制電路于是根據(jù)輸入編碼的類型決定執(zhí)行選擇或最大后置機(jī)率判定法則(maximumaposterioriprobability;MAP)算法,以辨識(shí)各節(jié)點(diǎn)上的存留路徑(survivorpath)。追溯(trace-back)單元于執(zhí)行維特比譯碼時(shí)接收控制電路的輸出,并追蹤從控制電路得到的存留路徑。交錯(cuò)/解交錯(cuò)器在執(zhí)行渦輪譯碼時(shí)接收控制電路的輸出,并按照一個(gè)已定方式變更或恢復(fù)其輸入順序。渦輪緩沖器接收輸入符號(hào)與交錯(cuò)/解交錯(cuò)器的輸出,并為BMC單元與交錯(cuò)/解交錯(cuò)器提供儲(chǔ)存。在一個(gè)實(shí)施例中,控制電路包括一個(gè)加法比較選擇處理器(addcompareselectprocessor;ACSP)陣列,具有J個(gè)加法比較選擇處理器(ACSP)(其中J=2m,m為一正整數(shù),而m+1必須小于該聯(lián)合譯碼器的限制長(zhǎng)度(constraintlengthn+1)、路徑矩值計(jì)算單元,具有第一與第二存儲(chǔ)數(shù)據(jù)塊、固定路由電路、以及選擇與MAP計(jì)算單元。加法比較選擇處理器陣列根據(jù)對(duì)應(yīng)分支矩值,計(jì)算各節(jié)點(diǎn)的部分路徑矩值。各加法比較選擇處理器包括兩個(gè)加法比較選擇單元(addcompareselectunits;ACSU),平行處理這些部份路徑矩值。路徑矩值計(jì)算單元將一個(gè)目前節(jié)點(diǎn),與一個(gè)先前節(jié)點(diǎn)的部份路徑矩值分別儲(chǔ)存在上述兩個(gè)存儲(chǔ)數(shù)據(jù)塊中。每個(gè)存儲(chǔ)數(shù)據(jù)塊包括I組存儲(chǔ)體,其中I=2m+1。固定路由電路根據(jù)固定路由規(guī)則,為每一個(gè)加法比較選擇處理器以及四組存儲(chǔ)體建立固定連接線,四組存儲(chǔ)體中的兩組屬于第一存儲(chǔ)數(shù)據(jù)塊,另外兩組屬于第二存儲(chǔ)數(shù)據(jù)塊。選擇與最大后置機(jī)率判定法則(MAP)計(jì)算單元執(zhí)行選擇或最大后置機(jī)率判定法則計(jì)算,以判斷各節(jié)點(diǎn)的存留路徑。選擇與最大后置機(jī)率判定法則計(jì)算單元根據(jù)從BMC單元獲得的分支矩值,以及從路徑矩值計(jì)算單元獲得的部份路徑矩值,計(jì)算渦輪編碼字的對(duì)數(shù)似然比值(log-likelihoodratio;LLR)。藉由以下詳細(xì)說(shuō)明,并結(jié)合附圖,可充分了解本發(fā)明的實(shí)施例,其中圖1為維特比譯碼器的一個(gè)實(shí)施例流程圖。圖2為維特比譯碼器的一個(gè)實(shí)施例方塊圖。圖3為根據(jù)MAP算法的迭代渦輪譯碼器的方塊圖。圖4為根據(jù)第一實(shí)施例的維特比/渦輪聯(lián)合譯碼器的方塊圖。圖5為圖4中控制電路的一個(gè)實(shí)施例的方塊圖。圖6a描述加法比較選擇單元(ACSU)范例的電路圖。圖6b描述加法比較選擇單元的另一個(gè)范例的電路圖。圖7a顯示根據(jù)第一實(shí)施例的路徑矩值存儲(chǔ)體構(gòu)成。圖7b為圖7a的詳細(xì)圖示。圖8顯示根據(jù)本發(fā)明第一實(shí)施例的渦輪譯碼的路徑存儲(chǔ)器存取規(guī)則。圖9顯示根據(jù)本發(fā)明第二實(shí)施例的路徑矩值存儲(chǔ)體構(gòu)成。圖10a顯示根據(jù)本發(fā)明第三實(shí)施例中256狀態(tài)的維特比譯碼的路徑矩值存儲(chǔ)體構(gòu)成。圖10b顯示根據(jù)本發(fā)明第三實(shí)施例中256狀態(tài)的維特比譯碼的路徑矩值存儲(chǔ)體對(duì)應(yīng)的數(shù)據(jù)結(jié)構(gòu)。圖11顯示根據(jù)本發(fā)明第三實(shí)施例中渦輪譯碼的路徑矩值存儲(chǔ)體的數(shù)據(jù)結(jié)構(gòu)。圖12顯示渦輪譯碼中應(yīng)用的最大后置機(jī)率判定法則譯碼算法。具體實(shí)施例方式第一實(shí)施例圖4顯示本發(fā)明一個(gè)維特比/渦輪聯(lián)合譯碼器的實(shí)施例方塊圖。維特比/渦輪聯(lián)合譯碼器4能夠根據(jù)接收數(shù)據(jù)的編碼方式執(zhí)行卷積或渦輪譯碼。維特比/渦輪聯(lián)合譯碼器4對(duì)從噪聲輸入端40得到的w比特含噪聲符號(hào)進(jìn)行譯碼。維特比/渦輪聯(lián)合譯碼器4包括輸入緩沖器43、分支矩值計(jì)算(BMC)單元41、控制電路42、交錯(cuò)/解交錯(cuò)器緩沖器44、交錯(cuò)/解交錯(cuò)器45、存留路徑更新單元46、追溯單元47、以及后進(jìn)先出(LIFO)緩沖器48。如圖4所示,控制電路42包括具有一路徑存儲(chǔ)體(pathmemorybank)的路徑矩值計(jì)算單元(pathmetriccalculationunit)421、固定路由電路(routingcircuit)422、加法比較選擇處理器(ACSP)陣列423、以及選擇與最大后置機(jī)率計(jì)算單元424。選擇與最大后置機(jī)率計(jì)算單元424包括卷積(維特比)譯碼所需的選擇單元、以及計(jì)算渦輪譯碼所需的似然比值(log-likelihoodratio;LLR)的最大后置機(jī)率計(jì)算單元??刂齐娐?2執(zhí)行維特比或渦輪譯碼所需要的主要運(yùn)算,而此控制電路42為維特比與渦輪譯碼共同需要的組件??刂齐娐?2于是可以取代原本維特比與渦輪譯碼各自所需要的計(jì)算單元,因此能對(duì)維特比與渦輪代碼進(jìn)行譯碼的接收器的芯片大小就可以減少。由于語(yǔ)音或是低數(shù)據(jù)傳輸率的輸入是以維特比碼所編碼的,而高數(shù)據(jù)傳輸率的輸入則是以渦輪碼所編碼而成的,因此對(duì)這兩種輸入類型譯碼的處理途徑是不同的。語(yǔ)音流與數(shù)據(jù)串流皆會(huì)在接收后提供至分支矩值計(jì)算單元41,隨后提供至控制電路42。控制電路42會(huì)在數(shù)據(jù)處理之后將維特比編碼流傳送至存留路徑更新單元46以及追溯單元47,而控制電路42則會(huì)在數(shù)據(jù)處理之后將渦輪編碼流傳送至交錯(cuò)/解交錯(cuò)器44以及緩沖器43與45以執(zhí)行交錯(cuò)或是解交錯(cuò)。存留路徑更新單元46包括一個(gè)存留路徑存儲(chǔ)器(survivorpathmemory;SPM),用來(lái)儲(chǔ)存維特比解碼的糾錯(cuò)(trellis)圖中各個(gè)節(jié)點(diǎn)所判斷出來(lái)的存留路徑。在第一個(gè)實(shí)施例中,卷積編碼器的限制長(zhǎng)度(constraintlength)為5(n=4),因此在維特比編碼中具有16個(gè)狀態(tài)(2n=16)。加法比較選擇處理器陣列423中的處理器數(shù)目被選為2m,其中m必須小于n,而在這個(gè)實(shí)施例中被選為m=2。各個(gè)加法比較選擇處理器包括一加法比較選擇單元(addcompareselectunit;ACSU)對(duì),據(jù)此可以同時(shí)處理兩個(gè)輸入。所以將八組存儲(chǔ)體(2m+1=8)與四個(gè)加法比較選擇處理器搭配,可以讓四個(gè)加法比較選擇處理器同時(shí)處理八個(gè)部分路徑矩值。圖5為描述控制電路5的方塊圖,是圖4第一個(gè)實(shí)施例中控制電路42的其中一個(gè)實(shí)施范例??刂齐娐?包括存儲(chǔ)體52、固定路由電路54、加法比較選擇處理器陣列56、以及選擇與最大后置機(jī)率計(jì)算單元58。固定路由電路54耦接著利用隨機(jī)存取存儲(chǔ)器(randomaccessmemory;RAM)實(shí)現(xiàn)的八組存儲(chǔ)體520~527。加法比較選擇處理器陣列56包括四個(gè)加法比較選擇處理器560~563,每個(gè)加法比較選擇處理器包括兩個(gè)加法比較選擇單元(ACSU)。各加法比較選擇處理器560~563對(duì)應(yīng)于選擇與最大后置機(jī)率計(jì)算單元58中的一個(gè)加法比較選擇單元580~583。ACSU580~583的輸出被送至比較選擇(compareselect;CS)單元584~585,而比較選擇單元584-585的輸出則被送至另一個(gè)比較選擇單元586。圖6a與圖6b描述前述加法比較選擇處理器中兩種類型的加法比較選擇單元電路范例。圖6a的加法比較選擇單元包括三個(gè)加法器、兩個(gè)比較器、以及三個(gè)多任務(wù)器,而圖6b的加法比較選擇單元?jiǎng)t利用查詢表(lookuptable)取代其中一個(gè)比較器。這兩種類型的加法比較選擇單元的連接方式與關(guān)系大致為相同的。圖7a為一個(gè)路徑矩值存儲(chǔ)體構(gòu)成的范例,用來(lái)描述圖4中固定路由電路422中規(guī)范的讀/寫選擇規(guī)則。圖7a的存儲(chǔ)體位于圖4中路徑矩值計(jì)算單元421中。本發(fā)明披露的讀/寫選擇規(guī)則藉由從加法比較選擇處理器陣列423中平行取得并向加法比較選擇處理器陣列423提供路徑矩值信息,以加速處理的速度。存儲(chǔ)體與加法比較選擇處理器陣列423之間的連接線是根據(jù)糾錯(cuò)(trellis)圖所排列的,結(jié)合加法比較選擇處理器陣列423,同時(shí)處理分支矩值與部分路徑矩值。各個(gè)路徑矩值存儲(chǔ)體(memorybank;MB)是由一個(gè)地址產(chǎn)生器(addressgenerator;AG)所管理的。如圖7a所示,包括8組存儲(chǔ)體(Bank(0)~Bank(7)),以及4個(gè)加法比較選擇處理器(ACSP0~ACSP3)。各組存儲(chǔ)體包括兩個(gè)數(shù)據(jù)塊(數(shù)據(jù)塊A與數(shù)據(jù)塊B),分別用來(lái)儲(chǔ)存對(duì)應(yīng)兩個(gè)不同時(shí)間點(diǎn)的路徑矩值信息。維特比譯碼所使用的讀/寫存儲(chǔ)器選擇規(guī)則以下面的范例說(shuō)明。第一對(duì)路徑矩值信息于時(shí)間點(diǎn)t1時(shí),分別儲(chǔ)存在數(shù)據(jù)塊A的存儲(chǔ)體(0)與存儲(chǔ)體(4)中。加法比較選擇處理器ACSP0獲取第一對(duì)路徑矩值信息,以產(chǎn)生兩個(gè)新的部分路徑矩值,并在時(shí)間點(diǎn)t1+p將新的部分路徑矩值分別儲(chǔ)存在數(shù)據(jù)塊B的存儲(chǔ)體(0)與存儲(chǔ)體(1)中,其中p表示ACSP用來(lái)產(chǎn)生新的部分路徑矩值的處理時(shí)間。圖7b則為圖7a的詳細(xì)圖示,其中的數(shù)值與索引皆以二進(jìn)制表示。每組存儲(chǔ)體各有兩個(gè)存儲(chǔ)單元,因此加法比較選擇處理器對(duì)存儲(chǔ)體進(jìn)行兩次存取以處理兩個(gè)存儲(chǔ)單元中的數(shù)據(jù)。例如加法比較選擇處理器ACSP(00)在時(shí)間點(diǎn)t1,從數(shù)據(jù)塊A中狀態(tài)索引(stateindex)為0000以及1000的存儲(chǔ)單元里,取得路徑矩值信息。之后,加法比較選擇處理器(00)產(chǎn)生兩個(gè)新的部分路徑矩值,并將這兩個(gè)新的部分路徑矩值于時(shí)間點(diǎn)t1+p,儲(chǔ)存在數(shù)據(jù)塊B中狀態(tài)索引為0000以及0010的存儲(chǔ)單元里。同時(shí),加法比較選擇處理器ACSP(01)、ACSP(10)、以及ACSP(11)亦以與ACSP(00)相同的方式與該存儲(chǔ)體相互作用。處理完各存儲(chǔ)體的第一存儲(chǔ)單元之后,加法比較選擇處理器ACSP(00)于時(shí)間點(diǎn)t2從數(shù)據(jù)塊A中的狀態(tài)索引為0001與1001的存儲(chǔ)單元中取得路徑矩值信息。同樣地,加法比較選擇處理器ACSP(00)產(chǎn)生兩個(gè)新的部分路徑節(jié)矩值,并于時(shí)間點(diǎn)t2+p時(shí)儲(chǔ)存在數(shù)據(jù)塊B中狀態(tài)索引為0001與0011的存儲(chǔ)單元里面。其余的加法比較選擇處理器也執(zhí)行類似加法比較選擇處理器ACSP(00)所執(zhí)行的讀/寫操作,同時(shí)將處理各組存儲(chǔ)體中第二存儲(chǔ)單元的讀/寫。在下一個(gè)時(shí)間點(diǎn)時(shí),加法比較選擇處理器陣列中的各加法比較選擇處理器從數(shù)據(jù)塊B中對(duì)應(yīng)的存儲(chǔ)體讀出路徑矩值信息,以產(chǎn)生新的路徑矩值信息,然后將新的路徑矩值信息儲(chǔ)存在數(shù)據(jù)塊A中。這樣的讀/寫操作重復(fù)兩次,一次用于各存儲(chǔ)體的第一存儲(chǔ)單元,另一次用于第二存儲(chǔ)單元。加法比較選擇處理器利用類似雙緩沖器的兩個(gè)數(shù)據(jù)塊(A與B),讓對(duì)應(yīng)先前節(jié)點(diǎn)的部分路徑矩值,只有在獲得目前節(jié)點(diǎn)的所有部份路徑矩值之后,才被覆寫(overwrite)。原先儲(chǔ)存在數(shù)據(jù)塊A的路徑矩值信息利用一個(gè)對(duì)應(yīng)的分支矩值被計(jì)算出來(lái),并被儲(chǔ)存在數(shù)據(jù)塊B中,然后數(shù)據(jù)塊B的路徑矩值信息也利用一個(gè)對(duì)應(yīng)的分支矩值被計(jì)算出來(lái),并儲(chǔ)存于數(shù)據(jù)塊A中,以此類推。固定路由單元規(guī)范的上述讀/寫選擇規(guī)則,也被稱作存取存儲(chǔ)體的路由規(guī)則,可以利用下面的步驟作分析。狀態(tài)的數(shù)目2n與譯碼的輸入符號(hào)的限制長(zhǎng)度(n+1)有關(guān),而每一個(gè)狀態(tài)都分配到一個(gè)可供識(shí)別的唯一(unique)狀態(tài)索引值Sn-1...S2S1S0。在第一個(gè)實(shí)施例中,編碼器的限制長(zhǎng)度為5(n=4),因此一共有16(2n=16)個(gè)狀態(tài)。存儲(chǔ)體組的數(shù)目為2m+1,其中m+1必須要小于或等于n。在第一個(gè)實(shí)施例中,m被選為2,因此有8組存儲(chǔ)體。存儲(chǔ)體的索引值Sn-1Sn-2...Sn-m-1與加法比較選擇處理器索引值Sn-2Sn-3...Sn-m-1分別表示它們所對(duì)應(yīng)的存儲(chǔ)體與加法比較選擇處理器的索引值。在第一個(gè)實(shí)施例中,當(dāng)n=4且m=2,狀態(tài)索引為S3S2S1S0的存儲(chǔ)單元表示此存儲(chǔ)單元是包括在具有存儲(chǔ)體索引值為S3S2S1的存儲(chǔ)體里面,例如狀態(tài)索引值為0010的存儲(chǔ)單元,包括在存儲(chǔ)體001中。各加法比較選擇處理器根據(jù)本身的加法比較選擇處理器索引值S2S1,讀出在具有狀態(tài)索引值為S3S2S1S0的存儲(chǔ)單元中儲(chǔ)存的兩個(gè)部分路徑矩值。例如,加法比較選擇處理器ACSP10讀出位于狀態(tài)索引值為0100或0101,以及1100或1101的存儲(chǔ)單元中儲(chǔ)存的部分路徑矩值。當(dāng)加法比較選擇處理器產(chǎn)生新的部分路徑矩值后,這些新的部分路徑矩值被寫入狀態(tài)索引值為S3S2S1S0的存儲(chǔ)單元中,此狀態(tài)索引值中兩個(gè)最高位S3S2與加法比較選擇處理器的索引值相同。例如加法比較選擇處理器ACSP10將新的部分路徑矩值寫入狀態(tài)索引值為1000或1001,以及狀態(tài)索引值為1010或1011的存儲(chǔ)單元中。圖8顯示根據(jù)本發(fā)明的第一實(shí)施例實(shí)現(xiàn)的渦輪譯碼的路徑矩值存儲(chǔ)器存取方式。渦輪譯碼的路由規(guī)則與維特比譯碼幾乎完全相同,因此這兩種譯碼可以共享該固定路由單元、加法比較選擇處理器陣列、以及儲(chǔ)存在路徑矩值計(jì)算單元中的存儲(chǔ)體。渦輪譯碼必須要將狀態(tài)索引值執(zhí)行位逆轉(zhuǎn)(bitreversion),也就是將存儲(chǔ)單元的狀態(tài)索引值從001轉(zhuǎn)變成100,以及將存儲(chǔ)單元的狀態(tài)索引值從011轉(zhuǎn)變成110。如圖8所示,存儲(chǔ)體與ACSP之間的讀/寫耦接方式與先前所敘述的維特比譯碼一樣,不過(guò)狀態(tài)索引(沒(méi)有顯示于圖中)以及所對(duì)應(yīng)的存儲(chǔ)體索引卻會(huì)被逆轉(zhuǎn)。如圖4所示,分支矩值計(jì)算單元41計(jì)算分支矩值γ,而路徑矩值計(jì)算單元421則儲(chǔ)存加法比較選擇處理器陣列423所計(jì)算出來(lái)的向前路徑矩值α、以及向后路徑矩值β。這三個(gè)矩值α、β、以及γ被選擇與最大后置機(jī)率計(jì)算單元424用來(lái)獲得對(duì)數(shù)似然比值(log-likelihoodratio;LLR),LLR如下所示。Δ(cl)=logΣl=0Ml-1αl-1(l′)γl1(l′,l)βl(l)Σl=0Ml-1αl-1(l′)γl0(l′,l)βl(l)]]>第一實(shí)施例中的渦輪解碼利用最大后置機(jī)率譯碼算法,并根據(jù)分支矩值γ、向前路徑矩值α、以及向后路徑矩值β,來(lái)計(jì)算各時(shí)間點(diǎn)的對(duì)數(shù)似然比值。第二實(shí)施例圖9描述根據(jù)本發(fā)明的第二實(shí)施例的路徑矩值存儲(chǔ)器存取規(guī)則。在第二個(gè)實(shí)施例中,編碼器的限制長(zhǎng)度為6(n=5),因此維特比譯碼一共有32(25)個(gè)狀態(tài)。也就是第二實(shí)施例中,有四個(gè)加法比較選擇處理器(2m,m≤4,選擇m=2)以及八組存儲(chǔ)體(2m+1)。由于每個(gè)存儲(chǔ)體中有四組存儲(chǔ)單元,各個(gè)加法比較選擇處理器在一個(gè)時(shí)鐘周期內(nèi)只能對(duì)一個(gè)存儲(chǔ)體執(zhí)行存取,各加法比較選擇處理器因此需要從第一數(shù)據(jù)塊中兩個(gè)對(duì)應(yīng)的存儲(chǔ)體讀取部分路徑矩值四次,每一存儲(chǔ)單元都要被讀取一次,類似地,將新的部分路徑矩值寫入第二數(shù)據(jù)塊中兩個(gè)對(duì)應(yīng)存儲(chǔ)體四次。讀與寫該存儲(chǔ)體的路由規(guī)則與第一實(shí)施例是相同的。第三實(shí)施例圖10a與圖10b描述根據(jù)本發(fā)明的第三實(shí)施例中,對(duì)應(yīng)256種狀態(tài)維特比譯碼的路徑矩值存儲(chǔ)體的構(gòu)成與數(shù)據(jù)結(jié)構(gòu)。第三個(gè)實(shí)施例中,編碼器的限制長(zhǎng)度為9,并且也是使用了四個(gè)加法比較選擇處理器與八個(gè)存儲(chǔ)體。每一個(gè)路徑矩值存儲(chǔ)體都有兩個(gè)數(shù)據(jù)塊(數(shù)據(jù)塊A與數(shù)據(jù)塊B),并且這兩個(gè)數(shù)據(jù)塊A與B的數(shù)據(jù)塊索引值分別為0與1。四個(gè)加法比較選擇處理器在一個(gè)時(shí)鐘周期間處理八個(gè)狀態(tài),因此為了針對(duì)每一個(gè)具有256種可能狀態(tài)的維特比編碼字,加法比較選擇處理器需要32個(gè)時(shí)鐘周期(256/8=32)用來(lái)從該存儲(chǔ)體讀出或?qū)懭胍粋€(gè)節(jié)點(diǎn)的部份路徑矩值。用在256種狀態(tài)維特比譯碼的硬件裝置(即加法比較選擇處理器與存儲(chǔ)體),在處理速度上以及存儲(chǔ)器大小上,也適用于8種狀態(tài)渦輪譯碼。為了進(jìn)行渦輪譯碼,每一編碼器的限制長(zhǎng)度為4(n=3),從而形成八個(gè)可能狀態(tài)。圖11顯示根據(jù)本發(fā)明第三實(shí)施例渦輪譯碼的路徑矩值存儲(chǔ)體的數(shù)據(jù)結(jié)構(gòu)。渦輪譯碼的狀態(tài)索引值與維特比譯碼不同,這是因?yàn)闇u輪譯碼需要進(jìn)行位逆轉(zhuǎn)。第三實(shí)施例的窗口大小(windowsize)被設(shè)定為32(k=32),因此渦輪譯碼根據(jù)32項(xiàng)向后路徑矩值β對(duì)一個(gè)渦輪編碼字譯碼。在每一個(gè)時(shí)鐘周期中,加法比較選擇處理器處理八個(gè)狀態(tài),以獲得一個(gè)向后路徑矩值β,并根據(jù)時(shí)間序列t、t+1、t+k-1儲(chǔ)存在存儲(chǔ)體中。在第k個(gè)周期中(本實(shí)施例中,k=32),加法比較選擇處理器處理了8k(8*32=256)個(gè)狀態(tài),而且在存儲(chǔ)體中產(chǎn)生并儲(chǔ)存k項(xiàng)向后路徑矩值β以及一個(gè)向前路徑矩值α。圖4中的選擇與最大后置機(jī)率計(jì)算單元424從分支矩值計(jì)算單元41中獲取分支矩值γ,并且從儲(chǔ)存在路徑矩值計(jì)算單元421的存儲(chǔ)體中獲取32項(xiàng)向后路徑矩值β、以及1項(xiàng)向前路徑矩值α,并且根據(jù)這些矩值計(jì)算對(duì)數(shù)似然比值。選擇與最大后置機(jī)率計(jì)算單元的結(jié)果會(huì)輸出至交錯(cuò)/解交錯(cuò)器44中,以產(chǎn)生渦輪解碼的結(jié)果。圖12描述使用在渦輪譯碼中的最大后置機(jī)率譯碼算法。圖10只顯示了四個(gè)狀態(tài)的四個(gè)階段。每個(gè)階段計(jì)算出一個(gè)向后路徑矩值β,可是每個(gè)編碼字總共只會(huì)算出一個(gè)向前路徑矩值α。對(duì)數(shù)似然比值表示1的機(jī)率P(1)與0的機(jī)率P(0)之間比例的對(duì)數(shù)(log)。本發(fā)明的維特比/渦輪聯(lián)合譯碼器可依據(jù)接收數(shù)據(jù)的類型構(gòu)成,且控制電路被設(shè)計(jì)為可以儲(chǔ)存并計(jì)算用于維特比和渦輪譯碼部分路徑矩值。兩種譯碼所利用的加法比較選擇處理器陣列讀取存儲(chǔ)體的路由規(guī)則是固定的。在一個(gè)實(shí)施例中,儲(chǔ)存部分路徑矩值的存儲(chǔ)體,無(wú)論用在維特比或是渦輪譯碼,都可以充分的被使用。例如,假設(shè)譯碼器被設(shè)計(jì)為接收256狀態(tài)維特比編碼字或是8狀態(tài)渦輪編碼字,則渦輪譯碼的窗口大小就會(huì)被選為32(256/8)。在譯碼8狀態(tài)渦輪編碼字時(shí),存儲(chǔ)體儲(chǔ)存對(duì)應(yīng)32時(shí)間點(diǎn)(階段)的向后路徑矩值的八個(gè)狀態(tài),而譯碼256種狀態(tài)維特比編碼字時(shí),加法比較選擇處理器陣列在一個(gè)周期中會(huì)處理八個(gè)狀態(tài),因此一共需要32個(gè)周期才可以解完一個(gè)維特比編碼字。因此,這兩種譯碼種類的存儲(chǔ)體大小以及處理時(shí)間大約相同。在另一個(gè)實(shí)施例中,本發(fā)明的多個(gè)維特比/渦輪聯(lián)合譯碼器可以被用來(lái)對(duì)包括成串渦輪符號(hào)或/和維特比符號(hào)的數(shù)據(jù)串流進(jìn)行譯碼,其中的每一個(gè)譯碼器都有能力對(duì)任何一種輸入類型解碼。而無(wú)論譯碼器所使用的譯碼方式為何,各譯碼器花費(fèi)在每一個(gè)編碼字的譯碼時(shí)間都會(huì)是差不多的。這樣的設(shè)計(jì)結(jié)構(gòu)的優(yōu)點(diǎn)是可以降低譯碼器的數(shù)量,因?yàn)槊總€(gè)譯碼器都可以用來(lái)對(duì)任何一種編碼(維特比或渦輪)符號(hào)進(jìn)行譯碼。另一個(gè)優(yōu)點(diǎn)就是所有的譯碼器都可以在差不多同一時(shí)間完成譯碼的工作,因此這些譯碼器可以平行的處理數(shù)據(jù)流,而不必因?yàn)槟承┳g碼器的延遲花時(shí)間等待。最后,雖然本發(fā)明已以較佳實(shí)施例披露如上,然其并非用以限定本發(fā)明,本領(lǐng)域的技術(shù)人員在不脫離本發(fā)明的精神和范圍的前提下可作若干的更動(dòng)與潤(rùn)飾,因此本發(fā)明的保護(hù)范圍以本發(fā)明的權(quán)利要求為準(zhǔn)。本專利申請(qǐng)案請(qǐng)求于2003年11月24日提出的申請(qǐng)?zhí)枮?0/523,981的美國(guó)臨時(shí)專利申請(qǐng)案的優(yōu)先權(quán)。權(quán)利要求1.一種維特比/渦輪聯(lián)合譯碼器,可對(duì)一維特比或渦輪編碼字進(jìn)行譯碼,該維特比/渦輪聯(lián)合譯碼器包括一分支矩值計(jì)算單元,接收多個(gè)符號(hào)并決定該編碼字各節(jié)點(diǎn)所對(duì)應(yīng)的一分支矩值;一控制電路,根據(jù)從該分支矩值計(jì)算單元所接收到的該對(duì)應(yīng)分支矩值和儲(chǔ)存在一第一存儲(chǔ)數(shù)據(jù)塊中一先前節(jié)點(diǎn)上的部分路徑矩值,以計(jì)算各節(jié)點(diǎn)上的部分路徑矩值,并且將所計(jì)算得到的該部分路徑矩值儲(chǔ)存在一第二存儲(chǔ)數(shù)據(jù)塊中,其中從所述存儲(chǔ)數(shù)據(jù)塊讀出所述部份路徑矩值的順序與地址和向所述存儲(chǔ)數(shù)據(jù)塊寫入所述部份路徑矩值的順序與地址,是按照平行處理的一固定路由規(guī)則,以及根據(jù)該編碼字類型決定執(zhí)行選擇或最大后置機(jī)率判定法則算法,以辨識(shí)各節(jié)點(diǎn)上的一存留路徑;一追溯單元,耦接于該控制電路,以根據(jù)追蹤由該控制電路得到的該存留路徑產(chǎn)生維特比編碼字的譯碼輸出;一交錯(cuò)/解交錯(cuò)器,耦接于該控制電路,以按照一個(gè)已定方式重新排列或恢復(fù)該輸入順序,為渦輪編碼字產(chǎn)生譯碼輸出;以及一渦輪緩沖器,接收輸入符號(hào)與該交錯(cuò)/解交錯(cuò)器的輸出,并為該分支矩值計(jì)算單元與該交錯(cuò)/解交錯(cuò)器提供儲(chǔ)存。2.如權(quán)利要求1所述的維特比/渦輪聯(lián)合譯碼器,其中該控制電路包括一加法比較選擇處理器陣列,包括J個(gè)加法比較選擇處理器,用于根據(jù)該對(duì)應(yīng)分支矩值計(jì)算各節(jié)點(diǎn)的該部分路徑矩值,其中各加法比較選擇處理器包括兩個(gè)加法比較選擇單元,以平行處理所述部份路徑矩值,其中J=2m,m為一正整數(shù);一路徑矩值計(jì)算單元,包括該第一與第二存儲(chǔ)數(shù)據(jù)塊,用于分別儲(chǔ)存一目前節(jié)點(diǎn)與一先前節(jié)點(diǎn)的所述部份路徑矩值,其中各存儲(chǔ)數(shù)據(jù)塊包括I組存儲(chǔ)體,而I=2m+1;一固定路由電路,與該加法比較選擇處理器陣列以及該路徑矩值計(jì)算單元耦接,用于根據(jù)該固定路由規(guī)則在每一個(gè)加法比較選擇處理器和四組存儲(chǔ)體之間建立固定連接線,四組存儲(chǔ)體中的兩組屬于該第一存儲(chǔ)數(shù)據(jù)塊,另外兩組屬于該第二存儲(chǔ)數(shù)據(jù)塊;以及一選擇與最大后置機(jī)率判定法則計(jì)算單元,執(zhí)行選擇或最大后置機(jī)率判定法則計(jì)算,以判斷各節(jié)點(diǎn)的該存留路徑。3.如權(quán)利要求2所述的維特比/渦輪聯(lián)合譯碼器,其中m+1必須小于該維特比/渦輪聯(lián)合譯碼器的限制長(zhǎng)度。4.如權(quán)利要求2所述的維特比/渦輪聯(lián)合譯碼器,其中該第一與該第二存儲(chǔ)數(shù)據(jù)塊大小相同,并且各存儲(chǔ)體包括相同數(shù)量的存儲(chǔ)單元,用來(lái)儲(chǔ)存所述部份路徑矩值。5.如權(quán)利要求2所述的維特比/渦輪聯(lián)合譯碼器,其中該選擇與最大后置機(jī)率判定法則計(jì)算單元根據(jù)從該分支矩值計(jì)算單元獲得的分支矩值,以及從該路徑矩值計(jì)算單元獲得的所述部份路徑矩值,計(jì)算該渦輪編碼字的對(duì)數(shù)似然比值。6.如權(quán)利要求5所述的維特比/渦輪聯(lián)合譯碼器,其中該對(duì)數(shù)似然比值用來(lái)估計(jì)追蹤該存留路徑的一機(jī)率,其算式為Δ(cl)=logΣl=0Ml-1αl-1(l′)γl1(l′,l)βl(l)Σl=0Ml-1αl-1(l′)γl0(l′,l)βl(l),]]>算式中α表示向前遞歸,β表示向后遞歸,γ表示分支機(jī)率。7.如權(quán)利要求2所述的維特比/渦輪聯(lián)合譯碼器,其中該路徑矩值計(jì)算單元為該渦輪編碼字的每一個(gè)狀態(tài)儲(chǔ)存一向前路徑矩值α,以及K個(gè)向后路徑矩值β,其中K為渦輪譯碼的窗口大小。8.如權(quán)利要求7所述的維特比/渦輪聯(lián)合譯碼器,其中m=2,K=32,該譯碼器能夠?qū)?56個(gè)狀態(tài)的維特比編碼字與8個(gè)狀態(tài)的渦輪編碼字譯碼。9.如權(quán)利要求1所述的維特比/渦輪聯(lián)合譯碼器,其中與各節(jié)點(diǎn)相關(guān)的該分支矩值為該相關(guān)節(jié)點(diǎn)上該接收符號(hào)與該譯碼輸出之間的平方距離。10.如權(quán)利要求1所述的維特比/渦輪聯(lián)合譯碼器,還包括一后進(jìn)先出緩沖器,與該追溯單元耦接,用來(lái)輸出該譯碼維特比輸出。11.如權(quán)利要求1所述的維特比/渦輪聯(lián)合譯碼器,還包括一存留路徑更新單元,與該控制電路以及該追溯單元耦接,用來(lái)儲(chǔ)存最新計(jì)算得到的存留路徑。12.如權(quán)利要求1所述的維特比/渦輪聯(lián)合譯碼器,其中該渦輪緩沖器包括一輸入緩沖器以及一交錯(cuò)/解交錯(cuò)緩沖器,該輸入緩沖器儲(chǔ)存所述接收符號(hào),而該交錯(cuò)/解交錯(cuò)緩沖器儲(chǔ)存該交錯(cuò)/解交錯(cuò)器的輸出。全文摘要本發(fā)明提供一種維特比(Viterbi)/渦輪(Turbo)聯(lián)合譯碼器,以對(duì)語(yǔ)音和數(shù)據(jù)串流進(jìn)行維特比卷積(convolutional)譯碼以及渦輪譯碼。上述維特比/渦輪聯(lián)合譯碼器的一個(gè)實(shí)施例可以藉由單一個(gè)控制電路處理并計(jì)算維特比與渦輪譯碼的路徑矩值(pathmetric),進(jìn)而達(dá)到降低硬件成本的效果。控制電路包括多個(gè)處理器與存儲(chǔ)體(memorybank),無(wú)論是針對(duì)維特比或是渦輪編碼的輸入信號(hào),處理器用以從存儲(chǔ)體中讀取/寫入路徑矩值信息所遵循的路由規(guī)則都是固定的。文檔編號(hào)H03M13/03GK1853350SQ200480026994公開(kāi)日2006年10月25日申請(qǐng)日期2004年11月24日優(yōu)先權(quán)日2003年11月24日發(fā)明者闕志達(dá),李松樵,林展世申請(qǐng)人:威盛電子股份有限公司