怎么用matlab小波包分解

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

小波图像去噪的方法大概分为3类

1:基于小波变换摸极大值原理

2:基于小波变换系数的相关性

3:基于小波阈值的去噪。

基于小波阈值的去噪方法3个步骤:

1:

计算含噪声图像的小波变换。选择合适的小波基和小波分解层数j,运用matlab

分解算法将含有噪声图像进行j层小波分解,得到相应的小波分解系数。

2:对分解后的高频系数进行阈值量化,对于从1

到j的每一层,选择一个适当的阈值和合适的阈值函数,将分解得到的高频系数进行阈值量化,得到估计小波系数。

3:进行小波逆变化,根据图像小波分解后的第j层,低频

系数(尺度系数)和经过阈值量化处理的各层高频系数(小波系数),运用matlab重构算法进行小波重构,得到去噪后的图像。

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

因为我有一组多个讯号组成的阵列要进行小波分解重构请问MATLAB“dwt”指令如何进行计算列(Column )呢?

请问如何将多个讯号组成的矩阵进行直向(column)的小波分解高低频呢,如何在重构回来呢,恳请帮助谢谢

展开

我来答

共1个回答

showtime_97

来自电脑网络类芝麻团 推荐于 2016-06-03

这问题不是小波的问题,应该是matlab数组 *** 作的问题。

dwt是单层离散小波变换函数,例如一个2列的数据(),对其每列做DWT然后将小波系数的结果存为二维的数组,然后重构每一列。

clear all

x=[1,37,54,92,65,912,93,45,97,3]

s=size(x)

for i=1:s(2)

[cA(:,i),cD(:,i)] = dwt(x(:,i),'db1')%分解

X(:,i) = idwt(cA(:,i),cD(:,i),'db1')%重构

end

需要一点说明,x是9行2列,重构后X会变为10行2列,这是由于DWT使用滤波器的卷积运算造成的边缘效应的问题,还有原始数据的奇偶问题,可能会导致使用不同小波基出现重构数据与原始数据个数不同,但不会差太多,有时重复有时可能缺少,也就几个点的问题,你可以自行甄别一下,人工搞成一样的长度。


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存