怎么用matlab小波包分解

怎么用matlab小波包分解,第1张

第一行:将wave 用 meyr小波进行3层小波包分解,获得一个小波包树 t

第二行:将小波包树的第二行的四个节点收起来,也就是让第二行的节点变为树的最底层节点。因为第一行中小 波包树的节点个数是 第一层2个,第二层4个,第三层8个。现在将t2就是将第三层的节点再聚合回第二 层。

第三行:读取第二层四个节点系数的size

第四~七行:将所有四个节点的小波包系数变为0

第八行:将四个节点的系数重组到t3小波树中。

第九行:对t3小波树进行重构,获得信号wave2

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

%

装载leleccum信号

load

leleccum

s

=

leleccum(1:3920)

%

用db1小波函数对信号进行三尺度小波分解

[C,L]=wavedec(s,2,'db1')

figure(1)

plot(s)

title('leleccum原始信号')

%

提取尺度1的低频系数

cA1

=

appcoef(C,L,'db1',1)

%用小波分解框架[C.L]计算1层低频系数的近似值,小波基为db1

%

提取尺度2的低频系数

cA2

=

appcoef(C,L,'db1',2)

figure(2)

subplot(2,1,1)

plot(cA1)

title('尺度1的低频系数')

subplot(2,1,2)

plot(cA2)

title('尺度2的低频系数')

%

提取尺度1的高频系数

cD1

=

detcoef(C,L,1)

%用小波分解框架[C.L]计算1层高频系数的近似值,小波基为db1

%

提取尺度2的高频系数

cD2

=

detcoef(C,L,2)

figure(3)

subplot(2,1,1)

plot(cD1)

title('尺度1的高频系数')

subplot(2,1,2)

plot(cD2)

title('尺度2的高频系数')


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7796389.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-10
下一篇 2023-04-10

发表评论

登录后才能评论

评论列表(0条)

保存