如果函数的表达式为s=cos(2*pi*(10*(t.^2)+10*t))+5*cos(2*pi*30*t);
那函数的瞬时频率应该是什么样子的?
我采用上面的程序得到了下面的图,图中只显示了第二项的瞬时频率5*cos(2*pi*30*t); 为30,而第一项的cos(2*pi*(10*(t.^2)+10*t)),的瞬时频率20*t+10没有在图中体现出来,这是为什么?
如果想得到的话,应该怎样设置参数?
clc;
clear all;
a(1)=2;
Te=0.001;
t=0:0.001:1;
s=cos(2*pi*(10*(t.^2)+10*t))+5*cos(2*pi*30*t); %改了一下原信号
%s=hilbert(s);
%hudu=4*pi;
%用morlet小波进行分析;
a(1)=0.3;
Te=0.001;
kk=length(t);
k=0;
aa=0;
bb=0;
w0=2*pi*1; %cmor2-1小波的中心频率为2pi
for j=2:kk
while 1
wa=cwt(s,a(1),'cmor2-1');
fai=angle(wa);
fai=unwrap(fai);
dfa=abs(fai(j)-fai(j-1));
a0=w0*1/dfa;
if abs((a0-a(1))/a(1))<0.5 %阈值不宜过小
ar(j-1)=a(1);
a(1)=a0;
break;
end
a(1)=a0;
end
end
f=1./(ar*Te);
plot(t(1:kk-1),f);
[localimg=560,420]1[/localimg] |