一维连续小波变换的matlab基础程序实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
小波变换实验二
连续小波变换
一、实验目的
本实验的目的在于充分理解连续小波变换的算法和作用,利用matlab 程序实现对一维信号进行连续小波变换,进而在程序的编辑过程理解一位连续小波变换的小波系数矩阵的含义。
同时通过对预算的到的小波系数矩阵进行分析解释,得到原始信号的频谱分布以及了解小波系数在尺度和位移两个分量上的意义。
二、实验原理、实验编程思路
1、根据书本的理论知识,知道一维连续小波变换的公式为:
实际在编程过程当中,对于上式中积分的求解可以采用将积分函数离散化,通过求和来实现求积分,离散的过程如下式:
本实验中,根据题目可以知道采样的时间间隔为0.03s ,即上式中Δt ,在实际编程当中为了计算方便可以省略掉这个时间常数,所以在编程过程当中使用的公式实际为:
2、小波函数的选取:使用墨西哥草帽(mexhat )小波来进行小波变换,墨西哥草帽的函数为(支撑区间为-5—5):
dt a b t t f a f b a W b a f
⎰∞
∞-->==<)()(1,),(,ϕϕ)(
)()()(),(21
)1(21a
b t k t k f t a t a b t a t f b a W k k t k t k f -∆⨯∆∆=∆-⨯=∑∑⎰-∆+∆-ϕϕ)()(),(21
a
b k k f a b a W
k f -⨯=∑-ϕ⎪⎩⎪⎨⎧≤-=-else x e x mexh x ,05,)1(222
对于连续小波函数的采样间隔,根据不同的尺度参量来进行采样,比如尺度为i,实际对应小波的采样间隔取k/i,以保持和原信号在不同尺度上的同步。
3、程序运算简化:
在程序设计过程当中,如果对于小波系数的每一个系数都按照公式来计算,算法的时间复杂度应当为o(n3)。但通过对公式的分析,不难看出,对于同意尺度a,相邻的两个小波系数之间的求和项,只有第一项或者最后一项或者二者都不同,所以在下一个系数求解的时候可以减少一次循环,从而将时间复杂度降到o(n2),运算效率大大提高。
4、在程序设计的过程当中,还分别对原信号进行傅里叶分析和直接的cwt 变换,将得到的结果与设计的连续小波变换程序进行比对分析。
三、实验程序和结果
墨西哥草帽小波参数获取函数:mexh.m
连续小波变换主函数:mexh-cwt.m
傅里叶分析和cwt分析:fft cwt result.m
1、利用mexh-cwt.m对源数据进行分析得到的结果:
原信号波形图
小波系数矩阵及原信号的三个主成分
小波系数矩阵的三维视图
功率谱图和功率等值线图
从上述的小波变换结果,特别是小波系数矩阵的信息中可以看出,原始信号主要有三个平率不同且时域分布也不同的主成份组成,从图中可以定性地看出,频率最高的成分1始终出现在整个信号段,而频率次之的成分2只在信号刚开始的阶段出现,频率最低的成分3基本上在成分2消失之后开始出现。这些信息都是从单纯的傅里叶频谱分析中无法得到的。
2、利用fft cwt result.m对原信号进行频谱分析和算法校验:
从上述傅里叶频谱分析图中同样可以看出信号的三个主成份,且对应频率近似分别为:0.651Hz、1.237Hz、2.604Hz。
在小波变换中,每个尺度对应0.03s,上述三个频率对应周期分别为:1.536s、0.808s、0.384。对应到尺度域上容易计算的对应的尺度间隔分别为:51.2、26.9、12.8。再次观察小波系数,分析得到的三个主成份对应的尺度间隔基本吻合,也验证了我们计算得到的结果。