專利名稱:一種維特比譯碼器狀態度量初始化的方法和裝置的制作方法
技術領域:
本發明涉及通訊領域中寬帶碼分多址系統,特別是涉及寬帶碼分多址系統中維特比譯碼器狀態度量初始化的方法和裝置。
在數字移動通信系統中,如何降低誤碼率,提高通信質量是一個很關鍵的問題。在第三代移動通信系統(3G)的建議標準中明確提出采用約束長度K為9;編碼速率R為1/2或1/3的卷積碼作為信道糾錯碼之一。在解碼方面,經典的維特比算法根據最大似然譯碼原理,在所有的路徑中求取與接受序列最相似的一條(距離最小的一條),進行路徑回溯獲得判決輸出,該方法已經被證明具有最佳糾錯譯碼性能。維特比算法主要有路徑度量的“加比選”(ACS)運算、度量的更新、路徑的更新、最大似然路徑的回溯等過程組成。
用公式表示維特比算法如下Bmn(t)=s1mn·r1(t)+s2mnr2(t)(1)Mn(t)=maxm[Mm(t-1)+Bmn(t)]---(2)]]>Hn(t)=[Hm(t-1),LSB(t)]m為最佳老狀態,(3)其中Mn(t)是狀態度量;Bmn(t)是狀態從m到n轉換的分支度量;Hn(t)表示狀態路徑。simn為可能信道碼符號;ri(t)為接收碼符號。稱(2)為加比選運算。在某一時刻,對所有狀態應用式(1)-(3),這個過程即為維特比譯碼。
從公式(2)中可以看到,狀態度量需要初始化。使用硬件來實現維特比譯碼器時,如果采用傳統的初始化方法對狀態度量存儲器進行初始化,要產生額外的初始化周期,周期的長度與K值的選取有關,一共要2K-1個初始化周期,K值越大,初始化的時間成倍增加。在使用多個蝶型進行維特比解碼和譯碼塊長度比較小時,初始化的時間不容忽略。而且需要另外設計較為復雜的初始化地址產生和控制電路,加大了電路設計的復雜性,增加了硬件實現的成本。
目前還沒有專門論述維特比譯碼器狀態度量初始化方面的文獻。
本發明的目的是提出一種不占用譯碼時間的,占用芯片資源較少的維特比譯碼器狀態度量初始化方法。
本發明的另一個目的是提出一種在在寬帶碼分多址(WCDMA)系統中實現上述方法的裝置。
本發明的維特比譯碼器狀態度量初始化方法是按以下方案實現的,包括以下步驟1.從外部讀入譯碼比特,進行分支度量的計算,計算方法如下Bmn(t)=s1mn·r1(t)+s2mnr2(t)(1)Bmn(t)表示狀態從m到n轉換的分支度量;simn為可能信道碼符號;ri(t)為接收碼符號。
2.通過選擇器控制電路,讀取狀態度量的初始化數據。
3.利用分支度量和初始的狀態度量進行狀態度量計算,計算方法如下Mn(t)=maxm[Mm(t-1)+Bmn(t)]---(2)]]>4.判斷是否計算完256個狀態,如果完成,進行下一步,否則跳轉到第一步。
5.進行正常的譯碼周期從外部讀入譯碼比特,根據公式(1)計算分支度量,讀取前一狀態的狀態度量,進行狀態度量的計算,直到所有譯碼比特計算完畢。
本發明的裝置是通過以下技術方案實現的WCDMA中基于以上方法的維特比譯碼器狀態度量初始化裝置,包括狀態度量計算模塊310,狀態度量存儲模塊330和控制模塊320;狀態度量計算模塊310包括分支度量計算模塊,加比選(ACS)模塊,狀態度量接口電路模塊。將讀入的譯碼比特,送到分支度量計算模塊計算分支度量,然后送到加比選(ACS)模塊計算出狀態度量,同時狀態度量接口電路模塊產生讀寫信號控制狀態度量存儲模塊的讀寫;狀態度量存儲模塊包括2塊獨立的存儲區331,332;讀寫地址選擇器335,337;緩沖器336,338;在讀周期,通過讀寫地址選擇器335和337選通讀地址,將兩塊存儲區331和332的數據送到緩沖器336和338,讀出上一時刻的狀態度量,給狀態度量計算模塊310使用,然后通過讀寫地址選擇器335和337選通寫地址,將狀態度量計算模塊310計算出來的狀態度量經緩沖器336和338寫入存儲區中;控制模塊包括選擇器控制信號產生模塊322,初始化數據產生模塊323,選擇器模塊324;控制信號產生模塊322產生初始化數據的選擇信號,送到選擇器模塊324在初始化周期通過選擇器選通初始化數據產生模塊323產生的數據到狀態度量計算模塊310;所述的狀態度量計算模塊讀取譯碼數據,上一狀態的狀態度量或者狀態度量初始化數據,進行分支度量計算后,經過加比選,計算出狀態度量和轉移路徑,儲存在另外的狀態度量存儲區中;控制模塊控制狀態度量的讀寫,包括初始的狀態度量的讀取。
下面結合附圖和實施例進一步說明本發明。
圖1是本發明維特比譯碼器的功能方框圖;圖2是傳統狀態度量的計算與存儲組織結構圖;圖3是本發明采用的狀態度量的計算與存儲組織結構圖;圖4是本發明的方法流程圖;圖5是傳統狀態度量初始化時序圖;圖6是本發明狀態度量初始化時序圖。
圖1是維特比譯碼器的功能方框圖。它主要由輸入緩存及選擇101、分支度量計算102、加-比-選(ACS)電路103、狀態度量存儲104、幸存路徑存儲105、回溯單元106以及時序產生107等部分組成,它們的主要作用如下輸入及分支度量計算電路(101,102)它將接收的數據按分支度量計算公式算出每種可能的度量值,包括分支形成電路,分支度量計算,同步控制及有關時序電路等。
狀態度量計算單元ACS(相加—比較—選擇)103對于約束長度K的卷積碼,其狀態數N=2K-1,對應的有2K-1個ACS運算單元,2K-1個判據寄存器,最佳狀態度量譯碼電路及度量溢出檢測電路等。
狀態度量存儲單元104用于存儲狀態度量值。
幸存路徑存貯單元105它包括N=2K-1個位數為5-7倍約束長度的存貯器RAM,讀/寫地址產生器,最佳路徑選擇譯碼器,數據緩沖器等部分。在串行運算時,若用L個ACS電路,則路徑存貯器可減少為原來的1/N。
回溯單元106譯碼結束后,從后往前回溯出譯碼結果。
時序產生電路107為所有的單元提供運算的時序。
譯碼器采用維特比譯碼算法在幀模式下對每一幀以約定的數據率對已同步和量化的碼符號進行譯碼。
圖2是本發明的狀態度量的計算與存儲組織結構圖其中分支度量計算單元102、加-比-選電路ACS103、狀態度量存儲電路104它的工作方式如下某一時刻,維特比譯碼器從外部讀入一個數據,由201進行分支度量的計算,同時由201產生一個讀地址,將上一時刻狀態度量的值從一個存儲區(假設為211存儲區A)讀出,進行計算累加后將結果存儲在另外的存儲區(212存儲區B)中,到了下一時刻,將存儲區翻轉,從存儲區B(212)中將狀態度量讀出,進行計算累加后將結果存儲在存儲區A(211)中,如此一直到所有譯碼數據處理完。在每組譯碼數據的第一次運算之前必須將存儲區進行初始化,傳統的方法是由初始化地址產生器202在運算開始前產生地址信號,由初始化數據產生器203產生初始化數據,由狀態度量儲存器接口電路201產生寫信號,通過選擇器控制204選通選擇器205、206、207、209將初始化數據寫入狀態度量存儲區(211或者212)。狀態度量存儲區的大小為狀態數N=2K-1,對于3GPP的建議,K選擇9,一共有256個狀態,也就是說要產生256個地址,進行256次寫操作才能夠完成初始化工作。如果使用硬件來實現維特比譯碼器時,這樣做要耗費較多的芯片資源,以及引入了額外的256個初始化周期,占用譯碼時間。
圖3是本發明的本發明采用的狀態度量的計算與存儲組織結構圖;發明包括分支度量計算、ACS電路、狀態度量存儲器接口電路310,用來讀入譯碼比特,計算出狀態度量,控制狀態度量存儲模塊的讀寫;狀態度量存儲模塊330(包括2塊獨立的存儲區331,332;讀寫地址選擇器335,337;緩沖器336,338),用來選通讀地址,讀出上一時刻的狀態度量,給狀態度量計算模塊310使用,然后選通寫地址,將計算出來的狀態度量寫入存儲區中;控制模塊320(包括選擇器控制信號產生模塊322,初始化數據產生模塊323,選擇器模塊324)用來產生初始化數據的選擇信號,在初始化周期通過選擇器選通初始化數據產生模塊產生的數據。與傳統的組織結構相比,省略了初始化地址發生器和一些選擇器。本發明通過了一個選擇器對狀態度量的選擇,并通過選擇器控制單元產生控制選擇器的時序,讀取狀態度量初始化值,從而避免了額外的資源和初始化占用的譯碼時間。某一時刻,維特比譯碼器從外部讀入一個數據,由310進行分支度量的計算,同時由310產生一個讀地址,將上一時刻狀態度量的值從一個存儲區(假設為331存儲區A)讀出,進行計算累加后將結果存儲在另外的存儲區(332存儲區B)中,到了下一時刻,將存儲區翻轉,從存儲區B(332)中將狀態度量讀出,進行計算累加后將結果存儲在存儲區A(331)中,如此一直到所有譯碼數據處理完。在每組譯碼數據的第一次運算時,由選擇器控制單元322產生控制信號,控制選擇器324選通初始化數據模塊323的數據,因此ACS計算電路310讀取的就是初始化的數據,從而省略了初始化地址產生電路和初始化數據寫入的時間,節省了芯片的面積,提高譯碼效率。
圖4是本發明的方法流程圖;步驟402判斷是否處于初始化狀態,如果處于初始化狀態,則由步驟404讀入初始化狀態數據,否則由步驟403讀入上一個狀態度量值,在控制電路405的控制下,數據通過選擇器406送入分支度量計算和狀態度量計算存儲步驟407;經過步驟401讀入的譯碼數據同時送入步驟407,經過步驟407后,就可以計算出狀態度量。
圖5為傳統的狀態度量初始化時序圖;當譯碼開始時,由選擇器204,205,206控制初始化周期,首先往狀態度量存儲器211(或者212)寫入初始化數據電路203產生的初始化數據,對于3GPP的建議,K選擇9,一共有256個狀態,所以要產生256個地址和256個寫信號。初始化完成后,就可以進行譯碼了,初始化后的周期為譯碼周期,開始從狀態度量存儲器211(或者212)中讀取狀態度量,累加上ACS(加比選)單元201的計算結果存儲到另外的一個狀態度量存儲區212(或者211),同時將路徑轉移信息存儲到幸存路徑存儲區105。
圖6為本發明采用的狀態度量初始化時序圖當譯碼開始時,由選擇器322,324控制選通初始化數據電路323產生的初始化數據,此時分支度量及ACS計算電路310讀入的數據就是初始化的數據,可以直接進行譯碼操作,累加上分支度量及ACS計算電路單元310的計算結果存儲到狀態度量存儲區331(或者332),同時將路徑轉移信息存儲到幸存路徑存儲區105。通過比較,可以看出本發明節省了狀態度量的初始化的寫周期。
本發明已經通過了大規模現場可編程門陣列FPGA實現,并且通過了功能的驗證。本發明使用硬件設計維特比譯碼器,減少初始化狀態度量存儲器所要產生初始化地址耗費的額外資源,節省初始化狀態度量寄存器占用的譯碼時間,可以提高系統的集成度,并且給后續處理更多的處理時間。因為維特比譯碼器的應用非常廣,不但在移動通信領域(包括GSM,CDMA,WCDMA),在衛星通信,圖象傳輸等都有應用,本發明可以根據這些領域的標準要求稍微改動,就可以完全適用。
權利要求
1.一種在WCDMA系統中維特比譯碼器狀態度量初始化的方法,其特征在于包括以下步驟步驟1從外部讀入譯碼比特,計算分支度量;步驟2通過選擇器控制電路,讀取狀態度量的初始化數據;步驟3利用分支度量和初始的狀態度量進行狀態度量計算;步驟4判斷是否計算完256個狀態,如果完成,進入步驟5,否則跳轉到步驟1;步驟5進入譯碼周期。
2.根據權利要求1所述的WCDMA系統中維特比譯碼器狀態度量初始化方法,其特征在于所述步驟1中計算分支度量是按下式進行的Bmn(t)=s1mn·r1(t)+s2mnr2(t)其中,Bmn(t)表示狀態從m到n轉換的分支度量;simn為可能信道碼符號;ri(t)為接收碼符號。
3.根據權利要求1所述的WCDMA系統中維特比譯碼器狀態度量初始化方法,其特征在于所述的步驟3利用分支度量和初始的狀態度量進行狀態度量計算,按下式進行的Mn(t)=maxm[Mm(t-1)+Bmn(t)]]]>。
4.根據權利要求1所述的WCDMA系統中維特比譯碼器狀態度量初始化方法,其特征在于所述的步驟5進入譯碼周期分為下面步驟從外部讀入譯碼比特,根據公式Bmn(t)=s1mn·r1(t)+s2mnr2(t)計算分支度量,讀取前一狀態的狀態度量,進行狀態度量的計算,直到所有譯碼比特計算完畢。
5.一種在WCDMA系統中維特比譯碼器狀態度量初始化的裝置,其特征在于包括狀態度量計算模塊(310),狀態度量存儲器(320),和控制模塊(330);狀態度量計算模塊(310)通過控制模塊(330)從狀態度量存儲器(320)中選擇讀取的前一時刻狀態度量或者初始化狀態度量,計算完成后將狀態度量送到狀態度量存儲器(320)中保存;所述的狀態度量計算模塊(310)包括分支度量計算模塊,加比選(ACS)模塊,狀態度量接口電路模塊;將讀入的譯碼比特,送到分支度量計算模塊計算分支度量,然后送到加比選(ACS)模塊計算出狀態度量,同時狀態度量接口電路模塊產生讀寫信號控制狀態度量存儲模塊的讀寫;所述的狀態度量存儲器(320)包括兩塊獨立的存儲區(331)和(332),讀寫地址選擇器(335)和(337),緩沖器(336)和(338);在讀周期,通過讀寫地址選擇器(335)和(337)選通讀地址,將兩塊存儲區(331)和(332)的數據送到緩沖器(336)和(338),讀出上一時刻的狀態度量,送至狀態度量計算模塊(310)使用,然后通過讀寫地址選擇器(335)和(337)選通寫地址,將狀態度量計算模塊(310)計算出來的狀態度量經緩沖器(336)和(338)寫入存儲區中;所述的控制模塊(330)包括控制信號產生模塊(322),初始化數據產生模塊(323),選擇器模塊(324);控制信號產生模塊(322)產生初始化數據的選擇信號,送到選擇器模塊(324)在初始化周期通過選擇器選通初始化數據產生模塊(323)產生的數據到狀態度量計算模塊(310);所述的狀態度量計算模塊(310)讀取譯碼數據,上一狀態的狀態度量或者狀態度量初始化數據,進行分支度量計算后,經過加比選,計算出狀態度量和轉移路徑,儲存在另外的狀態度量存儲區中,所述的控制模塊(330)控制狀態度量的讀寫,包括初始的狀態度量的讀取。
6.根據權利要求5所述的WCDMA系統中維特比譯碼器狀態度量初始化的裝置,其特征在于所述的狀態度量計算模塊(310)讀取譯碼數據,是通過控制模塊(330)直接讀取初始化數據產生模塊(323)所生成的數據。
全文摘要
本發明公開一種不占用譯碼時間的,占用芯片資源較少的Viterbi譯碼器狀態度量初始化方法和裝置。所述方法采用選擇器來選擇上一時刻的狀態度量或者初始化狀態度量來節省初始化的時間和減少初始化電路占用資源。所述的裝置是利用大規模可編程邏輯器件實現。本發明使用硬件設計Viterbi譯碼器,減少初始化狀態度量存儲器所要產生初始化地址耗費的額外資源,節省初始化狀態度量寄存器占用的譯碼時間,提高系統的集成度,并且給后續處理更多的處理時間。
文檔編號H04L1/00GK1355620SQ00127580
公開日2002年6月26日 申請日期2000年11月24日 優先權日2000年11月24日
發明者周海濤 申請人:深圳市中興通訊股份有限公司