声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

楼主: unknowno

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

  [复制链接]
发表于 2014-6-18 15:37 | 显示全部楼层
chybeyond 发表于 2014-6-17 23:19
〖新手必读〗之如何获取积分,提高权限(新)http://forum.vibunion.com/thread-47704-4-1.html

晕,这个点开就是这个帖子的内容啊

点评

http://forum.chinavib.com/thread-132101-1-1.html 〖新手必读〗之如何获取积分,提高权限(新)  发表于 2015-2-6 21:12
回复 支持 反对
分享到:

使用道具 举报

发表于 2014-7-17 15:56 | 显示全部楼层
本帖最后由 牛小贱 于 2015-3-8 16:14 编辑

我改了圆频率向量之后,用标准的正弦信号加上一个常数项,得出的位移有上升的趋势,下面是我的程序:
  1. function PY1(xx)
  2. %频域积分法求速度及位移
  3. fs=1000;                     %采样频率
  4. % ff=20;
  5. % N=1000;
  6. % tt=(0:N-1)/fs;
  7. % xx=3*sin(2*pi*ff*tt)+0.02;
  8. fmin=0.2;                    %最小截止频率
  9. fmax=500;                    %最大截止频率
  10. c=9.88e+003;                 %单位变换系数,位移单位为mm
  11. it=2;                        %积分次数

  12. n=length(xx);
  13. t=0:1./fs:(n-1)./fs;         %建立时间向量
  14. nfft=2^nextpow2(n);          %FFT变换长度,大于并最接近n的2的幂次方为FFT的长度
  15. y=fft(xx,nfft);               %FFT变换

  16. subplot(3,1,2);              %绘制积分前的时程曲线图形
  17. plot(t,xx,'k-');
  18. xlabel('时间(s)');
  19. ylabel('加速度幅值(g)');
  20. title('图2 加速度时程曲线图');
  21. grid on;

  22. %=========================================================================%
  23. %%%%%%%%%%%%%%%%%%%%%   绘制频谱图,计算机床振动频率   %%%%%%%%%%%%%%%%%%%%
  24. %=========================================================================%

  25. P=y.*conj(y)/nfft;           %求取功率密度,其中conj(y)是求y的共轭
  26. f=fs*(0:(nfft/2-1))/nfft;    %设定频率变化范围
  27. subplot(3,1,1);
  28. plot(f,P(1:nfft/2),'b-');    %绘制频谱图
  29. xlabel('频率(Hz)');
  30. ylabel('功率密度');
  31. title('图1 功率密度频谱图');
  32. grid on;

  33. %=========================================================================%
  34. %%%%%%%%%%%%%%%%%%%%%%      进行积分的频域变换       %%%%%%%%%%%%%%%%%%%%%
  35. %=========================================================================%

  36. df=fs/nfft;                  %计算频率间隔(Hz/s)
  37. ni=round(fmin/df+1);         %计算指定频带对应频率数组的下标
  38. na=round(fmax/df+1);
  39. dw=2*pi*df;                  %计算圆频率间隔(rad/s)
  40. w1=0:dw:2*pi*0.5*fs;         %建立正的离散圆频率向量
  41. w2=-2*pi*(0.5*fs-df):dw:-dw; %建立负的离散圆频率向量
  42. % w1=0:dw:2*pi*(0.5*fs-df);
  43. % w2=2*pi*(0.5*fs-df):-dw:0;
  44. w=[w1,w2];                   %将正负圆频率向量组合成一个向量  
  45. w=w.^it;                     %以积分次数为指数,建立圆频率变量向量
  46. a=zeros(1,nfft);             %进行积分的频域变换
  47. a(2:(nfft-1))=y(2:(nfft-1))./w(2:(nfft-1));
  48. % if it==2
  49. %     y=-a;                    %进行二次积分的相位变换,二次积分因为是-w^2,所以有y=-a
  50. % else                         %进行一次积分的相位变换,一次积分时考虑到jw,把实部和虚部对换
  51. % a1=imag(a);
  52. % a2=real(a);
  53. % y=a1-a2*i;
  54. % end
  55. y=-a;                        %进行二次积分的相位变换
  56. a=zeros(1,nfft);
  57. a(ni:na)=y(ni:na);           %消除指定正频带外的频率成分
  58. a(nfft-na+1:nfft-ni+1)=y(nfft-na+1:nfft-ni+1); %消除指定负频带外的频率成分
  59. y=ifft(a,nfft);              %IFFT变换
  60. y=real(y(1:n))*c;            %取逆变换的实部n个元素并乘以单位变换系数为积分结果

  61. %%
  62. % subplot(3,1,2);              %绘制积分前的时程曲线图形
  63. % plot(t,xx,'k-');
  64. % xlabel('时间(s)');
  65. % ylabel('加速度幅值(g)');
  66. % title('图2 加速度时程曲线图');
  67. % grid on;

  68. subplot(3,1,3);              %绘制积分后的时程曲线图形
  69. plot(t,y,'r-');
  70. xlabel('时间(s)');
  71. ylabel('位移幅值(mm)');
  72. title('图3 位移时程曲线图');
  73. grid on;
  74. end
复制代码
求指导!

点评

注意使用“编辑”功能、“<>”代码功能~  发表于 2015-3-8 16:15
发表于 2014-7-17 16:34 | 显示全部楼层
大侠你好,加速度频域积分求位移我有点搞不定,想请你帮帮忙,可以吗?
http://forum.vibunion.com/thread-132936-1-1.html
发表于 2014-7-24 09:54 | 显示全部楼层
往往很简单的东西,编程实现都比较难,主要是各种影响因素
发表于 2014-8-5 17:41 | 显示全部楼层
看看附件里的东西
发表于 2014-8-6 09:44 | 显示全部楼层
为什么我看不到附件 好悲剧啊   

点评

〖新手必读〗之如何获取积分,提高权限(新)http://forum.chinavib.com/thread-47704-4-1.html  发表于 2014-8-9 12:29
发表于 2015-2-4 17:02 | 显示全部楼层
songzy41 发表于 2007-7-2 17:36
楼主的程序是取自王济和胡晓编的 “MATLAB在振动信号处理中的应用”一书的程序5.5。细看一下程序,发现在圆 ...

您好,我是使用的加速度信号是离散的通过adams仿真出来的信号,从时域曲线看上去是有很多毛刺,没什么规律,把它用频域或时域积分后得到的加速度信号就变得比较光滑,时域积分可能是滤掉了一些高频成分,但是频域积分就不知道怎么回事了
发表于 2015-2-6 20:32 | 显示全部楼层
目测这是王济的那个程序
发表于 2015-3-8 10:16 | 显示全部楼层
本帖最后由 star_cheney 于 2015-3-8 11:05 编辑

还是有点小问题。
发表于 2015-3-8 16:15 | 显示全部楼层
star_cheney 发表于 2015-3-8 10:16
还是有点小问题。

请将具体问题及错误提示上传~
发表于 2015-5-28 11:21 | 显示全部楼层
新手看不到程序..
发表于 2015-5-28 11:44 | 显示全部楼层
有大牛能把加速度到速度,到位移的程序能发出来吗,新手看不到附件
发表于 2015-6-19 16:12 | 显示全部楼层
songzy41 发表于 2007-7-2 18:44
在上程序中把it=2,便得到二次积分的结果,与楼主#5层的结果相符(见下图),不知楼主怎么认为“不OK”?
...

二次积分时是-w^2,所以逆完FFT后取实部,应该是y=real(y(1:n))*c,那一次积分求速度是jw,逆完后取虚,应该是y=imag(y(1:n))*c。请问这对不对?
发表于 2015-11-13 16:32 | 显示全部楼层
学习了,
发表于 2015-11-22 10:46 | 显示全部楼层
我来试试
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-11-17 09:36 , Processed in 0.076606 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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