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

标签:
杂谈matlab快速傅里叶变换fftfluent的fft |
分类: MATLAB杂谈 |
图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
后一篇:MATLAB二维绘图总结