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

本文详细介绍了如何在Matlab和Python环境中实现多层离散小波变换(DWT),并讨论了移除噪声和基线漂移的方法。通过wavedec函数进行分解,wrcoef函数重构信号,同时提供了Matlab和Python的示例代码来演示这一过程。
摘要由CSDN通过智能技术生成

小波分解的理解

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。

<
  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值