|
楼主 |
发表于 2013-3-8 18:17
|
显示全部楼层
绘制原理
1.需要用到的小波工具箱中的三个函数
COEFS = cwt(S,SCALES,'wname')
说明:该函数能实现连续小波变换,其中S为输入信号,SCALES为尺度,wname为小波名称。
COEFS为进行连续小波变换后返回的系数矩阵
FREQ = centfrq('wname')
说明:该函数能求出以wname命名的母小波的中心频率。
F = scal2frq(A,'wname',DELTA)
说明:该函数能将尺度转换为实际频率,其中A为尺度,wname为小波名称,DELTA为采样周期。
注:这三个函数还有其它格式,具体可参阅matlab的帮助文档。
2.尺度与频率之间的关系
设a为尺度,fs为采样频率,Fc为小波中心频率,则a对应的实际频率Fa为
Fa=Fc×fs/a (1)
显然,为使小波尺度图的频率范围为(0,fs/2),尺度范围应为(2*Fc,inf),其中inf表示为无穷大。在实际应用中,只需取尺度足够大即可。
3.尺度序列的确定
由式(1)可以看出,为使转换后的频率序列是一等差序列,尺度序列必须取为以下形式:
c/totalscal,...,c/(totalscal-1),c/4,c/2,c (2)
其中,totalscal是对信号进行小波变换时所用尺度序列的长度(通常需要预先设定好),c为一常数。
下面讲讲c的求法。
根据式(1)容易看出,尺度c/totalscal所对应的实际频率应为fs/2,于是可得
c=2×Fc/totalscal (3)
将式(3)代入式(2)便得到了所需的尺度序列。
4.时频图的绘制
确定了小波基和尺度后,就可以用cwt求小波系数coefs(系数是复数时要取模),然后用scal2frq将尺度序列转换为实际频率序列f,
最后结合时间序列t,用imagesc(t,f,abs(coefs))便能画出小波时频图。
注意:直接将尺度序列取为等差序列,例如1:1:64,将只能得到正确的尺度-时间-小波系数图,而无法将其转换为频率-时间-小波系数图。这是因为此时的频率间隔不为常数。
此时,可通过查表的方法将尺度转化为频率或直接修改尺度轴标注。同理,利用本帖所介绍的方法只能得到频率-时间-小波系数图,不能得到正确的尺度-时间-小波系数图
说明:(1)应用时只须改变wavename和totalscal两个参数即可。
(2)在这个例子中,最好选用复的morlet小波,其它小波的分析效果不好,而且morlet小波的带宽参数和中心频率取得越大,时频图上反映的时频聚集性越好。 |
评分
-
1
查看全部评分
-
|