FFT 窗口中的奇怪行为

问题描述 投票:0回答:0

我在对两个信号的 FFT 开窗时出现了一些奇怪的行为。一个是标准的145hz驱动信号,一个是弹跳球。应用窗口后,我得到了一些预期的清晰峰,但在它们之间是奇怪的较小峰组(通常是 4 个),而不是单个解析峰。我不确定我做错了什么。任何帮助将不胜感激。

这是我的代码

clear all

filename = 'BBChaos145Hz-1.txt';
A = importdata(filename);
d = A(:,1);
y = A(:,2);

d = d(1:16:2^16); 
y = y(1:16:2^16);

fSamp = 44100/16; 

Pdd = (abs(fft(d))).^2; 
Pyy = (abs(fft(y))).^2; 
N = length(Pyy);
n = 1:N;n = n';
nn = 1:N
hanning = 0.5*(1-cos(2*n*pi/(N-1)));
window = hanning;
zw = y.*window;
Pzw = (abs(fft(zw))).^2;
stop = length(Pyy)/2; 
Pdd = Pdd(1:stop);
Pyy = Pyy(1:stop);
Pzw = Pzw(1:stop);
nd = 1:stop;
fdd = nd*(fSamp/2)/stop; 
semilogy(fdd,Pdd,fdd,Pyy,fdd,Pzw)
title('Unwindowed/Windowed')
xlabel('frequency (Hz)')

Figure

我尝试了不同的采样频率,但似乎没有任何改变输出。

matlab matlab-figure
© www.soinside.com 2019 - 2024. All rights reserved.