DPD是數(shù)字預(yù)失真的首字母縮寫,許多射頻(RF)工程師、信號處理愛好者和嵌入式軟件開發(fā)人員都熟悉這一術(shù)語。DPD在蜂窩通信系統(tǒng)中隨處可見,使功率放大器(PA)能夠有效地為天線提供最大功率。隨著5G使基站中的天線數(shù)量增加,頻譜變得更加擁擠,DPD開始成為一項關(guān)鍵技術(shù),支持開發(fā)經(jīng)濟高效且符合規(guī)格要求的蜂窩系統(tǒng)。
對于DPD,無論從純粹的數(shù)學(xué)角度出發(fā),還是在微處理器上實現(xiàn)更受限制,我們許多人都有自己獨特的見解。您可能是負(fù)責(zé)評估RF基站產(chǎn)品中DPD性能的工程師,或者是一名算法開發(fā)人員,很想知道數(shù)學(xué)建模技術(shù)在實際系統(tǒng)中的實現(xiàn)方式。本文旨在拓寬您的知識面,幫助您從各個角度全面了解這個主題。
什么是DPD?為什么要使用DPD?
當(dāng)基站射頻裝置輸出RF信號時(參見圖1),需要先將其放大,然后再通過天線發(fā)射。我們使用RF PA來執(zhí)行此操作(放大)。在理想情況下,PA接收輸入信號,然后輸出與其輸入成正比的更高功率信號。在執(zhí)行此操作期間,PA會盡可能保持高能效,將提供給放大器的大部分直流電源都轉(zhuǎn)化為信號輸出功率。
但這不是一個理想的世界。PA由晶體管構(gòu)成,晶體管是有源器件,本身具有非線性。如圖2所示,如果我們在其“線性”區(qū)域使用PA(這里的線性是相對而言;所以加了引號),則輸出功率與輸入功率相對成比例。此方法的缺點是PA的使用效率通常很低,提供的大部分功率都會作為熱量流失。我們通常希望在PA開始壓縮時使用。這意味著,如果輸入信號增加了設(shè)定量(例如3 dB),PA輸出不會增加同樣的量(可能只增加1 dB)。很顯然,此時放大器使信號嚴(yán)重失真。
這種失真發(fā)生在頻域中的已知位置,具體取決于輸入信號。圖3顯示了這些位置,以及基頻與這些失真產(chǎn)物之間的關(guān)系。在RF系統(tǒng)中,我們只需要對基波信號附近的失真進(jìn)行補償,這些信號是奇階交調(diào)產(chǎn)物。系統(tǒng)濾波處理帶外產(chǎn)物(諧波和偶階交調(diào)產(chǎn)物)。圖4顯示RF PA的壓縮點附近的輸出。交調(diào)產(chǎn)物(特別是三階)清晰可見,就像是圍繞著目標(biāo)信號的“裙擺”。
DPD旨在通過觀察PA輸出來表征這種失真,要了解所需輸出信號,隨之更改輸入信號,使得PA輸出接近理想值。只有在相當(dāng)具體的情況下才能有效地實現(xiàn)這一目標(biāo),我們需要配置放大器和輸入信號,使放大器有一定程度的壓縮但未完全飽和。
PA失真建模背后的數(shù)學(xué)計算
Volterra級數(shù)是DPD的重要數(shù)學(xué)基礎(chǔ),它用于建立具有記憶的非線性系統(tǒng)模型。記憶僅僅意味著系統(tǒng)的當(dāng)前輸出取決于當(dāng)前和過去的輸入。Volterra級數(shù)很常用(所以功能強大),在電氣工程以外的許多領(lǐng)域都有使用。對于PA DPD,Volterra級數(shù)可以精簡使用,使其在實時數(shù)字系統(tǒng)中更易實現(xiàn),也更穩(wěn)定。GMP就是這樣一種精簡方法。
圖5顯示如何使用GMP對PA的輸入x和輸出y之間的關(guān)系進(jìn)行建模??梢钥吹剑摰仁降娜齻€單獨的求和塊彼此都非常相似。我們先來看看下方用紅色圈出來的第一個。|x(…)|k項是指輸入信號的包絡(luò),其中k是多項式階。l將記憶集成到系統(tǒng)中。如果La = {0,1,2},那么該模型允許輸出yGMP (n)由當(dāng)前的輸入x(n)和過去輸入x(n – 1)和x(n – 2)決定。圖6分析多項式階k對樣本向量的影響。向量x是單個20 MHz載波,在復(fù)基帶上表示出來。去除記憶部分,以簡化GMP建模等式。x|x|k圖顯示的失真與圖4中的實際失真非常相似。
每個多項式階(k)和記憶延遲(l)都有相關(guān)的復(fù)值權(quán)重(akl)。在選擇模型的復(fù)雜程度之后(其中包括k和l的值),需要根據(jù)已知輸入信號的PA輸出實際觀測值來求解這些權(quán)重。圖7將簡化的等式轉(zhuǎn)換為矩陣形式。可以使用數(shù)學(xué)符號簡明表示該模型。但是,要在數(shù)字?jǐn)?shù)據(jù)緩沖區(qū)實現(xiàn)DPD,用矩陣表示法會更簡單,也更具代表性。
我們來看看圖6中等式的第二行和第三行,為了簡化,這兩行被忽略了。注意,如果m設(shè)置為0,那么這兩行會變得與第一行一模一樣。這些行允許在包絡(luò)項和復(fù)基帶信號之間增加延遲(正延遲和負(fù)延遲)。這些稱為滯后交叉和超前交叉項,可以顯著提高DPD的建模精度。在我們嘗試對放大器的行為建模時,這些項提供了額外的自由度。注意,Mb、Mc、Kb和Kc不包含0;否則,會重復(fù)第一行的項。
那么,我們?nèi)绾未_定模型的階、記憶項的數(shù)量,以及應(yīng)該添加哪些交叉項?此時,就需要一定數(shù)量的“黑魔法”了。我們掌握的關(guān)于失真的物理學(xué)知識能夠提供一定幫助。放大器的類型、制造材料,以及通過放大器的信號帶寬都會影響建模項,可以幫助熟悉該領(lǐng)域的工程師確定應(yīng)該使用哪個模型。但是,除此之外,還涉及一定程度的反復(fù)試驗。
現(xiàn)在有了模型架構(gòu),我們從數(shù)學(xué)角度來解決該問題的最后一個方面是如何求解權(quán)重系數(shù)。在實際場景中,人們傾向于求解上述模型的倒數(shù)。事實證明,這些模型系數(shù)能夠彼此互惠,可以使用相同的權(quán)重對捕捉到的PA輸出向量進(jìn)行后失真,以消除非線性,并對通過PA發(fā)送的發(fā)射信號預(yù)失真,使得PA輸出盡可能呈現(xiàn)線性。在圖8所示的框圖中,顯示了如何對權(quán)重系數(shù)進(jìn)行估算和預(yù)失真。
在逆模型中,將圖7給出的矩陣等式互換,給出X? = Yw。其中,矩陣Y的構(gòu)成方式與其他示例中X的構(gòu)成方式相同,如圖9所示。在本例中,包含了一個記憶項,且減少了包含的多項式的階數(shù)。為了求解w,我們需要得出Y的倒數(shù)。Y不是方形的(是一個瘦長矩陣),所以需要使用“偽逆”矩陣進(jìn)行求解(參見等式1)。這是從最小二乘意義上求解w,也就是說,最小化了X?和Yw之間的差的平方,正合我們的心意!
鑒于是在具有不同信號的真實環(huán)境中使用,我們可以對其進(jìn)一步優(yōu)化。在這里,系數(shù)是基于之前的值進(jìn)行更新,因此受到限制。μ是0和1之間的常數(shù)值,用于控制每次迭代時權(quán)重的變化量。如果μ = 1,w0 = 0,那么此等式立即恢復(fù)到基本最小二乘解。如果將μ設(shè)為小于1的值,則需要多次迭代才能使系數(shù)收斂。
注意,這里描述的建模和估算技術(shù)并非是執(zhí)行DPD的唯一方式。也可以使用其他技術(shù),例如基于動態(tài)偏差減少的建模來代替或作為附加方法使用。
如何在微處理器中實現(xiàn)這一技術(shù)?
通常而言,它在數(shù)字基帶中實現(xiàn),一般在微處理器或FPGA中實現(xiàn)。ADI的RadioVerse收發(fā)器產(chǎn)品(例如ADRV902x系列)內(nèi)置微處理器內(nèi)核,其結(jié)構(gòu)有助于輕松實現(xiàn)DPD。
在嵌入式軟件中實現(xiàn)DPD涉及兩個方面。一是DPD執(zhí)行器,對實時發(fā)送的數(shù)據(jù)執(zhí)行實時預(yù)失真,二是DPD自適應(yīng)引擎,基于觀察到的PA輸出來更新DPD系數(shù)。
對于如何在微處理器或類似器件中實時執(zhí)行DPD和許多其他信號處理概念,關(guān)鍵在于使用查找表(LUT)。LUT允許用更簡單的矩陣索引操作來代替成本高昂的運行時計算。我們來看看DPD執(zhí)行器如何對發(fā)送的數(shù)據(jù)樣本應(yīng)用預(yù)失真。代表符號如圖8所示,其中u(n)表示要傳輸?shù)男聰?shù)據(jù)樣本,x(n)表示預(yù)失真版本。圖10顯示在給定場景下,獲取一個預(yù)失真樣本所需的計算。這是一個相對受限的示例,最高多項式階為三階,只有一次記憶選取和一個交叉項。即使在這種情況下,要獲取這樣一個數(shù)據(jù)樣本,也需要進(jìn)行大量乘法、冪運算和加法運算。
在這種情況下,使用LUT可以減輕實時計算負(fù)擔(dān)??梢詫D10所示的等式改寫成圖11所示的樣式,其中輸入LUT的數(shù)據(jù)會變得更加明顯。每個LUT都包含等式中突出顯示項的結(jié)果值,它們對應(yīng)|u(n)|的多個可能值。分辨率取決于在可用硬件中實現(xiàn)的LUT大小。當(dāng)前輸入樣本的幅度大小基于LUT的分辨率進(jìn)行量化,可以作為索引,用于訪問給定輸入的正確LUT元素。
圖12顯示如何將LUT集成到我們示例案例的完全預(yù)失真執(zhí)行器實現(xiàn)方案。注意,這只是其中一種可能的實現(xiàn)方法。在仍然保持相同輸出的情況下,可以做出更改,例如:可以將延遲元素z–1移動到LUT2右側(cè)。
自適應(yīng)引擎負(fù)責(zé)求解用于計算執(zhí)行器中的LUT值的系數(shù)。這涉及到求解等式1和2中描述的w向量。偽逆矩陣運算(YH Y)-1 YH會耗費大量計算資源。等式1可以改寫為
如果CYY = YHY,CYx = YH x,等式3會變成
CYY是矩形矩陣,可以通過柯列斯基分解方法分解為上三角矩陣L和共軛轉(zhuǎn)置矩陣(CYY =LH L)的乘積。這樣我們可以通過引入一個虛擬變量z來求解w,求解方法如下:
然后,重新代入這個虛擬變量,求解
因為L和LH分別是上、下三角矩陣,所以花費很少的計算資源,就可以求解等式5和等式6,得出w。自適應(yīng)引擎每次運行,得出w的新值時,都需要更新執(zhí)行器LUT來體現(xiàn)這一點。根據(jù)觀察到的PA輸出,或者操作員掌握的待傳輸信號的變化情況,自適應(yīng)引擎可以按照設(shè)定的定期間隔或不規(guī)則的間隔執(zhí)行操作。
在嵌入式系統(tǒng)中實現(xiàn)DPD需要進(jìn)行大量檢查和平衡,以確保系統(tǒng)的穩(wěn)定性。最重要的是,發(fā)送數(shù)據(jù)緩沖器和捕捉緩沖器數(shù)據(jù)的時間要一致,以確保它們之間建立的數(shù)學(xué)關(guān)系是正確的,且在長時間之后仍然保持正確。如果這種一致性喪失,那么自適應(yīng)引擎返回的系數(shù)將不能對系統(tǒng)執(zhí)行正確的預(yù)失真,可能導(dǎo)致系統(tǒng)不穩(wěn)定。還應(yīng)檢查預(yù)失真執(zhí)行器輸出,確保信號不會使DAC飽和。
結(jié)論
本文從基礎(chǔ)數(shù)學(xué)的角度研究DPD及其在硬件中的實現(xiàn)方法,希望借此揭示關(guān)于DPD的一些奧秘。本文對該主題的探討只是冰山一角,可能有助于推動讀者進(jìn)一步研究通信系統(tǒng)中信號處理技術(shù)的應(yīng)用情況。ADI的RadioVerse收發(fā)器產(chǎn)品可以集成DPD這類算法,為客戶提供高度集成的RF硬件和可配置的軟件工具。
來源:亞德諾半導(dǎo)體
-
RF
+關(guān)注
關(guān)注
65文章
3050瀏覽量
166961 -
PA
+關(guān)注
關(guān)注
3文章
245瀏覽量
46843 -
DPD
+關(guān)注
關(guān)注
3文章
40瀏覽量
15253
發(fā)布評論請先 登錄
相關(guān)推薦
評論