问题描述
我一直在尝试对从另一个软件获得的时域信号执行信号处理操作 (FFT)。但是,当我使用以下代码时,我总是得到错误的答案(图 1)。信号采样频率为1600。
%Healthy engine IAS
DATAH=xlsread('IASH_5seconds_1500rpm_FS1600.xlsx');
xh=DATAH(:,1);
yh=DATAH(:,2);
plot(xh,yh);
hold on;
legend('a','b')
%% performing fft
Fs=1600;
L=length(yh);
nfft = 2^nextpow2(L);
X = fft(yh,nfft)/L;
f = Fs*linspace(0,1,nfft);
plot(f,2*abs(X))
我尝试使用 Amesime 软件获取其频谱,结果正确(见图 2)。但是,我想用 MATLAB 来做到这一点。 我不知道我的错误在哪里。当我只是改变信号并且代码完美运行时,我的问题对我来说变得更奇怪了。所以,我认为我的信号有问题。我的信号是否有问题(您可以在图 3 中看到信号)?
图 1:
图 2:
图 3:
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)