主要内容

comm.DPD

数字预失真

描述

comm.DPDSystem object™通过使用存储多项式来补偿功率放大器中的非线性,对复杂基带信号应用数字预失真(DPD)。有关更多信息,请参见数字预失真

predistort信号:

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

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

要了解更多关于System对象如何工作的信息,请参见什么是系统对象?

创建

描述

dpd= comm.dpd.创建数字预失真器系统对象以预先播出信号。

例子

dpd= comm.DPD (姓名价值使用一个或多个名称-值对设置属性。例如,comm.DPD(“PolynomialType”、“交叉项记忆多项式”)通过使用横向术语使用存储器多项式来配置预失控器系统对象以使输入信号预测。将每个属性名称括起引号。

特性

全部展开

除非另有说明,否则属性是nontunable,这意味着您不能在调用对象之后更改它们的值。对象在调用时锁定,而释放功能解锁它们。

如果属性是调节,您可以随时更改它的值。

有关更改属性值的详细信息,请参阅在MATLAB中使用系统对象进行系统设计

用于预失真的多项式类型,指定为以下值之一:

  • '记忆多项式'- 通过使用内存多项式不带横向术语来预测输入信号。

  • '交叉记忆多项式'- 通过使用带有横向术语的存储器多项式来预测输入信号。

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

记忆多项式系数,指定为矩阵。矩阵中的行数必须等于存储多项式的存储深度。

  • 如果PolynomialType'记忆多项式',矩阵的列数是记忆多项式的次数。

  • 如果PolynomialType'交叉记忆多项式',则矩阵的列数必须相等n-1)+1是多项式的存储深度,和n是存储器多项式的程度。

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

数据类型:
复数的支持:金宝app是的

用法

描述

例子

= DPD(利用记忆多项式来补偿功率放大器中的非线性,对复杂基带信号进行预失真。

输入参数

全部展开

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

数据类型:
复数的支持:金宝app是的

输出参数

全部展开

预失真的基带信号,作为与输入信号相同长度的列向量。

对象的功能

要使用对象函数,请指定System对象作为第一个输入参数。例如,释放名为system的对象的系统资源obj,使用下面的语法:

发行版(obj)

全部展开

系统对象算法
释放 释放资源并允许更改系统对象属性值和输入特征
重置 使内部状态复位系统对象

例子

全部折叠

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

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

加载('commpowamp_dpd_data.mat'“PA_input”“PA_output”

生成DPD系数估计器系统对象和提高余弦发射滤波器系统对象。

估算器= comm.dpdcoeffiaperizator(......“DesiredAmplitudeGaindB”,10,......“PolynomialType”'记忆多项式'......'程度'5,'记忆depth'3,“算法”“最小二乘法”);rctFilt = comm.RaisedCosineTransmitFilter (“OutputSamplesPerSymbol”2);

估计数字预失真记忆多项式系数。

系数=估计量(PA_input PA_output);

使用。生成DPD System对象CoEF.,从DPD系数估计器输出的估计系数,如系数矩阵。

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

生成2000个随机符号并将16-QAM调制应用于信号。将升高的余弦传输滤波滤波到调制信号。

s = randi([0,15],2000,1);u = qammod(s,16);x = rctfilt(u);

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

y = dpd (x);

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

  • 创建使用存储器深度设置的存储器多项式系数矩阵配置的数字预失真器系统对象设置为3.多项式的次数设置为5由随机值组成。

  • 使用记忆多项式系数矩阵对信号进行预失真。

  • 将一个预失真输出单元与使用记忆多项式系数矩阵手工计算的相应输入单元进行比较。

创建表示预失真器的系数矩阵,其输出通过生成零的3×5系数矩阵而等于输入并设置系数(1,1)元素1.在系数矩阵中加入小的随机复杂非线性项。

coef =零(3,5);COEF(1,1)= 1;COEF = COEF + 0.01 *(RANDN(3,5)+ 1J * RANDN(3,5));

使用存储器多项式系数矩阵创建DPD系统对象,CoEF.

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

生成输入信号并使用dpd系统对象。

X = randn(20,1) + 1j*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由随机值组成。

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

  • 用交叉项记忆多项式系数矩阵将一个预失真输出单元与人工计算的相应输入单元进行比较。

创建表示预失真器的系数矩阵,其输出通过生成零的3×5系数矩阵而等于输入并设置系数(1,1)元素1.在系数矩阵中加入小的随机复杂非线性项。

COEF =零(3,3 *(5-1)+1);COEF(1,1)= 1;COEF = COEF + 0.01 *(RANDN(3,13)+ 1J * RANDN(3,13));

使用串词存储器多项式系数矩阵创建DPD系统对象,CoEF.

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

生成输入信号并使用dpd系统对象。

X = randn(20,1) + 1j*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] Morgan, Dennis R., Ma Zhengxiang, Jaehyeong Kim, Michael G. Zierdt, John Pastalan。功率放大器数字预失真的广义记忆多项式模型。IEEE.®信号处理的交易.2006年10月第54卷第10期3852-3860页。

[2] Schetzen。非线性系统的Volterra和Wiener理论。纽约:威利,1980年。

扩展能力

介绍了R2019a