模拟和验证功率放大器回退
这个例子展示了如何在输入信号到基于表格的功率放大器之前使用回退来缩放信号。它还展示了如何检查信号输入到放大器的功率分布,并验证放大器的实际行为符合规格。的附录列出示例中使用的helper函数。
系统设置
M = 16;调制阶数Fs = 1e6;%采样率(Hz) &测量带宽sigDuration = 0.01;%交会msgLen = round(sigDuration*fs);样本数量%totalTime = 0;
将放大器指定为基于表的对象。使用存储在Excel电子表格中的测量放大器数据,读取输出功率与输入功率以及相位变化与输入功率。幂的单位是dBm,相位变化的单位是度数。参考阻抗用于将信号的电压值转换为功率值。
Table = table2array(可读表(...“PACharacteristic.xlsx”,...PreserveVariableNames = true));mnl = com . memoryless非线性(...方法=“查找表”,...表=表,...ReferenceImpedance = 1);
确定产生峰值输出功率的输入功率。这个输入功率就是信号将从它后退的点。使用输入回退来确定放大器输入端所需的信号功率。
[pkOpPwr, idxPk] = max(mnl.Table(:,2));% dBmipPwrAtPkOut = mnl.Table(idxPk,1);% dBmIbo = 6;%输入回退设定值,dBrqdIpPwr = ipPwrAtPkOut - IBO;% dBm
绘制AM/AM和AM/PM放大器特性图。绘制的值与电子表格中的值相匹配。
情节(mnl);
系统仿真与验证
创建一个凸起的余弦传输滤波器系统对象™用于脉冲整形。
txFilt = com . raisedcosinetransmitfilter (...形状=“根”,...RolloffFactor = 0.2,...FilterSpanInSymbols = 10,...OutputSamplesPerSymbol = 4);
创建一个功率计System对象来测量处理链中多个点的功率。设置功率表的测量窗口为10ms。
电能表(...测量=“平均功率”,...WindowLength =圆(sigDuration * fs),...ReferenceLoad = mnl。ReferenceImpedance,...PowerUnits =“dBm”);
生成一个调制信号,对其进行滤波,将其缩放到-10 dBm,并测量功率。滤波后的信号在整个持续时间内大致是恒定的振幅,因此功率测量窗口可以在整个持续时间内扩展。
filtTransient =...txFilt.FilterSpanInSymbols * txFilt.OutputSamplesPerSymbol;msg = randi([0 M-1],msgLen+filtTransient,1);modOut = qammod(msg,M,...UnitAveragePower = true);% 0 dBW (30 dBm)filtOut = txFilt(modOut);filtOut = filtOut(1+filtTransient:end);截断起始瞬态PFiltOutdBm = pm(filtOut);Pdesired = -10;% dBmscaleFactor = 10。^((Pdesired - PFiltOutdBm(end))/20);filtOut = scaleFactor * filtOut;重置(pm);PFiltOutdBm = pm(filtOut);流('经滤波、缩放的信号功率为%4.2f dBm.\n',...PFiltOutdBm(结束)
经过滤波、缩放的信号功率为-10.00 dBm。
PFiltOutdBW = PFiltOutdBm(end) - 30;
缩放放大器输入功率到所需的后退。回退信号的测量功率必须等于峰值输出时的输入功率(5dbm)减去输入回退信号(6db)。功率计验证信号是否已正确回退。
gain = helpbackoffgain (ipPwrAtPkOut,PFiltOutdBm(end),IBO);ampIn =增益* filtOut;重置(pm);PAmpIndBm = pm(ampIn);流(回退信号功率为%4.2f dBm.\n',...PAmpIndBm(结束)
回退信号功率为-1.00 dBm。
绘制放大器瞬时输入功率的直方图。下图显示了相当大比例的放大器输入样本的功率应该会导致放大器输出的增益压缩。许多信号样本的功率都在0 dBm以上,此时放大器表现为非线性。
PAmpInInst = abs(ampIn)。^2 / mll . referenceimpedance;PAmpInInstdBm = 10*log10(PAmpInInst) + 30;边= -29:9;直方图(PAmpInInstdBm边缘,标准化=“概率”)标题(“瞬时功率概率”);包含(瞬时P_i_n (dBm));ylabel (“概率”);xlim (-30 [10]);网格在;
把信号通过放大器传递。在放大器输出处测量的平均功率与上图所示的预期瞬时功率密切对应。
ampOut = mnl(ampIn);PAmpOutdBm = pm(ampOut);流(放大器输出功率为%4.2f dBm.\n',...PAmpOutdBm(结束)
放大器输出功率为40.63 dBm。
计算平均放大器增益。
ampGaindB = PAmpOutdBm(end) - PAmpIndBm(end);流(放大器增益为%4.2f dB。\n,...ampGaindB)
放大器增益为41.63 dB。
绘制指定的和实际的瞬时 vs。 显示放大器的实际行为与基于表的对象指定的行为相匹配。
图;hFig = helperPlotAMAM(mnl);%指定的撅嘴与引脚持有在;pAmpOutInst = abs(ampOut)。^2 / mll . referenceimpedance;pAmpOutInstdBm = 10*log10(pampoutinstst) + 30;%实际撅嘴vs销情节(PAmpInInstdBm pAmpOutInstdBm,的r *);网格在;lines = hFig.Children.Children;传奇((1[2]),行指定的=“实际”位置=“西北”);
创建一个星座图来说明放大器的输入和输出信号。16QAM星座图显示放大器输出轻微旋转(AM/PM失真),角点产生了一些增益压缩(AM/AM失真)。
constDiag = com . constellationdiagram (...ShowReferenceConstellation = false,...SamplesPerSymbol = txFilt。OutputSamplesPerSymbol,...ShowLegend = true,...ChannelNames = {放大器的输入的,放大器输出的});%设置地块限制maxLim = 2 * max(real(filtOut));constDiag。XLimits = [-maxLim maxLim];constDiag。YLimits = [-maxLim maxLim];magFiltOut =√(mean(abs(filtOut).^2));magAmpOut =√(平均值(abs(ampOut).^2));增益= magAmpOut / magFiltOut;constDiag ([filtOut ampOut /获得]);%刻度放大器输出绘图方便
案例探究
您可以通过尝试不同的回退电平或调制信号(例如,64QAM或OFDM)来实验这个示例。您可以使用自己的基于表的表格加载电子表格 将此后退技术应用于PA特性。
总结
本例演示了如何将回退应用于非线性放大器的输入信号。通过对比验证了该技术的可行性 指定的和实际数据的行为。
附录
下面的例子中使用了这些帮助文件: