声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2300|回复: 8

[小波] 做一组滚动轴承振动数据的小波处理

[复制链接]
发表于 2017-12-8 20:15 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
大家好,想和大家讨论一下用小波变换处理一组滚动轴承振动加速度信号的若干问题。
① 在用小波做滤波的时候,我应该怎样来设定滤波的阀值,用哪个函数来选取阀值,是采用硬阀值呢,还是软阀值。
② 在重构的时候,选取哪些系数进行重构,能得到较好的结果。
现在我把我的程序贴上来,敬请大家指教,为了大家参与进来,我把数据一起发上来。
数据是动车组左侧轴箱的振动加速度值。放在EXCEL表格中。
回复
分享到:

使用道具 举报

 楼主| 发表于 2017-12-8 20:15 | 显示全部楼层
这是程序。
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';[C,L]=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);
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('功率谱');
 楼主| 发表于 2017-12-8 20:46 | 显示全部楼层

做一组滚动轴承振动信号的小波处理,大家来讨论啊


大家好,想和大家讨论一下用小波变换处理一组滚动轴承振动加速度信号的若干问题。
① 在用小波做滤波的时候,我应该怎样来设定滤波的阀值,用哪个函数来选取阀值,是采用硬阀值呢,还是软阀值。
② 在重构的时候,选取哪些@impulse @impulse 系数进行重构,能得到较好的结果。
③我这个处理结果貌似非常不好,能不能指点一下哪里出的问题,哪些参数设置的不合理。
现在我把我的程序贴上来,敬请大家指教,为了大家参与进来,我把数据一起发上来。
数据是动车组左侧轴箱的振动加速度值。放在EXCEL表格中。
 楼主| 发表于 2017-12-8 20:47 | 显示全部楼层
这是我的程序
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';[C,L]=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('小波滤波后功率谱密度');
 楼主| 发表于 2017-12-8 20:48 | 显示全部楼层
这是滤波前的时域波形和直接做FFT的结果!!
FFT,功率谱密度.jpg
原始信号时域图.jpg
 楼主| 发表于 2017-12-8 20:49 | 显示全部楼层
这是我的小波分解,大家觉得选取的小波函数和分解层数是否合适!
小波分解系数.jpg
 楼主| 发表于 2017-12-8 20:51 | 显示全部楼层
这是滤波后的时域波形,和FFT.结果感觉不太对,大家能不能指点我一下哪里出了错误,或者哪个参数设置的不合适[color=Red]
小波滤波后的FFT.jpg
 楼主| 发表于 2017-12-8 20:56 | 显示全部楼层
这是原始数据,大家有兴趣的可以做做

0287-8-1-轴箱数据.xlsx

345.87 KB, 下载次数: 18

发表于 2017-12-9 10:48 | 显示全部楼层
不懂,但是还是支持楼主
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-12-28 14:11 , Processed in 0.093622 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表