|  | 
 
| 
本帖最后由 Cappuccinochou 于 2015-12-25 09:47 编辑
x
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。您需要 登录 才可以下载或查看,没有账号?我要加入 
  
 复制代码
%1.西储大学滚动轴承数据的“外圈故障小波包络分析”
%2.用wavedec进行一维小波分解,再由wrcoef重构细节信号,再由细节信号的包络谱得到故障频谱
% 外环故障特征频率  3.5848*1797/60=107.36476HZ
clear all
close all
load OR007@12_0_drive;   %ball fault(drive)
data=X156_DE_time; 
N=4096;                %采样点数
fs=12000;              %采样频率
t=1:N;
t=t/fs;
xdata=data(1:4096);
xdata_outer=(xdata-mean(xdata)/std(xdata,1));
s = xdata_outer; 
% % 时域波形
figure(1)
subplot(211)
plot(t,s)
title('采集数据波形')
xlabel('时间 t/s');
%%一维小波分解
[c,l] = wavedec(s,4,'db1');    %db1小波进行4层分解
subplot(212);
plot(t,c);
title('小波分解结构')
xlabel('低频系数和第4、3、2、1层的高频系数');
% 提取小波系数
ca4=appcoef(c,l,'db1',4);    %提取第4层低频系数
[cd1,cd2,cd3,cd4] = detcoef(c,l,[1 2 3 4]);  %提取第3、2、1的高频系数
figure(2)      %显示小波分解后的信号
subplot(511); plot(ca4); ylabel('ca4');title('第4层的低频系数');
subplot(512); plot(cd4); ylabel('cd4');title('第4层的高频系数');
subplot(513); plot(cd3); ylabel('cd3');title('第3层的高频系数');
subplot(514); plot(cd2); ylabel('cd2');title('第2层的高频系数');
subplot(515); plot(cd1); ylabel('cd1');title('第1层的高频系数');
%系数重构
a4=wrcoef('a',c,l,'db1',4)
d4=wrcoef('d',c,l,'db1',4);
d3=wrcoef('d',c,l,'db1',3);
d2=wrcoef('d',c,l,'db1',2);
d1=wrcoef('d',c,l,'db1',1);
figure(3)     %显示细节信号
subplot(5,1,1);plot(t,a4,'LineWidth',2);ylabel('a4');
subplot(5,1,2);plot(t,d4,'LineWidth',2);ylabel('d4');
subplot(5,1,3);plot(t,d3,'LineWidth',2);ylabel('d3');
subplot(5,1,4);plot(t,d2,'LineWidth',2);ylabel('d2');
subplot(5,1,5);plot(t,d1,'LineWidth',2);ylabel('d1');
xlabel('时间 t/s');
%信号的包络谱
nfft = 2^nextpow2(N);
%第4层低频信号a4包络
y4=hilbert(a4);
ydata4=abs(y4);
y4=y4-mean(y4);
y=fft(ydata4,nfft)/nfft;
f=fs/2*linspace(0,1,nfft/2+1);
figure(4)
subplot(511)
plot(f,2*abs(y(1:nfft/2+1)));  axis([0,1000,0,0.015]);
title('第4层低频系数a4的包络谱')
%第4层高频信号d4包络
y3=hilbert(d4);
ydata3=abs(y3);
y3=y3-mean(y3);
y=fft(ydata3,nfft)/N;
f=fs/2*linspace(0,1,nfft/2+1);
subplot(512)
plot(f,2*abs(y(1:nfft/2+1)));  axis([0,1000,0,0.015]);
title('第4层高频系数d4的包络谱')
%第3层细节信号的包络谱
y2=hilbert(d3);  ydata2=abs(y2);  y2=y2-mean(y2);  y=fft(ydata2,nfft)/N; f=fs/2*linspace(0,1,nfft/2+1);
subplot(513)
plot(f,2*abs(y(1:nfft/2+1)));  axis([0,1000,0,0.015]);
title('第3层高频系数d3的包络谱')
%第2层细节信号的包络谱
y1=hilbert(d2);  ydata1=abs(y1);  y1=y1-mean(y1);  y=fft(ydata1,nfft)/N; f=fs/2*linspace(0,1,nfft/2+1);
subplot(514)
plot(f,2*abs(y(1:nfft/2+1)));  axis([0,1000,0,0.1]);
title('第2层高频系数d2的包络谱')
%第1层细节信号的包络谱
y=hilbert(d1);  ydata=abs(y);  y=y-mean(y);  y=fft(ydata,nfft)/N;  f=fs/2*linspace(0,1,nfft/2+1);  
subplot(515)
plot(f,2*abs(y(1:nfft/2+1)));  axis([0,1000,0,0.1]);
title('第1层高频系数d1的包络谱')
xlabel('频率')
说明:上述代码是利用西储大学的轴承振动检测数据,利用小波分解然后对低频信号、高频信号包络来检测外环故障。
 问题:采样频率为12000,进行4层小波分解,那么重构后各低频、高频系数对应的频段应该为 a4 0-375   d4 375-750  d3 750-1500  d2 1500-3000 d1 3000-6000,仿真图显示d1的包络谱中出现了很明显的特征频率,a4的包络谱却看不到,结果如图:
 [
 重构系数的包络谱   
 初学小波,还请各位了解的帮忙解答,多谢各位。
 所用数据:
  OR007@12_0_drive.zip
(996.33 KB, 下载次数: 1) 
 
 | 
 |