曾德軍
(中國(guó)西南電子技術(shù)研究所,四川 成都 611731)
現(xiàn)代通信系統(tǒng)對(duì)功率放大(Power Amplifier,PA)器的性能要求越來(lái)越高,特別是要求功放能夠在保持較高效率的同時(shí)呈現(xiàn)良好的線性放大特性。然而,現(xiàn)實(shí)中功放硬件一般都具有一定的非線性和記憶效應(yīng),造成功放信號(hào)帶內(nèi)失真和帶外頻譜滋生,這些都將對(duì)通信系統(tǒng)造成嚴(yán)重影響。因此,功放線性化技術(shù)近年來(lái)逐漸成為一個(gè)研究熱點(diǎn)。
數(shù)字預(yù)失真器(Digital Predistorter,DPD)作為一種切實(shí)可行的高效功放線性化技術(shù),近些年已經(jīng)得到了廣泛的討論和研究。數(shù)字預(yù)失真技術(shù)在處理碼分多址(Code Division Multiple Access,CDMA)和正交頻分復(fù)用(Orthogonal Frequency Division Multiplexing,OFDM)等這類具有較高峰均比(Peak to Average Power Ratio,PAPR)的信號(hào)時(shí),可以在犧牲較小效率的條件下,達(dá)到功放的線性化目的,因此,在4G和5G通信系統(tǒng)中運(yùn)用極其廣泛。文獻(xiàn)[1]、文獻(xiàn)[2]、文獻(xiàn)[3]、文獻(xiàn)[4]和文獻(xiàn)[5]提出了一些DPD的模型,其中,記憶多項(xiàng)式模型對(duì)功放的非線性特性和記憶效應(yīng)都有較好的補(bǔ)償效果[4,5],是一種極具應(yīng)用前景的功放預(yù)失真模型。相應(yīng)地,很多自適應(yīng)算法如最小均方(Least Mean Square,LMS)算法和遞歸最小二乘(Recursive Least Squares,RLS)算法也被應(yīng)用于功放模型的辨識(shí)和DPD模型的參數(shù)計(jì)算。由于LMS算法更適合于硬件實(shí)現(xiàn),因此本文將只針對(duì)LMS算法結(jié)構(gòu)進(jìn)行討論。
然而,傳統(tǒng)的DPD中使用的LMS算法面臨實(shí)現(xiàn)資源消耗問(wèn)題。傳統(tǒng)算法都是基于復(fù)數(shù)濾波器結(jié)構(gòu)的,在該方法下,進(jìn)行一次簡(jiǎn)單的復(fù)數(shù)乘法就會(huì)消耗4個(gè)實(shí)數(shù)乘法器和3個(gè)實(shí)數(shù)加法器,自適應(yīng)算法的實(shí)現(xiàn)復(fù)雜度會(huì)很大。這樣的算法直接運(yùn)用到現(xiàn)場(chǎng)可編程門(mén)陣列(Field Programmable Gate Array,F(xiàn)PGA)或者數(shù)字信號(hào)處理器(Digital Signal Processor,DSP)中實(shí)現(xiàn)時(shí),會(huì)消耗大量的邏輯資源和面積,系統(tǒng)的吞吐率將無(wú)法得到提升。
為了解決以上問(wèn)題,本文運(yùn)用了一種新穎的基于3支路并行的實(shí)數(shù)濾波器結(jié)構(gòu),替代了傳統(tǒng)DPD復(fù)數(shù)LMS補(bǔ)償結(jié)構(gòu),該技術(shù)將復(fù)數(shù)濾波器的實(shí)部和虛部拆分開(kāi),重新組合成3路并行獨(dú)立的處理支路,極大地縮減了運(yùn)算資源。
本文中DPD采用間接學(xué)習(xí)結(jié)構(gòu),該結(jié)構(gòu)如圖1所示。預(yù)失真器和后逆模型都采用相同的DPD模型。x(n)為預(yù)失真器的輸入,y(n)為功放的輸出,d(n)為后逆模型估計(jì)輸出的期望值,z(n)為后逆模型估計(jì)的輸出實(shí)際值,e(n)為后逆模型估計(jì)的誤差,G為PA增益補(bǔ)償系數(shù)。后逆模型的參數(shù)值(后逆系數(shù))可以通過(guò)自適應(yīng)算法進(jìn)行估計(jì)。獲取后逆系數(shù)后,再將其復(fù)制到預(yù)失真器中,作為模型參數(shù)進(jìn)行非線性補(bǔ)償。
圖1 DPD間接學(xué)習(xí)結(jié)構(gòu)
本文先介紹DPD參數(shù)計(jì)算的傳統(tǒng)LMS復(fù)數(shù)算法,然后再對(duì)該算法進(jìn)行運(yùn)算量的優(yōu)化,推導(dǎo)出3支路并行實(shí)數(shù)LMS算法。不失一般性地,本文中的DPD采用最常用的記憶多項(xiàng)式模型進(jìn)行建模。
假設(shè)PA的后逆模塊可采用如下的記憶多項(xiàng)式模型表征:
式中:m為模型記憶深度參量;Q為模型最大的記憶深度;k為多項(xiàng)式的階數(shù)參量;K為模型的多項(xiàng)式的最高階數(shù);G為PA增益補(bǔ)償系數(shù);akm為模型系數(shù),也是本文需要估計(jì)的目標(biāo)參數(shù)。將目標(biāo)參數(shù)組合成向量形式:
DPD的參數(shù)估計(jì)的目標(biāo)便是對(duì)向量w的值進(jìn)行估計(jì)。
令:
則式(1)可表達(dá)成橫向?yàn)V波器形式:
求解系數(shù)w較為常用的為L(zhǎng)MS迭代算法,其更新式如下:
(1)濾波輸出:
(2)估計(jì)誤差值:
(3)DPD模型參數(shù)的自適應(yīng)更新方程:
式中:μ為L(zhǎng)MS算法的迭代步長(zhǎng)。
式(6)、式(7)和式(8)即為傳統(tǒng)的DPD LMS更新算法。
文獻(xiàn)[6]、文獻(xiàn)[7]、文獻(xiàn)[8]和文獻(xiàn)[9]提出了能夠減少?gòu)?fù)數(shù)乘法器運(yùn)算量的優(yōu)化結(jié)構(gòu),其中3路并行結(jié)構(gòu)(3CM structure)最為常用,本文將這種結(jié)構(gòu)用到DPD的LMS算法中,用于模型的系數(shù)更新。
考慮直接實(shí)現(xiàn)一個(gè)復(fù)數(shù)乘法,任取向量w(n)中的標(biāo)量w,用wI和wQ分別代表其實(shí)部和虛部;取向量u(n)中的對(duì)應(yīng)位置的標(biāo)量u,用uI和uQ分別代表其實(shí)部和虛部;則其復(fù)數(shù)乘法結(jié)果如下:
式(9)的虛部和實(shí)部等效為下面的變換:
式(10)和式(11)表征了復(fù)數(shù)乘法器的3路并行結(jié)構(gòu)實(shí)現(xiàn),3路運(yùn)算分別為wI(uI+uQ),(wI+wQ)uQ和(wI-wQ)uI。其中第1路可以在實(shí)部和虛部計(jì)算中復(fù)用,只用計(jì)算一次,從而節(jié)約運(yùn)算量。這樣新結(jié)構(gòu)完成一次復(fù)數(shù)乘法只需要3次實(shí)數(shù)乘法操作和5次加法操作。而式(9)直接實(shí)現(xiàn)結(jié)構(gòu)完成一次復(fù)數(shù)乘法需要4次實(shí)數(shù)乘法操作和2次實(shí)數(shù)加法操作。新結(jié)構(gòu)僅通過(guò)增加3個(gè)實(shí)數(shù)加法器的代價(jià),節(jié)約了1個(gè)實(shí)數(shù)乘法器。這種結(jié)構(gòu)對(duì)于像FPGA這類乘法器資源極其寶貴的器件而言,是極有意義的。
下面利用3支路結(jié)構(gòu)思路,對(duì)復(fù)數(shù)LMS算法進(jìn)行優(yōu)化。
將DPD模型中所有變量都展開(kāi)為同相分量和正交分量,分別用下標(biāo)I和Q進(jìn)行表征。輸入向量和濾波器系數(shù)向量的復(fù)數(shù)表達(dá)式展開(kāi)為:
按照3路并行結(jié)構(gòu)類似方法,將輸入向量和系數(shù)拆成如下3個(gè)并行實(shí)數(shù)系數(shù)支路:
系數(shù)也拆成如下3個(gè)獨(dú)立的變量:
3條支路的濾波輸出為:
3條支路對(duì)應(yīng)的2路估計(jì)誤差值為:
I路和Q路可以看成獨(dú)立的兩路濾波,可以利用MMSE準(zhǔn)則分別求取系數(shù)更新方程。先考慮實(shí)部代價(jià)函數(shù),其表達(dá)式為:
接下來(lái),利用實(shí)部代價(jià)函數(shù)JI(w(n))的最下降法原理分別求解系數(shù)w1和w2。
系數(shù)w1的迭代公式為:
系數(shù)w2迭代公式為:
上面考慮的是實(shí)部分支的系數(shù)更新方程,現(xiàn)在考慮虛部分支的系數(shù)更新方程。由于實(shí)部和虛部對(duì)稱同形,因此虛部分支的系數(shù)更新推導(dǎo)過(guò)程和實(shí)數(shù)分支完全一致。利用虛部代價(jià)函數(shù)最小原則,可以獲得w1和w3的更新迭代式:
式(19)和式(21)都包含w1,將其合并,可以得到3支路并行LMS算法的系數(shù)更新方程:
式(14)、式(16)、式(17)、式(23)共同構(gòu)成了本文中提出的3支路實(shí)數(shù)并行LMS算法。相比于傳統(tǒng)的復(fù)數(shù)LMS算法,新算法將單路復(fù)數(shù)權(quán)值濾波過(guò)程展開(kāi)成了3路獨(dú)立的實(shí)數(shù)濾波過(guò)程。
將上述算法過(guò)程應(yīng)用到DPD中,新算法的整個(gè)濾波過(guò)程如圖2所示。首先,輸入復(fù)數(shù)向量需要按照式(14)進(jìn)行分拆重組成3條支路輸入;其次,按照式(16)、式(17)分別計(jì)算濾波輸出和估計(jì)誤差值;最后,通過(guò)式(23)進(jìn)行3條支路獨(dú)立的權(quán)值更新迭代。
圖2 DPD的3支路并行實(shí)數(shù)濾波器實(shí)現(xiàn)結(jié)構(gòu)
相對(duì)傳統(tǒng)LMS算法,采用新的并行LMS算法能極大地減少乘法器運(yùn)算量。假設(shè)濾波器階次為M,輸入信號(hào)和權(quán)向量都是M維向量。傳統(tǒng)復(fù)LMS算法完成每次迭代需要進(jìn)行8M次實(shí)數(shù)乘法(RM)和8M次實(shí)數(shù)加法(RA)操作。并行實(shí)值LMS算法完成每次迭代只需要經(jīng)過(guò)6M次RM和6M+3次RA操作,運(yùn)算量降低了約25%。
此外,相對(duì)傳統(tǒng)LMS算法,新的并行LMS算法更適合在FPGA中實(shí)現(xiàn)。傳統(tǒng)LMS算法是串行結(jié)構(gòu),而新算法是3條并行實(shí)現(xiàn)結(jié)構(gòu)。并行結(jié)構(gòu)在FPGA中可以帶來(lái)很多收益,不僅可以減少系統(tǒng)資源的消耗量,還能提高系統(tǒng)處理的吞吐率,大大提升系統(tǒng)的執(zhí)行速率。因此,3支路結(jié)構(gòu)可以很好地滿足實(shí)際需求。
為了測(cè)試3支路并行LMS算法在數(shù)字預(yù)失真器中的效果,本文利用MATLAB進(jìn)行了仿真驗(yàn)證。首先用并行LMS算法對(duì)DPD系統(tǒng)的記憶多項(xiàng)式模型參數(shù)進(jìn)行估計(jì);其次利用估計(jì)后的DPD和PA進(jìn)行級(jí)聯(lián),測(cè)試整個(gè)DPD+PA系統(tǒng)的性能。實(shí)驗(yàn)結(jié)果表明,基于該算法的DPD能夠有效地補(bǔ)償PA的非線性效應(yīng)和記憶效應(yīng)。
DPD使用的記憶多項(xiàng)式記憶深度為4,多項(xiàng)式最高階次為15。PA使用的是Wiener-Hammerstein模型。其模型參數(shù)為:
式中:H(z)和G(z)分別為模型的兩個(gè)線性時(shí)不變系統(tǒng)函數(shù);b為模型中的無(wú)記憶多項(xiàng)式系數(shù)。
輸入到PA的測(cè)試信號(hào)是具有5M帶寬的CDMA信號(hào)。
圖3對(duì)比的是使用傳統(tǒng)LMS算法和3支路并行LMS算法對(duì)DPD系統(tǒng)的模型參數(shù)進(jìn)行估計(jì)的收斂曲線。雖然新算法相對(duì)傳統(tǒng)算法收斂速度稍慢,但由于DPD預(yù)失真器對(duì)學(xué)習(xí)過(guò)程的時(shí)間并不敏感,因此是可以接受的。新算法最終的收斂誤差性能和傳統(tǒng)算法相近。
圖3 傳統(tǒng)LMS算法和并行LMS算法收斂曲線對(duì)比
圖4顯示了使用基于3支路LMS算法的DPD對(duì)PA進(jìn)行預(yù)失真前后的系統(tǒng)AM-AM曲線。從圖4中可以看出,PA呈現(xiàn)固有的非線性,但是當(dāng)加入DPD后,系統(tǒng)的非線性特性得到了補(bǔ)償。
圖4 并行LMS進(jìn)行DPD補(bǔ)償前后的AM-AM曲線
圖5比較了傳統(tǒng)LMS算法和三支路LMS算法對(duì)DPD系統(tǒng)的補(bǔ)償效果,圖中(a)為未進(jìn)行DPD補(bǔ)償?shù)慕Y(jié)果;(b)為利用傳統(tǒng)LMS算法進(jìn)行DPD補(bǔ)償?shù)慕Y(jié)果;(c)為利用并行LMS算法進(jìn)行DPD補(bǔ)償?shù)慕Y(jié)果。從圖5中可以看出,兩種算法都可以減小信號(hào)帶內(nèi)失真和系統(tǒng)帶外頻譜的雜散,3支路算法可以在以更少的算法復(fù)雜度和硬件開(kāi)銷的基礎(chǔ)上達(dá)到幾乎和傳統(tǒng)LMS算法相同的預(yù)失真效果。
圖5 功放輸出CDMA功率譜
從上述仿真可見(jiàn),新算法在優(yōu)化了運(yùn)算量的基礎(chǔ)上,達(dá)到了和傳統(tǒng)算法幾乎相同的補(bǔ)償性能。
本文采用并行LMS算法有效地解決了DPD系統(tǒng)參數(shù)估計(jì)問(wèn)題。相對(duì)于傳統(tǒng)LMS算法,新算法復(fù)雜度更低,可以節(jié)約25%硬件實(shí)現(xiàn)資源。新算法采用并行結(jié)構(gòu),可以提高系統(tǒng)吞吐率。最后通過(guò)仿真驗(yàn)證,并行LMS算法穩(wěn)定可行,DPD的非線性補(bǔ)償性能和傳統(tǒng)算法接近。因此,利用并行LMS算法在FPGA中實(shí)現(xiàn)DPD預(yù)失真器具有較大優(yōu)勢(shì)。