專利名稱:最大后驗概率譯碼方法和裝置的制作方法
技術領域:
本發明涉及最大后驗概率(MAP)譯碼方法以及使用此譯碼方法的譯碼裝置。更確切地說,本發明涉及用于在最大后驗概率譯碼中計算反向概率,然后計算正向概率,從而降低所使用的存儲量的最大后驗概率譯碼方法和裝置。
背景技術:
將糾錯碼應用于各種系統,其中糾錯碼用于改正所接收信息或重構信息中包含的差錯,以便對原始信息進行正確譯碼。例如,當需要在進行移動通信、傳真或其他數據通信時正確發送數據時,或者需要從諸如磁盤或CD之類的大容量存儲介質正確重構數據時,應用糾錯碼。
在眾多可用糾錯碼中,決定采用turbo碼(見USP5,446,747)作為下一代移動通信的標準。最大后驗概率譯碼(MAP譯碼)證明了其在此類turbo碼中的有效性。MAP譯碼方法是一種類似維特比譯碼的譯碼方法。
(a)維特比譯碼對于輸入第k項數據時的各主要狀態,維特比譯碼使用通過對信息長度N的信息的編碼獲得的編碼數據的第k項數據,選擇通向具有較少差錯的狀態的兩條路徑中的一條路徑,廢除具有較多差錯的路徑,其后,對于輸入最后的第N項數據時的各主要狀態,以類似方式,選擇通向具有較少差錯的狀態的兩條路徑中的一條路徑,并使用在各狀態所選路徑中具有最小差錯的路徑,執行譯碼。譯碼結果為硬判決輸出。
由于維特比譯碼方法是卷積碼譯碼方法,所以首先說明卷積編碼,然后再說明維特比譯碼。
圖11表示卷積編碼器的示例,該編碼器具有一個2比特移位寄存器SFR和兩個異或門EXOR1、EXOR2。EXOR1輸出一個輸入和R1之間的異或g0,EXOR2輸出該輸入和R1、R2之間的異或g1(當“1”的個數為奇數時,輸出“1”,否則輸出“0”。)。因此,圖12表示輸入數據為01101時,該輸入和卷積編碼器之輸出之間的關系,以及移位寄存器SFR的狀態。
將卷積編碼器的移位寄存器SFR的內容定義為“狀態”。如圖13所示,有四種狀態,即00、01、10和11,分別稱為狀態a、狀態b、狀態c和狀態d。借助圖11的卷積編碼器,根據移位寄存器SFR的狀態指示狀態a到d中的哪個狀態,并根據下一項輸入數據是“0”還是“1”,唯一確定輸出(g0,g1)和下一狀態。圖14表示卷積編碼器的狀態和其輸入和輸出之間的關系,其中虛線表示“0”輸入,而實線表示“1”輸入。
(1)如果在狀態a輸入“0”,則輸出為00且狀態為a;如果輸入“1”,則輸出為11且狀態變為c。
(2)如果在狀態b輸入“0”,則輸出為11且狀態為a;如果輸入“1”,則輸出為00且狀態變為c。
(3)如果在狀態c輸入“0”,則輸出為01且狀態變為b;如果輸入“1”,則輸出為10且狀態變為d。
(4)如果在狀態d輸入“0”,則輸出為10且狀態變為b;如果輸入“1”,則輸出為01且狀態變為d。
如果使用以上輸入/輸出關系,以格子表示圖11所示卷積編碼器的卷積編碼,則圖15(a)表示其結果,其中k表示輸入第k比特的時刻,并且編碼器的初始(k=0)狀態為a(00)。虛線表示“0”輸入,實線表示“1”輸入,線路上的兩個數值為輸出(g0,g1)。因此,可以理解,如果在初始狀態a(00)中輸入“0”,則輸出為00且狀態為a,如果輸入“1”,則輸出為11且狀態變為c。
通過參考上述格子形式的表示,可以理解,如果原始數據為11001,則經由圖15(b)中虛線箭頭所示路徑,到達狀態c,并且編碼器的輸出變為11→10→10→11→11
當對卷積碼進行譯碼時,首先作出與所接收數據有關的第一判決。有兩種判決,即硬判決和軟判決。
在硬判決中,以兩個量化電平為基礎作出判決,例如,如果檢測的輸出電平大于0,則判定為“1”,如果檢測的輸出電平小于0,則判定為“0”。如果以上述方式進行標準化判決,則在圖16所示的各概率密度函數的邊緣的延伸部分(陰影區域所示部分)出現差錯判決。
軟判決補償硬判決的缺點。如圖16左側的示例所示,以8個級別量化檢測的輸出,應用與各級別一致的似然加權,然后將判決結果輸出到譯碼器。
對于維特比譯碼,硬判決輸入和硬判決輸出以及軟判決輸入和硬判決輸出均是可能的。首先說明前者。
如果假設理想的無錯狀態,其中硬判決接收數據(g0,g1)是11→10→10→11→11,則獲得圖17(a)中虛線箭頭所示的路徑。如圖17(b)所示,通過使虛線表示“0”并使實線表示“1”,則可以得到譯碼結果11001。然而,實際上在許多情況中,接收數據包含差錯。如果第5位產生差錯,從而硬判決接收數據(g0,g1)是11→10→00→11→11,在時刻k=2時出現混亂,即轉移到10還是01(差錯數ERR=1)。如果將10作為狀態,并選擇上面的路徑,則到達狀態c,并且在k=3和k=4不出現混亂。因此,在虛線箭頭路徑上,差錯數變為差錯數ERR=1,并且此時譯碼結果變為11001。另一方面2如果將01作為狀態,并在時刻k=2時選擇下面的路徑,則在時刻k=3時出現混亂,即轉移到何處,并且差錯總數ERR=2。其后,以類似方式選擇路徑,當轉移混亂出現時,累加ERR。最終得到以下結果當譯碼結果為11001時,差錯總數ERR為1當譯碼結果為11100時,差錯總數ERR為2當譯碼結果為11110時,差錯總數ERR為3當譯碼結果為11111時,差錯總數ERR為3因此,選擇并輸出其差錯數ERR最小的譯碼結果11001。如果采用此方法,即使接收數據不正確,也可以正確檢測原始數據11001。
盡管上述說明涉及硬判決接收數據,但是也可以以類似方式,在軟判決接收數據中執行譯碼。圖18用于說明在軟判決接收數據中進行譯碼。如(b)所示,假設軟判決接收數據(g0,g1)是1,1→1,0→1,0→2/8,1→1,1。參照(a)所示的格子類型的表示,可以理解,在時刻k=3時出現混亂,即轉移到11還是00。如果將11作為狀態,并選擇上面的路徑(差錯數ERR=6/8),則到達狀態c,并且在k=4不出現混亂。因此,在虛線箭頭路徑上,差錯數變為差錯數ERR=6/8,并且此時譯碼結果變為11001。另一方面,如果將00作為狀態,并且在時刻k=3時選擇下面的路徑(差錯數ERR=1+2/8),則在時刻k=4時出現混亂,即轉移到何處,并且差錯總數ERR=(2+2/8)。其后,以類似方式選擇路徑,當轉移混亂出現時,累加ERR。最終得到以下結果當譯碼結果為11001時,差錯總數ERR為6/8當譯碼結果為11010時,差錯總數ERR為2+2/8當譯碼結果為11011時,差錯總數ERR為2+2/8因此,選擇并輸出其差錯數ERR最小的譯碼結果11001。如果采用此方法,即使接收數據不正確,也可以正確檢測原始數據11001。因此,軟判決與硬判決相同,只不過差錯數不再是整數。
根據接收數據獲得所有可能路徑的差錯數ERR,然后從其差錯數最小的路徑對原始數據進行譯碼的處理是錯綜復雜的。因此,按以下提出的方式執行維特比譯碼。假設接收數據111000是硬判決的結果。在圖18中k=3的狀態a中,有兩條輸入路徑。如果僅抽取并畫出有關路徑,則其結果如圖19(a)所示。兩條路徑為該圖所示的路徑(1)和路徑(2)。如圖19(b)和19(c)所示,如果計算接收數據和在各條路徑上獲得的譯碼數據之間的漢明距離,則結果將為3和4。
以上述計算結果為基礎,其假設為“通過遍歷路徑(1)達到狀態a”的漢明距離,比其假設為“通過遍歷路徑(2)達到狀態a”的漢明距離更短。因此,由于在路徑(1)上發送的數據具有較高的可靠性,所以該路徑作為幸存者,并且廢除其他路徑。如果從時刻k=1開始,相對于各狀態a到d,連續執行以上采用或丟棄路徑的處理,則可以找到在任意時刻k達到各狀態a、b、c、d的漢明距離最短的路徑(最小差錯的路徑)。可以從此開始向前繼續執行類似的采用或丟棄處理。
當已經輸入N項接收數據時,從通向k=N時各狀態a、b、c、d的四條最小差錯的路徑中,確定其差錯最小的路徑,并根據此路徑輸出譯碼數據。圖20表示接收數據為1110001111時,通向各時刻k時各狀態a到d的最短路徑。線路上的數值為漢明距離。因此,由于通向狀態c的路徑其差錯最少,所以如果根據此路徑執行譯碼,則譯碼數據將是11001。
以上譯碼稱為“最大似然譯碼”,其中選擇最可能的項目。由于是從維特比開始使用的,所以也稱為維特比算法。
(b)MAP譯碼概述對于維特比譯碼,在有關最小差錯的路徑的判決中,根本不反映在各狀態中廢除的差錯較大的路徑。與維特比譯碼不同,在MAP譯碼中,在有關最小差錯的路徑的判決中,也反映各狀態中差錯較大的路徑,從而獲得具有較高精度的譯碼數據。以下利用狀態m(=0到3)表示狀態a到d。
(b-1)MAP譯碼的第一特征對于MAP譯碼,在時刻k時在各狀態(m=0,1,2,3)中,譯碼數據uk是“0”、“1”的概率α0,k(m)、α1,k(m)取決于①在時刻(k-1)時在各狀態申的概率α0,k-1(m)、α1,k-1(m),②在時刻(k-1)和時刻k時各狀態之間的格子(是否存在路徑),以及③在時刻k的接收數據ya、yb。概率α0,k-1(m)、α1,k-1(m)稱為“正向概率”。另外,通過考慮格子②和接收數據③而得到的概率,即從時刻(k-1)的狀態m'(=0到3)轉變為時刻k的狀態m(=0到3)的概率稱為“轉變概率”。
(b-2)MAP譯碼的第二特征對于維特比譯碼,通過考慮從時刻1到k的接收數據以及從1到k的可能路徑,獲得通向某一時刻k的各狀態的最小差錯的路徑。然而,在有關最小差錯的路徑的判決中,根本不反映從k到N的接收數據以及從k到N的路徑。與維特比譯碼不同,在MAP譯碼中,為了獲得具有較高精度的譯碼數據,在譯碼處理中反映從k到N的接收數據以及從k到N的路徑。
更確切地說,通過考慮從N到k的接收數據以及格子,得到將通過時刻k時各狀態m(=0到3)的最小差錯的路徑的概率βk(m)。接著,通過將概率βk(m)乘以響應狀態的正向概率α0,k(m)、α1,k(m),得到在時刻k時在各狀態m(m=0,1,2,3)中譯碼數據uk變為“0”、“1”的更精確的概率。
到此為止,在時刻k時在各狀態m(m=0,1,2,3)中,概率βk(m)取決于①在時刻k+1時在各狀態中的概率βk+1(m),②在時刻(k+1)和時刻k時各狀態之間的格子,以及③在時刻(k+1)時的接收數據ya、yb。概率βk(m)稱為“反向概率”。另外,通過考慮格子②和接收數據③得到的概率,即從時刻(k+1)的狀態m′(=0到3)轉變為時刻k的狀態m(=0到3)的概率稱為轉變概率。
因此,MAP譯碼方法如下,如圖21所示(1)令N表示信息長度,通過考慮從時刻1到k的編碼數據以及從1到k的格子,計算在時刻k時各狀態(m=0到3)的正向概率α0,k(m)、α1,k(m)。亦即,根據在時刻(k-1)時各狀態的概率α0,k-1(m)、α1,k-1(m)以及轉變概率,得到各狀態的正向概率α0,k(m)、α1,k(m)。
(2)另外,使用從N到k的接收數據以及從N到k的路徑,計算在時刻k時各狀態(m=0到3)的反向概率βk(m)。亦即,使用在時刻(k+1)時各狀態的反向概率βk+1(m)以及轉變概率,計算各狀態的反向概率βk(m)。
(3)接著,將在時刻k時各狀態的正向概率乘以反向概率,以得到如下所示的聯合概率λ0,k(m)=α0,k(m)·βk(m),λ1,k(m)=α1,k(m)·βk(m)(4)隨后,得到各狀態中“0”的概率的總和∑mλ0,k(m)以及“1”的概率的總和∑mλ1,k(m),根據總和的數值,計算第k項數據的原始數據uk是“1”的概率,以及數據uk是“0”的概率,輸出較大概率作為第k項譯碼數據并輸出似然。譯碼結果為軟判決輸出。
(c)根據現有技術的第一MAP譯碼方法(c-1)MAP譯碼器的總體結構圖22是用于實現根據現有技術的第一MAP譯碼方法的MAP譯碼器的框圖。編碼率R,信息長度N,原始信息u,編碼數據xa、xb,以及接收數據ya、yb如下·編碼率R=1/2·信息長度N·原始信息u={u1,u2,u3,...,uN}·編碼數據xa={xa1,xa2,xa3,...,xak,.xaN}xb={xb1,xb2,xb3,...,xbk,...,xbN}·接收數據ya={ya1,ya2,y3,...yak,...,yaN}yb={yb1,yb2,yb3,...ybk,...,ybN}亦即,根據信息長度為N的原始信息u,生成編碼數據xa、xb,在接收時將差錯插入到編碼數據中,數據ya、yb是接收的,通過對接收數據進行譯碼得到原始信息u。
當在時刻k接收(yak,ybk)時,轉變概率計算部件1計算以下概率,并將其保存在存儲器2中(xak,xbk)為(0,0)的概率γ0,k(xak,xbk)為(0,1)的概率γ1,k(xak,xbk)為(1,0)的概率γ2,k(xak,xbk)為(1,1)的概率γ3,k通過使用前一時刻(k-1)時各狀態中原始數據uk-1為“1”的正向概率α1,k-1(m)和原始數據uk-1為“0”的正向概率α0,k-1(m),以及所獲得的時刻k時的轉變概率γ0,k、γ1,k、γ2,k、γ3,k,正向概率計算部件3計算在時刻k時原始數據uk為“1”的正向概率α1,k(m)和原始數據uk為“0”的正向概率α0,k(m),并將上述概率存儲到存儲器4a到4d中。請注意,由于處理總是從狀態m=0開始,所以正向概率的初始值為α0,0(0)=α1,0(0)=1,α0,0(m)=α1,0(m)=0(其中m≠0)。
在k=k+1時,轉變概率計算部件1和正向概率計算部件3重復上述計算,執行從k=1到k=N的計算,以計算時刻k=1到N的各時刻的轉變概率γ0,k、γ1,k、γ2,k、γ3,k和正向概率α1,k、α0,k,并將上述概率分別存儲到存儲器2以及存儲器4a到4d中。
其后,反向概率計算部件5使用時刻(k+1)時的反向概率βk+1以及轉變概率γs,k+1(s=0,1,2,3),計算在時刻k時各狀態m(=0到3)中的反向概率βk(m)(m=0到3),其中假設k的初始值為N-1,各自結束狀態為m=0且βN(0)=1,βN(1)=βN(2)=βN(3)=0成立。
聯合概率計算部件6中的第一運算器6a,將在時刻k時各狀態m(=0到3)中的正向概率α1,k(m)乘以反向概率βk(m),以計算第k項原始數據uk為“1”的概率λ1,k(m),而聯合概率計算部件6中的第二運算器6b,使用在時刻k時各狀態m(=0到3)中的正向概率α0,k(m)乘以反向概率βk(m),計算第k項原始數據uk為“0”的概率λ0,k(m)。
uk和uk似然計算部件7累加在時刻k時各狀態m(=0到3)中的“1”概率λ1,k(m),累加各狀態m(=0到3)中的“0”概率λ0,k(m),根據累加結果,即∑mλ1,k(m)和∑mλ0,k(m),確定第k項數據uk的“1”、“0”,計算其可信度(似然)L(uk),并輸出。
隨后,反向概率計算部件5,聯合概率計算部件6,以及uk和uk似然計算部件7在k=k+l時重復上述計算,從k=N到k=l執行計算,以確定時刻k=1到N的各時刻時原始數據uk的“1”、“0”,計算其可信度(似然)L(uk),并輸出。
(c-2)計算正向概率按照下式,根據①在時刻(k-1)時各狀態申的正向概率αik-1(m),以及②從時刻(k-1)的狀態m'(=0到3)轉變為k時刻的狀態m(=0到3)的轉變概率γ(Rk,m',m),得到譯碼數據uk將為i(“0’或“1”)的正向概率αik(m)αik(m)=∑m'∑jγi(Rk,m',m)·αik-1(m')/∑m∑m'∑i∑jγi(Rk,m',m)·αik-1(m')(1)這里,根據時刻(k-1)時狀態m'(=0到3)和時刻k時狀態m(=0到3)之間的格子,以及在時刻k時的接收數據ya、yb,得到轉變概率γi(Rk,m′,m)。由于上式中的分母為uk和uk似然計算中的除法消去的部分,因此無需計算。如果利用圖表表示上式中時刻k時在狀態m=0中原始數據uk將為“0”、“1”的正向概率α0k(0)、α1k(0),則其結果如圖23所示。
如果假設按所示方式,通過連接兩個觸發器FF1、FF2和三個異或門EXOR1到EXOR3構造卷積編碼器,則觸發器FF1、FF2具有四個狀態m(=0到3),即(00)、(01)、(10)、(11)。如果在各狀態中輸入“0”或“1”,則輸入/輸出數據與先后狀態之間的關系,將如圖25所示。在圖25中,左邊表示時刻k-1時的狀態m′,右邊表示輸入第k項數據后時刻k時狀態m,實線表示輸入“0”時狀態改變的路徑,而虛線表示輸入“1”時狀態改變的路徑,路徑上的00、11、10、01表示輸出信號xa、xb的值。例如,如果在狀態m′中輸入“0”,則輸出為01且狀態變為m=3;如果輸入“1”,則輸出為10且狀態變為m=2。
轉變概率γi(Rk,m′,m)為輸入數據i(“0”或“1”)時,從時刻(k-1)時的狀態m′(=0到3)轉變為時刻k時的狀態m(=0到3)的概率。根據下式得到該概率γi(Rk,m′,m)=p·q·π(2)其中,p是與接收數據有關的值。而q、π為常數,根據是否存在從時刻(k-1)時狀態m′到時刻k時狀態m的轉變路徑(格子),確定q、π。圖26表示該結果。如果沒有轉變路徑,則q·π=0成立。因此,只需計算圖26中o標記的轉變概率γ0(Rk,0,0)和γ1(Rk,2,0)中的p就足夠了,其他概率均為零。因此,如果除去圖23中轉變概率為零的線路,則uk為“0”、“1”的正向概率α0k(0)、α1k(0)將如圖27所示。亦即,根據下式得到正向概率α0k(0)=γ0(Rk,0,0)·α0k-1(0)+γ0(Rk,0,0)·α1k-1(0)(3)α1k(0)=γ1(Rk,2,0)·α0k-1(2)+γ1(Rk,2,0)·α1k-1(2)(4)轉變概率與狀態之間的格子和接收數據有關。根據轉變概率得到①(xsk,xbk)為(0,0)的移位概率γ0,k,②(xak,xbk)為(0,1)的移位概率γ1,k,③(xak,xbk)為(1,0)的移位概率γ2,k,以及④(xak,xbk)為(1,1)的移位概率γ3,k。例如,通過(xak,xbk)=(0,0)的轉變路徑,式(3)得到α0k(0)。因此,我們得到轉變概率γ0(Rk,0,0)=移位概率γ0,k另外,通過(xak,xbk)=(0,0)的轉變路徑,式(4)得到α1k(0)。因此,我們得到轉變概率γ1(Rk,2,0)=移位概率γ3,k于是,式(3)、(4)變為α0k(0)=γ0,k·α0k-1(0)+γ0,k·α1k-1(0)(3)′α1k(0)=γ3,k·α0k-1(2)+γ3,k·α1k-1(2)(4)′同樣,得到α0k(m)、α1k(m),其中m=1到3。
(c-3)計算反向概率按照下式,根據①在時刻(k+1)時各狀態中的反向概率βk+1(m),以及②從時刻k的狀態m(=0到3)轉變為時刻(k+1)的狀態m′(=0到3)的轉變概率γi(Rk+1,m′,m),得到各狀態的反向概率βk(m)βk(m)=∑m′∑iγi(Rk+1,m,m′)·βk+1(m′)/∑m∑m′∑i∑iγi(Rk,m,m′)·αik(m)(5)這里,根據時刻k時狀態m(=0到3)和時刻(k+1)時狀態m′(=0到3)之間的格子,以及在時刻(k+1)時的接收數據ya、yb,得到轉變概率γi(Rk+1,m,m′)。由于上式中的分母為似然計算中的除法消去的部分,因此無需計算。
如果利用圖表表示上式中時刻k時在狀態m=0中的βk(0),則其結果如圖28所示。如上所述,如果轉變路徑不存在,則q·π成立。于是,只需計算所標記的轉變概率γ0(Rk+1,0,0)和γ1(Rk+1,0,1)中的p就足夠了,其他概率均為零。因此,如果除去圖28中轉變概率為零的線路,則反向概率βk(0)將如圖29所示。亦即,根據下式得到反向概率βk(0)=γ0(Rk+1,0,0)·βk+1(0)+γ1(Rk+1,0,1)·βk+1(1)(6)轉變概率與狀態之間的格子和接收數據有關。根據轉變概率得到①(xak+1,xbk+1)為(0,0)的移位概率γ0,k+1,②(xak+1,xbk+1)為(0,1)的移位概率γ1,k+1,③(xak+1,xbk+1)為(1,0)的移位概率γ2,k+1,以及④(xak+1,xbk+1)為(1,1)的移位概率γ3,k+1。例如,通過(xak+1,xbk+1)=(0,0)的轉變路徑,式(3)的右側的第一項得到βk(0)。因此,我們得到轉變概率γ0(Rk+1,0,0)=移位概率γ0,k+1另外,通過(xak+1,xbk+1)=(1,1)的轉變路徑,式(3)右邊的第二項得到βk(0)。因此,我們得到轉變概率γ1(Rk+1,0,1)=移位概率γ3,k+1于是,式(6)變為βk(0)=γ0,k+1·βk+1(0)+γ3,k+1·βk+1(1)(6)′同樣,可以得到m=1到3的βk(1)、βk(2)、βk(3)。
(c-4)計算聯合概率和似然圖30用于說明計算聯合概率、uk和uk似然。
如果得到時刻k時各狀態的正向概率α0,k(m)、α1,k(m)和反向概率βk(m),則將上述概率進行相乘,以便按下式計算聯合概率λ0k(m)=α0k(m)·βk(m)λ1k(m)=α1k(m)·βk(m)然后,獲得各狀態中“1”的概率的總和∑mλ0k(m)和“0”的概率的總和∑mλ1k(m),并根據下式輸出似然L(u)=log[∑mλ1k(m)/∑mλ0k(m)](7)另外,如果L(u)>0成立,則輸出譯碼結果uk=1,如果I(u)<0成立,則輸出譯碼結果uk=0。亦即,根據“1”的概率的總和值∑mλ0k(m)和“0”的概率的總和值∑mλ1k(m),計算第k項原始數據uk為“1”的概率以及該數據為“0”的概率,并輸出其概率較大的數值作為第k項譯碼數據。
(c-5)第一MAP譯碼方法具有的問題圖22所示的現有技術的第一MAP譯碼方法具有以下問題,即使用大量存儲器。具體而言,第一MAP譯碼方法需要4×N的存儲量,用于存儲轉變概率,并需要m(狀態數)×2×N的存儲量,用于存儲正向概率,總共需要(4+m×2)×N的存儲量。由于實際計算伴隨有軟判決信號,所以需要為以上數字8倍的附加存儲量。例如,如果信號長度N=5120比特成立,在約束長度=3的情況下狀態數m=4成立,且軟判決量化位數=8成立,則需要的存儲量為(4+4×2)×5120×8=491.52千比特(c-6)修改并不是一定需要存儲移位概率的存儲器2不可,并且采用必須通過計算移位概率γs,k+1(s=0,1,2,3)計算反向概率βk(m)的方法。圖31為實現第一MAP譯碼方法的MAP譯碼器的修改,其中除去了存儲器2。根據此修改,需要的存儲量為(4×2)×5120×8=327.7千比特(d)根據現有技術的第二MAP譯碼方法因此,為了降低存儲量,考慮通過轉換正向概率和反向概率的計算次序進行計算的方法。圖32為實現該第二MAP譯碼方法的MAP譯碼器的框圖。利用相同的參考字符指示與圖22所示組件相同的組件。合適地倒轉接收數據的輸出次序的輸入/輸出反向器8,具有一個用于存儲所有接收數據的存儲器,和一個數據輸出部件,該部件用于以與數據輸入次序相反或相同的次序,輸出接收數據。對于采用MAP譯碼方法作為其譯碼方法的turbo譯碼器,必須交織接收數據,所以該譯碼器具有一個用于存儲所有接收數據的存儲器。這意味著可以將用于交織的存儲器,用作輸入/輸出反向器8的存儲器。因此,沒有與存儲器有關的負擔。
移位概率計算部件1使用時刻k(=N)時的接收數據(yak,ybk),計算以下概率,并將其存儲在存儲器2中(xak,xbk)為(0,0)的概率γ0,k(xak,xbk)為(0,1)的概率γ1,k(xak,xbk)為(1,0)的概率γ2,k(xak,xbk)為(1,1)的概率γ3,k反向概率計算部件5使用時刻k(=N)時的反向概率βk(m)和移位概率γs,k(s=0,1,2,3),計算時刻k-1時各狀態m(=0到3)中的反向概率βk-1(m)(m=0到3),并將反向概率存儲到存儲器9中。
隨后,移位概率計算部件1和正向概率計算部件3在k=k+1時重復上述計算,執行從k=N到k=1的計算,以計算時刻k=1到N的各時刻的移位概率γ0,k、γ1,k、γ2,k、γ3,k和反向概率βk(m),并將這些概率存儲到存儲器2、9中。
其后,通過使用時刻(k-1)時原始數據uk-1為“1”的正向概率α1,k-1(m)和原始數據uk-1為“0”的正向概率α0,k-1(m),以及所獲得的時刻k時的移位概率γ0,k、γ1,k、γ2,k、γ3,k,正向概率計算部件3計算在時刻k時各狀態m中uk為“1”的正向概率α1,k(m)和uk為“0”的正向概率α0,k(m)。請注意,k的初始值為1。
聯合概率計算部件6,將時刻k時各狀態m(0到3)中的正向概率α1,k(m)乘以反向概率βk(m),以計算第k項原始數據uk為“1”的概率λ1,k(m),同樣,使用在時刻k時各狀態0到3中的正向概率α0,k(m)和反向概率βk(m),計算原始數據uk為“0”的概率λ0,k(m)。
uk和uk似然計算部件7累加在時刻k時各狀態0到3中的“1”概率λ1,k(m),累加時刻k時各狀態0到3中的“0”概率λ0,k(m),根據累加結果,即∑mα1,k(m)和∑mα0,k(m)的值,確定第k項數據uk的“1”、“0”,計算其可信度(似然)L(uk),并輸出。
隨后,正向概率計算部件3,聯合概率計算部件6,以及uk和uk似然計算部件7在k=k+1時重復上述計算,從k=1到k=N執行計算,以確定時刻k=1到N的各時刻時uk的“1”、“0”,計算其可信度(似然)L(uk),并輸出。
如圖33的時序圖所示,根據第二MAP譯碼方法,在第一部分中,計算移位概率,計算反向概率并將計算結果存儲在存儲器中,而在第二部分中,計算正向概率,計算聯合概率并計算原始數據和似然。換句話說,對于第二MAP譯碼方法,不存儲正向概率α1,k(m)、α0,k(m),而是存儲反向概率βk(m)。因此,用于第二MAP譯碼方法的存儲量僅為,用于存儲移位概率的4×N和用于存儲反向概率的狀態數m×N,所以需要的總存儲量為(4+m)×N。因此,與第一MAP譯碼方法相比,可以降低所需要的存儲量。縮小率η為
η=(4+m)/(4+m×2)當狀態數m較小時(如果約束長度=3成立,則狀態數m=4成立),縮小率為η=(4+4)/(4+4×2)=69.2%所以,可以將存儲器減少30%。另外,如果狀態數m較大,則η≈m/(m×2)=50%并不是一定需要存儲移位概率的存儲器2不可,并且可以采用每次通過計算移位概率γs,k(s=0,1,2,3)計算正向概率α1,k(m)、α0,k(m)的方法。圖34表示用于實現第二MAP譯碼方法的MAP譯碼器的修改,其中除去了存儲器2。根據此修改,需要的總存儲量為(m×N)。因此,與圖31所示的第一MAP譯碼方法相比,可以降低所需要的總存儲量。縮小率η為η=(m×N)/(m×2)×N=50%(e)第三MAP譯碼方法根據第二MAP譯碼方法,與第一MAP譯碼方法相比,可以降低使用的存儲量。然而,還可以進一步降低所需的空間。
圖35(a)用于說明第三MAP譯碼方法的操作順序,其中該方法能夠進一步降低所使用的存儲量。這代表第二MAP譯碼方法的進一步擴展。在圖35中,在圖(b)中表示第二MAP譯碼方法的操作順序,以對照第二和第三譯碼方法。第三譯碼方法是以下文章中公開的方法,即IEEEJOURNAL ON SELECTED AREASIN COMMUNICATION,VOL.16,NO.2,FEBRUARY1998,“An Intuitive Justification and a SimplifiedImplementation of MAP Decoderfor Convolutional Codes(用于卷積碼的MAP譯碼器的直覺調整和簡單實現)”,Andrew J.Viterbi。
在圖35中,B操作表示反向概率計算/移位概率計算,A操作表示正向概率計算/移位概率計算,L操作表示聯合概率計算/似然計算。如圖(b)所示,對于第二MAP譯碼方法,(1)全面執行B操作,并將結果存儲在從N到1的存儲器中,然后(2)當從1到N連續執行A操作和L操作時,輸出uk和似然(uk)。然而,根據第二MAP譯碼方法,為存儲反向概率βk(m)需要N×m的存儲量。
因此,在第三MAP譯碼方法中,將k=1到N均勻劃分為段M,并且按如下方式執行MAP譯碼。
首先,(1)從k=2M到k=0執行B操作。在B操作中,不是從k=N開始計算反向概率βk(m),而是從中間位置k=2M開始計算。因此,不能信任在第一部分中在k=2M到k=M上得到的反向概率βk(m),從而廢除它們。可以信任在第二部分中在k=M到k=1上得到的反向概率βk(m),因此,將其存儲到存儲器中。(2)接著,在k=0執行A操作,使用k=1時A操作的結果α1,1(m)、α0,1(m)以及存儲器中存儲的β1(m),執行L操作,并根據聯合概率計算譯碼結果u1和似然L(u1)。其后,以類似方式,從k=2到k=M執行A操作,并根據A操作的結果以及存儲器中B操作的結果,執行L操作。從而結束從k=1到k=M的譯碼結果uk和似然L(uk)的計算。
接著,(3)從k=3M到k=M+1執行B操作。在B操作中,不是從k=N開始計算反向概率βk(m),而是從中間位置k=3M開始計算。因此,不能信任在第一部分中在k=3M到k=2M+1上得到的反向概率βk(m),從而廢除它們。可以信任在第二部分中在k=2M到k=M+1上得到的反向概率βk(m),因此,將其存儲到存儲器中。(4)接著,在k=M+1執行A操作,使用k=M+1時A操作的結果α1,M+1(m)、α0,M+1(m)以及存儲器中存儲的βM+1(m),執行L操作,并根據聯合概率計算譯碼結果uM+1和似然L(uM+1)。其后,以類似方式,從k=M+2到k=M執行A操作,并根據A操作的結果以及存儲器中B操作的結果,執行L操作。從而結束從k=M+1到k=2M的譯碼結果uk和似然L(uk)的計算。
接著,以類似方式,(5)從k=4M到k=2M+1執行B操作,并在存儲器中存儲在第二部分中在k=3M到k=2M+1上得到的反向概率βk(m)。(6)接著,在k=2M+1執行A操作,使用k=2M+1時A操作的結果α1,2M+1(m)、α0,2M+1(m)以及存儲器中存儲的β2M+1(m),執行L操作,并根據聯合概率計算譯碼結果u2M+1和似然L(u2M+1)。其后,從k=2M+2到k=3M執行A操作,并根據A操作的結果以及存儲器中B操作的結果,執行L操作。從而結束從k=2M+1到k=3M的譯碼結果uk和似然L(uk)的計算。
其后執行類似操作。最后,(7)從k=N(=5M)到k=3M+1執行B操作,并在存儲器中存儲所得到的所有反向概率βk(m)。(8)接著,在k=3M+1執行A操作,使用k=3M+1時A操作的結果α1,3M+1(m)、α0,3M+1(m)以及存儲器中存儲的β3M+1(m),執行L操作,并根據聯合概率計算譯碼結果u3M+1和似然L(u3M+1)。其后,從k=3M+2到k=N(=5M)執行A操作,并根據A操作的結果以及存儲器中B操作的結果,執行L操作。從而結束從k=3M+1到k=N的譯碼結果uk和似然L(uk)的計算。
第三MAP譯碼方法具有以下優點,即能夠將存儲反向概率的存儲量降低到2M。此外,可以縮短輸出最初譯碼結果u1和似然L(u1)所需要的時間。
然而,對于第三MAP譯碼方法,不是從k=N開始計算反向概率βk(m),而是從中間位置開始計算。因此,反向概率βk(m)是不準確的,由此引起的問題是MAP譯碼精度的下降。
另外,對于第三MAP譯碼方法,首先在2M上執行B計算,然后在M上執行A計算,因此,其時序形式的結果如圖36(a)所示。然而,由于此方法間歇執行A操作,所以計算需要時間。于是,如圖36(b)所示,通過同時執行第一和第二部分的B操作,可以連續執行A操作,從而提高操作速度。然而,此方法的問題在于,由于同時執行第一和第二部分的B操作,所以需要兩條B運算電路。
第三MAP譯碼方法的另一個問題在于,反向概率βk(m)的計算是重復的,即執行兩次,所以總的來說增加功耗。
因此,本發明的目的在于減少存儲量,并且精確計算反向概率βk(m),以提高MAP譯碼的精度。
本發明的另一目的在于調整MAP譯碼器,從而無需使用兩條運算電路計算反向概率βk(m),也能獲得規定的操作速度。
本發明的另一目標在于僅計算一次反向概率βk(m),就能夠準確計算反向概率βk(m),從而在降低功耗方面具有優勢。
技術內容在第一MAP譯碼方法中,(1)以從第N反向概率到第一反向概率的相反方向,計算反向概率,保存第m1反向概率到第一反向概率,接著,計算第一正向概率,使用第一正向概率和保存的第一反向概率獲得第一譯碼結果,并且以類似方式,獲得第二到第m1譯碼結果。(2)其后,以從第N反向概率到第(m1+1)反向概率的相反方向,計算反向概率,保存第m2反向概率到第(m1+1)反向概率,計算第(m1+1)正向概率,使用第(m1+1)正向概率和保存的第(m1+1)反向概率獲得第(m1+1)譯碼結果,并且以類似方式,獲得第(m1+2)到第m2譯碼結果,以及(3)隨后以類似方式,獲得第(m2+1)到第N譯碼結果。
如果采用以上方法,則存儲反向概率僅需要r×m(狀態數)的存儲量,其中m1=r,m2=2r,...成立。此外,由于一直從k=N開始計算反向概率,所以可以準確計算反向概率βk(m),從而可以提高MAP譯碼的精度。
在另一種MAP譯碼方法中,(1)以從第N反向概率到第一反向概率的相反方向,計算反向概率,離散保存第ms反向概率、第m(s-1)反向概率...第m2反向概率,連續保存第m1反向概率到第一反向概率,計算第一正向概率,使用第一正向概率和保存的第一反向概率計算第一譯碼結果,并且以類似方式,獲得第二到第m1譯碼結果。(2)其后,計算反向概率,直至第(m1+1)反向概率,并從已經保存的第m2反向概率開始保存反向概率,計算第(m1+1)正向概率,使用第(m1+1)正向概率和保存的第(m1+1)反向概率計算第(m1+1)譯碼結果,以類似方式獲得第(m1+2)到第m2譯碼結果,以及(3)隨后以類似方式獲得第(m1+1)到第N譯碼結果。
如果采用以上方法,則存儲反向概率僅需要r×m(狀態數)的存儲量,其中m1=r,m2=2r,...成立。另外,對其調整,從而以從第N反向概率到第一反向概率的相反方向,計算反向概率,離散存儲獲得的反向概率,并且如果必要的話,計算所需數目的反向概率,并從某個離散存儲的反向概率開始使用。因此,可以準確計算反向概率βk(m),從而可以提高MAP譯碼的精度。此外,必要時,通過從k=N開始計算反向概率,無需獲得所需數目的反向概率。因此可以提高操作速度。另外,無需使用兩條運算線路計算反向概率βk(m),也能獲得規定的操作速度。而且僅需計算一次反向概率βk(m),從而在降低功耗方面具有優勢。
圖1為通信系統的示意圖;圖2為turbo編碼器的框圖;圖3說明卷積編碼器的狀態轉變;圖4為turbo編碼器的框圖;圖5用于說明根據本發明之第一MAP譯碼方法的操作順序;圖6為根據第一實施方式的MAP譯碼器的框圖;圖7用于說明根據本發明之第二MAP譯碼方法的操作順序;圖8為根據第二實施方式的MAP譯碼器的框圖;圖9為turbo編碼器的框圖;圖10用于說明turbo譯碼器的操作;圖11為卷積編碼器的框圖;圖12用于說明卷積編碼器的輸入和輸出之間的關系;圖13用于說明卷積編碼器的狀態;圖14表示卷積編碼器的狀態和輸入/輸出之間的關系;圖15用于說明格子形式的表示;圖16用于說明硬判決和軟判決;圖17用于說明卷積碼的譯碼(硬判決);圖18用于說明卷積碼的譯碼(軟判決);圖19用于說明卷積碼的譯碼;圖20用于說明在任意時刻k時各狀態的最小差錯路徑;圖21用于說明MAP譯碼的概觀;圖22為用于實現現有技術的第一MAP譯碼方法的MAP譯碼器的框圖;圖23用于說明正向概率的計算;圖24為卷積編碼器的框圖;
圖25表示卷積編碼器的狀態和輸入/輸出之間的關系;圖26用于說明轉變概率;圖27用于說明正向概率的計算,其中除去了轉變概率=0的線路;圖28用于說明反向概率的計算;圖29用于說明反向概率的計算,其中除去了轉變概率=0的線路;圖30用于說明聯合概率和似然的計算以及譯碼結果;圖31為用于實現根據現有技術的第二MAP譯碼方法的MAP譯碼器的修改;圖33為根據現有技術的第二MAP譯碼方法的時序圖;圖34為用于實現根據現有技術的第二MAP譯碼方法的MAP譯碼器的修改;圖35用于說明根據現有技術的第三MAP譯碼方法的操作順序;以及圖36用于說明根據現有技術的第三MAP譯碼方法的問題。
具體實施例方式
(A)Turbo碼MAP譯碼方法證明了其在turbo碼中的有效性。圖1為包含turbo編碼器和turbo譯碼器的通信系統的框圖。數字11表示在數據發送端提供的turbo編碼器,數字12表示在數據接收端提供的turbo譯碼器。數字13表示數據通信路徑。另外,字符u表示其長度為N的發送信息數據;xa、xb、xc表示通過利用turbo編碼器11對信息數據u進行編碼后得到的編碼數據;ya、yb、yc表示接收數據,該數據受編碼數據xa、xb、xc在通信路徑13中傳播引起的噪聲和衰落的影響;u′表示通過利用譯碼器12對接收數據ya、yb、yc進行譯碼后得到的譯碼結果。利用以下方式表示以上數據項。
原始信息u={u1,u2,u3,...,uN}編碼數據xa={xa1,xa2,xa3,...,xak,...,xaN}xb={xb1,xb2,xb3,...,xbk,...,xbN}xc={xc1,xc2,xc3,...,xck,...,xcN}
接收數據ya={ya1,ya2,ya3,...,yak,...,yaN}yb={yb1,yb2,yb3,...,ybk,...,ybN}yc={yc1,yc2,yc3,...,yck,...,ycN}Turbo編碼器11對信息長度為N的信息數據u進行編碼,并輸出編碼數據xa、xb、xc。編碼數據xa本質上為信息數據u,編碼數據xb為利用編碼器ENCI對信息數據u進行卷積編碼后得到的數據,而編碼數據xc為利用編碼器ENC2對信息數據u進行交織(π)和卷積編碼后得到的數據。換句話說,通過組合兩種卷積碼得到turbo碼。請注意,交織數據xa′與編碼數據xa的不同僅在于其順序,所以不輸出。
圖2表示turbo編碼器11的詳細信息。數字11a、11b表示按相同方式構造的卷積編碼器(ENC1、ENC2),數字11c表示交織部件(π)。按照所示方式,通過連接兩個觸發器FF1、FF2和三個異或門EXOR1-EXOR3,構造適合于輸出遞歸系統卷積碼的卷積編碼器11a、11b。觸發器FF1、FF2具有四個狀態0(=00)、1(=01)、2(=10)、3(=11)。如果在上述各狀態中輸入“0”或“1”,則狀態將經歷圖3所示的轉變,并且觸發器輸出xa、xb。在圖3中,左邊表示在輸入接收數據之前的狀態,而右邊表示輸入后的狀態,實線表示輸入“0”時狀態改變的路徑,而虛線表示輸入“1”時狀態改變的路徑,路徑上的00、11、10、01表示輸出信號xa、xb的值。例如,如果在狀態0(=00)中輸入“0”,則輸出為00且狀態變為0(=0);如果輸入“1”,則輸出為11且狀態變為1(=10)。
圖4為turbo譯碼器的框圖。第一組件譯碼器DEC1首先使用接收數據ya、yb、yc中的ya和yb進行turbo譯碼。組件譯碼器DEC1為一個軟輸出組件譯碼器,并輸出譯碼結果的似然。接著,第二組件譯碼器DEC2使用第一組件譯碼器DEC1輸出的似然以及yc,進行類似譯碼。亦即,第二組件譯碼器DEC2也是一個軟輸出組件譯碼器,并輸出譯碼結果的似然。這里,yc是與xc相對應的接收信號,該信號是通過對信息數據u進行交織和編碼后得到的。因此,首先對第一組件譯碼器DEC1輸出的似然進行交織(π),然后進行第二組件譯碼器DEC2。
對第二組件譯碼器DEC2輸出的似然進行解交織(π-1),然后作為輸入將其反饋到第一組件譯碼器DEC1。另外,u′是對第二組件譯碼器DEC2的交織結果進行“0”、“1”判決后得到的譯碼數據(譯碼結果)。通過將上述譯碼操作執行規定的次數,可以降低誤碼率。
可以使用MAP組件譯碼器作為此類turbo組件譯碼器中的第一和第二組件譯碼器DEC1、DEC2。
(B)第一實施方式(a)操作順序圖5用于說明根據本發明之第一MAP譯碼方法的操作順序。
(1)開始時,以從k=N時第N反向概率直到k=1時第一反向概率的相反方向,計算反向概率βk(m)(k=N到1),并且(2)保存第m1反向概率βm1(m)到第一反向概率β1(m)。接著,(3)計算第一正向概率α11(m)、α01(m),使用第一正向概率和保存的第一反向概率β1(m)獲得第一譯碼數據ui和似然L(ui),并且以類似方式,獲得第二到第m1譯碼數據u2到um1,以及似然L(u2)到L(um1)。
(4)其后,以從第N反向概率到第(m1+1)反向概率的相反方向,計算反向概率,并且(5)保存第m2反向概率βm2(m)到第(m1+1)反向概率βm1+1(m)。接著,(6)計算第(m1+1)正向概率α1m1+1(m)、α0m1+1(m),使用第(m1+1)正向概率和保存的第(m1+1)反向概率βm1+1(m)獲得第(m1+1)譯碼數據um1+1和似然L(um1+1),并且以類似方式,獲得第(m1+2)到第m2譯碼數據um1+2到um2,以及似然L(um1+2)到L(um2)。(7)其后,以類似方式,獲得第(m2+1)到第N譯碼數據um2+1到uN,以及似然L(um2+1)到L(uN)。
(b)第一實施方式的MAP譯碼器圖6為根據第一實施方式的MAP譯碼器的框圖。
根據圖5的操作順序,MAP控制器50控制全部MAP譯碼器,即控制各組件的計算定時,以及從存儲器中讀出數據或將數據寫入到存儲器中等。用于以適當方式改變接收數據之輸出順序的輸入/輸出交織器51,具有一個用于存儲所有接收數據的存儲器,和一個數據輸出部件,該部件用于以與數據輸入次序相反或相同的次序,輸出接收數據。對于turbo譯碼器,必須交織接收數據,因此該譯碼器具有一個用于存儲所有接收數據的存儲器.這意味著可以將用于交織的存儲器,用作輸入/輸出交織器5工的存儲器。因此,沒有與存儲器有關的負擔。
移位概率計算部件52使用時刻k(=N)時的接收數據(yak,ybk),計算以下概率(xak,xbk)為(0,0)的概率γ0,k(xak,xbk)為(0,1)的概率γ1,k(xak,Xbk)為(1,0)的概率γ2,k(xak,xbk)為(1,1)的概率γ3,k另外,反向概率計算部件53使用時刻k(=N)時的反向概率βk(m)和移位概率γs,k(s=0,1,2,3),計算時刻k-1時各狀態m(=0到3)中的反向概率βk-1(m)(m=0到3)。其后,移位概率計算部件52和反向概率計算部件53在k=k-1重復上述計算,從k=N到k=1執行計算,并將從k=m,到1的第m1反向概率βm1(m)到第一反向概率β1(m)保存到存儲器54中。
其后,移位概率計算部件52使用時刻k(=1)時的接收數據(yak,ybk),計算以下概率(xak,xbk)為(0,0)的概率γ0,k(xak,xbk)為(0,1)的概率γ1,k(xak,xbk)為(1,0)的概率γ2,k(xak,xbk)為(1,1)的概率γ3,k另外,正向概率計算部件55假設k=l,并使用時刻(k-1)時的正向概率(α1k-1(m)、α0k-1(m),以及所獲得的時刻k時的移位概率γ0,k、γ1,k、γ2,k、γ3,k,計算時刻k時各狀態m(=0到3)中的正向概率α1k(m)、α0k(m)。
聯合概率計算部件56,將時刻k時各狀態m(=0到3)中的正向概率α1k(m)乘以反向概率βk(m),以計算第k項原始數據uk為“1”的概率λ1k(m),同樣,使用在時刻k時各狀態m(=0到3)中的正向概率α0k(m)和反向概率βk(m),計算原始數據uk為“0”的概率λ0k(m)。
uk和uk似然計算部件57獲得在時刻k時各狀態m(=0到3)中的“0”概率的總和∑mλ0k(m),以及“1”概率的總和∑mλ1k(m),并根據下式輸出似然L(u)=log[∑mλ1k(m)/∑mλ0k(m)]另外,如果L(u)>0成立,則輸出譯碼結果uk=1,如果L(u)<0成立,則輸出譯碼結果uk=0。
其后,移位概率計算部件52,正向概率計算部件55,聯合概率計算部件56,以及uk和uk似然計算部件57在k=k+1時重復上述計算,從k=1到k=m1執行計算,計算時刻k=1到m1的各時刻時的uk以及其可信度(似然)L(uk),并輸出。
如果完成從k=1到k=m1的uk和L(uk)的計算,則在MAP控制器50的控制下,移位概率計算部件52使用時刻k(=N)時的接收數據(yak,ybk),計算概率γ0,k、γ1,k、γ2,k、γ3,k。另外,反向概率計算部件53使用時刻k(=N)時的反向概率βk(m)和移位概率γs,k(s=0,1,2,3),計算時刻k-1時各狀態m(=0到3)中的反向概率βk-1(m)(m=0到3)。
隨后,移位概率計算部件52和反向概率計算部件53在k=k-1時重復上述計算,從k=N到k=m1+1執行計算,并將從k=m2到m1+1的第m2反向概率βm2(m)到第m1+1反向概率βm1+1(m)保存到存儲器54中。
隨后,移位概率計算部件52使用時刻k(=m1+1)時的接收數據(yak,ybk),計算概率γ0,k、γ1,k、γ2,k、γ3,k。另外,正向概率計算部件53假設k=m1+1,并使用時刻(k-1)時的正向概率α1k-1(m)、α0k-1(m),以及所獲得的時刻k時的移位概率γ0,k、γ1,k、γ2,k、γ3,k,計算時刻k時各狀態m(=0到3)中的正向概率α1k(m)、α0k(m)。聯合概率計算部件56以及uk和uk似然計算部件57執行與以上所述操作類似的操作,并輸出uk和似然L(uk)。
其后,移位概率計算部件52,正向概率計算部件55,聯合概率計算部件56,以及uk和uk似然計算部件57在k=k+l時重復上述計算,從k=m1+1到k=m2執行計算,計算時刻k=m1+1到m2的各時刻時的uk以及其可信度(似然)L(uk),并輸出。
如果完成上述操作,則隨后以類似方式獲得第m2+l到第N譯碼數據um2+1到uN,以及似然L(um2+1)到L(uN)。
根據本發明的第一方面,存儲反向概率僅需要r×m(狀態數)的存儲量,其中m1=r,m2=2r,...成立。此外,由于一直從k=N開始計算反向概率,所以可以準確計算反向概率βk(m),從而可以提高MAP譯碼的精度。
(C)第二實施方式(a)操作順序圖7用于說明根據本發明之第二MAP譯碼方法的操作順序。
(1)開始時,以從k=N時第N反向概率直到k=1時第一反向概率的相反方向,計算所有反向概率βk(m)(k=N到1),離散保存第ms反向概率βms(m)、第m(s-1)反向概率βm(s-1)(m)、...、第m3反向概率βm3(m)、第m2反向概率βm2(m),連續保存第m1反向概率βm1(m)到第一反向概率β1(m)。
(2)接著,計算第一正向概率(α11(m)、α01(m),使用第一正向概率和保存的第一反向概率β1(m)獲得第一譯碼數據u1和似然L(u1),并且以類似方式,獲得第二到第m1譯碼數據u2到um1,以及似然L(u2)到L(um1)。
(3)其后,計算反向概率,直至第(m1+1)反向概率βm1+1(m),并從已經保存的第m2反向概率βm2(m)開始保存反向概率。
(4)接著,計算第(m1+1)正向概率α1m1+1(m)、α0m1+1(m),使用第(m1+1)正向概率和保存的第(m1+1)反向概率βm1+1(m)獲得第(m1+1)譯碼數據um1+1和似然L(um1+1),以類似方式獲得第(m1+2)到第m2譯碼數據um1+2到um2,以及似然L(um1+2)到L(um2)。
(5)其后,計算反向概率,直至第(m2+1)反向概率βm2+1(m),并從已經保存的第m3反向概率βm3(m)開始保存反向概率。
(6)接著,計算第(m2+1)正向概率α1m2+1(m)、α0m2+1(m),使用第(m2+1)正向概率和保存的第(m2+1)反向概率βm2+1(m)獲得第(m2+1)譯碼數據um2+1和似然L(um2+1),以類似方式獲得第(m2+2)到第m3譯碼數據um2+2到um3,以及似然L(um2+2)到L(um3)。
(7)其后,以類似方式,使用保存的第m4反向概率βm4(m)、...、第m(s-1)反向概率βm(s-1)(m)、第ms反向概率βms(m),獲得第(m3+1)到第N譯碼數據um3+1到uN,以及似然L(um3+1)到L(uN)。
(b)第二實施方式的MAP譯碼器圖8為根據第二實施方式的MAP譯碼器的框圖,其中利用相同的參考字符指示與圖6所示組件相同的組件。
根據圖7的操作順序,MAP控制器50控制全部MAP譯碼器,即控制各組件的計算定時,以及從存儲器中讀出數據或將數據寫入到存儲器中等。用于以適當方式改變接收數據之輸出順序的輸入/輸出交織器51,具有一個用于存儲所有接收數據的存儲器,和一個數據輸出部件,該部件用于以與數據輸入次序相反或相同的次序,輸出接收數據。
移位概率計算部件52使用時刻k(=N)時的接收數據(yak,ybk),計算以下概率(xak,xbk)為(0,0)的概率γ0,k(xak,xbk)為(0,1)的概率γ1,k(xak,xbk)為(1,0)的概率γ2,k(xak,xbk)為(1,1)的概率γ3,k另外,反向概率計算部件53使用時刻k(=N)時的反向概率βk(m)和移位概率γs,k(s=0,1,2,3),計算時刻k-1時各狀態m(=0到3)中的反向概率βk-1(m)(m=0到3)。其后,移位概率計算部件52和反向概率計算部件53在k=k-1重復上述計算,并從k=N到k=1執行計算。反向概率計算部件53,將與從k=N到1的反向概率計算的并行操作中離散獲得的第ms反向概率βms(m)、第m(s-1)反向概率βm(s-1)(m)、...、第m3反向概率βm3(m)、第m2反向概率βm2(m),存儲到存儲器54的離散反向概率存儲部分54a,并且將第m1反向概率βm1(m)到第一反向概率β1(m),存儲到連續反向概率存儲部分54b。
隨后,移位概率計算部件52使用時刻k(=1)時的接收數據(yak,ybk),計算以下概率(xak,xbk)為(0,0)的概率γ0,k(xak,xbk)為(0,1)的概率γ1,k(xak,xbk)為(1,0)的概率γ2,k
(xak,xbk)為(1,1)的概率γ3,k另外,正向概率計算部件55假設k=1,并使用時刻(k-1)時的正向概率α1k-1(m)、α0k-1(m), 以及所獲得的時刻k時的移位概率γ0,k、γ1,k、γ2,k、γ3,k,計算時刻k時的正向概率α1k(m)、α0k(m)。
聯合概率計算部件56,將時刻k時各狀態m(=0到3)中的正向概率α1k(m)乘以反向概率βk(m),以計算第k項原始數據uk為“1”的概率λ1k(m),同樣,使用在時刻k時各狀態m(=0到3)中的正向概率α0k(m)和反向概率βk(m),計算原始數據uk為“0”的概率λ0k(m)。
uk和uk似然計算部件57獲得在時刻k時各狀態m(=0到3)中的“1”概率的總和∑mλ0k(m),以及“0”概率的總和∑mλ1k(m),并根據下式輸出似然L(u)=log[∑mλ1k(m)/∑mλ0k(m)]另外,如果L(u)>0成立,則輸出譯碼結果uk=1,如果L(u)<0成立,則輸出譯碼結果uk=0。
其后,移位概率計算部件52,正向概率計算部件55,聯合概率計算部件56,以及uk和uk似然計算部件57在k=k+1時重復上述計算,從k=1到k=m1執行計算,計算時刻k=1到m1的各時刻時的uk以及其可信度(似然)L(uk),并輸出。
如果完成從k=1到k=m1的uk和L(uk)的計算,則在MAP控制器50的控制下,移位概率計算部件52使用時刻k(=m2)時的接收數據(yak,ybk),計算概率γ0,k、γ1,k、γ2,k、γ3,k。另外,反向概率計算部件53從存儲部分54a中,讀出時刻k(=m2)時的反向概率βk(m)[=βm2(m)],使用反向概率βk(m)和移位概率γs,k(s=0,1,2,3),計算時刻k-1時各狀態m(=0到3)中的反向概率βk-1(m)(m=0到3),并將其存儲在存儲部分54b。隨后,移位概率計算部件52和反向概率計算部件53在k=k-1時重復上述計算,從k=m2到k=m1+1執行計算,并將從k=m2到m1+1的第m2反向概率βm2(m)到第m1+1反向概率βm1+1(m)保存到存儲部分54b。
隨后,移位概率計算部件52使用時刻k(=m1+1)時的接收數據(yak,ybk),計算概率γ0,k、γ1,k、γ2,k、γ3,k。另外,正向概率計算部件53假設k=m1+1,并使用時刻(k-1)時的正向概率α1k-1(m)、α0k-1(m),以及所獲得的時刻k時的移位概率γ0,k、γ1,k、γ2,k、γ3,k,計算時刻k時各狀態m(=0到3)中的正向概率α1k(m)、α0k(m)。聯合概率計算部件56以及uk和uk似然計算部件57執行與以上所述操作類似的操作,并輸出uk和似然L(uk)。
其后,移位概率計算部件52,正向概率計算部件55,聯合概率計算部件56,以及uk和uk似然計算部件57在k=k+1時重復上述計算,從k=m1+1到k=m2執行計算,計算時刻k=m1+1到m2的各時刻時的uk以及其可信度(似然)L(uk),并輸出。
隨后,以類似方式獲得第m2+1到第N譯碼數據um2+1到uN,以及似然L(um2+1)到L(uN)。
根據本發明的第二方面,存儲反向概率僅需要r×m+(s-1)(m狀態數)的存儲量,其中m1=r,m2=2r,m3=3r,...成立。另外,對其調整,從而以從第N反向概率到第一反向概率的相反方向,計算反向概率,離散存儲獲得的反向概率,并且如果必要的話,計算所需數目的反向概率,并從某個離散存儲的反向概率開始使用。因此,可以準確計算反向概率βk(m),從而可以提高MAP譯碼的精度。
(C)Turbo譯碼器圖9為一框圖,說明將根據本發明的MAP譯碼器用作turbo譯碼器(見圖4)中的組件譯碼器DEC1、DEC2的情況。進行上述調整,從而可以利用單一MAP譯碼器執行組件譯碼器DEC1、DEC2中的譯碼操作。利用相同的參考字符指示與圖8所示MAP譯碼器的組件相同的組件。
根據圖7所示的操作順序,MAP控制器50控制MAP譯碼器的各種定時。具有用于存儲接收數據ya、yb、yc的RAM 51a到51c,以及用于控制接收數據之讀寫的RAM控制器51d的、輸入/輸出交織器51,以輸入該數據的次序輸出接收數據,并且在適當時候,改變輸出順序以便對接收數據進行交織。計算移位概率的移位概率計算部件52,具有第一和第二運算器52a、52b。正如連同圖7、圖8說明的那樣,反向概率計算部件53計算反向概率。存儲反向概率的存儲器54,具有用于離散存儲反向概率的RAM 54a,用于連續存儲反向概率的RAM 54b,以及用于控制反向概率之讀寫操作的RAM控制器54c。正向概率計算部件55計算正向概率。聯合概率計算部件56對正向概率和反向概率進行乘法運算,以計算第k項數據uk為“1”的概率,以及該數據為“0”的概率。似然計算部件57輸出譯碼結果u以及后驗概率L(u)。
S/P轉換器61對接收數據進行串并轉換,并將轉換后的數據,輸入到輸入/輸出交織器51。通過轉換獲得的接收數據ya、yb、yc,為采用n位量化的軟判決數據。外部信息似然計算部件62輸出外部信息似然Le(u)。在MAP譯碼的第一循環中,外部信息似然計算部件62,使用似然計算部件57輸出的后驗似然L(u)以及MAP譯碼器輸入信號(=信號ya),輸出外部信息似然Le(u)。寫控制器63將外部信息似然Le(u)寫到存儲器64中。讀出控制器65通過從存儲器64中讀出外部信息似然Le(u),以合適方式對外部信息似然Le(u)進行交織和解交織,并輸出其結果,作為下一MAP譯碼循環中使用的后驗似然L(u′)。
在MAP譯碼中,從第二循環開始,turbo譯碼使用[信號ya+后驗似然L(u′)]作為輸入信號ya。因此,在MAP譯碼的第二循環中,外部信息似然計算部件62,使用似然計算部件57輸出的后驗似然L(u)以及譯碼器輸入信號[信號ya+后驗似然L(u′)],輸出外部信息似然Le(u)。寫控制器63將外部信息似然Le(u)寫到存儲器64中。讀出控制器65通過從存儲器64中讀出外部信息似然Le(u),以合適方式對外部信息似然Le(u)進行交織和解交織,并輸出其結果,作為下一MAP譯碼循環中使用的后驗似然L(u′)。其后,以類似方式輸出外部信息似然L(u′)。通過使用各值的對數值,建立以下等式L(u)=Lya+L(u′)+Le(u)(8)因此,外部信息似然計算部件62能夠根據下式獲得外部信息似然Le(u)Le(u)=L(u)-Lya-L(u′)(9)其中L(u′)=0在第一次時成立。
當寫控制器63最終輸出譯碼數據u時,將該譯碼數據寫到存儲器64中;否則,寫控制器63將外部信息似然Le(u)寫到存儲器64中。當讀出控制器65輸出譯碼數據u時,讀出控制器65以寫入該數據的次序,從存儲器中讀出譯碼數據u。當讀出控制器65讀出外部信息似然Le(u)時,讀出控制器65根據交織控制器66指定的讀出順序,讀出并輸出(交織)該數據。存儲器67具有RAM 67a和RAM控制器67b,并存儲經過交織的外部信息似然Le(u)作為L(u′)。
圖10用于說明turbo譯碼的順序。正如從圖4中明顯看到的那樣,turbo譯碼重復許多次,以處理使用ya、yb的第一部分譯碼,和使用ya、yc的第二部分譯碼,其中第一部分和第二部分作為一組。
在第一次第一部分的譯碼處理中,使用接收信號Lcya、Lcyb進行譯碼,并輸出所得到的似然L(u1)。接著,根據式(9)[其中L(u1′)=0成立]獲得后驗似然Le(u1),對此似然進行交織并獲得L(u2′)。
在第一次第二部分譯碼處理中,將通過交織接收信號cya獲得的信號以及在第一部分譯碼處理中獲得的后驗似然L(u2′),視為新的接收信號Lcya′,使用Lcya′和Lcyc進行譯碼,并輸出獲得的似然(u2)。接著,根據式(9)得到后驗似然Le(u2),對此似然進行交織以獲得L(u3′)。
在第二次第一部分的譯碼處理中,將接收信號Lcya以及在第二部分譯碼處理中獲得的后驗似然L(u3′),視為新的接收信號Lcya′,使用Lcya′和Lcyb進行譯碼,并輸出獲得的似然(u3)。接著,根據上式得到后驗似然Le(u3),對此似然進行交織并獲得L(u4′)。
在第二次第二部分譯碼處理中,將通過交織接收信號cya獲得的信號以及在第一部分譯碼處理中獲得的后驗似然L(u4′),視為新的接收信號Lcya′,使用Lcya′和Lcyc進行譯碼,并輸出獲得的似然(u4)。接著,根據式(9)得到后驗似然Le(u4),對此似然進行交織以獲得L(u5′)。
隨后,重復上述譯碼處理。
因此,根據本發明的第一方面,存儲反向概率僅需要r×m(m狀態數)的存儲量,其中m1=r,m2=2r,...成立。此外,由于一直從k=N開始計算反向概率,所以可以準確計算反向概率βk(m),從而可以提高MAP譯碼的精度。
另外,根據本發明的第二方面,存儲反向概率僅需要r×m+(s-1)(m狀態數)的存儲量,其中m1=r,m2=2r,...成立。
另外,根據本發明的第二方面,對其調整,從而以從第N反向概率到第一反向概率的相反方向,計算反向概率,離散存儲獲得的反向概率,并且如果必要的話,計算所需數目的反向概率,并從某個離散存儲的反向概率開始使用。因此,可以準確計算反向概率βk(m),從而可以提高MAP譯碼的精度。
另外,根據本發明的第二方面,在必要時,通過從k=N開始計算反向概率,無需獲得所需數目的反向概率。因此可以提高操作速度。另外,無需使用兩條運算線路計算反向概率βk(m),也能獲得規定的操作速度。而且僅需計算一次反向概率βk(m),從而在降低功耗方面具有優勢。
權利要求
1.一種MAP譯碼方法,用于接收并譯碼通過對長度為N的信息編碼后得到的編碼數據,其特征在于包括以從編碼數據結尾開始的次序,在時間上從后到前執行作為重復操作的反向重復操作,并且在執行此操作時,保存與第一到第m1項編碼數據相對應的反向重復操作的第一到第m1結果;以從第一到第m1項編碼數據的次序,在時間上從前到后執行作為重復操作的正向重復操作,并且在執行此操作時,輸出作為譯碼結果的第一到第m1操作結果;再次以從編碼數據結尾開始的次序,執行反向重復操作,并且在此操作時,保存反向重復操作的第(m1+1)到第m2結果;以從第(m1+1)到第m2項編碼數據的次序,執行正向重復操作,并且在執行此操作時,輸出作為譯碼結果的第(m1+1)到第m2操作結果;以及隨后以類似方式,輸出直到第N結果的所有譯碼結果。
2.一種MAP譯碼方法,該方法通過使用對長度為N的信息編碼后得到的編碼數據的第一到第k項,計算第k正向概率,通過使用第N到第k項編碼數據獲得第k反向概率,并且通過使用上述概率輸出第k譯碼結果,其特征在于包括以從第N反向概率到第一反向概率的相反方向,計算反向概率,并保存第m1反向概率到第一反向概率;計算第一正向概率,通過使用第一正向概率以及所保存的第一反向概率,獲得第一譯碼結果,同樣,獲得第二到第m1譯碼結果;隨后,以從第N反向概率到第(m1+1)反向概率的相反方向,計算反向概率,并保存第m2反向概率到第(m1+1)反向概率;計算第(m1+1)正向概率,通過使用第(m1+1)正向概率以及所保存的第(m1+1)反向概率,獲得第(m1+1)譯碼結果,同樣,獲得第(m1+2)到第m2譯碼結果;以及隨后獲得第(m2+1)到第N譯碼結果。
3.一種MAP譯碼方法,用于接收并譯碼通過對長度為N的信息編碼后得到的編碼數據,其特征在于包括以從編碼數據結尾開始的次序,在時間上從后到前執行作為重復操作的反向重復操作,并且在執行此操作時,保存與第一到第m1、m2、m3...項編碼數據相對應的反向重復操作的第一到第m1、m2、m3...結果;以從第一到第m1項編碼數據的次序,在時間上從前到后執行作為重復操作的正向重復操作,并且在執行此操作時,輸出作為譯碼結果的第一到第m1操作結果;隨后,在利用反向重復操作的所述m2結果執行第m2到第(m1+1)反向重復操作時,保存結果;以從第(m1+1)到第m2項數據的次序,執行正向重復操作,并且在執行此操作時,輸出作為譯碼結果的第(m1+1)到第m2操作結果;以及隨后以類似方式,輸出直到第N結果的所有譯碼結果。
4.一種MAP譯碼方法,該方法通過使用對長度為N的信息編碼后得到的編碼數據的第一到第k項,計算第k正向概率,通過使用第N到第k項編碼數據獲得第k反向概率,并且通過使用上述概率輸出第k譯碼結果,其特征在于包括以從第N反向概率到第一反向概率的相反方向,計算反向概率,離散保存第ms反向概率,第m(s-1)反向概率,...,第m2反向概率,并且連續保存第m1反向概率到第一反向概率;計算第一正向概率,通過使用第一正向概率以及所保存的第一反向概率,獲得第一譯碼結果,同樣,獲得第二到第m1譯碼結果;隨后,計算并保存從所保存的第m2反向概率開始直到第(m1+1)反向概率的反向概率;計算第(m1+1)正向概率,通過使用第(m1+1)正向概率以及所保存的第(m1+1)反向概率,獲得第(m1+1)譯碼結果,同樣,獲得第(m1+2)到第m2譯碼結果;以及隨后獲得第(m2+1)到第N譯碼結果。
5.根據權利要求4的MAP譯碼方法,其特征在于,連續保存的反向概率數約為N1/2。
6.一種譯碼器,通過使用對長度為N的信息編碼后得到的編碼數據的第一到第k項,計算第k正向概率,通過使用第N到第k項編碼數據獲得第k反向概率,并且通過使用上述概率輸出第k譯碼結果,其特征在于包括一個用于計算反向概率的反向概率計算部件;一個用于保存已經計算的反向概率的反向概率保存部件;一個用于計算正向概率的正向概率計算部件;一個譯碼結果計算部件,用于使用第k正向概率和所保存的第k反向概率獲得第k譯碼結果;以及一個控制器,用于控制所述反向概率計算部件、所述正向概率計算部件以及所述譯碼結果計算部件的操作定時;其中(1)所述反向概率計算部件,以從第N反向概率到第一反向概率的相反方向,計算反向概率,并在所述反向概率保存部件中,保存第m1反向概率到第一反向概率;所述正向概率計算部件計算第一正向概率到第m1正向概率;并且所述譯碼結果計算部件通過使用已經計算的第k(k=1到m1)正向概率以及所保存的第k反向概率,計算第k譯碼結果;(2)隨后,所述反向概率計算部件,以從第N反向概率到第(m1+1)反向概率的相反方向,計算反向概率,并在所述反向概率保存部件中,保存第m2反向概率到第(m1+1)反向概率;所述正向概率計算部件,計算第(m1+1)正向概率到第m2正向概率;并且所述譯碼結果計算部件,通過使用已經計算的第k(k=m1+1到m2)正向概率以及所保存的第k反向概率,計算第k譯碼結果;以及(3)隨后,同樣獲得第(m2+1)到第N譯碼結果。
7.一種譯碼器,通過使用對長度為N的信息編碼后得到的編碼數據的第一到第k項,計算第k正向概率,通過使用第N到第k項編碼數據獲得第k反向概率,并且通過使用上述概率輸出第k譯碼結果,其特征在于包括一個用于計算反向概率的反向概率計算部件;一個用于保存已經計算的反向概率的反向概率保存部件;一個用于計算正向概率的正向概率計算部件;一個譯碼結果計算部件,用于使用第k正向概率和所保存的第k反向概率獲得第k譯碼結果;以及一個控制器,用于控制所述反向概率計算部件、所述正向概率計算部件以及所述譯碼結果計算部件的操作定時;其中(1)所述反向概率計算部件,以從第N反向概率到第一反向概率的相反方向,計算反向概率,在所述反向概率保存部件中,離散保存第ms反向概率,第m(s-1)反向概率,...,第m2反向概率,并且連續保存第m1反向概率到第一反向概率;所述正向概率計算部件,計算第一正向概率到第m1正向概率;以及所述譯碼結果計算部件,通過使用已經計算的第k(k=1到m1)正向概率以及所保存的第k反向概率,計算第k譯碼結果;(2)隨后,所述反向概率計算部件,計算并在所述反向概率保存部件中保存,從所保存的第m2反向概率開始直到第(m1+1)反向概率的反向概率;所述正向概率計算部件,計算第(m1+1)正向概率到第m2正向概率;以及所述譯碼結果計算部件,通過使用已經計算的第k(k=m1+1到m2)正向概率以及所保存的第k反向概率,計算第k譯碼結果;以及(3)隨后,同樣獲得第(m2+1)到第N譯碼結果。
8.根據權利要求7的譯碼器,其特征在于,連續保存的反向概率數約為N1/2。
全文摘要
在MAP譯碼方法中,(1)以從第N反向概率到第一反向概率的相反方向,計算反向概率,離散保存第m
文檔編號H04L1/00GK1336038SQ99816355
公開日2002年2月13日 申請日期1999年3月1日 優先權日1999年3月1日
發明者大渕一央, 矢野哲也, 川端和生 申請人:富士通株式會社