小波调研(二):一维离散小波分析

一维离散小波分析

数据挖掘流程

在数字信号处理中常常需要同时获取信号的时域和频域特征,但窗口傅里叶变换不可能在时间和频率两个空间同时以任何精度逼近被测信号。但小波分析提供了一种灵活性很高的方法,可以根据需要选取时间或者频率的精度,可以在多分辨率下进行分解信号的小波分析。在此选择工业上应用广泛的一维离散小波分析(1-D Discrete Wavelet Analysis)。

算法原理

离散小波变换定义

与傅里叶序列展开相似,小波序列展开将一个连续变量函数映射成一系列数序列。如果待展开函数是一个数字序列,如连续函数f(x)的抽样值,得到的系数就称为f(x)的离散小波变换(DWT),由连续小波变换定义的序列展开变为DWT变换对:

分别称作近似系数和小波系数。

分别为不同尺度和不同位置下的尺度函数和小波函数。j为尺度的阶数,j越大,尺度越小,相当于频率越高,越靠近细节。k为位置的偏移量。

 

快速小波变换算法(FWT)

一维离散小波变换主要用在信号处理中,实现的算法一般是mallat算法,即先对较大尺度的信号进行小波变换,再选取其中的低频部分在原尺度的1/2尺度上再进行小波变换。这种算法被称为快速小波变换的算法(FWT)

给定一个长度为N的信号,那么整个算法在至多 步内完成,第一步从原始信号s开始,产生两组参数,一组是作用低通滤波器 得到近似信号 ,另一组是作用高通滤波器 得到的细节信号 ,这两个信号都是原信号在滤波器作用下以尺度为2的下采样,下图所示FWT算法的单步流程。

 

重复以上做法,把其中的低频信号部分作为信号再次分解,直到所需要的层数。

 

 

 

Matlab的算法实现

Matlab调用的基本方式

第一种调用方式是根据给定的小波’vname’求信号X的多尺度分解,分解的层数为N,N必须是一个正整数,第二种调用方式则是求信号X在给定的低通滤波器 和高通滤波器 下进行多尺度分解,分解层数也是N。这个函数返回一个分解向量C和长度向量L。C和L记录如下图。

 

在Matlab中,离散信号小波变换分解算法主要使用以下常用命令:

dwt       用于信号的单层分解

wavedec   用于信号的多层分解

wmaxlev   在多层分解前求最大的分解层数

Matlab脚本使用实例

以下是通过wavedec函数进行的一维离散小波变换的具体过程和结果(完全分解图)

分解后的信号是平铺在数组C中的,每段信号的长度有数组L标示。

Matlab小波工具箱使用实例

选择App中Wavelet Analyzer中的Wavelet 1-D。采用示例with ab3 at level 5 ->sum of sines 得到完全分解图和树形模型图。


写在最后:这是我之前做的一些技术初步调研,主要目的是了解和展示一些技术,并进行了一些个人总结,其中必然有疏漏。其中引用了不少论文,百科和他人博客,但因为时间太久大都忘了出处,如果侵权提示后删除

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值