急求用matlab编小波包3级分解及输出其系数的程序,那位高手帮助我一下,将不胜感激,先谢谢啦!

2024-12-27 21:58:12
推荐回答(1个)
回答1:

load ir; %将信号装入MATLAB工作环境
s=X106_BA_time(1:1000); %取采样信号的前1~1000个采样点
is=length(s); %计算采样序列长度
subplot(321);plot(s);title('原始信号');%画出原始信号波形
xlabel('样本序列号');
ylabel('幅值A');
wpt=wpdec(s,3,'db1','shannon');% 用db1小波包对信号x3层分解,用shannon熵作为熵标准
plot(wpt);%绘制小波包树
N=allnodes(wpt);% 计算小波包分解树的结点
%提取各节点的小波包系数
for i=1:length(N)
X=wpcoef(wpt,i-1);
subplot(floor((length(N)+1)/2),2,i);plot(X);
title(['节点',num2str(i) '的小波包系数']);
end
figure;
%各节点小波包重构系数
for i=1:length(N)
rcfs=wprcoef(wpt,i-1);
subplot(floor((length(N)+1)/2),2,i);plot(rcfs);
title(['重构节点',num2str(i) '小波包系数']);
end