做一组滚动轴承振动数据的小波处理
大家好,想和大家讨论一下用小波变换处理一组滚动轴承振动加速度信号的若干问题。① 在用小波做滤波的时候,我应该怎样来设定滤波的阀值,用哪个函数来选取阀值,是采用硬阀值呢,还是软阀值。
② 在重构的时候,选取哪些系数进行重构,能得到较好的结果。
现在我把我的程序贴上来,敬请大家指教,为了大家参与进来,我把数据一起发上来。
数据是动车组左侧轴箱的振动加速度值。放在EXCEL表格中。 这是程序。
clc;clear all;
data=xlsread('C:\Users\Administrator\Desktop\轴承振动数据\0287-8-1-轴箱数据.xlsx','左侧轴箱数据');
x=data(1:8192,1);fs=2.56*8000;
n=length(x);
figure(1);plot(x);xlabel('样点');ylabel('幅值');title('原始信号')
s=6;wavef='db3';=wavedec(x,s,wavef);
strA='近似系数';strD='细节系数';
figure(2);
%各层近似信号与细节信号
for i=1:s
A=appcoef(C,L,wavef,i);
subplot(6,2,2*i-1);plot(A);title(['第' num2str(i) '级' strA ]);xlabel('样点');ylabel('幅值'); axis tight;
D=detcoef(C,L,i);
subplot(6,2,2*i);plot(D);title(['第' num2str(i) '级' strD ]);xlabel('样点');ylabel('幅值');axis tight;
end
%去噪
=ddencmp('den','wv',x);
xd=wdencmp('gbl',x,'db3',2,thr,sorh,keepapp);
figure(3);plot(xd);%去噪后的信号
nfft= 2^nextpow2(length(xd));%fft变换的数据长度
ff=fs*(0:nfft/2-1)/nfft;%频率序列
y=fft(xd,nfft);mag=abs(y);%fft
figure(4);
subplot(211);plot(ff,mag(1:nfft/2)*2/nfft); ylabel('幅值');xlabel('频率/Hz');title('FFT频谱');
Pxx=(abs(y.^2)/nfft)*2;%'直接法'功率谱
subplot(212);plot(ff,Pxx(1:nfft/2));ylabel('幅值'); xlabel('频率/Hz');title('功率谱');
做一组滚动轴承振动信号的小波处理,大家来讨论啊
大家好,想和大家讨论一下用小波变换处理一组滚动轴承振动加速度信号的若干问题。
① 在用小波做滤波的时候,我应该怎样来设定滤波的阀值,用哪个函数来选取阀值,是采用硬阀值呢,还是软阀值。
② 在重构的时候,选取哪些@impulse @impulse 系数进行重构,能得到较好的结果。
③我这个处理结果貌似非常不好,能不能指点一下哪里出的问题,哪些参数设置的不合理。
现在我把我的程序贴上来,敬请大家指教,为了大家参与进来,我把数据一起发上来。
数据是动车组左侧轴箱的振动加速度值。放在EXCEL表格中。 这是我的程序
clc;clear all;
data=xlsread('C:\Users\Administrator\Desktop\轴承振动数据\0287-8-1-轴箱数据.xlsx','左侧轴箱数据');
x=data(1:8192,1);
n=length(x);
fs=2.56*8000;
dt=1/fs;t=1/fs:1/fs:n/fs;%时间序列
x=x-mean(x);%去均值处理
figure(1);plot(t,x);xlabel('时间(s)');ylabel('幅值');title('原始信号')
%小波分解,选用db3小波,6层分解
s=6;wavef='db3';=wavedec(x,s,wavef);
strA='近似系数';strD='细节系数';
figure(2);
%各层近似信号与细节信号
for i=1:s
A=appcoef(C,L,wavef,i);%提取低频系数
subplot(6,2,2*i-1);plot(A);title(['第' num2str(i) '级' strA ]);xlabel('样点');ylabel('幅值'); axis tight;
D=detcoef(C,L,i);%提取高频系数
subplot(6,2,2*i);plot(D);title(['第' num2str(i) '级' strD ]);xlabel('样点');ylabel('幅值');axis tight;
end
%去噪处理
[thr,sorh,keepapp]=ddencmp('den','wv',x);
xd=wdencmp('gbl',x,'db3',2,thr,sorh,keepapp);
xd=xd-mean(xd);%去均值
figure(3);plot(t,xd);xlabel('时间(s)');ylabel('幅值');title('滤波后振动信号')%去噪后的信号
nfft= 2^nextpow2(length(xd));%fft变换的数据长度
ff=fs*(0:nfft/2-1)/nfft;%频率序列
y=fft(xd,nfft);mag=abs(y);%fft
figure(4);
subplot(211);plot(ff,mag(1:nfft/2)*2/nfft); ylabel('幅值');xlabel('频率/Hz');title('小波滤波后FFT频谱');
Pxx=(abs(y.^2)/nfft/fs)*2;%'直接法'功率谱密度
subplot(212);plot(ff,Pxx(1:nfft/2));ylabel('幅值'); xlabel('频率/Hz');title('小波滤波后功率谱密度'); 这是滤波前的时域波形和直接做FFT的结果!! 这是我的小波分解,大家觉得选取的小波函数和分解层数是否合适! 这是滤波后的时域波形,和FFT.结果感觉不太对,大家能不能指点我一下哪里出了错误,或者哪个参数设置的不合适]。 这是原始数据,大家有兴趣的可以做做 不懂,但是还是支持楼主
页:
[1]