對數位預失真進行故障排除和微調的完整指南

作者:ADI 產品應用工程師 Wangning Ge


摘要

本文主要介紹 ADRV9002的數位預失真(DPD)功能,但其中所採用的一些檢測技術也可應用於一般DPD系統。首先,概述關於DPD的背景資訊,以及使用者試驗其系統時可能會遇到的一些典型問題。最後,文章介紹在DPD軟體工具的協助下可應用於DPD演算法以分析性能的調優策略。

簡介

數位預失真(通常稱為DPD)是無線通訊系統中廣泛使用的一個演算法。DPD目的在抑制透過射頻頻率功率放大器(PA)1 傳遞的寬頻訊號上的頻譜再生,進而提高PA的整體效率。一般而言,在處理高功率輸入訊號時,PA會出現非線性效應和效率不高的問題。由於頻譜再生,相鄰頻段出現非線性效應和頻譜干擾。圖1顯示在ADRV9002平台上使用TETRA1標準進行DPD校正之前和之後的頻譜再生。

Figure 1. TETRA1 DPD using the ADRV9002.

圖1. 使用ADRV9002的TETRA1 DPD。

ADRV9002提供經過功率優化的內部可編程DPD演算法,該演算法可自訂以校正PA的非線性效應,進而提升整體鄰道功率比(ACPR)。儘管DPD能夠為通訊系統帶來預期的優勢,但缺乏經驗的人員開始使用DPD時往往困難重重,更別提正確設定了。這主要因為數位預失真涉及多個因素,可能會導致誤差,進而降低DPD性能。即使在正確設定硬體後,要確定正確的參數以微調DPD並獲得最優解決方案,這仍可能具有挑戰性。本文目的在協助於ADRV9002中使用DPD選項的工程師,並列出了用戶通常會遇到的一些典型問題,及提供有關使用可用參數微調DPD模式以獲得最優DPD性能的一些一般策略。此外,文中並介紹如何使用MATLAB®工具協助分析DPD。這將有助於消除許多常見的錯誤,並提供有關內部DPD操作的一些見解。最後,本文還將協助用戶開始使用DPD,並提供有關理論概念和解決實際問題的有用資訊。

啟用DPD選項時,ADRV9002可提供高達20 MHz的訊號頻寬。這是因為接收頻寬限制在100 MHz。DPD通常將以發射頻寬5倍的接收頻寬工作,因此可以看到和校正三階和五階互調訊號。ADRV9002支援的最高PA峰值功率訊號約為1 dB(通常稱為P1dB)壓縮區。該指標表示PA壓縮的程度。如果PA壓縮超過P1dB點,則無法保證DPD正常工作。但是,這個要求並不嚴格;我們看到在許多情況下,DPD在超過P1dB點時依舊能夠工作,並且仍然提供非常卓越的ACPR。但這需要具體問題具體分析。一般而言,如果壓縮得太嚴重,DPD可能會出現不穩定和崩潰的問題。在文章後面的部分中,我們將詳細討論壓縮區,包括如何使用MATLAB工具觀察目前PA壓縮狀態。

有關DPD的更多詳細資訊,請參見 UG-1828的「數位預失真」章節。

架構

執行DPD功能有兩種基本方法。第一種方法稱為間接DPD,即在PA前後擷取訊號。與之不同的是直接DPD方法,即在DPD模組前和PA後擷取訊號。每種方法的優勢和劣勢不在本文章的討論範圍內。間接DPD透過分析PA前後的訊號瞭解其非線性特性,並在DPD模組上執行反轉。直接DPD分析DPD前和PA後的訊號,並透過在DPD模組上應用預失真來消除二者之間的誤差。用戶必須瞭解,ADRV9002使用的是間接方法以及與之相關的影響。另外,請務必瞭解,在使用MATLAB工具時,擷取資料也是採用間接方法。

圖2顯示了ADRV9002的簡化DPD操作方框圖。輸入訊號u(n)進入DPD模組。DPD將對訊號進行預失真處理,並產生x(n)。在此我們稱之為發射擷取,不過這實際上是發射訊號的預失真版本。然後,訊號經過PA,成為y(n),訊號最終發送到空中。我們將y(n)稱為接收擷取,不過這實際上是PA後的發射訊號。然後,y(n)回饋到接收器埠,作為觀察接收器。本質上,DPD引擎將使用擷取的x(n)和y(n),然後產生係數,在DPD的下一次反覆運算中將應用這些係數。

Figure 2. A high level block diagram of indirect DPD.

圖2. 間接DPD的簡化方框圖。

工作模式

ADRV9002在DPD上支援TDD和FDD操作。在TDD模式下,每個發射幀都會更新DPD。這表示在發射幀期間,接收器將充當觀察路徑。在FDD中,由於發射器和接收器同時運行,因此需要專用接收器通道。ADRV9002中的2T2R能夠在2T2R/1T1R TDD和1T1R FDD模式下支援DPD。

DPD模式

結構


以下等式顯示在發射路徑中實現的DPD模式。

Equation 1

其中:

u(n)是DPD的輸入訊號
x(n)是DPD的輸出訊號
T是DPD模式的總分支數
ψt是用於實現分支t查閱資料表(LUT)的多項式函數
lt是幅度延遲
kt是資料延遲
at,lt,i 是DPD引擎計算的係數
bt,lt,i是啟用或禁用項的開關
i是多項式項的指數和冪

使用者可為每個分支配置多項式的項數量。ADRV9002提供3個記憶項分支和1個交叉項分支,每個分支的階從0到7。


模式選擇


使用者可選擇ADRV9002提供的預設模式選項(如圖3所示),該模式應該適合大多數常見用例。或者,用戶可透過啟用和禁用項,選擇自己的模式。前3個分支(0到2)表示記憶項,其中分支1是中心分支。分支3是交叉項分支。

Figure 3. DPD model polynomial terms.

圖3. DPD模式多項式的項。

注意,為了與記憶項分支區分,分支3(或交叉項分支)不應啟用零階項。

  • LUT大小:用戶可設定LUT大小。ADRV9002提供兩個選項,256和512。選擇512大小,用戶將獲得更好的量化雜訊位準,進而獲得更好的ACPR,因為一般而言,較大的尺寸將提供更高的訊號解析度。對於窄頻應用,我們建議使用512作為預設選項。256可用於寬頻,因為雜訊位準並不嚴格,並且可以改善計算和功率。
  • 預LUT縮放:使用者可設定預LUT縮放模組,以便對輸入資料進行縮放,使其更適合壓縮擴展器。壓縮擴展器選擇來自發射器的訊號,對其進行壓縮,以適合8位LUT位址。根據輸入訊號位準,使用者可調整該值,以優化LUT利用率。其值可以在(0, 4)的範圍內設定,步進為0.25。在本文的最後一個部分,提供了更多有關壓縮擴展器的內容。

配置

Figure 4. Basic configuration to enable DPD.

圖4. 啟用DPD的基本配置。

為了執行DPD,用戶將必須在PA上啟用外部環回路徑,然後設定回饋功率,以確保其未超出範圍。注意,這是峰值功率,不是平均功率。功率太強或者太弱都會影響DPD性能。使用者還需要設定外部路徑延遲,可使用External_Delay_Measurement.py獲取。使用者可在IronPython資料夾下的ADRV9002評估軟體安裝路徑中找到該腳本。

注意,只需為高採樣速率曲線設定外部延遲(例如,LTE 10 MHz)。對於低採樣速率曲線(TETRA1 25 kHz),用戶可將其設定為0。在本文的後段,我們將使用該軟體工具來觀察擷取資料,以瞭解外部延遲的影響。


其他設定


Figure 5. Additional configurations on DPD.

圖5. DPD上的其他配置。

使用者可配置樣本數量。預設情況下,使用者可設定4096個樣本。建議使用預設值。在大多數情況下,預設的4096個樣本將為DPD提供最優解決方案。

  • 其他功率縮放 是更進階的參數。在大多數情況下,建議對ADRV9002使用預設值4。該參數與內部相關矩陣有關。根據我們的實驗,預設值為我們測試的現有波形和PA提供最佳性能。在少數情況下,如果輸入訊號幅度極小或極大,使用者可嘗試將該值調整成較小和較大的值,以使相關矩陣維持適當的條件數,進而獲得更穩定的解決方案。
  • Rx/Tx規範化:用戶應將接收器/發射器規範化設定為資料呈線性的區域。在圖6中,線性區域用紅色顯示。在該區域,資料的冪沒有到達壓縮區,並且夠高,可用於計算增益。選擇該區域後,DPD可估算發射器和接收器的增益,然後繼續對演算法進行進一步處理。在大多數情況下,–25 dBFS至–15 dBFS應適合大多數標準PA。但是,用戶仍然應該留意,因為特殊PA可能具有截然不同的AM/AM曲線形狀,在此種情況下,將需要進行適當的修改。本文後面部分將對此進行更詳細說明。
Figure 6. Typical AM/AM curve. The linear region is in red.

圖6. 典型AM/AM曲線。線性區域用紅色顯示。

設定

硬體設定


典型設定如圖7所示。在訊號進入PA之前,需要低通濾波器,以防止出現LO訊號諧波。在某些情況下,如果內部LO相位雜訊性能無法滿足應用需求,則可能需要外部LO。在此種情況下,外部LO源需要與DEV_ CLK同步。近帶雜訊要求更嚴格的窄頻DPD通常需要外部LO。通常建議在PA前提供一個可變衰減器,用於防止對PA造成損害。回饋訊號應具有適當的衰減,以便按照上一部分中討論的方式設定峰值功率。

Figure 7. A typical DPD hardware block diagram.

圖7. 典型DPD硬體方框圖。

軟體設定

IronPython


下載IronPython庫,以便在GUI上執行IronPython代碼。

在這裡,使用者可以在GUI的IronPython視窗中運行dpd_capture.py,如圖8所示,其會與MATLAB工具一起提供,以獲取發射器和接收器的擷取資料。DPD採樣速率也包含在擷取的檔中。

Figure 8. IronPython GUI window.

圖8. IronPython GUI窗口。

注意,該腳本應在啟動或校準狀態下運行。


MATLAB工具


MATLAB工具分析從dpd_capture.py中擷取的資料。該工具將協助檢查訊號完整性、訊號對齊、PA壓縮水準,最後是DPD的微調。

MATLAB工具需要MATLAB Runtime。首次安裝需要一些時間下載。安裝完成後,用戶可載入IronPython腳本擷取的資料,然後觀察圖形,如圖9所示。

Figure 9. MATLAB DPD analyzer.

圖9. MATLAB DPD分析儀。

此外,使用者還可設定資料規範化的高/低閾值,然後按「重新載入」以查看變化。.

首先,我們在時域中繪製了規範化的發射器和接收器資料。使用者可以放大圖形來觀察發射器和接收器的對齊狀態。此處只顯示了資料的實部,但用戶也可輕鬆繪製虛部。實部和虛部通常應該對齊或不對齊。

然後是發射器和接收器頻譜——其中,藍色是發射器,紅色是接收器。注意,這是間接DPD——發射器資料將是預失真資料,而不是SSI埠上的發射器資料路徑。

接下來,我們有兩條AM/AM曲線,這兩條曲線均在線性和dB坐標系中。這些是有關DPD性能和PA壓縮狀態的重要指標。

還提供AM/PM曲線和接收器/發射器相位差。

此外,還有高閾值和低閾值數字。這些數位應該與ADRV9002 TES評估軟體中的設定相匹配。

注意,由於我們提供了API來擷取資料,因此如果需要,使用者可以開發自己的圖形和分析模型。該工具提供用於分析DPD的一些常見檢查。API包括:

adi_ADRV9002_dpd_CaptureData_Read,這是讀取DPD擷取資料,必須在校準或啟動狀態下運行。

adi_ADRV9002_DpdCfg_t → dpdSamplingRate_Hz,這是DPD採樣速率,是唯讀參數。

典型問題

DPD可能受許多不同因素的影響。因此,請務必確保用戶已經加以考量並檢查了列出的所有潛在問題。在考量所有問題之前,使用者應確保硬體正確連接。


發送資料超載


圖10顯示了ADRV9002實現DPD的簡化示意框圖。來自介面的發射器資料可能會使DAC超載。如果DAC超載,發射器的RF訊號在PA介入之前就已失真。因此,請務必確保發射器資料不會使DAC超載。

Figure 10. A high level hardware block diagram for DPD.

圖10. DPD的簡化硬體方框圖。

用戶可透過GUI觀察發射器DAC是否超載。圖11顯示TETRA1 25 kHz波形。峰值與數字滿量程仍相距甚遠。對於ADRV9002,建議與滿量程至少保持幾dB,避免導致DAC超載。很難量化用戶應該回退多少——這是因為DPD將嘗試執行預失真,預失真訊號將為「峰值擴展」,因而可能會導致DAC超載。這取決於DPD如何應對特定PA——一般而言,PA壓縮得越厲害,所需的峰值擴展空間就越大。

Figure 11. A section of the TETRA1 standard waveform in the time domain.

圖11. 時域中的一部分TETRA1標準波形。

接收器資料超載


另一個常見錯誤,是接收器資料導致回饋DAC超載。造成該錯誤的原因,是沒有足夠的衰減返回到接收器埠。這可以從檢測工具中觀察出來,造成的影響是接收器資料被裁剪,因此,發射器和接收器無法有效對齊,導致DPD出現計算錯誤。DPD通常會表現不佳,進而使整個頻譜中的雜訊增加。


接收器資料欠載


相較於接收器超載,這個問題常常被忽視。造成該問題的原因是沒有正確設定回饋衰減。使用者可能給回饋路徑提供過多的衰減,這導致接收器資料太小。預設情況下,建議對ADRV9002使用–18 dBm峰值,因其能夠將資料從類比轉換為數位,達到已知良好的DPD功率位準。但使用者可以根據自己的需求調整該數字。用戶應該瞭解,DPD回饋接收器使用的衰減器與常規接收器不同,其步長更高。衰減水準透過用戶設定的峰值功率位準進行調整。–23 dBm是最低功率位準(0衰減)——如果超出該範圍,將得到低功率位準,這會影響DPD性能。根據經驗,使用者應確保始終正確測量和設定回饋功率。很多時候,用戶往往會嘗試不同的功率位準,但忘記正確設定回饋功率,進而導致該問題。

Figure 12. Receiver data overdriven.

圖12. 接收器資料過驅。

Figure 13. Unaligned DPD capture.

圖13. 未對齊的DPD擷取。

TDD與FDD


TDD模式下的DPD必須在自動狀態機中運行。使用TES進行評估時,在手動TDD模式下,使用者仍可啟用DPD,但性能會很差。這是因為DPD只能基於幀工作。在手動TDD模式下,幀的長度將由發射/接收啟用訊號切換來確定。換言之,每次播放和停止就是一個幀。但是,在人工切換的時間內,PA已轉變為不同的溫度狀態。因此,如果不使用可以頻繁切換發射啟用訊號的自動TDD模式,將無法維持DPD狀態。然而,在FDD模式下,DPD應正常進行。

例如,用戶可能希望使用TETRA1,其遵循類似TDD的幀方案(實際上是TDM-FDD)。因此,不應該直接選擇TDD模式並手動檢查DPD,並且DPD往往表現糟糕。相反,用戶可以使用「客製FDD」設定檔,選擇與TETRA1相同的採樣速率和頻寬,或者使用者可以設定TETRA1 TDD幀定時,並使用自動TDD模式。這兩種方法都可以提供比手動TDD更好的性能。


發射器/接收器未對齊


ADRV9002將嘗試對齊發射器和接收器資料的時間。當使用者擷取到資料時,使用者期望資料是對齊的。延遲測量在初始校準時完成。但是,對於高採樣速率曲線,需要單獨完成更精準的子樣本對齊。

Figure 14. Zoom-in of real transmitter and receiver data of LTE10 (unaligned).

圖14. 放大LTE10的發射器和接收器實部資料(未對齊)。

DPD是自我調整演算法,需要計算兩個實體(即發射器和接收器)的誤差。在計算發射器和接收器的誤差之前,需要正確對齊這兩個訊號——尤其是在使用高採樣速率曲線(例如,LTE10)的情況下。對齊十分重要,因為樣本之間的間隔非常小。因此,使用者需要運行腳本External_Delay_Measurement.py來提取外部路徑延遲。可在「板配置」→「路徑延遲」下方輸入該數位。

Figure 15. IronPython external delay measurement.

圖15. IronPython外部延遲測量。

如果未對齊發射器和接收器資料,所造成的影響,是用戶將觀察到雜訊更大的AM/AM曲線。

設定了路徑延遲數位後,我們可以觀察到,AM/AM和AM/PM曲線更乾淨,雜訊更小。相位差也明顯減小。

Figure 16. Aligned DPD capture.

圖16. 對齊的DPD擷取。

Figure 17. Zoomed-in transmitter and receiver real part data of LTE10 (aligned).

圖17. 放大的LTE10發射器和接收器實部資料(對齊)。

PA超載


每個PA對於能夠處理的壓縮程度都有自己的規範。雖然產品手冊中通常提供P-1dB資料,但實際上,仍建議對DPD進行準確測量,以確保壓縮點位於P-1dB。透過DPD軟體,使用者能夠查看基於擷取資料的AM/AM曲線,進而觀察壓縮點與P-1dB的接近程度。

Figure 18. PA overload data.

圖18. PA超載數據。

但是,如果訊號超出P-1dB,這可能會導致DPD不穩定,或者甚至中斷,頻譜跳轉到非常高的位準,再也不會降下來。在圖19中,峰值時的壓縮遠超出1 dB區域,曲線的形狀也開始變得更平坦。這表示PA被過驅,為了增加輸出功率,將提供更多輸入,以支援輸出功率位準。此時,如果用戶決定繼續增加輸入功率,DPD性能將下降。

Figure 19. AM/AM curve in dB (zoomed in).

圖19. 以dB為單位呈現的AM/AM曲線(已放大)。

一般策略模式選擇與調整


間接DPD就是在PA前後擷取資料,而DPD引擎將嘗試類比PA的相反效應。LUT用於使用係數應用該效應,該模式基於多項式。這表示DPD更像是曲線擬合問題,使用者將嘗試使用各項來「曲線擬合」非線性效應。區別在於,曲線擬合問題擬合的是單一曲線,而DPD還必須考慮記憶效應。ADRV9002有3個記憶分支,和1個用於對DPD LUT進行建模的交叉分支。

圖20顯示ADRV9002提供的3個記憶分支和1個交叉分支。一般策略與曲線擬合問題類似。用戶可從基線著手,然後增加和移除項。一般而言,中心分支必須存在(分支1)。用戶可以逐一增加和移除項,以測試DPD的效應。然後,使用者可以繼續增加兩個記憶分支(分支0和2),以增加記憶效應校正的效果。注意,由於ADRV9002有兩個側分支,因此這些分支應該相同——也就是應該對稱。此外,增加和移除項時,必須逐一操作。最後,用戶可以試驗交叉項。交叉項從數學的角度完成曲線擬合問題,因而提供更好的DPD性能。

Figure 20. Memory terms and cross terms map.

圖20. 記憶項和交叉項映射。

Figure 21. Invalid model term settings.

圖21. 無效的模式項設定。

注意,用戶不得透過將項留空來跳過項,因為這將導致DPD出現不良行為。另請注意,使用者不得在交叉項分支上設定第0項,因為從數學的角度來看,這也是無效的。

進階調整

壓縮擴展器和預LUT縮放模組


在上一部分中,我們提到了壓縮擴展器。首次閱讀使用者指南時,此一概念可能會令人困惑,不知道它是什麼意思或者該選擇什麼(256還是512)。壓縮擴展器的目的是壓縮輸入資料,並將其放入LUT。

壓縮擴展器的一般形狀是平方根,在這裡,I/Q數據傳入。在我們將這些資料放入LUT之前,等式√(i(n)2+q(n)2)將用於從之前的等式中獲得訊號幅度。然而,由於平方根運算對速度的要求很高,並且還需要將其映射到LUT(8位或9位),因此需使用壓縮擴展器。圖22是理想的平方根曲線。此處將不顯示實際實現方案,但簡言之,這將是對平方根曲線的估算。

Figure 22. Compander—estimate shape of square root.

圖22. 壓縮擴展器——估算平方根的形狀。

瞭解資料如何放入LUT後,我們可以更明智地開始調整資料。ADRV9002可選擇8位元(256)或9位元(512)作為LUT大小。更大的LUT表示資料的位址位置加倍。這表示資料的解析度更高,並且一般而言,量化雜訊位準更好。對於窄頻應用,由於雜訊非常重要,因此我們建議始終選擇512。對於寬頻應用,由於雜訊位準沒那麼重要,因此可使用任一選項。但是,如果選擇512,消耗的功率會略高,計算速度會比較慢。


長條圖和CFR


在DPD配置部分,我們簡要提及了預縮放。該參數用於為LUT提供大量輸入資料。需要大量輸入資料的原因是,在某些情況下,DPD未正確使用資料。對於此類PA壓縮問題,真正被壓縮並導致問題的是高幅度樣本。因此,我們不能平等對待所有樣本;相反的,我們需要重點關注高幅度樣本。

現在請看一下TETRA1標準波形長條圖(參見圖23和圖24)。在此可以看到,大多數值出現在中高幅度區域。這是因為TETRA1標準使用D-QPSK調變方案,結果是訊號將獲得恆定包絡。峰值功率與平均功率之間沒有太大的區別。

Figure 23. Histogram on TETRA1 magnitude.

圖23. TETRA1幅度長條圖。

Figure 24. Histogram on TETRA1 power.

圖24. TETRA1功率長條圖。

這正是DPD所需要的。如前所述,DPD將擷取更高幅度的樣本,因此將更能表徵PA的行為。

現在,我們以類似方式來看LTE10標準。LTE使用OFDM調變方案,將成百上千的子載波組合在一起。這裡可再次看到LTE10的幅度和功率,讓我們可以輕鬆觀察到與TETRA1的區別,即峰值離主平均值非常遠。

Figure 25. Histogram on LTE10 magnitude, no CFR.

圖25. LTE10幅度長條圖,沒有CFR。

在功率長條圖中(參見圖26),如果放大遠端,可以看到仍有非常高的峰值出現,但概率非常低。對於DPD而言這是非常不利的。原因有二:

Figure 26. Histogram on LTE power, no CFR.

圖26. LTE功率長條圖,沒有CFR。

首先,高峰值(高幅度訊號)的低概率計數將使PA的效率極其低下。例如,LTE PAPR約為11 dB。這是很大的不同。為了避免損壞PA,輸入位準將需要大幅回退。因此,PA沒有用其大部分增益能力來提升功率。

Figure 27. Zoom-in high amplitude samples.

圖27. 放大高幅度樣本。

第二,高峰值也是在浪費LUT的利用率。由於這些高峰值,LUT將為它們分配大量資源,並為大部分數據僅分配一小部分LUT。這會降低DPD性能。

削峰(CFR)技術將訊號峰值向下移動到更能接受的水準。這通常用於OFDM類型的訊號。ADRV9002不包含片內CFR,因此需要在外部實現該功能。為此,在ADRV9002 TES評估軟體中,還包含CFR版本的LTE波形。CFR_sample_rate_15p36M_bw_10M.csv如圖28所示。可以看到,由於CFR,在高功率時,訊號的峰值被限制在特定水準(在末端傾斜)。這將PAPR有效地推動到6.7 dB,差值約為5 dB。CFR的操作將對資料造成「損害」,因為EVM將降級。但是相較於整個波形,高位準幅度峰值出現的概率非常小,將帶來高度的優勢。

Figure 28. Histogram LTE10 magnitude with CFR.

圖28. LTE10幅度長條圖,有CFR。

Figure 29. Histogram LTE10 power with CFR.

圖29. LTE10功率長條圖,有CFR。

結論

由於DPD是一種複雜的演算法,因此造成許多人使用上的困難。為了獲得最佳結果,往往需要花費大量精力來設定硬體和軟體,並且還需要非常謹慎。ADRV9002提供整合式晶片內DPD,這將進一步顯著降低複雜性,此外,ADRV9002還配備DPD軟體工具,更可協助使用者分析其DPD性能。