数字预失真(DPD)是一种基带信号处理技术,用于校正射频功率放大器(pa)中的缺陷。这些损伤导致带外辐射或光谱再生和带内失真,这与增加的误码率(BER)相关。具有高峰值平均比的宽带信号,如LTE/4G发射机中的信号,特别容易受到这些不利影响。
自顶向下的建模和模拟方法允许您快速识别和修复这些问题。本文介绍了使用MATLAB、Simulink、信号处理工具箱、控制系统工具箱和DSP系统工具箱对PAs和DPDs进行建模和仿真的自顶向下的工作流程。万博1manbetx从PA测量开始,我们推导出一个基于记忆多项式的静态DPD设计,它校正了PA中的非线性和记忆效应。我们构建了一个系统级模型来评估DPD的有效性。由于PA特性随时间和运行条件而变化,我们将静态DPD设计转变为自适应设计。我们评估了两种自适应DPD设计,一种基于最小均方(LMS)算法,另一种基于递归预测误差法(RPEM)算法。
本文中使用的模型可用于下载.
工作流程概述
我们的目标是开发一个仿真模型,准确地代表PA的损害,以及一个自适应DPD设计,以减轻这些损害1.我们将建模工作分为五个阶段:
- 对PA进行建模和仿真
- 推导DPD系数
- 评估静态DPD设计
- 将静态DPD设计转变为自适应DPD设计
- 评估LMS和RPEM变体
为了加速模拟,我们将进行以下简化(图1):
- 将PA建模为离散时间系统(实际上,PA是模拟电路)
- 将PA信号建模为基带复数(实际上,PA信号是一个真实的通带信号)
- 使用双精度数据类型和数学(在实践中,将使用整数数据类型和数学)
- 省略由ADC和DAC引起的量化效应
扩音机的建模与仿真
PA模型由萨利赫放大器[3]和非对称复滤波器串联而成(图2)。激励是经过低通椭圆滤波的加性高斯白噪声(AWGN)信号。
我们运行模型,记录输入和输出信号,分别\(x\)和\(y\),同时监测它们的频谱(图3)。
推导DPD系数
静态DPD设计来源于PA测量(图4)。图4中的顶部路径表示PA模型。PA被划分成一个非线性函数,后面跟着一个线性增益g。中间路径显示PA反向运行。该路径表示DPD。我们不能在物理上反向运行PA,但我们可以在数学上这样做,这是DPD推导的关键。反过来,我们应用逆非线性运算,\(f^{-1}(x_1,x_2,…x_n)\)。图4中的底部路径是上面两条路径的级联,即DPD和PA。
DPD推导现在可以如下进行:
-
假设PA的非线性算子,\(f(x_1,x_2,…x_n)\)的记忆多项式[1]形式。
\ [y_{议员}(n) = \ sum_ {k = 0} ^ {k - 1} \ \ sum_ {m = 0} ^ {m - 1} \现代{公里}(n - m) | x (n - m) | ^ k \]
方程1
在哪里
(x\)是PA输入
(y\)是PA输出
(a^{km}\)是PA多项式系数
(M\)是PA内存深度
(K\)是PA非线性的程度
(n\)是时间索引输入\(x\)、输出\(y\)和系数\(a^{km})都是复数。
-
反转\(x\)和\(y\)在\(1\)中的角色,以模拟DPD的非线性逆函数\(f_{-1}(x_1,x_2,…x_n)\)。
\[间{议员}(n) = \ sum_ {k = 0} ^ {k - 1} \ \ sum_ {m = 0} ^ {m - 1} \ d_{公里}y_{党卫军}(n - m) | y_{党卫军}(n - m) | ^ k \]
方程2
注意,\(y(n)\)已被线性增益\(G\)标准化,并可选地进行时移。
\ [y_s (n) = y (n) / G \] \ [y_{党卫军}(n) = y_s文本(n + \{抵消})\]
其中offset是一个固定的正整数。
时间校准是关键。如果PA有重要的内存需求,我们可能需要在推导系数之前及时偏移\(y\)。DPD必须正确地考虑PA的正延迟。没有可实现的结构可以具有负延迟,但你可以根据PA输出的时移推导系数。记住,PA的输出是DPD系数推导的输入。这意味着你可以使输出\(x\)响应输入\(y\)“偏移”样本,通过基于一个新的序列的系数推导,\(y_{ss}(n) = y_s(n+\text{offset})\)。在我们的示例中,我们使用三个样本的偏移量。
-
求解DPD系数,\(d_{km}\)。我们将方程2重写为一组线性方程组(图5)。解\(d_{km}\)等于解一个超定线性方程组,方程3。
测量值\(x\)和\(y\)是已知的。根据PA的复杂度选择\(K\)和\(M\)的特定值。我们选择了\(M=K=5\),从而求出了\(K*M = 25\)复系数。
\[d_{km} = Y_{ss} \setminus X \]
方程3
我们使用MATLAB反斜杠算子来求解这个超定方程组的DPD系数\(d_{km}\),结果如图6和7所示。
评估固定系数DPD设计
为了评估设计,我们创建了DPD和PA的系统模型(图8)。
第一个任务是执行方程2。用MATLAB直接表示这些方程,如表1所示。
模拟\(K=M=5\)验证模型的结果如图9所示。
将自适应
尽管我们的DPD设计显示出了希望,但它并不适合自适应实现。此外,求解超定方程组所需的矩阵逆数学和大缓冲区在硬件实现上是不可行的。
我们使用了一个间接学习体系结构[2]来实现一个自适应DPD(图10)。本设计由系数计算子系统和DPD子系统组成。它是一个没有矩阵逆的流实现。
DPD子系统的形式与表1所示相同。这里我们关注系数计算子系统(图11)。
自适应DPD体系结构有两个DPD算法副本,一个用于学习系数,另一个用于实现它们。NonLinear_Prod(图12)和Coef_Compute子系统的组合实现了DPD子系统的学习副本。
DPD系数,\(d_{km}\),是使用LMS算法(图13)或递归预测误差方法(RPEM)算法(图14)计算的。就所需资源而言,LMS算法相对简单。基于rpm的系数计算要比LMS复杂得多2.
LMS和RPEM算法都在反馈环路中计算错误信号。误差是测量PA输入和估计PA输入之间的差值。该算法试图将这个误差驱动到零,并在此过程中收敛于DPD系数的最佳估计。我们比较了这两种方法的性能(图15和16)。
RPEM方法在谱增长降低和收敛速度方面都提供了明显更好的结果。
RPEM算法收敛到与离线PA测量结果相同的一组系数,而LMS算法从未完全收敛到这个理想的解决方案。然而,RPEM算法确实有缺点。使用\(M = K = 5\)的RPEM算法每次更新大约需要75,300次。对于相同的\(M\)和\(K\), LMS算法每次更新大约需要100次。因此,RPEM算法的计算成本要高出753倍。RPEM算法目前的形式不太适合硬件实现。另一方面,基于lms的方法更适合于硬件实现,但在降低频谱再生方面相对不足。
总结
本文演示了一个建模和模拟PAs和DPD的工作流。我们展示了DPD设计过程从涉及矩阵逆计算的脱机批处理推导到不涉及矩阵逆的完全流和自适应实现。我们使用三个优点来评估自适应DPD设计的有效性:频谱再增长减少、收敛速度和计算复杂度。我们比较了自适应间接学习体系结构的两种变体,一种基于LMS算法,另一种基于RPEM算法。RPEM算法在谱再生减少和收敛速度方面具有优势,但在计算成本方面存在缺陷。
我们使用MATLAB和Simulink的结合来完成这个项目。万博1manbetxMATLAB用于定义系统参数,测试单个算法,并执行离线计算。万博1manbetxSimulink用于将独立的PA和DPD组件集成到一个测试装置中,其中反馈循环、数据大小和设计分区很容易识别。
1本文中显示的模型是基于[1]和[2]的。
2RPEM算法概括在[2]中的公式24中。