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

本文介绍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


什么是AMR总线
大电流型钮扣电池为穿戴医疗设备提供充足的电源
PCB设计中时序参数的具体含义
2019苹果秋季发布会新品各地区售价及发售时间对比
双11哪家店最火爆?荣耀、小米官方旗舰店进入前五
让数字预失真的故障排除和微调不再难 必备攻略请查收
自制法修复收录机按键
“平价机皇”再出新品?NANK南卡LITE真无线蓝牙耳机震撼来袭!
深析主动配电网的无功电压
华中科大与Synopsys建立ARC处理器联合培训中心,为中国IC产业发展输送人才
PZT4压电陶瓷的温度变化研究
努比亚z17和小米6谁才是国产真旗舰?努比亚z17和小米6区别对比
努比亚Z17发布会正式开始:努比亚Z17发布会现场图文直播,代言人C罗会来吗?
物联网全方位的提高了智能电网的信息感知深度
喜推人工智能名片怎么使用?喜推使用教程分享
Raid磁盘阵列故障类型和原因分析
迟滞比较器计算公式与回差计算
韩国:到2030年前AI芯片在全球市占率达20%
中国移动表示2020年将在浙江省全面部署5G网络实现规模商用
准备好迎接你的“新同事”人工智能了吗