1.一種基于受限玻爾茲曼機的LDPC譯碼方法,其特征在于,包括如下步驟:
(1)根據(jù)應(yīng)用需求確定校驗矩陣H,大小為m×n,列重為L,行重為K;
(2)根據(jù)校驗矩陣中“1”的位置建立Tanner圖,確定變量節(jié)點和校驗節(jié)點的連接關(guān)系;
(3)根據(jù)Tanner圖建立受限玻爾茲曼機模型,Tanner圖中的變量節(jié)點作為顯層神經(jīng)元,校驗節(jié)點作為隱層神經(jīng)元;
(4)根據(jù)K輸入異或的布爾表達式e=X1⊕X2⊕…⊕Xk,構(gòu)造隱層神經(jīng)元的輸出函數(shù);將K輸入異或的布爾表達式改寫成最小項之和的形式,對于布爾表達式中布爾型的變量Xi,用實值變量表達式1+xi替換,對于布爾型的變量用實值變量表達式1-xi替換,其中xi為信息比特的值;
(5)構(gòu)造受限玻爾茲曼機的能量函數(shù),能量函數(shù)為:式中ej為(4)中第j個隱層神經(jīng)元的輸出,E為整個模型的能量;
(6)將接收到的BPSK調(diào)制后的信息比特的值賦值給顯層神經(jīng)元;
(7)前饋計算,顯層神經(jīng)元的值傳遞給隱層神經(jīng)元,通過(4)確定的輸出函數(shù)計算隱層神經(jīng)元ej的值和能量函數(shù)E的值;
(8)反饋計算,根據(jù)本次迭代所得的能量函數(shù)值,通過梯度下降法修改顯層神經(jīng)元的值,具體方法如下:
式中xi代表第i個信息比特的值,α代表學(xué)習(xí)率,用于調(diào)控每次迭代下降的步長,求和是對每一個信息比特參與的L個隱層神經(jīng)元提供的梯度求和。
(9)更新顯層神經(jīng)元的值,進行硬判決,即令大于等于0的顯層神經(jīng)元的值為1,小于0的顯層神經(jīng)元的值為-1,帶入(5)中的能量函數(shù)。若E=0,則譯碼成功;否則重復(fù)步驟(7)(8);
(10)當(dāng)?shù)螖?shù)大于設(shè)定的最大迭代次數(shù)時,不再進行譯碼,直接輸出。
2.根據(jù)權(quán)利要求1所述的基于受限玻爾茲曼機的LDPC譯碼方法,其特征在于:利用受限玻爾茲曼機對LDPC譯碼過程進行建模,通過異或的布爾表達式構(gòu)造連續(xù)可微的隱層神經(jīng)元的輸出函數(shù),通過最小化能量函數(shù)的方式來獲得最優(yōu)的信息比特分布;在最小化能量函數(shù)的過程中采用梯度下降法,可以自適應(yīng)地根據(jù)距離優(yōu)化目標的遠近調(diào)整步長。
3.一種基于受限玻爾茲曼機的LDPC譯碼裝置,其特征在于,包括控制模塊、前饋計算模塊、反饋計算模塊、顯層神經(jīng)元賦值模塊,裝置在控制模塊的調(diào)控下,在每次迭代開始時將顯層神經(jīng)元賦值模塊中的信息比特值送入前饋計算模塊,前饋計算得出的隱層神經(jīng)元的值和能量函數(shù)值送入反饋計算模塊計算梯度值和顯層神經(jīng)元的修正值,最后顯層神經(jīng)元將本次迭代信息比特的初始值與修正值相加,得到下一次迭代的信息比特值;
所述控制模塊,用于控制譯碼裝置的執(zhí)行順序;
所述前饋計算模塊用于將顯層神經(jīng)元的值傳遞給隱層神經(jīng)元,通過構(gòu)造的隱層神經(jīng)元的輸出函數(shù)計算隱層神經(jīng)元ej的值和能量函數(shù)E的值,包括與隱層神經(jīng)元數(shù)目相同的并行輸出函數(shù)計算模塊和能量函數(shù)計算模塊;輸出函數(shù)計算模塊根據(jù)輸入的顯層神經(jīng)元xi的值計算隱層神經(jīng)元ej的值,并輸出給能量函數(shù)計算模塊;能量函數(shù)計算模塊根據(jù)輸出函數(shù)計算模塊的輸出計算能量函數(shù)E的計算,若E=0,則向控制模塊輸出停止迭代信號,否則向反饋計算模塊輸出能量函數(shù)E的值;
反饋計算模塊根據(jù)本次迭代所得的能量函數(shù)值,通過梯度下降法修改顯層神經(jīng)元的值,具體方法如下:
式中xi代表第i個信息比特的值,α代表學(xué)習(xí)率,用于調(diào)控每次迭代下降的步長,求和是對每一個信息比特參與的L個隱層神經(jīng)元提供的梯度求和;包括并行梯度計算模塊和對應(yīng)的修正值計算模塊。梯度計算模塊根據(jù)前饋計算模塊輸出的隱層神經(jīng)元的值計算其對應(yīng)于每個顯層神經(jīng)元的梯度,即由于梯度值和輸出函數(shù)計算模塊的中間結(jié)果相同,因此梯度計算模塊共享輸出函數(shù)計算模塊的中間結(jié)果;修正值計算模塊接收梯度計算模塊輸出的梯度值,按照上述的具體方法分組進行加權(quán)求和、乘學(xué)習(xí)率等運算,向顯層神經(jīng)元賦值模塊輸出Δxi;
顯層神經(jīng)元賦值模塊,將反饋計算模塊輸出的修正值和上一次迭代的顯層神經(jīng)元的值相加,送入前饋計算模塊。