本發(fā)明涉及通信技術領域,具體涉及一種基于變量節(jié)點可靠性動態(tài)選擇策略的多進制LDPC碼更新方法。
背景技術:
19世紀60年代,Gallager首次提出LDPC碼,即二進制低密度奇偶校驗碼。1981年,Tanner用雙向Tanner圖來直觀地表示了LDPC碼的譯碼過程。但是,當時LDPC碼仍未受到眾多學者的重視。直到1996后,LDPC碼在編譯碼領域上受到了學術界和企業(yè)界的廣泛關注并在近二十多年得到了如火如荼地發(fā)展。碼字本身的稀疏性使得LDPC碼的譯碼復雜度較低,具有較低的誤碼平底。從碼字的構造到譯碼算法優(yōu)化以及最后的性能分析,LDPC碼擁有著一套系統的優(yōu)化設計方法。目前LDPC碼已經被WiMAX、UWB、衛(wèi)星數字視頻、10G Base-T等列為標準編碼方式,在未來,LDPC還可廣泛應用于衛(wèi)星通信、海洋探測、光傳輸、量子保密通信、全息存儲等方面。
在LDPC碼的譯碼方法方面,從消息更新的調度來看,主要分為三類:并行消息更新策略、串行消息更新策略和動態(tài)異步消息更新策略。動態(tài)異步消息更新策略是三種策略中收斂速度最快,糾錯性能最好的,非常適合應用于需要快速譯碼的場合。2007年,Casado等人提出了一種基于殘差的置信傳播算法即RBP算法,把殘差值的大小作為動態(tài)異步更新算法中的量度來選擇需要更新的消息。RBP算法是一個貪婪性較高的算法,每次都優(yōu)先更新具有最大殘差的邊信息。為了降低RBP算法的貪婪性,Casado在RBP算法的基礎上提出了貪婪性較低的NWRBP算法。后來,Kim等人提出了一種由變量節(jié)點到校驗節(jié)點邊殘差來度量的VC RBP譯碼算法以降低貪婪性的影響。
二進制LDPC碼的動態(tài)調度譯碼算法已研究得較為成熟,而關于多進制LDPC碼的動態(tài)調度譯碼算法的研究偏少,有待進一步研究。
技術實現要素:
本發(fā)明的目的是解決現有技術的缺陷,提供一種基于變量節(jié)點可靠性動態(tài)選擇策略的多進制LDPC碼更新方法,采用的技術方案如下:
一種基于變量節(jié)點可靠性動態(tài)選擇策略的多進制LDPC碼更新方法,在變量節(jié)點的點殘差的基礎上,利用可靠性等級和投票準則的動態(tài)選擇策略選擇最不穩(wěn)定的變量節(jié)點信息進行更新,所述變量節(jié)點可靠性動態(tài)選擇策略包括:
S11.根據可靠性等級對所有變量節(jié)點進行劃分,將變量節(jié)點的可靠性等級分為二級,第一級為可靠度低的變量節(jié)點集合,記為N1;第二級為可靠度高的變量節(jié)點集合,記為N2,若N1不為空集,執(zhí)行S12,若N1為空集,執(zhí)行S13,其中,可靠度高低劃分標準為:
條件A:第n個變量節(jié)點在第i次迭代過程中的判決碼字和前一次即第i-1次迭代的判決碼字相同,即
條件B:第n個變量節(jié)點在第i次迭代過程中被判為的概率和它在第i-1次迭代過程中被判為的概率存在如式的關系;
N1是由不滿足條件A或B的所有變量節(jié)點組成的集合,N2是由滿足條件A和B的所有變量節(jié)點組成的集合;
S12.根據投票準則再對N1集合中的變量節(jié)點進行一次判定,若N1中存在滿足投票準則的變量節(jié)點則從中找出殘差最大的變量節(jié)點優(yōu)先被更新,否則就從N1中不滿足投票準則的變量節(jié)點中找出具有最大殘差的變量節(jié)點優(yōu)先被更新;變量節(jié)點投票準則是指在LDPC碼的迭代譯碼算法中,若一個變量節(jié)點獲得的投票數等于此變量節(jié)點的度數,則該變量節(jié)點滿足變量節(jié)點投票準則,反之不滿足;投票數的計算方法:不滿足校驗方程的校驗節(jié)點對與其相連的變量節(jié)點投一票,由此可以得出變量節(jié)點的投票數;
S13.若集合N1是空集,則從集合N2中選擇點殘差最大的不穩(wěn)定變量節(jié)點在動態(tài)異步更新算法中優(yōu)先被更新。
作為優(yōu)選,所述變量節(jié)點的殘差的計算方式如下式:
其中,a’和b’分別表示第i-1次迭代過程中和第i次迭代過程中變量節(jié)點n的判決碼字,即表示變量節(jié)點n更新前的消息概率矢量,用表示變量節(jié)點n更新后的消息概率矢量。
在多元域中,殘差的計算并不是簡單地使用減法運算。本發(fā)明借助空間歐氏距離來推廣二元域中的殘差定義方式。提出如何在多元域中定義相對殘差的新方法。在GF(q)上,可以用一個q維矢量來表示多進制LDPC碼變量節(jié)點的消息,用表示變量節(jié)點n更新前的消息概率矢量,用表示變量節(jié)點n更新后的消息概率矢量。本發(fā)明把q維變量節(jié)點n消息變化的情況用歐氏距離(Euclidean distance)來度量,如式(1-3)。
那么,在多元域中對于變量節(jié)點n而言,它的相對殘差如式(1-4)所示。
其中,a’和b’分別表示第i-1次迭代過程中和第i次迭代過程中變量節(jié)點n的判決碼字,即
本發(fā)明中開始將大范圍內的變量節(jié)點進行劃分為兩類,即可靠度低的變量節(jié)點集合和可靠度高的變量節(jié)點集合。再利用投票準則來將可靠度低的變量節(jié)點集合進行再一次劃分,分為兩類即滿足投票準則的變量節(jié)點的集合和不滿足投票準則的變量節(jié)點的集合,再衡量各個集合的可靠性,從可靠性最低的變量節(jié)點集合中利用多元點殘差度量選擇最不可靠的變量節(jié)點來更新。可以看出,本發(fā)明的選擇策略把大范圍的搜索大大縮小到了一個較小的搜索范圍,充分利用了譯碼過程中信息的動態(tài)特性,通過層層篩選更加準確快速地為需要更新的節(jié)點,進一步加快收斂速度,提高譯碼性能。
具體地,將變量節(jié)點可靠性動態(tài)選擇策略應用在變量節(jié)點的消息更新中,具體包括如下步驟:
S21.根據可靠性等級對所有變量節(jié)點進行劃分,變量節(jié)點的可靠性等級分為二級,第一級為可靠度低的變量節(jié)點集合,記為N1;第二級為可靠度高的變量節(jié)點,記為N2;若N1存在變量節(jié)點,則執(zhí)行S22;反之從集合N2中找出具有最大殘差的變量節(jié)點優(yōu)先被更新;
S22.根據投票準則再對可靠度低的變量節(jié)點集合N1中的變量節(jié)點進行一次判定,將N1分為集合N3和N4;N3表示N1中滿足投票準則的變量節(jié)點的集合,N4表示N1中不滿足投票準則的變量節(jié)點的集合;若N3存在有變量節(jié)點則從中找出殘差最大的變量節(jié)點優(yōu)先被更新,否則就從N4中找出具有最大殘差的變量節(jié)點優(yōu)先被更新。
具體地,在一次迭代中一個消息更新過程的更新步驟包括如下:
S31.設選出的最不可靠的變量節(jié)點為maxr_i,對所有ca∈N(maxr_i)更新消息其中,N(maxr_i)表示與變量節(jié)點maxr_i相連的所有校驗節(jié)點的集合,表示校驗節(jié)點ca傳遞給變量節(jié)點maxr_i的信息;
S32.更新變量節(jié)點maxr_i,為避免變量節(jié)點maxr_i在下次迭代中被連續(xù)選中,將殘差r(maxr_i)置為0,r(maxr_i)表示變量節(jié)點maxr_i的殘差;
S33.對任一校驗節(jié)點ca∈N(maxr_i),更新消息表示變量節(jié)點maxr_i傳遞給校驗節(jié)點ca的消息;
S34.對于所有vb∈N(ca)\maxr_i預計算變量節(jié)點vb的點殘差,為下次迭代做準備,其中N(ca)\maxr_i表示除變量節(jié)點maxr_i外所有與校驗節(jié)點ca相連的變量節(jié)點的集合。
與現有技術相比,本發(fā)明具有的有益效果:本發(fā)明不單純依靠殘差為量度,而是設置了可靠性等級和投票準則來將所有變量節(jié)點按可靠性的大小依次劃分了幾類,優(yōu)先從可靠性最低的變量節(jié)點集合中選擇多元點殘差最大的變量節(jié)點作為最不可靠的變量節(jié)點,充分利用譯碼過程中消息動態(tài)變化的特性,合理地分配了計算資源,加快了收斂速度,提升了譯碼性能。
附圖說明
圖1是本發(fā)明的動態(tài)選擇策略流程圖;
圖2是本發(fā)明的譯碼方法流程圖;
圖3是(400,3,6)多進制LDPC碼的BER/SER性能對比圖(AWGN channel);
圖4是(1008,3,6)多進制LDPC碼的BER/SER性能對比圖(AWGN channel);
圖5是(2304,3,27)多進制LDPC碼的BER/SER性能對比圖(AWGN channel);
圖6是(400,3,6)多進制LDPC碼的BER/SER性能對比圖(Rayleigh channel);
圖7是(1008,3,6)多進制LDPC碼的BER/SER性能對比圖(Rayleigh channel);
圖8是(2304,3,27)多進制LDPC碼的BER/SER性能對比圖(Rayleigh channel)。
具體實施方式
下面結合附圖和實施例對本發(fā)明做進一步詳細說明。
如圖1所示,一種基于變量節(jié)點可靠性動態(tài)選擇策略的多進制LDPC碼更新方法,在變量節(jié)點的點殘差的基礎上,利用可靠性等級和投票準則的動態(tài)選擇策略選擇最不穩(wěn)定的變量節(jié)點信息進行更新,所述變量節(jié)點可靠性動態(tài)選擇策略包括:
S11.根據可靠性等級對所有變量節(jié)點進行劃分,將變量節(jié)點的可靠性等級分為二級,第一級為可靠度低的變量節(jié)點集合,記為N1;第二級為可靠度高的變量節(jié)點集合,記為N2,若N1不為空集,執(zhí)行S12,若N1為空集,執(zhí)行S13,其中,可靠度高低劃分標準為:
條件A:第n個變量節(jié)點在第i次迭代過程中的判決碼字和前一次即第i-1次迭代的判決碼字相同,即
條件B:第n個變量節(jié)點在第i次迭代過程中被判為的概率和它在第i-1次迭代過程中被判為的概率存在如式的關系;
N1是由不滿足條件A或B的所有變量節(jié)點組成的集合,N2是由滿足條件A和B的所有變量節(jié)點組成的集合;
S12.根據投票準則再對N1集合中的變量節(jié)點進行一次判定,若N1中存在滿足投票準則的變量節(jié)點則從中找出殘差最大的變量節(jié)點優(yōu)先被更新,否則就從N1中不滿足投票準則的變量節(jié)點中找出具有最大殘差的變量節(jié)點優(yōu)先被更新;變量節(jié)點投票準則是指在LDPC碼的迭代譯碼算法中,若一個變量節(jié)點獲得的投票數等于此變量節(jié)點的度數,則該變量節(jié)點滿足變量節(jié)點投票準則,反之不滿足;投票數的計算方法:不滿足校驗方程的校驗節(jié)點對與其相連的變量節(jié)點投一票,由此可以得出變量節(jié)點的投票數;
S13.從集合N2中選擇點殘差最大的不穩(wěn)定變量節(jié)點在動態(tài)異步更新算法中優(yōu)先被更新。
所述變量節(jié)點的殘差的計算方式如下式:
其中,a’和b’分別表示第i-1次迭代過程中和第i次迭代過程中變量節(jié)點n的判決碼字,即表示變量節(jié)點n更新前的消息概率矢量,用表示變量節(jié)點n更新后的消息概率矢量。
在多元域中,殘差的計算并不是簡單地使用減法運算。本發(fā)明借助空間歐氏距離來推廣二元域中的殘差定義方式。提出如何在多元域中定義相對殘差的新方法。在GF(q)上,可以用一個q維矢量來表示多進制LDPC碼變量節(jié)點的消息,用表示變量節(jié)點n更新前的消息概率矢量,用表示變量節(jié)點n更新后的消息概率矢量。本發(fā)明把q維變量節(jié)點n消息變化的情況用歐氏距離(Euclidean distance)來度量,如式(1-3)。
那么,在多元域中對于變量節(jié)點n而言,它的相對殘差如式(1-4)所示。
其中,a’和b’分別表示第i-1次迭代過程中和第i次迭代過程中變量節(jié)點n的判決碼字,即
本實施例中基于變量節(jié)點可靠性動態(tài)選擇策略,開始將大范圍內的變量節(jié)點進行劃分為兩類,即可靠度低的變量節(jié)點集合和可靠度高的變量節(jié)點集合。再利用投票準則來將可靠度低的變量節(jié)點集合進行再一次劃分,分為兩類即滿足投票準則的變量節(jié)點的集合和不滿足投票準則的變量節(jié)點的集合,再衡量各個集合的可靠性,從可靠性最低的變量節(jié)點集合中利用多元點殘差度量選擇最不可靠的變量節(jié)點來更新??梢钥闯?,本發(fā)明的選擇策略把大范圍的搜索大大縮小到了一個較小的搜索范圍,充分利用了譯碼過程中信息的動態(tài)特性,通過層層篩選更加準確快速地為需要更新的節(jié)點,進一步加快收斂速度,提高譯碼性能。
具體地,將變量節(jié)點可靠性動態(tài)選擇策略應用在變量節(jié)點的消息更新中,具體包括如下步驟:
S21.根據可靠性等級對所有變量節(jié)點進行劃分,變量節(jié)點的可靠性等級分為二級,第一級為可靠度低的變量節(jié)點集合,記為N1;第二級為可靠度高的變量節(jié)點,記為N2;若N1存在變量節(jié)點,則執(zhí)行S22;反之從集合N2中找出具有最大殘差的變量節(jié)點優(yōu)先被更新;
S22.根據投票準則再對可靠度低的變量節(jié)點集合N1中的變量節(jié)點進行一次判定,將N1分為集合N3和N4;N3表示N1中滿足投票準則的變量節(jié)點的集合,N4表示N1中不滿足投票準則的變量節(jié)點的集合;若N3存在有變量節(jié)點則從中找出殘差最大的變量節(jié)點優(yōu)先被更新,否則就從N4中找出具有最大殘差的變量節(jié)點優(yōu)先被更新。
如圖2所示,在一次迭代中一個消息更新過程的更新步驟包括如下:
S31.設選出的最不可靠的變量節(jié)點為maxr_i,對所有ca∈N(maxr_i)更新消息其中,N(maxr_i)表示與變量節(jié)點maxr_i相連的所有校驗節(jié)點的集合,表示校驗節(jié)點ca傳遞給變量節(jié)點maxr_i的信息;
S32.更新變量節(jié)點maxr_i,為避免變量節(jié)點maxr_i在下次迭代中被連續(xù)選中,將殘差r(maxr_i)置為0,r(maxr_i)表示變量節(jié)點maxr_i的殘差;
S33.對任一校驗節(jié)點ca∈N(maxr_i),更新消息表示變量節(jié)點maxr_i傳遞給校驗節(jié)點ca的消息;
S34.對于所有vb∈N(ca)\maxr_i預計算變量節(jié)點vb的點殘差,為下次迭代做準備,其中N(ca)\maxr_i表示除變量節(jié)點maxr_i外所有與校驗節(jié)點ca相連的變量節(jié)點的集合。
為了比較本發(fā)明提出的動態(tài)異步更新算法的性能,需要進行計算機仿真。具體是,采用隨機產生LDPC碼在AWGN信道和Rayleigh信道上傳輸,并利用包含本算法在內的多種不同的譯碼算法進行譯碼,假設最大迭代次數為15,最大錯誤幀數為100幀,調制方式為BPSK,Eb/N0表示歸一化信噪比,單位為分貝(dB)。
圖3、圖4和圖5分別顯示了(400,3,6),(1008,3,6)和(2304,3,27)的三種多進制LDPC碼在AWGN信道下,采用FFT-BP算法,LDSBP-A算法和本發(fā)明的算法(NV-RBP)時的誤比特率和誤符號率隨信噪比變化的關系曲線圖。從三個圖可看出,隨著信噪比的增加,三種算法的BER/SER均下降,且NV-RBP算法下降的幅度更大。在這三類算法中,NV-RBP算法的BER/SER性能表現最佳。在圖5中,LDSBP-A算法的SER性能居于NV-RBP算法和FFT-BP算法之間,NV-RBP算法的性能最好,FFT-BP算法的性能最弱。同時,可觀察到當碼率越高時,即使碼長也較長各算法的性能并非正相關的增加。這是因為各算法的SER性能是與碼字的結構有著密切的聯系,由多個因素(比如碼率,碼長)共同決定。
圖6、圖7和圖8分別顯示了(400,3,6),(1008,3,6)和(2304,3,27)的三種多進制LDPC碼在Rayleigh衰落信道下,采用FFT-BP算法、LDSBP-A算法和NV-RBP算法時的誤比特率和誤符號率隨信噪比變化的關系曲線圖。從這三幅圖可看出,NV-RBP算法在Rayleigh衰落信道上的增益要比在AGWN信道上的增益大。原因是NV-RBP算法可更大程度地糾正在移動衰落信道上那些碼間串擾導致的錯誤。從圖6可知,當BER=4×10-7,NV-RBP算法相比LDSBP-A算法的在BER上的增益大約為0.5dB。當SER=6×10-7,NV-RBP算法相比LDSBP-A算法的在SER上的增益大約為0.5dB。從圖7可知,當BER=4×10-7,NV-RBP算法相比LDSBP-A算法的在BER上的增益大約為0.4dB。當SER=6×10-7,NV-RBP算法相比LDSBP-A算法的在SER上的增益大約為0.45dB。同時,在三種譯碼算法中,不管是從BER還是從SER的角度上分析,NV-RBP算法的性能都是最優(yōu)的。