小波变换

学习笔记和链接

小波是定义在有限区间上且其平均值为零的一种函数。

【经典】小波与小波包、小波包分解与信号重构、小波包能量特征提取暨小波包分解后实现按频率大小分布重新排列(Matlab 程序详解)

形象易懂讲解算法I——小波变换

小波变换和小波阈值法去噪

小波分解
小波包分解
小波去噪APP使用

整理后供参考

连续小波变换

【小波dwt和cwt使用方法】Matlab版本的dwt和cwt实例
【经典】matlab对函数进行多尺度连续小波变换(CWT)变换
matlab时频分析之连续小波变换cwt
CWT就是选一个中心频率,然后通过尺度变换得到一大堆中心频率,又通过时移得到一系列不同区间的基函数,分别和原始信号的某一段(对应基函数的区间)乘积再积分,产生的极值对应的频率就是原始信号这一区间含有的频率。

离散小波变换

MATLAB小波分解/重构wavedec/waverec函数中L和C的意义

load noisdopp;
s=noisdopp;

%通过db4小波基进行三尺度小波分解
[c,l]=wavedec(s,3,'db4');
a1=appcoef(c,l,'db4',1);
%提取尺度1的低频系数
a2=appcoef(c,l,'db4',2);
%提取尺度2的低频系数
a3=appcoef(c,l,'db4',3);
%提取尺度3的低频系数
figure(3);
subplot(321);plot(a1);title('尺度1的低频系数');
subplot(323);plot(a2);title('尺度2的低频系数');
subplot(325);plot(a3);title('尺度3的低频系数');
d1=detcoef(c,l,1);
d2=detcoef(c,l,2);
d3=detcoef(c,l,3);
figure(3);
subplot(322);plot(d1);title('尺度1的高频系数');
figure(3);subplot(324);plot(d2);title('尺度2的高频系数');
figure(3);subplot(326);plot(d2);title('尺度3的高频系数');

c1=[a3,d3,d2,d1];
s1=waverec(c1,l,'db4');
figure(4); plot(s1); title('重构信号');
err2=norm(s-s1);
%重构后误差为1.09E-09 (2 )高频置零后重建 当然,如果认为高频信息是不需要的时候,我们可以将高频信息置零后重构低频信息。
d3=zeros(1,length(d3));
d2=zeros(1,length(d2));
d1=zeros(1,length(d1));
c1=[a3,d3,d2,d1];
s1=waverec(c1,l,'db4');
figure(5);
subplot(211),plot(s);title('原始信号');
subplot(212),plot(s1),title('重构信号');

在这里插入图片描述
在这里插入图片描述

多分辨分析

4-1 Mallet小波分解重构程序

小波包变换

小波包树分解和合并

load noisdopp;
t=wpdec(noisdopp,3,'dmey'); %对noisdopp采用dmey小波进行3层分解
plot(t);
t2 = wpjoin(t,[3;4;5;6]);%合并小波树[3;4;5;6]下的节点
plot(t2);
t3=wpsplt(t2,3);   %将小波树的节点3进一步分解
plot(t3);

在这里插入图片描述
绘时间频率图

wpviewcf(t,1); %画出时间频率图,如图

在这里插入图片描述

获取最优小波包树

wpt=wpdec(noisdopp,4,'db1','shannon');
bt=besttree(wpt);
plot(bt);

获取小波包系数

cfs=wpcoef(t,[2 2]);          % 获取小波树上某个节点{2,2]的小波包系数
figure;
subplot(211);
plot(x);
title('原始信号');
set(gca,'xlim',[1 1024]);
subplot(212);
plot(cfs);
title('节点(2,2)的系数');
set(gca,'xlim',[1 256]);

小波包重构

获取小波包系数后,可令部分为0,再重新组装回去,重构。
直接重构

clear all;
close all;
load noisdopp;
x=noisdopp;
wpt=wpdec(x,3,'db1','shannon');
y=wprec(wpt);       %重构
figure;
plot(x-y);        %误差曲线,误差非常小
max(abs(x-y))
set(gca,'xlim',[1 1024]);

修改系数后重构(MATLAB小波包的分解与重构(转载)

t=wpdec(noisdopp,3,'db1');
t2 = wpjoin(t,[3;4;5;6]);
cfs3=wpcoef(t,3);
cfs4=wpcoef(t,4);
cfs5=wpcoef(t,5);
cfs6=wpcoef(t,6);
%修改细节系数
cfs4=zeros(1,size(cfs4,2));
cfs5=zeros(1,size(cfs5,2));
cfs6=zeros(1,size(cfs6,2));
% 重构
t3 = write(t2,'cfs',3,cfs3,'cfs',4,cfs4,'cfs',5,cfs5,'cfs',6,cfs6);
wave2=wprec(t3);
figure
subplot(211)
plot(noisdopp)
title('原始信号');
subplot(212)
plot(wave2)
title('重构信号');

在这里插入图片描述

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值