對卷積編碼的代碼字進行解碼的方法和設備的製作方法
2023-04-23 11:43:36 1
專利名稱:對卷積編碼的代碼字進行解碼的方法和設備的製作方法
技術領域:
本發明涉及對卷積編碼的代碼字進行解碼的方法和設備。
背景技術:
在通信系統中用於數據傳輸的傳輸通道經常產生對數據傳輸的幹擾。在所有類型的系統中都存在幹擾,尤其是在無線通信系統中,傳輸路徑以多種方式使傳輸的信號衰減和失真。在傳輸路徑上產生的幹擾一般由信號的多路傳播、不同類型的衰減和反射以及在相同的傳輸路徑上傳輸的信號產生。
為了降低幹擾的影響,已經提供了各種不同的編碼方法,這些編碼方法的目的是變化信號不受幹擾的影響並消除由在信號中的幹擾所產生的誤差。一種有效的編碼的方法是卷積編碼。在卷積編碼中通過將要傳輸的碼元與代碼的多項式進行卷積來將由碼元構成的要傳輸的信號編碼成代碼字。卷積碼由編碼率和編碼多項式定義。編碼率(k/n)是指編碼碼元的數量(n)與要編碼的碼元的數量(k)的關係。編碼器通過以移位寄存器實施。編碼的約束長度K通常指移位寄存器的長度。編碼器可以看作具有2K種狀態的狀態機。
在卷積編碼的基礎上,人們進一步研究出的一種編碼方法是稱為渦輪碼(turbo code)的平行連接卷積碼PCCC(parallel concatenatedconvolutional code)。形成PCCC碼的一種方法是使用兩個回歸系統卷積編碼器和交織器(interleaver)。卷積編碼器可以是類似的或者不同的。所得的編碼包括直接對應於在編碼器的輸入的碼元的系統部分和形成平行卷積編碼器的輸出的兩個寄偶校驗部分。
因此接收器的功能是對編碼信號進行解碼,所編碼的信號在傳輸路徑上傳播並通常受到多種方式的變形。一般通過與編碼器的狀態機對應的網格結構(trellis)對卷積碼進行解碼。網格結構表示編碼器的狀態和在具有所要求的代碼字的狀態之間的過渡。
因此解碼器的目的是確定編碼器從一個狀態到另一個狀態的連續狀態,即過渡。為了確定在解碼器中的過渡,使用說明不同的過渡的概率的分支量度(branch metrics)。分支量度與過渡的概率的對數成比例。因此,量度的總和對應於概率的總和。小的量度對應於較高的概率。
關於渦輪碼,尤其是,應用迭代解碼法,這種方法使用軟位判定。軟判定包括位判定和判定是正確的概率。這些方法通常基於通過碼元起作用的公知的最大後驗(maxium A Posteriori,MAP)算法。原始的MAP算法與渦輪編碼一起例如公開在出版物Berrou,Glavieux,ThitimajshimaNear Shannon limit error-conrrecting codingTurbo codes,Proc.IEEE Int.Conf.Commun.,Geneva,Switzerland,pp.1064-1070,1993中,在實際中在電信系統中這種算法實施較複雜。已經進一步研究出了稱為MaxLogMap方法,這種方法描述在下面的出版物中,例如S.S.Pietrobon S.A.Barbulescu,A Simplification of the Modified Bahl Decoding Algorithm forSystematic Convolutinal Codes,ISITA 1994,Sydney,NSW,pp.1073-1077,Nov 1994,和S.Benedetto,D.Divsalar,G.Montorsi,F.Pollara,Soft-Output Decoding Algorithms in IterativeDecoding of Turbo Codes,TDA Progress report pp.42-124,Feb15,1996。
使用MAP和MaLogMap涉及擴展的存儲器需求。在迭代計算中,從在先的迭代到下一輪迭代中以非本徵的加權係數的形式採集數據。為了計算加權係數,必須知道在網格結構中的所計算的前向和後向的路徑量度的值。在兩個方向中,基於在先的值計算路徑量度的當前值,並沿接收的信號在相反的方向上進行這種計算。這意味著在一個方向行進的量度應該存儲在存儲器中以等待在相反的方向上所進行的計算。例如,如果原始的未編碼的位的數量N=5,000並且使用8個狀態的編碼,則可用的存儲器的量應該是8*N,即4,000個單元,假設字寬度為16位,通過如今的技術實施的話對存儲器的需求將是80kB,這個值較大。在此所使用的實例性的數值對應於新型的電信系統的參數。
通過使用稱為滑動窗原理的技術可以降低存儲需求。這裡,例如,要前向計算的量度計算為連續的函數,而後向量度在要傳輸的接收信號上滑動的窗口內計算。這種方式帶來的問題是在窗口的末端的問題(從前行計算的方向看),而不知道要後向計算的量度的值。然而,通過十分公知的路徑量度的特徵消除了這種問題,根據這種方法,不管在開始使用的值如何,在已經計算了路徑量度一會之後,數值收斂到正確的值。因此在開始必須執行「學習」周期的計算;換句話說,存在預熱期,在這個預熱期之後,找到正確的值。學習期的長度取決於代碼的約束長度。十分公知的是如果學習期是代碼的約束長度的大約5倍則可以實現良好的結果。
例如在上述的Benedetto等人的出版物中以及美國專利US5933462中公開了利用這種滑動窗口技術的方案。因此可以減小所要求的存儲器的量。然而,在所公開的方案中仍然存在其它的缺陷。該方案要求相當複雜的控制系統和從其中可以同時讀取幾個存儲器單位的多通道存儲器元件。
發明概述因此本發明的一個目的是實施用於對卷積代碼進行有利地解碼的方法的方法和設備。通過如下的方法實現這個目的通過在代碼字上的滑動的窗口對卷積編碼的代碼字進行解碼,這種方法包括在滑動窗口中同時計算前向和後向路徑量度並基於路徑的量度在合成單元中計算解碼結果。
根據本發明的方法,a)使用四部分的滑動窗口;b)在滑動窗口的第一部分中的前向方向上計算路徑量度,並將該路徑量度存儲在一個四部分存儲器中;c)以計算單元的輸入來自該四部分存儲器的方式在滑動窗口的兩個其它的部分中的後向方向上計算該路徑量度;d)將所計算的量度應用到合成單元,計算解碼結果;e)將滑動窗口朝前移動一部分;以及f)重複步驟a)至e)。
本發明也涉及通過滑動窗口在代碼字上對卷積編碼的代碼字進行解碼的設備,這種設備包括存儲代碼字的第一存儲器;計算前向和後向路徑量度的第一、第二和第三計算裝置;基於路徑量度計算解碼結果的合成單元;以及路徑量度的臨時存儲的第二存儲器元件。
在根據本發明的設備中,設置該第一計算裝置以從第一存儲器中讀取代碼字碼元以計算在給定長度的四部分滑動窗口的第一部分中的前向方向上的路徑量度並將該路徑量度存儲在第二存儲器中;第二存儲器的輸出連接到第二和第三計算裝置的輸入;設置第二和第三計算裝置以計算在滑動窗口的其它部分中的後向方向上的路徑量度;第二和第三計算裝置的輸出和第二存儲器的輸出在功能上連接到合成單元的輸入;以及該設備包括控制裝置,設置該控制裝置以將滑動窗口朝前移動一部分,直到達到代碼字的末尾。
在附加權利要求中公開了本發明的優選的實施例。
因此滑動窗口應用在根據本發明的方案中。由於這個,所要求的存儲器的量較小。在根據本發明的優選實施例的方案中,將滑動窗口劃分為四部分並朝前移動四分之一步幅。所計算的前行路徑量度存儲在四部分存儲器中,存儲總是在相同的方向上進行,並且從四部分存儲中讀取後向路徑量度的輸入數據,並且也總是在相同的方向上進行,但是在與存儲前行量度的方向相反的方向上進行。該方案首先將前行量度的計算應用到所接收的信號,並且僅在這之後計算後向量度。
就容易控制在存儲器中寫和讀方面講利用四部分窗口的方案比較可取,因為在窗口移動時不需要改變寫和讀的方向。另一重要的優點在於信號存儲器不必是雙埠存儲器,因為在一輪採樣中每採樣僅讀信號一次。在計算前行量度時可以完成它。後向計算量度單元讀取由前行量度單元從輔助存儲器中讀取的數據。
附圖概述參考附圖在優選的實施例中更加詳細地描述本發明,在附圖中附
圖1所示為可以應用根據本發明的方案的卷積編碼器發射器和接收器的實例;附圖2a和2b所示為渦輪編碼器和渦輪解碼器的結構的實例;附圖3所示為根據本發明的優選實施例的解碼器方案;以及附圖4所示為滑動窗口。
本發明的詳細描述參考附圖1,首先研究可應用根據本發明的優選實施例的方案的發射器100和接收器102的實例。在附圖1的實例中,發射器100和接收器102通過無線電信道104進行通信。發射器100包括數據源106,它可以是語音編碼器或者某些其它的數據源。要傳輸的信號108從數據源的輸出中接收,並將該信號應用到信道編碼器110中,在這種情況下是卷積編碼器,可取的是渦輪編碼器。編碼的碼元112應用到調製器114,在調製器中以公知的方式對信號進行調製。將經調製的信號應用到射頻部分116,在射頻部分116中放大它並通過天線118將它發送到無線電信道104。
在無線電信道104中,信號受幹擾的影響並且也受其它的某些噪聲的影響。接收器102包括天線120,通過天線120它接收信號,並通過射頻部分122將該信號施加到解調器124。經解調的信號施加到信道解碼器126,在信道解碼器126中根據本發明的優選實施例對它進行解碼。從該解碼器中將經解碼的信號128進一步施加到接收器的其它部分中。
附圖2a所示為典型的渦輪編碼器的結構。該編碼器包括兩個編碼器200和203和交織器(interleaver)204。要編碼的信號108施加到該編碼器的輸出中。這個分量稱為代碼的系統部S。還將要編碼的信號施加到第一編碼器A200和交織器204。將交織的信號施加到第二編碼器B202中。第一編碼器的輸出信號P1和第二編碼器的輸出信號P2都稱為代碼的奇偶(parity)部。編碼器A和B可以類似或者可以不同。它們的結構與已有技術一致。
附圖2B所示為帶有1/3代碼的典型的渦輪編碼器的一般結構。代碼的系統部Sk和奇偶部P1k和P2k輸入到解碼器作為輸入。解碼器包括兩個解碼器單元,即第一單元A210和第二單元B212。來自前一輪的迭代的代碼的系統部Sk和奇偶部P1k和非本徵加權係數Ek輸入到第一單元作為輸入。加權係數通過交織器214從第二單元B212的輸出中輸入。在第一單元A210的輸出中,存在新的非本徵加權係數Ek和輸出A,通過交織器216將該係數Ek施加到第二單元212中作為輸入,並且如果需要的話輸出A包括施加到接收器的其它部分中的軟判定。通過交織器218的代碼的系統部Sk和奇偶部P2k也輸入到第二單元B作為輸入。該單元的輸出由通過去交織器214施加到第一單元210的新的非本徵加權係數Ek和包括軟判定的輸出B形成,如果需要的話,該輸出B施加到接收器的其它部分中。
在實際中,交織器216和218通常以一個交織器實施。解碼器也可以平行設置。在這種情況下,解碼器單元210和212可以通過平行解碼器實施。
在解碼器單元中執行的MaxLogMap計算包括三個主要部分路徑量度的前行計算、路徑量度的後行計算和前向和後向計算的路徑量度的組合以便計算新的非本徵加權係數和軟判定。新的非本徵係數應用到下一輪迭代中以起輸入參數的作用,硬位判定由軟判定的符號組成。
現在讓我們研究解碼器操作的實例。應該注意的是,對於在本領域中的普通技術人員來說,顯然的是,所給出的算術操作僅代表實施所需的計算的一種方式。根據本發明的方案也可以應用到其它的解碼計算方法中。例如,可以使用不同的校正條件。我們考慮在時間k時αk(s)渦輪代碼編碼器的狀態的路徑量度,k=0,1,2,…,N,這裡N表示未編碼的(原始的)數據塊的長度,可能的狀態為s=0,1,2,3,4,5,和7。根據編碼方法,編碼器的初始狀態要麼在接收器中是已知的,要麼必須估計。在本實例中,假設初始狀態是已知的,它是s=0。在此,在網格結構中的前行路徑量度計算可以按照如下方式開始對於每種狀態s=1,2,3,4,5,6,7,α0(0)=10000,而α0(s)=-α0(0)。
在編碼器的狀態之間和在時間k的狀態s′和時間k+1的狀態s之間的所允許的過渡狀態的分支量度表示為γk(s′,s),在一個奇偶的情況下結合MaxLogMap可以如下給出數值γk(s′,s)=(xk(Sk+Ek)+ykPk)/2,這裡,如果由零位造成在狀態s′和s之間的狀態過渡,則xk=1,而如果一位造成在狀態s′和s之間的狀態過渡,則xk=0。因此,如果在狀態s′和s之間的奇偶位是具有0的值的位(「零位」),則yk=1,而如果在狀態s′和s之間的奇偶位是具有1的值的位(「一位」),則yk=-1。Sk表示渦輪代碼的系統部的接收的數值,這個值相對於時間可以是交織的或直接順序,取決於解碼的階段;Ek是指非本徵加權係數的數值,這個值也可以是交織的或直接順序;Pk是其順序是要解碼的代碼的奇偶部,總是以直接順序讀取Pk。在此還假設所討論的調製將零位映射成值1,一位映射成值-1。
通過下面的公式計算前行的路徑量度αk+1(s)=max(αk(s′)+γk(s′,s)),在k=0,1,2,…N-1時。
即選擇路徑量度的值αk+1(s)以等於從允許前向過渡到時間k+1的狀態s的時間k的那些狀態s′中輸入在時間k+1狀態s的最大的路徑量度,所允許的狀態過渡由所使用的代碼確定。
如下計算後行路徑量度βk(s′)βN(0)=10000和βN(s)=-βN(0),在s=1,2,3,4,5,6和7時;和βk(s′)=max(βk+1(s)+γk(s′,s)),在k=N-1,N-2,...,1,0時。
在此,同樣地,但是後向的,選擇路徑量度的值βk(s)以等於從允許後向過渡到時間k的狀態s′的時間k+1的那些狀態s中輸入在時間k狀態s′的最大的路徑量度。
編碼器的分支量度γk(s′,s)奇偶部表示為λk(s′,s),λk(s′,s)=(ykPk)/2。
這裡,如果在時間k的狀態s′和時間k+1的狀態s之間所允許的狀態過渡的奇偶位為零位,則yk=1,如果所述的奇偶位為一位則yk=-1。
通過下面的公式計算用於零位的時間k時的加權係數OkOk=max(αk(s′)+λk(s′,s)+βk+1(s)),在k=0,1,2,…N-1時。
這裡選擇最大的和作為在對應於在時間k的狀態s′和時間k+1的狀態s之間的零位所帶來的狀態過渡的所有和之外的加權係數Ok。因此,通過下面的公式計算在時間k時的零位的加權係數YkYk=max(αk(s′)+λk(s′,s)+βk+1(s)),在k=0,1,2,…N-1時。
這裡選擇最大的和作為在對應於在時間k的狀態s′和時間k+1的狀態s之間的一位所帶來的狀態過渡的所有和之外的加權係數Yk。
通過下面的公式計算在時間k時新的非本徵加權係數uEkuEk=Ok-Yk,並且通過公式Bk=Sk+Ek+uEk計算軟判定的加權係數Bk,這裡Ek是在先一輪的非本徵加權係數。如果Bk等於或大於零,則將零位設定為所接收的位,在其它的情況下設定為一位。和(Sk+Ek)稱為非本徵加權係數,而將新的非本徵加權係數uEk設定為下一輪解碼的輸入參數。
附圖3所示為根據本發明的優選實施例的解碼器方案。將要解碼的信號300施加到第一存儲器元件中,即輸入緩衝器302。該信號包括如前文所述的系統部S和奇偶部P1和P2。在前向中,計算路徑量度的單元304從緩衝器中讀取數據。該單元將數據存儲在第二存儲器單元306中。存儲器元件306具有四個部分,這四個部分的使用將在下面描述。解碼器包括執行路徑量度的後向計算的兩個其它的計算單元308,310。這些計算單元的輸入連接到第二存儲器元件306,從第二存儲器元件中它們讀取單元304已經處理的數據,這將會在下文中描述。計算單元308,310的輸出連接到多路復用器312。解碼器進一步包括合成單元314,該合成單元314基於軟判定的路徑量度、硬判定和新的非本徵加權係數為下一輪迭代進行計算。合成單元的輸入由來自第二存儲器元件和多路復用器的輸出構成。解碼器也包括控制邏輯316,該控制邏輯316控制不同的部分的操作,比如使用第二存儲器元件306和多路復用器以使計算單元308,310的輸出依次施加到合成單元。還可以以不使用多路復用器的其它方式實施連接。
現在考慮根據本發明的優選實施例的方案,這個方案根據附圖2b和3在解碼器單元中執行解碼,該解碼器包括執行路徑量度的前向計算的計算單元(F)304、執行路徑量度的後向計算的兩個計算單元(B1,B2)308,310、合成單元(S)314和四組存儲器元件(M0,M1,M2和M3)306。在本實例中假設所使用的滑動窗口的長度是128,並且學習期的長度是32。然而,該方案並不限於這些值,這對於本領域的普通技術人員是顯然的。
在滑動窗口的開始時前向計算單元連續地執行計算,而同時,一個後向計算單元依次執行學習期,即預熱期,而另一個執行有用的計算。後向計算單元使用在存儲器元件中的值作為它們的輸入。存儲器元件的讀取方向總是保持相同。
該方法如附圖4所示。該附圖所示為滑動窗口400,如前文所述在本實例中該滑動窗口的長度為128。將滑動窗口劃分為四部分402至408,每部分的長度為32。在滑動窗口的第一部分402中,在前向方向上即從左至右執行計算。從第一存儲器中讀取數據,將所得的數據存儲在第二存儲器的部分M0至M4中的一個中。在第二窗口404中,計算單元執行學習期,從第二存儲器的部分M0至M4中的一個中讀取數據。這種計算從右至左進行。在窗口的第三部分406中沒有動作,而在第四部分中,執行實際的計算,從第二存儲器的部分M0至M4中的一部分中讀取數據。這種計算也從右至左地進行。下文將更加詳細地描述使用存儲器的不同部分。最後,滑動窗口朝右移動四分之一步幅。
根據所討論的一輪以直接或交織的順序讀取在在先一輪中計算的系統採樣Sk和非本徵加權係數Ek。作為對比,奇偶採樣總是以直接順序但從對應於渦輪碼的兩個分量代碼的兩個不同的奇偶數據存儲器達到。在串聯的實施方式中,一個奇偶存儲器在一輪中使用,另一奇偶存儲器接著在下一輪中使用。在以平行的解碼器實施的方案中,兩個解碼器總是使用相同的奇偶部分,因此兩種奇偶都表示為Pk。
路徑量度的前行計算單元(F)304根據控制單元的控制讀取它的輸入數據並在代碼的允許的狀態過渡之後計算路徑量度。路徑量度的數值和其它的數據被導向在第二存儲器元件的四部分M0,M1,M2和M3中的一部分中。在每個特定的時間k上,根據時間k如下確定要使用的存儲器的部分所使用的第二存儲器的部分的編號是(k div 32)模4((k div32)modulo 4)。
在此,a div b是指商a/b的整數部分。在時間k上存儲輸出記錄的第二存儲器的這部分的單元的數是k模32(k modulo 32)。
一個存儲器單元包括如下的信息前行路徑量度、非本徵加權係數、奇偶的數值和檢索非本徵加權係數的存儲器單位的地址αk(0),αk(1),αk(2),αk(3),αk(4),αk(5),αk(6),αk(7)(路徑量度)(Sk+Ek)(非本徵加權係數(所計算的和))Pk(奇偶)索引(交織器的k或第k元件)在路徑量度的前行計算的同時,路徑量度的第二後行計算單元執行學習期。如果(k div 32)為偶數,則通過B1 308執行學習期,而如果為奇數值,則通過B2 310執行學習期。執行學習期的後行計算從該存儲器單位31-(k模32)第二存儲器的部分編號((k div 32)+3)模4中讀取它的輸入數據。
不利用在學習期的過程中已經計算的後行路徑量度值,但該目的是存儲對應於用作該路徑量度的正確值的估計的周期的最後的索引的路徑量度值。這可以以例如這個方式實施以使路徑量度的使用在最後的數值上開始。
此外,與在先的功能同時地,路徑量度的第二後行計算從該該存儲器單位31-(k模32)第二存儲器的部分編號((k div 32)+1)模4中讀取它的輸入數據,並將與在上述的存儲器單位中的前行路徑量度的數值和其它的數據同時後行計算的當前的路徑量度進一步發送到單元(S),並通過輸入數據計算新的後行路徑量度,其中如果(k模32)是奇數則為B1,如果為偶數則為B2。合成單元(S)314計算新的非本徵加權係數並將它存儲在存儲器中的在單位索引中以用於下一輪,從該單位中可以檢索對應的在先非本徵加權係數。單元(S)也計算軟判定的加權係數,該軟判定的符號確定了該輪的硬判定。
在編號((k div 32)+2)模4的第二存儲器的部分中沒有動作,並且存儲器組的使用在每32的周期之後改變。對於學習期,除了在不需要習期的數據塊的末端以外,將所有的後行路徑量度例如初始化為等於零,因為假設編碼器在零狀態下完成,因此比其它的量度更加強調零狀態量度。關於稱為循環網格結構(cycle trellis)的終止,在數據塊的結尾也執行學習期。
在每64的周期之後再次初始化後行路徑量度的計算,由此在下一32個採樣中它處於預熱模式中,換句話說,它執行學習期,在該學習期之後,它開始產生可用於新的非本徵加權係數、軟判定或硬判定的計算的數據。
在開始的情況下,第一有用的學習期在時間k=64時開始,學習期的下一開始時間是k=64+n*32,n=0,1,2,3,…,單元B1在時間k=(n+1)*64時開始學習期,單元B2在時間k=(n+1)*64+32時開始學習期。
表1上表1所示為在解碼的過程中通過狀態機使用第二存儲器的部分。左列所示為二進位的形式的狀態機的不同的狀態。上述的狀態由如下的等式確定狀態=(k div 32)模4列M0,M1,M2和M3包含關於在特定的時間上計算單元處理第二存儲器的那部分的信息。計算前向的路徑量度的計算單元F存儲在該第二存儲器中,計算後向路徑量度的計算單元從第二存儲器中讀取。
在狀態00中前向計算的單元存儲在第二存儲器的部分M0中。後向計算單元B2從部分M1中讀取數據並執行有用的計算。在第二存儲器的部分M2中沒有動作。後向計算單元B1從部分M3中讀取數據並處於預熱階段(B1CS)。
在狀態01的前向計算單元存儲在第二存儲器的部分M1中。後向計算單元B2從部分M0中讀取數據並處於預熱階段(B2CS)。後向計算單元B1從部分M2中讀取數據並執行有用的計算。在第二存儲器的部分M3中不存在動作。
在狀態10的前向計算單元存儲在第二存儲器的部分M2中。後向計算單元B1從部分M1中讀取數據並處於預熱階段。後向計算單元B2從部分M3中讀取數據並執行有用的計算。在第二存儲器的部分M0中不存在動作。
在狀態11的前向計算單元存儲在第二存儲器的部分M3中。後向計算單元B1從部分M0中讀取數據並執行有用的計算。在第二存儲器的部分M1中不存在動作。後向計算單元B2從部分M2中讀取數據並處於預熱階段。
在研究一般情況的實例時,四分之一的窗口的長度由L表示,學習期的長度由W表示。可以有不同的長度,例如L=2*W,由此該存儲器的部分的大小加倍但要執行的學習期的數量降低。然而,L W。就實施方面講,2的冪比較可取,因為所要求的控制信息的計算簡單,例如L=W=32或者L=64和W=32。
因此,作如下標記L=四分之一的窗口的長度W=學習期的長度N=要解碼的位數,k=0,1,2,…,N-1將前行路徑量度與其它的數據一起寫在應用地址k模L的第二存儲器部分編號(k div L)模4的記錄中。
在(k div L)為偶數時學習期總是通過B1執行,並且在k=(n+1)*2*L+L-W(這裡n=0,1,2,…)時B1開始學習期。用於學習期的第二存儲器的部分是(k div L+3)模4和地址L-1-(k模L)。
因此,在(k div L)為奇數時學習期總是通過B2執行,並且在k=(n+1)*2*L+2*L-W(這裡n=0,1,2,…)時B2開始學習期。
在(k div L)為奇數時通過B1產生有用的後行路徑量度,相對應地在(k div L)為偶數時通過B1產生。在有用的周期中使用的第二存儲器的部分是(k div L+1)模4和地址L-1-(k模L)。
在要解碼的碼元完了(run out)時,根據編碼使用的終止,解碼必須以受控的方式停止。舉例,在L=W=32的情況下可以設想常規的終止的停止。發生這種停止以使在k=N時前向計算單元停止它的操作,但後行單元仍然繼續他們的操作,直到k=K=N+31-[(N-1)模32]。在這之後,另一後行單元例如B1跳到單位N-1,最有利於代碼狀態的零的路徑量度設定為後向計算的量度的初始值。單元B2斷開。接著,單元B1開始從第二存儲器的部分t=((N-1)div32)模4)中後向計算量度,繼續到第二存儲器的部分(t+3)模4中,最後繼續到(t+2)模4。例如,如果t=00,則要使用的第二存儲器的部分是M0,M3和M2。如果塊的長度小於65,則停止順序總是M1和M0,或者僅是M0。在停止的過程中從第二存儲器的每個部分中以遞減的順序讀取存儲器單元。
關於稱為循環終止的終止如上發生,除了將在狀態01中的塊的開始學習期給出的初始值設定為B1的初始值。在循環終止中,在所述開始處比在常規終止必須多一個學習期。
在根本不存在終止時,關於常規終止發生停止,但均等地有利於所有路徑量度的值設定為B1的初始值。
雖然參考根據附圖的實例已經描述了本發明,但是顯然的是本發明並不限於這些實例,而是在以所附加的權利要求所限定的本發明的精神內可以作出多種修改。
權利要求
1.一種通過在代碼字上的滑動的窗口對卷積編碼的代碼字進行解碼的方法,該方法包括在滑動窗口中同時前向和後向計算路徑量度並基於路徑量度在合成單元(314)中計算解碼結果,其特徵在於a)使用四部分的滑動窗口(400);b)在滑動窗口的第一部分(402)中的前向方向上計算路徑量度,並將該路徑量度存儲在一個四部分存儲器(306)中;c)以計算單元的輸入來自該四部分存儲器(306)的方式在滑動窗口的兩個其它的部分中的後向方向上計算該路徑量度;d)將所計算的量度應用到合成單元(314),並計算解碼結果;e)將滑動窗口朝前移動一部分;以及f)重複步驟a)至e)。
2.根據權利要求1所述的方法,其特徵在於計算在後向方向上的路徑量度以使在滑動窗口的第二部分(404)中計算單元執行預熱期以用於將來的計算,並在滑動窗口的第四部分(408)中計算單元計算路徑量度。
3.根據權利要求1所述的方法,其特徵在於計算在兩部分中在後向方向上的路徑量度以使一部分執行預熱期同時另一部分執行實際的計算。
4.根據權利要求1所述的方法,其特徵在於總是從相同的方向上讀取四部分存儲器(306),並且讀的方向與存儲的方向相反。
5.根據權利要求1所述的方法,其特徵在於在每個特定時間k上前向計算的單元(304)存儲在四部分存儲器的部分(k div L)模4的存儲器單位(k模L)中,L是四分之一的滑動窗口的長度。
6.根據權利要求5所述的方法,其特徵在於在存儲器的單位上存儲前向計算的路徑量度、非本徵加權係數、奇偶的數值和存儲器單位的地址,所述非本徵加權係數被從該存儲器單位檢索。
7.根據權利要求1所述的方法,其特徵在於,在執行預熱期的同時,在每個特定時間k上從四部分存儲器的部分(k div L+3)模4中檢索輸入數據,L是四分之一的滑動窗口的長度。
8.根據權利要求1所述的方法,其特徵在於,在計算實際的後行路徑量度的同時,在每個特定時間k上從四部分存儲器的部分(k divL+1)模4中檢索輸入數據,L是四分之一的滑動窗口的長度。
9.根據權利要求1所述的方法,其特徵在於將四部分存儲器的部分(k div L+1)模4中連接到合成單元的一個輸入中,L是四分之一的滑動窗口的長度。
10.根據權利要求2所述的方法,其特徵在於,在滑動窗口的第四部分(408)中,通過計算單元所計算的路徑量度應用到合成單元中。
11.一種通過滑動窗口(400)在代碼字上對卷積編碼的代碼字進行解碼的設備,該設備包括存儲代碼字的第一存儲器(302);計算前向和後向路徑量度的第一、第二和第三計算裝置(304,308,310);基於路徑量度計算解碼結果的合成單元(314);以及用於路徑量度的臨時存儲的第二存儲器(306);其特徵在於設置該第一計算裝置(304)以從第一存儲器(302)中讀取代碼字碼元以計算在給定長度的四部分滑動窗口的第一部分(402)中的前向方向上的路徑量度並將該路徑量度存儲在第二存儲器(306)中;第二存儲器(306)的輸出連接到第二和第三計算裝置(308,310)的輸入;設置第二和第三計算裝置(308,310)以計算在滑動窗口的兩個其它部分中的後向方向上的路徑量度;第二和第三計算裝置(308,310)的輸出和第二存儲器(306)的輸出在功能上連接到合成單元(314)的輸入;以及該設備包括控制裝置(316),設置該控制裝置以將滑動窗口朝前移動一部分,直到達到代碼字的末尾。
12.根據權利要求11的設備,其特徵在於設置第二和第三那計算裝置(308,310)以在後向方向上計算路徑量度以使在一些計算裝置執行預熱期的同時其它的計算裝置同時執行實際的計算。
13.根據權利要求11的設備,其特徵在於第二存儲器(306)包括四個部分(402至408)。
14.根據權利要求12的設備,其特徵在於設置第一計算裝置(304)以在特定的時間k存儲在第二存儲器(306)的部分(k div L)模4的存儲器單位(k模L)中,L是四分之一的滑動窗口的長度。
15.根據權利要求11的設備,其特徵在於第二和第三計算裝置(308,310)通過多路復用器(312)連接到合成單元(314)的輸入。
16.根據權利要求15的設備,其特徵在於設置該多路復用器(312)以依次將第二和第三計算裝置(308,312)連接到合成單元(314)的輸入。
17.根據權利要求11和13的設備,其特徵在於在每個特定的時間k在第二存儲器(306)的部分(k div L+3)模4連接到執行預熱期的計算單元的輸入,L是四分之一的滑動窗口的長度。
18.根據權利要求12和13的設備,其特徵在於在每個特定的時間k第二存儲器的部分(k div L+1)模4連接到計算實際數據的計算單元的輸入,L是四分之一的滑動窗口的長度。
19.根據權利要求11的設備,其特徵在於將存儲器的部分(k divL+1)模4連接到合成單元的一個輸入中,L是四分之一的滑動窗口的長度。
全文摘要
本發明涉及通過在代碼字上的滑動的窗口對卷積編碼的代碼字進行解碼的設備和方法。在滑動窗口中同時計算前向和後向路徑量度。基於路徑的量度在合成單元(314)中計算解碼結果。將滑動窗口劃分為四部分。在滑動窗口的第一部分中的前向方向上計算路徑量度,並將該路徑量度存儲在一個四部分存儲器(306)中。此外,以計算單元的輸入來自該四部分存儲器(306)的方式在滑動窗口的兩個其它的部分中的後向方向上計算該路徑量度;將所計算的量度應用到合成單元(314);並計算解碼結果。
文檔編號H03M13/45GK1440592SQ01812152
公開日2003年9月3日 申請日期2001年6月28日 優先權日2000年6月30日
發明者E·尼米寧 申請人:諾基亞有限公司