【发布时间】:2018-08-21 15:34:23
【问题描述】:
我的 MATLAB 程序有问题。我试图找到一个截止频率来为罗盘数据创建一个低通滤波器。我正在尝试从时域转到频域并找到一个Fc,所以我使用了 FFT,但似乎它不起作用。
这就是我所做的:
dataset=xlsread('data.xlsx','Feuil1','A1:A751');
t=1:length(dataset);
z=abs(fft(dataset));
subplot(2,2,3)
plot(dataset)
title('dataNonFiltrer')
subplot(2,2,4)
plot(z)
title('frequenciel')
我得到这个愿望似乎是不正确的:
【问题讨论】:
-
“不正确” 您希望看到什么?您已经成功绘制了 FFT 的输出,如果这不是您期望看到的,那么请分享您的期望,以便我们为您指明正确的方向。
-
感谢您编辑我的消息并感谢您的回复,我希望在大约 100 赫兹的频率域中看到一个峰值......但我看到这里是一个 0 的峰值,这意味着它是不正确,而且在频率上,y 轴应该在频域中,但它仍然在时域 [0,400] 上,所以我有点困惑。对不起我的英语...... :)
-
我要检查的第一件事是数据是否已从“data.xlsx”文件中正确读取,甚至可以在 Excel 中绘制并查看图表是否匹配。似乎您正在尝试从文件中读取 751 个值,但是当您在 MatLab 中绘制它时,x 轴从 0 到 ~375,我认为该图上应该有 ~751 个值但也许我缺少一些东西。
-
0 处的峰值是直流分量。
-
顺便说一句,您没有正确绘制它。查看文档以了解如何绘制 fft 组件。例如,注意它是对称的
标签: matlab filter fft lowpass-filter