曾德軍
(中國西南電子技術研究所,四川 成都 611731)
現代通信系統對功率放大(Power Amplifier,PA)器的性能要求越來越高,特別是要求功放能夠在保持較高效率的同時呈現良好的線性放大特性。然而,現實中功放硬件一般都具有一定的非線性和記憶效應,造成功放信號帶內失真和帶外頻譜滋生,這些都將對通信系統造成嚴重影響。因此,功放線性化技術近年來逐漸成為一個研究熱點。
數字預失真器(Digital Predistorter,DPD)作為一種切實可行的高效功放線性化技術,近些年已經得到了廣泛的討論和研究。數字預失真技術在處理碼分多址(Code Division Multiple Access,CDMA)和正交頻分復用(Orthogonal Frequency Division Multiplexing,OFDM)等這類具有較高峰均比(Peak to Average Power Ratio,PAPR)的信號時,可以在犧牲較小效率的條件下,達到功放的線性化目的,因此,在4G和5G通信系統中運用極其廣泛。文獻[1]、文獻[2]、文獻[3]、文獻[4]和文獻[5]提出了一些DPD的模型,其中,記憶多項式模型對功放的非線性特性和記憶效應都有較好的補償效果[4,5],是一種極具應用前景的功放預失真模型。相應地,很多自適應算法如最小均方(Least Mean Square,LMS)算法和遞歸最小二乘(Recursive Least Squares,RLS)算法也被應用于功放模型的辨識和DPD模型的參數計算。由于LMS算法更適合于硬件實現,因此本文將只針對LMS算法結構進行討論。
然而,傳統的DPD中使用的LMS算法面臨實現資源消耗問題。傳統算法都是基于復數濾波器結構的,在該方法下,進行一次簡單的復數乘法就會消耗4個實數乘法器和3個實數加法器,自適應算法的實現復雜度會很大。這樣的算法直接運用到現場可編程門陣列(Field Programmable Gate Array,FPGA)或者數字信號處理器(Digital Signal Processor,DSP)中實現時,會消耗大量的邏輯資源和面積,系統的吞吐率將無法得到提升。
為了解決以上問題,本文運用了一種新穎的基于3支路并行的實數濾波器結構,替代了傳統DPD復數LMS補償結構,該技術將復數濾波器的實部和虛部拆分開,重新組合成3路并行獨立的處理支路,極大地縮減了運算資源。
本文中DPD采用間接學習結構,該結構如圖1所示。預失真器和后逆模型都采用相同的DPD模型。x(n)為預失真器的輸入,y(n)為功放的輸出,d(n)為后逆模型估計輸出的期望值,z(n)為后逆模型估計的輸出實際值,e(n)為后逆模型估計的誤差,G為PA增益補償系數。后逆模型的參數值(后逆系數)可以通過自適應算法進行估計。獲取后逆系數后,再將其復制到預失真器中,作為模型參數進行非線性補償。

圖1 DPD間接學習結構
本文先介紹DPD參數計算的傳統LMS復數算法,然后再對該算法進行運算量的優化,推導出3支路并行實數LMS算法。不失一般性地,本文中的DPD采用最常用的記憶多項式模型進行建模。
假設PA的后逆模塊可采用如下的記憶多項式模型表征:

式中:m為模型記憶深度參量;Q為模型最大的記憶深度;k為多項式的階數參量;K為模型的多項式的最高階數;G為PA增益補償系數;akm為模型系數,也是本文需要估計的目標參數。將目標參數組合成向量形式:

DPD的參數估計的目標便是對向量w的值進行估計。
令:

則式(1)可表達成橫向濾波器形式:

求解系數w較為常用的為LMS迭代算法,其更新式如下:
(1)濾波輸出:

(2)估計誤差值:

(3)DPD模型參數的自適應更新方程:

式中:μ為LMS算法的迭代步長。
式(6)、式(7)和式(8)即為傳統的DPD LMS更新算法。
文獻[6]、文獻[7]、文獻[8]和文獻[9]提出了能夠減少復數乘法器運算量的優化結構,其中3路并行結構(3CM structure)最為常用,本文將這種結構用到DPD的LMS算法中,用于模型的系數更新。
考慮直接實現一個復數乘法,任取向量w(n)中的標量w,用wI和wQ分別代表其實部和虛部;取向量u(n)中的對應位置的標量u,用uI和uQ分別代表其實部和虛部;則其復數乘法結果如下:

式(9)的虛部和實部等效為下面的變換:

式(10)和式(11)表征了復數乘法器的3路并行結構實現,3路運算分別為wI(uI+uQ),(wI+wQ)uQ和(wI-wQ)uI。其中第1路可以在實部和虛部計算中復用,只用計算一次,從而節約運算量。這樣新結構完成一次復數乘法只需要3次實數乘法操作和5次加法操作。而式(9)直接實現結構完成一次復數乘法需要4次實數乘法操作和2次實數加法操作。新結構僅通過增加3個實數加法器的代價,節約了1個實數乘法器。這種結構對于像FPGA這類乘法器資源極其寶貴的器件而言,是極有意義的。
下面利用3支路結構思路,對復數LMS算法進行優化。
將DPD模型中所有變量都展開為同相分量和正交分量,分別用下標I和Q進行表征。輸入向量和濾波器系數向量的復數表達式展開為:

按照3路并行結構類似方法,將輸入向量和系數拆成如下3個并行實數系數支路:

系數也拆成如下3個獨立的變量:

3條支路的濾波輸出為:

3條支路對應的2路估計誤差值為:

I路和Q路可以看成獨立的兩路濾波,可以利用MMSE準則分別求取系數更新方程。先考慮實部代價函數,其表達式為:

接下來,利用實部代價函數JI(w(n))的最下降法原理分別求解系數w1和w2。
系數w1的迭代公式為:

系數w2迭代公式為:

上面考慮的是實部分支的系數更新方程,現在考慮虛部分支的系數更新方程。由于實部和虛部對稱同形,因此虛部分支的系數更新推導過程和實數分支完全一致。利用虛部代價函數最小原則,可以獲得w1和w3的更新迭代式:

式(19)和式(21)都包含w1,將其合并,可以得到3支路并行LMS算法的系數更新方程:

式(14)、式(16)、式(17)、式(23)共同構成了本文中提出的3支路實數并行LMS算法。相比于傳統的復數LMS算法,新算法將單路復數權值濾波過程展開成了3路獨立的實數濾波過程。
將上述算法過程應用到DPD中,新算法的整個濾波過程如圖2所示。首先,輸入復數向量需要按照式(14)進行分拆重組成3條支路輸入;其次,按照式(16)、式(17)分別計算濾波輸出和估計誤差值;最后,通過式(23)進行3條支路獨立的權值更新迭代。

圖2 DPD的3支路并行實數濾波器實現結構
相對傳統LMS算法,采用新的并行LMS算法能極大地減少乘法器運算量。假設濾波器階次為M,輸入信號和權向量都是M維向量。傳統復LMS算法完成每次迭代需要進行8M次實數乘法(RM)和8M次實數加法(RA)操作。并行實值LMS算法完成每次迭代只需要經過6M次RM和6M+3次RA操作,運算量降低了約25%。
此外,相對傳統LMS算法,新的并行LMS算法更適合在FPGA中實現。傳統LMS算法是串行結構,而新算法是3條并行實現結構。并行結構在FPGA中可以帶來很多收益,不僅可以減少系統資源的消耗量,還能提高系統處理的吞吐率,大大提升系統的執行速率。因此,3支路結構可以很好地滿足實際需求。
為了測試3支路并行LMS算法在數字預失真器中的效果,本文利用MATLAB進行了仿真驗證。首先用并行LMS算法對DPD系統的記憶多項式模型參數進行估計;其次利用估計后的DPD和PA進行級聯,測試整個DPD+PA系統的性能。實驗結果表明,基于該算法的DPD能夠有效地補償PA的非線性效應和記憶效應。
DPD使用的記憶多項式記憶深度為4,多項式最高階次為15。PA使用的是Wiener-Hammerstein模型。其模型參數為:

式中:H(z)和G(z)分別為模型的兩個線性時不變系統函數;b為模型中的無記憶多項式系數。
輸入到PA的測試信號是具有5M帶寬的CDMA信號。
圖3對比的是使用傳統LMS算法和3支路并行LMS算法對DPD系統的模型參數進行估計的收斂曲線。雖然新算法相對傳統算法收斂速度稍慢,但由于DPD預失真器對學習過程的時間并不敏感,因此是可以接受的。新算法最終的收斂誤差性能和傳統算法相近。

圖3 傳統LMS算法和并行LMS算法收斂曲線對比
圖4顯示了使用基于3支路LMS算法的DPD對PA進行預失真前后的系統AM-AM曲線。從圖4中可以看出,PA呈現固有的非線性,但是當加入DPD后,系統的非線性特性得到了補償。

圖4 并行LMS進行DPD補償前后的AM-AM曲線
圖5比較了傳統LMS算法和三支路LMS算法對DPD系統的補償效果,圖中(a)為未進行DPD補償的結果;(b)為利用傳統LMS算法進行DPD補償的結果;(c)為利用并行LMS算法進行DPD補償的結果。從圖5中可以看出,兩種算法都可以減小信號帶內失真和系統帶外頻譜的雜散,3支路算法可以在以更少的算法復雜度和硬件開銷的基礎上達到幾乎和傳統LMS算法相同的預失真效果。

圖5 功放輸出CDMA功率譜
從上述仿真可見,新算法在優化了運算量的基礎上,達到了和傳統算法幾乎相同的補償性能。
本文采用并行LMS算法有效地解決了DPD系統參數估計問題。相對于傳統LMS算法,新算法復雜度更低,可以節約25%硬件實現資源。新算法采用并行結構,可以提高系統吞吐率。最后通過仿真驗證,并行LMS算法穩定可行,DPD的非線性補償性能和傳統算法接近。因此,利用并行LMS算法在FPGA中實現DPD預失真器具有較大優勢。