关于小波分解的疑问这是一个关于db小波分解的公式,j是一个确定的数,i有一个变化范围,在此设为1—4,我想请教怎样在MATLAB里实现这个公式,最后得到4x1的矩阵u呢
来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/28 08:43:11
关于小波分解的疑问这是一个关于db小波分解的公式,j是一个确定的数,i有一个变化范围,在此设为1—4,我想请教怎样在MATLAB里实现这个公式,最后得到4x1的矩阵u呢
关于小波分解的疑问
这是一个关于db小波分解的公式,j是一个确定的数,i有一个变化范围,在此设为1—4,我想请教怎样在MATLAB里实现这个公式,最后得到4x1的矩阵u呢
关于小波分解的疑问这是一个关于db小波分解的公式,j是一个确定的数,i有一个变化范围,在此设为1—4,我想请教怎样在MATLAB里实现这个公式,最后得到4x1的矩阵u呢
你这是DWT的公式,但是matlab中DWT中j和i的离散化是相关的,尺度参数是2^j则另一个平移参数就是2^j×K,j就是分解的阶次(层次),不是你想咋设就咋设的,这样DWT在平移计算小波系数的过程中才没有重合的部分,即非冗余性.例如当i取1,则尺度参数是2,平移参数就是2,4,8……,就是平移是尺度的整数倍.
为什么要这么设呢?举个例子如同用一把2cm的尺子量一个长6cm的物体,从头对准,然后你会平移两次,每次2cm就量出来了,但你非要每次只平移1cm,那么每次之间会重复量取那物体1cm的一段,计算物体长度时要减掉重复测量的部分,这很不经济,有冗余信息,所以要实现你这个问题只有求助有冗余的CWT结合DWT进行.
当j=1,是最高一层的DWT,相当于尺度2的DWT(CWT和DWT尺度与层次的对应参看CWT函数的帮助文档),用COEFS = cwt(S,2,'db2'),其中S是信号y(t),这里使用db2小波基(你自己可以改),得到与信号等长的小波系数COEFS,取除过第一个系数后的4个数值,对应的就是i=1,2,3,4的U(i),因为无论尺度是多少,cwt都是按1个单位平移,即第一个小波系数是i=0时算出的,第二个小波系数是i=1时算出的,第三个小波系数是i=2时算出的,以此类推到i=4对应的是第5个小波系数.
当j=2,是最高二层的DWT,相当于尺度4的DWT,用COEFS = cwt(S,4,'db2'),得到与信号等长的小波系数COEFS,同样取那4个数值,对应的就是i=1,2,3,4的U(i).
当j=3,是最高三层的DWT,相当于尺度8的DWT,用COEFS = cwt(S,8,'db2'),得到与信号等长的小波系数COEFS,同样取那4个数值,对应的就是i=1,2,3,4的U(i).
然后以此类推得到不同j值对应的U(i),都是4x1的矩阵.
当然你这里开头就说是“小波分解”那么你的公式就理解为DWT,因为CWT一般是不用“分解”一词的,那是DWT常用的概念.如果你说的这公式是CWT,那么j可以取任意正实数,可有小数,也就是COEFS = cwt(S,j,'db2'),同样取那4个数值,对应的还是i=1,2,3,4的U(i).