MATLAB中db4小波分解与重构问题

来自:IT    更新日期:早些时候
matlab中小波分解与重建~

appcoef 提取一维小波分解低频系数 detcoef 提取一维小波分解高频系数 dwt 单层一维小波分解 dwtmode 离散小波变换扩展模式 idwt 单层一维逆离散小波变换 upcoef 一维小波分解的直接重构 upwiev 一维小波分解的单层重构 ...

你睡不好都是拜近年来的垃圾小波文献和极不负责的审稿人所至,几年前在百度就没见这样的基本问题还要提问,因为以前随便一本参考书都会很严谨地讲得清清楚楚,现在很多外行作者为了发文章乱用和混淆小波概念的情况随处可见,简直令人叹为观止,毛骨悚然。可怜的娃儿,找几本靠谱的参考书看看吧! 1.以一个三层的DWT为例,当你做完DWT后,将得到一个小波分解组构[c,l]数组,其中将含有A3、D3、D2和D1四组小波系数,按照DWT的理论它们是没有量纲的系数,而且个数与原始信号S不同,当你需要研究时就很不方便,要进行补零插值再通过重构滤波器得到重构的各层逼近和细节信号,这时其个数将和原始信号相同,并且按照小波变换的意义是具有实际量纲的信号,这就是单支重构。就是你理解的将单纯的某层高频细节或低频逼近系数重构为高频细节或低频逼近信号。它不牵扯D和A的组合相加问题,所以叫单支。在matlab中实际上是没有单层重构这个概念的,那是不懂小波的人瞎翻译的,英文reconstruction一词在这里应翻成重建,所以翻译为单层重建更为妥当,你可以详见附件upwlev函数的说明。 2.在mallat算法中,基本概念是S=A3+D3+D2+D1;而A1=A2+D2;A2=A3+D3;所以只要学过初中代数,是个人(可惜了那些作者还上过大学)都能推出S=A3+D3+D2+D1=A2+D2+D1=A1+D1;所以你自己看看这些文献是如何令人崩溃了。 就5分,看在你睡不着的份上,我还奉送一个附件,你小子赚大了,祝睡好吧!

ca2是y分解得到,ca是你自己修改原ca得到(是x得到的),既然修改了ca那么,重构后的x(即y)和原始x是不等的,那么两个不同信号他俩分解后为啥会相等?

当x和y相等(或误差很小)时ca和ca2一样,即如果你不修改原ca或修改尽量比较小的时候x和y相差不大,则ca和ca2可能接近或近似相等。

挖个坟,还有人来看看吗?这个困扰我许久了,之前貌似解决了,现在重新写一次又出现这样的问题了。

首先非常感谢您的耐心回答!我觉得我可能没讲清楚,我再说一下
假设将x用dwt(x,'db4')分解成低频系数ca和高频系数cd,这时修改了ca为ca',再用idwt(ca',cd,'db4')将信号还原成y,然后再用dwt(y,'db4')分解y为低频ca2,高频cd2,此时ca2就不和ca'一样了,这正常吗?有没有解决办法让ca'和ca2一样呢?
我试了一下,ca'和ca2的确不同,连cd和cd2也有一定的误差,从DWT的原理讲,应该一样,为啥不一样的原因,最大的可能是DWT的平移敏感性,即DWT丢掉了一半的系数,那丢掉的一半系数含有能保持一样信息,但被丢掉了,重构时就造成了较大的误差,并且用这样重构的y,再来一次有较大误差的分解,最终可能累加更大的误差。你可以试试SWT,不过要对x先进行扩边处理,用来消除卷积的边缘效应,并使新x的点数为2的次方个(2,4,8,16,32,64等),swt后再截除扩边的点。实在没时间,你有空可以试试,应该是这个原因,这是DWT最大的一个缺陷。


MATLAB中db4小波分解与重构问题视频

相关评论:

相关主题精彩

版权声明:本网站为非赢利性站点,内容来自于网络投稿和网络,若有相关事宜,请联系管理员

Copyright © 喜物网