0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

什么是DPD?为什么要使用DPD呢?

QuTG_CloudBrain 来源:电子工程专辑 2023-05-09 15:15 次阅读

DPD是数字预失真的首字母缩写,许多射频(RF)、信号处理和嵌入式软件开发工程师都熟悉这一术语。对于DPD,从纯粹数学角度出发的建模,到微处理器实际实现面临的限制,许多工程师都有自己独特的见解。作为负责评估RF基站产品中DPD性能的工程师,或者是一名算法工程师,可能都会想知道数学建模技术以及在实际系统中的实现方式。如今,DPD在蜂窝通信系统中随处可见,使功率放大器(PA)能够有效地为天线提供最大功率。5G基站中的天线数量增加,频谱变得更加拥挤,DPD开始成为一项关键技术,支持开发经济高效且符合规格要求的蜂窝系统。

什么是DPD?为什么要使用DPD?

当基站射频装置输出RF信号时(参见图1),需要先将其放大,然后通过天线发射出去。放大是通过RF PA来实现的。在理想情况下,PA接收输入信号,然后输出与其输入成正比的更高功率信号。PA效率应尽可能高,将放大器的大部分功耗都转化为信号输出功率。

527ff6f4-ec25-11ed-90ce-dac502259ad0.png

图1:采用和未采用DPD技术的简化射频结构框图。

但理想并非实际。PA由晶体管构成,晶体管是有源器件,本身具有非线性。如图2所示,如果PA工作在“线性”(相对而言)区域,则输出功率与输入功率相对成比例。但缺点是PA效率很低,大部分功耗都会作为热量流失。故希望PA工作在压缩初始区。这意味着, PA输出不会随着输入信号等比例增加,即此时输出信号会严重失真。

528e1afe-ec25-11ed-90ce-dac502259ad0.png

图2:PA输出功率与输入功率之间的关系图(显示了输出/输入信号的投影)。

这种失真发生在频域中的已知位置,具体取决于输入信号。图3显示了这些位置,以及基频与这些失真产物之间的关系。在RF系统中,只需要对基波信号附近的失真进行补偿,这些信号是奇阶交调产物。系统滤波处理带外产物(谐波和偶阶交调产物)。图4显示RF PA的压缩点附近的输出。交调产物(特别是三阶)清晰可见,就像是围绕着目标信号的“裙摆”。

529b5e58-ec25-11ed-90ce-dac502259ad0.png

图3:双音输入交调和谐波失真的位置。

52a79cea-ec25-11ed-90ce-dac502259ad0.png

图4:2× 20 MHz信号通过SKY66391-12 RF PA,中心频率为1850 MHz。

DPD旨在通过观察PA输出来表征这种失真,要了解所需输出信号,随之更改输入信号,使得PA输出接近理想值。只有在相当具体的情况下才能有效地实现这一目标。需要配置放大器和输入信号,使放大器有一定程度的压缩但未完全饱和。

PA失真建模背后的数学计算

在“射频功率放大器数字预失真的广义记忆多项式模型”一文中,开创性地介绍了针对DPD广泛使用的广义记忆多项式(GMP)方法。为了简化,先尝试拆解一下GMP方法,以更直观地理解数学原理。

Volterra级数是DPD的重要数学基础,它用于建立具有记忆的非线性系统模型。记忆仅仅意味着系统的当前输出取决于当前和过去的输入。Volterra级数很常用(所以功能强大),对于PA DPD,该级数可以精简使用,使其在实时数字系统中更易实现,也更稳定。

图5显示如何使用GMP对PA的输入x和输出y之间的关系进行建模。可以看到,该等式的三个单独的求和块彼此都非常相似。先来看看下方用红色圈出来的第一个。|x(…)|k项是指输入信号的包络,其中k是多项式阶。l将记忆集成到系统中。如果La={0,1,2},那么该模型允许输出yGMP(n)由当前的输入x(n)和过去输入x(n – 1)和x(n – 2)决定。图6分析多项式阶k对样本向量的影响。向量x是单个20 MHz载波,在复基带上表示出来。去除记忆部分,以简化GMP建模等式。x|x|k图显示的失真与图4中的实际失真非常相似。

每个多项式阶(k)和记忆延迟(l)都有相关的复值权重(akl)。在选择模型的复杂程度之后(其中包括k和l的值),需要根据已知输入信号的PA输出实际观测值来求解这些权重。图7将简化的等式转换为矩阵形式。可以使用数学符号简明表示该模型。但是,要在数字数据缓冲区实现DPD,用矩阵表示法会更简单,也更具代表性。

来看看图6中等式的第二行和第三行,为了简化,这两行被忽略了。注意,如果m设置为0,那么这两行会变得与第一行一模一样。这些行允许在包络项和复基带信号之间增加延迟(正延迟和负延迟)。这些称为滞后交叉和超前交叉项,可以显著提高DPD的建模精度。在尝试对放大器的行为建模时,这些项提供了额外的自由度。注意,Mb、Mc、Kb和Kc不包含0;否则,会重复第一行的项。

52b91d62-ec25-11ed-90ce-dac502259ad0.png

图5:用于PA失真建模的GMP。

52cddb6c-ec25-11ed-90ce-dac502259ad0.png

图6:在信号x的频域中,阶(k)对信号的影响曲线图。

52e3a186-ec25-11ed-90ce-dac502259ad0.png

图7:将简化的等式转换为数据缓冲区的矩阵运算(更接近于数字实现方式)。

那么,如何确定模型的阶、记忆项的数量,以及应该添加哪些交叉项?此时,就需要一定数量的“黑魔法”了。此时,有关失真的物理学知识能够提供一定帮助。放大器的类型、制造材料,以及通过放大器的信号带宽都会影响建模项,可以帮助熟悉该领域的工程师确定应该使用哪个模型。但是,除此之外,还涉及一定程度的反复试验。

有了模型架构,从数学角度来解决该问题的最后一个方面是如何求解权重系数。在实际场景中,人们倾向于求解上述模型的倒数。事实证明,这些模型系数能够彼此互惠,可以使用相同的权重对捕捉到的PA输出向量进行后失真,以消除非线性,并对通过PA发送的发射信号预失真,使得PA输出尽可能呈现线性。在图8所示的框图中,显示了如何对权重系数进行估算和预失真。

52f78264-ec25-11ed-90ce-dac502259ad0.png

图8:建模和预失真间接实现框图。

在逆模型中,将图7给出的矩阵等式互换,给出X̂= Yw。其中,矩阵Y的构成方式与其他示例中X的构成方式相同,如图9所示。在本例中,包含了一个记忆项,且减少了包含的多项式的阶数。为了求解w,我们需要得出Y的倒数。Y不是方形的(是一个瘦长矩阵),所以需要使用“伪逆”矩阵进行求解(参见等式1)。这是从最小二乘意义上求解w,最小化了X̂和Yw之间的差的平方!

530bb0d6-ec25-11ed-90ce-dac502259ad0.png

鉴于是在具有不同信号的真实环境中使用,可以对其进一步优化。在这里,系数是基于之前的值进行更新,因此受到限制。μ是0和1之间的常数值,用于控制每次迭代时权重的变化量。如果μ= 1,w0=0,那么此等式立即恢复到基本最小二乘解。如果将μ设为小于1的值,则需要多次迭代才能使系数收敛。

5315d1a6-ec25-11ed-90ce-dac502259ad0.png

注意,这里描述的建模和估算技术并非是执行DPD的唯一方式。也可以使用其他技术,例如基于动态偏差减少的建模来代替或作为附加方法使用。上述用于求解系数的估算技术具有多种实现方式。鉴于篇幅,此处不再赘述。

如何在微处理器中实现这一技术?

前面介绍了相关数学知识。下一个问题是如何在实际通信系统中实现?在数字基带中,一般在微处理器或FPGA中实现。目前,ADI的RadioVerse收发器产品(例如ADRV902x系列)内置微处理器内核,已经集成了这类算法,其结构有助于轻松实现DPD。不仅提供了高度集成的RF硬件,还为客户提供可配置的软件工具。

嵌入式软件中实现DPD涉及两个方面。一是DPD执行器,对实时发送的数据执行实时预失真,二是DPD自适应引擎,基于观察到的PA输出来更新DPD系数。

对于如何在微处理器或类似器件中实时执行DPD和许多其他信号处理概念,关键在于使用查找表(LUT)。LUT允许用更简单的矩阵索引操作来代替成本高昂的实时计算。来看看DPD执行器如何对发送的数据样本进行预失真。代表符号如图8所示,其中u(n)表示要传输的新数据样本,x(n)表示预失真版本。图10显示在给定场景下,获取一个预失真样本所需的计算。这是一个相对受限的示例,最高多项式阶为三阶,只有一次记忆选取和一个交叉项。即使在这种情况下,要获取这样一个数据样本,也需要进行大量乘法、幂运算和加法运算。

在这种情况下,使用LUT可以减轻实时计算负担。可以将图10所示的等式改写成图11所示的样式,其中输入LUT的数据会变得更加明显。每个LUT都包含等式中突出显示项的结果值,它们对应|u(n)|的多个可能值。分辨率取决于在可用硬件中实现的LUT大小。当前输入样本的幅度大小基于LUT的分辨率进行量化,可以作为索引,用于访问给定输入的正确LUT元素。

53216fac-ec25-11ed-90ce-dac502259ad0.png

图9:以矩阵形式表示的逆算法等式,有些记忆包含在其中。

5328de54-ec25-11ed-90ce-dac502259ad0.png

图10:具有一次记忆选择和一个三阶交叉项元素的三阶预失真计算案例。

53343ce0-ec25-11ed-90ce-dac502259ad0.png

图11:对等式项重新分组,以显示LUT的结构。

图12显示如何将LUT集成到示例案例的完全预失真执行器实现方案。注意,这只是其中一种可能的实现方法。在保持相同输出的情况下,可以做出更改,例如:可以将延迟元素z–1移动到LUT2右侧。

5339c7c8-ec25-11ed-90ce-dac502259ad0.png

图12:使用LUT可能实现DPD的框图。

自适应引擎负责求解用于计算执行器中的LUT值的系数。这涉及到求解等式1和2中描述的w向量。伪逆矩阵运算(YHY)-1YH会耗费大量计算资源。等式1可以改写为

5344c20e-ec25-11ed-90ce-dac502259ad0.png

如果CYY=YHY,CYx=YHx,等式3会变成

53548950-ec25-11ed-90ce-dac502259ad0.png

CYY是矩形矩阵,可以通过柯列斯基分解方法分解为上三角矩阵L和共轭转置矩阵(CYY=LHL)的乘积。这样我们可以通过引入一个虚拟变量z来求解w,求解方法如下:

5362288a-ec25-11ed-90ce-dac502259ad0.png

然后,重新代入这个虚拟变量,求解

53841b7a-ec25-11ed-90ce-dac502259ad0.png

因为L和LH分别是上、下三角矩阵,所以花费很少的计算资源,就可以求解等式5和等式6,得出w。自适应引擎每次运行,得出w的新值时,都需要更新执行器LUT来体现这一点。根据观察到的PA输出,或者操作员掌握的待传输信号的变化情况,自适应引擎可以按照设定的定期间隔或不规则的间隔执行操作。

嵌入式系统中实现DPD需要进行大量检查和平衡,以确保系统的稳定性。最重要的是,发送数据缓冲器和捕捉缓冲器数据的时间要一致,以确保它们之间建立的数学关系是正确的,且在长时间之后仍然保持正确。如果这种一致性丧失,那么自适应引擎返回的系数将不能对系统执行正确的预失真,可能导致系统不稳定。还应检查预失真执行器输出,确保信号不会使DAC饱和。






审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 功率放大器
    +关注

    关注

    102

    文章

    3532

    浏览量

    131706
  • 晶体管
    +关注

    关注

    77

    文章

    9651

    浏览量

    137923
  • DPD
    DPD
    +关注

    关注

    3

    文章

    40

    浏览量

    15240
  • RF系统
    +关注

    关注

    0

    文章

    14

    浏览量

    8432

原文标题:数字预失真技术的数学建模与物理实现

文章出处:【微信号:CloudBrain-TT,微信公众号:云脑智库】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    DPD的原理是什么?DPD到底是怎么实现运行的?

    我一直认为射频工程师的最高进阶,是DPD,因为结合了算法处理,一下子就拉开了与普通射频工程师的差距。
    的头像 发表于 08-27 17:19 5507次阅读
    <b class='flag-5'>DPD</b>的原理是什么?<b class='flag-5'>DPD</b>到底是怎么实现运行的?

    究竟LTE中的CFR和DPD有什么作用?

    什么是CFR ?什么是DPD?究竟CFR和DPD有什么作用?
    发表于 06-21 06:59

    GC5322_DPD数据分析

    GC5322 是TI 推出的一款强大的DPD 处理芯片,它内部包括DUC,CFR 和DPD 的处理模块。本文介绍了GC5322 系统中如何对抓取的数据进行分析,从而定位DPD 相关问题。本文的读者应该对GC5322 及D
    发表于 03-14 16:38 41次下载
    GC5322_<b class='flag-5'>DPD</b>数据分析

    ADRV-DPD1 ADRV-DPD1评估板

    电子发烧友网为你提供ADI(ti)ADRV-DPD1相关产品参数、数据手册,更有ADRV-DPD1的引脚图、接线图、封装手册、中文资料、英文资料,ADRV-DPD1真值表,ADRV-DPD
    发表于 08-16 16:00

    RJF0611DPD 数据表

    RJF0611DPD 数据表
    发表于 04-11 19:20 0次下载
    RJF0611<b class='flag-5'>DPD</b> 数据表

    RJK6024DPD 数据表

    RJK6024DPD 数据表
    发表于 04-12 18:51 0次下载
    RJK6024<b class='flag-5'>DPD</b> 数据表

    RJK6025DPD 数据表

    RJK6025DPD 数据表
    发表于 04-12 18:57 0次下载
    RJK6025<b class='flag-5'>DPD</b> 数据表

    RJJ1011DPD 数据表

    RJJ1011DPD 数据表
    发表于 04-26 19:19 0次下载
    RJJ1011<b class='flag-5'>DPD</b> 数据表

    RJK6002DPD 数据表

    RJK6002DPD 数据表
    发表于 04-26 19:20 0次下载
    RJK6002<b class='flag-5'>DPD</b> 数据表

    RJK4006DPD 数据表

    RJK4006DPD 数据表
    发表于 04-26 19:20 0次下载
    RJK4006<b class='flag-5'>DPD</b> 数据表

    RJK6032DPD 规格书

    RJK6032DPD 规格书
    发表于 07-14 11:43 1次下载
    RJK6032<b class='flag-5'>DPD</b> 规格书

    RJK4502DPD 规格书

    RJK4502DPD 规格书
    发表于 07-14 11:48 0次下载
    RJK4502<b class='flag-5'>DPD</b> 规格书

    RJK4002DPD 规格书

    RJK4002DPD 规格书
    发表于 07-14 18:32 0次下载
    RJK4002<b class='flag-5'>DPD</b> 规格书

    RJK6032DPD 数据表

    RJK6032DPD 数据表
    发表于 07-14 18:44 0次下载
    RJK6032<b class='flag-5'>DPD</b> 数据表

    RJK4532DPD 数据表

    RJK4532DPD 数据表
    发表于 07-25 18:31 0次下载
    RJK4532<b class='flag-5'>DPD</b> 数据表