[已答复] 请大家帮忙调试一下程序,振动加速度转换为位移。谢谢!

[复制链接]
卡卡卡帅 发表于 2015-2-6 10:34:31
数据在附件中,采集的是发动机在1900rpm时的某点振动信号,根据程序运行出来的结果不大对,请大家帮我看看,谢谢!
程序如下:

clear;
load top6
C=C(1:10240);
fni=C;
i=(-1)^0.5;
sf=10240;                          
fmin=1;                        
fmax=5120;                        
c=1;                             
it=2;                             
x=fni';                             
n=length(x);

t=0:1/sf:(n-1)/sf;                 
nfft=2^nextpow2(n);                 
y=fft(x,nfft);                     
df=sf/nfft;                        
ni=round(fmin/df+1);               
na=round(fmax/df+1);               
dw=2*pi*df;                        
w1=0:dw:2*pi*0.5*sf;           
w2=-2*pi*(0.5*sf-df):dw:-dw;         
w=[w1,w2];                          
w=w.^it;                           
a=zeros(1,nfft);
a(2:nfft-1)=y(2:nfft-1)./w(2:nfft-1);        
if it == 2
   y=-a;                              
else
   a1=imag(a); a2=real(a); y=a1-a2*i;
end
a=zeros(1,nfft);
a(ni:na)=y(ni:na);                     

a(nfft-na+1:nfft-ni+1)=y(nfft-na+1:nfft-ni+1);            

y=ifft(a,nfft);
y=real(y(1:n))*c;
a=y;
subplot(2,1,1);
plot(t,a);
xlabel('时间(s)');
ylabel('位移(m)');


结果图形

结果图形
11.jpg

top6.mat

829.17 KB, 下载次数: 425

数据文件

3 条回复


a1522174644 发表于 2015-2-6 15:35:05
LZ这程序想达到什么目的

mzj315 发表于 2015-2-12 11:20:34
有趋势项了,俩方法,再写个消除趋势项的程序,或者提高一下你的下截至频率(不知道是不是这么叫的)。
clear;
load top6
C=C(1:10240);
fni=C;
i=(-1)^0.5;
sf=10240;                          
fmin=1;                        
fmax=5120;                        
c=1;                             
it=2;                             
x=fni';                             
n=length(x);

zx2240 发表于 2015-6-27 11:11:09
为什么设定c=1?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

相关帖子
相关文章
热门教程
站长推荐
快速回复 返回顶部 返回列表