数据在附件中,采集的是发动机在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
(17.43 KB, 下载次数: 22)
2015-2-6 10:33 上传
结果图形
11.jpg
(17.43 KB, 下载次数: 10)
2015-2-6 10:33 上传
2015-2-6 10:32 上传
点击文件名下载附件
829.17 KB, 下载次数: 423
数据文件