matlab 总谐波失真,分析谐波失真 - MATLAB & Simulink Example - MathWorks 中国

此示例使用 MATLAB 分析非线性放大器的总谐波失真 (THD),探讨输入衰减如何影响失真,并展示如何通过多项式校正减少失真。通过调整输入衰减和应用数字校正,可以显著提高信号的质量和动态范围。
摘要由CSDN通过智能技术生成

简介

在此示例中,我们将研究放大器的简化模型的输出,该放大器的噪声耦合到输入信号并且呈现非线性。我们将研究输入端的衰减如何降低谐波失真。我们还将举例说明如何对放大器输出端的失真在数学上进行校正。

查看非线性的影响

查看放大器非线性影响的一种方便方法是查看用正弦波激励时其输出的周期图。正弦波的幅值设置为放大器的最大允许电压。(2 Vpk)

在此示例中,我们将提供持续时间为 50 毫秒的 2 kHz 正弦波。

VmaxPk = 2; % Maximum operating voltage

Fi = 2000; % Sinusoidal frequency of 2 kHz

Fs = 44.1e3; % Sample rate of 44.1kHz

Tstop = 50e-3; % Duration of sinusoid

t = 0:1/Fs:Tstop; % Input time vector

% Use the maximum allowable voltage of the amplifier

inputVmax = VmaxPk*sin(2*pi*Fi*t);

outputVmax = helperHarmonicDistortionAmplifier(inputVmax);

查看输出正弦波的放大区域。请注意,在绘制对时间的图时,很难从视觉上看出放大器的不完美之处。

plot(t, outputVmax)

xlabel('Time')

ylabel('Output Voltage')

axis([0 5e-3 -2.5 2.5])

title('Amplifier output')

180e4ea2f3ca1f491bd8689ac080c0bd.png

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

helperPlotPeriodogram(outputVmax, Fs, 'power','annotate');

359d82e4f7ea79460b725e16a24882eb.png

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

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

量化非线性失真

为了便于比较,让我们参考一些常见的失真指标

周期图显示一些定义良好的基波信号的谐波。该图建议我们测量输入信号的总谐波失真,它返回所有谐波含量的功率与基波信号的比率。

thd(outputVmax, Fs)

bf256e5dcfb304c1f8a1c3685cf07db7.png

ans = -60.3888

请注意,第三个(也是最大的)谐波比基波低约 60 dB。大部分失真发生在此处。

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

snr(outputVmax, Fs)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值