
离散小波的三级分解算法

采样频率为480Hz时三级分解的各级频带
结果如图所示:

定子电枢Pha1电流频谱图

应用db5母小波计算DWT系数(A3、D3、D2、D1)

应用db5母小波各频段能量占比(A3、D3、D2、D1)
参考代码:
fs_1 = 1e4;
fs_2 = 480;
time = resample(time,fs_2,fs_1); %降采样处理,从fs_1降低到fs_2
cur_phA = resample(cur_phA,fs_2,fs_1); %降采样处理
plot(time,cur_phA);
N=length(time);
x=cur_phA-mean(cur_phA);
y=fft(x,N);
y1=abs(y);
ayy=y1/(N/2);
ayy(1)=ayy(1)/2;
f=([1:N]-1)*fs_2/N;
figure(1)
plot(f(1:N/2),ayy(1:N/2));%FFT分析
hold on
set(gca,'fontsize',16);
grid on
xlabel('频率(Hz)','fontsize',16);
ylabel('幅值(r/min)','fontsize',16);
%%
%%%%%%小波分解
[c,l] = wavedec(x,3,'db5');
%%
%重构1~3层细节函数
a3 = wrcoef('a',c,l,'db5',3);
d3 = wrcoef('d',c,l,'db5',3);
d2 = wrcoef('d',c,l,'db5',2);
d1 = wrcoef('d',c,l,'db5',1);%fs_2Hz - fs_2Hz
figure
subplot(4,1,1);
plot(a3)
subplot(4,1,2);
plot(d3)
subplot(4,1,3);
plot(d2)
subplot(4,1,4);
plot(d1)
%%
E_cfs3_1 = norm(a3,2)^2;
E_cfs3_2 = norm(d3,2)^2;
E_cfs3_3 = norm(d2,2)^2;
E_cfs3_4 = norm(d1,2)^2;
E_total = E_cfs3_1+E_cfs3_2+E_cfs3_3+E_cfs3_4;
p_node(1)= 100*E_cfs3_1/E_total; % 求得每个节点的占比
p_node(2)= 100*E_cfs3_2/E_total; % 求得每个节点的占比
p_node(3)= 100*E_cfs3_3/E_total; % 求得每个节点的占比
p_node(4)= 100*E_cfs3_4/E_total; % 求得每个节点的占比
bar([1:4],p_node);
title('各个频段能量所占的比例');
多多少少有点用吧……