加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

MATLAB快速傅里叶变换(fft)求解频率

(2013-06-10 18:23:58)
标签:

杂谈

matlab

快速傅里叶变换

fft

fluent的fft

分类: MATLAB杂谈
    最近在使用fluent计算液体晃动的时候得到了一个面上的受力的变化(如图1),想关注晃动的频率,就是用了matlab的fft(fluent中也有plots-FFT)。
图1
得到晃动频率的matlab程序如下:
A=load('a.txt');%a.txt 为fluent输出的力随时间的数据(即图1的数据)
t=A(:,1);
x=A(:,2);
n=length(t);
fs=n/8.8;%设定采样频率(每秒钟采样个数)
N=n;%不是必须为n,可以根据情况选取。
y=fft(x,N);%进行fft变换
mag=abs(y);%求幅值
f=(0:length(y)-1)'*fs/length(y);%进行对应的频率转换
plot(f,mag);%做频谱图
axis([0,50,0,500]);
xlabel('频率(Hz)');
ylabel('幅值');
title('频谱图');
grid;
[y,n]=max(mag);
f=f(n,:);
fprintf('f=%f',f);%输出晃动频率
图2为频谱图。
fluent中的FFT结果如图3所示。
图3

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有