这是我的程序
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('小波滤波后功率谱密度'); |