主要内容

comm.DPD

数字预失真

自从R2019a

描述

comm.DPD系统对象™应用数字预失真(DPD)复基带信号通过使用记忆多项式来补偿非线性功率放大器。有关更多信息,请参见数字预失真优化估计多项式程度和记忆深度

predistort信号:

  1. 创建comm.DPD对象并设置其属性。

  2. 调用对象的参数,就好像它是一个函数。

了解更多关于系统对象是如何工作的,看到的系统对象是什么?

创建

描述

dpd= comm.DPD创建一个数字预失真系统对象predistort信号。

例子

dpd= comm.DPD (的名字,价值)设置使用一个或多个属性名称-值对。例如,comm.DPD (“PolynomialType”、“交叉项记忆多项式”)配置前置补偿器系统对象predistort输入信号通过使用记忆多项式与交叉项。在报价附上每个属性的名字。

属性

全部展开

属性,除非另有注明nontunable后,这意味着你不能改变它们的值调用对象。对象锁当你叫他们,释放函数打开它们。

如果一个属性可调在任何时候,你可以改变它的值。

改变属性值的更多信息,请参阅系统设计在MATLAB使用系统对象

多项式用于预失真类型,指定这些值之一:

  • 记忆多项式的——Predistorts输入信号通过使用记忆多项式无交叉项。

  • 交叉项记忆多项式的——Predistorts输入信号通过使用记忆多项式与交叉项。

有关更多信息,请参见数字预失真

Memory-polynomial系数,指定为一个矩阵。矩阵的行数必须等于记忆的深度记忆多项式。

  • 如果PolynomialType记忆多项式的矩阵的列数是记忆多项式的程度。

  • 如果PolynomialType交叉项记忆多项式的矩阵的列数必须相等(n1)+ 1是记忆多项式的深度,n是记忆多项式的程度。

有关更多信息,请参见数字预失真

数据类型:
复数的支持:万博1manbetx是的

使用

语法

描述

例子

= dpd ()predistorts复基带信号通过使用记忆多项式来补偿非线性功率放大器。

输入参数

全部展开

输入基带信号,指定为一个列向量。

数据类型:
复数的支持:万博1manbetx是的

输出参数

全部展开

对基带信号,作为一个列向量返回长度相同的输入信号。

对象的功能

使用一个目标函数,指定系统对象作为第一个输入参数。例如,释放系统资源的系统对象命名obj使用这个语法:

发行版(obj)

全部展开

一步 运行系统对象算法
释放 释放资源,并允许修改系统对象属性值和输入特征
重置 重置的内部状态系统对象

例子

全部折叠

应用数字预失真(DPD)功率放大器输入信号。DPD系数估计量系统对象使用一个捕获信号包含功率放大器的输入和输出信号来确定预失真系数矩阵。

加载一个文件包含功率放大器的输入和输出信号。

负载(“commpowamp_dpd_data.mat”,“PA_input”,“PA_output”)

生成DPD系数估计量的系统对象和一个余弦过滤系统传输对象。

估计量= comm.DPDCoefficientEstimator (“DesiredAmplitudeGaindB”10“PolynomialType”,记忆多项式的,“度”5,“MemoryDepth”3,“算法”,“最小二乘法”);rctFilt = comm.RaisedCosineTransmitFilter (“OutputSamplesPerSymbol”2);

估计的数字预失真memory-polynomial系数。

系数=估计量(PA_input PA_output);

生成一个DPD系统对象使用系数DPD的输出系数估计量,估计系数,系数矩阵。

dpd = comm.DPD (“PolynomialType”,记忆多项式的,“系数”系数);

产生2000随机符号和应用16-QAM调制信号。应用提出了余弦调制信号传输过滤。

s =兰迪([0,15],2000,1);u = qammod(年代,16);x = rctFilt (u);

应用数字预失真数据。DPD系统对象返回一个对提供作为功率放大器的输入信号。

y = dpd (x);

这个例子显示了DPD系数矩阵的格式使用一个随机生成的系数矩阵多项式的内存。步骤的例子包括:

  • 创建一个数字预失真系统对象配置使用一套记忆多项式系数矩阵与记忆的深度3和多项式程度5随机值组成。

  • 预失真信号使用memory-polynomial系数矩阵。

  • 比较一个对输出元素相应的手动输入元素,使用memory-polynomial系数矩阵计算。

创建一个系数矩阵代表一个前置补偿器的输出等于输入生成一个三五系数矩阵的零和设置系数(1,1)元素1。添加小随机复杂非线性项的系数矩阵。

系数= 0 (3、5);系数(1,- 1)= 1;系数=系数+ 0.01 * (randn (3、5) + 1 j * randn (3、5));

创建一个DPD系统对象使用的内存多项式系数矩阵,系数

dpd = comm.DPD (“PolynomialType”,记忆多项式的,“系数”系数);

生成一个输入信号,predistort使用dpd系统对象。

1 x = randn(20日)+ 1 j * randn (20, 1);y = dpd (x);

比较手动扭曲输出对应一个输入输出元素y (18)展示如何使用系数矩阵来计算特定的输出值。

u = x(18: 1:(18三+ 1));isequal (y(18)和(和(系数。*[u u。* abs (u)。* (abs (u)。^ 2)。* (abs (u)。^ 3)。* (abs (u)。^ 4)))))
ans =逻辑1

这个例子显示了DPD系数矩阵的格式使用一个随机生成的系数矩阵多项式的内存。步骤的例子包括:

  • 创建一个数字预失真系统对象配置使用交叉项记忆多项式系数矩阵与记忆深度设置为3和多项式程度5随机值组成。

  • 预失真信号使用交叉项记忆多项式系数矩阵。

  • 比较一个对输出元素相应的手动输入元素,使用交叉项记忆多项式系数矩阵计算。

创建一个系数矩阵代表一个前置补偿器的输出等于输入生成一个三五系数矩阵的零和设置系数(1,1)元素1。添加小随机复杂非线性项的系数矩阵。

系数= 0 (3 3 * (5 - 1)+ 1);系数(1,- 1)= 1;系数=系数+ 0.01 * (randn (13) + 1 j * randn (13));

创建一个DPD系统对象使用交叉项记忆多项式系数矩阵,系数

dpd = comm.DPD (“PolynomialType”,交叉项记忆多项式的,“系数”系数);

生成一个输入信号,predistort使用dpd系统对象。

1 x = randn(20日)+ 1 j * randn (20, 1);y = dpd (x);

比较手动扭曲输出对应一个输入输出元素y (18)展示如何使用系数矩阵来计算特定的输出值。

u = x(18: 1:(18三+ 1));isequal (y(18)和(和(系数。*[u u * abs (u。) * (abs (u)。^ 2) u * (abs (u)。^ 3) u * (abs (u)。^ 4)))))
ans =逻辑1

算法

全部展开

引用

[1]摩根,丹尼斯·R。,Zhengxiang Ma, Jaehyeong Kim, Michael G. Zierdt, and John Pastalan. "A Generalized Memory Polynomial Model for Digital Predistortion of Power Amplifiers."IEEE®交易信号处理。54卷,10号,2006年10月,页3852 - 3860。

[2]Schetzen。沃尔泰拉维纳非线性系统理论。纽约:威利,1980年。

扩展功能

版本历史

介绍了R2019a