数字预失真(DPD)是一种基带信号处理技术,用于校正射频功率放大器(PA)中的损伤。这些损伤会导致带外发射或光谱再生以及带内失真,这与误码率(BER)增加有关。具有高峰均比的宽带信号,例如LTE/4G发射机中的信号,特别容易受到这些不必要的影响。
自顶向下的建模和仿真方法使您能够快速识别和修复这些问题。本文介绍了使用MATLAB、Simulink、信号处理工具箱、控制系统工具箱和DSP系统工具箱对PAs和DPD进行建模和仿真的自顶向下的工作流程。从PA测量开始,我们推导了一种基于记忆多项式的静态DPD设计,该设计校正了PA中的非线性和记忆效应。我们构建了一个系统级模型来评估DPD的有效性。由于PA特性随时间和操作条件而金宝app变化,我们将静态DPD设计转换为自适应设计。我们评估了两种自适应DPD设计,一种基于最小均方(LMS)算法,另一种基于递归预测误差法(RPEM)算法。
本文中使用的模型可用于下载.
工作流程概述
我们的目标是开发一个准确表示PA损伤的仿真模型,以及一个减轻这些损伤的自适应DPD设计1.. 我们将建模工作分为五个阶段:
- 对功率放大器进行建模和仿真
- 导出DPD系数
- 评估静态DPD设计
- 将静态DPD设计转变为自适应设计
- 评估LMS和RPEM变体
为了加速模拟,我们将进行以下简化(图1):
- 将PA建模为离散时间系统(实际上,PA是模拟电路)
- 将PA信号建模为基带复数(实际上,PA信号是实通带信号)
- 使用双精度数据类型和数学(实际上,将使用整数数据类型和数学)
- 忽略ADC和DAC引起的量化效应
PA的建模与仿真
PA模型由Saleh放大器[3]与非对称复合滤波器串联组成(图2)。激励是经过低通椭圆滤波的加性高斯白噪声(AWGN)信号。
我们运行模型并分别记录输入和输出信号\(x\)和\(y\),同时监测它们的频谱(图3)。
推导DPD系数
静态DPD设计源自PA测量(图4)图4中的顶部路径表示PA模型。PA被划分为一个非线性函数,后面是一个线性增益G。中间路径表示PA反向运行。此路径表示DPD。我们不能物理上反向运行PA,但我们可以数学上反向运行PA,这是DPD推导的关键。相反,我们应用t逆非线性运算,\(f^{-1}(x_1,x_2,…x_n)\)。图4中的底部路径是顶部两条路径的级联,即DPD和PA。
DPD推导现在可以如下进行:
-
假设PA的非线性算子为记忆多项式[1]形式,\(f(x_1,x_2,…x_n)\)。
\[y{MP}(n)=\sum{k=0}{k-1}\\sum{m=0}{m-1}\a{km}x(n-m)| x(n-m)|^k\]
方程式1
哪里
\(x\)是PA输入
\(y\)是功率放大器输出
\(a^{km}\)是PA多项式系数
\(M\)是PA内存深度
\(K\)是PA非线性的程度
\(n\)是时间索引输入\(x\)、输出\(y\)和系数\(a^{km}\)是复数值。
-
反转\(1\)中\(x\)和\(y\)的角色,以模拟DPD的逆非线性函数\(f{-1}(x_1,x_2,…x_n)\)。
\[x{MP}(n)=\sum{k=0}{k-1}\\sum{m=0}{m-1}\d{km}y{ss}(n-m){y{ss}(n-m){k]
方程式2
请注意,\(y(n)\)已通过线性增益\(G\)和可选的时移进行归一化。
\[y\u s(n)=y(n)/G\]\[y\u{ss}(n)=y\u s(n+\text{offset})\]
其中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}\setx\]
方程式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算法的两个副本,一个用于学习系数,另一个用于实现系数。非线性Prod(图12)和Coef_计算子系统的组合实现了DPD子系统的学习副本。
使用LMS算法(图13)或递归预测误差法(RPEM)算法(图14)计算DPD系数\(d{km}\)。就所需资源而言,LMS算法相对简单。基于RPEM的系数计算远比LMS复杂2..
LMS和RPEM算法都计算反馈回路中的错误信号。误差是测量的PA输入和估计的PA输入之间的差值。该算法试图将该误差降至零,并在这样做时收敛于DPD系数的最佳估计。我们比较了这两种方法的性能(图15和16)。
RPEM方法在减少光谱增长和收敛速度方面提供了明显更好的结果。
RPEM算法收敛到与从离线PA测量计算的系数相同的系数集,而LMS算法从未完全收敛到该理想解。然而,RPEM算法确实有缺点。使用\(M=K=5\)的RPEM算法每次更新大约需要75300倍。相同\(M\)和\(K\)的LMS算法每次更新大约需要100倍。因此,RPEM算法的计算成本要高出753倍。目前的RPEM算法并不适合硬件实现。另一方面,基于LMS的方法更适合于硬件实现,但在减少频谱再生方面相对缺乏。
总结
本文演示了一个用于建模和模拟PAs和DPD的工作流。我们展示了DPD设计过程,从涉及矩阵求逆计算的离线批处理推导到不涉及矩阵求逆的全流式自适应实现。我们使用三个优数来评估自适应DPD设计的有效性:减少谱再生、收敛速度和计算复杂性。我们比较了自适应间接学习结构的两种变体,一种基于LMS算法,另一种基于RPEM算法。结果表明,RPEM算法在减少谱重生长和收敛速度方面具有优势,但在计算量方面却有一定的局限性。
我们使用MATLAB和Simulink的组合来完成这个项目。MATLA金宝appB用于定义系统参数、测试单个算法以及执行离线计算。Simulink用于将各个PA和DPD组件集成到测试线束中,在测试线束中可以轻松识别反馈回路、数据大小和设计分区。
1.本文中显示的模型基于[1]和[2]。
2.[2]中的等式24总结了RPEM算法。