对于从时频分布图提取瞬时频率的问题,其实时频工具箱tftb就有这个功能,举例如下:
%%%%%%%%%%%%%%%%%%%%%%%%%%%
sig=fmconst(256,0.1)+fmlin(256,0.15,0.30)+fmlin(256,0.2,0.45);
figure(1)
plot(real(x))
title('信号')
%%%%%%%%%%%%%%%%%%
h=tftb_window(47,'Kaiser');
t=1:1:256;
figure(2)
tfrrsp(sig,t,256,h); %重分配周期图
title('信号时频图')
%%%%%%%%%%%%%%%%%%
[tfr,rtfr,hat]= tfrrsp(sig,t,128,h);
[pointst,pointsf]=ridges(tfr,hat,t,'tfrrsp',1);%pointsf即为提取的瞬时频率点的频率,pointst为对应的时刻
figure(3)
plot(pointst,pointsf,'.')
set(gca,'Ylim',[0,0.5])
title('提取的瞬时频率点')
%%%%%%%%%%%%%%%%%%%%%%%%%%%%
不过还有一个问题就是pointsf中包含了3个信号分量的瞬时频率,那么要提取某一个分量的瞬时频率,该如何从pointsf中提取呢?
当然如果是单分量信号那就没有问题了。
[ 本帖最后由 zhlong 于 2007-8-3 21:47 编辑 ] |