作业帮 > 综合 > 作业

求matlab 连续小波变换大神!

来源:学生作业帮 编辑:搜搜考试网作业帮 分类:综合作业 时间:2024/06/07 13:30:37
求matlab 连续小波变换大神!
母小波选择为morlet,尺度a自己定义了两个,a1=27,a2=54.信号经过CWT后怎么得到该尺度对应频率段的信号?是重构么?
求matlab 连续小波变换大神!
CWT重构个啥?可以计算得到该尺度CWT变换结果对应的频率,但不能得到该尺度对应频率段的信号,要得到信号只能用DWT,重构DWT的结果系数可以得到信号.
再问: 那么DWT怎么得到我对应的那个频段的信号啊??尺度是确定的
再答: DWT也不能得到你定义的尺度的频段的信号,能得到最为接近的尺度32和64的信号,对应的DWT就是5阶和6阶的DWT小波细节的重构,但这牵扯到你的原始信号有没有足够的点数能分解这么多层,数据点数太少做DWT将出现混频、假频和伪吉布斯效应,说实话小波分析就不是你这么用的。
另一种是曲线救国的方案,DWT4阶的细节系数对应尺度16,去掉一半系数就是5阶尺度32的系数,即隔点取值即可,那么以此类推,要得到尺度27的系数就是将DWT4阶对应尺度16的系数保留其中的16/27的系数,但是你如何确定哪些点应该留哪些点应该去掉?
能用的做法只能用interp1插值得到DWT4阶细节点数16/27的新的插值的数组。先通过算DWT4阶细节系数的点数计算其16/27个点数取整,然后用linspace生成范围从1到DWT4阶细节点数,长度有16/27个点数的数组,用yi = interp1(Y,xi)得到的新数组就是尺度27的系数,但是这里有插值的干扰,已经人为造成了误差,你就凑活用吧。得到这些系数的新数组,用upcoef函数直接重构得到CWT尺度27的信号,这里27与32接近所以upcoef函数的参数O = 'd',N就取5吧。
这方法有太其它因素的干扰,如插值,如取DWT的分解阶次,DWT小波基的伸缩必然是2倍的关系,而你这个却是小数的关系(16/27),这只能在CWT中实现,而cwt由于从数学上讲是没有办法实现逆变换(重构)的,因为小波逆变换与小波变换是没有一一对应关系的(所以在matlab中没有CWT的逆变换函数),这和傅氏变换是不同的,后来当引入了DWT和滤波器组的时候,才实现了某些尺度上的重构,而你这个尺度27的系数却用阶次5(尺度32)的小波基来重构,所以别费劲了,这结果可能和原始信号中所含的信息有较大误差,都是人为方法造成的。还是那句话小波分析就不是你这么用的。
实在不行你就用CWT的小波系数代替信号算了,这俩从数学意义上是不同的,值也有误差,但都能表示信号的信息,所以分析应用的时候都可以。