-
2020-12-10 11:38:35
这篇文章介绍了小波分解和小波包分解。
小波分解(wavelet transform)
小波
傅里叶变换的基本方程是sin和cos,小波变换的基本方程是小波函数(basic wavelet),不同的小波在波形上有较大的差异,相似的小波构成一个小波族(family)。小波具有这样的局部特性:只有在有限的区间内取值不为0。这个特性可以很好地用于表示带有尖锐, 不连续的信号。
小波变换
α=WTfα=WTf 其中αα 表示变换得到的小波系数,W是正交矩阵。ff 是输入信号。
正交矩阵构造
特定的小波函数(basic wavelet)由一组特定的小波滤波系数(wavelet filter coefficients)构成。当选定了小波函数,其对应的那组小波滤波器系数就知道。用小波滤波器系数构造不同维度的低通滤波器和高通滤波器(下面的例子中W就是由这些系数构造出来的)。低通滤波器可以看作为一个平滑滤波器(smoothing filter)。这两个滤波器,低通和高通滤波器,又分别被称为尺度(scaling)和小波滤波器(wavelet filter)。一旦定义好了这两个滤波器,通过递归分解算法(也称为金字塔算法(pyramid algorithm),树算法(tree algorithm)将得到水平多分辨率表示的信号。
树算法
原始信号通过低通滤波器得到低频系数 (approximate coefficients), 通过高通滤波器得到高频系数(detail coefficients)。把第一层的低频系数作为信号输入,又得到一组approximate coefficients和detail coefficients。再把得到的approximate coefficients作为信号输入,得到第二层的approximate coefficients和detail coefficients。以此类推,直到满足设定的分级等级。最大的分解等级为log2Nlog2N.
用数学表达就是:
原始信号可看做0级低频系数 a0=(f0,f1,...,fn)a0=(f0,f1,...,fn);
那么am=G∗am−1am=G∗am−1, dm=Ham−1dm=Ham−1, G,H 分别表示低通滤波器和高通滤波器,用矩阵表示。
信号的重构
am−1=G∗am+H∗dmam−1=G∗am+H∗dm G∗G∗,H∗H∗为G,H 的共轭矩阵。
例子:使用Haar小波做离散小波变换
Haar小波是最简单的小波函数。归一化的小波滤波器系数只有两个c0=12−−√=0.7071c0=12=0.7071, c1=−0.7071c1=−0.7071. 低通滤波器由0.7071,0.7071组成,高通滤波器由0.7071,-0.7071组成,用矩阵G和H表示,矩阵的维度由信号的长度决定。
分解的结果
小波包分解(wavelet packet transform)
简单理解就是每一层分解得到的系数都要再分解,不像小波分解那样只有低频系数会再分解。同样以Haar小波为例子。
分解结果
更多相关内容 -
小波分解_小波分解_
2021-09-29 02:37:11用matlab语言实现小波分解,程序简单易懂,比较使用于初学者,可以通过编程加深对小波分解的理解 -
小波能谱熵
2018-09-22 21:07:47小波能谱熵代表了信号在各个小波尺度上能量分布的均匀性 -
小波分析与小波相干代码
2020-03-04 16:49:37小波分析和小波相关的实验代码(matlab),可用于长时间序列数据的变化周期特点分析和两个或者多个时间序列数据的相关性分析(文件夹里包含一份空气质量的实验数据,可用于参照)。 -
基于小波的光照补偿及其在人脸识别中的应用 (2007年)
2021-05-24 19:33:19提出了一种基于小波分析的人脸图像光照补偿技术,通过舍弃图像中的低频分量,仅用高频分量进行图像重构,便可较好地消除原始人脸图像中光照的影响。并将该技术应用于特征脸法人脸识别,在Yale库和自建库图像中,实验... -
气象数据小波分析matlab代码
2020-11-12 17:13:19该代码用于气象数据小波分析,有模拟数据,能输出小波系数、小波方差、小波模、小波模平方。替换模拟数据直接运行即可。 -
小波分析的应用及其MATLAB程序实现.pdf
2021-07-03 11:24:34小波分析的应用及其MATLAB程序实现.pdf -
小波贝叶斯去噪matlab代码.rar
2020-03-22 21:57:08复现小波贝叶斯去噪,方便初学者学习,包含软硬阈值去噪对比。 matlab代码可以直接运行。 -
小波时频图
2019-02-12 19:54:181.需要用到的小波工具箱中的三个函数cwt(),centfrq(),scal2frq() COEFS = cwt(S,SCALES,'wname') 该函数实现连续小波变换,其中S为输入信号,SCALES为尺度,wname为小波名称。 FREQ = centfrq('wname') 该...一、绘制原理:
1.需要用到的小波工具箱中的三个函数cwt(),centfrq(),scal2frq()
COEFS = cwt(S,SCALES,'wname')
该函数实现连续小波变换,其中S为输入信号,SCALES为尺度,wname为小波名称。
FREQ = centfrq('wname')
该函数求以wname命名的母小波的中心频率。
F = scal2frq(A,'wname',DELTA)
该函数能将尺度转换为实际频率,其中A为尺度,wname为小波名称,DELTA为采样周期。
2.尺度与频率之间的关系
设a为尺度,fs为采样频率,Fc为小波中心频率,则a对应的实际频率Fa为
Fa=Fc*fs/a
显然,根据采样定理,为使小波尺度图的频率范围为(0,fs/2),尺度范围应为(2*Fc,inf),其中inf表示为无穷大。在实际应用中,只需取尺度足够大即可。
3.尺度序列的确定
由上式可以看出,为使转换后的频率序列是一等差序列,尺度序列必须取为以下形式:
c/totalscal, c/(totalscal-1), ...,c/2,c
其中,totalscal是对信号进行小波变换时所用尺度序列的长度(通常需要预先设定好),c为一常数。
而尺度c/totalscal所对应的实际频率应为fs/2,于是可得
c=2*Fc*totalscal
于是可得到所需的尺度序列。
4.时频图的绘制
确定了小波基和尺度后,就可以用cwt求小波系数coefs(系数是复数时要取模),然后用scal2frq将尺度序列转换为实际频率序列f,最后结合时间序列t,用imagesc(t,f,abs(coefs))便能画出小波时频图。
二、应用例子
下面给出一实际例子来说明小波时频图的绘制。所取仿真信号是由频率分别为50Hz和100Hz的两个正弦分量所合成的信号。
% 小波时频分析 clc clear all close all % 原始信号 fs=1000; f1=50; f2=100; t=0:1/fs:1; s=sin(2*pi*f1*t)+sin(2*pi*f2*t); figure plot(t, s) % 连续小波变换 wavename='cmor3-3'; totalscal=256; Fc=centfrq(wavename); % 小波的中心频率 c=2*Fc*totalscal; scals=c./(1:totalscal); f=scal2frq(scals,wavename,1/fs); % 将尺度转换为频率 coefs=cwt(s,scals,wavename); % 求连续小波系数 figure imagesc(t,f,abs(coefs)); set(gca,'YDir','normal') colorbar; xlabel('时间 t/s'); ylabel('频率 f/Hz'); title('小波时频图');
说明:
在这个例子中,最好选用复的morlet小波,其它小波的分析效果不好,而且morlet小波的带宽参数和中心频率取得越大,时频图上反映的时频聚集性越好。
与其他时频分析对比,如短时傅里叶变换时频图
小结:
高频时小波效果好,因为小波在高频处分辨率可以自动调整,分辨率高。
代码:
% 时频分析 clc clear all close all % 原始信号 fs=1000; f1=50; f2=100; t=0:1/fs:1; s = sin(2*pi*f1*t)+sin(2*pi*f2*t);%+randn(1, length(t)); % s = chirp(t,20,0.3,300); s = chirp(t,20,1,500,'q'); figure plot(t, s) % 连续小波变换时频图 wavename='cmor3-3'; totalscal=256; Fc=centfrq(wavename); % 小波的中心频率 c=2*Fc*totalscal; scals=c./(1:totalscal); f=scal2frq(scals,wavename,1/fs); % 将尺度转换为频率 coefs=cwt(s,scals,wavename); % 求连续小波系数 figure imagesc(t,f,abs(coefs)); set(gca,'YDir','normal') colorbar; xlabel('时间 t/s'); ylabel('频率 f/Hz'); title('小波时频图'); % 短时傅里叶变换时频图 figure spectrogram(s,256,250,256,fs); % 时频分析工具箱里的短时傅里叶变换 f = 0:fs/2; tfr = tfrstft(s'); tfr = tfr(1:floor(length(s)/2), :); figure imagesc(t, f, abs(tfr)); set(gca,'YDir','normal') colorbar; xlabel('时间 t/s'); ylabel('频率 f/Hz'); title('短时傅里叶变换时频图');
使用命令行执行连续小波分析
这个例子是一个包含噪声的正弦波
1. 加载信号
load noissin
可以使用whos显示信号信息
whos
Name
Size
Bytes
Class
noissin
1x1000
8000
double
2. 执行连续小波变换
c = cwt(noissin,1:48,'db4');
函数cwt的参数分别为分析的信号、分析的尺度和使用的小波。返回值c包含了在各尺度下的小波系数。对于这里,c是一个48x1000的矩阵,每一行与一个尺度相关。
3. 绘制小波系数
cwt函数可以接受第四个参数,来指定函数在执行结束后是否绘制连续小波变换系数的绝对值。另外还可以接受更多的参数来定义显示的不同特性,详见cwt函数。如下面的语句绘制系数结果
c = cwt(noissin,1:48,'db4','plot');
4. 选择分析的尺度
cwt函数的第二个参数可以设定任意小波分析的尺度,只要这些尺度满足如下要求
l 所有尺幅必须为正实数
l 尺度的增量必须为正
l 最高的尺度不能超过由信号决定的一个最大值
如下面的代码可以执行从2开始的偶数尺度计算
c = cwt(noissin,2:2:128,'db4','plot');
显示结果如下
这幅图像很明确的表示出了信号的周期性。
-
Donoho_donoho_小波去噪_
2021-09-29 05:12:42Donoho经典阀值改进法进行小波去噪,matlab环境下编辑源代码程序 -
低通滤波实现图像增强和小波滤波器去噪增强变换,基于小波变换的图像去噪,matlab
2021-09-10 20:50:37butterworth等低通滤波实现图像增强和小波滤波器去噪增强变换matlab案例 -
同步压缩小波变化程序,同步压缩小波变换,matlab
2021-09-10 22:26:26同步压缩小波变换程序,适用于同步压缩小波变换的各种变形与研究 -
小波阈值去噪MATLAB代码-wdenoise:小波去噪
2021-05-27 07:01:40小波阈值去噪MATLAB代码瓦迪诺斯 使用经验贝叶斯阈值和许多其他阈值方法在ANSI C中进行小波消噪。 WDenoise对象,参数和函数 示例代码1:wdenoise(EBayesThresh) 示例代码2:wdenoise 示例代码3:使用EBayesThresh... -
CEEMDAN—小波阈值联合去噪.rar
2021-06-04 11:27:28然后采用小波阈值去噪方法对含噪声较多的高频 IMF 分量进行去噪处理; 最后将去噪处理的 IMF 分量和未去噪处理的 IMF 分量进行重构,获得联合去噪方法去噪后的信号。 ———————————————— 版权声明:... -
一种改进型小波阈值去噪算法的FPGA设计与实现.pdf
2021-07-13 17:28:22一种改进型小波阈值去噪算法的FPGA设计与实现.pdf -
Gabor小波提取特征_提取特征向量_小波_
2021-10-01 12:09:01Gabor小波提取特征 -
几种小波滤波方法比较
2020-08-04 09:16:22小波的多分辨率特性是小波去噪能够实现的基础。通过Mallat算法我们可以将信号中各种不同的频率成分分解开来,从而实现信号的按频带处理方式。 -
小波分析理论与图像降噪处理
2020-10-19 21:45:07简要介绍了小波分析基本理论中的小波变换和小波包变换,重点论述了小波分析在图像降噪处理中的应用及其算法流程。在此基础上,利用Matlab R2007进行了图像去噪仿真测试,并对仿真结果进行了分析。结果表明,利用小波... -
语音小波去噪算法的matlab实现(毕设)
2022-03-03 22:21:231、实现效果:见链接:...2、采用小波算法实现语音去噪功能,并采用matlab GUI界面实现。 3、适用于计算机,电子信息工程等专业的大学生毕业设计。 4、售后:可以加博主扣扣(2963033731)咨询相关问题。 -
用小波分析方法诊断杭州近50 a夏季气温变化 (2008年)
2021-06-15 04:22:28应用小波分析方法对杭州市1951年以来的夏季气温进行分析,发现杭州夏季平均气温发生过4次转折,每次年代际转换中都伴随着年际剧烈振荡。1978―1981年是一次大幅度转折点,随后气温剧烈振荡的发生频率明显增多,强度... -
Loop细分小波紧框架对三维图形压缩的应用
2021-02-06 15:09:23在基于Loop细分小波紧框架多分辨率分析理论的基础上,推导了Loop细分小波紧框架的分解和重构公式,用这些公式实现了多分辨率曲面的构造并将其应用到三维网格图形的压缩中.通过与双正交Loop细分小波算法的比较,表明基于... -
小波分解
2017-09-28 19:56:33小波分解对1张图象进行小波分解,可以在MATLAB中实现。 -
小波分析模极大值法,小波分析方法,matlab源码.zip
2021-10-15 00:47:25小波分析模极大值法,小波分析方法,matlab源码 -
matlab小波去噪
2018-09-21 09:40:26matlab的小波去噪,里面附有多种小波去噪方法,有注释,程序 -
一种基于小波分解的新型海杂波抑制方法
2020-10-16 22:34:52针对不同分布海杂波的抑制及目标检测问题,首次将自适应噪声对消器应用在海杂波的处理中,并且将此对消器与小波分解理论相结合来抑制海杂波,提取出目标。首先,对含有目标的海杂波信号进行小波分解。然后,类比... -
matlab气象学:气象因子的小波功率谱与小波分析图象
2022-04-24 01:23:23气象因子的小波分析图像MATLAB实现。 -
python小波图像处理(刚开始入门小白整理,方便以后自己学习改进)
2020-12-22 07:57:11此次任务参考了以下大佬的博客,链接: haar小波: https://blog.csdn.net/baidu_27643275/article/details/84826773 【小波变换】小波变换python实现–PyWavelets: ... -
使用小波进行信号中的特征检测:使用小波进行特征检测的 MATLAB 代码和相关文件-matlab开发
2021-05-29 20:05:14使用 MATLAB:registered: 中的小波变换识别真实世界信号中的频谱特征。 使用 MATLAB:registered: 中的连续小波变换来检测和... 有关如何使用小波变换提取光谱特征的更多信息,请参阅使用小波进行特征提取 - 第 2 部分。 -
使用小波在信号中提取特征:使用小波进行特征提取的 MATLAB 代码和相关文件 - 第 2 部分-matlab开发
2021-05-29 20:05:28使用 MATLAB:registered: 中的小波变换将现实世界的信号分解为时变频率分量,并提取相关特征以进行进一步处理。... 有关如何使用小波变换识别光谱特征的更多信息,请参阅使用小波进行特征检测 - 第 1 部分。 -
小波分析全章节讲解
2018-07-28 17:30:56一份比较好的小波分析课件,小波分析的应用领域十分广泛,它包括: 数学领域的许多学科;信号分析、图象处理;量子力学、理论物理;军事电子对抗与武器的智能化;计算机分类与识别;音乐与语言的人工合成;医学成像...