我有一个 50 Hz 正弦波,采样率为 1600 个样本/秒。我正在计算 16 点 DFT。所以我的基频是 100 Hz。
然后我将 1600 个样本抽取为 400 个样本。然后使用它计算 8 点 DFT。现在我的基本分量是 50 Hz。二次谐波是 100 Hz。
我在 matlab 上绘制了上述两种情况。在第一种情况(16 点)中,100 Hz 分量的幅度接近 3.5。
在第二种情况下(8 点),100 Hz 分量的幅度几乎为零。50 Hz 分量的幅度接近 4。
为什么会出现这种异常?
谢谢,
何塞
这是这个的代码
%----------------------------Sine Wave------------------------------%
f = 50;
t = 0:(1/1600):(1-(1/1600))
Signal = sin(2*pi*f*t);
subplot(3,1,1)
plot(t,Signal)
ylabel('Amplitude')
title('50 Hz Sine wave at 1600 samples/sec');
%-------------------16 Point DFT-----------------------%
DFT_app_16 = fft(Signal,16);
subplot(3,1,2)
stem((0:100:1500),abs(DFT_app_16))
ylabel('Magnitude')
title('16 Point DFT')
%---------------------8 Point DFT--------------------------%
Dec_Sample = [];
for i = 1:4:1597
Dec_Sample = [Dec_Sample ((Signal(1,i) + Signal(1,i+1) + Signal(1,i+2) + Signal(1,i+3))/4)]
end
DFT_app_8 = fft(Dec_Sample,8);
subplot(3,1,3)
stem((0:50:350),abs(DFT_app_8))
xlabel('Frequency(Hz)')
ylabel('Magnitude')
title('8 Point DFT')