主要内容

谐波失真分析

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

简介

在本例中,我们将探讨放大器简化模型的输出,该放大器有噪声耦合到输入信号并表现出非线性。我们将探讨输入端的衰减如何减少谐波失真。我们还将举例说明如何从数学上纠正放大器输出端的失真。

查看非线性的影响

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

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

VmaxPk = 2;最大工作电压%Fi = 2000;% 2千赫的正弦频率Fs = 44.11 e3;% 44.1kHz采样率Tstop = 50e-3;%正弦信号持续时间t = 0:1/Fs:Tstop;输入时间向量使用放大器的最大允许电压inputVmax = VmaxPk*sin(2*pi*Fi*t);输出vmax = helperHarmonicDistortionAmplifier(输入vmax);

查看输出正弦信号的放大区域。请注意,我们的放大器的缺陷是很难看到的视觉时,绘制相对于时间。

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

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

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

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

图中包含一个轴对象。标题为Periodogram Power Spectrum Estimate的axes对象包含3个类型为line, text的对象。

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

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

量化非线性失真

为了进行比较,让我们来研究一些常见的失真指标

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

(thd (outputVmax Fs)

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

Ans = -60.3888

请注意,第三次也是最大的谐波大约比基波低60分贝。这就是大部分失真发生的地方。

我们还可以获得输入中存在的总噪声的估计值。为了做到这一点,我们调用信噪比,它返回基本的功率与所有非谐波内容的功率之比。

信噪比(outputVmax Fs)

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

Ans = 130.9300

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

sinad (outputVmax Fs)

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

Ans = 60.3888

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

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

减少谐波失真的输入衰减

大多数进行放大的模拟电路在谐波失真和噪声功率之间都有一个内在的权衡。在我们的例子中,我们的放大器有相对较低的噪声功率与谐波失真相比。这使得它适用于检测低功率信号。如果我们的输入可以被衰减到这个低功率区域,我们就可以恢复一些谐波失真。

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

inputVhalf = (VmaxPk/2) * sin(2*pi*Fi*t);输出vhalf = helperHarmonicDistortionAmplifier(输入vhalf);helperPlotPeriodogram (outputVhalf Fs,“权力”“注释”);

图中包含一个轴对象。标题为Periodogram Power Spectrum Estimate的axes对象包含3个类型为line, text的对象。

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

thdVhalf = thd(outputVhalf, Fs)
thdVhalf = -72.0676
snrVhalf = snr(outputVhalf, Fs)
snrVhalf = 124.8767
sinadVhalf = sinad(outputVhalf, Fs)
sinadVhalf = 72.0676

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

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

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

分配一个包含30个条目的表nreads = 30;扭曲表=零(nreads, 3);计算每个衰减设置的THD, SNR和SINADi = 1: nreads inputVbestAtten = db2mag(-i) * VmaxPk * sin(2*pi*Fi*t);输出vbestatten = helperHarmonicDistortionAmplifier(输入vbestatten);扭曲表(i,:) = [abs(thd(outputVbestAtten, Fs)) snr(outputVbestAtten, Fs) sinad(outputVbestAtten, Fs)];结束%绘图结果情节(distortionTable)包含(“输入衰减(dB)”) ylabel (“动态范围(dB)”)传说(“官| |”“信噪比”“SINAD”“位置”“最佳”)标题(失真指标vs.输入衰减

图中包含一个轴对象。标题为失真度量与输入衰减的axis对象包含3个类型为line的对象。这些对象代表|THD|, SNR, SINAD。

该图显示了对应于每个指标的可用动态范围。的的THD对应于无谐波的范围。同样,信噪比对应于不受噪声影响的动态范围;SINAD对应的是无失真的总动态范围。

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

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

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

搜索表中最大的SINAD读数[maxSINAD, iAtten] = max(扭曲表(:,3));流(马克斯·辛纳德(Max SINAD)。1f dB)发生在%。f dB衰减\n'...maxSINAD iAtten)
最大SINAD (103.7 dB)发生在26 dB衰减时

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

inputVbestAtten = db2mag(-iAtten) * VmaxPk * sin(2*pi*Fi*t);输出vbestatten = helperHarmonicDistortionAmplifier(输入vbestatten);helperPlotPeriodogram (outputVbestAtten Fs,“权力”“注释”“shownoise”);

图中包含一个轴对象。标题为Periodogram Power Spectrum Estimate的axes对象包含4个类型为line, text的对象。

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

去除失真的后处理

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

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

inputRamp = -2:0.00001:2;outputRamp = helperHarmonicDistortionAmplifier(inputRamp);polyCoeff = polyfit(输出putramp,输入putramp,3)
polyCoeff =1×40.0010 -0.0002 1.0000 -0.0250

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

correctedOutputVmax = polyval(polyCoeff, outputVmax);helperPlotPeriodogram ([outputVmax;correctedOutputVmax], Fs,“权力”);次要情节(2,1,1)标题(“裸”) subplot(2,1,2)“多项式纠正”

图中包含2个轴对象。标题为Uncorrected的坐标轴对象1包含一个类型为line的对象。标题为Polynomial Corrected的Axes对象2包含一个类型为line的对象。

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

让我们用修正后的输出再次重复测量。

thdCorrectedVmax = thd(correctedOutputVmax, Fs)
thdCorrectedVmax = -99.6194
snrCorrectedVmax = snr(correctedOutputVmax, Fs)
snrCorrectedVmax = 130.7491
sinadCorrectedVmax = sinad(correctedOutputVmax, Fs)
sinadCorrectedVmax = 99.6162

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

结合技术

我们可以结合衰减和多项式评估来找到理想的工作电压,使我们的系统的整体SINAD最小化。

次要情节(1,1,1)在失真表中再添加三列扭曲表=[扭曲表零(nreads,3)];i = 1: nreads inputVreduced = db2mag(-i) * VmaxPk * sin(2*pi*Fi*t);输出vreduced = helperHarmonicDistortionAmplifier(输入vreduced);correctedOutput = polyval(polyCoeff, outputVreduced);扭曲表(i,4:6) = [abs(thd(correctedOutput, Fs)) snr(correctedOutput, Fs) sinad(correctedOutput, Fs)];结束h = plot(扭曲表)
h = 6x1线阵:Line Line Line Line Line
包含(输入衰减(dB)) ylabel (“动态范围(dB)”I = 1:3 h(I +3)。Color = h(i).Color;h (i + 3)。线型=“——”结束传奇(”| |(未调整的)的信噪比(未调整的)“SINAD(未调整的)...”| |(修正)的信噪比(修正)“SINAD(修正)“位置”“最佳”)标题(失真指标vs.输入衰减和多项式修正);

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

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

从图中可以看出,THD有了很大的提高,而信噪比没有受到多项式修正的影响。这是意料之中的,因为多项式修正只影响谐波失真,而不影响噪声失真。

让我们显示最大SINAD可能时,修正的多项式

[maxSINADcorrected, iAttenCorr] = max(扭曲表(:,6));流(更正:Max SINAD(%。1f dB) at %。f dB衰减\n'...maxSINADcorrected iAttenCorr)
修正:最大SINAD (109.7 dB)在17 dB衰减

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

用多项式重新计算最大SINAD衰减设置下的放大器inputVreduced = db2mag(-iAttenCorr) * VmaxPk * sin(2*pi*Fi*t);输出vreduced = helperHarmonicDistortionAmplifier(输入vreduced);correctedOutputVbestAtten = polyval(polyCoeff, outputVreduced);helperPlotPeriodogram (correctedOutputVbestAtten Fs,“权力”“注释”“shownoise”);标题(衰减多项式校正放大器周期图

图中包含一个轴对象。标题为衰减多项式校正放大器Periodogram的轴对象包含类型行、文本4个对象。

注意,在理想衰减设置下,除二次谐波外的所有谐波都在多项式校正下完全消失。如前所述,第二次谐波出现在总噪声底的功率级之下。这在使用放大器全带宽的应用中提供了一个合理的权衡。

总结

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

另请参阅

||