matlab wmaxlev 函数 对信号有要求吗

DWT使用的是滤波器组完成的,不是直接用小波函数,DB小波系先由尺度函数得到低通滤波器(用于计算a)然后得到小波高通滤波器(用于得到d),最后推出相应的小波函数。如何由尺度函数和小波函数得到滤波器组是数学上的问题,你可以参看科学出版社的《小波理论算法与滤波器组》。
db8的滤波器长度应是16,由于DWT每做一层数据量要减半,所以最多一阶(层)的分解是需要最少32个点的,最多两阶(层)的分解需要最少64,当然由于wmaxlev函数有取整的计算(类似四舍五入)所以其结果可能会有偏差,例如60个点wmaxlev也可以得到分解2层的结论。
L = wmaxlev(400,‘db8’)则计算L=4。400个点,每分解一层数据量近似减半,由于使用滤波器卷积可能并不能精确减半,但那是另一个问题,这里为了便于说明姑且精确减半吧,1阶变200,2阶变100,3阶变50,4阶变25,25再向下是不合适做了,因为每向下分解一层要保证待分解的数据最少要32个,25<32所以再分解第5阶就不合适了。但DWT仍然可以出结果,就是其结果会被认为是不合理的,只是卷积运算的结果,从信号处理的角度这结果是有频率混迭的,并不符合DWT的理论。
如果采样的频率没有改变,对于去噪或其他应用,增减数据量是没什么意义的,分解层数的增加也不会增加实际的分辨率。因此个人建议是不必要的。
wmaxlev(s,‘db8’)函数中的 s 是导入数据的长度,对于db8小于32(实际是<31,还是取整运算的问题)时结果都是0.

原文链接:https://zhidao.baidu.com/question/426989269650194772.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值