matlab中怎样实现多层小波重构?

matlab中怎样实现多层小波重构?,第1张

T=wpdec(y,5,'db40')

%对信号y进行小波包分解,层数为5,得猛扮到的老历T为小波树,plot一下就可看到

a10=wprcoef(T,[1,0])

%a10是对节点[1,0]进行重构后得到侍知搜的信号。貌似没有对那一层重构这一说法吧,只能是对某层的某个节点进行重构。节点的编号你可以从小波树中看出来

这是我的做法,不过用的是小波包分解。不知对你有没有用

DWT最终的CL组构中除了最高层的逼近系数是没有其它层的逼近系数的,而你这个分解刚好是两层,刚好有第二层的逼近系数,所以a2的重构不牵扯细节的问题,其 *** 作就是将CL组构中的第二层小波逼近的系数B1隔点补零然后和小波滤波器组中的低通重构滤波器卷积得到a2。

实际运算中根本态尺就没有Bh的事儿,只有B1参与了运算。倒是得到a1的运算是Bh和B1分别返芦经过高、低通滤波器之后的和。所以DWT不管在哪一层的重构运算中都没有将小波系数置零这一说,如果你置零那么你要得到的是什么呢?B1和Bh得到A1,漏闭带B1和置零的Bh要得到什么呢,这完全不是mallat算法的定义。

当然,如果你使用SWT,由于iswt函数的不完备,其重构是需要置零的,但那已不是你这个问题了。

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


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存