【小波理论及其应用】
小波理论结束及其应用
- 1. 傅里叶变换和短时傅里叶变换的局限性
- 2. 小波理论简介--小波变换
- 2.1 连续小波变换(CWT)
- 2.2 离散小波变换(DWT)
- 3. 小波滤波器组理论
- 4. 小波应用
- 5. MATLAB中的小波
- 5.1 举例1---分解
- 5.2 举例2---分解细节重构
- 5.3 举例3---分解重构
1. 傅里叶变换和短时傅里叶变换的局限性
- 将信号f(T)分解为无穷多个正弦波/余弦波(谐波);
- 没有办法准确地识别事件发生的地点;
- 不能很好地处理不连续的、突发的信号,例如视频,音乐等。
平稳信号
频率含量在时间上不变的信号
所有频率分量在任何时候都存在非平稳信号
频率分量随时间的变化
一个例子:“Chirp信号”
频率分量是什么时候发生的?“傅里叶变换”看不出来!
短时傅里叶痛点:
为了克服傅里叶变换无法实现时域局部化,以及 STFT存在固定分辨率的缺陷,希望窗口函数的形状可以改变,即在低频部分具有较高的频率分辨率和较低的时间分辨率,而在高频部分具有较高的时间分辨率和较低的频率分辨率,由此引出下节小波变换。
2. 小波理论简介–小波变换
小波变换由法国地球物理学家 Morlet于 20世纪 80年代初在分析地球物理信号时提出。小波变换优于傅里叶变换的地方:在时域和频域同时具有良好的局部化性质。而且由于对高频成分采用逐渐精细的时域或空域采样步长,从而可以聚焦到对象的任意细节,故被人们誉
为数字显微镜。
2.1 连续小波变换(CWT)
假设母函数为
,定义伸缩、平移变量为 , a,b ∈R且 0>a ,则簇函数为
若信号为
,则 x(t)的小波变换为
- 在小波变换中,在每一个可能的尺度上计算小波系数是一项相当大的工作,它产生了大量的数据。
- 如果尺度(A)和位置(B)被选择为离散的,那么分析就会容易得多,不会产生大量的数据。
- 这种选择离散值展开(A)和平移(B)参数的思想在
冗余小波变换
小波正交基/多解析度分析
2.2 离散小波变换(DWT)
即在 (a ,b ) 离散网格上作小波变换,称为离散小波变换 ( DWT)。
3. 小波滤波器组理论
小波分类
小波适用范围
—系列用于研究高维空间特征的方向性小波
4. 小波应用
小波在压缩,消噪,不连续检测,特征增强都有运用。
5. MATLAB中的小波
小波分解与重构基本函数
[c,l]=wavedec(s,N,'wname') 对信号s进行一维N尺度分解x=waverec(c,l,'wname') 用指定的小波函数'wname'对小波分解结构(c,l)进行多尺度一维小波重构A=appcoef(c,l,'wname',N) 计算尺度N时的低频系数。D=detcoef(c,l,N) 提取N尺度的高频系数。[nc,nl,ca]=upwlev(c,l,'wname')对小波分解结构[c,l]进行单尺度重构,返回上一尺度的分解结构并提 取最后一尺度的低频分量。x=wrcoef('type',c,l,'wname',N)对一维信号的分解结构[c,l]用指定的小波函数进行重构,当'type=a' 时对信号的低频部分进行重构,此时N可以为0.当'type=d'时,对信号 的高频部分进行重构,此时N为正整数。y=upcoef('O',x,'wname',N) 用于一维小波分析,计算向量x向上N步的重构小波系数,N为正整数。如 果O=a,对低频系数进行重构;如果O=d,对高频系数进行重构。[thr,sorh,keepapp]=ddencmp('den','wv',x)产生信号全局默认阈值,然后利用wdencmp函数进行消除噪 声的处理,thr = sqrt(2*log(n)) * sxd=wdencmp('gbl',x,'db3',2,thr,sorh,keepapp)THR=wbmpen(C,L,SIGMA,ALPHA)使用penalization方法为降噪返回全局门槛THR.
5.1 举例1—分解
读取系统leleccum函数抽取1000份,
代码:
clc;clear;
load leleccum;
N=1000;
y = leleccum(1:N);
figure(1);
plot(y);
图像:
分别采用“db1”和“db3”进行3次分解
小波树如下:
第一级分解:
后级分解:
代码如下:
clc;clear;
load leleccum;
N=1000;
y = leleccum(1:N);
[c,l]=wavedec(y,3,'db1');
a3=appcoef(c,l,'db1',3);
d1=detcoef(c,l,1);
d2=detcoef(c,l,2);
d3=detcoef(c,l,3);
figure(1);
subplot(2,2,1)
plot(a3);
title('a3');
subplot(2,2,2)
plot(d3);
title('d3');
subplot(2,2,3)
plot(d2);
title('d2');
subplot(2,2,4)
plot(d1);
title('d1');
hold on;[c,l]=wavedec(y,3,'db3');
a3=appcoef(c,l,'db3',3);
d1=detcoef(c,l,1);
d2=detcoef(c,l,2);
d3=detcoef(c,l,3);
figure(2);
subplot(2,2,1);
plot(a3);
title('a3');
subplot(2,2,2);
plot(d3);
title('d3');
subplot(2,2,3);
plot(d2);
title('d2');
subplot(2,2,4);
plot(d1);
title('d1');
显示效果如下:
笔者可见“db1”比“db3”更加平滑,消除更多的高频噪声。
5.2 举例2—分解细节重构
“db1”先分解后重构
代码:
clc;clear;
load leleccum;
N=1000;
y = leleccum(1:N);
h=wfilters('db1','l'); % 低通
g=wfilters('db1','h'); % 高通a1=dyaddown(conv(y,h)); % 卷积下采样
d1=dyaddown(conv(y,g)); % 卷积下采样
a2=dyaddown(conv(a1,h)); % 卷积下采样
d2=dyaddown(conv(a1,g)); % 卷积下采样
a3=dyaddown(conv(a2,h)); % 卷积下采样
d3=dyaddown(conv(a2,g)); % 卷积下采样,
figure(3);
subplot(2,2,1)
plot(a3);
title('a3');
subplot(2,2,2)
plot(d3);
title('d3');
subplot(2,2,3)
plot(d2);
title('d2');
subplot(2,2,4)
plot(d1);
title('d1');d3_up=dyadup(d3); % 上采样
a3_up=dyadup(a3); % 上采样
d3_up=d3_up(1,[1:N/4]); % 去掉最后一个零
a3_up=a3_up(1,[1:N/4]); % 去掉最后一个零
hr=h(end:-1:1); % 重构低通
gr=g(end:-1:1); % 重构高通
hr=circshift(hr',1)'; % 位置调整圆周右移一位
gr=circshift(gr',1)'; % 位置调整圆周右移一位
a2_t=conv(a3_up,hr)+conv(d3_up,gr);
a2_t=a2_t(1,[2:end]);
a2_up=dyadup(a2_t);
d2_up=dyadup(d2);
d2_up=d2_up(1,[1:N/2]); % 去掉最后一个零
a2_up=a2_up(1,[1:N/2]); % 去掉最后一个零
a1_t=conv(a2_up,hr)+conv(d2_up,gr);
a1_t=a1_t(1,[2:end]);
a1_up=dyadup(a1_t);
d1_up=dyadup(d1);
d1_up=d1_up(1,[1:N]); % 去掉最后一个零
a1_up=a1_up(1,[1:N]); % 去掉最后一个零
y_t=conv(a1_up,hr)+conv(d1_up,gr);
y_t=y_t(1,[2:end]);figure(5);
subplot(2,2,1)
plot(a2-a2_t);
title('a2-a2_t');
subplot(2,2,2)
plot(a1-a1_t);
title('a1-a1_t');
subplot(2,2,3)
plot(y-y_t);
title('y-y_t');
subplot(2,2,4)
plot(y_t);
title('y_t');
图像如下:
“db3”先分解后重构
代码:
clc;clear;
load leleccum;
N=1000;
y = leleccum(1:N);
h=wfilters('db3','l'); % 低通
g=wfilters('db3','h'); % 高通a1=dyaddown(conv(y,h)); % 2抽取
d1=dyaddown(conv(y,g)); % 2抽取
a2=dyaddown(conv(a1,h)); % 2抽取
d2=dyaddown(conv(a1,g)); % 2抽取
a3=dyaddown(conv(a2,h)); % 2抽取
d3=dyaddown(conv(a2,g)); % 2抽取,
figure(4);
subplot(2,2,1)
plot(a3);
title('a3');
subplot(2,2,2)
plot(d3);
title('d3');
subplot(2,2,3)
plot(d2);
title('d2');
subplot(2,2,4)
plot(d1);
title('d1');d3_up=dyadup(d3); % 2插值
a3_up=dyadup(a3); % 2插值
d3_up=d3_up(1,[1:N/4]); % 去掉最后一个零
a3_up=a3_up(1,[1:N/4]); % 去掉最后一个零
hr=h(end:-1:1); % 重构低通
gr=g(end:-1:1); % 重构高通
hr=circshift(hr',1)'; % 位置调整圆周右移一位
gr=circshift(gr',1)'; % 位置调整圆周右移一位
a2_t=conv(a3_up,hr)+conv(d3_up,gr);
a2_t=a2_t(1,[3:end]);
a2_up=dyadup(a2_t);
d2_up=dyadup(d2);
d2_up=d2_up(1,[1:N/2]); % 去掉最后一个零
a2_up=a2_up(1,[1:N/2]); % 去掉最后一个零
a1_t=conv(a2_up,hr)+conv(d2_up,gr);
a1_t=a1_t(1,[4:end]);
a1_up=dyadup(a1_t);
d1_up=dyadup(d1);
d1_up=d1_up(1,[1:N]); % 去掉最后一个零
a1_up=a1_up(1,[1:N]); % 去掉最后一个零
y_t=conv(a1_up,hr)+conv(d1_up,gr);
y_t=y_t(1,[6:end]);figure(6);
subplot(2,2,1)
plot(a2-a2_t);
title('a2-a2_t');
subplot(2,2,2)
plot(a1-a1_t);
title('a1-a1_t');
subplot(2,2,3)
plot(y-y_t);
title('y-y_t');
subplot(2,2,4)
plot(y_t);
title('y_t');
图像如下:
5.3 举例3—分解重构
代码:
clc;clear;
load leleccum;
N=1000;
y = leleccum(1:N);
[c,l]=wavedec(y,3,'db1');
y1 = waverec(c,l,'db1');
[c,l]=wavedec(y,3,'db3');
y3 = waverec(c,l,'db1');
figure(7);
subplot(2,3,1)
plot(y);
title('y');
subplot(2,3,2)
plot(y1);
title('y1');
subplot(2,3,3)
plot(y3);
title('y3');
subplot(2,3,5)
plot(y-y1);
title('y-y1');
subplot(2,3,6)
plot(y-y3);
title('y-y3');
图像:
综上所述笔者认为“db3”效果偏差
参考文献:
- 形象易懂讲解算法I——小波变换
- 一起学小波
- wavedec
【小波理论及其应用】相关推荐
- 小波理论的基本概念及概述 学习笔记
本文来自:https://blog.csdn.net/seek97/article/details/81266223 感谢前辈的分析和总结.下文我做了简要的修改: 一. 前言 欢迎阅读此份关于小波变换 ...
- 【小波分析】学习笔记(一):基础概念和小波理论综述
学习资料来源:http://users.rowan.edu/~polikar/WAVELETS/WTtutorial.html 何为变换? 首先需要了解的是,为什么我们需要变换,以及什么是变换? 将数 ...
- 利用小波融合对由聚焦失败导致的图像模糊进行修复
图像的融合是将两幅或多幅图像融合在一起,以获取对同一场景的更为精确.更为全面.更为可靠的图像描述.融合算法应该充分利用各原图像的互补信息,使融合后的图像更适合人的视觉感受,适合进一步分析的需要.例如在 ...
- 从傅里叶(Fourier)变换到伽柏(Gabor)变换再到小波(Wavelet)变换
从傅里叶(Fourier)变换到伽柏(Gabor)变换再到小波(Wavelet)变换 本文是边学习边总结和摘抄各参考文献内容而成的,是一篇综述性入门文档,重点在于梳理傅里叶变换到伽柏变换再到小波变换的 ...
- 小波、超小波(多尺度几何分析)与压缩感知
0. 图书 基于MATLAB 6.X的系统分析与设计-小波分析. 胡昌华,李国华,刘涛,等.西安:西安电子科技大学出版社,2004 MATLAB小波分析高级技术. 周伟,桂林,周林,等.西安:西安电子 ...
- 系统学习机器学习之神经网络(三)--GA神经网络与小波神经网络WNN
1 遗传算法 1.1 遗传算法简介: 遗传算法是一类借鉴生物界的进化规律(适者生存,优胜劣汰遗传机制)演化而来的随 机化搜索方法.它是由美国的 J.Holland 教授 1975 年首先提出,其主要特 ...
- 【图像去噪】基于matlab小波滤波(硬阙值+软阙值)+中值滤波图像去噪【含Matlab源码 462期】
一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[图像去噪]基于matlab小波滤波(硬阙值+软阙值)+中值滤波图像去噪[含Matlab源码 462期] 获取代码方式2: 通过订阅紫极神光 ...
- 【图像去噪】基于自适应小波阙值算法实现图像去噪附matlab代码
1 内容介绍 基于 Donoho经典小波阈值去除图像噪声基本思路,分析常用硬阈值法和软阈值法在图像去噪中的缺陷.针对这些缺陷,提出一种改进的阈值去噪法,该方法不仅可克服硬阈值不连续的缺点,还能够有效解 ...
- 小波科普文章精粹:看森林,也看树木
英文原名:Wavelets: Seeing the forest and the trees 转自:http://yswhu.bokee.com/viewdiary.10391865.html 一.前 ...
最新文章
- 通信网络设计(最小生成树+图的联通)
- HADOOP常见错误
- myeclipse2014 mysql连接池_myeclips配置mysql连接池
- 全球及中国一般手术器械行业投资态势与发展价值评估报告2022版
- MySQL给新建用户并赋予权限
- KVM虚拟机PCI设备直通
- 专栏丨MySQL 高频面试题解析
- Math.ceil()函数
- vivo手机点击android,了解Vivo手机几个小技巧,让您的手机变得更好用
- 微信小程序封装api接口方法教程
- Netflix云原生微服务设计分析
- win10专业版本激活
- 矩阵键盘控制拉闭幕式流水灯
- 我做实施交付那些年——说点废话(1)
- 如何保证GIS图件中字体大小是所要求的
- 计算机行业职业名称英语,行业英语学习
- 什么是impala,如何安装使用Impala
- SAP中导出电子表格问题处理案例
- 2022-2027年中国农村网络零售行业市场深度分析及投资战略规划报告
- 看完了这篇,还能不知道什么是hadoop,大数据吗?❤️万字详解告诉你