專利名稱:一種卷積碼譯碼方法
技術(shù)領(lǐng)域:
本發(fā)明涉及譯碼方法領(lǐng)域,具體是涉及通訊領(lǐng)域的一種卷積碼譯碼方法。
背景技術(shù):
卷積碼因為編碼器簡單,編碼增益高以及具有很強的糾正隨機錯誤能力,因此在通訊系統(tǒng)中得到十分廣泛的應(yīng)用?;诖a的網(wǎng)格圖基礎(chǔ)上的一種最大似然準則的維特比算法(Viterbi Algorithms,簡稱VA)是在加性高斯白噪聲信道下性能最佳的卷積碼譯碼方法,同時由于具有效率高、速度快、譯碼簡單的特點,因此被廣泛地應(yīng)用于各種通信系統(tǒng)中。
Nambirajian Seshadri和Carl-Erik W.Sundberg在美國電子電機工程師學(xué)會通信學(xué)報,1994年,2月,3月,4月,第42卷,313-323頁的題目為“列表維特比譯碼算法以及應(yīng)用”文獻(Nambirajan Seshadri and Carl-Erik W.Sundberg,List Viterbi Decoding Algorithms with Applications,IEEE Trans.on Comm.,Vol.42,No.2/3/4,F(xiàn)eb./March/April 1994,313-323.)中提出了一種列表維特比算法(一般也稱為次優(yōu)路徑算法(List VA,簡稱LVA))。該方法具體是通過在網(wǎng)格圖中,尋找L個全局優(yōu)選路徑來提高譯碼性能的。圖1為LVA譯碼結(jié)構(gòu)示意圖,如圖示,LVA算法在譯碼過程中,根據(jù)差錯校驗的結(jié)果從L個全局優(yōu)選路徑中,選擇最有可能正確的路徑。由于LVA相對VA增加了搜索過程中(L-1)個優(yōu)選路徑,提高了找到正確譯碼的機率,被廣泛應(yīng)用于包括卷積碼和校驗碼的譯碼系統(tǒng)中。
LVA具有以下兩種并行次優(yōu)路徑算法(Parallel LVA,簡稱PLVA),和串行次優(yōu)路徑算法(Serial LVA,簡稱SLVA)。以下分別對這兩種方法進行介紹對于PLVA,PLVA是根據(jù)VA,通過一次網(wǎng)格搜索,同時得到L個全局優(yōu)選路徑。由于對于網(wǎng)格圖中每個時刻的每個狀態(tài)都找到進入該狀態(tài)的L個局部優(yōu)選路徑,PLVA在每個時刻的每個狀態(tài),計算2個分支度量和2L個路徑度量,最終一次得到所需要的L個全局優(yōu)選路徑。PLVA算法與LVA算法的步驟基本相同,只是每個時刻的每個狀態(tài)都具有2L個路徑進入,在2L個路徑中選擇得到了L個局部優(yōu)選路徑。特別的當(dāng)L=1時,就是VA。但是,PLVA在每個時刻的每個狀態(tài)都需要計算2個分支度量和2L個路徑度量,同時還需要L個M×N(M為卷積編碼塊長度,N為狀態(tài)個數(shù))的矩陣分別存儲L個優(yōu)選路徑。與VA算法相比,PLVA算法需要額外計算(2L-2)個路徑度量,額外占用(L-1)個MN矩陣存儲優(yōu)選路徑。PLVA算法的計算量和存儲空間大約是VA算法的L倍,基本與L成線性增長關(guān)系,因此需要占用巨大的存儲空間。另外,由于PLVA算法不管最終選擇哪一條優(yōu)選路徑,均要耗費L倍的計算量,因此PLVA方法實際上浪費了許多不必要的計算。
對于SLVA,SLVA首先根據(jù)VA,在前向計算中,在每時刻的每狀態(tài)點,計算2個分支度量,以及累計分支最優(yōu)路徑度量,并存儲最優(yōu)路徑度量、最優(yōu)路徑度量對應(yīng)的分支度量、以及最優(yōu)路徑度量的路徑。從卷積碼最末時刻開始回溯獲取全局最優(yōu)路徑,以及全局最優(yōu)路徑的譯碼數(shù)據(jù),并對譯碼數(shù)據(jù)進行差錯校驗,如果校驗正確,輸出該正確的譯碼數(shù)據(jù),結(jié)束譯碼;否則,分別以全局最優(yōu)路徑上最末時刻的狀態(tài)點開始回溯,每回溯過程中分別在不同的一時刻與最優(yōu)路徑分離,在分離時刻的下一時刻開始按照每狀態(tài)點存儲的最優(yōu)路徑回溯,獲取次優(yōu)路徑候選路徑,根據(jù)在前向計算時已存儲的,該分離時刻的不在全局最優(yōu)路徑上的狀態(tài)點的路徑度量、分離時刻的前一時刻不在全局最優(yōu)路徑上的另一狀態(tài)點,到分離時刻的在全局最優(yōu)路徑上的狀態(tài)點的分支度量、全局最優(yōu)路徑上的分離時刻的狀態(tài)點的最優(yōu)路徑度量,獲取各次優(yōu)路徑候選路徑的路徑度量,或者各次優(yōu)路徑候選路徑相對于全局最優(yōu)路徑的路徑度量的差值,選取路徑度量最接近全局最優(yōu)路徑的候選路徑(如果獲取的是路徑度量差值,那么選取差值最小的候選路徑)作為全局次優(yōu)路徑。獲取全局次優(yōu)路徑,并將該全局次優(yōu)路徑的譯碼進行差錯校驗,如果校驗結(jié)果為正確,輸出全局次優(yōu)路徑的譯碼,結(jié)束譯碼;否則繼續(xù)在全局次優(yōu)路徑、全局最優(yōu)路徑基礎(chǔ)上得到全局第3優(yōu)路徑,同理,直到得到第L個路徑。
SLVA的優(yōu)點在于只有當(dāng)先前找到全局第(l-1)優(yōu)選路徑被判決為錯誤時,才需要計算全局第l優(yōu)選路徑。因而相對PLVA,減少了許多實際上并不需要的計算,大大減少了計算復(fù)雜度。
但是,在SLVA中,由于需要在前向計算過程中,對于網(wǎng)格圖中的每個時刻的每個狀態(tài)點存儲到達該狀態(tài)點的1個分支度量、最優(yōu)路徑度量、以及最優(yōu)路徑,需要占用較多的存儲單元,對于卷積編碼塊長度為M,狀態(tài)個數(shù)為N的卷積碼而言,具體是M*N個度量存儲單元,其中每度量存儲單元、以及路徑存儲單元具體占用的存儲單元,需要根據(jù)表示度量的比特數(shù)來確定。SLVA雖然相對于PLVA而言能夠在一定程度上的減少了卷積碼譯碼所需要的計算量、以及存儲空間,然而該方法在前向計算中所需要的的存儲空間仍然非常大,該需要的存儲空間過大的問題,仍然大大限得局限了其在實際中的應(yīng)用。
針對SLVA,Christiane Nill和Carl-Erik W.Sundberg在美國電子電機工程師學(xué)會通信學(xué)報,1995年,2月,3月,4月,第43卷,277-287頁,題目為“列表和軟符號輸出維特比算法擴展和對比”的文獻(Christiane Nill andCarl-Erik W.Sundberg,List and Soft Symbol Output Viterbi Algorithms∷Extensions and Comparisons,IEEE Trans.On Comm.,Vol 43,2/3/4,F(xiàn)eb./March/April 1995,277-287)中提出了一種簡化的維特比算法。該方法對于每時刻的每狀態(tài)點,通過存儲進入該狀態(tài)的最優(yōu)路徑和次優(yōu)路徑之間的路徑度量差值,簡化了SLVA的回溯時計算過程,但是該方法相對現(xiàn)有技術(shù)而言,只是存儲的變量優(yōu)路徑度量變成了度量差值而已,需要占用的存儲空間沒有改變。因此該方法仍然由于算法存儲占用空間過大,大大限制了在實際中的應(yīng)用。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題是提供一種卷積碼譯碼方法,以解決現(xiàn)有技術(shù)SLVA占用過大存儲空間的問題。
為了解決上述技術(shù)問題,本發(fā)明的目的是通過以下技術(shù)方案實現(xiàn)的一種卷積碼譯碼方法,包括以下步驟A、根據(jù)維特比算法,獲取全局最優(yōu)路徑,獲取譯碼數(shù)據(jù),并存儲全局最優(yōu)路徑的路徑度量;B、對所述的譯碼數(shù)據(jù)進行差錯校驗,如果差錯校驗正確,則輸出譯碼,結(jié)束譯碼,否則執(zhí)行步驟C;C、分別根據(jù)各已知的全局優(yōu)選路徑回溯,分別在所述已知的全局優(yōu)選路徑的每個時刻與所述已知的全局優(yōu)選路徑分離,從所述的分離時刻開始,回溯查找相對于所述已知的全局優(yōu)選路徑的局部次優(yōu)路徑,在回溯過程中獲取所述局部次優(yōu)路徑所在的全局路徑相對于全局最優(yōu)路徑的度量差值,根據(jù)所述的度量差值,獲取一全局優(yōu)選路徑,以及所獲取路徑對應(yīng)的譯碼數(shù)據(jù),返回步驟B。
本發(fā)明所述方法,所述步驟B進一步包括以下步驟B1、如果差錯校驗不正確,進一步比較已知的全局優(yōu)選路徑數(shù)目是否小于預(yù)設(shè)的需查找全局優(yōu)選路徑的總數(shù)目,如果小于,則執(zhí)行步驟C;否則輸出譯碼失敗的結(jié)果,結(jié)束譯碼。
本發(fā)明所述方法,所述步驟A進一步存儲所述全局最優(yōu)路徑的每個時刻的狀態(tài)點的狀態(tài)。
本發(fā)明所述方法,所述步驟A進一步包括A2、在全局最優(yōu)上的每個時刻,累計并存儲從所述全局最優(yōu)路徑的開始時刻的狀態(tài)點到所述的每個時刻的狀態(tài)點的路徑度量。
本發(fā)明所述方法,步驟C中所述的度量差值的獲取,具體為回溯路徑與全局最優(yōu)路徑相分離的局部路徑的度量減全局最優(yōu)路徑與所回溯路徑相分離的局部路徑的度量,獲取所述的度量差值。
本發(fā)明所述方法,所述步驟C具體包括以下步驟C11、l累加1,其中所述l為一大于0,小于所預(yù)設(shè)的需查找的全局優(yōu)選路徑的總數(shù),并初始化為l=1的自然數(shù)變量;C12、預(yù)設(shè)時刻變量j,并確定時刻j的范圍,初始化時刻j;C13、分別根據(jù)各已知的全局優(yōu)選路徑的路徑寄存器值回溯,并在回溯到時刻j后,取與回溯所根據(jù)的已知全局優(yōu)選路徑不相同的另一路徑;
C14、在時刻(j-1)的狀態(tài)點及以后的回溯,按照最優(yōu)路徑回溯,并在回溯的每個時刻,累計并存儲分支度量,并比較狀態(tài)是否與全局最優(yōu)路徑在所述時刻的狀態(tài)相同,如果相同,則停止回溯,獲取所回溯路徑與全局最優(yōu)路徑分離時刻與停止回溯時刻之間的,所回溯路徑上的局部路徑相對于全局最優(yōu)路徑上的局部路徑的度量差值,如果j在所述步驟C12所設(shè)定的范圍內(nèi),則更新時刻j,并返回步驟C13;如果j不在所述步驟C12所設(shè)定的范圍內(nèi),根據(jù)所獲取的差值,獲取全局第l優(yōu)路徑,以及全局第l優(yōu)路徑的譯碼數(shù)據(jù),返回步驟B。
本發(fā)明所述方法,步驟C14中所述的度量差值的獲取,具體包括以下步驟C141、如果當(dāng)前回溯所根據(jù)的全局優(yōu)選路徑是全局最優(yōu)路徑,所述的差值等于停止回溯時刻相對于時刻j的累計分支度量,減去,全局最優(yōu)路徑上的時刻j的累計分支度量與所述停止回溯所在時刻的狀態(tài)點的累計分支度量之差;否則,所述差值等于停止回溯時刻相對于時刻j的累計分支度量,加上,當(dāng)前回溯所根據(jù)的全局優(yōu)選路徑在時刻j的狀態(tài)點的累計分支度量,減去,全局最優(yōu)路徑上的時刻j的累計分支度量與所述停止回溯時刻的累計分支度量之差。
本發(fā)明所述方法,步驟C中所述的度量差值的獲取,具體為所回溯路徑所在的全局路徑的路徑度量,減全局最優(yōu)路徑的度量,獲取所述的度量差值。
本發(fā)明所述方法,所述步驟C具體包括以下步驟C21、l=l+1,其中l(wèi)為一大于0小于所預(yù)設(shè)的需查找的全局優(yōu)選路徑的總數(shù),并初始化l=1的自然數(shù)變量;C22、設(shè)置一自然數(shù)變量j,初始化時刻j;C23、分別根據(jù)各已知的全局優(yōu)選路徑的路徑寄存器值回溯,在回溯的每個時刻累計分支度量,并在回溯到時刻j時,取與回溯所根據(jù)的已知全局優(yōu)選路徑不相同的另一路徑;
C24、在時刻(j-1)的狀態(tài)點及以后的回溯,按照最優(yōu)路徑回溯,一直回溯到卷積碼的開始時刻,獲取所回溯路徑的路徑度量,計算獲取所回溯路徑與全局最優(yōu)路徑的路徑度量差值,如果時刻j在卷積碼的時刻范圍內(nèi),則更新時刻j,返回步驟C23;根據(jù)所獲取的差值,獲取全局第l優(yōu)路徑,以及所述的全局第l優(yōu)路徑的譯碼數(shù)據(jù),返回步驟B。
本發(fā)明所述方法,所述的根據(jù)所獲取的差值,獲取全局第l優(yōu)路徑,具體包括以下步驟C3、從所獲取的差值中選取,大于全局第(l-1)優(yōu)路徑相對于全局最優(yōu)路徑的路徑度量之差的差值,進一步的,在所有大于全局第(l-1)優(yōu)路徑相對于全局最優(yōu)路徑的路徑度量之差的所有差值中,選取最小的差值,所述最小的差值對應(yīng)的路徑是全局第l優(yōu)路徑。
本發(fā)明所述方法,步驟C3進一步包括以下步驟C31、將所獲取的度量差值與已存儲的度量差值相比較,存儲大于全局第(l-1)優(yōu)路徑相對于全局最優(yōu)路徑的路徑度量差值的所有差值中最小的(L-l+1)個度量差值,以及該差值對應(yīng)的路徑寄存器值,其中L為所預(yù)設(shè)的需查找的全局優(yōu)選路徑的總數(shù)。
本發(fā)明所述方法,所述的根據(jù)所述的度量差值,獲取全局第l優(yōu)路徑,具體是所有存儲的度量差值中第(l-1)小的度量差值對應(yīng)的路徑即為全局第l優(yōu)路徑。
本發(fā)明所述方法,步驟C3進一步包括以下步驟C32、將所獲取的度量差值與已存儲的度量差值相比較,存儲大于全局第(l-1)優(yōu)路徑相對于全局最優(yōu)路徑的路徑度量差值的所有差值中最小的度量差值,以及該差值對應(yīng)的路徑寄存器值。
本發(fā)明所述方法,所述的根據(jù)所述的度量差值獲取全局第l優(yōu)路徑,具體是所獲取并存儲的度量差值對應(yīng)的路徑為全局第l優(yōu)路徑。
本發(fā)明所述方法,所述初始化時刻j,具體是使時刻j等于時刻范圍內(nèi)最小的時刻。
本發(fā)明所述方法,所述的更新時刻j,具體是使時刻j遞增。
本發(fā)明所述方法,所述初始化時刻j,具體是使時刻j等于時刻范圍內(nèi)最大的時刻。
本發(fā)明所述方法,所述的更新時刻j,具體是使時刻j遞減。
以上技術(shù)方案可以看出,與現(xiàn)有技術(shù)相比,本發(fā)明具有以下的優(yōu)點首先,本發(fā)明使用了SLVA的基本原理,根據(jù)VA查找最優(yōu)路徑,然后根據(jù)最優(yōu)路徑查找全局次優(yōu)路徑,再根據(jù)全局最優(yōu)以及次優(yōu)路徑尋找第3優(yōu)路徑,依此類推,總之根據(jù)全局1、2、3...(l-1)優(yōu)路徑尋找第l優(yōu)的路徑,并且,只要尋找到的全局優(yōu)選路徑的譯碼數(shù)據(jù)經(jīng)差錯校驗正確,則輸出該正確的譯碼數(shù)據(jù),停止譯碼。因此本發(fā)明保留了SLVA的計算簡單的特點。
本發(fā)明在查找L個優(yōu)選路徑時,通過分別根據(jù)已知的全局優(yōu)選路徑回溯,分別在每個全局優(yōu)選路徑的每個時刻與所根據(jù)的全局優(yōu)選路徑分離,查找相對于回溯所根據(jù)的全局優(yōu)選路徑的局部次優(yōu)路徑,獲取所述局部次優(yōu)路徑所在的全局路徑相對于全局最優(yōu)路徑的度量差值,根據(jù)所述的度量差值獲取全局優(yōu)選路徑。同時針對所述的度量差值的獲取,本發(fā)明還提供了兩種解決方案方案一直接通過計算所回溯路徑所在的全局路徑的路徑度量,減全局最優(yōu)路徑的度量獲取所述的度量差值。在本方案下,提出了兩種存儲機制第一種,在查找全局最優(yōu)路徑時的前向計算過程中,保存每時刻的每狀態(tài)點的最優(yōu)路徑,以及全局最優(yōu)路徑的路徑度量,在查找除全局最優(yōu)路徑外的其他全局優(yōu)選路徑過程中,設(shè)當(dāng)前查找的全局優(yōu)選路徑的路徑號為l,保存所回溯的全局路徑相對于全局最優(yōu)路徑的路徑度量差值中,滿足度量差值大于全局第(l-1)優(yōu)路徑相對于全局最優(yōu)路徑的路徑度量差值的所有度量差值中最小的(L-l+1)個度量差值,以及該(L-l+1)個度量差值對應(yīng)的全局路徑。
第二種,在查找全局最優(yōu)路徑時的前向計算過程中,保存每時刻的每狀態(tài)點的最優(yōu)路徑,以及全局最優(yōu)路徑的路徑度量,在查找除全局最優(yōu)路徑外的其他全局優(yōu)選路徑過程中,設(shè)當(dāng)前查找的全局優(yōu)選路徑的路徑號為l,保存所回溯的全局路徑相對于全局最優(yōu)路徑的路徑度量差值中,滿足度量差值大于全局第(l-1)優(yōu)路徑相對于全局最優(yōu)路徑的路徑度量差值的所有度量差值中最小的一個度量差值,以及該度量差值對應(yīng)的全局路徑。
對于長度為M、狀態(tài)數(shù)為N的卷積碼,采用第一種存儲機制,所需要的存儲空間具體是M*N個用于存儲網(wǎng)格圖中各時刻、各狀態(tài)的最優(yōu)路徑的路徑寄存器,L個用于存儲路徑度量或路徑度量差值的度量存儲單元,以及L個全局優(yōu)選路徑所占用的路徑寄存器(具體為(L*M)個路徑寄存器。采用第二種存儲機制,所需要的存儲存儲空間具體是M*N個用于存儲網(wǎng)格圖中各時刻、各狀態(tài)的路徑存儲單元,3個度量存儲單元,其中1個用于存儲全局最優(yōu)路徑的路徑度量,其中2個用于存儲度量差值,以及L個全局優(yōu)選路徑所占用的路徑寄存器(具體為(L*M)個路徑寄存器。而現(xiàn)有技術(shù)需要的存儲單元具體是M*N個用于各時刻、各狀態(tài)的狀態(tài)存儲單元,2M*N個用于存儲每時刻的每狀態(tài)的1最優(yōu)路徑度量(或路徑度量差值)以及1個分支度量的度量存儲單元。具體各狀態(tài)存儲單元、以及度量存儲單元的具體大小根據(jù)譯碼系統(tǒng)中表示狀態(tài)、度量的比特數(shù)來確定。因此本方案相對于現(xiàn)有技術(shù)而言,大大節(jié)省了存儲空間。
方案二可以通過計算所回溯路徑與全局最優(yōu)路徑相分離的局部路徑的度量,減全局最優(yōu)路徑與所回溯路徑相分離的局部路徑的度量獲取所述的度量差值。在與已知的全局優(yōu)選路徑分離之后,在回溯的每時刻累計分支度量,并比較該時刻狀態(tài)點的狀態(tài)是否與全局最優(yōu)路徑上的相應(yīng)時刻的狀態(tài)點的狀態(tài)相同,如果不同,繼續(xù)回溯;否則,表明回溯回到了全局最優(yōu)路徑上,停止回溯,計算所回溯路徑與全局最優(yōu)路徑相分離的局部路徑的路徑度量,將該路徑度量減去全局最優(yōu)路徑上相應(yīng)量值刻點之間的局部路徑度量,得到該差值。
在方案二下,同樣具有兩種存儲機制,第一種,在查找全局最優(yōu)路徑過程中,存儲網(wǎng)格圖中每時刻的每狀態(tài)的狀態(tài)以及最優(yōu)路徑,全局最優(yōu)路徑上的每時刻相對于碼塊開始時刻的路徑度量,以及在查找除全局最優(yōu)路徑的其他全局優(yōu)選路徑過程中,每次回溯過程中,與所根據(jù)的全局優(yōu)選路徑相分離之后到回到全局最優(yōu)路徑之間的各時刻的相對于該相分離時刻的局部路徑度量,以及回溯的路徑與全局最優(yōu)路徑相分離的局部路徑相對于全局最優(yōu)路徑在相同的時刻段內(nèi)的局部路徑的度量差值中,滿足度量差值大于全局第(l-1)優(yōu)路徑相對于全局最優(yōu)路徑的路徑度量差值的所有度量差值中最小的(L-l+1)個度量差值,以及該(L-l+1)個度量差值對應(yīng)的全局路徑。其中L為需查找的全局優(yōu)選路徑的總數(shù),l為當(dāng)前需查找的全局優(yōu)選路徑的路徑號。
第二種存儲機制,與敵一種所不同的是,在查找除全局最優(yōu)路徑的其他全局優(yōu)選路徑過程中,每次回溯過程中,需要存儲與所根據(jù)的全局優(yōu)選路徑相分離之后到回到全局最優(yōu)路徑之間的各時刻的相對于該相分離時刻的路徑度量,以及回溯的路徑與全局最優(yōu)路徑相分離的局部路徑,相對于全局最優(yōu)路徑在相同的時刻段內(nèi)的局部路徑的度量差值中,滿足度量差值大于全局第(l-1)優(yōu)路徑相對于全局最優(yōu)路徑的路徑度量差值的所有度量差值中最小的1個度量差值,以及該最小度量差值對應(yīng)的全局路徑。其中l(wèi)為當(dāng)前需查找的全局優(yōu)選路徑的路徑號。
由上可見,對于長度為M、狀態(tài)數(shù)為N的卷積碼,在方案二中,采用第一種存儲機制,所需要的存儲空間具體為M*N個用于存儲網(wǎng)格圖中各時刻、各狀態(tài)的狀態(tài)存儲單元、以及M*N個用于存儲網(wǎng)格圖中各時刻、各狀態(tài)的最優(yōu)路徑的路徑寄存器、以及用于存儲L個全局優(yōu)選路徑的路徑寄存器、最多(L*M+L)個度量存儲單元,。而采用第二種存儲機制,由于之需要存儲回溯的路徑與全局最優(yōu)路徑相分離的局部路徑,相對于全局最優(yōu)路徑在相同的時刻段內(nèi)的局部路徑的度量差值中,滿足度量差值大于全局第(l-1)優(yōu)路徑相對于全局最優(yōu)路徑的路徑度量差值的所有度量差值中最小的1個度量差值,以及該最小度量差值對應(yīng)的全局路徑,因此第二種存儲機制,相對第二種存儲機制而言,相對需要占用的存儲空間減少,具體減少情況,根據(jù)具體的譯碼不相同,可見,方案二,相對于本發(fā)明的方案一而言,顯然需要占用較多的存儲空間,但是本方案能夠大大減少回溯過程中重復(fù)的度量計算;另外,本方案相對于現(xiàn)有技術(shù)而言,仍然大大節(jié)省了存儲空間。
圖1為LVA譯碼結(jié)構(gòu)圖;圖2為本發(fā)明方法譯碼流程示意圖;圖3為網(wǎng)格圖的基本單元——蝶形圖示意圖;圖4為本發(fā)明的優(yōu)選路徑示意圖;圖5實施例1所述的譯碼方法示意圖;圖6實施例2所述的譯碼方法示意圖;圖7實施例3所述的譯碼方法示意圖;圖8實施例4所述的譯碼方法示意圖。
具體實施例方式
本發(fā)明的核心思想是根據(jù)VA,獲取全局最優(yōu)路徑,獲取譯碼數(shù)據(jù),并存儲全局最優(yōu)路徑的路徑度量,以及路徑寄存器值;對所獲取的譯碼數(shù)據(jù)進行差錯校驗,如果所述的譯碼為正確的譯碼,則輸出譯碼,結(jié)束譯碼;否則繼續(xù)查找其他的全局優(yōu)選路徑,以及該全局優(yōu)選路徑對應(yīng)的譯碼數(shù)據(jù),其查找方法具體是分別根據(jù)已知的全局優(yōu)選路徑回溯,分別在每個全局優(yōu)選路徑的每個時刻與所根據(jù)的全局優(yōu)選路徑分離,查找相對于回溯所根據(jù)的全局優(yōu)選路徑的局部次優(yōu)路徑,獲取所述局部次優(yōu)路徑所在的全局路徑相對于全局最優(yōu)路徑的路徑度量差值,根據(jù)所述的路徑度量差值獲取全局優(yōu)選路徑,以及所述全局優(yōu)選路徑的譯碼數(shù)據(jù)。每獲取到一全局優(yōu)選路徑對應(yīng)的譯碼數(shù)據(jù),均對該譯碼數(shù)據(jù)進行差錯校驗,如果校驗結(jié)果表明,譯碼數(shù)據(jù)是正確的譯碼數(shù)據(jù),那么輸出該正確的譯碼數(shù)據(jù),否則繼續(xù)查找其他的全局優(yōu)選路徑。
進一步的,為了更加有利于譯碼過程的控制,避免由于卷積碼在傳輸信道中的干擾、衰減或者其他的原因,卷積碼數(shù)據(jù)本身不完整或者畸變嚴重,導(dǎo)致無法根據(jù)接收到的卷積碼,得到正確的譯碼數(shù)據(jù)。在這種情況下,通過根據(jù)一般情況需查找的全局優(yōu)選路徑的路徑總數(shù),并且在每次對當(dāng)前所獲取的全局優(yōu)選路徑對應(yīng)的譯碼數(shù)據(jù)進行差錯校驗時,如果當(dāng)前的譯碼數(shù)據(jù)仍然不是正確的譯碼數(shù)據(jù),則進一步,判斷當(dāng)前已獲取的全局優(yōu)選路徑的總數(shù),是否小于所預(yù)設(shè)的需查找的全局優(yōu)選路徑的總數(shù),如果小于,則繼續(xù)查找其他的全局優(yōu)選路徑,以及譯碼數(shù)據(jù);否則,結(jié)束譯碼,做出譯碼失敗的判決,以便通信系統(tǒng)做出數(shù)據(jù)重傳或其他的策略。
進一步的,根據(jù)每全局優(yōu)選路徑只在一段連續(xù)的時刻與全局最優(yōu)路徑相分離,在其他所有的時刻均重合于全局最優(yōu)路徑的特點,可以通過計算所回溯路徑所在的全局路徑的路徑度量,減全局最優(yōu)路徑的路徑度量,獲取所述局部次優(yōu)路徑所在的全局路徑相對于全局最優(yōu)路徑的度量差值。本方法由于只需要存儲全局最優(yōu)路徑的路徑度量、以及每全局優(yōu)選路徑的全局優(yōu)選路徑的路徑度量、以及各路徑的路徑寄存器值,因此本方法需要占用的存儲空間大大減少。
另外,還可以通過計算所回溯路徑與全局最優(yōu)路徑相分離的局部路徑的路徑度量,減全局最優(yōu)路徑與所回溯路徑相分離的局部路徑的路徑度量,獲取所述局部次優(yōu)路徑所在的全局路徑相對于全局最優(yōu)路徑的度量差值。本方法在與已知的全局優(yōu)選路徑分離后,在回溯的每時刻累計分支度量,并比較該時刻狀態(tài)點的狀態(tài)是否與全局最優(yōu)路徑上的相應(yīng)時刻的狀態(tài)點的狀態(tài)相同,如果不同,則繼續(xù)回溯,否則,表明回溯回到了全局最優(yōu)路徑上,停止回溯。計算所回溯路徑與全局最優(yōu)路徑相分離的局部路徑的路徑度量,將該路徑度量減去全局最優(yōu)路徑上相應(yīng)量值刻點之間的局部路的路徑度量,得到所述的度量差值。
為了讓本領(lǐng)域的技術(shù)人員更好的理解本發(fā)明的發(fā)明內(nèi)容,下面結(jié)合附圖以及具體實施例作進一步的詳細說明首先介紹本發(fā)明所根據(jù)的LVA的基本原理,圖1是LVA譯碼結(jié)構(gòu)示意圖,如圖示,首先從信道中接收到卷積碼,并對卷積碼進行解調(diào),將解調(diào)后的卷積碼輸入到LVA譯碼器,進行譯碼,獲取譯碼數(shù)據(jù),并對所獲取的譯碼數(shù)據(jù)進行循環(huán)冗余碼校驗(Cyclic Redundancy Check,簡稱CRC校驗),如果CRC校驗不正確,并且當(dāng)前的路徑號小于預(yù)設(shè)的需查找的全局優(yōu)選路徑的路徑總數(shù)L,則請求下一路徑,繼續(xù)進行LVA譯碼,獲取該下一路徑對應(yīng)的譯碼數(shù)據(jù);如果CRC校驗正確,則輸出譯碼;如果CRC校驗不正確,并且當(dāng)前的路徑號不小于預(yù)設(shè)的需查找的全局優(yōu)選路徑的路徑總數(shù)L,則結(jié)束譯碼,輸出譯碼失敗結(jié)果,系統(tǒng)可以根據(jù)該結(jié)果,做出重傳數(shù)據(jù)、前向糾錯、混合糾錯或者其他的通信控制策略。
圖2是本發(fā)明方法的流程示意圖,如圖示本方法包括以下的步驟步驟S201根據(jù)VA,獲取全局最優(yōu)路徑,獲取譯碼數(shù)據(jù),并存儲全局最優(yōu)路徑的路徑度量,以及路徑寄存器值。
VA實際上是對一階馬爾可夫過程的狀態(tài)序列進行最大似然估計的算法。任何有限狀態(tài)馬爾可夫過程可由網(wǎng)格圖來描述。為簡化實現(xiàn),通常將網(wǎng)格圖分解成基本組成單元蝶形圖,如圖3所示,圖3給出了1/n碼率的蝶形圖,圖1的左邊為起始節(jié)點,分別標(biāo)出狀態(tài)i和狀態(tài)i+N/2,這里N為總狀態(tài)數(shù),圖中分支上還標(biāo)出了分支度量BMi、-BMi,網(wǎng)格圖的各階段由N/2個這樣的蝶形圖組成。
VA是根據(jù)帶噪觀測值來確定網(wǎng)格圖的最大似然路徑,實現(xiàn)過程可以分為3部分,分支度量計算、狀態(tài)的路徑度量更新以及回溯。
分支度量計算是將各比特度量相加,而比特度量有最大似然函數(shù)導(dǎo)出。至于如何將各比特度量相加,及根據(jù)最大度量之還是最小度量來選擇幸存路徑,則取決于譯碼器輸入是硬判決還是軟判決。當(dāng)輸入硬判決時,分支度量就是漢明距離,且根據(jù)最小路徑來選擇幸存路徑;軟判決優(yōu)于硬判決,因為它提供額外的可靠性信息。軟判決輸入的分支度量是輸入符號(一個輸入符號定義為n個量化值組成的向量)以及分支輸出之間的歐氏距離經(jīng)簡化后得到,計算方法如下BMi=Σi=0NSDi×(2Xi-1)...(1)]]>其中,n為碼率倒數(shù),SDi為輸入符號的量化分量,Xi∈{0,1}為分支輸出。此時,根據(jù)最大路徑度量來選擇幸存路徑,給定輸入符號,式(1)只有2n種可能的值,由蝶形圖的對稱性,可知每個蝶形圖4條分支的分支度量絕對值相同,且與某狀態(tài)節(jié)點相連接的2條分支,其度量符號正好相反,利用這一特點,在每級的所有蝶形圖進行度量更新時,只需要計算2n-1個分支度量,從而大大降低分支度量的計算。分支度量直接存儲在寄存器中。
狀態(tài)的路徑度量更新按照蝶形圖一次進行,一次更新2個狀態(tài),如圖4所示,這種度量更新實際上是一個加選比(ACS)的過程,即先計算出匯入某狀態(tài)的2條分支的分支度量,在此基礎(chǔ)上,將2個分支度量分別與前面的狀態(tài)的路徑度量相加,比較2個相加的結(jié)果,如果輸入硬判決時,則選擇較小者存儲起來作為該狀態(tài)新的度量;而如果輸入軟判決時,選擇較大者存儲起來,作為該狀態(tài)新的路徑度量,狀態(tài)的路徑度量更新是VA運算量的最大部分。
回溯是由后往前從狀態(tài)轉(zhuǎn)移表中重構(gòu)信息比特的過程。在移動通訊系統(tǒng)中,比如GSM、3G網(wǎng)絡(luò),卷積編碼通常以“0”開始,并以“0”結(jié)束,因此其譯碼過程具體是,從末端的“0”狀態(tài),開始回溯,到始端的“0”狀態(tài)結(jié)束。而對于計算機系統(tǒng)中的,編碼長度不固定的卷積碼譯碼,即連續(xù)譯碼時,為了減少時延和節(jié)省內(nèi)存,回溯在處理完網(wǎng)格圖若干階段后進行。由卷積碼的性質(zhì),Nd階段后,S條幸存路徑將匯合在同一起始節(jié)點,一般取Nd=6×Ki,其中Ki為卷積編碼器的約束長度。這個共同起始節(jié)點之前的各節(jié)點均屬于最大似然路徑。
利用上述的VA原理,得到全局最優(yōu)路徑后,存儲全局最優(yōu)路徑的路徑度量以及路徑寄存器值,將存儲全局最優(yōu)路徑的路徑度量的存儲單元稱為第一度量存儲單元,將存儲全局最優(yōu)路徑的路徑寄存器值存儲單元稱為第一路徑寄存器值存儲單元。根據(jù)第一路徑寄存器值存儲單元所存儲的路徑寄存器值進行路徑回溯,獲取全局最優(yōu)路徑的譯碼數(shù)據(jù)。
步驟S202對所述的譯碼數(shù)據(jù)進行差錯校驗。
由于信號在信道中進行傳輸過程中,由于信道中的干擾以及衰減的存在,導(dǎo)致信號產(chǎn)生錯誤的可能性增加,為了保證信息傳遞的可靠性,往往通過差錯校驗,對通信過程進行差錯控制,現(xiàn)有的可以采用的差錯校驗的方法具體有CRC校驗、奇偶校驗、重復(fù)碼校驗、恒比碼校驗等。具體是在信道編碼時,在對信道傳輸數(shù)據(jù)進行編碼時,在數(shù)據(jù)中插入差錯校驗碼,使校驗碼與數(shù)據(jù)一起發(fā)送到信道接收端。信道接收端對所接收到的信號進行解調(diào),譯碼后,得到譯碼數(shù)據(jù),根據(jù)對信道編碼所采用不同的差錯校驗編碼方式,在對譯碼數(shù)據(jù)進行差錯校驗時,采用與信道編碼時相應(yīng)的差錯校驗方式。比如,如果在信道編碼時,采用的是CRC校驗碼,那么對譯碼進行差錯校驗時,相應(yīng)采用CRC校驗方式。
步驟S203根據(jù)差錯校驗結(jié)果,判斷譯碼是否正確,如果正確,則執(zhí)行步驟S205;否則執(zhí)行步驟S204。
步驟S204判斷當(dāng)前已知的全局優(yōu)選路徑的總數(shù)是否小于預(yù)設(shè)的全局優(yōu)選路徑的總數(shù),如果小于執(zhí)行步驟S205,否則返回步驟S207。
步驟S205分別根據(jù)各已知的全局優(yōu)選路徑回溯,分別在所述已知的全局優(yōu)選路徑的每個時刻與所述已知的全局優(yōu)選路徑分離,從所述的分離時刻開始,回溯查找相對于所述已知的全局優(yōu)選路徑的局部次優(yōu)路徑,在回溯過程中獲取所述局部次優(yōu)路徑所在的全局路徑相對于全局最優(yōu)路徑的度量差值,根據(jù)所述的度量差值,獲取另一全局優(yōu)選路徑,以及所獲取路徑對應(yīng)的譯碼數(shù)據(jù),并返回步驟S202。
在得到全局最優(yōu)路徑的基礎(chǔ)上,如果全局最優(yōu)路徑的譯碼數(shù)據(jù)差錯校驗結(jié)果為不正確,則根據(jù)全局最優(yōu)路徑的查找全局次優(yōu)路徑。具體是根據(jù)全局最優(yōu)路徑,每次回溯分別在全局最優(yōu)路徑上的不同的時刻,與全局最優(yōu)路徑分離,在分離時刻的前一時刻回溯到與全局最優(yōu)路徑上的狀態(tài)不同的另一狀態(tài)點上,從該點開始以及更前的時刻,根據(jù)VA按照全局最優(yōu)回溯,計算所回溯路徑所在的全局路徑相對于全局最優(yōu)路徑的度量的差值。分別以所有的時刻為分離時刻進行回溯后,根據(jù)各次回溯所獲取的各回溯路徑所在的全局路徑相對于全局最優(yōu)路徑的度量的差值,選取最小的差值作為全局次優(yōu)路徑,并獲取全局次優(yōu)路徑的譯碼數(shù)據(jù),返回步驟S202。如果步驟S202中對譯碼進行差錯校驗結(jié)果為不正確,并且所需要查找的路徑的總數(shù)大于當(dāng)前已知的全局優(yōu)選路徑的總數(shù),則進一步查找全局第三優(yōu)路徑。
同理,根據(jù)全局最優(yōu)路徑以及全局次優(yōu)路徑查找全局第三優(yōu)路徑以及全局第三優(yōu)路徑對應(yīng)的譯碼數(shù)據(jù)。對于全局第4優(yōu)第5優(yōu)等其他的全局優(yōu)選路徑同理進行獲取。
圖4是各全局優(yōu)選路徑的相互關(guān)系的示意圖,如圖示,卷積碼的長度是M,狀態(tài)個數(shù)是N,全局最優(yōu)路徑的路徑度量是LM。設(shè)全局最優(yōu)路徑與全局次優(yōu)路徑在時刻I到時刻(I+4)互相分離,全局第三優(yōu)路徑與全局最優(yōu)路徑在時刻(I-2)到時刻(I+4)互相分離,總之,所有的全局優(yōu)選路徑在一段連續(xù)的時刻段與全局最優(yōu)路徑相分離,在其他所有時刻重合于全局最優(yōu)路徑。
步驟S206輸出譯碼失敗結(jié)果,結(jié)束譯碼。
通信系統(tǒng)可以根據(jù)該譯碼失敗結(jié)果,執(zhí)行相應(yīng)的差錯控制策略,比如自動請求重發(fā)、前向糾錯或混合糾錯等。
步驟S207輸出該正確的譯碼數(shù)據(jù),結(jié)束譯碼。
以下就本發(fā)明的優(yōu)選實施方式進一步說明本發(fā)明方法實施例1圖5所示本實施例的方法流程圖,如圖示,包括以下步驟步驟S501初始化路徑號l=1,時刻j=1,需查找的路徑總數(shù)L,碼塊長度M。
步驟S502根據(jù)VA,獲取全局最優(yōu)路徑,獲取譯碼數(shù)據(jù),并存儲全局最優(yōu)路徑的路徑度量BM,以及路徑寄存器值。
步驟S503差錯校驗。
對獲取的譯碼數(shù)據(jù)進行差錯校驗,所采用的差錯校驗方法根據(jù)信號編碼時采用的差錯校驗編碼方式不同。
步驟S504如果步驟S503中的差錯校驗正確,則執(zhí)行步驟S513;否則進一步判決當(dāng)前的路徑號是否小于預(yù)設(shè)的需查找的路徑總數(shù)L,如果不小于L,則執(zhí)行步驟S513,如果小于L,則執(zhí)行步驟S505。
步驟S505l=l+1。
使路徑號加1,查找下一全局優(yōu)選路徑。
步驟S506確定時刻j的范圍時刻j大于等于ts,小于或等于并且te,其中ts表示時刻最小值,te表示時刻最大值,并初始化時刻j。
如果當(dāng)前的路徑號l不大于2,那么可知全局第(l-1)優(yōu)路徑即是全局最優(yōu)路徑,該情況下,時刻j的范圍是ts為碼塊的開始時刻時刻1,te為碼塊的最后時刻時刻M。
如果當(dāng)前的路徑號l大于2,那么將全局第(l-1)優(yōu)路徑與全局最優(yōu)路徑的分離點時刻作為te,將全局第(l-1)優(yōu)路徑與全局最優(yōu)路徑的合并點時刻作為ts。設(shè)當(dāng)前的路徑號l為3,如圖4所示,全局最優(yōu)路徑與全局次優(yōu)路徑的分離點為A對應(yīng)的時刻為時刻(i+4),全局最優(yōu)路徑與全局次優(yōu)路徑的合并點為E,對應(yīng)的時刻為時刻i,那么查找全局第3優(yōu)路徑時,所確定的時刻j的范圍為時刻i到時刻(i+4)。
初始化時刻j等于ts;或者,初始化時刻j等于te。
步驟S507更新時刻j。
更新時刻j,使時刻j等于另外一個不同的值,選取另一時刻為分離時刻,該更新原則,通常在選用以下兩種方案如果在初始化時刻中采用了初始化時刻j=ts,則令時刻j=j(luò)+1,采用時刻j遞增的方案;如果在初始化時刻中采用了初始化時刻j=te,的方式,則令時刻j=j(luò)-1,采用時刻j遞減的方案。
步驟S508根據(jù)全局第(l-1)優(yōu)路徑回溯,路徑回溯時,在時刻j的取與回溯所根據(jù)的已知全局優(yōu)選路徑不相同的另一路徑,記該時刻j點為路徑分離點jd,在j-1時刻及以后的路徑回溯按照最優(yōu)路徑回溯,回溯到碼塊的開始時刻停止回溯,并在整個回溯過程中每時刻累計分支度量,獲取回溯路徑的路徑度量BMj。
在本步驟中每回溯均由碼塊的最后時刻M,一直回溯到碼塊的開始時刻1為止,并在回溯的每一時刻累計分支度量,當(dāng)回溯到時刻1時,獲取到回溯路徑的全局路徑的路徑度量,設(shè)對應(yīng)時刻j為分離時刻回溯的路徑度量是BMj。
步驟S509計算度量差值δj=BMj-BM。
讀取步驟S502中獲取并存儲的全局最優(yōu)路徑的路徑度量BM,根據(jù)δj=BMj-BM,獲取以時刻j為分離時刻時的回溯路徑相對于全局最優(yōu)路徑的度量差值。
步驟S510比較并更新度量差值、以及該差值對應(yīng)的路徑寄存器值,存儲大于全局第(l-1)優(yōu)路徑相對于全局最優(yōu)路徑的路徑度量差值的所有差值中最小的(L-l+1)個度量差值,以及該差值對應(yīng)的路徑寄存器值。
在查找全局第l優(yōu)路徑時,將每獲取的差值與以存儲的差值相比較,并按照存儲大于全局第(l-1)優(yōu)路徑相對于全局最優(yōu)路徑的路徑度量差值的所有差值中最小的(L-l+1)個度量差值、以及該差值對應(yīng)的路徑寄存器值的原則進行更新所存儲的差值以及路徑寄存器值。
步驟S511判定時刻j是否在時刻步驟S506的范圍內(nèi)。
如果當(dāng)前的時刻j不在步驟S506所確定的時刻范圍內(nèi),即當(dāng)前時刻j小于ts,或者,當(dāng)前時刻j大于te,則執(zhí)行步驟S512;否則返回步驟S507。
一般的如果在步驟S506中,采用的是初始化j=ts,并且在步驟S507中采用時刻j=j(luò)+1的更新時刻j的方案,則在本步驟中只需比較j是否大于te即可;如果在步驟S506中,采用的是初始化j=te,并且在步驟S507中采用時刻j=j(luò)-1的更新時刻j的方案,則在本步驟中只需比較j是否小于ts即可。
步驟S512第(l-1)小的差值對應(yīng)的路徑即為全局第l優(yōu)路徑,獲取全局第l優(yōu)路徑對應(yīng)的譯碼數(shù)據(jù)。
所有存儲的差值中第(l-1)小的差值對應(yīng)的路徑即為全局第l優(yōu)路徑,獲取全局第l優(yōu)路徑對應(yīng)的譯碼數(shù)據(jù)后,返回步驟S503。
步驟S513輸出譯碼結(jié)果如果步驟S504中判定差錯校驗結(jié)果為正確,則輸出的譯碼結(jié)果是譯碼正確,并且輸出譯碼數(shù)據(jù),結(jié)束譯碼;如果步驟S504中判定差錯校驗錯誤,并且當(dāng)前路徑號不小于步驟S501中預(yù)設(shè)的需查找的路徑總回溯L,則輸出譯碼結(jié)果是譯碼失敗,結(jié)束譯碼。
值得說明的是在本實施例中由于在步驟S510中,除了存儲查找全局第l優(yōu)路徑所需要的大于全局第(l-1)優(yōu)路徑相對于全局最優(yōu)路徑的路徑度量差值的所有差值中最小的一個差值外,還預(yù)存了僅比該差值大的另外的(L-l)個差值,以備查找后續(xù)的全局優(yōu)選路徑使用,使得在查找全局第(l+1)優(yōu)路徑時,不需要重復(fù)根據(jù)已在查找全局第l優(yōu)路徑時回溯過的全局路徑,進行回溯查找,而只需要根據(jù)全局第l優(yōu)路徑,以該路徑上的與其他已知的全局優(yōu)選路徑狀態(tài)不相重合的時刻為分離時刻,進行回溯,并結(jié)合預(yù)存的度量差值以及各差值對應(yīng)的路徑寄存器值,查找即可獲取全局第(l+1)優(yōu)路徑。顯然,該預(yù)存機制節(jié)省了查找全局第(l+1)優(yōu)路徑的回溯查找次數(shù)。
本實施例的存儲空間分析在查找的路徑總數(shù)為L的情況下,本實施例需要占用的存儲單元為L個度量存儲單元,其中一個用于存儲最優(yōu)路徑度量,其它(L-1)個用于存儲路徑度量差值;以及M*N個用于存儲每時刻的每狀態(tài)的最優(yōu)路徑的路徑寄存器,以及L*M個用于存儲L個全局優(yōu)選路徑的路徑寄存器??梢姳緦嵤├鄬τ诂F(xiàn)有技術(shù)大大減少了存儲空間。
實施例2在實施例1中,在查找全局第l優(yōu)路徑時,采用了預(yù)存機制,該預(yù)存雖然可以減少查找全局第(l+1)優(yōu)路徑的回溯查找次數(shù),方便后續(xù)的全局優(yōu)選路徑的查找,但是相應(yīng)的增大了查找當(dāng)前第l優(yōu)路徑的數(shù)據(jù)計算量,特別是,如果當(dāng)前查找的全局第l路徑對應(yīng)的譯碼差錯校驗結(jié)果為正確時,則不再需要繼續(xù)查找后續(xù)的全局優(yōu)選路徑,該數(shù)據(jù)預(yù)存機制,不但不能起作用,反而增加了譯碼時間。
為此本實施例,提出了另外一種卷積碼譯碼方法,如圖6所示為本實施例的方法流程示意圖,如圖示,本方法包括以下步驟步驟S601初始化路徑號l=1,時刻j=1,需查找的路徑總數(shù)L,碼塊長度M。
步驟S602根據(jù)VA,獲取全局最優(yōu)路徑,獲取譯碼數(shù)據(jù),并存儲全局最優(yōu)路徑的路徑度量BM,以及路徑寄存器值。
步驟S603差錯校驗。
步驟S604如果步驟S603中的差錯判決正確,則執(zhí)行步驟S613;否則進一步判決當(dāng)前的路徑號是否小于預(yù)設(shè)的需查找的路徑總數(shù)L,如果不小于L,則執(zhí)行步驟S613,如果小于L,則執(zhí)行步驟S605。
步驟S605l=l+1。
上述的步驟S601、S602、S603、S605分別與實施例1中步驟、S502、S503、S505相同,因此在此不作贅述。
步驟S606確定j的范圍為大于1小于M的自然數(shù),其中M為卷積碼塊的開始化時刻j。
本步驟中可以采用兩種的初始化方式初始化時刻j等于碼塊的開始時刻1;或者,初始化時刻j等于碼塊的最后時刻M。
步驟S607更新時刻j。
更新時刻j,使時刻j等于另外一個不同的值,選取另一時刻為分離時刻,該更新原則,通常在選用以下兩種方案如果在初始化時刻中采用了初始化時刻j=1,則令時刻j=j(luò)+1,采用時刻j遞增的方案;如果在初始化時刻中采用了初始化時刻j=M,的方式,則令時刻j=j(luò)-1,采用時刻j遞減的方案。
步驟S608分別根據(jù)已知的全局優(yōu)選路徑回溯,路徑回溯時,在時刻j的狀態(tài)點取與回溯所根據(jù)的已知全局優(yōu)選路徑不相同的另一路徑,記該時刻j點為路徑分離點jd,在j-1時刻及以后的路徑回溯按照最優(yōu)路徑回溯,回溯到碼塊的開始時刻停止回溯,并在整個回溯過程中每時刻累計分支度量,獲取回溯路徑的路徑度量BMj。
本步驟與實施例步驟S508不同的是,在本實施例中每查找一全局優(yōu)選路徑,均分別根據(jù)已知的所有全局優(yōu)選路徑,以各路徑的時刻j為分離時刻分別進行回溯。其他同理于實施例1,每回溯均由碼塊的最后時刻M,一直回溯到碼塊的開始時刻1為止,并在回溯的每一時刻累計分支度量,當(dāng)回溯到時刻1時,獲取到回溯路徑的全局路徑的路徑度量,設(shè)對應(yīng)時刻j為分離時刻回溯的路徑度量是BMj。
步驟S609計算度量差值δj=BMj-BM。
讀取步驟S602中獲取并存儲的全局最優(yōu)路徑的路徑度量BM,根據(jù)δj=BMj-BM,獲取以時刻j為分離時刻時的回溯路徑相對于全局最優(yōu)路徑的度量差值。
步驟S610比較并更新度量差值、以及該差值對應(yīng)的路徑寄存器值,存儲大于全局第(l-1)優(yōu)路徑相對于全局最優(yōu)路徑的路徑度量差值的所有差值中最小的度量差值,以及該最小的度量差值對應(yīng)的路徑寄存器值。
在查找全局第l優(yōu)路徑時,將每獲取的差值與已存儲的差值相比較,如果該差值不大于在獲取全局第(l-1)優(yōu)路徑時已存儲的全局第(l-1)優(yōu)路徑相對于全局最優(yōu)路徑的路徑度量差值,則不作任何處理;否則,進一步比較該差值是否是在查找當(dāng)前全局第l優(yōu)路徑時所獲取的最小的度量差值,如果是,則存儲該差值以及該差值對應(yīng)路徑寄存器值??傊?,使最后所存儲的差值為大于全局第(l-1)優(yōu)路徑相對于全局最優(yōu)路徑的路徑度量差值的所有差值中最小的度量差值,所存儲的路徑寄存器值為該所存儲的差值所對應(yīng)的路徑寄存器值。
步驟S611判定時刻j是否在步驟S606所確定的時刻范圍內(nèi)。
如果當(dāng)前的時刻j不在步驟S606所確定的時刻范圍內(nèi),即當(dāng)前時刻j小于1,或者當(dāng)前時刻j大于M,則執(zhí)行步驟S612;否則返回步驟S607。
一般的如果在步驟606中,采用的是初始化j=1,并且在步驟S607中采用時刻j=j(luò)+1的更新時刻j的方案,則在本步驟中只需比較j是否大于M即可;如果在步驟S606中,采用的是初始化j=M,并且在步驟S607中采用時刻j=j(luò)-1的更新時刻j的方案,則在本步驟中只需比較j是否小于1即可。
步驟S612當(dāng)前同一l下,所獲取并最終存儲的度量差值對應(yīng)的路徑為全局第l優(yōu)路徑,獲取全局第l優(yōu)路徑對應(yīng)的譯碼數(shù)據(jù)。
當(dāng)前同一l下,所最終存儲的度量差值對應(yīng)的路徑為全局第l優(yōu)路徑,所最終存儲的路徑寄存器值為全局第l優(yōu)路徑的路徑寄存器值,根據(jù)路徑寄存器值進行回溯路徑,獲取全局第l優(yōu)路徑對應(yīng)的譯碼數(shù)據(jù)。返回步驟S603。
對度量差值的具體存儲,可以采用以下的方案每找到一個全局優(yōu)選路徑,并且該全局優(yōu)選路徑的路徑號大于2時,只存儲該路徑相對于全局最優(yōu)路徑的度量差值,釋放其他已知優(yōu)選路徑相對于全局優(yōu)選路徑的度量差值。采用該方法可以釋放無用的存儲內(nèi)容,進一步減少存儲空間,采用該方案,譯碼所需要占用的存儲空間是以需要查找到全局第L路徑為例3個路徑度量存儲單元,一個用于存儲全局最優(yōu)路徑的路徑度量,一個用于存儲全局第(L-1)優(yōu)路徑相對去于全局最優(yōu)路徑的度量差值,另一個用于存儲當(dāng)前L下存儲大于全局第(L-1)優(yōu)路徑相對去于全局最優(yōu)路徑的度量差值的所有差值中最小的差值;L個路徑寄存器存儲單元。
步驟S613輸出譯碼結(jié)果。
如果步驟S604中判定差錯校驗結(jié)果為正確,則輸出的譯碼結(jié)果是譯碼正確,并且輸出譯碼數(shù)據(jù),結(jié)束譯碼;如果步驟S604中判定差錯校驗錯誤,并且當(dāng)前路徑號不小于步驟S601中預(yù)設(shè)的需查找的路徑總回溯L,則輸出譯碼結(jié)果是譯碼失敗,結(jié)束譯碼。
實施例3如圖7所示為本實施例的方法流程示意圖,如圖示,本方法包括以下步驟步驟S701初始化路徑號l=1,時刻j=1,需查找的路徑總數(shù)L,碼塊長度M。
步驟S702根據(jù)VA,獲取全局最優(yōu)路徑,獲取譯碼數(shù)據(jù),并存儲全局最優(yōu)路徑上每時刻的累計度量,以及網(wǎng)格圖中所有每時刻、每狀態(tài)點的狀態(tài)。
步驟S703差錯校驗。
步驟S704如果校驗結(jié)果為正確或者路徑號大于L,則執(zhí)行步驟S713,否則執(zhí)行步驟S705。
步驟S705l=l+1。
步驟S706確定時刻j的范圍為大于時刻ts并小于時刻te,其中ts表示時刻最小值,te表示時刻最大值,初始化時刻j。
步驟S707更新時刻j。
步驟S701、S702、S703、S704、S705、S706、S707分別與實施例1中的步驟S501、S502、S503、S504、S505、S506、S507相同。
步驟S708根據(jù)全局第(l-1)優(yōu)路徑回溯,路徑回溯時,在時刻j的取與回溯所根據(jù)的已知全局優(yōu)選路徑不相同的另一路徑,記該時刻j點為路徑分離點jd,在j-1時刻及以后的路徑回溯按照最優(yōu)路徑回溯,并且在時刻j-1時刻及以后的回溯中,累計每時刻的分支度量,并且比較每時刻的路徑是否與全局最優(yōu)路徑上的相應(yīng)時刻點的狀態(tài)相同,如果不同,繼續(xù)回溯,如果相同,則記錄該時刻,記為合并點js,并停止回溯。計算所回溯路徑與全局最優(yōu)路徑的相分離的時刻到合并點時刻的局部路徑度量,記為BMjs。
設(shè)查找全局次優(yōu)路徑,以全局最優(yōu)路徑上的某時刻點為分離點,如圖4所示,設(shè)以時刻(i+4)的狀態(tài)點A為分離點,在時刻(i+3)以及以后的回溯中分別累計分支度量,并且比較每時刻的狀態(tài)是否與全局最優(yōu)路徑的相應(yīng)時刻的狀態(tài)點的狀態(tài)相同,設(shè)回溯到時刻i時,回溯的點的狀態(tài)與全局最優(yōu)路徑的時刻i的狀態(tài)相同,那么可知回溯回到了全局最優(yōu)路徑,記錄該點,設(shè)該點為點E,并停止回溯。顯然,回溯過程中,時刻(i+4)到時刻i分別累計分支度量,具體如圖示在時刻(i+3)狀態(tài)點B記錄了狀態(tài)點A到狀態(tài)點B的分支度量,設(shè)為Lab,時刻(i+2)時刻點C記錄了狀態(tài)點A到狀態(tài)點B再到狀態(tài)點C的路徑度量,設(shè)為Lac,時刻(i+1)狀態(tài)點D記錄了狀態(tài)點A經(jīng)由B、C、到狀態(tài)點D的路徑度量,設(shè)為Lad,時刻(i+1)狀態(tài)點E記錄了狀態(tài)點A經(jīng)由B、C、D到E的路徑度量,設(shè)為Lae。顯然,該所回溯路徑與全局最優(yōu)路徑的相分離的時刻到合并點時刻的局部路徑度量BMis為Lae。
設(shè)查找的全局優(yōu)選路徑的路徑號大于2,以查找全局第三優(yōu)路徑為例,其他路徑號大于3的路徑與查找全局第三優(yōu)路徑的情況相同。根據(jù)全局次優(yōu)路徑的路徑寄存存器回溯,以全局次優(yōu)路徑上的,并且狀態(tài)點與全局最優(yōu)路徑上的時刻為分離時刻,如圖4所示,設(shè)點A、B、C、D、E所在的路徑是全局次優(yōu)路徑,顯然查找全局第3優(yōu)路徑應(yīng)該以次優(yōu)路徑上的狀態(tài)點B、C、D對應(yīng)的時刻(i+3)、(i+2)、(i+1)分別為分離時刻的范圍。以時刻(i+2)為例進行說明根據(jù)全局次優(yōu)路徑的路徑寄存器回溯,到達時刻(i+2)后,在(i+1)時刻以及以后的路徑回溯,根據(jù)VA,按照最優(yōu)路徑回溯,并在每時刻比較當(dāng)前時刻回溯的狀態(tài)點的狀態(tài)是否與全局最優(yōu)路徑上的相應(yīng)時刻的狀態(tài)點的狀態(tài)相同,直到到達一與全局最優(yōu)路徑的相應(yīng)時刻點的狀態(tài)相同的狀態(tài)點為止,停止回溯。設(shè)一直回溯到時刻(i-2),回溯的狀態(tài)點與全局最優(yōu)路徑的時刻(i-1)的狀態(tài)點的狀態(tài)相同,即回溯到全局最優(yōu)路徑上。如圖4所示,設(shè)時刻(i+2)后,根據(jù)VA所回溯獲取的局部最優(yōu)路徑是C--F--G--H--I,在時刻(i+1)狀態(tài)點F獲取了從點C到F的分支度量,設(shè)為Lcf,在時刻i狀態(tài)點G獲取了從點C經(jīng)由點F到點G的路徑度量,設(shè)為Lcg,在時刻(i-1)狀態(tài)點H獲取了從點C經(jīng)由點F、G到點H的路徑度量,設(shè)為Lch,在時刻i狀態(tài)點I獲取的從點C經(jīng)由點F、G、H到點I的路徑度量,設(shè)為Lci。另外在查找全局次優(yōu)路徑時,分別存儲了A、B、C、D點的始于該次優(yōu)路徑與最優(yōu)路徑的分離點A的累計分支度量。因此該所回溯路徑與全局最優(yōu)路徑的相分離的時刻到合并點時刻的局部路徑度量BMjs可以通過BMjs=Lci+Lac獲取。
步驟S709計算度量差值δj=BMjs-BMjg,其中BMjg為全局最優(yōu)路徑在所回溯路徑與全局最優(yōu)路徑的分離時刻到合并點時刻,兩時刻之間的局部路徑度量。
根據(jù)步驟S702中存儲的全局最優(yōu)路徑的各時刻的累計度量,獲取兩時刻的累計度量,設(shè)分離時刻為時刻h,該點的累計度量為BMh,合并時刻為k,該點的累計度量為BMk,那么將全局最優(yōu)路徑時刻h對應(yīng)的累計度量減去時刻h的累計度量獲取全局全局最優(yōu)路徑上,分離時刻到合并時刻之間的局部路徑的累計度量即BMjg=BMh-BMk。
再根據(jù)δj=BMjs-BMjg,獲取所需的度量差值。
步驟S710比較并更新度量差值、以及該差值對應(yīng)的路徑寄存器值,存儲大于全局第(l-1)優(yōu)路徑相對于全局最優(yōu)路徑的路徑度量差值的所有差值中最小的(L-l+1)個度量差值,以及該差值對應(yīng)的路徑寄存器值。
在查找全局第l優(yōu)路徑時,將每獲取的差值與以存儲的差值相比較,并按照存儲大于全局第(l-1)優(yōu)路徑相對于全局最優(yōu)路徑的路徑度量差值的所有差值中最小的(L-l+1)個度量差值、以及該差值對應(yīng)的路徑寄存器值的原則進行更新所存儲的差值以及路徑寄存器值。
步驟S711判定j是否在時刻范圍內(nèi)。
如果當(dāng)前的時刻j不在步驟S706所確定的時刻范圍內(nèi),即當(dāng)前時刻j小于ts,或者當(dāng)前時刻j大于te,則執(zhí)行步驟S712;否則返回步驟S707。
一般的如果在步驟S706中,采用的是初始化j=ts,并且在步驟S507中采用時刻j=j(luò)+1的更新時刻j的方案,則在本步驟中只需比較j是否大于te即可;如果在步驟S506中,采用的是初始j=te,并且在步驟S707中采用時刻j=j(luò)-1的更新時刻j的方案,則在本步驟中只需比較j是否小于ts即可。
步驟S712第(l-1)小的差值對應(yīng)的路徑即為全局第l優(yōu)路徑,獲取全局第l優(yōu)路徑對應(yīng)的譯碼數(shù)據(jù)。
所有存儲的差值中第(l-1)小的差值對應(yīng)的路徑即為全局第l優(yōu)路徑,獲取全局第l優(yōu)路徑對應(yīng)的譯碼數(shù)據(jù)后,返回步驟S503。
步驟S713輸出譯碼結(jié)果如果步驟S704中判定差錯校驗結(jié)果為正確,則輸出的譯碼結(jié)果是譯碼正確,并且輸出譯碼數(shù)據(jù),結(jié)束譯碼;如果步驟S704中判定差錯校驗錯誤,并且當(dāng)前路徑號不小于步驟S701中預(yù)設(shè)的需查找的路徑總回溯L,則輸出譯碼結(jié)果是譯碼失敗,結(jié)束譯碼。
可見,本實施例采用了與實施例1相同的數(shù)據(jù)預(yù)存機制,有利于減少查找后續(xù)其他全局優(yōu)選路徑所需要的回溯查找次數(shù)。但是,更重要的是,本實施例相對于實施例1、2,對計算所回溯路徑所在的全局路徑相對于全局最優(yōu)路徑的度量差值,采用了不同的計算方法,本實施例通過計算所回溯路徑與全局最優(yōu)路徑不相重合局部路徑的度量,減去,全局最優(yōu)路徑與所回溯路徑不相重合局部路徑的度量而獲取。采用本實施例所述的方法,相對于實施例1、2可以減少回溯過程中不必要的度量計算,減少每次回溯的速度。
由上面的描述可見,設(shè)對于長度為M,狀態(tài)數(shù)為N的卷積碼,并且需要查找的優(yōu)選路徑的總數(shù)為L,本實施例所需要的存儲空間如下M*N個用于存儲每時刻的每狀態(tài)的狀態(tài)存儲單元;當(dāng)然其中包括全局最優(yōu)路徑的各時刻的狀態(tài)點的狀態(tài);M*N個用于存儲每時刻的每狀態(tài)點的最優(yōu)路徑的路徑寄存器,L*M個用于存儲L個全局優(yōu)選路徑的路徑寄存器;最多L*M個度量存儲單元,其中M個用于存儲全局最優(yōu)路徑的各時刻的累計度量,其他的用于存儲在查找全局優(yōu)選路徑中所獲取的累計度量以及度量差值??梢姳緦嵤├m然相對實施例1和2需要占用更多的存儲空間,但是相對于現(xiàn)有技術(shù)而言,仍然大大減少了需占用的存儲空間。
實施例4如圖8所示為本實施例的方法流程示意圖,如圖示,本方法包括以下步驟步驟S801初始化路徑號l=1,時刻j=1,需查找的路徑總數(shù)L,碼塊長度M。
步驟S802根據(jù)VA,獲取全局最優(yōu)路徑,獲取譯碼數(shù)據(jù),并存儲全局最優(yōu)路徑的路徑度量BM,以及路徑寄存器值。
步驟S803差錯校驗。
步驟S804如果校驗結(jié)果為正確或者路徑號大于L,則執(zhí)行步驟S813,否則執(zhí)行步驟S805。
步驟S805l=l+1。
步驟S806確定時刻j的范圍為1<=j(luò)<=M,其中M為卷積碼塊的最后時刻,初始化時刻j。
步驟S807更新時刻j。
步驟S801、S802、S803、S805、S806分別與實施例2中的S601、S602、S603、S605、S606、S607相同。
步驟S808根據(jù)已知的全局優(yōu)選路徑回溯,路徑回溯時,在時刻j的取與回溯所根據(jù)的已知全局優(yōu)選路徑不相同的另一路徑,記該時刻j點為路徑分離點jd,在j-1時刻及以后的路徑回溯按照最優(yōu)路徑回溯,并且在時刻j-1時刻及以后的回溯中,累計每時刻的分支度量,并且比較每時刻的路徑是否與全局最優(yōu)路徑上的相應(yīng)時刻點的狀態(tài)相同,如果不同,繼續(xù)回溯,如果相同,則記錄該時刻,記為合并點js,并停止回溯。計算所回溯路徑與全局最優(yōu)路徑的相分離的時刻到合并點時刻的局部路徑度量,記為BMjs。
本步驟與實施例3不同之處在于,實施例3中只需要根據(jù)全局第(l-1)由路徑回溯即可,本實施例中,除了需要根據(jù)全局第(l-1)由路徑回溯之外,還需要分別根據(jù)其他已知的全局優(yōu)選路徑回溯。
BMjs的獲取方法與實施例3中相同。
步驟S809計算度量差值δj=BMjs-BMjg,其中BMjg為全局最優(yōu)路徑在所回溯路徑與全局最優(yōu)路徑的分離時刻到合并點時刻,兩時刻之間的局部路徑度量。
本步驟與實施例3中的步驟S709相同。
步驟S810比較并更新度量差值、以及該差值對應(yīng)的路徑寄存器值,存儲大于全局第(l-1)優(yōu)路徑相對于全局最優(yōu)路徑的路徑度量差值的所有差值中最小度量差值,以及該差值對應(yīng)的路徑寄存器值。
在查找全局第l優(yōu)路徑時,將每獲取的差值與已存儲的差值相比較,如果該差值不大于在獲取全局第(l-1)優(yōu)路徑時已存儲的全局第(l-1)優(yōu)路徑相對于全局最優(yōu)路徑的路徑度量差值,則不作任何處理;否則,進一步比較該差值是否是,在查找當(dāng)前全局第l優(yōu)路徑時,所獲取的最小的度量差值,如果是則存儲該差值以及該差值對應(yīng)路徑寄存器值??傊棺詈笏鎯Φ牟钪禐榇笥谌值?l-1)優(yōu)路徑相對于全局最優(yōu)路徑的路徑度量差值的所有差值中最小的度量差值,所存儲的路徑寄存器值為該所存儲的差值所對應(yīng)的路徑寄存器值。
步驟S811判定j是否在時刻范圍內(nèi)。
如果當(dāng)前的時刻j不在步驟S806所確定的時刻范圍內(nèi),即當(dāng)前時刻j小于1,或者當(dāng)前時刻j大于M,則執(zhí)行步驟S812;否則返回步驟S807。
一般的如果在步驟S806中,采用的是初始化j=1,并且在步驟S807中采用時刻j=j(luò)+1更新時刻j的方案,則在本步驟中只需比較j是否大于M即可;如果在步驟S806中,采用的是初始j=M,并且在步驟S807中采用時刻j=j(luò)-1更新時刻j的方案,則在本步驟中只需比較j是否小于1即可。
步驟S812第(l-1)小的差值對應(yīng)的路徑即為全局第l優(yōu)路徑,獲取全局第l優(yōu)路徑對應(yīng)的譯碼數(shù)據(jù)。
所有存儲的差值中第(l-1)小的差值對應(yīng)的路徑即為全局第l優(yōu)路徑,獲取全局第l優(yōu)路徑對應(yīng)的譯碼數(shù)據(jù)后,返回步驟S803。
步驟S813輸出譯碼結(jié)果如果步驟S804中判定差錯校驗結(jié)果為正確,則輸出的譯碼結(jié)果是譯碼正確,并且輸出譯碼數(shù)據(jù),結(jié)束譯碼;如果步驟S804中判定差錯校驗錯誤,并且當(dāng)前路徑號不小于步驟S801中預(yù)設(shè)的需查找的路徑總回溯L,則輸出譯碼結(jié)果是譯碼失敗,結(jié)束譯碼。
可見,本實施例的基本方法與實施例3基本相同,所不同的是,本實施例在查找全局第l優(yōu)路徑過程中,只存儲全局第l優(yōu)路徑所需要的度量差值δj,相對減少了當(dāng)前全局優(yōu)選路徑查找的計算復(fù)雜度,但是,如果對當(dāng)前路徑的譯碼差錯校驗不正確時,那么在查找后續(xù)的路徑時,需要根據(jù)所有已知的全局優(yōu)選路徑,分別以各路徑的各時刻為分離時刻進行回溯查找,相對增加了回溯查找的次數(shù)。
可以根據(jù)實際情況,選用不同的方法,比如,對于信道良好的環(huán)境下,建議選用本實施例的方法,對于信道良好的環(huán)境下,選用實施例3所述的方法由上面的描述可見,設(shè)對于長度為M,狀態(tài)數(shù)為N的卷積碼,并且需要查找的優(yōu)選路徑的總數(shù)為L,本實施例所需要的存儲空間基本與實施例3相同。
以上對本發(fā)明所提供的一種卷積碼譯碼方法進行了詳細介紹,本文中應(yīng)用了具體個例對本發(fā)明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時,對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實施方式
及應(yīng)用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對本發(fā)明的限制。
權(quán)利要求
1.一種卷積碼譯碼方法,其特征是,包括以下步驟A、根據(jù)維特比算法,獲取全局最優(yōu)路徑,獲取譯碼數(shù)據(jù),并存儲全局最優(yōu)路徑的路徑度量;B、對所述的譯碼數(shù)據(jù)進行差錯校驗,如果差錯校驗正確,則輸出譯碼,結(jié)束譯碼,否則執(zhí)行步驟C;C、分別根據(jù)各已知的全局優(yōu)選路徑回溯,分別在所述已知的全局優(yōu)選路徑的每個時刻與所述已知的全局優(yōu)選路徑分離,從所述的分離時刻開始,回溯查找相對于所述已知的全局優(yōu)選路徑的局部次優(yōu)路徑,在回溯過程中獲取所述局部次優(yōu)路徑所在的全局路徑相對于全局最優(yōu)路徑的度量差值,根據(jù)所述的度量差值,獲取一全局優(yōu)選路徑,以及所獲取路徑對應(yīng)的譯碼數(shù)據(jù),返回步驟B。
2.根據(jù)權(quán)利要求1所述的卷積碼譯碼方法,其特征是,所述步驟B進一步包括以下步驟B1、如果差錯校驗不正確,進一步比較已知的全局優(yōu)選路徑數(shù)目是否小于預(yù)設(shè)的需查找全局優(yōu)選路徑的總數(shù)目,如果小于,則執(zhí)行步驟C;否則輸出譯碼失敗的結(jié)果,結(jié)束譯碼。
3.根據(jù)權(quán)利要求1或2所述的卷積碼譯碼方法,其特征是,所述步驟A進一步存儲所述全局最優(yōu)路徑的每個時刻的狀態(tài)點的狀態(tài)。
4.根據(jù)權(quán)利要求3所述的卷積碼譯碼方法,其特征是,所述步驟A進一步包括A2、在全局最優(yōu)上的每個時刻,累計并存儲從所述全局最優(yōu)路徑的開始時刻的狀態(tài)點到所述的每個時刻的狀態(tài)點的路徑度量。
5.根據(jù)權(quán)利要求4所述的卷積碼譯碼方法,其特征是,步驟C中所述的度量差值的獲取,具體為回溯路徑與全局最優(yōu)路徑相分離的局部路徑的度量減全局最優(yōu)路徑與所回溯路徑相分離的局部路徑的度量,獲取所述的度量差值。
6.根據(jù)權(quán)利要求5所述的卷積碼譯碼方法,其特征是,所述步驟C具體包括以下步驟C11、l累加1,其中所述l為一大于0,小于所預(yù)設(shè)的需查找的全局優(yōu)選路徑的總數(shù),并初始化為l=1的自然數(shù)變量;C12、預(yù)設(shè)時刻變量j,并確定時刻j的范圍,初始化時刻j;C13、分別根據(jù)各已知的全局優(yōu)選路徑的路徑寄存器值回溯,并在回溯到時刻j后,取與回溯所根據(jù)的已知全局優(yōu)選路徑不相同的另一路徑;C14、在時刻(j-1)的狀態(tài)點及以后的回溯,按照最優(yōu)路徑回溯,并在回溯的每個時刻,累計并存儲分支度量,并比較狀態(tài)是否與全局最優(yōu)路徑在所述時刻的狀態(tài)相同,如果相同,則停止回溯,獲取所回溯路徑與全局最優(yōu)路徑分離時刻與停止回溯時刻之間的,所回溯路徑上的局部路徑相對于全局最優(yōu)路徑上的局部路徑的度量差值,如果j在所述步驟C12所設(shè)定的范圍內(nèi),則更新時刻j,并返回步驟C13;如果j不在所述步驟C12所設(shè)定的范圍內(nèi),根據(jù)所獲取的差值,獲取全局第l優(yōu)路徑,以及全局第l優(yōu)路徑的譯碼數(shù)據(jù),返回步驟B。
7.根據(jù)權(quán)利要求6所述的卷積碼譯碼方法,其特征是,步驟C14中所述的度量差值的獲取,具體包括以下步驟C141、如果當(dāng)前回溯所根據(jù)的全局優(yōu)選路徑是全局最優(yōu)路徑,所述的差值等于停止回溯時刻相對于時刻j的累計分支度量,減去,全局最優(yōu)路徑上的時刻j的累計分支度量與所述停止回溯所在時刻的狀態(tài)點的累計分支度量之差;否則,所述差值等于停止回溯時刻相對于時刻j的累計分支度量,加上,當(dāng)前回溯所根據(jù)的全局優(yōu)選路徑在時刻j的狀態(tài)點的累計分支度量,減去,全局最優(yōu)路徑上的時刻j的累計分支度量與所述停止回溯時刻的累計分支度量之差。
8.根據(jù)權(quán)利要求1或2所述的卷積碼譯碼方法,其特征是,步驟C中所述的度量差值的獲取,具體為所回溯路徑所在的全局路徑的路徑度量,減全局最優(yōu)路徑的度量,獲取所述的度量差值。
9.根據(jù)權(quán)利要求8所述的卷積碼譯碼方法,其特征是,所述步驟C具體包括以下步驟C21、l=l+1,其中l(wèi)為一大于0小于所預(yù)設(shè)的需查找的全局優(yōu)選路徑的總數(shù),并初始化l=1的自然數(shù)變量;C22、設(shè)置一自然數(shù)變量j,初始化時刻j;C23、分別根據(jù)各已知的全局優(yōu)選路徑的路徑寄存器值回溯,在回溯的每個時刻累計分支度量,并在回溯到時刻j時,取與回溯所根據(jù)的已知全局優(yōu)選路徑不相同的另一路徑;C24、在時刻(j-1)的狀態(tài)點及以后的回溯,按照最優(yōu)路徑回溯,一直回溯到卷積碼的開始時刻,獲取所回溯路徑的路徑度量,計算獲取所回溯路徑與全局最優(yōu)路徑的路徑度量差值,如果時刻j在卷積碼的時刻范圍內(nèi),則更新時刻j,返回步驟C23;根據(jù)所獲取的差值,獲取全局第l優(yōu)路徑,以及所述的全局第l優(yōu)路徑的譯碼數(shù)據(jù),返回步驟B。
10.根據(jù)權(quán)利要求7或9所述的卷積碼譯碼方法,其特征是,所述的根據(jù)所獲取的差值,獲取全局第l優(yōu)路徑,具體包括以下步驟C3、從所獲取的差值中選取,大于全局第(l-1)優(yōu)路徑相對于全局最優(yōu)路徑的路徑度量之差的差值,進一步的,在所有大于全局第(l-1)優(yōu)路徑相對于全局最優(yōu)路徑的路徑度量之差的所有差值中,選取最小的差值,所述最小的差值對應(yīng)的路徑是全局第l優(yōu)路徑。
11.根據(jù)權(quán)利要求10所述的卷積碼譯碼方法,其特征是,步驟C3進一步包括以下步驟C31、將所獲取的度量差值與已存儲的度量差值相比較,存儲大于全局第(l-1)優(yōu)路徑相對于全局最優(yōu)路徑的路徑度量差值的所有差值中最小的(L-l+1)個度量差值,以及該差值對應(yīng)的路徑寄存器值,其中L為所預(yù)設(shè)的需查找的全局優(yōu)選路徑的總數(shù)。
12.根據(jù)權(quán)利要求11所述的卷積碼譯碼方法,其特征是,所述的根據(jù)所述的度量差值,獲取全局第l優(yōu)路徑,具體是所有存儲的度量差值中第(l-1)小的度量差值對應(yīng)的路徑即為全局第l優(yōu)路徑。
13.根據(jù)權(quán)利要求10所述的卷積碼譯碼方法,其特征是,步驟C3進一步包括以下步驟C32、將所獲取的度量差值與已存儲的度量差值相比較,存儲大于全局第(l-1)優(yōu)路徑相對于全局最優(yōu)路徑的路徑度量差值的所有差值中最小的度量差值,以及該差值對應(yīng)的路徑寄存器值。
14.根據(jù)權(quán)利要求13所述的卷積碼譯碼方法,其特征是,所述的根據(jù)所述的度量差值獲取全局第l優(yōu)路徑,具體是所獲取并存儲的度量差值對應(yīng)的路徑為全局第l優(yōu)路徑。
15.根據(jù)權(quán)利要求6或9所述的卷積碼譯碼方法,其特征是,所述初始化時刻j,具體是使時刻j等于時刻范圍內(nèi)最小的時刻。
16.根據(jù)權(quán)利要求15所述的卷積碼譯碼方法,其特征是,所述的更新時刻j,具體是使時刻j遞增。
17.根據(jù)權(quán)利要求6或9所述的卷積碼譯碼方法,其特征是,所述初始化時刻j,具體是使時刻j等于時刻范圍內(nèi)最大的時刻。
18.根據(jù)權(quán)利要求17所述的卷積碼譯碼方法,其特征是,所述的更新時刻j,具體是使時刻j遞減。
全文摘要
一種卷積碼譯碼方法,包括以下步驟根據(jù)維特比算法,獲取全局最優(yōu)路徑,獲取譯碼數(shù)據(jù);對已獲取的譯碼數(shù)據(jù)進行差錯校驗,如果所述的譯碼為正確的譯碼,則輸出譯碼,結(jié)束譯碼,否則繼續(xù)查找其他的全局優(yōu)選路徑以及譯碼數(shù)據(jù),查找方法是分別根據(jù)已知的全局優(yōu)選路徑回溯,分別在每個全局優(yōu)選路徑的每個時刻與所根據(jù)的全局優(yōu)選路徑分離,查找相對于回溯所根據(jù)的全局優(yōu)選路徑的局部次優(yōu)路徑,獲取所述局部次優(yōu)路徑所在的全局路徑相對于全局最優(yōu)路徑的度量的差值,根據(jù)所述的度量的差值獲取一全局優(yōu)選路徑,以及所獲取路徑對應(yīng)的譯碼數(shù)據(jù)。對譯碼數(shù)據(jù)進行差錯校驗,如果校驗不正確,則繼續(xù)查找其他的全局優(yōu)選路徑。
文檔編號H03M13/41GK1968024SQ20061008751
公開日2007年5月23日 申請日期2006年6月13日 優(yōu)先權(quán)日2006年6月13日
發(fā)明者徐昌平 申請人:華為技術(shù)有限公司