專利名稱:低密度奇偶校驗碼的譯碼方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及譯碼技術(shù),尤其涉及一種基于低密度奇偶校驗碼的譯碼技術(shù)。
背景技術(shù):
信道編碼技術(shù)是移動通信系統(tǒng)不可或缺的 一項關(guān)鍵技術(shù),而信道編碼技術(shù)
中的LDPC ( Low Density Parity Check,低密度奇偶校驗)碼則被普遍認為具有 比以往的信道編碼方法更優(yōu)越的性能,并且在第四代移動通信系統(tǒng)的研究中得 到了應用,LDPC碼可以用生成矩陣或校驗矩陣來表征。
LDPC碼是一種比較特殊的線性分組碼,特殊性就在于它的奇偶校驗矩陣 中1的數(shù)目遠遠小于0的數(shù)目,稱為稀疏性,也稱為低密度。LDPC碼的譯碼主 要是通過校驗節(jié)點消息和變量節(jié)點消息的更新和相互間的傳遞實現(xiàn)的?,F(xiàn)有技 術(shù)中有多種LDPC譯碼算法,比如加權(quán)比特翻轉(zhuǎn)譯碼算法。
然而,在實現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有的LDPC加權(quán)比特翻轉(zhuǎn)譯 碼算法至少存在如下問題在初始化的時候用各碼字的接收信號幅度作為相關(guān) 變量節(jié)點的可靠度,這些數(shù)值在迭代譯碼過程中保持固定。事實上,隨著一部 分錯誤比特在譯碼中被糾正,這些比特應該變得更加可靠,而原先固定的數(shù)值 已經(jīng)不能準確反映其真實的可靠度,這在一定程度上影響了最終的譯碼性能。
發(fā)明內(nèi)容
本發(fā)明實例提供了一種低密度奇偶校驗碼譯碼方法及其裝置,可以有效提 高目前譯碼算法的性能。本發(fā)明實施例提供了 一種低密度奇偶校驗碼譯碼方法,該方法主要包括 在迭代過程中,對滿足預設條件的翻轉(zhuǎn)函數(shù)對應的變量節(jié)點進行翻轉(zhuǎn); 根據(jù)預設的參數(shù)修正被翻轉(zhuǎn)的變量節(jié)點的可靠度;
根據(jù)至少部分由翻轉(zhuǎn)后的變量節(jié)點組成的序列,確定校驗子序列,以便輸 出譯碼結(jié)果。
本發(fā)明實施例還提供了 一種低密度奇偶校驗碼譯碼裝置,該裝置主要包
括
翻轉(zhuǎn)單元,用于在迭代過程中,對滿足預設條件的翻轉(zhuǎn)函數(shù)對應的變量節(jié) 點進行翻轉(zhuǎn);
修正單元,用于修正所述翻轉(zhuǎn)單元中被翻轉(zhuǎn)的變量節(jié)點的可靠度; 校驗子序列確定單元,用于根據(jù)翻轉(zhuǎn)后的變量節(jié)點序列確定校驗子序列,
以便輸出譯碼結(jié)果。
由此可以看出,本發(fā)明實施例提供的方法和裝置,通過對翻轉(zhuǎn)后的變量節(jié)
點的可靠度進行修正,可以使得計算得到的翻轉(zhuǎn)函數(shù)更加真實反映相關(guān)比特的
正誤,從而提高譯碼性能。
圖1為本發(fā)明一實施例的辭,碼方法流程圖; 圖2為本發(fā)明一實施例的譯碼方法流程圖; 圖3為本發(fā)明一實施例的譯碼方法的仿真結(jié)果圖; 圖4為本發(fā)明一實施例的譯碼裝置的結(jié)構(gòu)示意圖。
具體實施例方式
在對本發(fā)明具體實施方式
提供的方案進行詳細描述之前,首先對各實施例
中將出現(xiàn)的概念和符號進行說明
低密度奇偶校驗碼采用迭代譯碼算法,發(fā)送端發(fā)送的碼序列 C = {c ,"e[U\n},其中N為序列長度,經(jīng)二相移相鍵控BPSK調(diào)制后,為發(fā)送 信號序列X = {x = 1 -2c , w e [1,iV]},序列Z經(jīng)過零均值方差為ex2的高斯白噪聲信 道發(fā)送后,在接收端接收到接收信號序列r = {;; |凡=jc +z ,we[l,AH},Z : 〃(0,c72)
對接收序列Y做符號硬判,得到序列『。={《《, .《},其中H=1, '/;;">C)。
校驗矩陣HMxN = [hm,n ]對應的二分圖變量節(jié)點集合為V = {v ," e [1,AH},校驗節(jié)點 集合為S = {sm,me[l,M]};定義變量節(jié)點Vn參與的校驗節(jié)點集合為 A(n) = {j,hjn=l},其中集合元素個數(shù)為lA(n)l;定義包含于校驗節(jié)點Sm的變量節(jié) 點集合為B(m)^j,lv,-l),其中集合元素個數(shù)為lB(m)l;定義校驗節(jié)點集合A(n) 中去除校驗節(jié)點Sm的節(jié)點集合為A(n"m;定義變量節(jié)點集合B(m)中去除變量 節(jié)點vn的節(jié)點集合為B(m) \ n 。
本發(fā)明一實施例提供了一種低密度奇偶校驗碼的譯碼方法,如圖l所示, 該方法主要包i舌
SlOl,在迭代過程中,對滿足預設條件的翻轉(zhuǎn)函數(shù)對應的變量節(jié)點進行翻
轉(zhuǎn);
在每次迭代中,需要對滿足預設條件的翻轉(zhuǎn)函數(shù)對應的變量節(jié)點進行翻 轉(zhuǎn),比如說可以對翻轉(zhuǎn)函數(shù)最大的變量節(jié)點進行翻轉(zhuǎn)。
S102,根據(jù)預設的參數(shù)修正被翻轉(zhuǎn)的變量節(jié)點的可靠度; 其中,根據(jù)預設的參數(shù)修正被翻轉(zhuǎn)的變量節(jié)點的可靠度可以有多種方式, 比如,將所述被翻轉(zhuǎn)的變量節(jié)點的可靠度加上該預設的參數(shù)或者將所述被翻轉(zhuǎn)
的變量節(jié)點的可靠度乘以該預設的參數(shù)。 一般情況下,每種方式下,該預設參 數(shù)的取值是不一樣的。
S103,根據(jù)至少部分由翻轉(zhuǎn)后的變量節(jié)點組成的序列,確定校驗子序列, 以便輸出譯碼結(jié)果。
當確定的校驗子序列或者迭代次數(shù)滿足迭代終止條件時,可以根據(jù)確定的 校驗子序列輸出譯碼結(jié)果。
下面將通過具體的實現(xiàn)方式進行具體說明。
本發(fā)明一實施例提供了一種低密度奇偶校驗碼的譯碼方法,如圖2所示, 該方法主要包4舌
S201,在第k次迭代中,對滿足預設條件的翻轉(zhuǎn)函數(shù)對應的變量節(jié)點進行 翻轉(zhuǎn)。
定義迭代次數(shù)為k, k為非負整數(shù)。根據(jù)各個校驗節(jié)點的權(quán)重&和各變量
節(jié)點的可靠度^;獲取各個變量節(jié)點的翻轉(zhuǎn)函數(shù)//, "e[l,7V],例如,對于修正加 權(quán)比特翻轉(zhuǎn)MWBF 算法,其翻轉(zhuǎn)函數(shù)的計算方式為
/",層s尸=Z (2sm -1)麥附,層5F -^8T" 帳,
其中,《表示第k次迭代中的校驗節(jié)點集合,"的具體數(shù)值是靠仿真決定, 該系數(shù)可以提高譯碼性能。
對于迭代次數(shù)bo的情況,也就是初始迭代時,根據(jù)符號硬判序列『。和
轉(zhuǎn)置的校驗矩陣/T計算初始校驗子序列S。,即<formula>formula see original document page 7</formula>,其中mod2
表示對2取模運算。接著,獲取S。各個校驗節(jié)點的權(quán)重^, me[l,M]。對于 MWBF算法,、應^minl;;"l,在初始迭代中,各個變量節(jié)點的可靠度
C +丄"e[l,iV]。
接著,根據(jù)獲取的翻轉(zhuǎn)函數(shù),對滿足預設條件的翻轉(zhuǎn)函數(shù)對應的變量節(jié)點 進行翻轉(zhuǎn),比如,可以對翻轉(zhuǎn)函數(shù)最大的變量節(jié)點《皿進行翻轉(zhuǎn)。對于MWBF
算法,"鵬可以表示為"咖-argmaxy;M,。對"腿進行翻轉(zhuǎn)可以表示為.' =1<1 Al ,即為將節(jié)點w,對應的變量節(jié)點和1做異或運算。 S202,修正被翻轉(zhuǎn)的變量節(jié)點的可靠度。
隨著一部分錯誤變量節(jié)點在譯碼中被糾正,這些變量節(jié)點應該變得更加可 靠,而原先固定的數(shù)值已經(jīng)不能準確反映其真實的可靠度,因此需要根據(jù)預設 的參數(shù)對被翻轉(zhuǎn)的變量節(jié)點的可靠度進行修正。修正的方法有多種,比如增大 或減小原可靠度的取值。而一般情況下, 一個錯誤的比特被翻轉(zhuǎn)后,其可靠度 是增大的,增大可靠度的方式也有多種,比如直接加上一個因子,或者乘以一 個系數(shù)。該因子和系數(shù)都是預設的參數(shù),兩者的取值一般是不一樣的,可以根 據(jù)仿真結(jié)果確定。以給可靠度直接加上一個因子對修正變量節(jié)點的可靠度為 例r'=r +<5,其中,,為修正后的可靠度,^為被翻轉(zhuǎn)的變量節(jié)點的
"max "max "max "max
可靠度,3為可靠度的增加因子,其取值可以根據(jù)仿真的結(jié)果確定。對于確定 的校驗矩陣,3的取值是固定的,且在各次迭代中,對需要修改可靠度的變量 節(jié)點可以都用這個值。而對于不同的校驗矩陣,最佳的5的取值會有不同。而 對于減小可靠度的方式與增大可靠度的方式基本相同,即也可以通過加上一個 因子或乘以一個系數(shù)的方式修正,不過取值有所不同,如,加上的因子取值為 負或乘以的因子小于1。
在S201中,對于初始迭代,獲取翻轉(zhuǎn)函數(shù)時,使用的是初始可靠度,而 對于迭代次數(shù)k大于0的第k次迭代中,獲取翻轉(zhuǎn)函數(shù)時,使用的是修正后的
可靠度。
5203, 根據(jù)至少部分由翻轉(zhuǎn)后的變量節(jié)點組成的序列,確定校驗子序列。 其中,校驗子序列可以表示為^=^/fMxW,也就是說校驗子序列為變量
節(jié)點序列和4t瞼矩陣的乘積。
上述S201-S203已經(jīng)完成了一次迭代譯碼過程,根據(jù)本方法對翻轉(zhuǎn)后的變 量節(jié)點的可靠度進行修改,可以使得計算得到的翻轉(zhuǎn)函數(shù)更加真實反映相關(guān)比 特的正誤,從而提高譯碼性能。進一步地,為了判斷迭代何時終止并最終輸出 譯碼結(jié)果,需要執(zhí)行下述步驟
5204, 判斷確定的校驗子序列是否滿足迭代終止條件,如果否,執(zhí)行S205, 如果是,執(zhí)行S206。
其中,對于S203中確定的校驗子序列^,需要判斷其是否滿足迭代終止 條件,比如,判斷^是否為全零向量0,若^=0,也就是各行的校驗結(jié)果都是 0,則迭代終止。
S205,迭代次數(shù)k增加l,并判斷增加后的迭代次數(shù)是否小于或等于預設的 最大迭代次數(shù),如果是跳轉(zhuǎn)至S201進行下一次迭代,否則,執(zhí)行S206。
當?shù)螖?shù)超出預設的最大迭代次數(shù)時,需要終止迭代,該最大迭代次數(shù) 可以根據(jù)仿真結(jié)果確定。
S206:終止迭代,輸出譯碼結(jié)果。
在使用MWBF算法處理碼長為iV ,列重為義的LDPC碼字時, 一次迭代 需要的加法或比較次數(shù)為義iV。而采用本實施例中的譯碼方法,只需要在每次 迭代中增加1次加法修正可靠度。以行列重都為17的PG273碼為例,采用 MWBF算法, 一次迭代需要4641次計算,而采用本發(fā)明實施例的譯碼方法, 只需要在每次迭代中增加1次加法,其復雜度增加可以忽略不計。
圖3以列重都為17的PG273碼為例,給出了采用本發(fā)明實施例的譯碼方 法的仿真結(jié)果??梢钥闯?,與MWBF算法相比,本發(fā)明實施例的譯碼方法的 譯碼性能得到了提高。
本發(fā)明實施例提供的LDPC的譯碼方法,可以在幾乎不增加譯碼復雜度的 情況下,使得計算得到的翻轉(zhuǎn)函數(shù)更加真實反映相關(guān)比特的正誤,從而提高譯 碼判決的正確性,取得更好的譯碼性能。
需要說明的是,本發(fā)明實施例僅是以MWBF算法為例,具體描述了 LDPC 譯碼方法。而本發(fā)明實施例的譯碼方法可以適用于多種LDPC碼的加—又比特翻 轉(zhuǎn)譯碼算法,如MWBF算法,提高加權(quán)比特翻轉(zhuǎn)(IMWBF)算法,并行比特翻 轉(zhuǎn)(PWBF)算法等。對于其它譯碼算法,本領(lǐng)域技術(shù)人員可以根據(jù)本發(fā)明實施 例公開的技術(shù),輕易實現(xiàn)。
本發(fā)明一實施例提供了一種LDPC的譯碼裝置,如圖4所示,該裝置可以 包括
翻轉(zhuǎn)單元401,用于在迭代過程中,對滿足預設條件的翻轉(zhuǎn)函數(shù)對應的變 量節(jié)點進行翻轉(zhuǎn)。
修正單元402,用于根據(jù)預設的參數(shù)修正翻轉(zhuǎn)單元401中被翻轉(zhuǎn)的變量節(jié) 點的可靠度。
才L瞼子序列確定單元403,用于才艮據(jù)至少部分由翻轉(zhuǎn)后的變量節(jié)點組成的
序列確定校驗子序列,以便輸出譯碼結(jié)果。
進一步地,為了判斷迭代是否終止,該譯碼裝置還可以包括
判決單元404,用于判斷校驗子序列確定單元403確定的校驗子序列是否
滿足迭代終止條件,如果滿足,則根據(jù)校驗子序列確定單元403確定的結(jié)果輸
出譯碼結(jié)果,如果否,則迭代次數(shù)增加l;
其中,對于校驗子序列,其迭代終止條件可以為^=^ 0表示全零向量,
也就是各行的校驗結(jié)果都是0。
進一步的,判決單元404還可以用于在迭代次數(shù)增加l后,判斷增加后的 迭代次數(shù)是否小于或等于預設的最大迭代次數(shù),如果是,則由翻轉(zhuǎn)單元401開 始下一次迭代,如果否,則根據(jù)校驗子序列確定單元403確定的結(jié)果輸出譯碼 結(jié)果。該預設的最大迭代次數(shù)可以根據(jù)仿真結(jié)果確定。
其中,翻轉(zhuǎn)單元401可以具體包括
翻轉(zhuǎn)函數(shù)獲取子單元4011,用于根據(jù)校驗節(jié)點的權(quán)重和可靠度獲取各個變 量節(jié)點的翻轉(zhuǎn)函數(shù)。
例如,以MWBF算法為例,其翻轉(zhuǎn)函數(shù)的計算方法為
Z (2《-D^,扁廣"g;,其中,《表示第k次迭代中的校驗節(jié)點集合,
a的具體數(shù)值是靠仿真決定,該系數(shù)可以提高譯碼性能。對于初始迭代,根據(jù)
Z (2《-1)麥^,-"g;計算翻轉(zhuǎn)函數(shù)時,使用的是初始可靠度,而對于
迭代次數(shù)k大于O的第k次迭代中,獲取翻轉(zhuǎn)函數(shù)時,使用的是修正單元402 修正后的可靠度。
翻轉(zhuǎn)控制子單元4012,用于根據(jù)翻轉(zhuǎn)函數(shù)獲取子單元4011獲取的翻轉(zhuǎn)函 數(shù),對滿足預設條件的翻轉(zhuǎn)函數(shù)對應的變量節(jié)點進行翻轉(zhuǎn)。比如,可以對翻轉(zhuǎn) 函數(shù)最大的變量節(jié)點"_進行翻轉(zhuǎn)。對于MWBF算法,"_可以表示為
Uargmax/^,,對"_進行翻轉(zhuǎn)可以表示為即為將節(jié)點"_
對應的變量節(jié)點和1做異或運算。
此外,修正單元402對翻轉(zhuǎn)單元401中^皮翻轉(zhuǎn)的變量節(jié)點的可靠度進行修
正可以有多種方式,比如增大或減小原可靠度的取值。而一般情況下, 一個錯 誤的比特被翻轉(zhuǎn)后,其可靠度應該是增大的,增大可靠度的方式也有多種,比 如直接加上一個因子,或者乘以一個系數(shù)。以給可靠度直接加上一個因子對修
正變量節(jié)點的可靠度為例=r+5,其中,為修正后的可靠度,^
"max "max nmax nmax
為被翻轉(zhuǎn)的變量節(jié)點的可靠度,3為可靠度的增加因子,其取值可以根據(jù)仿真 的結(jié)果確定。對于確定的校驗矩陣,5的取值是固定的,且在各次迭代中,對 需要修改可靠度的變量節(jié)點可以都用這個值。而對于不同的校驗矩陣,5的取 值會有不同。
綜上,本發(fā)明實施例提供的方法和裝置,通過對翻轉(zhuǎn)的變量節(jié)點的可靠度 進行修正,使得計算得到的翻轉(zhuǎn)函數(shù)更加真實反映相關(guān)比特的正誤。進一步地, 從而提高譯碼判決的正確性,取得更好的譯碼性能。
本4貞i或晉通4支術(shù)人貝可以5里解買現(xiàn)上迷買施侈 是可以通過程序來指令相關(guān)的硬件來完成,該程序可以存儲于計算機可讀取存 儲介質(zhì)中,如ROM/RAM、磁碟、光盤等。
以上所述僅是本發(fā)明的優(yōu)選實施方式,應當指出,對于本技術(shù)領(lǐng)域的普通 技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進和潤飾, 這些改進和潤飾也應^L為本發(fā)明的保護范圍。
權(quán)利要求
1.一種低密度奇偶校驗碼的譯碼方法,其特征在于,該方法包括在迭代過程中,對滿足預設條件的翻轉(zhuǎn)函數(shù)對應的變量節(jié)點進行翻轉(zhuǎn);根據(jù)預設的參數(shù)修正被翻轉(zhuǎn)的變量節(jié)點的可靠度;根據(jù)至少部分由翻轉(zhuǎn)后的變量節(jié)點組成的序列,確定校驗子序列,以便輸出譯碼結(jié)果。
2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述對滿足預設條件的翻 轉(zhuǎn)函數(shù)對應的變量節(jié)點進行翻轉(zhuǎn)包括根據(jù)各個校驗節(jié)點的權(quán)重和各變量節(jié)點的可靠度獲取各個變量節(jié)點的翻 轉(zhuǎn)函數(shù);根據(jù)獲取的翻轉(zhuǎn)函數(shù),對所述滿足預設條件的翻轉(zhuǎn)函數(shù)對應的變量節(jié)點進 行翻轉(zhuǎn)。
3. 根據(jù)權(quán)利要求2所述的方法,其特征在于,所述對滿足預設條件的翻 轉(zhuǎn)函數(shù)對應的變量節(jié)點進行翻轉(zhuǎn)包括對翻轉(zhuǎn)函數(shù)最大的變量節(jié)點進行翻轉(zhuǎn)。
4. 根據(jù)權(quán)利要求2所述的方法,其特征在于,所述方法還包括 初始迭代時,根據(jù)各個校驗節(jié)點的權(quán)重和各變量節(jié)點的初始可靠度獲取各個變量節(jié)點的翻轉(zhuǎn)函數(shù)。
5. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)預設的參數(shù)修正 被翻轉(zhuǎn)的變量節(jié)點的可靠度包括將所述被翻轉(zhuǎn)的變量節(jié)點的可靠度加上所述 預設的參數(shù)。
6. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)預設的參數(shù)修正 被翻轉(zhuǎn)的變量節(jié)點的可靠度包括將所述被翻轉(zhuǎn)的變量節(jié)點的可靠度乘以所述 預設的參數(shù)。
7. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括判斷所 述確定的校驗子序列是否滿足迭代終止條件,如果是,則迭代終止,輸出譯碼 結(jié)果。
8. 根據(jù)權(quán)利要求7所述的方法,其特征在于,所述迭代終止條件為所 述才交驗子序列為全零向量。
9. 一種低密度奇偶校驗碼的譯碼裝置,其特征在于,該裝置包括 翻轉(zhuǎn)單元,用于在迭代過程中,對滿足預設條件的翻轉(zhuǎn)函數(shù)對應的變量節(jié)點進行翻轉(zhuǎn);修正單元,用于根據(jù)預設的參數(shù)修正所述翻轉(zhuǎn)單元中被翻轉(zhuǎn)的變量節(jié)點的 可靠度;校驗子序列確定單元,用于根據(jù)至少部分由翻轉(zhuǎn)后的變量節(jié)點組成的序列 確定校驗子序列,以便輸出譯碼結(jié)果。
10. 根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述翻轉(zhuǎn)單元包括 翻轉(zhuǎn)函數(shù)獲取子單元,用于根據(jù)校驗節(jié)點的權(quán)重和變量節(jié)點的可靠度獲取各個變量節(jié)點的翻轉(zhuǎn)函數(shù);翻轉(zhuǎn)控制子單元,用于根據(jù)所述翻轉(zhuǎn)函數(shù)獲取子單元獲取的翻轉(zhuǎn)函數(shù),對 滿足預設條件的翻轉(zhuǎn)函數(shù)對應的變量節(jié)點進行翻轉(zhuǎn)。
11. 根據(jù)權(quán)利要求IO所述的裝置,其特征在于,對于初始迭代的情況下, 所述翻轉(zhuǎn)函數(shù)獲取子單元根據(jù)各個校驗節(jié)點的權(quán)重和各變量節(jié)點的初始可靠 度獲取各個變量節(jié)點的翻轉(zhuǎn)函數(shù)。
12. 根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述裝置還包括 判決單元,用于判斷所述校驗子序列確定單元確定的校驗子序列是否滿足迭代終止條件,如果滿足,則由所述譯碼輸出單元輸出譯碼結(jié)果,如果否,則 迭代次數(shù)增加1。
全文摘要
本發(fā)明實施例涉及譯碼技術(shù),尤其涉及一種低密度奇偶校驗碼的譯碼技術(shù)。本發(fā)明實施例提供了一種低密度奇偶校驗碼的譯碼方法,主要包括在第k次迭代中,對滿足預設條件的翻轉(zhuǎn)函數(shù)對應的變量節(jié)點進行翻轉(zhuǎn),根據(jù)預設的參數(shù)修正被翻轉(zhuǎn)的變量節(jié)點的可靠度,根據(jù)翻轉(zhuǎn)后的變量節(jié)點序列,確定校驗子序列,以便輸出譯碼結(jié)果。本發(fā)明實施例還提供了一種低密度奇偶校驗碼的譯碼裝置。本發(fā)明實施例提供的方法和裝置,通過對翻轉(zhuǎn)后的變量節(jié)點的可靠度進行修正,可以使得計算得到的翻轉(zhuǎn)函數(shù)更加真實反映相關(guān)比特的正誤,從而提高譯碼性能。
文檔編號H04L1/00GK101355366SQ20081006776
公開日2009年1月28日 申請日期2008年6月13日 優(yōu)先權(quán)日2008年6月13日
發(fā)明者明 姜, 蔣培剛, 趙春明, 錢達均, 鶴 黃 申請人:華為技術(shù)有限公司;東南大學