加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入
  • 正文
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

让数字预失真的故障排除和微调不再难 必备攻略请查收

2022/08/29
701
阅读需 29 分钟
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

摘要
本文介绍ADI ADRV9002的数字预失真(DPD)功能。所用的一些调试技术也可应用于一般DPD系统。首先,概述关于DPD的背景信息,以及用户试验其系统时可能会遇到的一些典型问题。最后,文章介绍在DPD软件工具帮助下可应用于DPD算法以分析性能的调优策略。

简介
数字预失真(通常称为DPD)是无线通信系统中广泛使用的一个算法。DPD旨在抑制通过射频功率放大器(PA)传递宽带信号上的频谱再生,从而提高PA的整体效率。一般而言,在处理高功率输入信号时,PA会出现非线性效应和效率不高的问题。由于频谱再生,相邻频带出现非线性效应和频谱干扰。图1显示在ADRV9002平台上使用TETRA1标准进行DPD校正之前和之后的频谱再生。

图1.使用ADRV9002的TETRA1 DPD

ADRV9002提供经过功率优化的内部可编程DPD算法,该算法可自定义,以校正PA的非线性效应,从而提高整体邻道功率比(ACPR)。尽管DPD能够为通信系统带来预期的优势,但缺乏经验的人员开始使用DPD时往往困难重重,更别提正确设置了。这主要因为数字预失真涉及多个因素,可能会导致误差,而降低DPD性能。实际上,即使在正确设置硬件后,要确定正确的参数以微调DPD并获得最优解决方案,仍可能具有挑战性。本文旨在帮助在ADRV9002中使用DPD选项的工程师,以及提供一些使用可用参数微调DPD模式以获得最优DPD性能的一般策略。此外,还使用MATLAB®工具帮助用户分析DPD,并消除常见错误,同时提供有关内部DPD操作的一些见解。

启用DPD选项时,ADRV9002可提供高达20MHz的信号带宽。这是因为接收带宽限制在100MHz。DPD通常将以发射带宽5倍的接收带宽工作,因此可以看到和校正三阶和五阶交调信号。ADRV9002支持的最高PA峰值功率信号约为1dB(通常称为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的下一次迭代中将应用这些系数。

图2.间接DPD的简化方框图

 
工作模式

ADRV9002在DPD上支持TDD和FDD操作。在TDD模式下,每个发射帧都会更新DPD。这意味着,在发射帧期间,接收器将充当观察路径。在FDD中,由于发射器和接收器同时运行,因此需要专用接收器通道。ADRV9002中的2T2R能够在2T2R/1T1R TDD和1T1R FDD模式下支持DPD。

 
DPD模式
结构

以下等式显示在发射路径中实现的DPD模式。

其中:

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是交叉项分支。

注意,为了与记忆项分支区分,分支3(或交叉项分支)不应启用零阶项。

图3.DPD模式多项式的项

  • LUT大小:用户可设置LUT大小。ADRV9002提供两个选项,256和512。选择512大小,用户将获得更好的量化噪声电平,从而获得更好的ACPR,因为一般而言,较大的尺寸将提供更好的信号分辨率。对于窄带应用,ADI建议使用512作为默认选项。256可用于宽带,因为噪声电平不那么严格,并且可以改进计算和功率。
  • 预LUT缩放:用户可设置预LUT缩放模块,以便对输入数据进行缩放,使其更适合压缩扩展器。压缩扩展器选择来自发射器的信号,对其进行压缩,以适合8位LUT地址。根据输入信号电平,用户可调整该值,以优化LUT利用率。其值可以在(0,4)的范围内设置,步长为0.25。在本文的最后一个部分,提供了更多有关压缩扩展器的内容。

 
配置

图4.启用DPD的基本配置

为了执行DPD,用户将必须在PA上启用外部环回路径,然后设置反馈功率,以确保其未超出范围。注意,这是峰值功率,不是平均功率。功率太强或者太弱都会影响DPD性能。用户还需要设置外部路径延迟,可使用External_Delay_Measurement.py获取。用户可在IronPython文件夹下的ADRV9002评估软件安装路径中找到该脚本。

注意,只需为高采样速率曲线设置外部延迟(例如,LTE 10MHz)。对于低采样速率曲线(TETRA1 25kHz),用户可将其设置为0。在本文的后面部分,将使用该软件工具来观察捕捉数据,以了解外部延迟的影响。

 
其他配置

图5.DPD上的其他配置

用户可配置样本数量。默认情况下,用户可设置4096个样本。建议使用默认值。在大多数情况下,默认的4096个样本将为DPD提供最优解决方案。

  • 其他功率缩放是更高级的参数。在大多数情况下,建议对ADRV9002使用默认值4。该参数与内部相关矩阵有关。根据实验,默认值为ADI测试的现有波形和PA提供最佳性能。在少数情况下,如果输入信号幅度极小或极大,用户可尝试将该值调整成较小和较大的值,以使相关矩阵维持适当的条件数,从而获得更稳定的解决方案。
  • Rx/Tx规范化:用户应将接收器/发射器规范化设置为数据呈线性的区域。在图6中,线性区域用红色显示。在该区域,数据的幂没有到达压缩区,并且足够高,可用于计算增益。选择该区域后,DPD可估算发射器和接收器的增益,然后继续对算法进行进一步处理。在大多数情况下,-25dBFS至-15dBFS应适合大多数标准PA。但是,用户仍然应该留意,因为特殊PA可能具有截然不同的AM/AM曲线形状,在这种情况下,将需要进行适当的修改。本文后面部分将对此进行详细说明。

图6.典型AM/AM曲线。线性区域用红色显示

 
设置
硬件设置

图7.典型DPD硬件方框图

典型设置如图7所示。在信号进入PA之前,需要低通滤波器,以防止出现LO信号谐波。在某些情况下,如果内部LO相位噪声性能无法满足应用需求,则可能需要外部LO。在这种情况下,外部LO源需要与DEV_ CLK同步。近带噪声要求更严格的窄带DPD通常需要外部LO。通常建议在PA前提供一个可变衰减器,用于防止对PA造成损害。反馈信号应具有适当的衰减,以便按照上一部分中讨论的方式设置峰值功率。

 
软件设置
IronPython

下载IronPython库,以便在GUI上执行IronPython代码。

图8.IronPython GUI窗口

在这里,用户可以在GUI的IronPython窗口中运行dpd_capture.py,如图8所示,它与MATLAB工具一起提供,以获取发射器和接收器的捕捉数据。DPD采样速率也包含在捕捉的文件中。

注意,该脚本应在启动或校准状态下运行。

 
MATLAB工具
MATLAB工具分析从dpd_capture.py中捕捉的数据。该工具将帮助检查信号完整性、信号对齐、PA压缩水平,最后是DPD的微调。

MATLAB工具需要MATLAB Runtime。首次安装需要一些时间下载。安装完成后,用户可加载IronPython脚本捕捉的数据,然后观察图形,如图9所示。

图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.DPD的简化硬件方框图

图10显示了ADRV9002实现DPD的简化示意框图。来自接口的发射器数据可能会使DAC过载。如果DAC过载,发射器的RF信号在PA介入之前就已失真。因此,请务必确保发射器数据不会使DAC过载。

用户可通过GUI观察发射器DAC是否过载。图11显示TETRA1 25kHz波形。峰值与数字满量程仍相距甚远。对于ADRV9002,建议与满量程至少保持几dB,避免导致DAC过载。很难量化用户应该回退多少——这是因为DPD将尝试执行预失真,预失真信号将为“峰值扩展”,因而可能会导致DAC过载。这取决于DPD如何应对特定PA——一般而言,PA压缩得越厉害,所需的峰值扩展空间就越大。

图11.时域中的一部分TETRA1标准波形

 
接收器数据过载
另一个常见错误是接收器数据导致反馈DAC过载。造成该错误的原因是,没有足够的衰减返回到接收器端口。这可以从调试工具中观察到,造成的影响是接收器数据被裁剪,因此,发射器和接收器无法有效对齐,导致DPD出现计算错误。DPD通常会表现得非常糟糕,从而使整个频谱中的噪声增加。

图12.接收器数据过驱

 
接收器数据欠载
与接收器过载相比,这个问题常常被忽视。造成该问题的原因是,没有正确设置反馈衰减。用户可能给反馈路径提供过多的衰减,这导致接收器数据太小。默认情况下,建议对ADRV9002使用-18dBm峰值,因为它能够将数据从模拟转换为数字,达到已知良好的DPD功率电平。但用户可以根据需求调整该数字。用户应该了解,DPD反馈接收器使用的衰减器与常规接收器不同,其步长更高。衰减水平通过用户设置的峰值功率电平进行调整。-23dBm是最低功率电平(0衰减)——如果超出该范围,将得到低功率电平,这会影响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将尝试对齐发射器和接收器数据的时间。当用户捕捉到数据时,用户期望数据是对齐的。延迟测量在初始校准时完成。但是,对于高采样速率曲线,需要单独完成更精确的子样本对齐。

图13.未对齐的DPD捕捉

图14.放大LTE10的发射器和接收器实部数据(未对齐)

DPD是自适应算法,需要计算两个实体(即发射器和接收器)的误差。在计算发射器和接收器的误差之前,需要正确对齐这两个信号——尤其是在使用高采样速率曲线(例如,LTE10)的情况下。对齐至关重要,因为样本之间的间隔非常小。因此,用户需要运行脚本External_Delay_Measurement.py来提取外部路径延迟。可在“板配置”→“路径延迟”下方输入该数字。

图15.IronPython外部延迟测量

如果未对齐发射器和接收器数据,造成的影响是用户将观察到噪声更大的AM/AM曲线。

图16.对齐的DPD捕捉

设置了路径延迟数字后,可以观察到,AM/AM和AM/PM曲线更干净,噪声更小。相位差也明显减小。

图17.放大的LTE10发射器和接收器实部数据(对齐)

 
PA过载
每个PA对于能够处理的压缩程度都有自己的规范。虽然数据手册中通常提供P-1dB数据,但实际上,仍建议对DPD进行准确测量,以确保压缩点位于P-1dB。通过DPD软件,用户能够查看基于捕捉数据的AM/AM曲线,从而观察压缩点与P-1dB的接近程度。

图18.PA过载数据

图19.以dB为单位呈现的AM/AM曲线

但是,如果信号超出P-1dB,这可能会导致DPD不稳定,或者甚至中断,频谱跳转到非常高的电平,再也不会降下来。在图19中,峰值时的压缩远超出1dB区域,曲线的形状也开始变得更平坦。这表示PA被过驱,为了增加输出功率,将提供更多输入,以支持输出功率电平。此时,如果用户决定继续增加输入功率,DPD性能将下降。

 
一般策略模式选择与调整
间接DPD就是在PA前后捕捉数据,而DPD引擎将尝试模拟PA的相反效应。LUT用于使用系数应用该效应,该模式基于多项式。这意味着,DPD更像是曲线拟合问题,用户将尝试使用各项来“曲线拟合”非线性效应。区别在于,曲线拟合问题拟合的是单个曲线,而DPD还必须考虑记忆效应。ADRV9002有3个记忆分支,和1个用于对DPD LUT进行建模的交叉分支。

图20.记忆项和交叉项映射

图20显示ADRV9002提供的3个记忆分支和1个交叉分支。一般策略与曲线拟合问题类似。用户可从基线着手,然后添加和移除项。一般而言,中心分支必须存在(分支1)。用户可以逐个添加和移除项,以测试DPD的效应。然后,用户可以继续添加两个记忆分支(分支0和2),以添加记忆效应校正的效果。注意,由于ADRV9002有两个侧分支,因此这些分支应该相同——也就是,应该对称。此外,添加和移除项时,必须逐个操作。最后,用户可以试验交叉项。交叉项从数学的角度完成曲线拟合问题,因而提供更好的DPD性能。

注意,用户不得通过将项留空来跳过项,因为这将导致DPD出现不良行为。另请注意,用户不得在交叉项分支上设置第0项,因为从数学的角度来看,这也是无效的。

图21.无效的模式项设置

 
高级调整
压缩扩展器和预LUT缩放模块

在上一部分中,已提到了压缩扩展器。首次阅读用户指南时,这一概念可能会令人困惑,不知道它是什么意思或者该选择什么(256还是512)。压缩扩展器的目的是压缩输入数据,并将其放入LUT。

图22.压缩扩展器——估算平方根的形状

压缩扩展器的一般形状是平方根,在这里,I/Q数据传入。在将这些数据放入LUT之前,等式√(i(n)2+q(n)2)将用于从之前的等式中获得信号幅度。然而,由于平方根运算对速度的要求很高,并且还需要将其映射到LUT(8位或9位),因此需使用压缩扩展器。图22是理想的平方根曲线。此处将不显示实际实现方案,但简言之,这将是对平方根曲线的估算。

了解数据如何放入LUT后,可以更加明智地开始调整数据。ADRV9002可选择8位(256)或9位(512)作为LUT大小。更大的LUT意味着数据的地址位置加倍。这意味着,数据的分辨率更高,并且一般而言,量化噪声电平更好。对于窄带应用,由于噪声非常重要,因此建议始终选择512。对于宽带应用,由于噪声电平没那么重要,因此可使用任一选项。但是,如果选择512,消耗的功率会略高,计算速度会比较慢。

 
直方图和CFR
在DPD配置部分,曾简要提及预缩放。该参数用于为LUT提供大量输入数据。需要大量输入数据的原因是,在某些情况下,DPD未正确使用数据。对于此类PA压缩问题,真正被压缩并导致问题的是高幅度样本。因此,不能平等对待所有样本;相反,要重点关注高幅度样本。

看一下TETRA1标准波形直方图(参见图23和图24)。可以看到,大多数值出现在中高幅度区域。这是因为TETRA1标准使用D-QPSK调制方案,结果是信号将获得恒定包络。峰值功率与平均功率之间没有太大的区别。

这正是DPD所需要的。如前所述,DPD将捕捉更高幅度的样本,因此将更好地表征PA的行为。

图23.TETRA1幅度直方图

图24.TETRA1功率直方图

现在,以类似方式来看LTE10标准。LTE使用OFDM调制方案,将成百上千的子载波组合在一起。这里可再次看到LTE10的幅度和功率。可以轻松观察到与TETRA1的区别,即峰值离主平均值非常远。

图25.LTE10幅度直方图,没有CFR

图26.LTE功率直方图,没有CFR

在功率直方图中(参见图26),如果放大远端,可以看到,仍有非常高的峰值出现,但概率非常低。对于DPD,这是非常不利的。原因有二。

首先,高峰值(高幅度信号)的低概率计数将使PA的效率极其低下。例如,LTE PAPR约为11dB。这是很大的不同。为了避免损坏PA,输入电平将需要大幅回退。因此,PA没有用其大部分增益能力来提高功率。

其次,高峰值也是在浪费LUT的利用率。由于这些高峰值,LUT将为它们分配大量资源,并为大部分数据仅分配一小部分LUT。这会降低DPD性能。

图27.放大高幅度样本

削峰(CFR)技术将信号峰值向下移动到更能接受的水平。这通常用于OFDM类型的信号。ADRV9002不包含片内CFR,因此需要在外部实现该功能。为此,在ADRV9002 TES评估软件中,还包含CFR版本的LTE波形。CFR_sample_ rate_15p36M_bw_10M.csv如图28所示。可以看到,由于CFR,在高功率时,信号的峰值被限制在特定水平(在末端倾斜)。这将PAPR有效地推动到6.7dB,差值约为5dB。CFR的操作将对数据造成“损害”,因为EVM将降级。但是,与整个波形相比,高电平幅度峰值出现的概率非常小,将带来巨大的优势。

图28.LTE10幅度直方图,有CFR

图29.LTE10功率直方图,有CFR

 
结论

DPD是一种复杂的算法,许多人都觉得很难用。为了获得最优结果,需要花费大量精力设置硬件和软件,并且要小心谨慎。ADI的ADRV9002提供集成式片内DPD,将显著降低复杂性。ADRV9002还配备有DPD软件工具,可以帮助用户分析其DPD性能。

ADI

ADI

亚德诺半导体全称为亚德诺半导体技术有限公司(analog devices,inc.)简称ADI。是一家专营半导体传感器和信号处理ic的卓越的供应商,ADI将创新、业绩和卓越作为企业的文化支柱,并基此成长为该技术领域最持久高速增长的企业之一。ADI是业界卓越的半导体公司,在模拟信号、混合信号和数字信号处理的设计与制造领域都发挥着十分重要的作用。

亚德诺半导体全称为亚德诺半导体技术有限公司(analog devices,inc.)简称ADI。是一家专营半导体传感器和信号处理ic的卓越的供应商,ADI将创新、业绩和卓越作为企业的文化支柱,并基此成长为该技术领域最持久高速增长的企业之一。ADI是业界卓越的半导体公司,在模拟信号、混合信号和数字信号处理的设计与制造领域都发挥着十分重要的作用。收起

查看更多

相关推荐

电子产业图谱