Arick0420 发表于 2008-10-30 20:58

程序用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

ChaChing 发表于 2008-10-30 22:53

论坛上非常多频谱图的程序
搜一搜, 并试着去学习它

songzy41 发表于 2008-10-31 06:20

图上显示的频率是圆频率,在程序中没有给出采样频率,对应不了实际频率。

Arick0420 发表于 2008-10-31 13:24

本帖最后由 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) 圆频率
  功率频率
  振动频率...等等频率我还是一头雾水
  请问我对到的是属于哪一类的频率呢?

songzy41 发表于 2008-10-31 14:24

本帖最后由 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

Arick0420 发表于 2008-11-4 19:34

回复 5楼 songzy41 的帖子

原来还有这层意义,感谢songzy41   我又长知识了!!!

Arick0420 发表于 2008-11-4 21:54

回复 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呢?

Arick0420 发表于 2008-11-4 22:01

本帖最后由 wdhd 于 2016-9-13 13:43 编辑

  以下是我得到的频谱图
  但要放大之后才能清楚观察精确的频率,请问有没有办法再程序上加入点东西,能方便观察频率呢?? 请帮帮忙谢谢。
  我画频谱图的code如一楼所示
页: [1]
查看完整版本: 程序用FFT画频谱图问题