周 凡,趙 軒,邵 杰
(南京航空航天大學(xué) 電子信息工程學(xué)院,江蘇 南京 211106)
功率放大器作為輻射源發(fā)射機(jī)不可或缺的一個(gè)電路模塊,直接影響著輻射源整體的性能。理想的功率放大器實(shí)現(xiàn)的是線性功率放大,但實(shí)際應(yīng)用中,為了追求更高的效率,功率放大器內(nèi)部晶體管常常工作在開(kāi)關(guān)狀態(tài),因此實(shí)際的功率放大器系統(tǒng)中含有較多非線性成分[1]。功率放大器的行為建模是利用功率放大器的輸入輸出,實(shí)現(xiàn)一個(gè)非線性映射系統(tǒng),用于模擬功率放大器的內(nèi)部功能實(shí)現(xiàn)。此類研究有助于研究人員理解功率放大器內(nèi)部非線性組成,并可幫助研究人員借助建模仿真來(lái)實(shí)現(xiàn)預(yù)失真技術(shù)[2],降低放大器的非線性失真。
早期的行為建模方法針對(duì)的是簡(jiǎn)單的電路系統(tǒng)或者窄帶信號(hào)等應(yīng)用場(chǎng)合,先后出現(xiàn)了無(wú)記憶多項(xiàng)式模型[3]、Saleh模型[4]和查找表(Look Up Table, LUT)[5]等無(wú)記憶建模方法。近年來(lái),隨著調(diào)制信號(hào)的多樣化,輻射源由窄帶信號(hào)不斷向?qū)拵盘?hào)過(guò)渡,功率放大器的非線性記憶效應(yīng)帶來(lái)的影響逐漸增加,早期的無(wú)記憶建模方法不再有效。Volterra級(jí)數(shù)作為Taylor級(jí)數(shù)的一種拓展[6],可用于建模帶有記憶效應(yīng)的非線性函數(shù)。文獻(xiàn)[7]在數(shù)字預(yù)失真系統(tǒng)中使用了Volterra級(jí)數(shù)建模所使用的RF放大器,使得系統(tǒng)中的閉環(huán)估計(jì)器收斂到了穩(wěn)定狀態(tài)。但Volterra級(jí)數(shù)建模參數(shù)量會(huì)隨著預(yù)置的非線性層數(shù)增加而快速上升,對(duì)于強(qiáng)非線性系統(tǒng),存在參數(shù)爆炸等問(wèn)題[8]。
目前,神經(jīng)網(wǎng)絡(luò)建模已成為該領(lǐng)域的主流研究方向[9-16]。文獻(xiàn)[9]將徑向基神經(jīng)網(wǎng)絡(luò)(Radial Basis Function Neural Network,RBF-NN)用于功率放大器的記憶建模。文獻(xiàn)[10]和文獻(xiàn)[11]分別提出的Elman網(wǎng)絡(luò)模型和Jordan模型也可實(shí)現(xiàn)類似的建模結(jié)果。但此類方法都無(wú)法接收較長(zhǎng)的序列,且該網(wǎng)絡(luò)只具備一層隱含層,模型復(fù)雜度較弱,導(dǎo)致建模精度較低。為了解決可變輸入和記憶問(wèn)題,動(dòng)態(tài)神經(jīng)網(wǎng)絡(luò)被引入到功率放大器行為建模領(lǐng)域中。文獻(xiàn)[12]采用深度殘差遞歸神經(jīng)網(wǎng)絡(luò)(Deep-Residual Recurrent Neural Network,DR-RNN)建模了非線性動(dòng)力學(xué)系統(tǒng),顯著提高了建模精度。作為RNN的一種改進(jìn)網(wǎng)絡(luò),文獻(xiàn)[13]中采用長(zhǎng)短時(shí)記憶神經(jīng)元(Long-Short Term Memory,LSTM)神經(jīng)網(wǎng)絡(luò)對(duì)5/6G寬帶功放實(shí)現(xiàn)了動(dòng)態(tài)非線性建模,證明該類方法具有良好的泛化性[13]。文獻(xiàn)[14]考慮到單獨(dú)的LSTM網(wǎng)絡(luò)在建模時(shí)存在效率問(wèn)題,故將部分網(wǎng)絡(luò)改為多層感知機(jī)結(jié)構(gòu)。該方法雖然提升了建模精度和效率,但并未從根本上解決效率問(wèn)題。得益于自回歸結(jié)構(gòu),動(dòng)態(tài)神經(jīng)網(wǎng)絡(luò)能充分保留記憶特性,提高整體的建模精度,但其迭代效率會(huì)大幅降低。
為了解決現(xiàn)有建模方法的不足,本文提出一種基于深度時(shí)序卷積網(wǎng)絡(luò)(Temporal Convolutional Network,TCN)的功率放大器行為建模方法。
卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)是一種深度前饋神經(jīng)網(wǎng)絡(luò),其在特征處理上具有特征平移不變性和旋轉(zhuǎn)拉伸不變性,被廣泛應(yīng)用于各類圖像處理、信號(hào)處理問(wèn)題。不同于人工設(shè)計(jì)的特征提取器,CNN通過(guò)數(shù)據(jù)迭代修正權(quán)重,具有針對(duì)性,可以避免人工設(shè)計(jì)的不足[17]。CNN基本結(jié)構(gòu)包括:輸入層、卷積層、池化層以及全連接層。
圖1 CNN基本組成 Figure 1. Basic structure of CNN
輸入層是輸入數(shù)據(jù)進(jìn)入的端口,該層的形狀需要與輸入數(shù)據(jù)相匹配。卷積層是CNN的核心結(jié)構(gòu),數(shù)據(jù)流在傳遞過(guò)程中,會(huì)與卷積層中的多個(gè)卷積核進(jìn)行卷積以提取出高層特征。卷積核的維度與輸入數(shù)據(jù)流的維度相匹配。池化層一般連接在卷積層之后,用于抽象出當(dāng)前特征簇中的有效特征。全連接(Fully Connected,F(xiàn)C)層作為CNN最后一層,實(shí)現(xiàn)了特征簇到輸出數(shù)據(jù)的非線性變換。
為了將CNN應(yīng)用到功率放大器建模中,需要作出一個(gè)假設(shè):功率放大器當(dāng)前的輸出只取決于有限時(shí)長(zhǎng)的歷史輸入數(shù)據(jù)?;诋?dāng)前的假設(shè),當(dāng)輸入為有限時(shí)長(zhǎng)的數(shù)據(jù)序列時(shí),可以判定序列中已經(jīng)包含了所有跟當(dāng)前輸出有關(guān)的信息量,則可以根據(jù)序列前有限時(shí)長(zhǎng)的數(shù)據(jù)來(lái)預(yù)測(cè)當(dāng)前的輸出。實(shí)際建模中為了降低特征損失,提高生成數(shù)據(jù)精度,需要?jiǎng)h除網(wǎng)絡(luò)結(jié)構(gòu)中的池化層,然而這種方案會(huì)成倍增加網(wǎng)絡(luò)深度,不適用于長(zhǎng)記憶效應(yīng)的系統(tǒng)建模。此外,傳統(tǒng)CNN建模方法屬于單向多輸入單輸出模型,一旦確定了網(wǎng)絡(luò)結(jié)構(gòu),輸入數(shù)據(jù)的形狀也隨之確定,無(wú)法處理變長(zhǎng)數(shù)據(jù)。
深度時(shí)序卷積網(wǎng)絡(luò)解決了傳統(tǒng)CNN建模方法中的諸多缺點(diǎn)。針對(duì)無(wú)法保留長(zhǎng)記憶的問(wèn)題,其內(nèi)部單元采用了因果膨脹卷積來(lái)大幅拓寬網(wǎng)絡(luò)的感受野。在應(yīng)對(duì)深度網(wǎng)絡(luò)的弊端方面,采用殘差結(jié)構(gòu)來(lái)減少梯度彌散等問(wèn)題。為了能處理變長(zhǎng)數(shù)據(jù),采用一種并行卷積計(jì)算結(jié)構(gòu),實(shí)現(xiàn)了類似RNN的靈活數(shù)據(jù)處理能力。
為了提取更長(zhǎng)時(shí)間的歷史信息,需要定義足夠的有限時(shí)長(zhǎng),但是過(guò)長(zhǎng)的輸入會(huì)導(dǎo)致構(gòu)建的卷積神經(jīng)網(wǎng)絡(luò)層數(shù)過(guò)深。采用膨脹卷積(Dilated Convolution)[18]結(jié)構(gòu)可以在保證感受野不變的情況下大幅減少網(wǎng)絡(luò)層數(shù)。膨脹系數(shù)為4的膨脹卷積示意圖如圖2所示。
圖2 四倍膨脹卷積示意圖Figure 2. Quadruple dilated convolution
原始數(shù)據(jù)經(jīng)過(guò)長(zhǎng)度為3的卷積核之后,生成了第2層特征數(shù)據(jù),然而第3層的輸出數(shù)據(jù)并非由緊密相連的第2層特征卷積得到,而是由固定間隔點(diǎn)的特征卷積而來(lái),間隔的點(diǎn)數(shù)加一,即為膨脹系數(shù)。此種卷積方式可以在網(wǎng)絡(luò)深度不變的前提下,大幅增加當(dāng)前輸出點(diǎn)的感受野。
若常規(guī)一維卷積中卷積核長(zhǎng)度為K,則單次卷積的感受野大小也為K。采用膨脹系數(shù)為d、卷積核長(zhǎng)度為K的膨脹卷積,則單次卷積的感受野大小Kd如式(1)所示。
Kd=d×(K-1)+1
(1)
式(1)表明,單次膨脹卷積相比于常規(guī)卷積,其感受野的大小增加了約d倍,且隨網(wǎng)絡(luò)層數(shù)成指數(shù)型增長(zhǎng)。
圖3 因果卷積示意圖Figure 3. Causal convolution
增加網(wǎng)絡(luò)深度可以提高行為建模的非線性擬合能力,但網(wǎng)絡(luò)層數(shù)過(guò)深,會(huì)帶來(lái)網(wǎng)絡(luò)梯度消失、訓(xùn)練緩慢和訓(xùn)練結(jié)果過(guò)擬合等問(wèn)題,導(dǎo)致網(wǎng)絡(luò)建模能力下降。為了減少網(wǎng)絡(luò)層數(shù)帶來(lái)的影響,需要向深度時(shí)序卷積網(wǎng)絡(luò)中引入殘差結(jié)構(gòu)。
殘差結(jié)構(gòu)源于殘差網(wǎng)絡(luò)(Residual Neural Network,ResNet)[20]。文獻(xiàn)[20]中搭建了層數(shù)達(dá)152層的超深度神經(jīng)網(wǎng)絡(luò),其網(wǎng)絡(luò)中的核心設(shè)計(jì)就是殘差結(jié)構(gòu)。殘差結(jié)構(gòu)在卷積網(wǎng)絡(luò)中引入了直連通道,基本結(jié)構(gòu)如圖4所示。
圖4 殘差結(jié)構(gòu)示意圖Figure 4. Residual structure
輸入Input經(jīng)過(guò)W1與W2兩層變換之后,與自身拼接,拼接的結(jié)果再經(jīng)過(guò)激活函數(shù),即可得到輸出。這種設(shè)計(jì)思路既保留了輸入中的原始信息,也增加了非線性變換成分。在網(wǎng)絡(luò)層數(shù)加深后,原始輸出可以借助直連部分直達(dá)最終輸出,保證了整個(gè)信息傳遞過(guò)程中信息的完整性。在反向傳播時(shí),此類直連通道可以直接傳遞梯度,提高梯度反饋效率,降低學(xué)習(xí)成本。
本文提出的網(wǎng)絡(luò)由多個(gè)時(shí)序卷積塊(TCN Block)級(jí)聯(lián)而成,單個(gè)時(shí)序卷積塊內(nèi)部包含數(shù)層因果膨脹卷積以及殘差結(jié)構(gòu)。圖5為一個(gè)3層時(shí)序卷積塊卷積流程示意圖,每個(gè)卷積層的輸出特征長(zhǎng)度與輸入長(zhǎng)度相同,不足部分通過(guò)補(bǔ)零對(duì)齊。其中,虛線箭頭與實(shí)線箭頭所示的計(jì)算流程是同時(shí)進(jìn)行的。CNN的特征可以打亂重組,但在時(shí)序卷積塊中,每個(gè)時(shí)間點(diǎn)的特征簇對(duì)應(yīng)了當(dāng)前時(shí)間點(diǎn)的高維特征,需嚴(yán)格按照時(shí)序排列,遵循因果性。卷積計(jì)算以特征層方向進(jìn)行。由于每層特征的長(zhǎng)度與輸入相同,所以對(duì)輸入數(shù)據(jù)的長(zhǎng)度沒(méi)有固定要求。對(duì)比現(xiàn)有建模方法中所有CNN網(wǎng)絡(luò)均采用多輸入單輸出的序列生成方式,本文方法在效率及靈活性具有一定的優(yōu)勢(shì)。
并行計(jì)算提高了網(wǎng)絡(luò)計(jì)算速度,但會(huì)帶來(lái)龐大的中間參數(shù)量,本文網(wǎng)絡(luò)的中間參數(shù)量隨處理的時(shí)間序列的長(zhǎng)度增長(zhǎng)而增大。此外,網(wǎng)絡(luò)深度也會(huì)影響中間參數(shù)的數(shù)量。本文通過(guò)計(jì)算上的技巧減少了所需中間參數(shù)量:在每層迭代完成之后,會(huì)生成新的高維特征序列。由于舊的特征序列不再使用,可以通過(guò)清空操作來(lái)刪除,每次迭代只需保留一層的網(wǎng)絡(luò)特征數(shù)據(jù),避免了網(wǎng)絡(luò)深度對(duì)于總體參數(shù)量的影響。
圖5 3層時(shí)序卷積塊卷積流程示意圖Figure 5. Convolution process of three-layer TCN block
現(xiàn)有的主流方法為RNN以及LSTM網(wǎng)絡(luò),但該類網(wǎng)絡(luò)是動(dòng)態(tài)神經(jīng)網(wǎng)絡(luò),每個(gè)時(shí)間步的迭代都需要上個(gè)時(shí)間步的數(shù)據(jù)作為輸入,構(gòu)成自回歸。因此,該類網(wǎng)絡(luò)在實(shí)現(xiàn)速率上較為低效。此外,RNN一直存在的問(wèn)題是當(dāng)時(shí)間步過(guò)長(zhǎng)時(shí),遙遠(yuǎn)時(shí)間點(diǎn)的歷史信息會(huì)隨著多次迭代彌散或呈爆炸增長(zhǎng),難以被訓(xùn)練,即使引入門控機(jī)制的LSTM網(wǎng)絡(luò),也無(wú)法完全避免。
深度時(shí)序卷積網(wǎng)絡(luò)的每步輸出是同時(shí)進(jìn)行的,該特性使得深度時(shí)序卷積網(wǎng)絡(luò)無(wú)論在網(wǎng)絡(luò)訓(xùn)練還是最終的序列生成上,都要比動(dòng)態(tài)神經(jīng)網(wǎng)絡(luò)更快。而在歷史信息穩(wěn)定度上,本文提出的網(wǎng)絡(luò)內(nèi)部主要結(jié)構(gòu)是卷積層。卷積操作對(duì)于每個(gè)輸入值都是等價(jià)的,且迭代次數(shù)固定,因此幾乎不存在歷史信息彌散或爆炸等問(wèn)題。
本文中的功率放大器電路采用的是半橋式D類功率放大器,其電路原理如圖6所示。行為建模的實(shí)驗(yàn)數(shù)據(jù)由電路圖對(duì)應(yīng)的實(shí)際電路板前后級(jí)采樣獲得。
圖6 半橋式D類功率放大器電路圖Figure 6. Half bridge D-class power amplifier circuit diagram
本實(shí)驗(yàn)中所采用的深度時(shí)序卷積網(wǎng)絡(luò)由8個(gè)時(shí)序卷積塊構(gòu)成,如圖7所示。每個(gè)卷積塊的輸出特征維度分別為[4 8 16 32 64 128 64 1],單個(gè)卷積塊的內(nèi)部是一個(gè)“卷積→裁切→激活→卷積→裁切→激活 ”的3層結(jié)構(gòu),輸出結(jié)果與原始輸入構(gòu)成殘差后,經(jīng)過(guò)線性激活得到最終的卷積塊輸出數(shù)據(jù)。Conv為因果膨脹卷積,用于拓展感受野和提取輸入特征。Slice為數(shù)據(jù)裁切操作,用于把輸入輸出數(shù)據(jù)對(duì)齊。激活函數(shù)采用雙曲正切函數(shù)(Tanh),這是因?yàn)樵摼W(wǎng)絡(luò)功能是實(shí)現(xiàn)數(shù)據(jù)回歸,需要輸出準(zhǔn)確數(shù)值,所以不能用線性整流函數(shù)[21](Rectified Linear Unit, ReLU)以免截?cái)嗵荻取]斎胼敵鼍?fù)數(shù)據(jù),因此也不能使用S型函數(shù)(Sigmoid Function)。殘差直連通道處的Conv用于改變輸入數(shù)據(jù)形狀,以匹配輸出,便于合并數(shù)據(jù)。
圖7 深度時(shí)序卷積網(wǎng)絡(luò)結(jié)構(gòu)Figure 7. Deep temporal convolutional network structure
模型損失函數(shù)采用均方誤差(Mean Square Error,MSE)損失,其計(jì)算方法如式(2)所示。MSE損失是回歸問(wèn)題中最常用的損失函數(shù)之一。梯度優(yōu)化策略則采用Adam算法[22]。
(2)
所有實(shí)驗(yàn)測(cè)試均在表1所示的軟硬件平臺(tái)上實(shí)現(xiàn)。
表1 硬件和軟件配置Table 1. Hardware and software configuration
實(shí)驗(yàn)測(cè)試采用四折交叉驗(yàn)證的方式進(jìn)行,每次測(cè)試時(shí)將模型參數(shù)初始化,取75%數(shù)據(jù)作為訓(xùn)練集,余下25%數(shù)據(jù)用于測(cè)試并記錄結(jié)果,最終結(jié)果取4次測(cè)試的平均結(jié)果。
本文復(fù)現(xiàn)了文獻(xiàn)[7]、文獻(xiàn)[12~13]中的行為建模方法,并將本文提出的行為建模方法與上述已有建模方法(使用3層記憶深度的3階Volterra級(jí)數(shù)、包含128個(gè)隱含單元的雙層RNN網(wǎng)絡(luò)、包含128個(gè)隱含單元的雙層LSTM網(wǎng)絡(luò))進(jìn)行對(duì)比,實(shí)驗(yàn)時(shí)域結(jié)果如圖8所示。
圖中結(jié)果表明:(1)Volterra級(jí)數(shù)建模方法的行為建模精度最差,無(wú)法準(zhǔn)確還原預(yù)期的輸出波形,整體偏差較大,最大誤差高達(dá)7 V;(2)RNN網(wǎng)絡(luò)建模結(jié)果跟隨性良好,但在一些特殊位置存在比較突兀的轉(zhuǎn)折,出現(xiàn)較大誤差;(3)LSTM網(wǎng)絡(luò)建模結(jié)果與RNN類似,但整體誤差更小。此外,RNN網(wǎng)絡(luò)和LSTM網(wǎng)絡(luò)建模的結(jié)果均無(wú)法擬合出細(xì)節(jié)處的高頻分量;(4)本文提出深度時(shí)序卷積網(wǎng)絡(luò)的結(jié)果精度最高,無(wú)論在整體信號(hào)跟蹤還是細(xì)節(jié)處的高頻分量上都取得了良好的效果。
(a) (b)
(c) (d)圖8 行為建模時(shí)域波形對(duì)比
圖8對(duì)應(yīng)的時(shí)域均方誤差如表2所示。
表2 時(shí)域均方誤差對(duì)比Table 2. Comparison of time domain MSE
均方誤差大小代表了建模數(shù)據(jù)與預(yù)期結(jié)果偏離程度,可以定量判定建模結(jié)果的準(zhǔn)確性。Volterra級(jí)數(shù)建模數(shù)據(jù)偏離程度最大,均方誤差高達(dá)9.32。RNN網(wǎng)絡(luò)建模結(jié)果精度有所提高,均方誤差為2.17。相較于RNN網(wǎng)絡(luò),LSTM網(wǎng)絡(luò)建模的精度又有了一定的提高,但提升幅度不大,均方誤差為1.22。本文提出的建模方法,均方誤差相比于前兩種,下降了一個(gè)數(shù)量級(jí),僅為0.31,表現(xiàn)出了優(yōu)良的性能。
對(duì)于開(kāi)關(guān)型功率放大器,頻率的準(zhǔn)確度直接影響下級(jí)電路輸出波形失真度。圖9為4類建模方法行為仿真波形的頻譜對(duì)比圖,該結(jié)果與時(shí)域結(jié)果類似。Volterra級(jí)數(shù)建模的波形在頻譜上存在較大的誤差。RNN和LSTM網(wǎng)絡(luò)建模的波形在主峰處的頻譜擬合度較高,諧波處誤差偏大,超過(guò)了10 dB,與時(shí)域圖上跟蹤性較好、細(xì)節(jié)處擬合差的建模結(jié)果相吻合。本文提出的方法,建模數(shù)據(jù)的頻譜除了在頻譜邊緣處(即高頻區(qū)域)存在較大誤差外,其他頻率處誤差較小,均未超過(guò)5 dB。
(a) (b)
(c) (d)圖9 行為建模頻譜結(jié)果對(duì)比
模型的空間復(fù)雜度和時(shí)間復(fù)雜度也是衡量模型性能的標(biāo)準(zhǔn)之一。鑒于Volterra級(jí)數(shù)建模效果較差,所以此處不作對(duì)比,其余3種方法的參數(shù)量以及單次迭代時(shí)間如表3所示。從表3中可以看出,RNN以及LSTM網(wǎng)絡(luò)雖然參數(shù)量差距較大,但是單次訓(xùn)練集訓(xùn)練迭代時(shí)間無(wú)明顯差距,主要的時(shí)間損耗出現(xiàn)在動(dòng)態(tài)神經(jīng)網(wǎng)絡(luò)時(shí)序迭代的過(guò)程中;對(duì)于本文提出的建模方法得益于并行卷積,雖然參數(shù)量與雙層RNN網(wǎng)絡(luò)相當(dāng),但單個(gè)訓(xùn)練集迭代時(shí)間低至0.061 04 s,效率高于動(dòng)態(tài)神經(jīng)網(wǎng)絡(luò)建模方法。
表3 建模方法的參數(shù)量和單次迭代時(shí)間對(duì)比Table 3. Comparison of parameters and single iteration time of modeling methods
基于神經(jīng)網(wǎng)絡(luò)的功率放大器行為建模方法相比于傳統(tǒng)方法,有著較高的建模精度?,F(xiàn)有的研究方案大多采用動(dòng)態(tài)神經(jīng)網(wǎng)絡(luò)建模,通過(guò)引入歷史信息機(jī)制來(lái)保存記憶信息,但此類動(dòng)態(tài)神經(jīng)網(wǎng)絡(luò)受限于歷史信息的自回歸機(jī)制,訓(xùn)練和預(yù)測(cè)十分緩慢。本文提出的深度時(shí)序卷積網(wǎng)絡(luò)行為建模方法實(shí)現(xiàn)了一種全新的行為建模方法。該方法通過(guò)因果膨脹卷積,實(shí)現(xiàn)了長(zhǎng)記憶信息的提取,并利用卷積并行操作,加速了網(wǎng)絡(luò)迭代速率。本文所提方法在速度和精度上,均優(yōu)于現(xiàn)有的建模方法,可為快速搭建電路的行為模型以及高速預(yù)失真補(bǔ)償提供參考。然而,深度時(shí)序卷積神經(jīng)網(wǎng)絡(luò)只能處理有限記憶效應(yīng),對(duì)于深度記憶系統(tǒng),還需要進(jìn)行方法上的改進(jìn)。