声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2247|回复: 12

[小波] Mallat算法是如何实现的?

[复制链接]
发表于 2013-10-23 11:39 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
请问小波分析中的Mallat算法是如何实现的?在计算机上是通过双通道滤波器组来实现,那么这个滤波器的冲击响应h,g是如何确定的呢?
回复
分享到:

使用道具 举报

发表于 2013-10-25 14:05 | 显示全部楼层
h,g的值,可以通过程序获得。

显示滤波器系数函数:wfilters

wfilters(‘wname’)
查询滤波器系数
wfilters('db1')
wfilters('db4')
[lod,hid]=wfilters('sym3')
同时查询低通和高通滤波器系数
 楼主| 发表于 2013-10-25 14:58 | 显示全部楼层

是的,有直接求滤波器系数的函数,但在Mallat算法中,若从滤波器的角度上讲的话,比如第一层分解就是原始信号经过一个低通滤波器h0和高通滤波器h1分别得到低频系数C1和高频系数d1,之后在对c1进行第二层分解经过一个低通滤波器h0和高通滤波器h1分别得到低频系数C2和高频系数d2,依次下去。。在计算机实现过程中,通过一个多孔算法具体我是看的一篇博士论文上有写到,一直弄不明白多孔算法中滤波器的冲击响应是怎么通过插值、等效易位关系变换的?

Doc1.doc

293 KB, 下载次数: 9

多孔算法

发表于 2013-10-25 15:01 | 显示全部楼层
下载你的东西,太耗体能。
发我邮箱,sjtusun@foxmail.com

另外“比如第一层分解就是原始信号经过一个低通滤波器h0和高通滤波器h1分别得到低频系数C1和高频系数d1,” 是不对的。因为原始信号不是小波系数。
 楼主| 发表于 2013-10-25 15:14 | 显示全部楼层
sunyuxinhe 发表于 2013-10-25 15:01
下载你的东西,太耗体能。
发我邮箱,sjtusun@foxmail.com

哦,我一直是这么理解的,那“原始信号不是小波系数”,你的意思是分解出来的低频与高频系数是什么?
发表于 2013-10-25 15:17 | 显示全部楼层
寂寞的部落 发表于 2013-10-25 15:14
哦,我一直是这么理解的,那“原始信号不是小波系数”,你的意思是分解出来的低频与高频系数是什么?

这篇论文里有讲,它是把原始信号,近似为0层尺度系数。
 楼主| 发表于 2013-10-25 15:28 | 显示全部楼层
sunyuxinhe 发表于 2013-10-25 15:17
这篇论文里有讲,它是把原始信号,近似为0层尺度系数。

是的,在进行多层分解时,先把原始信号看成0层分解的低频尺度系数,我想知道在编程具体操作时,是按多孔算法来求时,那个低通与高通分解(重构)滤波器的冲击响应是如何变化的?


发表于 2013-10-25 15:33 | 显示全部楼层
寂寞的部落 发表于 2013-10-25 15:28
是的,在进行多层分解时,先把原始信号看成0层分解的低频尺度系数,我想知道在编程具体操作时,是按多孔算 ...

没有看到邮件?
发表于 2013-11-19 09:50 | 显示全部楼层
寂寞的部落 发表于 2013-10-25 15:28
是的,在进行多层分解时,先把原始信号看成0层分解的低频尺度系数,我想知道在编程具体操作时,是按多孔算 ...

你好,我也在弄小波这块。请问你对小波包分解与重构有研究吗?
 楼主| 发表于 2013-11-19 15:22 | 显示全部楼层
波尔 发表于 2013-11-19 09:50
你好,我也在弄小波这块。请问你对小波包分解与重构有研究吗?

我目前还没用小波包,不过我觉的都是一样的,小波包应该是把分解出来的高频部分再做分解成低频和高频成分
发表于 2013-11-19 15:43 | 显示全部楼层
本帖最后由 波尔 于 2013-11-19 16:31 编辑
寂寞的部落 发表于 2013-11-19 15:22
我目前还没用小波包,不过我觉的都是一样的,小波包应该是把分解出来的高频部分再做分解成低频和高频成分

我通过MATLAB找到分解用的小波对应的滤波器,然后采用先将原始数据序列与分解滤波器卷积,然后二元抽取,得到下一层高低频小波系数。发现各小波系数个数不是原始数据个数的一半,而是多了几个。再进行二元插值后与重构滤波器卷积再相加,发现重构后的信号序列个数比没分解时多了一些。这是怎么回事?
方便留下QQ吗

 楼主| 发表于 2013-11-19 16:48 | 显示全部楼层
波尔 发表于 2013-11-19 15:43
我通过MATLAB找到分解用的小波对应的滤波器,然后采用先将原始数据序列与分解滤波器卷积,然后二元抽取, ...

如果一个信号长度为n,滤波器长度为k,那么卷积之后得到第一层的高频、低频信号长度为n+k-1,你在做二抽取之后最终的一层分解高低频信号长度为Floor((n+k-1)/2).这个是在MATLAB 中dwt的算法,这也是wavedec函数也是这么做的。
发表于 2013-11-19 16:50 | 显示全部楼层
本帖最后由 波尔 于 2013-11-19 16:53 编辑
寂寞的部落 发表于 2013-11-19 16:48
如果一个信号长度为n,滤波器长度为k,那么卷积之后得到第一层的高频、低频信号长度为n+k-1,你在做二抽取之 ...

方便在QQ上交流吗? 那既然重构后和原信号不一样了,能行吗
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-12-29 08:37 , Processed in 0.066748 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表