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使用滤波器的卷积运算造成的边缘效应的问题,还有原始数据的奇偶问题,可能会导致使用不同小波基出现重构数据与原始数据个数不同,但不会差太多,有时重复有时可能缺少,也就几个点的问题,你可以自行甄别一下,人工搞成一样的长度。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)