專利名稱:對于維特比譯碼器實施的快速量度計算的制作方法
技術領域:
本發明涉及一種用于有效地計算在通信系統中在維特比軟譯碼器里的量度距離。比如寬帶CDMA系統,其中將基站中的維特比譯碼用于譯碼自移動站傳來的卷積編碼信息。
維特比算法是用于在通信系統中對卷積碼進行譯碼的一種熟知的技術。
圖1提供了在通信系統中這種算法應用的概況。如這里所示,使用卷積編碼器10將輸入序列轉換為碼字序列。這個編碼器10接受輸入序列的K比特塊并產生以相同時間單位的n符號塊的碼字序列。將k/n的比率R稱為碼率。例如,在寬帶CDMA中,通常使用兩個碼率R=1/2和R=1/3。正如在該技術領域中所知的,可采用移位寄存器,模2加法器和乘法器來實施該編碼器。
然后用調制器20(例如,采用相位,頻率或幅度調制),然后發送到通信信道30上。信道30經受諸如加性高斯白噪聲(AWGN)等的噪聲40的影響,可能使發送的信息變壞。解調器50接收該發送的信息并產生輸出r,它可是分立的(量化的)信號。硬判決解調器作發送的為0或為1的肯定判決。可替代的,軟判決解調器解調所接收的信息,并還提供關于該解調信息的置信度的附加信息。這補充了提供給解碼器60的信息,并因而改善了該譯碼器60的性能。
譯碼器60和相關聯的存儲器70實施維特比算法。可將該算法本身描述為對在無記憶噪聲中觀察到的分立時間有限狀態馬爾科夫過程的狀態序列的估算問題的遞歸最佳解答。請見,例如,Forney的“維特比算法”Proc.IEEE.Vol.6,1973年3月pp.268-278。該算法找到通過給定一組觀測的格構的最短路徑。該格構是一個時標狀態圖表。每個節點對應于給定分立時間上的狀態。將連接該格構中節點的線路稱為分支。它對應于從一個狀態到另一個狀態的過渡。
將費用分配給連接該格構中的節點的分支。這些費用,或量度由負對數似然函數(negative log likelihood function)給出。它近似由1z-y12表示,其中2是代表觀測輸出的信號,而y是代表狀態之間過渡的實際輸出的信號。另外,可將噪音的輸出量化為3或4個比特,可由絕對差測量近似表示該分支量度。注意,Heller等的“對于衛星和空間通信的維特比譯碼”IEEE Trans,CommunicationTecnology,Vol,CPMM-19,No.5,0ct,1971,pp.835-848。更具體地,將用于確定該量度的對數似然函數減到諸如漢明距離的最小距離測量。該漢明距離提供了在該算法觀測的符號和該編碼器使它按照給定的輸入序列產生的符號之間差的位數量的測量。
在圖2中為說明之日的示出了維特比譯碼的格構的部分。在左邊的兩個節點代表在時間t的兩個狀態,而在右邊的兩個節點代表在時間t+1的兩個狀態。正如這里所示,有兩個導致到時間t+1的0狀態的路徑,例如,連接時間t的0狀態到時間t+1的0狀態的第一路徑,和連接時間t的1狀態到時間t+1的0狀態的第二路徑。這些路徑與該卷積編碼器的碼字相聯系。另外,兩個路徑具有與此有關的量度(或路徑長度),例如,分別為pd0和pd1。
實際的維特比算法包含遞歸地執行加-比較-選擇程序,參考圖3可更好地了解。在加操作中,將與時間t的狀態0相關的累加量度m0加到(使用加法器80)與從時間t的狀態0到時間t+1的狀態0的過渡相關的量度pd0上。將與時間t的狀態1相關的累加量度m1加到(使用加法器90)與從時間t的狀態1到時間t+1的狀態0的過渡相關的量度Pd1。比較模塊100確定是否加法器80的輸出大于加法器90的輸出,或反之,選擇器110選擇其較小的累加量度。同時,這個加-比較-選擇模塊一個產生最小的累加量度的輸入路徑的指示。
對于每個格構步驟中的所有狀態重復這個程序(未示出)。另外,將所示的該格構步驟的輸出用作隨后的格構步驟(未示出)的輸入。對于任何時間t,有M個殘存的路徑(例如,為下一個格構步驟保留的路徑)。當狀態序列很長時,必須切掉殘存到某個易管理的長度s,如上面參考的Forney的文章中所描述的。通過遞歸地選擇最短的路徑。該算法重新構建通過該格構的最可能路徑。它將對應于在信號被噪音惡化之前實際的發送序列。
在實際上,在實施維特比軟譯碼時,可用包括4位字的軟輸入值。這是因為與硬判決維特比譯碼相比,4位已是夠改善在SNR上近于2dB的譯碼器性能。例如,對于卷積碼率R=1/3,4個位的3個軟輸入字每個表示一個信息比特。由r0,r1和r2表示該3個輸入字。
參考圖2,對于上述3個字軟輸入例子的量度pd0是Pd0=d(r0;0)+d(r1;0)+d(r2;0),而量度Pd1=d(r0;1)+d(r1;1)+d(r2;1)。在這兩個等式中的單個操作數代表軟輸入4位字與兩個可能的碼字之間的距離。每個碼字涉及關于2L個狀態輸出的格構圖表中的一個路徑,其中L是該碼的約束長度(例如此處為L=9)。
該技術領域的已知狀態是分別執行距離計算d(r0,1),d(r1,1),d(r2,1)等等。另外,已知可在諸如采用16位數字的信號處理器等的16位硬件上執行這些計算。這意味著,對于采用4位操作數的每個計算,有一個沒有用的16位數字處理器的有效部分,因此浪費了。因為該解碼器沒有充分地利用它的資源,故這種16位硬件的非有效使用負面地影響了該譯碼器的性能。
改善該算法的速度的一個已知方案是采用多數字信號處理核心并行地執行該算法的某些部分。然而,這有要求附加硬件的消極結果,而仍然不能有效地使用所占用的硬件。
因此,本發明的一個目的是更有效地利用16位硬件來執行維特比處理,從而改善維特比譯碼器的速度和資源利用。
通過將多個軟輸入字組裝(即,集中)成一個n位的復合軟輸入字并整個地處理這個復合軟輸入字,達到了本發明的這些和其它目的。
更具體地說,本發明涉及一種用于確定在譯碼算法中的量度的方法和裝置。例如,基于多個m位軟輸入字,使用一個n位處理模塊的維特比算法(其中n≥2×m)。該技術包括接收多個m位軟輸入字;將至少兩個該多個m位軟輸入字組裝成一個單一的n位復合軟輸入字;計算在該復合軟輸入字中的該至少兩個軟輸入字與期望的碼字值之間的各個距離以產生復合的距離字;將各個距離加在一起以產生該量度;各抽取該量度。該n比特處理模塊可包括一個使用16位字的16位處理模塊,而這些m位軟輸入字每個包括一個4位字。整個處理該多個軟輸入字增加了該譯碼器的速度和信息傳輸率,并減少了該譯碼器的存儲需求。
根據一個示例性實施方案,該譯碼器可對已經以R=1/3的速率卷積編碼的信息進行譯碼,在這種情況,將3個4位字組裝成一個16位字,這些字之間有兩比特的分離器。
該計算步驟包括子步驟從存儲器中檢索一個n位碼字屏蔽字,該碼字屏蔽包括提供與各個軟輸入字相關的預期碼字值的字段;將該碼字屏蔽字與該復合軟輸入字進行異運算。
該求和的步驟包括子步驟將該復合距離字乘以一個抽取字以產生一個積字。該抽取步驟包括子步驟從該積字的子字段中抽取該量度。對于該實施方案,其中將至少兩個軟輸入字組裝在一個16位字中,在相鄰的軟輸入字之間用2位隔離器,該抽取字是0001000001000001。
現在將結合下面附圖描述本發明。其中圖1表示使維特比譯碼器的通常通信系統的概觀;圖2表示一個格構圖表的部分;圖3表示在維特比譯碼器中使用的通常加-比較-選擇模塊;圖4表示如何確定在軟輸入4位字與預期的碼字值之間的距離;圖5表示作為它的各個比特值的函數的軟輸入4位字的可靠性;圖6表示包括其中含有的3個4位軟輸入字的軟復合字(ISW);圖7表示復合碼字屏蔽字(CWM);圖8表示通過ISW字與CWM字的異運算產生的復合距離字(DW);圖9表示使用乘法運算將DW字中的各個字段加在一起的方式;圖10表示根據本發明的示例一種用于計算量度的算法。
在軟判決維特比譯碼器里,通過應用對于每個路徑的下面公式做路徑碼字與K真實軟輸入值yi之間的距離計算Σi=1k(yi,xi)]]>其中xi表示根據計算的兩個狀態之間的格構過渡假設的比特。另外,xi表示{-1,1}和正好求非該輸入值yi對于(xi=-1)的一個成分,或舍去該軟輸入未動的值(xi=1)。K是每個信息位的碼位的數量。
為了計算所接收的軟字rn和預期的碼字位之間的距離,將該輸入字值視為根據上述公式如圖4所示。正如這里所示,在期望“0”和軟輸入字之間的距離d簡單地為該字的整數值,如果“1”是所期望的,則該軟輸入字的位取反代表距離d。如圖5中所示,大的距離值對應于到該期望值的大距離。因此,該期望值可靠性差。小距離值對應于期望值的高可靠性。將r0,r1和r2與期望值(例如0或1)之間的距離分別稱為d0,d1和d2。
圖6-9表示以非遞歸方式使用16位運算硬件如何計算距離d0,d1和d2。更具體地說,參考圖6,對于R=1/3,將3個輸入字存儲在一個16位字(ISW)中,在每個字之間有2個0位的分離器。將這個操作稱為“集中”或“組裝”。當R=1/2時,將r2軟輸入字置為零,例如r2=“0000”。
如圖7中所示,由稱為CWM(碼字屏蔽)的位屏蔽碼字來表示期望值信息。在CWM中的每個字段是4位長,也由分離位(包括兩個相鄰的“0”位)分開。將所有的位0-3設置為同樣的值以便匹配CW(0)位;也就是,如果期望值是“0”,將位0-3都置為0。對于位6-9和12-15同樣成立,分別將它們都置成CW(1)和CW(2)的值。然而,如果碼率為R=1/2,則將位12-15都置為“0”就錯了。
考慮該碼字屏蔽的源,可最好對于所有不同的狀態一次產生這個屏蔽,以節省“狀態數-碼字的計算”。這在數字信號處理器上耗費很多時間。因此,可用該狀態數作為偏置從內部數據存儲器對該CWM加載。對于所公開的方法,只需一個加載指令從存儲器中得到16位CWM。而通常這需要3個加載指令。
為了計算該距離,用ISW字對CWM字進行異運算。通過如果CW[n]=0讓它們為原樣的而如果假設的碼字CW[n]=1對它們逐位求逆,則一個XOR操作已足夠修改該3個軟輸入字。在圖8中示出了結果的距離字DW。正如所示,這個字具有嵌入其中的距離d0,d1和d2,由2位“0”分離緩存來分離。
為了將這些距離加在一起,用距離乘碼字DMC=212+26+20=0001000001000001,這里也稱為“抽取字”,來乘該DW。在圖9中表示了這一點。如所示,這個乘具有在該乘結果中的位12-17產生和Pd=d0+d1+d2的作用。因此對于兩個加只需一個指令,而一些通常的系統需要兩個指令(即,一些加法器只有兩個輸入,因此需要至少兩個指令來執行包含多于兩個操作數的運算)。最后,可用一個抽取(EXT)命令從該乘結果中抽取這個和到一個寄存器。
圖10以流程圖的形式給出了上述技術的概述。在步驟S10,用3個或2個軟輸入字(分別對于1/3和1/2碼率)組裝成16位字。然后,在步驟S20從存儲器對該CWM字加載。跟著加載,在步驟S30用ISW字對該CWM字進行異運算,跟著在步驟S40通過乘運算進行距離求和。最后,在步驟S50抽取出該和(描述在該格構中從一個狀態向另一狀態過渡的可能性)。
上述技術的優點是,一旦產生了ISW字則只用四個操作(例如,加載,異運算,乘和抽取步驟)。通常,需8個操作來產生同樣的結果,例如,用于加載軟輸入字的3個操作,用于計算距離的3個操作,和用于將這些距離相加的兩個操作。換句話說,當采用本發明的方法時可節省4個指令。如上所述,通過從存儲器中加載CWM可節省另兩個指令。
該6個節省指令的代價是在16位輸入字中組裝3個輸入字(步驟S10)。但采用這個方法,最好將4位值組裝。對于通常目的的數字信號處理器的最小輸入字大小是8位。因此,在背景技術中描述的通常方法每個輸入值浪費至少4位;用所建議的方法,每3個軟輸入值(每個具有4位)只有4位未用。
由于字r0,r1和r2的這種組裝,連接前面接收機部分的雙端口RAM可只有通常方案中所用的RAM(例如存儲器70)的67%的大小。另外,當使用串聯時,數據傳輸率從8位/值降低到5.3位/值,與通常的傳輸技術相比顯著地更有效了。
更具體地,可將本發明的示范性優點綜合如下。可將指令的數量減到一些通常譯碼器中所用指令數量的5/11=45%。可將用于存儲軟輸入值和碼字屏蔽(CWM)的RAM減少到一些通常譯碼器中所用的RAM存儲器的(16/3)(8*3/3)=67%。同樣,可將從前面部件得到的數據傳輸率減少到一些通常譯碼器的數據傳輸率的(16/3)(8*3/3)。
已經在用R=1/2或1/3的碼率卷積編碼數據的維特比譯碼的示范性實施方案的角度上描述了本發明。然而,本發明并不限于此。以其它的碼率,在其它類型的譯碼算法(例如,其它MLSE算法)中,也可應用這種技術。
這種技術的一個應用是用于寬帶CDMA系統。例如,在基站中可用本發明對經CDMA調制從移動站傳輸的卷積編碼信息進行譯碼。也可將本發明用在移動站中。然而,可將本發明用在其它傳輸協議中,甚至發現用在非通信應用中(在自存儲介質的信息的存儲和檢索中)。
可根據圖1中所示的基本系統結構來實施本發明,對譯碼器60進行合適的編程變化,以完成圖10中所示的算法。執行圖10中所示的算法的邏輯可包括一串在譯碼器60中存儲的微指令。另外,用于完成圖10的算法的譯碼器60可采用分立的邏輯部件。
可根據任何16位運算處理器來實施該譯碼器60,例如由TexasInstruments生產的TMS 320C6201,該存儲器70可包括上述的雙端口RAM存儲器。然而,一般本發明使用具有n位數字的任何譯碼器,其中n≥2×m,這里m是軟輸入字的位長。即,還可將軟字組裝技術用在不利用16位結構的其它類型處理器中,只要其處理器的字長足夠容納至少兩個軟輸入字。
保持所公開和宣稱的基本原則的其它修改和改善都在本發明的范圍之內。
權利要求
1.一種采用n位處理模塊基于多個m位軟輸入字確定在譯碼算法中的量度的方法,其中n≥2×m,該方法包括步驟接收所述多個m位軟輸入字;將所述多個m位軟輸入字的至少兩個組裝到一個單一的n位復合軟輸入字中;計算在該復合軟輸入字的至少兩個軟輸入字與期望的碼字值之間的各個距離,以便產生復合距離字;將這些各個距離加在一起以產生該量度;和抽取該量度。
2.根據權利要求1的方法,其中所述的譯碼算法是維特比算法。
3.根據權利要求1的方法,其中所述的n位處理模塊包括一個采用16位字的16位處理模塊。
4.根據權利要求3的方法,其中所述的m位軟輸入字每個包括一個4位字。
5.根據權利要求4的方法,其中所述譯碼算法對已用R=1/3的速率卷積編碼的信息進行譯碼,并將3個4位字組裝到一個16位字中。
6.根據權利要求4的方法,其中所述的譯碼算法對已用R=1/2的速率卷積編碼的信息進行譯碼,并將2個4位字組裝到一個16位字中。
7.根據權利要求4的方法,其中將分離器位插在16位字中所組裝的軟輸入字之間。
8.根據權利要求7的方法,其中該分離器位包括兩個相鄰位。
9.根據權利要求1的方法,其中所述的計算步驟包括子步驟從存儲器中檢索一個n位碼字屏蔽字,所述的碼字屏蔽字包括提供與所述各個至少兩個軟輸入字關聯的期望碼字值的字段;和用該復合軟輸入字對該碼字屏蔽字進行異運算。
10.根據權利要求1的方法,其中所述的求和步驟包括子步驟用抽取字乘該復合距離字以產生積字。
11.根據權利要求10的方法,其中所述的抽取步驟包括子步驟從該積字的子字段中抽取所述量度。
12.根據權利要求10的方法,其中將至少兩個軟輸入字組裝在一個16位字中,相鄰的軟輸入字之間有兩位的分離器,并且其中所述的抽取字是0001000001000001。
13.一種使用n位處理模塊基于多個m位軟輸入字確定在譯碼算法中的量度的裝置,其中n≥2×m,該裝置包括用于接收所述多個m位軟輸入字的邏輯電路;用于將所述多個m位軟輸入字的至少兩個組裝到單一的n位復合軟輸入字的邏輯電路;用于計算在該復合軟輸入字中的該至少兩個軟輸入字與期望碼字值之間的各個距離以產生復合距離字的邏輯電路;用于將該各個距離加在一起以產生該量度的邏輯電路;和用于抽取該量度的邏輯電路。
14.根據權利要求13的裝置,其中所述的譯碼算法是維特比算法。
15.根據權利要求13的裝置,其中所述的n位處理模塊包括一個使用16位字的16位處理模塊。
16.根據權利要求15的裝置,其中所述的m位軟輸入字每個包括一個4位字。
17.根據權利要求16的裝置,其中所述的譯碼算法對已用R=1/3的速率卷積編碼的信息進行譯碼,并將3個4位字組裝到一個16位字中。
18.根據權利要求16的裝置,其中所述的譯碼算法對已用R=1/2的速率卷積編碼的信息進行譯碼,并將2個4位字組裝到一個16位字中。
19.根據權利要求16的裝置,其中將分離器位插在組裝到16位字里的軟輸入字之間。
20.根據權利要求19的裝置,其中該分離器位包括兩個相鄰位。
21.根據權利要求13的裝置,其中所述用于計算的邏輯電路包括子邏輯電路,用于從存儲器中檢索n位碼字屏蔽字,所述的碼字屏蔽包括提供與所述各個至少兩個軟輸入字相關的期望碼字值的字段;和將該碼字屏蔽字與該復合軟輸入字進行異運算。
22.根據權利要求13的裝置,其中所述的求和邏輯包括用于將該復合距離字與抽取字相乘以產生積字的子邏輯電路。
23.根據權利要求22的裝置,其中所述的抽取邏輯包括用于從該積字的子字段中抽取所述量度的子邏輯電路。
24.根據權利要求22的裝置,其中將至少兩個軟輸入字組裝到一個16位字中,在相鄰的軟輸入字之間有兩位分離器,其中所述的抽取字是0001000001000001。
全文摘要
一種使用n位處理模塊基于多個m位軟輸入字(其中n≥2×m)確定在諸如維特比算法的譯碼算法中的量度的方法和裝置。該技術包括:接收多個m位軟輸入字;將該多個m位軟輸入字的至少兩個組裝到單一的n位復合軟輸入字中;計算在該復合軟輸入字的該至少兩個軟輸入字與期望碼字值之間的各個距離以生成復合距離字;將該各個距離加在一起以產生該量度;和抽取該量度。該n位處理模塊包括一個采用16位字的16位處理模塊,該m位軟輸入字每個可包括一個4位字。整個處理該多個軟輸入字增加了該譯碼器的速度和信息傳輸速率,并減少了該譯碼器的存儲器需求。
文檔編號H03M13/41GK1310884SQ99808940
公開日2001年8月29日 申請日期1999年7月15日 優先權日1998年7月22日
發明者S·皮爾梅爾 申請人:艾利森電話股份有限公司