劉仲謙,丁 丹,薛乃陽
(1.航天工程大學(xué) 研究生院,北京 101416; 2.航天工程大學(xué) 電子與光學(xué)工程系,北京 101416;3.中國人民解放軍63920部隊(duì),北京 101416)
近年來,無線通信系統(tǒng)的性能需求大大提高,給硬件實(shí)現(xiàn)帶來了巨大挑戰(zhàn)。傳統(tǒng)無線通信系統(tǒng)設(shè)計(jì)是基于模型驅(qū)動的理念,其中每個模塊的優(yōu)化都是通過人們所掌握的知識信息即專家知識建立模型推導(dǎo)而來,這種優(yōu)化模式在未來越來越復(fù)雜的信道環(huán)境條件下將變得越發(fā)難以實(shí)現(xiàn)。在這一背景下,這些年來快速發(fā)展的深度學(xué)習(xí)(DL,deep learning)技術(shù)為解決無線通信系統(tǒng)的算法難題帶來了新的思路,同時也為無線通信系統(tǒng)的硬件實(shí)現(xiàn)帶來了新的設(shè)計(jì)理念。深度學(xué)習(xí)技術(shù)可以直接從海量數(shù)據(jù)中學(xué)習(xí)到所需的隱藏規(guī)律,利用這些規(guī)律做出相應(yīng)的預(yù)測或決策[1]。其數(shù)據(jù)驅(qū)動的特性正好可以解決傳統(tǒng)無線通信系統(tǒng)設(shè)計(jì)中因依賴專家知識推導(dǎo)優(yōu)化算法而產(chǎn)生的問題。
目前有關(guān)深度學(xué)習(xí)的大量研究是基于計(jì)算機(jī)、工作站、服務(wù)器等大型平臺的運(yùn)行仿真[2-3]。隨著深度學(xué)習(xí)技術(shù)研究的深入,部分高性能的神經(jīng)網(wǎng)絡(luò)模型被應(yīng)用在嵌入式硬件設(shè)備中,但在應(yīng)用過程中理論上性能優(yōu)異的網(wǎng)絡(luò)模型普遍存在著復(fù)雜度高以及計(jì)算量大的問題,以至于很多網(wǎng)絡(luò)模型應(yīng)用到嵌入式設(shè)備上效果并不理想[4-5]。
針對嵌入式設(shè)備中網(wǎng)絡(luò)計(jì)算過程耗費(fèi)大量時間和資源的問題目前已有的研究中通常集中于3個方面:1)采用諸如網(wǎng)絡(luò)裁剪[6-7]、低比特?cái)?shù)據(jù)表示[8]、模型蒸餾[9]等方法來減少數(shù)據(jù)量或計(jì)算精度,此種方法雖然減少了計(jì)算量,但同時降低了網(wǎng)絡(luò)的性能,使計(jì)算的結(jié)果精度保持在實(shí)際系統(tǒng)可接受范圍內(nèi);2)在云和終端設(shè)備上分布式混合部署深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)[10],此方法可以有效解決復(fù)雜度高和計(jì)算量大的問題,但不適用一些延時要求較高或無網(wǎng)絡(luò)支持的場景;3)使用多種硬件平臺組成的異構(gòu)計(jì)算平臺等來加速深度學(xué)習(xí)算法的計(jì)算過程[11-13],此種方法要求合理的計(jì)算資源分配,根據(jù)不同的網(wǎng)絡(luò)結(jié)構(gòu)分配不同的硬件平臺完成實(shí)現(xiàn),一旦達(dá)到較為理想的資源分配,此種方法可以有效解決神經(jīng)網(wǎng)絡(luò)應(yīng)用在嵌入式設(shè)備上效果不理想的問題。
基于以上分析可得目前已有的深度學(xué)習(xí)相關(guān)硬件實(shí)現(xiàn)大部分為系統(tǒng)復(fù)雜、體積大、成本高的系統(tǒng),而基于深度學(xué)習(xí)無線通信傳輸系統(tǒng)的實(shí)現(xiàn)趨勢為小型化、系統(tǒng)簡單、成本低的集成終端設(shè)備。本文基于此趨勢研究了基于深度學(xué)習(xí)信道補(bǔ)償技術(shù)的OFDM信號傳輸系統(tǒng)的可集成小型化智能無線電設(shè)備實(shí)現(xiàn),完成了OFDM信號收發(fā)處理、傳統(tǒng)信道估計(jì)與均衡算法、基于深度學(xué)習(xí)信道補(bǔ)償?shù)陌蹇<墝?shí)現(xiàn),推動深度學(xué)習(xí)在無線系統(tǒng)傳輸中的進(jìn)一步實(shí)用化。本文選擇實(shí)現(xiàn)OFDM信號系統(tǒng)是由于其具有較高的頻譜利用率,能夠有效的抵抗多徑效應(yīng)帶來的碼間干擾和子信道間干擾,且OFDM信號系統(tǒng)較容易實(shí)現(xiàn),具有極大的實(shí)現(xiàn)價(jià)值。另外本文選用FPGA芯片與GPU集成的智能無線電設(shè)備作為實(shí)現(xiàn)平臺,可以有效分配不同硬件的計(jì)算資源給不同算法模塊以達(dá)到OFDM信號傳輸系統(tǒng)的快速有序?qū)崿F(xiàn)。綜上所述本文以小型化智能無線電設(shè)備為平臺實(shí)現(xiàn)基于深度學(xué)習(xí)的OFDM信道補(bǔ)償技術(shù),通過數(shù)據(jù)預(yù)處理減輕神經(jīng)網(wǎng)絡(luò)工作量,完成神經(jīng)網(wǎng)絡(luò)在嵌入式硬件設(shè)備中的高效實(shí)現(xiàn),推動深度學(xué)習(xí)在無線系統(tǒng)傳輸中的進(jìn)一步實(shí)用化。
本文設(shè)計(jì)的OFDM信號傳輸系統(tǒng)旨在實(shí)現(xiàn)OFDM信號發(fā)送及接收前提下在接收端運(yùn)用傳統(tǒng)信道估計(jì)均衡和深度學(xué)習(xí)信道補(bǔ)償技術(shù)結(jié)合的方法對接收信號完成進(jìn)一步的信道補(bǔ)償從而降低收發(fā)兩端信號數(shù)據(jù)比對的誤碼率。其中硬件實(shí)現(xiàn)模塊包括OFDM信號的產(chǎn)生、傳輸、接收及后續(xù)的最小二乘(LS,least squares)估計(jì)算法、迫零(ZF,zero forcing)均衡算法、深度學(xué)習(xí)全連接神經(jīng)網(wǎng)絡(luò)信道補(bǔ)償模塊。系統(tǒng)的設(shè)計(jì)如圖1所示。
圖1 系統(tǒng)設(shè)計(jì)框圖
本文將系統(tǒng)各個模塊設(shè)計(jì)在一個集成的智能無線電設(shè)備上,其中根據(jù)計(jì)算資源消耗水平的不同,系統(tǒng)前端OFDM信號收發(fā)過程及傳統(tǒng)信道估計(jì)均衡模塊所需資源分配較少,本文將其設(shè)計(jì)在FPGA Xilinx Artix-7 XC7A75T芯片上實(shí)現(xiàn),該芯片在單個成本優(yōu)化的FPGA中提供了高性能功耗比結(jié)構(gòu)、收發(fā)器線速、DSP處理能力及AMS集成。深度學(xué)習(xí)信道補(bǔ)償技術(shù)模塊所需資源分配較多,本文將其設(shè)計(jì)在嵌入式平臺NVIDIA JETSON TX2多核處理器[14]上實(shí)現(xiàn),該處理器體積小,功耗低,創(chuàng)建了實(shí)現(xiàn)高性能并行的計(jì)算環(huán)境。
根據(jù)上文描述硬件實(shí)現(xiàn)小型化、低功耗及資源合理分配的趨勢,本文根據(jù)FPGA芯片和GPU處理器的小體積、可集成性設(shè)計(jì)開發(fā)平臺。經(jīng)過市場調(diào)研分析各種產(chǎn)品性能,最終發(fā)現(xiàn)AIR-T基本滿足本文硬件系統(tǒng)實(shí)現(xiàn)需求。硬件平臺使用unbuntu18.04 64位操作系統(tǒng),ARMv8架構(gòu),內(nèi)部構(gòu)造包括AD9371收發(fā)器,F(xiàn)PGA Xilinx Artix-7 XC7A75T芯片和JETSON TX2多核處理器。FPGA Xilinx Artix-7系列芯片具有低功耗,高性能的特性,其中XC7A75T具有75 520個邏輯單元,3 780個存儲器,可提供具有100 MHz的傳輸帶寬,具有快速實(shí)時計(jì)算能力,符合本文OFDM信號傳輸系統(tǒng)模塊設(shè)計(jì)的實(shí)現(xiàn)需求。NVIDIA Jetson TX2 系列模組尺寸比信用卡還小,可為嵌入式 人工智能(AI,Artificial Intelligence) 計(jì)算設(shè)備提供出色的速度與能效。其配備NVIDIA Pascal架構(gòu),具有256個NVIDIA CUDA 核心,高達(dá) 8 GB 內(nèi)存、59.7 GB/s 的顯存帶寬以及各種標(biāo)準(zhǔn)硬件接口,性能高達(dá) Jetson Nano 的 2.5 倍,Jetson TX1的2倍,并且功耗低至 7.5 W。Jetson TX2 系列模組非常適用于實(shí)時處理需要解決帶寬和延遲問題的應(yīng)用程序,在實(shí)時軟件無線電(SDR,software defined radio) 應(yīng)用中,使用 NVIDIA Jetson TX2,比 Intel 7500U CPU 提高了 250%的帶寬處理,比 ARM Cortex-A57(4 核)提高了 1 350%的帶寬處理。除此之外,其GPU可用于高度并行處理。綜合來看,NVIDIA Jetson TX2在性能上最大程度匹配了本文設(shè)計(jì)的神經(jīng)網(wǎng)絡(luò)信道補(bǔ)償技術(shù)模塊。
AIR-T是一款具有嵌入式高性能計(jì)算能力的小型化集成智能無線電設(shè)備,其通過集成FPGA、GPU、CPU三個數(shù)字處理器完成高性能計(jì)算、人工智能和深度學(xué)習(xí)。該系統(tǒng)可以用作深度學(xué)習(xí)算法的高度并行 SDR 處理和深度學(xué)習(xí)算法的推理引擎[15]。嵌入式 GPU 支持 SDR 應(yīng)用程序?qū)崟r處理大于 200 MHz 的帶寬。AIR-T開發(fā)套件支持Ubuntu16.4 系統(tǒng),可以通過 SoapySDR 移植現(xiàn)有的 GNU Radio 應(yīng)用程序,也可以使用自定義 GNU Radio 模塊部署神經(jīng)網(wǎng)絡(luò)或高性能應(yīng)用程序,同時,硬件支持使用 Python 或 C ++進(jìn)行編程開發(fā)。從開發(fā)層面看大大提高了開發(fā)效率??傮w來說,本文借助AIR-T智能無線電設(shè)備實(shí)現(xiàn)了一個高性能低功耗的基于深度學(xué)習(xí)信道補(bǔ)償技術(shù)的OFDM信號傳輸系統(tǒng)。
2.2.1 OFDM信號收發(fā)模塊實(shí)現(xiàn)
本文實(shí)現(xiàn)的OFDM信號收發(fā)過程主要包括OFDM信號數(shù)據(jù)的產(chǎn)生模塊、傳輸模塊和接收模塊。其中信號數(shù)據(jù)的產(chǎn)生過程如圖2所示。
圖2 OFDM信號產(chǎn)生流圖
AIR-T支持RFNoC(RF network on chips)[16]對FPGA進(jìn)行開發(fā),可借助GNU Radio[17]創(chuàng)建流圖生成python腳本完成FPGA芯片上模塊的實(shí)現(xiàn),也可使用python語言進(jìn)行自定義模塊的開發(fā),設(shè)備的初始化及模塊運(yùn)行框架由RFNoC借助C++編譯完成,具體模塊參數(shù)設(shè)置可借助GNU Radio,也可以直接通過編寫代碼指令。
OFDM信號產(chǎn)生模塊的實(shí)現(xiàn)過程為首先從gunradio庫中導(dǎo)入需要調(diào)用模塊的指令庫如digital,blocks,gr,fft等。然后通過blocks庫函數(shù)的子函數(shù)random.randint產(chǎn)生16384個隨機(jī)0、1序列,需要注意的是此處生成的是Byte數(shù)據(jù),經(jīng)過stream函數(shù)指令將數(shù)據(jù)轉(zhuǎn)化為128位固定長度并添加長度標(biāo)記,接著數(shù)據(jù)經(jīng)過repack指令重新打包,每8bits一組轉(zhuǎn)換為2bits為后續(xù)QPSK映射做準(zhǔn)備。QPSK的映射是借助digital庫函數(shù)指令對byte數(shù)據(jù)進(jìn)行復(fù)數(shù)型數(shù)據(jù)映射,映射對應(yīng)結(jié)果為0.707,-0.707,0.707j,-0.707j,將映射結(jié)果傳遞給虛擬接收器完成初始數(shù)據(jù)的生成。此前模塊之間的數(shù)據(jù)傳遞借助connect函數(shù)指令完成。RFNoC借助編譯配置可以直接將數(shù)據(jù)移入和移出FPGA,從而在應(yīng)用程序中無縫使用基于主機(jī)和基于FPGA的處理,體現(xiàn)在開發(fā)方式上即為GNU Radio模塊之間的連線和代碼指令connect函數(shù)的使用,這也為下文實(shí)現(xiàn)信號傳輸模塊和傳統(tǒng)信道估計(jì)與均衡模塊提供了便利。
在已有初始數(shù)據(jù)條件下然后進(jìn)行OFDM子載波分配,借用ofdm_carrier_allocator指令分配數(shù)據(jù)子載波及導(dǎo)頻子載波,導(dǎo)頻子載波間隔為1,數(shù)值為0.707,-0.707,0.707j,-0.707j的隨機(jī)排列,接著是調(diào)用fft函數(shù)對數(shù)據(jù)進(jìn)行快速傅里葉逆變換(IFFT,inverse fast fourier transform)形成OFDM信號數(shù)據(jù),此處FPGA中FFT的實(shí)現(xiàn)也是通過RFNoC編譯調(diào)用Xilinx CoreGen IP完成。最后使用ofdm_cyclic_prefixer函數(shù)指令給OFDM信號添加16位循環(huán)前綴(CP,cyclic prefix),將時域信號傳遞給虛擬接收器完成OFDM信號數(shù)據(jù)的生成。
信號的傳輸模塊是AWGN信道模塊的設(shè)計(jì),此處主要借助blocks庫函數(shù)中有關(guān)數(shù)學(xué)運(yùn)算的模塊和connect指令,首先依照信號功率求解公式借助庫函數(shù)中求和與除法模塊運(yùn)算指令對時域數(shù)據(jù)進(jìn)行處理。求解公式為:
(1)
xn為時域信號虛擬接收器中數(shù)據(jù)。S為信號功率模塊數(shù)據(jù)。
然后再借助指數(shù)、乘方及相加模塊指令完成噪聲方差模塊和信號疊加噪聲模塊的實(shí)現(xiàn)。噪聲方差公式為:
S2=S×10(-ebn0/10)
(2)
ebn0為可設(shè)置數(shù)據(jù)變量Eb/N0。S2為噪聲方差模塊數(shù)據(jù)。
信號疊加噪聲公式為:
(3)
Y為傳輸模塊虛擬接收器中數(shù)據(jù),Sn為與已知產(chǎn)生信號長度相同的隨機(jī)序列。
OFDM信號的接收模塊為信號產(chǎn)生模塊的反向操作,接收模塊的實(shí)現(xiàn)過程是將OFDM信號傳輸模塊中的數(shù)據(jù)作為數(shù)據(jù)源,處理模塊包括去CP,F(xiàn)FT解調(diào),其開發(fā)方式同樣采用直接編寫python代碼腳本的方式完成。
2.2.2 傳統(tǒng)信道估計(jì)與均衡算法模塊實(shí)現(xiàn)
本文借助FPGA芯片開發(fā)實(shí)現(xiàn)LS信道估計(jì)及ZF均衡模塊的方法與上文描述的模塊實(shí)現(xiàn)方法相同,需要注意的是connect指令連接的模塊位置。LS信道估計(jì)公式為:
(4)
ZF均衡公式為:
(5)
2.3.1 網(wǎng)絡(luò)結(jié)構(gòu)的選擇
根據(jù)上文描述傳統(tǒng)信道估計(jì)與均衡模塊有效減少了神經(jīng)網(wǎng)絡(luò)層數(shù)和神經(jīng)元個數(shù),因此本文在設(shè)計(jì)神經(jīng)網(wǎng)絡(luò)模塊時選擇層數(shù)較少的全連接神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),有效控制了神經(jīng)網(wǎng)絡(luò)模塊的計(jì)算次數(shù)。全連接神經(jīng)網(wǎng)絡(luò)(FCNN,full connected neural network)[18]的網(wǎng)絡(luò)結(jié)構(gòu)是從輸入層到隱含層,再到輸出層,層與層節(jié)點(diǎn)之間是全部連接的,但是隱含層之間的節(jié)點(diǎn)是無連接的。其中該神經(jīng)網(wǎng)絡(luò)需要設(shè)計(jì)的參數(shù)包括神經(jīng)網(wǎng)絡(luò)層數(shù)、神經(jīng)元個數(shù)、激活函數(shù)、學(xué)習(xí)率、優(yōu)化器、損失函數(shù)等。
本文實(shí)現(xiàn)的全連接神經(jīng)網(wǎng)絡(luò)層數(shù)為2層,分別為輸入層與輸出層,中間無隱藏層,而神經(jīng)元個數(shù)與每次運(yùn)算處理數(shù)據(jù)的個數(shù)有關(guān),本文一幀數(shù)據(jù)包括2個64位的OFDM符號,其實(shí)部加虛部的數(shù)據(jù)位數(shù)為256位,所以輸入層與輸出層的神經(jīng)元個數(shù)都為256。
激活函數(shù)主要是為了給模型加入非線性因素,讓模型擁有更好的表達(dá)能力[19]。激活函數(shù)的選擇取決于數(shù)據(jù)的特性,本文設(shè)計(jì)的OFDM數(shù)據(jù)經(jīng)過QPSK調(diào)制,具有雙極性,所以激活函數(shù)選擇雙切正切(Tanh)函數(shù)。
損失函數(shù)的本質(zhì)是根據(jù)真實(shí)值和預(yù)測值的距離來改變模型的收斂方向。常用的損失函數(shù)有均方誤差(MSE, mean square error)和交叉熵[20]。優(yōu)化器的選擇與模型優(yōu)化方式有關(guān),優(yōu)化的實(shí)質(zhì)是在損失函數(shù)和正則化函數(shù)確定的前提下,使權(quán)重更新達(dá)到最優(yōu)。優(yōu)化算法分為一階算法和二階算法,由于二階導(dǎo)計(jì)算成本高所以二階算法不常用,一階算法中最常用的是梯度下降法。學(xué)習(xí)率就是使梯度下降的步長,學(xué)習(xí)率也是每個優(yōu)化器的重要參數(shù)。常用的優(yōu)化器有小批量梯度下降優(yōu)化算法(SGD)、引入一階動量的梯度下降算法(SGDM)、梯度平方根算法(RMSProp)、自適應(yīng)動量估計(jì)算法(Adam)[21]。本文對于優(yōu)化器和損失函數(shù)的選取則基于常規(guī)考慮采用RMSProp優(yōu)化器和MSE損失函數(shù),初始學(xué)習(xí)率設(shè)置為0.001且每訓(xùn)練500輪數(shù)據(jù)將學(xué)習(xí)率設(shè)置為原來的1/5,在訓(xùn)練過程中減小學(xué)習(xí)率不僅可以加快神經(jīng)網(wǎng)絡(luò)的擬合速度,還可以提高網(wǎng)絡(luò)參數(shù)的擬合精度。
2.3.2 全連接神經(jīng)網(wǎng)絡(luò)信道補(bǔ)償技術(shù)模塊實(shí)現(xiàn)
2.3.2.1 神經(jīng)網(wǎng)絡(luò)參數(shù)設(shè)置及GPU配置
本文借助tensorflow[22]進(jìn)行模塊開發(fā)和配置GPU實(shí)現(xiàn)模塊正常運(yùn)行。首先是全連接神經(jīng)網(wǎng)絡(luò)輸入層與輸出層的構(gòu)建,網(wǎng)絡(luò)層參數(shù)的設(shè)置需要從tensorflow.contrib.layers庫函數(shù)中導(dǎo)入xavier_initializer,通過tf.Variable指令設(shè)置權(quán)重與偏置變量,變量的矩陣大小對應(yīng)神經(jīng)元個數(shù)即256。然后根據(jù)公式設(shè)置層中變量與輸入數(shù)據(jù)的運(yùn)算關(guān)系:
y=x×w+b
(6)
x為輸入數(shù)據(jù),w為權(quán)重,b為偏置,需要注意的是,在設(shè)置運(yùn)算關(guān)系時還要借助tf.nn.tanh指令添加激活函數(shù)。
接下來需要根據(jù)MSE公式設(shè)置損失函數(shù)參數(shù):
(7)
其中:yi表示實(shí)際值,ypre表示預(yù)測值。
然后通過tf.placeholder指令設(shè)置學(xué)習(xí)率參數(shù)并借助損失函數(shù)完成優(yōu)化器參數(shù)設(shè)置。
網(wǎng)絡(luò)參數(shù)設(shè)置完成后需要將整個神經(jīng)網(wǎng)絡(luò)的訓(xùn)練和測試過程配置到GPU上。為了實(shí)現(xiàn)高效計(jì)算,本文借助tensorflow中config設(shè)置的allow_growth選項(xiàng)將網(wǎng)絡(luò)運(yùn)算進(jìn)程配置在所有GPU內(nèi)存中以實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)模塊在JETSON TX2內(nèi) GPU上的配置運(yùn)行。allow_growth選項(xiàng)可以根據(jù)運(yùn)算需要自主分配GPU內(nèi)存,運(yùn)算開始時此選項(xiàng)會分配較小的內(nèi)存,隨著網(wǎng)絡(luò)運(yùn)算次數(shù)增加需要更多的GPU內(nèi)存,此選項(xiàng)會擴(kuò)展tensorflow進(jìn)程所需的GPU內(nèi)存區(qū)域。
2.3.2.2 神經(jīng)網(wǎng)絡(luò)訓(xùn)練與測試過程的GPU實(shí)現(xiàn)
完成GPU運(yùn)行環(huán)境的配置后接下來是訓(xùn)練數(shù)據(jù)與測試數(shù)據(jù)的選擇,這些FPGA模塊數(shù)據(jù)是借助PCle 2.0 X4通道傳輸給JETSON TX2平臺。具體數(shù)據(jù)的產(chǎn)生、網(wǎng)絡(luò)訓(xùn)練及測試過程如圖3所示。
圖3 GPU實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)信道補(bǔ)償模塊流程圖
本文通過多次行2.2章節(jié)中的FPGA實(shí)現(xiàn)模塊得到大量神經(jīng)網(wǎng)絡(luò)的訓(xùn)練數(shù)據(jù)與測試數(shù)據(jù)存入JETSON TX2平臺中,訓(xùn)練數(shù)據(jù)包括網(wǎng)絡(luò)訓(xùn)練標(biāo)簽和網(wǎng)絡(luò)輸入數(shù)據(jù)集,訓(xùn)練標(biāo)簽是指分配子載波模塊數(shù)據(jù),其數(shù)據(jù)結(jié)構(gòu)是信號實(shí)部與虛部的串聯(lián),網(wǎng)絡(luò)輸入數(shù)據(jù)集是指ZF均衡模塊數(shù)據(jù),數(shù)據(jù)結(jié)構(gòu)與標(biāo)簽數(shù)據(jù)相同。測試數(shù)據(jù)分為網(wǎng)絡(luò)輸入數(shù)據(jù)集和誤碼率比對數(shù)據(jù),其產(chǎn)生流程、參數(shù)設(shè)置與訓(xùn)練數(shù)據(jù)一致,同樣從對應(yīng)FPGA模塊獲取,其中誤碼率比對數(shù)據(jù)對應(yīng)訓(xùn)練數(shù)據(jù)的訓(xùn)練標(biāo)簽。
本文在JETSON TX2平臺上存儲256×1 000 000組訓(xùn)練數(shù)據(jù),256×100 000組測試數(shù)據(jù)。訓(xùn)練過程的實(shí)現(xiàn)為首先通過指令讀取訓(xùn)練數(shù)據(jù)將網(wǎng)絡(luò)輸入集分配在網(wǎng)絡(luò)的輸入端,訓(xùn)練標(biāo)簽分配在網(wǎng)絡(luò)的輸出端,然后再借助tensorflow指令設(shè)置訓(xùn)練輪數(shù)為5 000,學(xué)習(xí)率的設(shè)置如上文所訴,設(shè)置完成后通過指令運(yùn)行神經(jīng)網(wǎng)絡(luò)訓(xùn)練擬合權(quán)重與偏置參數(shù)。以上為神經(jīng)網(wǎng)絡(luò)信道補(bǔ)償模塊的訓(xùn)練實(shí)現(xiàn)過程,即神經(jīng)網(wǎng)絡(luò)在擬合參數(shù)時學(xué)習(xí)并補(bǔ)償了信道中未被LS信道估計(jì)和ZF均衡解決的未知誤差。當(dāng)網(wǎng)絡(luò)訓(xùn)練完成后通過tf.train.Saver()等相關(guān)指令將網(wǎng)絡(luò)參數(shù)保存在GPU中供測試使用,也可不保存參數(shù)直接測試網(wǎng)絡(luò)。測試過程的實(shí)現(xiàn)同樣先通過指令讀取測試數(shù)據(jù),將測試網(wǎng)絡(luò)輸入集分配在網(wǎng)絡(luò)的輸入端,運(yùn)行已訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)信道補(bǔ)償模塊得到補(bǔ)償后的輸出端信號數(shù)據(jù),將輸出端數(shù)據(jù)與誤碼率比對數(shù)據(jù)進(jìn)行誤碼率分析顯示網(wǎng)絡(luò)信道補(bǔ)償模塊的實(shí)現(xiàn)效果。
本文在FPGA芯片上實(shí)現(xiàn)OFDM信號收發(fā)模塊時使用的數(shù)據(jù)位數(shù)為16 384,信號帶寬為31.25 MHz。在其他模塊參數(shù)設(shè)置不變前提下改變AWGN傳輸信道模塊中Eb/N0參數(shù),圖4~6分別為Eb/N0為5,15,25時OFDM接收信號的時域圖和頻域圖。
圖4 Eb/N0=5時OFDM接收信號時域圖與頻域圖
圖5 Eb/N0=15時OFDM接收信號時域圖與頻域圖
圖6 Eb/N0=25時OFDM接收信號時域圖與頻域圖
從圖6來看,OFDM接收信號模塊中輸出信號的時域頻域圖符合OFDM信號圖像特征,頻譜帶寬為31.25 M。其中不同Eb/N0參數(shù)值使得AWGN信道對接收信號時域部分的影響是不同的,在Eb/N0值較低時信號時域部分受噪聲影響較大,當(dāng)Eb/N0值大于15時,噪聲影響明顯減輕,符合AWGN信道特性。綜上說明本文在FPGA芯片上有效實(shí)現(xiàn)了OFDM信號收發(fā)及傳輸模塊。
針對在FPGA上實(shí)現(xiàn)傳統(tǒng)信道估計(jì)與均衡模塊的性能測試,本文以模塊輸出數(shù)據(jù)與OFDM信號產(chǎn)生模塊數(shù)據(jù)進(jìn)行誤碼比對,得出如下誤碼率圖:
由圖7可知,當(dāng)Eb/N0為10時,傳統(tǒng)信道估計(jì)與均衡模塊可實(shí)現(xiàn)10-2量級的誤碼率性能,當(dāng)Eb/N0大于15時,此模塊可達(dá)到10-3量級的誤碼率數(shù)據(jù)均衡結(jié)果,而在實(shí)際系統(tǒng)中,此模塊性能無法達(dá)到OFDM信號精確傳輸?shù)囊?,需要對輸出信號進(jìn)行后續(xù)信道補(bǔ)償。
圖7 不同Eb/N0下傳統(tǒng)信道估計(jì)與均衡模塊誤碼率圖
本文通過記錄不同Eb/N0參數(shù)條件下網(wǎng)絡(luò)訓(xùn)練過程中訓(xùn)練輪數(shù)與損失函數(shù)值之間的關(guān)系來觀察網(wǎng)絡(luò)的計(jì)算復(fù)雜度和參數(shù)擬合速度,記錄結(jié)果如圖8~10所示。
圖8 Eb/N0=5時網(wǎng)絡(luò)訓(xùn)練情況
圖9 Eb/N0=15時網(wǎng)絡(luò)訓(xùn)練情況
圖10 Eb/N0=15時網(wǎng)絡(luò)訓(xùn)練情況
從圖8分析得知,在Eb/N0為5時,全連接神經(jīng)網(wǎng)絡(luò)只需400~500輪的訓(xùn)練就能達(dá)到參數(shù)擬合,在Eb/N0為15時,此網(wǎng)絡(luò)只需不到300輪就能接近擬合,當(dāng)Eb/N0為25時,網(wǎng)絡(luò)只需不到50輪就能擬合參數(shù),這說明此網(wǎng)絡(luò)復(fù)雜度低,計(jì)算量小,參數(shù)擬合速度快,在硬件實(shí)現(xiàn)方面具有結(jié)構(gòu)優(yōu)勢。
本文借助NVIDIA Jetson系列邊緣盒子配置性能查看工具jtop對神經(jīng)網(wǎng)絡(luò)模塊訓(xùn)練和測試過程中GPU的使用情況進(jìn)行了記錄,記錄結(jié)果如下:
圖11神經(jīng)網(wǎng)絡(luò)運(yùn)行之前GPU資源使用情況,未運(yùn)行網(wǎng)絡(luò)前GPU的使用效率在0~4%左右。
圖11 神經(jīng)網(wǎng)絡(luò)未訓(xùn)練時GPU使用效率圖
圖12為神經(jīng)網(wǎng)絡(luò)訓(xùn)練過程中GPU的使用效率情況,此過程中GPU的使用效率從6%提升到99%,說明網(wǎng)絡(luò)訓(xùn)練過程占用了GPU全部計(jì)算資源。
圖12 神經(jīng)網(wǎng)絡(luò)訓(xùn)練過程中GPU使用效率圖
圖13為神經(jīng)網(wǎng)絡(luò)測試過程中GPU使用效率情況,測試過程中GPU的使用效率在4%~76%之間,這說明測試過程并不需要占用GPU全部計(jì)算資源,同樣說明如果將訓(xùn)練好的網(wǎng)絡(luò)保存在Jetson TX2平臺上,再次調(diào)用時不需要分配過多硬件資源。
圖13 神經(jīng)網(wǎng)絡(luò)測試過程中GPU使用效率圖
圖14是不同Eb/N0參數(shù)條件下傳統(tǒng)信道估計(jì)均衡模塊與全連接神經(jīng)網(wǎng)絡(luò)信道補(bǔ)償模塊的性能對比圖。
圖14 不同Eb/N0情況下不同模塊誤碼率圖
從圖中分析得當(dāng)Eb/N0為15時經(jīng)過信道補(bǔ)償模塊后的數(shù)據(jù)誤碼率達(dá)到10-5量級,相比傳統(tǒng)信道估計(jì)均衡模塊具有明顯的性能優(yōu)勢。從硬件實(shí)現(xiàn)方面分析,由上文可知,此網(wǎng)絡(luò)在GPU上實(shí)現(xiàn)時,具有網(wǎng)絡(luò)復(fù)雜度低,計(jì)算量小,參數(shù)擬合快的結(jié)構(gòu)優(yōu)勢。此模塊還可以通過提前訓(xùn)練將擬合參數(shù)保存在Jetson TX2平臺上供實(shí)際系統(tǒng)直接使用,此過程不需要占用全部GPU計(jì)算資源。
隨著深度學(xué)習(xí)在嵌入式設(shè)備上實(shí)現(xiàn)的研究,簡單便攜的集成設(shè)備已成為基于深度學(xué)習(xí)無線通信傳輸系統(tǒng)的實(shí)現(xiàn)趨勢。結(jié)合傳統(tǒng)系統(tǒng)以模型驅(qū)動為設(shè)計(jì)理念和基于深度學(xué)習(xí)以數(shù)據(jù)驅(qū)動為設(shè)計(jì)基礎(chǔ)的OFDM信號傳輸系統(tǒng)實(shí)現(xiàn)具有一定的發(fā)展前景,根據(jù)不同系統(tǒng)模塊計(jì)算量大小借助集成設(shè)備分配不同硬件計(jì)算資源可以高效有序的實(shí)現(xiàn)高性能低功耗的基于深度學(xué)習(xí)信道補(bǔ)償技術(shù)的OFDM信號傳輸系統(tǒng)。
1)本系統(tǒng)借助python對AIR-T智能無線電設(shè)備進(jìn)行頂層開發(fā)并在FPGA芯片上實(shí)現(xiàn)了OFDM信號產(chǎn)生模塊、信號傳輸模塊、信號接收模塊,下一步有望借助AD9371收發(fā)器實(shí)現(xiàn)芯片數(shù)據(jù)無線信道傳輸。
2)本系統(tǒng)基于傳統(tǒng)信道估計(jì)與均衡模塊所需少量運(yùn)算資源的考慮在AIR-T的FPGA芯片上實(shí)現(xiàn)LS信道估計(jì)模塊、ZF均衡模塊,通過模塊數(shù)據(jù)的誤碼率性能分析,傳統(tǒng)信道估計(jì)與均衡模塊性能無法滿足實(shí)際傳輸系統(tǒng)需求,需要借助神經(jīng)網(wǎng)絡(luò)信道補(bǔ)償模塊完成進(jìn)一步的性能提升。
3)本系統(tǒng)基于深度學(xué)習(xí)模塊所需大量運(yùn)算資源的考慮在AIR-T的GPU上實(shí)現(xiàn)了全連接神經(jīng)網(wǎng)絡(luò)信道補(bǔ)償模塊,通過觀察分析得出此網(wǎng)絡(luò)復(fù)雜度低,計(jì)算量小,參數(shù)擬合速度快,這也說明LS信道估計(jì)與ZF均衡模塊有效降低了網(wǎng)絡(luò)訓(xùn)練時的運(yùn)算次數(shù)。從測試性能方面分析,經(jīng)過全連接神經(jīng)網(wǎng)絡(luò)信道補(bǔ)償模塊后的數(shù)據(jù)誤碼率比經(jīng)過傳統(tǒng)信道估計(jì)均衡模塊后的誤碼率提高2個量級,具有明顯的性能優(yōu)勢。另外測試過程并不需要占用GPU全部計(jì)算資源,這說明如果將訓(xùn)練好的網(wǎng)絡(luò)保存在GPU所在平臺上,再次調(diào)用時并不需要分配過多硬件資源。