24小时热门版块排行榜    

查看: 1216  |  回复: 6
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

hanchenhua

银虫 (小有名气)

[求助] 求傅利叶变换程序

我是matlab的菜鸟级,用网上看到的傅利叶变换的程序运行自己的数据,结果很怪异。不知道是什么原因。
其实数据很简单,一列是时间,另一列是温度变量。
采样频率:1分钟
采样个数:5241
回复此楼
Never give up! Move!
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dk1013

木虫 (正式写手)

【答案】应助回帖

感谢参与,应助指数 +1
建议LZ自己看看快速傅里叶变换的书。
Matlab自带的fft,fft2函数,变换之后并不是你想要的频率从小到大,而是这样的顺序:
最大频率(正) =》 零频率 =》 最小频率(负)
所以变换后的结果你需要左右对换一下才可以。
Matlab甚至连这一点都给你想到了,直接也有现成的函数: fftshift
假如你的数据是x (一维数据),试试这个:
plot(abs(fftshift(fft(x)))),横坐标的频率啥的自己搞定。
到得还来别无事 庐山烟雨浙江潮
6楼2012-09-01 11:36:45
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dk1013

木虫 (正式写手)

【答案】应助回帖

有个错误,顺序应该是这样的:
最小正频 =》 最大正频 ==》》 最小负频 =》 零频。
左右对换就是:
最小负频 =》 零频 ==》》 最小正频 =》 最大正频
到得还来别无事 庐山烟雨浙江潮
7楼2012-09-01 11:41:00
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 hanchenhua 的主题更新
信息提示
请填处理意见