本文介绍ADRV9002的数字预失真(DPD)功能。使用的一些调试技术也可以应用于一般DPD系统。首先,概述了有关DPD的背景信息以及用户在试验其系统时可能遇到的一些典型问题。最后,它描述了可以在DPD软件工具的帮助下应用于DPD算法以分析性能的调整策略。
介绍
数字预失真(通常称为DPD)是一种广泛用于无线通信系统的算法。DPD的目的是抑制通过射频功率放大器(PA)的宽带信号的频谱再生,1从而提高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,并提供有关理论概念和解决实际问题的有用信息。®
启用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 的下一次迭代。
图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是实现 Tap t
l 的查找表 (LUT) 的多项式函数t是幅度延迟
kt数据延迟
是否为T,LT,I是 DPD 引擎
b 计算的系数T,LT,I是启用或禁用项
的开关 i 是多项式项的索引和幂
用户可以为每个抽头配置多项式项的数量。ADRV9002提供三个存储器项抽头和一个交叉项抽头,每个抽头的阶数为0至7。
型号选择
用户可以选择ADRV9002提供的默认型号选项(如图3所示),该选项适用于大多数常见情况。或者,用户可以通过启用和禁用术语来选择自己的模型。前三次点击(0 到 2)表示内存术语,其中点击 1 是中心点击。点击 3 是交叉项点击。
图3.DPD 模型多项式项。
注意 点击 3(或交叉项点击)不应启用零阶项,以区别于内存项点击。
LUT 大小:用户可以设置 LUT 大小。ADRV9002提供256和512两种选择。使用512尺寸,用户将具有更好的量化噪声水平,从而获得更好的ACPR,因为较大的尺寸通常会提供更好的信号分辨率。对于窄带应用,我们建议使用 512 作为默认选项。256可用于宽带,因为噪声水平不那么严格,并且可以提高计算和功率。
预 LUT 缩放:用户可以设置预 LUT 缩放器以缩放输入数据,以更好地适应压缩扩展器。压缩扩展器从发射器获取信号并将其压缩以适合 8 位 LUT 地址。根据输入信号电平,用户可以调整此值以优化LUT利用率。可以在范围 (0, 4) 中设置这些值,步长为 0.25。本文最后一节详细介绍了压缩膨胀机。
配置
图4.启用 DPD 的基本配置。
要执行DPD,用户必须在PA上启用外部环回路径,然后设置反馈功率以确保它不会超出范围。请注意,这是峰值功率,而不是平均功率。功率太强或太弱都会影响DPD性能。用户还需要设置外部路径延迟,可以使用External_Delay_Measurement.py获得。此脚本可在 IronPython 文件夹下的 ADRV9002 评估软件安装路径中找到。
请注意,只需为高采样速率配置文件(例如LTE 10 MHz)设置外部延迟。对于低采样率配置文件(TETRA1 25 kHz),用户可以将其设置为0。在本文的后面,我们将使用软件工具来观察捕获数据,以查看外部延迟效果。
其他设置
图5.DPD 上的其他配置。
用户可以配置样本数。默认情况下,用户可以设置 4096 个样本。建议使用默认值。在大多数情况下,默认的 4096 样本将为 DPD 提供最佳解决方案。
附加功率刻度是一个更高级的参数。在大多数情况下,建议对ADRV9002使用默认值4。此参数与内部相关矩阵有关。根据我们的实验,默认值为我们测试的现有波形和PA提供了最佳性能。在极少数情况下,输入信号幅度极小或极大,用户可以尝试将此值调整为越来越小的值,以便相关矩阵保持适当的条件数,从而获得更稳定的解。
Rx/Tx 归一化:用户应将接收器/发射器归一化设置为数据线性的区域。在图6中,线性区域以红色显示。在这个区域中,数据的功率尚未达到压缩区域,并且足够高以进行增益计算。选择区域后,DPD可以估计发射器和接收器的增益,并继续对算法进行进一步处理。在大多数情况下,–25 dBFS 至 –15 dBFS 应适用于大多数标准 PA。但是,用户仍应注意,因为特殊的PA可能具有非常不同的AM/AM曲线形状,在这种情况下,需要进行适当的修改。本文后面的部分将对此进行更详细的描述。
图6.典型的 AM/AM 曲线。线性区域为红色。
设置
硬件设置
典型设置如图7所示。在信号进入PA之前需要一个低通滤波器,以防止LO信号谐波。在某些情况下,当内部LO相位噪声性能不能满足应用要求时,可能需要外部LO。在这种情况下,外部LO源需要与DEV_CLK同步。窄带DPD通常需要这样做,因为窄带DPD对近带噪声要求更为严格。通常建议在PA之前有一个可变衰减器,以防止对PA的潜在损坏。反馈信号应具有适当的衰减,以设置峰值功率,如上一节所述。
图7.典型的DPD硬件框图。
软件设置
铁蟒蛇
下载 IronPython 库,以便在 GUI 上执行 IronPython 代码。
在这里,用户可以在GUI的IronPython窗口中运行dpd_capture.py,如图8所示,与MATLAB工具一起提供,以获取发射器和接收器的捕获数据。DPD采样率也包含在捕获文件中。
图8.IronPython GUI 窗口。
请注意,此脚本应在启动或校准状态下运行。
MATLAB 工具
MATLAB 工具分析从dpd_capture.py捕获的数据。该工具将有助于检查信号完整性、信号对齐、PA压缩电平,最后是DPD的微调。
MATLAB 工具需要 MATLAB 运行时。首次安装需要一些时间才能下载。安装后,用户可以加载 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显示了ADRV9002实现DPD的高级框图。来自接口的发送器数据可能会使DAC过载。如果DAC过载,发射器的RF信号甚至在PA介入之前就会失真。因此,确保发送器数据不会使DAC过载至关重要。
图 10.DPD的高级硬件框图。
要查看发射器DAC是否过载,用户只需从GUI观察即可。图11显示了TETRA1 25 kHz波形。峰值距离数字满量程还很远。对于ADRV9002,建议与满量程至少保持几dB,以避免DAC的潜在过载。很难量化用户应该退让多少,这是因为DPD将尝试执行预失真,而预失真信号将被“峰值扩展”,因此可能会使DAC过载。这取决于DPD对特定PA的反应——通常,PA压缩得越多,峰值扩展所需的空间就越大。
图 11.时域中 TETRA1 标准波形的一部分。
接收器数据过载
另一个常见错误是接收器数据使反馈ADC过载。这是由于没有足够的衰减返回到接收器端口造成的。正如您可以从调试工具中观察到的那样,效果是接收器数据被削波,因此发射器和接收器无法有效对齐,导致DPD出现计算错误。DPD通常表现得非常差,导致整个频谱上的噪声增加。
接收器数据过载
与接收器过载相比,这个问题经常被忽视。这是由于未正确设置反馈衰减引起的。用户可能会对反馈路径施加过多的衰减,从而使接收器数据太小。默认情况下,建议ADRV9002使用–18 dBm峰值,因为它会将模拟到数字的数据带到DPD的已知功率电平。但是,用户可以调整此数字以满足他们的需求。用户应该知道,DPD反馈接收器使用的衰减器与常规接收器不同,而且它的步长要大得多。衰减水平由用户设置的峰值功率电平调整。–23 dBm 是最低功率电平(衰减为 0)— 超出此值,用户将遇到低功率电平,这将影响 DPD 性能。根据经验,用户应确保始终正确测量和设置反馈功率。通常,用户倾向于尝试不同的功率级别,而忘记正确设置反馈功率,从而导致此问题。
图 12.接收器数据过载。
图 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将尝试对发射器和接收器数据进行时间对齐。当用户捕获数据时,它们应对齐。延迟测量在初始校准时间内完成。但是,对于高采样率曲线,需要单独进行更精确的子样品对准。
图 14.放大LTE10的真实发射器和接收器数据(未对齐)。
DPD是一种自适应算法,需要取两个实体(即发射器和接收器)的误差。在考虑发射器和接收器的误差之前,需要正确对齐两个信号,尤其是在使用高采样速率配置文件(例如LTE10)的情况下。对齐至关重要,因为样品之间的间隔很小。因此,用户需要运行脚本External_Delay_Measurement.py以提取外部路径延迟。此数字可以在“板配置”→“路径延迟”下输入。
图 15.IronPython 外部延迟测量。
发射器和接收器数据未对齐的影响是,用户将观察到噪声更大的AM/AM曲线。
设置路径延迟数后,我们可以观察到 AM/AM 和 AM/PM 曲线更干净、噪音更小。相位差也小得多。
图 16.对齐的 DPD 捕获。
图 17.LTE10的放大发射器和接收器实部数据(对齐)。
PA 过载
每个 PA 在可以处理多少压缩方面都有自己的规格。虽然P-1dB数据通常在数据手册中给出,但实际上仍然建议对DPD进行精确测量,以确保压缩点在P-1dB。DPD软件使用户能够根据捕获的数据查看AM/AM曲线,以观察压缩点与P-1dB相比有多接近。
图 18.PA 过载数据。
但是,如果信号超过P-1dB,则可能导致DPD不稳定甚至中断,使频谱跳到非常高的水平并且永远不会下降。在图19中,压缩远远超出了峰值上的1 dB区域,曲线的形状也开始变得平坦。这表明PA被过驱动,为了增加输出上的功率,输入将被推得更多以支持输出功率水平。此时,如果用户决定继续增加输入功率,DPD性能将下降。
图 19.以 dB 为单位的 AM/AM 曲线(放大)。
一般策略模型选取和调整
间接DPD的想法是在PA之前和之后捕获数据,而DPD引擎将尝试模仿PA的相反效果。LUT用于使用系数应用此效果,并且该模型是基于多项式的。这意味着DPD更像是一个曲线拟合问题,用户将尝试使用这些术语来“曲线拟合”非线性效应。不同之处在于曲线拟合问题拟合单个曲线,而DPD还必须考虑记忆效应。ADRV9002具有三个存储器抽头和一个交叉抽头,用于对DPD LUT进行建模。
图20显示了ADRV9002提供的三个存储器抽头和一个交叉抽头。一般策略类似于曲线拟合问题。用户可以从一些基线开始,然后添加和删除术语。通常,必须存在中心抽头(抽头 1)。用户可以逐个添加和删除术语,以测试DPD的效果。然后用户可以再添加两个记忆点击(点击 0 和 2)以添加记忆效果校正的效果。请注意,由于ADRV9002有两个侧抽头,因此这些抽头应相同,即对称。添加和删除术语也应通过逐个方法完成。最后,用户可以尝试跨项。交叉项从数学角度完成了曲线拟合问题,从而提供了更好的DPD性能。
图 20.记忆项和交叉项映射。
图 21.模型项设置无效。
请注意,用户不应跳过术语,将其留空,因为这会导致 DPD 出现不希望的行为。另请注意,用户不应在交叉项抽头上设置第 0 项,因为从数学角度来看,这也是无效的。
高级调优
压缩膨胀机和预LUT定标器
在上一节中,我们提到了压缩扩展机。当第一次阅读用户指南时,这个概念可能会对它的含义或选择什么(256或512)造成一些混淆。压缩扩展器的目的是压缩输入数据并将其放入LUT。
压缩扩展器的一般形状是平方根,您可以在其中输入 I/Q 数据。在将它们放入LUT之前,将使用方程√(i(n)2+q(n)2)从前面的方程中获取信号幅度。但是,由于平方根在速度方面是一项昂贵的操作,并且我们还需要将它们映射到LUT(8位或9位),因此压缩扩展器。图 22 是理想的平方根曲线。实际的实现不会在这里显示,但简而言之,它将是对平方根曲线的估计。
图 22.压缩扩展器 - 估计平方根的形状。
一旦我们了解了数据如何适应LUT,我们就可以开始更智能地调整数据。ADRV9002可以选择8位(256)或9位(512)作为LUT大小。更大的 LUT 意味着数据的地址位置加倍。这意味着更精细的数据分辨率,并且通常具有更好的量化噪声水平。对于窄带应用,由于噪声非常重要,我们建议始终使用512选项。对于宽带应用,由于噪声水平不是那么重要,因此可以使用任一选项。但是,如果使用 512 选项,则会消耗更多的功率,并且计算速度会变慢。
直方图和 CFR
我们简要介绍了DPD配置中的预缩放。此参数用于提升LUT的输入数据。需要这种提升的原因是,在某些情况下,DPD没有正确利用数据。对于这样的PA压缩问题,真正被压缩并导致问题的是高振幅样本。因此,我们不能平等对待所有样本;相反,我们希望将注意力集中在高振幅样本上。
查看 TETRA1 标准波形直方图(参见图 23 和图 24)。我们可以观察到,大多数值出现在中高振幅区域。原因是因为TETRA1标准使用D-QPSK调制方案,结果是信号将具有恒定的包络。峰值功率与平均功率没有太大区别。
图 23.TETRA1 星等的直方图。
图 24.TETRA1 功率直方图。
这对于 DPD 是必需的。如前所述,DPD将捕获更多的高振幅样本,因此可以更好地表征PA的行为。
现在我们以类似的方式看待LTE10标准。LTE使用OFDM调制方案,该方案将成百上千个子载波组合在一起。在这里,我们再次获得了LTE10的幅度和功率。我们可以很容易地观察到与TETRA1相比的差异,即峰值与主要平均值相距甚远。
图 25.LTE10 幅度的直方图,无 CFR。
在幂直方图中(见图26),如果我们放大远端,我们可以观察到仍然有非常高的峰值出现,但概率非常低。这对DPD来说是非常不希望的。原因有二。
图 26.LTE 电源直方图,无 CFR。
首先,高峰值(高幅度信号)的低概率计数将使PA效率极低。例如,LTE PAPR约为11 dB。这是一个很大的区别。为了避免损坏PA,输入电平需要大幅回退。因此,PA没有利用其大部分增益能力来提高功率。
图 27.放大高振幅样本。
其次,高峰也浪费了LUT的利用率。由于这些高峰值,LUT将为其分配大量资源,并且只有一小部分LUT分配给大多数数据。这会降低DPD性能。
波峰因数降低(CFR)是一种将信号峰值降低到更可接受的水平的技术。这通常用于 OFDM 类型的信号。ADRV9002不包括片内CFR,因此该功能需要在外部实现。在ADRV9002 TES评估软件中,我们还包含用于此目的的LTE波形的CFR版本。CFR_sample_rate_15p36M_bw_10M.csv如图 28 所示。我们可以观察到,在高功率下,由于CFR,信号的峰值被限制在一定水平(末端倾斜)。这有效地将PAPR推高到约6.7 dB,几乎是5 dB的差异。CFR 的操作将“损害”数据,从某种意义上说,EVM 会降级。然而,与整个波形相比,高电平幅度峰值的出现概率非常小,好处是巨大的。
图 28.直方图 LTE10 幅度与 CFR。
图 29.直方图 LTE10 电源与 CFR。
结论
DPD是一种复杂的算法,许多人觉得很难使用。设置硬件和软件以获得最佳结果需要大量的精力和谨慎。ADRV9002提供片上集成DPD,可显著降低复杂性。ADRV9002还附带DPD软件工具,可帮助用户分析DPD性能。
审核编辑:郭婷
全部0条评论
快来发表一下你的评论吧 !