專利名稱:譯碼數(shù)據(jù)字的方法
技術領域:
本發(fā)明涉及譯碼領域,尤其涉及但不限于維特比(Viterbi)譯碼和前向糾錯。
背景技術:
維特比算法是卷積碼譯碼的一種常用方法。維特比算法本質上是進行最大似然譯碼;其可以利用碼網(wǎng)格(code trellis)內的特殊結構來減少計算量。與蠻力計算(brute-force)譯碼相比,維特比譯碼的優(yōu)勢在于,維特比譯碼器的復雜性與碼字序列內的符號數(shù)目無關。
該算法包括計算相似性的規(guī)則,或者某時間的接收信號和此時進入各個狀態(tài)的所有網(wǎng)格路徑間的距離。維特比算法不會考慮那些不可能作為最大似然選擇侯選者的網(wǎng)格路徑。當兩條路徑達到相同的狀態(tài)時,選擇具有最佳長度的路徑,該路徑稱為幸存(surviving)路徑。盡早丟棄不可能的路徑降低了譯碼的復雜性。但維特比算法的計算量仍然比較大。
此外,維特比卷積譯碼算法用于前向糾錯。前向糾錯(FEC)的目的是通過向經信道傳輸?shù)臄?shù)據(jù)增加一些冗余信息,提高信道的容量。增加該冗余信息的過程稱為信道編碼。卷積編碼是信道編碼的主要方式。卷積編碼處理一串數(shù)據(jù),同時處理一位或幾位。利用維特比譯碼進行卷積編碼的FEC技術特別適用于無線通信信道。
本發(fā)明的目的是提供一種對接收的數(shù)據(jù)字進行譯碼的改進方法。
發(fā)明內容
本發(fā)明的這些目的和其他目的通過應用各個獨立權利要求中限定的特征基本得以實現(xiàn)。本發(fā)明的優(yōu)選實施方式在從屬權利要求中給出。
本發(fā)明首先基于當接收數(shù)據(jù)字時并不總是需要糾錯譯碼的事實。為了確定糾錯譯碼是否需要,檢查接收的數(shù)據(jù)字是否無誤(或具有不可檢測的差錯)或者信息消息是否有恢復的機會,即接收的數(shù)據(jù)字中是否有太多的差錯。
如果接收的數(shù)據(jù)字沒有差錯或有不可檢測的差錯,則進行譯碼而無需預先糾錯。如果信息消息是不可恢復的,則該幀在譯碼前被丟棄。
然而,在大多數(shù)情況下,必須對幀進行譯碼。在這種情況下,復雜性的降低是通過進行FEC實現(xiàn)的,其所用的方式比傳統(tǒng)譯碼更高效。維特比算法用于估計傳輸誤差而不僅是信息消息。采用這類譯碼可以避免在無差錯區(qū)域內大量狀態(tài)間的重復。
這種方法的優(yōu)勢為,在確定了接收的數(shù)據(jù)字沒有差錯、有不可檢測的差錯或太多差錯的情況下,可以避免計算量很大的糾錯過程。
這種方法的優(yōu)勢還有,當需要FEC時,通過避免維特比譯碼時大部分狀態(tài)間的重復,將復雜性大大降低。
確定是否需要糾錯的一個方法是基于奇偶校驗矩陣。奇偶校驗矩陣在編碼理論中還可以稱為校驗矩陣或控制矩陣。編碼C的奇偶校驗矩陣H具有生成矩陣G,滿足GHt=0,如現(xiàn)有技術中所知。
根據(jù)本發(fā)明的優(yōu)選實施方式,針對給定的編碼方案一次計算得到奇偶校驗矩陣,并存儲在接收器中。在數(shù)據(jù)字被接收時,將數(shù)據(jù)字與預先計算得到的奇偶校驗矩陣相乘,以便確定是否需要進行糾錯。
根據(jù)本發(fā)明的另一優(yōu)選實施方式,接收的數(shù)據(jù)字與奇偶校驗矩陣相乘的結果用來確定是否需要進行糾錯。
●如果接收數(shù)據(jù)字與奇偶校驗矩陣相乘結果的非零系數(shù)的數(shù)目為0,則接收數(shù)據(jù)字無誤(或者說差錯是不可檢測的)而不需要糾錯。
●如果接收數(shù)據(jù)字與奇偶校驗矩陣相乘結果的非零系數(shù)的數(shù)目大于某個閾值,由于接收數(shù)據(jù)字被認為是不可糾錯的,因此不進行糾錯和譯碼。這樣做的優(yōu)點在于避免對不可糾錯數(shù)據(jù)字進行無用的處理。
然而,如果FEC必須執(zhí)行,則傳統(tǒng)的維特比算法可以用來估計原始信息消息。
然而,如果FEC必須執(zhí)行,維特比算法可以用來估計傳輸差錯而不僅是信息消息。接收數(shù)據(jù)字與奇偶校驗矩陣的相乘結果給出了潛在差錯的大致位置,并且維特比算法僅僅適用于這些標識的區(qū)域,從而避免在無差錯區(qū)域的大量重復。
最后將估計的傳輸差錯從接收的數(shù)據(jù)字中減去,并且采用代數(shù)譯碼估計發(fā)送的信息消息。
確定糾錯是否需要以及快速糾錯過程是基于奇偶校驗矩陣,其能夠針對任意卷積編碼速率,如1/2、1/3、2/3的卷積編碼速率工作(隨后將有進一步舉例)。然而,在卷積編碼速率為1/2的情況下,一些簡單的多項式處理也能夠得到接收數(shù)據(jù)字與奇偶校驗矩陣相乘的結果。事實上,可以示出,在卷積編碼速率為1/2的情況下,接收數(shù)據(jù)字與奇偶校驗矩陣的相乘結果也可通過使用在附錄3中描述的簡單多項式處理而得到。
下面,將參考附圖對本發(fā)明的優(yōu)選實施方式進行更加詳細的描述,其中圖1是通信系統(tǒng)的方框圖,圖2示出本發(fā)明方法的實施方式的流程示意圖。
圖3示出在硬件譯碼器輸入情況下,速率為1/3的卷積碼的復雜性的降低。
圖4示出在軟件譯碼器輸入情況下,速率為1/3的卷積碼的復雜性的降低。
圖5示出在硬件譯碼器輸入情況下和軟件譯碼器輸入情況下,速率為1/3的卷積碼的性能的下降。
圖6示出在硬件譯碼器輸入情況下,速率為2/3的卷積碼的復雜性的降低。
圖7示出在軟件譯碼器輸入情況下,速率為2/3的卷積碼的復雜性的降低。
圖8示出在硬件譯碼器輸入情況下和軟件譯碼器輸入情況下,速率為2/3的卷積碼的性能的下降。
具體實施例方式
圖1示出了通信系統(tǒng),該通信系統(tǒng)具有發(fā)送器1,用于通過信道3發(fā)送信息消息m1,m2,…,mk給接收器2。發(fā)送器1包括編碼器4,用于通過生成多項式矩陣G={gij}進行信息消息編碼,以便提供經編碼的碼字c1,c2,…cn。注意到,信息消息數(shù)目k和編碼碼字數(shù)目n可以是任意的,即系統(tǒng)工作在不同的卷積碼速率k/n。
經編碼的碼字c1,c2,…cn在有噪信道3上傳輸。在有噪信道3上的傳輸導致差錯e1,e2,…en的迭加。結果接收器2接收的消息為r1,r2,…rn,其中r1=c1+e1r2=c2+e2…rn=cn+en其中c1=g11m1+g12m2+...+g1kmkc2=g21m1+g22m2+...+g2kmk…cn=gn1m1+gn2m2+...+gnkmk接收器2的譯碼器5具有糾錯能力,以便從接收信息中消除差錯向量{e1,e2,…,en},得到原始的信息消息。
可以通過數(shù)學式示出,具有n個等式和k個未知多項式即m1,m2,…,mk的上述系統(tǒng)可以分為●通過代數(shù)譯碼,為得到k個未知多項式m1,m2,…,mk所必須的k個等式。例如c1=g11m1+g12m2+...+g1kmkm1=p11c1+p12c2+...+p1kck
c2=g21m1+g22m2+...+g2kmk→m2=p21c1+p22c2+...+p2kckck=gk1m1+gk2m2+...+gkkmkmk=pk1c1+pk2c2+...+pkkck其中多項式pij是生成多項式的線性組合。
●n-k個“控制等式”,與m1,m2,…,mk無關c1h11+c2h21+...+cnhnl=0c1h12+c2h22+...+cnhn2=0…c1h1,n-k+c2h22+...+cnhn,n-k=0其中多項式hij是生成多項式的線性組合。多項式hij的例子在附錄1中提供。這里的n-k個控制等式可以用一個矩陣等式表示。該等式以下被稱為“控制等式” 理論上,至少有一個矩陣H如C是碼字 H或Ht通常被稱為奇偶校驗矩陣由于復雜性的原因(參見附錄2),優(yōu)選地是選擇具有最小階數(shù)的奇偶校驗矩陣。我們稱qik為多項式hik(x)的階數(shù);當生成多項式符合以下特性{gij(x);1≤i≤N}對于所有j不具有公因子,(1)則可以看到,存在多項式集合{hik}如Σk=1N-Kqk=M-1,]]>其中qk=Max1≤i≤N(qik),]]>并且M是編碼的限制長度(生成多項式的最大長度)。通過搜索具有最小階數(shù)的多項式hik(x)得到這些多項式,其符合H(x).G′(x)=0的系統(tǒng)。
注意到,如果j列不符合特性(1),則通過用多項式{gij(x);1≤i≤N}的最大公因子去除該列,可以得到具有最小存儲量的編碼。
控制等式用來估計差錯矢量。設E`=(e′1,...,e′n)t為總差錯估計矢量,R=(r1,...,rn)t為總信息消息矢量。
相應的譯碼方法在圖2中通過例子示出。
步驟20中,接收器接收數(shù)據(jù)字。步驟21中,該數(shù)據(jù)字與奇偶校驗矩陣相乘。步驟22中,確定乘積結果的所有系數(shù)是否全部為0。如果是這種情況,則控制跳轉到步驟23,對接收的數(shù)據(jù)字進行無糾錯的譯碼。
否則,控制跳轉到步驟24,確定乘積結果的非0系數(shù)的數(shù)目是否小于預定閾值。如果是這種情況,則在步驟25對接收數(shù)據(jù)字進行糾錯,以去除差錯矢量。接著,經過糾錯的數(shù)據(jù)字在步驟26進行譯碼。
如果在步驟24,確定乘積結果的非0系數(shù)的數(shù)目超過預定閾值,則控制跳轉到步驟27,確定該數(shù)據(jù)字為不可恢復的。
該方法實現(xiàn)了如下算法1.計算RHt2.如果RHt的非0系數(shù)數(shù)目大于預定閾值,則丟棄該幀,跳轉到4,否則如果RHt為0E′=0,跳轉到3否則使用在附錄2中描述的快速前向糾錯算法,得到E′,如1.(R+E′)Ht=02.E′有最小的權值(最大似然)跳轉到33.代數(shù)譯碼,例如解出線性系統(tǒng)以估計多項式m1,m2,…,mk,例如r1=g11m1+g12m2+...+g1kmk+e′1r2=g21m1+g22m2+...+g2kmk+e′2…rk=gk1m1+gk2m2+...+gkkmk+e′k
4.結束在以下幾個步驟中降低復雜性●如果估計幀的差錯概率(RHt的非零系數(shù)數(shù)目相關)超過預定閾值,則該幀被恢復的可能性極低。在譯碼前將其丟棄。
●如果RHt為0,則原始誤碼率為0,或者差錯是不可檢測的,則不需要進行FEC。
●在幀必須進行譯碼時,RHt用來降低譯碼復雜性。維特比算法用于估計差錯矢量,而不是信息消息(附錄2)。在這種情況下,可以避免某些不必要的重復(附錄2)。
采用所提出的算法,在大量降低復雜性的同時,幾乎可以得到最佳的性能。圖3-8示出在硬件譯碼器輸入情況下和軟件譯碼器輸入情況下,對于速率為1/3和2/3的兩種卷積碼的復雜性的降低和性能的下降。復雜性標準為所執(zhí)行的“加-比-選(Add Compare Select,ACS)”操作數(shù)目與傳統(tǒng)維特比的ACS數(shù)目的百分比。性能標準為譯碼器輸出端的幀誤碼率(FER)。
速率為1/3的卷積碼g11(x)=1+x2+x3g21(x)=1+x+x3 g31(x)=1+x+x2+x3G=(1+x2+x31+x+x31+x+x2+x3)在硬件和軟件情況下,當SNR高于3.5dB,所需的ACS小于10%。此外,硬件情況下所需ACS的最大數(shù)目始終低于43%,相應軟件情況為65%。所有情況下,性能的降低保持在低于0.5dB。
速率為2/3的卷積碼
在硬件和軟件情況下,當SNR高于4dB,所需的ACS小于10%。此外,硬件情況下所需ACS的最大數(shù)目始終低于12%,相應軟件情況為27%。硬件情況下性能的降低保持在低于0.5dB,相應軟件情況為低于0.3dB。
標號列表------------------------------------------------------------1發(fā)送器2接收器3信道4編碼器5譯碼器200 接收器202 程序模塊204 程序模塊208 程序模塊209 程序模塊212 程序模塊附錄1控制矩陣舉例多項式“p(X)”在下邊稱為“p”,由于所有多項式p的系數(shù)屬于{0,1},所以我們有p+p=01/2卷積碼 ⇒g2C1+g1C2=g2g1m1+g2g1m1]]>⇒g2C1+g1C2=0]]> 3/5卷積碼
其中G11=g11;G12=g12;G12=g12G22=g11g22+g12g21;G23=g21g13+g23g11G32=g11g32+g12g31;G42=g11g42+g12g41;G52=g11g52+g12g51G33=(g11g22+g12g21)(g31g13+g33g11)+(g21g13+g23g11)(g11g32+g12g31)G43=(g11g22+g12g21)(g41g13+g43g11)+(g21g13+g23g11)(g11g42+g12g41)G53=(g11g22+g12g21)(g51g13+g53g11)+(g21g13+g23g11)(g11g52+g12g51)
附錄2快速前向糾錯(硬件譯碼器輸入情況)必須找到具有最小權值的字e′(x)=Σi=1Nxi-1ei′(xN),]]>如 為0。可以數(shù)學式示出以下等價關系 為碼字其中 e′(x)的搜索可以通過維特比算法取消矩陣E(x)來實現(xiàn)。
Ej(x)=ΣiEj,ix′;1≤j≤N-K]]>維特比算法所使用的網(wǎng)格,由對應不同狀態(tài)的節(jié)點組成。這些節(jié)點通過支路連接。連續(xù)支路稱為路徑,路徑的長度為路徑的特征。
狀態(tài)有2M-1個狀態(tài),其中M-1為編碼的存儲量。每一狀態(tài)Sk與矩陣ESk(x)相關聯(lián)。狀態(tài)Sk在n時刻的值,由如下矩陣ESk(x)的M-1個元素給出EjSk(x)=ΣiEj,iSkx′;1≤j≤N-K]]>Sk={V1V2...VN-K}其中 初始狀態(tài)Sk,0與E(x)相關聯(lián)。
支路支路代表n時刻的一個狀態(tài)(當前狀態(tài))和n+1時刻的狀態(tài)(后續(xù)狀態(tài))之間的轉換。稱為et,n′ ∶ej′的系數(shù)n系數(shù)集合{e1,n′,...,eN,n′}與每一個支路相關聯(lián)。在時刻n,建立序列集合{Zi(x)} 其中Zj,i(x)=Σl=0Mj-1Zj,ilxn+l;1≤i≤2n]]>其中第一系數(shù)Zj,i0滿足條件Zj,i0=Ej,nSk]]>其中1≤j≤N-K設Sk為n時刻的當前狀態(tài),設Si為Sk的后續(xù)狀態(tài)(在n+1時刻),設ESi為相關的多項式。我們得到EjSi(x)=EjSk(x)+Zj,i(x)]]>其中1≤j≤N-K 該過程導致對矩陣ESk的迭代取消。
長度(metrics)提出的譯碼技術的原理為,尋找最小權重的序列e′(x),用以刪除矩陣E(x)。可以得到n時刻定義的支路長度Δ(n)=Σi=1Nei,n′]]>注意在軟譯碼情況下,Δ(n)=Σi=1N|Ri,n|ei,n′,]]>其中Ri,n為接收的軟符號。
路徑長度mk(n)是支路長度的累加。當幾個路徑達到相同的狀態(tài)時,將保留具有最小路徑長度的路徑。在處理結束時,保留的路徑將在狀態(tài)S0={0 0...0}結束,S0是使得ESk(x)所有元素都為0的唯一狀態(tài)。與保留路徑的每一支路相關聯(lián)的集合{e1,n′,...,eN,n′}組成譯碼差錯矢量e′(x)。
e′(x)=Σi=1(Σi=1Nxi-1ei,n′)xNn]]>“FEC無用”區(qū)域如果在n0步驟同時滿足性質(P1)和(P2),則不需要繼續(xù)進行維特比算法。保留路徑是在迭代n0到達狀態(tài)S0={0 0...0}的路徑,并且在這個節(jié)點后保持這個S0狀態(tài)。
mk(n0)≥m0(n0)對k≠0 (P2)此外,假設n-n1時刻,滿足條件(P2),則所有的EjSk(x)矢量符合{Ej,0Sk,Ej,1Sk,...,Ej,n-n1-1Sk}={0,0,...,0}]]>{Ej,n-n1Sk,Ej,n-n1+1Sk,...,Ej,n-n1+Mj-2Sk}=Vj]]>{Ej,n-n1+Mj-1Sk,Ej,n-n1+MjSk,...,Ej,nSk}={0,0,...,0}]]>Ej,n+1Sk=1]]>如果在E(x)中至少有n1個連續(xù)的0,該結構就會出現(xiàn)。理論上,如果n1大于取決于編碼器的某個閾值,則維特比算法在n-n1和n-M+1間的步驟不需要執(zhí)行。維特比算法在步驟n-M+1重新開始,以S0為初始狀態(tài)。
注意在軟件譯碼情況下,維特比算法必須在步驟n-A+1重新開始,對A值的選擇考慮復雜度降低和性能降低間的平衡。
最終估計r(x)+e′(x)。
最后的譯碼信息序列m′(x),通過對碼字r(x)+e′(x)的代數(shù)譯碼給出。
附錄3校驗1/2速率卷積編碼m(x)信息字g1(x),g2(x)生成多項式C1(x)=m(x).g1(x)多項式g1生成的碼字C2(x)=m(x).g2(x)多項式g2生成的碼字r1(x)=C1(x)+e1(x)接收字1r2(x)=C2(x)+e2(x)接收字2利用奇偶校驗矩陣最小奇偶校驗矩陣
對于任意的碼字
有CHt=0如果我們稱Rt=(r1r2)為總接收數(shù)據(jù)字,則有
R.Ht=0+e1g2+e2g1
利用簡單多項式處理我們稱G為等價生成多項式,C為總結果碼字,定義如下G(x)=g1(x2)+x.g2(x2)C(x)=C1(x2)+x.C2(x2)=m(x2).G(x)我們可以將C(x)G(x)表示為偶數(shù)多項式等式C(x).G(x)=m(x2).G(x).G(x)=m(x2).G(x2)如果我們稱差錯多項式為e(x),接收多項式為r(x),定義如下e(x)=e1(x2)+x.e2(x2)r(x)=C(x)+e(x)則r(x).G(x)=C(x).G(x)+e(x).G(x)r(x).G(x)=C(x).G(x)+e1(x2).g1(x2)+x2.e2(x2).g2(x2)+x.(e1(x2).g2(x2)+e2(x2).g1(x2))所以奇部{r(x)G(x)}=e1(x2).g2(x2)+e2(x2).g1(x2)與R.Ht相同的系數(shù)最后,多項式r(x)·G(x)奇部的系數(shù)和接收數(shù)據(jù)字與奇偶校驗矩陣相乘的結果相同。
權利要求
1.一種方法,用于對經無線通信信道傳輸?shù)慕邮諗?shù)據(jù)字(R)進行譯碼,相應發(fā)送的信息消息(m)被編碼為碼字(c),該方法包括以下步驟用奇偶校驗矩陣(H(x))乘以接收的數(shù)據(jù)字,當乘積結果為0時,則對接收數(shù)據(jù)字進行代數(shù)譯碼而無需糾錯。
2.根據(jù)權利要求1所述的方法,還包括在乘積結果不為0的情況下,通過估計傳輸差錯,從接收數(shù)據(jù)字中減去估計的差錯,并對相減的結果執(zhí)行代數(shù)譯碼來進行糾錯。
3.根據(jù)權利要求2所述的方法,其中,通過使用維特比類型的方法執(zhí)行前向糾錯來尋找如下差錯(R+E′)Ht=0,且E′有最小的權重(最大似然),這里E′為總差錯估計矢量,R是總信息消息矢量,H為奇偶校驗矩陣。
4.根據(jù)權利要求3所述的方法,其中,R.Ht用于標識潛在差錯的大致位置,并且維特比算法僅在這些位置應用,從而避免在無差錯區(qū)域的重復。
5.根據(jù)權利要求1所述的方法,其中,在相乘結果的非零系數(shù)數(shù)目超過閾值的情況下,接收數(shù)據(jù)字被確定為不可恢復的。
6.根據(jù)權利要求1所述的方法,其中的多項式集合{hik}通過搜索具有最小階數(shù)的多項式hik(x)確定,所述具有最小階數(shù)的多項式hik(x)確定系統(tǒng)H(x).Gt(x)=0,在這里G為生成矩陣,包括生成多項式gij,,{gij(x);1≤i≤N}對于所有的j沒有公因子,qik是多項式hik(x)的階數(shù);多項式hik(x)是生成多項式gij的線性組合,并且Σk=1N-Kqk=M-1,]]>其中qk=Max1≤i≤N(qik),]]>M是編碼的限制長度。
7.根據(jù)權利要求1所述的方法,其中卷積編碼的速率為k/n,其中,n和k為任意整數(shù)。
8.根據(jù)權利要求1所述的方法,其中卷積編碼速率為1/2,并且接收數(shù)據(jù)字與奇偶校驗矩陣相乘的結果通過計算r(x).G(x)的奇部得到,其中m(x)信息字g1(x),g2(x)生成多項式G(x)=g1(x2)+x.g2(x2)等價生成多項式C1(x)=m(x).g1(x)多項式g1生成的碼字C2(x)=m(x).g2(x)多項式g2生成的碼字r1(x)=C1(x)+e1(x)接收字1r2(x)=C2(x)+e2(x)接收字2r(x)=r1(x2)+x.r2(x2)接收多項式
9.一種計算機程序產品,特別是數(shù)字存儲介質,用于對經無線通信信道傳輸?shù)慕邮諗?shù)據(jù)字(r)進行譯碼,相應發(fā)送的數(shù)據(jù)字(m)被編碼為碼字(c),該計算機程序產品包括用于執(zhí)行以下步驟的程序裝置用奇偶校驗矩陣乘以接收的數(shù)據(jù)字,當乘積結果為0時,則對接收數(shù)據(jù)字進行代數(shù)譯碼而無需糾錯。
10.一種無線通信網(wǎng)絡接收器,包括用于對經無線通信信道(3)傳輸?shù)慕邮諗?shù)據(jù)字(r)進行譯碼的裝置(5),相應發(fā)送數(shù)據(jù)字(m)被編碼為碼字(c),還包括糾錯裝置(5),該裝置適合執(zhí)行以下步驟進行譯碼用奇偶校驗矩陣乘以接收的數(shù)據(jù)字,當乘積結果為0時,則對接收數(shù)據(jù)字進行代數(shù)譯碼而無需糾錯。
全文摘要
本發(fā)明公開了一種方法,用于對經無線通信信道傳輸?shù)慕邮諗?shù)據(jù)字(r)進行譯碼,相應發(fā)送的信息消息(m)被編碼為碼字(c),該方法包括以下步驟用奇偶校驗矩陣(H(x))乘以接收的數(shù)據(jù)字,當乘積結果為0時,則對接收數(shù)據(jù)字進行代數(shù)譯碼而無需糾錯,否則通過估計傳輸差錯進行糾錯,從接收數(shù)據(jù)字中減去估計的差錯,并對相減結果執(zhí)行代數(shù)譯碼,其中R.H
文檔編號H03M13/29GK1607759SQ200410074130
公開日2005年4月20日 申請日期2004年8月31日 優(yōu)先權日2003年9月1日
發(fā)明者尼科拉斯·保羅, 熱羅姆·布魯埃, 雅克·安托萬, 利昂內爾·于松, 阿梅勒·沃捷, 讓·克洛德·達尼 申請人:阿爾卡特公司