劉恒燕, 張立民, 閆文君, 鐘兆根, 凌 青, 梁曉軍
(1. 海軍航空大學航空作戰(zhàn)勤務學院, 山東 煙臺 264001; 2. 中國人民解放軍第91951部隊, 山東 威海 264400)
在現(xiàn)代通信系統(tǒng)中,合適的編譯碼技術能夠大大提升通信質量,在碼長足夠長時,低密度奇偶校驗(low density parity check,LDPC)碼經(jīng)過適當?shù)木幾g碼結構能夠在加性高斯白噪聲(additive white Gaussian noise,AWGN)信道中達到接近香農(nóng)容量的性能,置信傳播(belief propagation,BP)譯碼算法作為LDPC碼比較常用的經(jīng)典譯碼算法,在提升LDPC碼譯碼性能的研究中功不可沒。然而,在實際的通信系統(tǒng)中,受過采樣、設備噪聲等因素的影響,信道噪聲表現(xiàn)出一定的相關性,導致LDPC碼性能下降。如果直接引入矩陣乘法對噪聲進行白化處理,在碼長較長時復雜度較高。對于估計的聯(lián)合分布來說,其復雜度隨噪聲相關性的增加而增加,用以優(yōu)化BP譯碼器的代價過高。因此,要解決相關噪聲條件下LDPC碼譯碼性能降低的問題,需要避開完全依賴信道模型的傳統(tǒng)算法,另辟蹊徑。
文獻[8]研究發(fā)現(xiàn),通過深度學習訓練獲得Tanner圖中傳遞消息的權重,可以補償Tanner圖中環(huán)的影響,因此可以在獲得優(yōu)于傳統(tǒng)BP譯碼器譯碼性能的同時降低獲得該性能所需的迭代次數(shù)。文獻[10]將遞歸神經(jīng)網(wǎng)絡(recurrent neural network,RNN)引入BP譯碼,結合改進的隨機冗余(modified random redundant,MRR)迭代算法,提升了譯碼性能??紤]到BP譯碼包含許多乘法,文獻[12]提出了神經(jīng)偏移最小和譯碼算法,該算法無需乘法運算且易于硬件實現(xiàn)。文獻[13]對比了多層感知機(multi-layer perception, MLP)、卷積神經(jīng)網(wǎng)絡(convolutional neural network,CNN)、RNN應用于譯碼的性能,發(fā)現(xiàn)基于CNN的譯碼器能夠在參數(shù)更少的情況下得到更佳的譯碼性能。但是,這些工作都沒有實現(xiàn)相關信道噪聲LDPC碼的有效譯碼。
為解決相關噪聲條件下LDPC碼采用BP譯碼時誤碼率上升的問題,在BP譯碼中引入CNN進行降噪,但實驗過程中發(fā)現(xiàn)個別信噪比(signal to noise ratio,SNR)為0的數(shù)據(jù)點性能下降,該問題出現(xiàn)的原因是BP譯碼在碼字臨界處的誤碼率上升,為解決該問題,引入加權比特翻轉(weighted bit-flipping,WBF)算法對BP算法部分進行改進,生成加權BP (weighted BP,WBP)結構,該結構不同于BP算法的迭代結構,可以僅執(zhí)行單次譯碼。待譯碼信號首先進行一次WBP譯碼后通過CNN進行降噪處理,最后執(zhí)行剩余的WBP迭代譯碼以達到更佳譯碼性能。
BP譯碼是一個迭代處理過程,消息在Tanner圖中的變量節(jié)點和校驗節(jié)點之間傳遞。用表示某一個變量節(jié)點,用表示校驗節(jié)點集合。表示從集合中的某一個節(jié)點傳遞到集合某一個節(jié)點的消息,反之。初始值為接收信號的對數(shù)似然比(log likelihood ratio,LLR),其表達式如下所示:
(1)
式中:代表對數(shù)似然比;,分別表示第個二進制相移鍵控(binary phase shift keying,BPSK)符號和相應的接收符號;2為信道噪聲功率;Pr表示概率。變量節(jié)點和校驗節(jié)點之間信息傳遞過程如下所示:
(2)
式中:()(())表示變量節(jié)點(校驗節(jié)點)的相鄰校驗(變量)節(jié)點除了()以外的集合。經(jīng)過幾次迭代后,變量節(jié)點的對數(shù)似然比,計算為
(3)
與變量節(jié)點相對應的比特值計算如下所示:
(4)
BP譯碼在AWGN信道中譯碼效果較好,但是相關噪聲條件下,對噪聲聯(lián)合分布進行BP譯碼具有較高的復雜度。
文獻[8]仿真BP算法時發(fā)現(xiàn)其譯碼結果在譯碼接收序列幅值越接近0時,錯誤概率越高,WBF算法將變量節(jié)點對應信道輸出碼字的幅度最小值作為加權因子,對翻轉判據(jù)加權后取最小判據(jù)對應的比特進行翻轉,解決了幅值越小,碼字發(fā)生錯誤的概率越高的問題,恰好能夠彌補BP算法的不足。
BP算法的核心在于校驗節(jié)點與變量節(jié)點間軟信息的傳遞,而WBF算法處理的核心是判據(jù)加權,兩者結合時采用WBF算法的框架,數(shù)據(jù)內部采用BP算法譯碼,然后對譯碼結束后未得到正確結果的信息進行WBP,該方法稱為WBP算法,其流程圖如圖1所示。
圖1 WBP 算法流程圖Fig.1 Flow chart of WBP algorithm
從理論層面上講,WBP算法將在AWGN中獲得比BP算法更優(yōu)的譯碼性能,但其在相關噪聲中的譯碼性能則會像BP算法一樣下降。根據(jù)引言中的討論,考慮使用CNN網(wǎng)絡進行信號相關噪聲降噪,WBP算法與CNN網(wǎng)絡的結合稱為WBP-CNN譯碼算法。
WBP-CNN譯碼系統(tǒng)框架如圖2所示,信道編碼選用LDPC碼,在發(fā)射機處,長度為的均勻分布的比特信號通過LDPC編碼及BPSK調制將比特信號調制映射為長度為的向量,將該向量發(fā)送到加性高斯噪聲信道。假設信道噪聲向量為具有自相關矩陣的高斯隨機矢量,長度為。接收端的接收信號向量表達式如下:
=+
(5)
式中:SNR定義為
=10lg()
(6)
式中:為平均發(fā)射功率,=E[];為復噪聲信號的功率。由于采用了BPSK調制,有效噪聲功率為2,即假設信道噪聲是功率為2的高斯分布,傳輸符號的LLR表達式如下所示:
(7)
(8)
圖2 WBP-CNN譯碼結構Fig.2 WBP-CNN decoding structure
(9)
(10)
(11)
(12)
CNN網(wǎng)絡仿真需要明確網(wǎng)絡結構、損失函數(shù)、訓練數(shù)據(jù)及測試數(shù)據(jù)、初始化方法等其他參數(shù)。
2.2.1 CNN參數(shù)的設置
(13)
式中:等號右邊第一項為殘留噪聲功率,為是碼長;第二項為Jarque-Bera檢驗,用以確定數(shù)據(jù)高斯分布的程度;為加權因子,和在統(tǒng)計中分別稱為偏度和峰度,定義如下:
(14)
222 仿真數(shù)據(jù)的生成與訓練
訓練CNN網(wǎng)絡,需要生成訓練數(shù)據(jù)集與驗證數(shù)據(jù)集。接收端噪聲相關函數(shù)的信道模型已知時,即可仿真生成足夠的信道噪聲樣本來訓練網(wǎng)絡。選用文獻[28]中的相關模型,相關矩陣定義如下所示:
(15)
式中:, 是的第行第列個元素;是相關系數(shù),絕對值小于1,則信道噪聲樣本可生成為
=12
(16)
式中:是獨立同分布的標準高斯隨機變量的向量。SNR的設置將影響WBP譯碼結果,即影響CNN的輸入。為了防止噪聲特征被信號或錯誤掩蓋,保證CNN順利學習信道噪聲的魯棒特性,訓練數(shù)據(jù)生成SNR范圍為0~3 dB,間隔0.5 dB。每個SNR的數(shù)據(jù)生成200萬條訓練數(shù)據(jù),10萬條驗證數(shù)據(jù)。采用小批量梯度下降法訓練網(wǎng)絡。每個小型批處理包含1 400個數(shù)據(jù)塊,每個SNR的數(shù)據(jù)在一個小型批處理中占據(jù)相同的比例。在每次迭代中,隨機選擇一定數(shù)量的訓練樣本(即小批量)來計算梯度。使用Adam優(yōu)化方法搜索最優(yōu)網(wǎng)絡參數(shù)。在訓練過程中,每500次迭代檢查一次驗證集上的損失值。訓練一直進行到損失連續(xù)一段時間都沒有下降為止。
在所有仿真中,使用碼率為3/4的規(guī)則LDPC碼,碼塊長度為576,奇偶校驗矩陣來自文獻[30],使用隨機碼字進行仿真,仿真使用的筆記本配置條件如下。
GPU0: Intel(R) UHD Graphics 630,GPU1: NVIDIA GeForce GTX 1660 Ti,tensorflow-gpu 1.14.0,內存16G,9代i7處理器。
按照第3.1節(jié)及第2.2節(jié)參數(shù)設置,分別在背景噪聲相關性為0,0.1,0.5的情況下對BP譯碼算法、WBP-CNN譯碼算法進行仿真,每個算法BP部分迭代次數(shù)均為5次、10次、20次、30次、40次及50次,仿真結果如圖3~圖5所示。橫坐標為SNR,定義見式(6),縱坐標為誤比特率,BP部分迭代次數(shù)為5的BP譯碼算法曲線在圖中的標注為5置信傳播,代次數(shù)為5的WBP-CNN譯碼算法曲線在圖中的標注為5加權置信網(wǎng)絡,其他迭代次數(shù)標注方法以此類推,損失函數(shù)中取=10。
圖3 噪聲相關性為0時譯碼器性能曲線Fig.3 Decoder performance curve when noise correlation is 0
圖4 噪聲相關性為0.1時譯碼器性能曲線Fig.4 Decoder performance curve when noise correlation is 0.1
圖5 噪聲相關性為0.5時譯碼器性能曲線Fig.5 Decoder performance curve when noise correlation is 0.5
WBP-CNN算法的執(zhí)行順序為1次WBP譯碼、CNN降噪、剩余迭代WBP譯碼,例如5加權置信網(wǎng)絡算法執(zhí)行順序為1次WBP譯碼、CNN降噪、4次WBP譯碼,其他迭代次數(shù)以此類推。由于引入CNN涉及到模塊調用無法準確判斷算法計算量,計算復雜度通過運行時間來衡量。經(jīng)過多次實驗記錄,在上述實驗條件下,WBP-CNN譯碼算法對比相同迭代次數(shù)的BP算法,增加的復雜度約為2.5次BP迭代。
圖3為噪聲相關性為0時,即在白噪聲背景下的仿真結果,SNR為0~2.1 dB時,誤比特率最低,即仿真性能最好的曲線為50 BP算法;SNR為2.1~2.7 dB時,仿真性能最好的曲線是50加權置信網(wǎng)絡;SNR為2.7~3 dB時,仿真性能最好的曲線是40加權置信網(wǎng)絡算法。從3 dB點來看誤比特率,譯碼性能由優(yōu)到差依次為:40加權置信網(wǎng)絡、50加權置信網(wǎng)絡、30加權置信網(wǎng)絡、50 BP、20加權置信網(wǎng)絡、40 BP、30 BP、20 BP、10加權置信網(wǎng)絡、10 BP、5加權置信網(wǎng)絡、5 BP,最低誤比特率為4.5×10。
在誤比特率為10時,50加權置信網(wǎng)絡所需的SNR較50 BP低0.048 dB,40加權置信網(wǎng)絡所需的SNR較40 BP算法低0.075 dB。
圖4為噪聲相關性為0.1時的譯碼仿真結果,SNR為0~1.6 dB仿真性能最好的曲線是50 BP; SNR為1.6~3 dB仿真性能最好的曲線是50加權置信網(wǎng)絡。從3 dB點的誤比特率來看,性能由優(yōu)到差依次為:50加權置信網(wǎng)絡、50 BP、40加權置信網(wǎng)絡、30加權置信網(wǎng)絡、40 BP、20加權置信網(wǎng)絡、30 BP、20 BP、10加權置信網(wǎng)絡、10 BP、5加權置信網(wǎng)絡、5 BP,最低誤比特率為2.4×10。
在誤比特率為10時,50加權置信網(wǎng)絡所需的SNR較50 BP低0.034 dB, 40加權置信網(wǎng)絡所需的SNR較40 BP算法低0.055 dB。
圖5為噪聲相關性為0.5時的譯碼仿真結果,SNR為0~0.6 dB及2.2~2.65 dB時,仿真性能最好的曲線為30加權置信網(wǎng)絡;SNR為0.6~2.2 dB時,仿真性能最好的曲線是40加權置信網(wǎng)絡;SNR為2.65~3 dB時,仿真性能最好的曲線是50加權置信網(wǎng)絡。從3 dB點的誤比特率來看,性能由優(yōu)到差依次為:50加權置信網(wǎng)絡、40加權置信網(wǎng)絡、20加權置信網(wǎng)絡、10加權置信網(wǎng)絡、30加權置信網(wǎng)絡、5加權置信網(wǎng)絡、50 BP、40 BP、30 BP、20 BP、10 BP、5 BP,最低誤比特率為9×10。
在誤比特率為10時,50加權置信網(wǎng)絡所需的SNR較50 BP低0.355 dB, 40加權置信網(wǎng)絡所需的SNR較40 BP算法低0.399 dB。
本文提出了一種基于WBP-CNN的LDPC碼譯碼算法,WBP結構是BP算法與WBF算法的結合,用以解決BP算法在碼字臨界處性能降低的問題。該結構在保證軟判決算法譯碼性能的同時,引入硬判決思想提高譯碼性能。待譯碼信號經(jīng)過一次WBP譯碼后通過CNN網(wǎng)絡降低相關噪聲,最后再次進入WBP結構執(zhí)行剩余譯碼工作。實驗表明,對比BP譯碼算法,WBP-CNN譯碼算法以約2.5次BP迭代的復雜度增加為代價帶來了譯碼性能提升。在本文參數(shù)設置中,WBP-CNN算法在噪聲相關性越強時譯碼性能越好,說明噪聲相關性范圍在0~0.5時,噪聲相關性越強越利于CNN網(wǎng)絡降噪。