matlab填充fft变换频率



我试图将余弦的Matlab fft与两种不同的零填充进行比较。我以为它不会改变频率响应,但当我叠加两条曲线时,频率不一样。我想我做两次fft的方式有问题吗?

Fe = 8000;
F = 1680;
w = 2*pi*F;
N = 50;
P = 50;
T = 1/Fe;
t = (0:T:P*T);
x = real(exp(i*w*t))
x_reduced = x(1:P)
X = fft(x_reduced,N)
N = 1000;
Y = fft(x_reduced,N)

plot(abs(Y))
hold on
plot(abs(X),'*')

提前感谢

plot((0:999)/1000*Fe,abs(Y))
hold on
plot((0:49)/50*Fe,abs(X),'*')

您可能需要调整这两种情况的频率。

当你填充FFT时,你会改变每个bin的分辨率(你实际上是在bin之间进行插值),所以虽然相应的频率仍然相同,但到bin索引的实际映射当然会改变。如果缩放两个FFT图,使两个FFT的水平轴对齐(即,仓0在两个FFT上对齐,仓50与仓1000对齐),则这些图将匹配。

最新更新