赞
踩
小波分解的理解
Matlab中实现小波分解方式
在matlab中实现小波分解的方式比较简单,通过[C,L] = wavedec(X,N,‘wname’)得到C和L,如下图,C表示分解得到的各个层的小波系数,L表示各个层的长度,L的最后一个数表示原数据的长度。
通过在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。
<Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。