shenyongjun 发表于 2007-12-12 12:08

小波分解层数不同,小波系数长度不一样?

用wavedec对一个给定信号x进行分解时,采用如下格式:
= WAVEDEC(X,N,'wname')
其中C为所有近似系数和细节系数构成的向量。
但是这里我有一个问题,当N不同时,得到的C的长度不一样,这是为什么?有什么办法能够得到在不同分解层数下同样长度的小波系数?

auwi_zxy 发表于 2007-12-12 13:37

长度当然会有所不同了,不同的N代表不同层数的近似空间,而不同层数的近似空间的维数是不同的,所以分解系数的长度就不同了
你说的那个问题应该没有什么意义吧……

shenyongjun 发表于 2007-12-12 17:01

回复 #2 auwi_zxy 的帖子

当然有意义了!
潘泉老师的专著《小波滤波方法及应用》中提到有这么一种小波降噪方法:即利用同一个信号x在不同尺度上的小波系数相乘,构造一个滤波器,然后对原信号降噪。如果不同尺度上的小波系数长度不一样,它怎么能够相乘呢?

ialan 发表于 2007-12-14 09:14

我也正想问楼主的这个问题呢。看过一些文章进行小波分解后信号长度仍跟原信号长度一样。

破凰 发表于 2007-12-15 13:44

回复 #4 ialan 的帖子

多孔算法

jytan 发表于 2007-12-16 14:10

我的理解是,matlab在做小波分解的时候,会在信号两边进行延拓,以完全算法。
对于输入不同的数据样本,延拓的个数不一样,
所以出来的个数也就不一样。
不知道我理解对了没,欢迎大家批评。

shenyongjun 发表于 2007-12-16 20:33

原帖由 ialan 于 2007-12-14 09:14 发表 http://www.chinavib.com/forum/images/common/back.gif
我也正想问楼主的这个问题呢。看过一些文章进行小波分解后信号长度仍跟原信号长度一样。
暂时解决了,采用cwt可以得到与原信号长度相同的小波分解系数!

破凰 发表于 2007-12-17 13:28

回复 #7 shenyongjun 的帖子

SWT也可以。

shenyongjun 发表于 2007-12-18 12:04

回复 #8 破凰 的帖子

SWT是什么?

viorchid 发表于 2007-12-21 10:47

对提出的问题:用wavedec对一个给定信号x进行分解时,采用如下格式:
= WAVEDEC(X,N,'wname')
其中C为所有近似系数和细节系数构成的向量。
但是这里我有一个问题,当N不同时,得到的C的长度不一样,这是为什么?有什么办法能够得到在不同分解层数下同样长度的小波系数?


当N不同是C是肯定不同。若原始输入信号的长度为LEN的话分解N层的话,C的长度理论上应该为LEN/(2的N次方 ),即若分解一层C的长度为LEN/2,分解3层的话为LEN/8
当然也有办法在不同分解层数下获得同样的长度,那就要做单支重构 MATLAB中有函数可以直接调用 如wrcoef(小波分解) wprcoef(小波包分解)
具体可见《小波分析理论与MATLAB实现》的红书
这个问题我也是看了好久 才明白的 :-)

zhongnanliuhui 发表于 2010-8-10 14:13

解释的很牛

水野遥 发表于 2012-3-8 20:49

解答精彩,研究学习中...

caokai12348 发表于 2012-3-10 11:51

解释的很好~研究中!

粤语残片 发表于 2013-11-12 10:57

viorchid 发表于 2007-12-21 10:47 static/image/common/back.gif
对提出的问题:用wavedec对一个给定信号x进行分解时,采用如下格式:
= WAVEDEC(X,N,'wname')
其中 ...

其实一直不明白长度不一样怎么去逼近原始信号呢,是不是取点数变少所以长度变短,而时间的跨度是一样的呢,求指导啊
页: [1]
查看完整版本: 小波分解层数不同,小波系数长度不一样?