源码先锋

源码先锋

利用小波变换进行时频分析的基本原理和实例

admin 43 117

以下全文转载自:声振之家

小波变换的时频分析思想

傅里叶变换将信号从时域变换到了频域,从整体上看待信号所包含的频率成分。对于某个局部时间点或时间段上信号的频谱分析就无能为力了,对于从事信号的奇异性检测的人来说,傅里叶变换就失去了意义(包括加窗付立叶变换)。因为我们要找的是信号的奇异点(时域方面)和奇异点处所包含的频带(频域方面)也就是说需要一种时频分析方法。

当然能有纯时域的分析方法更好!(据说数学形态学能达到这种效果)。小波变换之所以可以检测信号的奇异点,正在于它的“小”。因为用小的波去近似奇异信号要比正弦波要好的多。

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为:

显然,为使小波尺度图的频率范围为(0,fs/2),尺度范围应为(2Fc,inf),其中inf表示为无穷大;在实际应用中,只需取尺度足够大即可。

3.尺度序列的确定

由上式可以看出,为使转换后的频率序列是一等差序列,尺度序列必须取为以下形式:

其中,totalscal是对信号进行小波变换时所用尺度序列的长度(通常需要预先设定好),c为一常数。

下面讲讲c的求法:尺度c/totalscal所对应的实际频率应为fs/2,于是可得:

将其代入到尺度序列既可。

4.时频图的绘制

确定了小波基和尺度后,就可以用cwt求小波系数coefs(系数是复数时要取模),然后用scal2frq将尺度序列转换为实际频率序列f,最后结合时间序列t,用imagesc(t,f,abs(coefs))便能画出小波时频图。

注意:直接将尺度序列取为等差序列,例如1:1:64,将只能得到正确的尺度—时间—小波系数图,而无法将其转换为频率—时间—小波系数图。这是因为此时的频率间隔不为常数。此时,可通过查表的方法将尺度转化为频率或直接修改尺度轴标注。

clear;clf;closeall;clc;

fs=1024;

%采样频率

f1=100;

f2=200;

t=0:1/fs:1;

s=sin(2*pi*f1*t)+sin(2*pi*f2*t);

%两不同频率正弦信号合成的信号

%%%%小波时频图绘制%%%%

wavename='cmor3-3';

totalscal=256;

%尺度序列的长度,即scal的长度

wcf=centfrq(wavename);

%小波的中心频率

cparam=2*wcf*totalscal;

%为得到合适的尺度所求出的参数

a=totalscal:-1:1;

scal=cparam./a;

%得到各个尺度,以使转换得到频率序列为等差序列

coefs=cwt(s,scal,wavename);

%得到小波系数

f=scal2frq(scal,wavename,1/fs);

%将尺度转换为频率

figure(1),plot(t,s);

%绘制原始信号图

figure(2);

%绘制信号的傅里叶变换的频谱图

N=length(t);

y=fft(s,N);

amg=abs(y);

plot([1:N/2]*fs/N,amg(1:N/2)*2/N);

figure(3);

c=cwt(s,a,wavename,'plot');

%直接使用尺度

figure(4),imagesc(t,f,abs(coefs));

%绘制色谱图

colorbar;

xlabel('时间t/s');

ylabel('频率f/Hz');

title('小波时频图');


图1原始信号图

图2傅里叶变换后频谱图

图3尺度法所得结果

图4小波时频色谱图

注:本文方法仅能获得频率-时间-小波系数图,不能得到正确的尺度-时间-小波系数图;应用改程序时只须改变wavename和totalscal两个参数即可;建议选用复的morlet小波,且morlet小波的带宽参数和中心频率取得越大,时频图上反映的时频聚集性越好。

看完本文有收获?请分享给更多人

回复关键词有干货:电路设计丨电容丨三极管丨PCB丨接地‧‧‧‧‧‧

加入“模电数电”“嵌入式”微信群请加微信

长按二维码识别关注