当前位置:   article > 正文

matlab dwt 多层分解,多尺度小波分解Matlab/Python实现与原理分析

dwt分解

小波分解的理解

Matlab中实现小波分解方式

在matlab中实现小波分解的方式比较简单,通过[C,L] = wavedec(X,N,‘wname’)得到C和L,如下图,C表示分解得到的各个层的小波系数,L表示各个层的长度,L的最后一个数表示原数据的长度。

9b84d856a0e29e337707f2d60b298b0d.png

通过在Matlab中输入open wavedec打开分解的源文件可以发现,主要就是通过执行dwt函数进行多层分解的,分解的系数通过wfilters函数获得Lo_D,Hi_D,在分解中[x,d] = dwt(x,Lo_D,Hi_D);不断使用分解得到的x作为下一次分解的输入。进一步地,打开dwt文件,还能看到为了抑制边界效应的边界延拓通过wextend完成,卷积是通过wconv1实现的。分解工作的流程图为:

结果返回

输入数据

wavedec函数

dwt函数

wextend端点延拓方法

wconv1卷积

间隔取值

分解得到的每个层的长度可以表示为:

L i = L i − 1 + 滤 波 器 长 度 − 1 2 L_{i}=\frac{\mathrm{L_{i-1}}+\mathrm{滤波器长度}-1}2Li​=2Li−1​+滤波器长度−1​

滤波器长度可以查看Matlab,如sym7的长度为14,sym4的长度为8。

<
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/291338
推荐阅读
相关标签
  

闽ICP备14008679号