如何用小波脊提取信号的瞬时幅值和频率?
想用小波脊提取信号的瞬时幅值和频率,但是刚接触小波,不知道程序怎么编写。这是论坛里面破凰的提取信号的小波脊的程序,但是我换了我要分析的信号后就不能得出小波脊,求大家解释下。
lc;
clear all;
a(1)=25;
Te=0.001;
t=0:0.001:1;
s=cos(2*pi*(30*(t.^2)+40*t));%改了一下原信号
%s=hilbert(s);
%hudu=4*pi;
%用morlet小波进行分析;
kk=length(t);
k=0;
aa=0;
bb=0;
w0=2*pi;%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.02%阈值不宜过小
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);
有人吗
页:
[1]