daihong 发表于 2015-2-20 23:44

基于小波分析的轴承故障频率检测matlab程序

本帖最后由 牛小贱 于 2015-3-4 11:52 编辑

%外圈故障特征频率:107.67Hz
clear
clc
load 156.mat
sig=X156_DE_time;fs=12000;
N=12000;Ts=1/fs;
sig=sig(1:N);
t=0:Ts:(N-1)*Ts;
%归一化
%sig=(sig-mean(sig))/std(sig,1);
plot(t,sig);title('外圈故障轴承的归一化时域波形');grid on;
xlabel('时间 t/s');
ylabel('幅值 A/V');
%%%%%%%%%%%%%
%功率谱
nfft=16384;
y=abs(psd(sig,nfft));
figure(2)
plot((0:nfft/2-1)/nfft*fs,y(1:nfft/2));
xlabel('频率 f/Hz');
ylabel('归一化功率谱 S/V');
%db10小波进行4层分解
%一维小波分解
= wavedec(sig,4,'db10');
%重构第1-4层细节信号
d4 = wrcoef('d',c,l,'db10',4);
d3 = wrcoef('d',c,l,'db10',3);
d2 = wrcoef('d',c,l,'db10',2);
d1 = wrcoef('d',c,l,'db10',1);
%显示细节信号
figure;
subplot(4,1,1);
plot(d4,'LineWidth',2);
ylabel('d4');
subplot(4,1,2);
plot(d3,'LineWidth',2);
ylabel('d3');
subplot(4,1,3);
plot(d2,'LineWidth',2);
ylabel('d2');
subplot(4,1,4);
plot(t,d1,'LineWidth',2);
ylabel('d1');
xlabel('样本序号 n/个');
%第1层细节信号的包络谱
y=hilbert(d1);
ydata=abs(y);
ydata=ydata-mean(ydata);
nfft=16384;
p=abs(fft(ydata,nfft));
figure;
plot((0:nfft/2-1)/nfft*fs,p(1:nfft/2));
xlabel('频率 f/Hz');
ylabel('功率谱 P/W');
%%%%%%故障检测%%%%%%
P=p(1:nfft/2);
=max(P)
disp('故障特征频率为:');
f1=f1*fs/nfft-1




页: [1]
查看完整版本: 基于小波分析的轴承故障频率检测matlab程序