實(shí)現(xiàn)ldpc碼編碼的方法與裝置制造方法
【專利摘要】本發(fā)明公開了一種實(shí)現(xiàn)LDPC碼的編碼方法與裝置。其中方法包括:步驟A.設(shè)定LDPC碼編碼的碼長n與碼率R,初始化并更新參數(shù);步驟B.當(dāng)長度為k的信息碼S輸入時,將長度為k的信息碼S轉(zhuǎn)換成n-k長度的中間變量e;步驟C.迭代求解方程A*pT=e,得到檢驗(yàn)碼p。預(yù)設(shè)迭代起始地址,從起始地址開始迭代,得到檢驗(yàn)碼,然后實(shí)時產(chǎn)生迭代地址,并根據(jù)迭代地址分別從e緩沖器中讀取中間變量e,從檢驗(yàn)碼緩沖器取已知當(dāng)前位置的檢驗(yàn)碼,進(jìn)行GF(2)迭代求解下一位置的檢驗(yàn)碼,并根據(jù)迭代地址將運(yùn)算結(jié)果寫入檢驗(yàn)碼緩沖器指定位置。本發(fā)明采用預(yù)設(shè)與迭代求解相結(jié)合方法,實(shí)現(xiàn)了LDPC線性復(fù)雜度設(shè)計實(shí)現(xiàn)LDPC編碼的零延時和高吞吐率。
【專利說明】實(shí)現(xiàn)LDPC碼編碼的方法與裝置【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種無線局域網(wǎng)信道編碼【技術(shù)領(lǐng)域】,特別是涉及一種實(shí)現(xiàn)LDPC碼編碼的方法與裝置。
【背景技術(shù)】
[0002]通信的目的是將信源信息及時可靠地傳輸?shù)叫潘?。但在?shù)字通信系統(tǒng)中,信道存在著各種噪聲和干擾,使得傳輸信息的準(zhǔn)確性和可靠性降低。尤其是近年來,隨著大量數(shù)據(jù)信息的處理和交換,人們對高效、高可靠性的數(shù)字通信系統(tǒng)的需求日益增長,使得高可靠性這一性能變得更加迫切。因此,設(shè)計數(shù)字通信系統(tǒng)的關(guān)鍵在于如何控制各種噪聲和干擾引起的差錯的情況下,還可以使數(shù)據(jù)能夠可靠準(zhǔn)確地進(jìn)行傳輸。
[0003]理論研究表明:LDPC碼即低密度奇偶校驗(yàn)碼(Low Density Parity Check Code,LDPC)的性能超過Turbo碼,已接近香農(nóng)極限,同時具有線性譯碼復(fù)雜度,適用高速數(shù)據(jù)傳輸,特別適合信道情況復(fù)雜的無線局域網(wǎng)環(huán)境。但就目前情況來看,LDPC碼的編碼復(fù)雜度、造成的編碼時延及硬件實(shí)現(xiàn)高成本成為制約LDPC碼在高速數(shù)據(jù)業(yè)務(wù)中應(yīng)用的一個關(guān)鍵因素。
[0004]低密度奇偶校驗(yàn)碼圖(LDPC碼)本質(zhì)上是一種線形分組碼,它通過一個生成矩陣G將信息序列映射成發(fā)送序列,也就是碼字序列。對于生成矩陣G,完全等效地存在一個奇偶校驗(yàn)矩陣H,所有的碼字序列C構(gòu)成了 H的零空間(null space),即HCT=0。
[0005]LDPC碼的奇偶校驗(yàn)矩陣H是一個稀疏矩陣,相對于行與列的長度,校驗(yàn)矩陣每行、列中非零元素的數(shù)目(我們習(xí)慣稱作行重、列重)非常小,這也是LDPC碼之所以稱為低密度碼的原因。
[0006]目前,LDPC編碼方法主要有三種:傳統(tǒng)編碼算法、串行編碼算法、并行編碼算法。后兩種編碼需要由檢驗(yàn)矩陣H得到生成矩陣G,但其生成矩陣的稀疏性很難得到保證,這樣就可能會導(dǎo)致編碼的運(yùn)算與存儲復(fù)雜性急劇增加,其時延與成本較難控制。按照傳統(tǒng)編碼方法,首先將子矩陣B進(jìn)行LU分解,然后利用前向迭代就可以方便地根據(jù)信息位求解得到檢驗(yàn)碼。但傳統(tǒng)編碼方法在成本與復(fù)雜度方面依然難盡人意。
[0007]因此,如何解決現(xiàn)有技術(shù)中LDPC碼編碼的低速,高成本,高延時的缺陷是個亟待解決的問題。
【發(fā)明內(nèi)容】
[0008]基于上述問題,本發(fā)明提供了一種實(shí)現(xiàn)LDPC碼編碼的方法與裝置,用以高速地實(shí)現(xiàn)LDPC碼的編碼,并降低編碼成本。
s 1
[0009]H= [B A],: =τ 貝 Ij
P
>ST
[0010]Η*χ=0演變?yōu)閇5 A)* =0則A*pT=B*sT,所以p可以通過解方程組的思想
P
5
求得。e=B*sT即為預(yù)處理過程,而A*pT=e采用迭代求解的方式進(jìn)行求檢驗(yàn)碼。
[0011]本發(fā)明正是基于以上設(shè)計思路改進(jìn)了 LDPC碼編碼的處理方法及裝置。
[0012]本發(fā)明提供了一種實(shí)現(xiàn)LDPC碼的編碼裝置,包括:主控制單元,異或陣列處理器,e緩沖器,GF (2)迭代求解器,迭代地址產(chǎn)生器,進(jìn)程控制計數(shù)器,檢驗(yàn)碼緩沖器和宏矩陣表模塊,其中:
[0013]所述主控制單元,用于接收用戶設(shè)定的LDPC碼編碼的碼長η與碼率R信息,初始化更新各個部件的參數(shù);協(xié)調(diào)所述異或陣列處理器和e緩沖器完成預(yù)處理操作;在接收預(yù)設(shè)起始迭代地址信息后,協(xié)調(diào)所述GF(2)迭代求解器執(zhí)行運(yùn)算迭代的操作并根據(jù)所述迭代地址產(chǎn)生器產(chǎn)生的迭代地址分別從e緩沖器中讀取中間變量e,從檢驗(yàn)碼緩沖器取已知當(dāng)前位置的檢驗(yàn)碼,進(jìn)行GF(2)迭代求解下一位置的檢驗(yàn)碼,再根據(jù)迭代地址將運(yùn)算結(jié)果寫入檢驗(yàn)碼緩沖器指定位置;
[0014]所述異或陣列處理器,用于進(jìn)行信息碼S的載入操作時,將長度為K的信息碼S轉(zhuǎn)換成n-k長度的中間變量e ;
[0015]所述e緩沖器,用于保存所述計算結(jié)果中間變量e的值;包括n_k個I比特的緩沖寄存器;
[0016]所述迭代地址產(chǎn)生器,用于從起始地址開始迭代,經(jīng)過多次迭代得到檢驗(yàn)碼,根據(jù)當(dāng)前迭代進(jìn)程,產(chǎn)生迭代地址;所述迭代地址包括當(dāng)前運(yùn)算所需的e緩沖器中間變量e地址、所需的檢驗(yàn)碼緩沖器檢驗(yàn)碼地址及當(dāng)前得到的檢驗(yàn)碼寫入檢驗(yàn)碼緩沖器地址;
[0017]所述進(jìn)程控制計數(shù)器,用于對所述GF(2)迭代地址產(chǎn)生器的迭代循環(huán)操作次數(shù)進(jìn)行計數(shù);
[0018]所述檢驗(yàn)碼緩沖器,用于保存產(chǎn)生的檢驗(yàn)碼,用單端口 SRAM來實(shí)現(xiàn),只有寫操作,避免讀操作;所述檢驗(yàn)碼緩沖器長度為n-k比特;
[0019]所述GF⑵迭代求解器,用于對當(dāng)前運(yùn)算所需的中間變量e地址、所需的已知的檢驗(yàn)碼地址及當(dāng)前位置的檢驗(yàn)碼地址進(jìn)行異或運(yùn)算,得到新位置的檢驗(yàn)碼;所述宏矩陣表模塊,用于將校驗(yàn)矩陣H的分割宏矩陣A和B并保存,即H=[B A]。
[0020]較佳地,作為一種可實(shí)施方式。所述主控制單元包括載入控制模塊、第一判斷模塊和第二判斷模塊,其中:
[0021]所述載入控制模塊,用于載入信息碼S時,每次控制載入到所述異或陣列處理器I比特?目息碼;
[0022]所述第一判斷模塊,用于當(dāng)先載入信息碼S中的第j列信息碼S」時,判斷第j列信息碼S」是否為零,若判斷結(jié)果不為零,則控制所述異或陣列處理器計算對應(yīng)的中間變量e的值,再將對應(yīng)的中間變量e與e緩沖器中現(xiàn)有的中間變量e值模2和,控制e緩沖器保存所述計算結(jié)果;若判斷結(jié)果為零,則直接跳轉(zhuǎn)第二判斷模塊;
[0023]所述第二判斷模塊,用于判斷所述第j列信息碼S」是否為信息碼S中的最后一個信息碼;若是,則跳轉(zhuǎn)預(yù)設(shè)模塊執(zhí)行后續(xù)的操作;若否,則返回載入控制模塊執(zhí)行下一列信息碼的載入操作。
[0024]較佳地,作為一種可實(shí)施方式。所述主控制單元還包括預(yù)設(shè)模塊和迭代協(xié)調(diào)控制模塊,其中:
[0025]所述預(yù)設(shè)模塊,用于預(yù)設(shè)第二個檢驗(yàn)碼的值為O或者1,且迭代起始地址為I ;
[0026]所述迭代協(xié)調(diào)控制模塊,用于在接收預(yù)設(shè)起始地址信息后,協(xié)調(diào)所述GF(2)迭代求解器從起始地址I開始執(zhí)行迭代運(yùn)算的操作,并協(xié)調(diào)進(jìn)程控制計數(shù)器計數(shù),協(xié)調(diào)迭代地址產(chǎn)生器實(shí)時產(chǎn)生當(dāng)前迭代地址,并根據(jù)迭代地址分別從e緩沖器中取中間變量e,從檢驗(yàn)碼緩沖器讀取當(dāng)前位置的檢驗(yàn)碼,進(jìn)行GF(2)迭代求解下一位置的檢驗(yàn)碼,再根據(jù)迭代地址將運(yùn)算出新位置的檢驗(yàn)碼的寫入檢驗(yàn)碼緩沖器指定位置;重復(fù)經(jīng)過η-k-l次迭代,得到n-k個檢驗(yàn)碼。
[0027]較佳地,作為一種可實(shí)施方式。所述主控制單元還包括第三判斷模塊、重調(diào)模塊和結(jié)束模塊,其中:
[0028]所述第三判斷模塊,用于直至處理到第n-k次迭代操作時,且將得到的n-k個檢驗(yàn)碼都寫入到檢驗(yàn)碼緩沖器后判斷初始預(yù)設(shè)條件是否正確;若是,則直接跳轉(zhuǎn)結(jié)束模塊執(zhí)行結(jié)束編碼的操作;若否,則跳轉(zhuǎn)重調(diào)模塊執(zhí)行相應(yīng)操作;
[0029]所述重調(diào)模塊,用于重新調(diào)整迭代操作且調(diào)整計算錯誤的檢驗(yàn)碼;
[0030]所述結(jié)束模塊,用于結(jié)束執(zhí)行LDPC碼的編碼操作。
[0031]較佳地,作為一種可實(shí)施方式。所述第三判斷模塊包括第三判斷子模塊,其中:
[0032]所述第三判斷子模塊,用于在判斷初始預(yù)設(shè)條件是否正確時,判斷最后一個檢驗(yàn)方程中的3個已知檢驗(yàn)碼滿足方程,若是,則判斷結(jié)果為預(yù)設(shè)正確;若否,則判斷結(jié)果為預(yù)設(shè)錯誤。
[0033]較佳地,作為 一種可實(shí)施方式。所述重調(diào)模塊包括重調(diào)處理子模塊,其中:
[0034]所述重調(diào)處理子模塊,用于運(yùn)算GF(2)過程中,在判斷預(yù)設(shè)錯誤后,將第一個環(huán)路
中求解所得的個檢驗(yàn)碼邏輯反相,行度為3的行阻止了錯誤的傳播;其中:第一個環(huán)路
的24X (1-R)次迭代一定錯誤,錯誤止于第一個環(huán)路;將前24X (1-R)次迭代的結(jié)果進(jìn)行反相。
[0035]相應(yīng)地,本發(fā)明還提供了一種實(shí)現(xiàn)LDPC碼的編碼方法,包括如下步驟:
[0036]步驟A、設(shè)定LDPC碼編碼的碼長η與碼率R,初始化并更新各部件的參數(shù);
[0037]步驟B、當(dāng)長度為k的信息碼S輸入時,利用公式e = Bst ;將長度為k的信息碼S轉(zhuǎn)換成n-k長度的中間變量e ;
[0038]步驟C ;迭代求解方程A*pT = e,得到檢驗(yàn)碼P。
[0039]其中,A和B為校驗(yàn)矩陣H的分割宏矩陣,即H=[B A],* = [ ^ r 則Η*χ=0演變?yōu)镻"ρΤ =O則A*pT=B*sT;運(yùn)算e=B*sT即為預(yù)處理過程;求解方程中
L J ?
P即為迭代求解過程。
[0040]較佳地,作為一種可實(shí)施方式。所述步驟B中,在每個信息碼s進(jìn)入異或陣列處理器時,要同時與宏矩陣表模塊存儲的宏矩陣B每列所有n-k個元素b相與操作后,再與e緩沖器中的n-k個緩沖寄存器中的現(xiàn)有的中間變量值e異或,最終將整個信息碼的運(yùn)算結(jié)果中間變量e保存在e緩沖器中;所述中間變量e:e=BsT ;
[0041]在步驟C中,采用A*pT=e方式求檢驗(yàn)碼p為迭代求解處理過程:預(yù)設(shè)迭代起始地址,從起始地址開始迭代,經(jīng)過多次迭代得到檢驗(yàn)碼P,實(shí)時產(chǎn)生迭代地址,并根據(jù)迭代地址分別讀取中間變量e,取已知當(dāng)前位置的檢驗(yàn)碼P,進(jìn)行GF⑵迭代求解下一位置的檢驗(yàn)碼P,并根據(jù)迭代地址將運(yùn)算結(jié)果寫入檢驗(yàn)碼緩沖器指定位置;
[0042]較佳地,作為一種可實(shí)施方式。所述步驟B具體包括如下步驟:
[0043]步驟bl、首先載入信息碼S,每次載入I比特信息碼; [0044]步驟b2、當(dāng)載入信息碼S中的第j列信息碼Sj時,判斷第j列信息碼Sj是否為零;若判斷結(jié)果不為零,則計算對應(yīng)的中間變量e的值,將對應(yīng)的中間變量6與6緩沖器中現(xiàn)有的中間變量e值模2和,再將計算結(jié)果保存在e緩沖器內(nèi);若判斷結(jié)果為零,則直接執(zhí)行步驟b3 ;
[0045]步驟b3、判斷所述第j列信息碼S」是否為信息碼S中的最后一個信息碼;若是,則執(zhí)行下述步驟C ;若否,則返回步驟bl執(zhí)行下一列信息碼的載入操作待整個信息碼向量與矩陣B相乘后再執(zhí)行步驟C。
[0046]進(jìn)一步地,作為一種可實(shí)施方式。所述步驟C具體包括如下步驟:
[0047]步驟Cl、預(yù)設(shè)第二個檢驗(yàn)碼的值為O或者1,且迭代起始地址為I ;
[0048]步驟c2、從起始地址I開始迭代,在執(zhí)行迭代處理的同時,進(jìn)程控制計數(shù)器計數(shù),迭代地址產(chǎn)生器實(shí)時產(chǎn)生迭代地址,并根據(jù)迭代地址分別從e緩沖器中讀取中間變量e,從檢驗(yàn)碼緩沖器讀取當(dāng)前位置的檢驗(yàn)碼,進(jìn)行GF(2)迭代求解下一位置的檢驗(yàn)碼,再根據(jù)迭代地址將運(yùn)算出新位置的檢驗(yàn)碼的寫入檢驗(yàn)碼緩沖器指定位置;重復(fù)經(jīng)過η-k-l次迭代,得到n-k個檢驗(yàn)碼。
[0049]進(jìn)一步地,作為一種可實(shí)施方式。在所述步驟C之后還包括如下步驟:
[0050]步驟D、直至處理到第n-k次迭代操作時,且將產(chǎn)生的n-k個檢驗(yàn)碼都寫入到檢驗(yàn)碼緩沖器后判斷初始預(yù)設(shè)條件是否正確;若是,則執(zhí)行步驟F ;若否,則執(zhí)行步驟E ;
[0051]步驟E、重新調(diào)整迭代操作且調(diào)整計數(shù)錯誤的檢驗(yàn)碼;
[0052]步驟F、結(jié)束執(zhí)行LDPC碼的編碼操作。
[0053]進(jìn)一步地,作為一種可實(shí)施方式。在所述步驟B中,宏矩陣B采用802.1ln高速無線局域網(wǎng)標(biāo)準(zhǔn)中AnneXR中的宏矩陣形式,所述宏矩陣B的行數(shù)為24X R,宏矩陣B的列數(shù)為24X (1-R);其中R為設(shè)定碼率;
[0054]所述宏矩陣B采用一個地址保存一列的方式進(jìn)行存儲,共有24 X R個地址,每個存儲單元位寬為7 X 24X (1-R) bit ;
[0055]在宏矩陣B每列兀素中,共有24X (1-R)個Z長度向量,每Z個向量中有且僅有一個I ;設(shè)計24 X (1-R)個定位單元,分別對應(yīng)每個Z長度向量,通過如下方法定位在每Z個向量中I的位置:設(shè)當(dāng)前列為V,則
[0056]Sv=MOD (v-1, Z) +1
1.VV - bvv _ A > O
[0057]SWk=l =]
1.sv - b + Z sv-b<0
[0058]其中,宏矩陣B中每一個元素都代表ZXZbit的循環(huán)右移單位矩陣;當(dāng)宏矩陣B的碼長分別為648、1296和1944時,對應(yīng)的Z的值分別為27,54和81。
[0059]進(jìn)一步地,作為一種可實(shí)施方式。在所述步驟C中,迭代地址采用如下格式:
[0060]
【權(quán)利要求】
1.一種實(shí)現(xiàn)LDPC碼的編碼裝置,其特征在于,包括:主控制單元,異或陣列處理器,e緩沖器,GF (2)迭代求解器,迭代地址產(chǎn)生器,進(jìn)程控制計數(shù)器,檢驗(yàn)碼緩沖器和宏矩陣表模塊,其中: 所述主控制單元,用于接收用戶設(shè)定的LDPC碼編碼的碼長η與碼率R信息,初始化更新各個部件的參數(shù);協(xié)調(diào)所述異或陣列處理器和e緩沖器完成預(yù)處理操作;在接收預(yù)設(shè)起始迭代地址信息后,協(xié)調(diào)所述GF(2)迭代求解器執(zhí)行運(yùn)算迭代的操作并根據(jù)所述迭代地址產(chǎn)生器產(chǎn)生的迭代地址分別從e緩沖器中讀取中間變量e,從檢驗(yàn)碼緩沖器取已知當(dāng)前位置的檢驗(yàn)碼,進(jìn)行GF(2)迭代求解下一位置的檢驗(yàn)碼,再根據(jù)迭代地址將運(yùn)算結(jié)果寫入檢驗(yàn)碼緩沖器指定位置; 所述異或陣列處理器,用于進(jìn)行信息碼S的載入操作時,將長度為K的信息碼S轉(zhuǎn)換成n-k長度的中間變量e ; 所述e緩沖器,用于保存所述計算結(jié)果中間變量e的值;包括n-k個I比特的緩沖寄存器; 所述迭代地址產(chǎn)生器,用于從起始地址開始迭代,經(jīng)過多次迭代得到檢驗(yàn)碼,根據(jù)當(dāng)前迭代進(jìn)程,產(chǎn)生迭代地址;所述迭代地址包括當(dāng)前運(yùn)算所需的e緩沖器中間變量e地址、所需的檢驗(yàn)碼緩沖器檢驗(yàn)碼地址及當(dāng)前得到的檢驗(yàn)碼寫入檢驗(yàn)碼緩沖器地址; 所述進(jìn)程控制計數(shù)器,用于對所述GF(2)迭代地址產(chǎn)生器的迭代循環(huán)操作次數(shù)進(jìn)行計數(shù); 所述檢驗(yàn)碼緩沖器,用于保存產(chǎn)生的檢驗(yàn)碼,用單端口 SRAM來實(shí)現(xiàn),只有寫操作,避免讀操作;所述檢驗(yàn)碼緩沖器長度為n-k比特; 所述GF(2)迭代求解器,用于對當(dāng)前`運(yùn)算所需的中間變量e地址、所需的已知的檢驗(yàn)碼地址及當(dāng)前位置的檢驗(yàn)碼地址進(jìn)行異或運(yùn)算,得到新位置的檢驗(yàn)碼; 所述宏矩陣表模塊,用于將校驗(yàn)矩陣H的分割宏矩陣A和B并保存,即H=[B A]。
2.根據(jù)權(quán)利要求1所述的實(shí)現(xiàn)LDPC碼的編碼裝置,其特征在于:所述主控制單元包括載入控制模塊、第一判斷模塊和第二判斷模塊,其中: 所述載入控制模塊,用于載入信息碼S時,每次控制載入到所述異或陣列處理器I比特?目息碼; 所述第一判斷模塊,用于當(dāng)先載入信息碼S中的第j列信息碼S」時,判斷第j列信息碼Sj是否為零,若判斷結(jié)果不為零,則控制所述異或陣列處理器計算對應(yīng)的中間變量e的值,再將對應(yīng)的中間變量e與e緩沖器中現(xiàn)有的中間變量e值模2和,控制e緩沖器保存所述計算結(jié)果;若判斷結(jié)果為零,則直接跳轉(zhuǎn)第二判斷模塊; 所述第二判斷模塊,用于判斷所述第j列信息碼S」是否為信息碼S中的最后一個信息碼;若是,則跳轉(zhuǎn)預(yù)設(shè)模塊執(zhí)行后續(xù)的操作;若否,則返回載入控制模塊執(zhí)行下一列信息碼的載入操作。
3.根據(jù)權(quán)利要求1所述的實(shí)現(xiàn)LDPC碼的編碼裝置,其特征在于:所述主控制單元還包括預(yù)設(shè)模塊和迭代協(xié)調(diào)控制模塊,其中: 所述預(yù)設(shè)模塊,用于預(yù)設(shè)第二個檢驗(yàn)碼的值為O或者1,且迭代起始地址為I ; 所述迭代協(xié)調(diào)控制模塊,用于在接收預(yù)設(shè)起始地址信息后,協(xié)調(diào)所述GF(2)迭代求解器從起始地址I開始執(zhí)行迭代運(yùn)算的操作,并協(xié)調(diào)進(jìn)程控制計數(shù)器計數(shù),協(xié)調(diào)迭代地址產(chǎn)生器實(shí)時產(chǎn)生當(dāng)前迭代地址,并根據(jù)迭代地址分別從e緩沖器中取中間變量e,從檢驗(yàn)碼緩沖器讀取當(dāng)前位置的檢驗(yàn)碼,進(jìn)行GF(2)迭代求解下一位置的檢驗(yàn)碼,再根據(jù)迭代地址將運(yùn)算出新位置的檢驗(yàn)碼的寫入檢驗(yàn)碼緩沖器指定位置;重復(fù)經(jīng)過η-k-l次迭代,得到n-k個檢驗(yàn)碼。
4.根據(jù)權(quán)利要求1所述的實(shí)現(xiàn)LDPC碼的編碼裝置,其特征在于:所述主控制單元還包括第三判斷模塊、重調(diào)模塊和結(jié)束模塊,其中: 所述第三判斷模塊,用于直至處理到第n-k次迭代操作時,且將得到的n-k個檢驗(yàn)碼都寫入到檢驗(yàn)碼緩沖器后判斷初始預(yù)設(shè)條件是否正確;若是,則直接跳轉(zhuǎn)結(jié)束模塊執(zhí)行結(jié)束編碼的操作;若否,則跳轉(zhuǎn)重調(diào)模塊執(zhí)行相應(yīng)操作; 所述重調(diào)模塊,用于重新調(diào)整迭代操作且調(diào)整計算錯誤的檢驗(yàn)碼; 所述結(jié)束模塊,用于結(jié)束執(zhí)行LDPC碼的編碼操作。
5.根據(jù)權(quán)利要求4所述的實(shí)現(xiàn)LDPC碼的編碼裝置,其特征在于:所述第三判斷模塊包括第三判斷子模塊,其中: 所述第三判斷子模塊,用于在判斷初始預(yù)設(shè)條件是否正確時,判斷最后一個檢驗(yàn)方程中的相關(guān)變量是否滿足方程,若是,則判斷結(jié)果為預(yù)設(shè)正確;若否,則判斷結(jié)果為預(yù)設(shè)錯誤。
6.根據(jù)權(quán)利要求4所述的實(shí)現(xiàn)LDPC碼的編碼裝置,其特征在于:所述重調(diào)模塊包括重調(diào)處理子模塊,其中: 所述重調(diào)處理子模塊,用于運(yùn)算GF(2)過程中,在判斷預(yù)設(shè)錯誤后,將第一個環(huán)路中求解所得的個檢驗(yàn)碼邏輯反相,行度為3的行阻止了錯誤的傳播;其中:第一個環(huán)路的24X (1-R)次迭代一定錯誤,錯誤止于第一個環(huán)路;將前24X (1-R)次迭代的結(jié)果進(jìn)行反相。
7.一種實(shí)現(xiàn)LDPC碼的編碼方法,其特征在于,包括如下步驟: 步驟A、設(shè)定LDPC碼編碼的碼長η與碼率R,初始化并更新各部件的參數(shù); 步驟B、當(dāng)長度為k的信息碼S輸入時,利用公式e = Bst ;將長度為k的信息碼S轉(zhuǎn)換成n-k長度的中間變量e ; 步驟C ;迭代求解方程A*pT = e,得到檢驗(yàn)碼P。 其中,A和B為校驗(yàn)矩陣H的分割宏矩陣,即H= [B A],* = 則Η*χ=0
演變?yōu)閇U 斤〉=O則A*pT=B*sT;運(yùn)算e=B*sT即為預(yù)處理過程;求解方程中P即為迭代求解過程。
8.根據(jù)權(quán)利要求7所述的實(shí)現(xiàn)LDPC碼的編碼方法,其特征在于,所述步驟B中,在每個信息碼s進(jìn)入異或陣列處理器時,要同時與宏矩陣表模塊存儲的宏矩陣B每列所有n-k個元素b相與操作后,再與e緩沖器中的n-k個緩沖寄存器中的現(xiàn)有的中間變量值e異或,最終將整個信息碼的運(yùn)算結(jié)果中間變量e保存在e緩沖器中;所述中間變量e:e=BsT ; 在步驟C中,采用A*pT=e方式求檢驗(yàn)碼P為迭代求解處理過程:預(yù)設(shè)迭代起始地址,從起始地址開始迭代,經(jīng)過多次迭代得到檢驗(yàn)碼P,實(shí)時產(chǎn)生迭代地址,并根據(jù)迭代地址分別讀取中間變量e,取已知當(dāng)前位置的檢驗(yàn)碼P,進(jìn)行GF⑵迭代求解下一位置的檢驗(yàn)碼P,并根據(jù)迭代地址將運(yùn)算結(jié)果寫入檢驗(yàn)碼緩沖器指定位置。
9.根據(jù)權(quán)利要求7所述的實(shí)現(xiàn)LDPC碼的編碼方法,其特征在于,所述步驟B具體包括如下步驟: 步驟bl、首先載入信息碼S,每次載入I比特信息碼; 步驟b2、當(dāng)載入信息碼S中的第j列信息碼S」時,判斷第j列信息碼S」是否為零;若判斷結(jié)果不為零,則計算對應(yīng)的中間變量e的值,將對應(yīng)的中間變量6與6緩沖器中現(xiàn)有的中間變量e值模2和,再將計算結(jié)果保存在e緩沖器內(nèi);若判斷結(jié)果為零,則直接執(zhí)行步驟b3 ; 步驟b3、判斷所述第j列信息碼Sj是否為信息碼S中的最后一個信息碼;若是,則執(zhí)行下述步驟C ;若否,則返回步驟bl執(zhí)行下一列信息碼的載入操作待整個信息碼向量與矩陣B相乘后再執(zhí)行步驟C。
10.根據(jù)權(quán)利要求7所述的實(shí)現(xiàn)LDPC碼的編碼方法,其特征在于,所述步驟C具體包括如下步驟: 步驟Cl、預(yù)設(shè)第二個檢驗(yàn)碼的值為O或者1,且迭代起始地址為I ; 步驟c2、從起始地址I開始迭代,在執(zhí)行迭代處理的同時,進(jìn)程控制計數(shù)器計數(shù),迭代地址產(chǎn)生器實(shí)時產(chǎn)生迭代地址,并根據(jù)迭代地址分別從e緩沖器中讀取中間變量e,從檢驗(yàn)碼緩沖器讀取當(dāng)前位置的檢驗(yàn)碼,進(jìn)行GF(2)迭代求解下一位置的檢驗(yàn)碼,再根據(jù)迭代地址將運(yùn)算出新位置的檢驗(yàn)碼的寫入檢驗(yàn)碼緩沖器指定位置;重復(fù)經(jīng)過η-k-l次迭代,得到n-k個檢驗(yàn)碼。
11.根據(jù)權(quán)利要求7所述的實(shí)現(xiàn)LDPC碼的編碼方法,其特征在于,在所述步驟C之后還包括如下步驟: 步驟D、直至處理到第n-k次迭代`操作時,且將得到n-k個檢驗(yàn)碼都寫入到檢驗(yàn)碼緩沖器后判斷初始預(yù)設(shè)條件是否正確;若是,則執(zhí)行步驟F ;若否,則執(zhí)行步驟E ; 步驟E、重新調(diào)整迭代操作且調(diào)整計算錯誤的檢驗(yàn)碼; 步驟F、結(jié)束執(zhí)行LDPC碼的編碼操作。
12.根據(jù)權(quán)利要求7所述的實(shí)現(xiàn)LDPC碼的編碼方法,其特征在于:在所述步驟B中,宏矩陣B采用802.1ln高速無線局域網(wǎng)標(biāo)準(zhǔn)中AnneXR中的宏矩陣形式,所述宏矩陣B的行數(shù)為24X R,宏矩陣B的列數(shù)為24X (1-R);其中R為設(shè)定碼率; 所述宏矩陣B采用一個地址保存一列的方式進(jìn)行存儲,共有24 X R個地址,每個存儲單元位寬為 7X24X (1-R)bit ; 在宏矩陣B每列元素中,共有24X (1-R)個Z長度向量,每Z個向量中有且僅有一個I ;設(shè)計24X (1-R)個定位單元,分別對應(yīng)每個Z長度向量,通過如下方法定位在每Z個向量中I的位置:設(shè)當(dāng)前列為V,則
Sv=MOD(v-1, Z)+1J."-' —Λ>°[sv - b + Z λν -/? < O 其中,宏矩陣B中每一個元素都代表ZXZbit的循環(huán)右移單位矩陣;當(dāng)宏矩陣B的碼長分別為648、1296和1944時,對應(yīng)的Z的值分別為27,54和81。
13.根據(jù)權(quán)利要求7或10所述的實(shí)現(xiàn)LDPC碼的編碼方法,其特征在于:在所述步驟C中,迭代地址采用如下格式:ITER — ADDR[Q]ITER—ADD.] ITER_ADDR[2] ITER_ADDR[3]ITER_ADDR[4]求解需用的已求解需用的求解得到的求解需用的已行度為3的標(biāo)知檢驗(yàn)碼地址 e碼地址檢驗(yàn)碼地址知檢驗(yàn)碼地址志
O
14.根據(jù)權(quán)利要求7所述的實(shí)現(xiàn)LDPC碼的編碼方法,其特征在于:在所述步驟C中,所述迭代地址采用如下公式:設(shè)定當(dāng)前進(jìn)程計數(shù)為I,則
L=CEIL (I/T),K=MOD(I, T) 根據(jù)LDPC迭代產(chǎn)生的迭代地址由上述公式表達(dá),其中: 當(dāng)碼率R分別為5/6、3/4、2/3和1/2時,對應(yīng)的單次循環(huán)最大迭代次數(shù)T分別為4、6、8 和 12。
15.根據(jù)權(quán)利要求7所述的實(shí)現(xiàn)LDPC碼的編碼方法,其特征在于:在所述步驟C中,GF (2)迭代求解進(jìn)行如下操作: P(ITER_ADDR[2])=MOD((p(ITER_ADDR[O])+e(ITER_ADDR[I])+p (ITER_ADDR[3])Xflag), 2) 其中,在上述公式中,公式左邊表達(dá)的是求解得到的檢驗(yàn)碼地址,公式的右邊表達(dá)出通過MOD函數(shù)及當(dāng)前運(yùn)算所需的e緩沖器中間變量地址、所需的檢驗(yàn)碼緩沖器檢驗(yàn)碼地址及當(dāng)前得到的檢驗(yàn)碼寫入檢驗(yàn)碼緩沖器地址。
16.根據(jù)權(quán)利要求7所述的實(shí)現(xiàn)LDPC碼的編碼方法,其特征在于:在所述步驟C中,迭代運(yùn)算的數(shù)據(jù)來自檢驗(yàn)碼緩沖器與e緩沖器,對檢驗(yàn)碼緩沖器只有寫操作,所述讀操作的操作步驟如下:` 將計算或者預(yù)設(shè)得到的檢驗(yàn)碼合理地備份到3個bit的寄存器,省略檢驗(yàn)碼緩沖器的讀操作并得到迭代求解操作數(shù)。
17.根據(jù)權(quán)利要求7所述的實(shí)現(xiàn)LDPC碼的編碼方法,其特征在于:在所述步驟D中,判斷初始預(yù)設(shè)條件是否正確時,判斷最后一個檢驗(yàn)方程中的3個已知檢驗(yàn)碼滿足方程,若是,則判斷結(jié)果為預(yù)設(shè)正確;若否,則判斷結(jié)果為預(yù)設(shè)錯誤。
18.根據(jù)權(quán)利要求11所述的實(shí)現(xiàn)LDPC碼的編碼方法,其特征在于:在所述步驟E中,重新調(diào)整步驟包括:在運(yùn)算GF(2)過程中,在判斷預(yù)設(shè)錯誤后,將第一個環(huán)路中求解所得的 個檢驗(yàn)碼邏輯反相,行度為3的行阻止了錯誤的傳播;其中:第一個環(huán)路的24X (1-R)次迭代一定錯誤,錯誤止于第一個環(huán)路;將前24X (1-R)次迭代的結(jié)果進(jìn)行反相操作。
【文檔編號】H04L1/00GK103634073SQ201210311120
【公開日】2014年3月12日 申請日期:2012年8月28日 優(yōu)先權(quán)日:2012年8月28日
【發(fā)明者】熊富貴 申請人:珠海全志科技股份有限公司