主要内容

分析谐波畸变

这个例子展示了如何分析弱非线性系统在噪声存在的谐波失真。

介绍

在该示例中,我们将探索具有耦合到输入信号的噪声并展示非线性的放大器的简化模型的输出。我们将探讨输入的衰减程度可以减少谐波失真。我们还将举个例子是如何在放大器输出处的失真进行数学上正确的。

观看非线性的影响

观察放大器非线性效应的一种方便的方法是观察当受到正弦信号刺激时放大器输出的周期图。正弦波的振幅设置为放大器的最大允许电压。(2 Vpk)

在这个例子中,我们将在50毫秒的持续时间内提供2 kHz正弦曲线。

VmaxPk=2;最大工作电压fi = 2000;%正弦频率2千赫Fs=44.1e3;%采样率为44.1kHzTstop=50e-3;窦状的持续时间t = 0:1 / Fs: Tstop;%输入时间向量%使用放大器的最大允许电压inputVmax = VmaxPk * sin(2 *π* Fi * t);outputVmax = helperHarmonicDistortionAmplifier (inputVmax);

查看输出正弦曲线的放大区域。请注意,当绘制时间曲线时,我们的放大器的缺陷很难从视觉上看到。

绘图(t,outputVmax)xlabel(“时间”) ylabel (输出电压的)轴([0 5e-3 -2.5 2.5])标题(“放大器输出”

图中包含一个轴对象。带有放大器输出标题的轴对象包含一个类型为line的对象。

现在让我们查看放大器输出的周期测量值。

helperPlotPeriodogram (outputVmax Fs,“权力”“注释”);

图中包含一个轴对象。带有标题时期功率谱估计的轴对象包含3个类型的类型,文本。

请注意,我们不是只看到输入端的2 kHz正弦波,而是看到4 kHz、6 kHz、8 kHz和10 kHz的其他正弦波。这些正弦波是基本2 kHz频率的倍数,是由于放大器的非线性。

我们还看到了一个相对平坦的噪声功率带。

量化非线性失真

让我们来检查一些常见的失真度量,以进行比较目的

我们的周期图显示了基波信号的一些非常明确的谐波。这表明我们测量输入信号的总谐波失真,它返回所有谐波含量与基波信号的功率比。

(thd (outputVmax Fs)

图中包含一个轴对象。标题为THD: -60.39 dB的轴对象包含16个类型为line, text的对象。这些对象代表基频、谐波、直流和噪声(不包括)。

ans = -60.3888.

注意第三次和最大次谐波从基频下降约60分贝。这是大多数失真发生的地方。

我们还可以获得输入中总噪声的估计值。为此,我们称之为SNR,它返回基波功率与所有非谐波成分功率之比。

信噪比(outputVmax Fs)

图中包含一个轴对象。标题SNR为130.93 dB的axes对象包含17个line、text类型的对象。这些对象表示基波、噪声、直流和谐波(不包括)。

ans = 130.9300

另一个有用的计算指标是SINAD。它计算功率与信号中所有其他谐波和噪声含量的比率。

SINAD(OutputVmax,FS)

图中包含一个轴对象。具有标题SINAD的轴对象:60.39 dB包含7个类型线,文本的7个对象。这些对象代表基本,噪声和失真,DC(不包括)。

ans = 60.3888.

THD、SNR和SINAD分别为-60 dB、131 dB和60 dB。由于THD的大小大致等于SINAD,我们可以将大部分失真归因于谐波失真。

如果我们检查周期图,我们可以注意到三次谐波主导了输出的失真。

减少谐波失真的输入衰减

大多数执行放大的模拟电路在谐波失真和噪声功率之间有一个固有的平衡。在我们的示例中,我们的放大器与谐波失真相比具有相对较低的噪声功率。这使得它适合检测低功率信号。如果我们的输入可以衰减以进入此低功率区域,我们可以恢复一些谐波失真。

让我们通过将输入电压降低两倍来重复测量。

输入vhalf=(VmaxPk/2)*sin(2*pi*Fi*t);输出vhalf=辅助谐波失真放大器(输入vhalf);辅助频率周期图(输出vhalf,Fs,“权力”“注释”);

图中包含一个轴对象。带有标题时期功率谱估计的轴对象包含3个类型的类型,文本。

让我们再次重做我们的指标,这次测量降低输入电压的效果。

thdVhalf = thd(outputVhalf, Fs)
thdVhalf=-72.0676
snrVhalf=信噪比(输出vhalf,Fs)
snrVhalf = 124.8767
sinadVhalf = sinad(outputVhalf, Fs)
sinadVhalf=72.0676

请注意,简单地减少输入功率级别6 dB可降低谐波内容。SINAD和THD从〜60 dB改善到〜72 dB。这是以将131 dB降低到125 dB的费用的费用。

SNR THD和SINAD作为输入衰减的函数

进一步的衰减能改善我们的整体失真性能吗?让我们绘制THD, SNR和SINAD作为输入衰减的函数,将输入衰减器从1扫到30 dB。

%分配包含30个条目的表nReadings = 30;convert = 0 (nreads, 3);计算每个衰减设置的THD, SNR和SINAD对于i = 1:nreadings inputvbestatten = db2mag(-i)* vmaxpk * sin(2 * pi * fi * t);outputvbestatten = HelperharmonicDistoragerAmplifier(InputVbestatten);distorationtable(i,:) = [abs(thd(outputvbestatten,fs))snr(outcalvbestatten,fs)sinad(outcalvbestatten,fs)];终止%绘制结果情节(distortionTable)包含(“输入衰减(dB)”) ylabel ('动态范围(dB)')传奇(“官| |”“信噪比”'sinad'“位置”“最好的”) 标题(“失真指标与输入衰减”

图中包含一个Axis对象。具有标题失真度量与输入衰减的Axis对象包含3个line类型的对象。这些对象表示| THD |、SNR、SINAD。

该图显示了与每个度量相对应的可用动态范围。这THD对应于没有谐波的范围。类似地,SNR对应于不受噪声影响的动态范围;Sinad对应于没有失真的总动态范围。

从图中可以看出,随着输入功率衰减增加,SNR降低。这是因为当衰减信号时,只有信号衰减,但放大器的噪声底板保持不变。

另请注意,总谐波失真的大小稳定地改善,直到它与SNR曲线相交,之后测量变得不稳定。当谐波在放大器的噪声下面“消失”时会发生这种情况。

放大器的实际衰减选择是26 dB(产生103 dB的SINAD)。这将是一个合理的折衷之间的谐波和噪声失真。

%搜索表中最大的SINAD读取[maxsinad,iAtten] = max(distorrageTable(:,3));fprintf(“马克斯SINAD(%。1f dB)发生在%。f分贝衰减\ n”...Maxsinad,IATTEN)
Max Sinad(103.7 dB)发生在26 dB衰减

让我们绘制衰减器设置为26 dB时的周期图。

inputvbestatten = db2mag(-iatten)* vmaxpk * sin(2 * pi * fi * t);outputvbestatten = HelperharmonicDistoragerAmplifier(InputVbestatten);HelperplotPiodograph(OutputVbestatten,FS,“权力”“注释”'出示');

图中包含一个轴对象。以“周期图功率谱估计值”为标题的轴对象包含行、文等4个类型对象。

这里我们还画出了总计在整个频谱中传播的噪声功率。请注意,在该衰减设置下,二次谐波和三次谐波在频谱中仍然可见,但也远小于总噪声功率。如果我们有一个使用可用频谱带宽较小的应用程序,我们将受益于进一步增加衰减以减少谐波含量。

去除失真的后处理

有时我们可以校正放大器的某些非线性。如果对放大器的输出进行数字化处理,通过对捕获的输出进行数字化后处理并对非线性进行数学校正,可以恢复更有用的动态范围。

在我们的情况下,我们用线性斜坡刺激输入,并符合最适合输入的三阶多项式。

InputRamp = -2:0.00001:2;Outputramp = HelperharmonicDistorGragryAmplifier(Inputramp);Polycoeff = Polyfit(Outputramp,Inputramp,3)
polyCoeff =1×40.0010 -0.0002 1.0000 -0.0250

既然我们拥有系数,我们可以在输出端进行后校正,并与我们原始未校正的输出并排进行比较

correctedOutputVmax = polyval(polyCoeff, outputVmax);helperPlotPeriodogram ([outputVmax;correctedOutputVmax], Fs,“权力”);次要情节(2,1,1)标题(“未修正”)子地块(2,1,2)名称('多项式纠正'

图中包含2个轴对象。带有标题的轴对象1包含一个类型为line的对象。标题为多项式修正的轴对象2包含一个类型为线的对象。

注意,当使用多项式校正时,第二和第三次谐波显著减少。

让我们使用校正的输出再次重复测量。

thd校正的Vmax=thd(校正的输出Vmax,Fs)
thdCorrectedVmax = -99.6194
snr校正的Vmax=snr(校正的输出Vmax,Fs)
SNRCORRECTEDVMAX = 130.7491.
sinadCorrectedVmax = sinad(correctedOutputVmax, Fs)
sinadCorrectedVmax=99.6162

注意我们的SINAD(和THD)从60 dB降到了99 dB,同时保留了原来的131 dB的信噪比。

组合技术

我们可以将衰减与多项式评估结合起来,以找到最大限度地减少我们系统整体Sinad的理想工作电压。

子批次(1,1,1)%在失真表中再添加三列distorationtable = [失真零(nreadings,3)];对于i = 1: nreads inputVreduced = db2mag(-i) * VmaxPk * sin(2*pi*Fi*t);outputVreduced = helperHarmonicDistortionAmplifier (inputVreduced);correctedOutput = polyval(polyCoeff, outputVreduced);失真表(i,4:6) = [abs(thd(correctedOutput, Fs)) snr(correctedOutput, Fs) sinad(correctedOutput, Fs)];终止h =图(失真)
H = 6x1线阵列:线路线线线线
Xlabel(“输入衰减(dB)”) ylabel ('动态范围(dB)'对于i=1:3h(i+3)。颜色=h(i)。颜色;h(i+3)。线型='--'终止传奇('| THD |(未经纠正)'的信噪比(未调整的)‘SINAD(未修正)’...”| |(修正)‘信噪比(校正)’'Sinad(纠正)'“位置”“最好的”) 标题(“失真度量与输入衰减和多项式校正”);

图中包含一个Axis对象。具有标题失真度量与输入衰减和多项式校正的Axis对象包含6个line类型的对象。这些对象表示| THD |(未校正)、SNR(未校正)、SINAD(未校正)、| THD |(校正)、SNR(校正)、SINAD(校正)。

在这里,我们已经绘制了所有的三个指标旁边的未校正和多项式校正放大器。

从图中可以看出,THD已显著改善,而SNR不受多项式校正的影响。这是可以预期的,因为多项式校正只影响谐波失真,而不影响噪声失真。

让我们展示当被多项式修正后的最大SINAD可能

[maxsinadcorrited,iAtencorr] = max(distorrageTable(:,6));fprintf('修正:最大SINAD(%。1f dB) at %。f分贝衰减\ n”...maxSINADcorrected iAttenCorr)
纠正:最大Sinad(109.7 dB)为17 dB衰减

对于多项式校正放大器来说,放大器衰减的一个好的选择是20dB(产生109.8 dB的SINAD)。

%使用多项式在最大SINAD衰减设置下重新计算放大器InputVreduced = DB2MAG(-iattencor)* vmaxpk * sin(2 * pi * fi * t);outputVreduced = helperHarmonicDistortionAmplifier (inputVreduced);纠正诉讼程序= Polyval(Polycoeff,OutputVreduced);HelperplotPeriodograph(RECTENTIONOUTPUTVBESTATEN,FS,“权力”“注释”'出示');标题('衰减和多项式校正放大器的周期测量

图中包含一个轴对象。具有衰减和多项式校正放大器的标题周期图的轴对象包含4个类型线,文本的4个对象。

请注意,在理想衰减设置下,除二次谐波外,所有谐波均通过多项式校正完全消失。如前所述,二次谐波仅出现在总噪声地板的功率水平之下。这为使用放大器全部带宽的应用提供了合理的折衷。

总结

我们已经展示了如何将多项式校正应用于放大器的输出失真,以及如何选择一个合理的衰减值以减少谐波失真的影响。

另请参阅

||