谐波失真分析

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

介绍

在本例中,我们将探讨放大器的简化模型的输出,该模型的噪声耦合到输入信号并呈现非线性。我们将探讨输入处的衰减如何减少谐波失真。我们还将给出一个如何对放大器输出处的失真进行数学校正的示例。

观察非线性的影响

查看放大器非线性效应的一个方便方法是查看其输出的周期图(当用正弦信号刺激时)。正弦信号的振幅设置为放大器的最大允许电压。(2 Vpk)

在本例中,我们将为持续时间为50ms的2 kHz正弦波提供源信号。

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

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

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

现在,让我们查看放大器输出的周期图。

HelperPlot周期图(outputVmax,Fs,“权力”,“注释”);

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

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

量化非线性失真

为了便于比较,让我们检查一些常见的失真度量

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

thd(输出Vmax,Fs)

ans=-60.3888

请注意,第三个也是最大的谐波距离基波约60 dB。这就是大部分失真发生的地方。

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

信噪比(输出Vmax,Fs)

ans=130.9300

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

sinad(输出Vmax,Fs)

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,“权力”,“注释”);

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

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

注意,只需将输入功率电平衰减6 dB即可降低谐波含量。SINAD和THD从~60 dB提高到~72 dB。这是以将SNR从131 dB降低到125 dB为代价的。

作为输入衰减函数的信噪比THD和信噪比SINAD

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

%分配一个包含30个条目的表nReadings=30;可失真=零(nReadings,3);%计算每个衰减设置的THD、SNR和SINAD对于i=1:nReadings inputVbestAtten=db2mag(-i)*VmaxPk*sin(2*pi*Fi*t);outputVbestAtten=HelperHarmonic畸变放大器(inputVbestAtten);畸变(i,:)=[abs(thd(outputVbestAtten,Fs))snr(outputVbestAtten,Fs)sinad(outputVbestAtten,Fs)];终止%绘图结果打印(可扭曲)xlabel('输入衰减(dB)')伊拉贝尔('动态范围(dB)')传奇(“| THD |”,“信噪比”,“西纳德”,“位置”,“最好的”)头衔(“失真指标与输入衰减”)

该图显示了对应于每个度量的可用动态范围巨大THD值对应于无谐波的范围。类似地,SNR对应于不受噪声影响的信号的动态范围;SINAD对应于无失真的总动态范围。

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

还要注意的是,总谐波失真的幅度稳步提高,直到它与SNR曲线相交,之后测量变得不稳定。这发生在谐波在放大器噪声下“消失”时。

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

%在表格中搜索最大的SINAD读数[maxSINAD,iAtten]=max(可失真(:,3));fprintf('最大SINAD(%.1f dB)出现在%.f dB衰减处\n',...maxSINAD,iAtten)
最大SINAD(103.7 dB)出现在26 dB衰减时

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

输入Vbestatten=db2mag(-iAtten)*VmaxPk*sin(2*pi*Fi*t);outputVbestAtten=帮助器谐波失真放大器(inputVbestAtten);HelperPlot周期图(outputVbestAtten,Fs,“权力”,“注释”,“表演噪音”);

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

消除失真的后处理

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

在我们的例子中,我们用线性斜坡刺激输入,并拟合最适合输入的三阶多项式。

输入放大器=-2:0.00001:2;输出放大器=辅助谐波失真放大器(输入放大器);polyCoeff=多功能(输出放大器,输入放大器,3)
polyCoeff=1×40.0010 -0.0002 1.0000 -0.0250

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

修正的输出Vmax=polyval(polyCoeff,outputVmax);HelperPlotPeriodGram([outputVmax;correctedOutputVmax],Fs,“权力”);子标段(2,1,1)标题(“未修正”)子地块(2,1,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的原始SNR。

组合技术

我们可以将衰减与多项式评估相结合,以找到使系统总SINAD最小化的理想工作电压。

子批次(1,1,1)%在失真表中再添加三列可畸变=[可畸变零(nReadings,3)];对于i=1:nReadings inputVreduced=db2mag(-i)*VmaxPk*sin(2*pi*Fi*t);outputVreduced=HelperHarmonic失真放大器(inputVreduced);correctedOutput=polyval(polyCoeff,outputVreduced);失真(i,4:6)=[abs(thd(correctedOutput,Fs))snr(correctedOutput,Fs)sinad(correctedOutput,Fs)];终止h=绘图(可扭曲)
h=6x1线阵:线阵
xlabel('输入衰减(dB)')伊拉贝尔('动态范围(dB)')对于i=1:3h(i+3)。颜色=h(i)。颜色;h(i+3)。线型='--';终止传奇(| THD |(未修正)','信噪比(未修正)',‘SINAD(未修正)’,...| THD |(已更正)|,‘信噪比(校正)’,“SINAD(已更正)”,“位置”,“最好的”)头衔(“失真度量与输入衰减和多项式校正”);

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

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

让我们展示一下用多项式校正时可能的最大SINAD

[maxSINADcorrected,iAttenCorr]=max(可失真(:,6));fprintf('已更正:在%.f dB衰减时的最大SINAD(%.1f dB)\n',...maxSINADcorrected,iAttenCorr)
校正:17 dB衰减时的最大SINAD(109.7 dB)

多项式校正放大器的放大器衰减最佳选择为20dB(产生109.8dB的SINAD)。

%使用多项式在最大SINAD衰减设置下重新计算放大器inputVreduced=db2mag(-iAttenCorr)*VmaxPk*sin(2*pi*Fi*t);outputVreduced=HelperHarmonic失真放大器(inputVreduced);correctedOutputVbestAtten=polyval(polyCoeff,outputVreduced);HelperPlot周期图(correctedOutputVbestAtten,Fs,“权力”,“注释”,“表演噪音”);头衔(“衰减和多项式校正放大器的周期图”)

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

总结

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