程序用FFT画频谱图问题
本帖最后由 wdhd 于 2016-9-13 13:42 编辑我的频谱图画出来跟实际的频率对不起来,
我是用Newmark解出来的数据带进去Matlab 程序用FFT画频谱图
是程序有问题吗? 我看不太懂程序
这是别人给的
请高手救我
拜托!!
%% 傅氏频谱图 %%
% Chang Sheng Lin, 2007/02/20 %
clear all;
cd F:\研究资料\
load BDisp3_free4_1000.m %% 输入档名
disp=BDisp3_free4_1000; %% 输入档名(不加.m)
%%
=size(disp);
for i=1:dof;
f(:,i)=disp(:,i);
dt=0.01;
w=pi/dt;
Nt=num;
Nw=Nt/2;
dw=w/Nw;
%ff=fft(f)*dt;
T=Nt*dt;
sf(:,i)=1/(2*pi*T)*(abs(fft(f(:,i)))*dt).^2;
%sf1=sum(sf,2);
%cc=ifft(sqrt(sf*2*pi*T)/dt);
figure(i)
plot(,sf(1:Nw,i))
plotedit
%title('傅氏频谱图')
%title('外力傅氏频谱图')
%title('位移响应傅氏频谱图')
%xlim()
xlabel('Frequency (rad/sec)')
ylabel('H(w) (m/N)')
%ylabel('|Fx(w)|')
%xlim()
%legend('1-DOf','2-DOF','3-DOF')
xlim()
end
论坛上非常多频谱图的程序
搜一搜, 并试着去学习它 图上显示的频率是圆频率,在程序中没有给出采样频率,对应不了实际频率。 本帖最后由 wdhd 于 2016-9-13 13:43 编辑
感谢两位的回答
我把dt改成0.0001 之后
取样点一样是10000 w=pi/dt;(截止频率)
w=31400 就可以对应到系统的四个频率
我的频率分别是 45.00 284.30 961.50 2790.70 (rad/s) 圆频率
功率频率
振动频率...等等频率我还是一头雾水
请问我对到的是属于哪一类的频率呢?
本帖最后由 wdhd 于 2016-9-13 13:43 编辑
原帖由 Arick0420 于 2008-10-31 13:24 发表
感谢两位的回答
我把dt改成0.0001之后
取样点一样是10000 w=pi/dt;(截止频率)
w=31400 就可以对应到系统的四个频率
我的频率分别是45.00284.30961.502790.70 (rad/s) 圆频率
功率频率
楼主从图上得到这样几个圆频率:45.00284.30961.502790.70 (rad/s) ,则对应的频率应为/(2*pi) Hz
回复 5楼 songzy41 的帖子
原来还有这层意义,感谢songzy41 我又长知识了!!!回复 5楼 songzy41 的帖子
本帖最后由 wdhd 于 2016-9-13 13:43 编辑再请问弱智的问题,我响应图画出来X轴是时间 Y轴是公尺(m),
那我经过FFT转换成频谱图之后,X轴是频率,那Y轴变甚么呢??
我有爬过的文都是Y轴从加速度转过去 变成m/s^2/N
Q1:那是否位移转过去就是m/N呢?
Q2:转换过程是怎么转的 是直接y/x 吗?
Q3: 为什么分母是牛顿N呢?
本帖最后由 wdhd 于 2016-9-13 13:43 编辑
以下是我得到的频谱图
但要放大之后才能清楚观察精确的频率,请问有没有办法再程序上加入点东西,能方便观察频率呢?? 请帮帮忙谢谢。
我画频谱图的code如一楼所示
页:
[1]