声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

楼主: unknowno

[综合讨论] 帮忙调试一个振动信号频域积分的程序!

  [复制链接]
发表于 2012-8-2 20:45 | 显示全部楼层
我也在做 好好把思路理一下
回复 支持 反对
分享到:

使用道具 举报

发表于 2012-8-9 09:58 | 显示全部楼层
学习学习,受益匪浅
发表于 2012-8-13 14:46 | 显示全部楼层
我想知道为什么最后是取逆变换后的实部作为结果?
发表于 2012-8-15 22:43 | 显示全部楼层
回复 6 # songzy41 的帖子

原程序中“%消除指定负频带外的频率成分
a(nfft-na+1:nfft-ni+1)=y(nfft-na+1:nfft-ni+1);”
应为a(nfft-na+2:nfft-ni+2)=y(nfft-na+2:nfft-ni+2),原因是为了使ifft后的数值为实数,则a应该为共轭对称,与a(2)对称的为a(nfft),同理,与a(na)共轭对称的应为a(nfft-na+2)

点评

赞成: 3.0
赞成: 3
  发表于 2014-3-28 10:09
回复 支持 1 反对 0

使用道具 举报

发表于 2012-8-30 11:11 | 显示全部楼层
回复 9 # songzy41 的帖子

频域积分 取虚部 乘以1/jw 因子 此处w是指信号中心频率吗?此外, 在程序中没有明白具体哪一处是表示乘以1/jw 因子。  由于在学习,会有一些疑问,望不惜赐教   
发表于 2012-9-10 11:24 | 显示全部楼层
回复 11 # zzw1983107 的帖子

请问这个问题你懂了吗  我也求解
发表于 2012-9-10 11:25 | 显示全部楼层
回复 13 # zhaoch 的帖子

请问该问题你解决了吗 同求解
发表于 2012-9-12 10:13 | 显示全部楼层
回复 2 # VibrationMaster 的帖子

您好 我最近也在调试这个程序  出现几个问题很是不解:
1、对于2次微分或积分后的波形中间基本符合要求,但首尾都有些失真,如位移2次微分成加速度信号波形,这个是什么原因,该做何处理

2、微分或积分程序的开始都有最小截止频率和最大截止频率 这个该怎么设置
3、对于微分程序,我把微分次数设为2时可以运行,显示波形,但设为1了,就显示
      ??? Subscript indices must either be real positive integers or logicals
      这个很是不解
  这些问题凭我微薄的学识不能弄明白,愿有时间了能赐教,谢谢您!

位移2次微分成加速度

位移2次微分成加速度
发表于 2012-9-14 08:44 | 显示全部楼层
发表于 2012-9-21 17:01 | 显示全部楼层

RE: 帮忙调试一个振动信号频域积分的程序!

新手,最近在做铁路路基振动检测这一块,想补这方面的知识,各位大侠推荐几本教程看看!谢谢
发表于 2012-11-11 19:59 | 显示全部楼层
十分有用,值得学习。

补充内容 (2012-11-25 18:18):
针对chengying8427 提出的问题可以通过以下方法解决:
%进行一次微分的相位变换
v21=-imag(v1);
v22=real(v1);
v2=v21+v22*i;

补充内容 (2012-11-25 18:19):
解决方法针对问题3:一次微分程序报错

点评

赞成: 3.0
赞成: 3
  发表于 2014-3-28 10:10
发表于 2013-1-16 21:38 | 显示全部楼层
真的是好贴啊!
发表于 2013-1-18 17:31 | 显示全部楼层
本帖最后由 牛小贱 于 2014-3-28 10:11 编辑

我用一个三角函数信号来学习这个程序。
  1. t=(0:0.001:31.416);
  2. dis=sin(10*pi*t);
  3. vel=10*pi*cos(10*pi*t);
  4. acc=-100*pi*pi*sin(10*pi*t);
  5. 用acc一次积分求到的v与vel比较,一次积分求到的d与dis比较。已经在程序中进行了滤波,但是结果还是不是很好。不知道是什么原因。求助如何解决。
  6. fni=acc;
  7. i=(-1)^0.5;
  8. sf=1000;                          
  9. fmin=0.5;                        
  10. fmax=20;                        
  11. c=1;                             
  12. it=1;                             
  13. x=fni';                             
  14. n=length(x);

  15. t=0:1/sf:(n-1)/sf;                 
  16. nfft=2^nextpow2(n);                 
  17. y=fft(x,nfft);                     
  18. df=sf/nfft;                        
  19. ni=round(fmin/df+1);               
  20. na=round(fmax/df+1);               
  21. dw=2*pi*df;                        
  22. w1=0:dw:2*pi*0.5*sf;           
  23. w2=-2*pi*(0.5*sf-df):dw:-dw;         
  24. w=[w1,w2];                          
  25. w=w.^it;                           
  26. a=zeros(1,nfft);
  27. a(2:nfft-1) =y(2:nfft-1)./w(2:nfft-1);        
  28. if it == 2
  29.    y=-a;                              
  30. else
  31.    a1=imag(a); a2=real(a); y=a1-a2*i;
  32. end
  33. a=zeros(1,nfft);
  34. a(ni:na)=y(ni:na);                     

  35. a(nfft-na+2:nfft-ni+2)=y(nfft-na+2:nfft-ni+2);            

  36. y=ifft(a,nfft);
  37. y=real(y(1:n))*c;                     
  38. v=y;
  39. plot(t,vel,t,v);
复制代码
尤其是当把it改成2之后计算的位移信号,很是有问题。

displacement and velocity.PNG
发表于 2013-2-22 01:52 | 显示全部楼层
见到 songzy41 教授关于王济频域积分代码错误的讲解,受益匪浅,谢谢!
发表于 2013-4-2 20:07 | 显示全部楼层
linyinxiaojing 发表于 2013-1-18 17:31
我用一个三角函数信号来学习这个程序。
t=(0:0.001:31.416)
dis=sin(10*pi*t);

我的也是这样,好像fmin=0.5;%最小截止频率 fmax=80; %最大截止频率对结果影响很大,特别是fmin设置不同的值时,结果变化很大,不知道你解决了没/
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-3-28 19:08 , Processed in 0.224476 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表