Mrchen 发表于 2018-4-2 15:23

如何用小波脊提取信号的瞬时幅值和频率?

想用小波脊提取信号的瞬时幅值和频率,但是刚接触小波,不知道程序怎么编写。
这是论坛里面破凰的提取信号的小波脊的程序,但是我换了我要分析的信号后就不能得出小波脊,求大家解释下。
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);

Mrchen 发表于 2018-4-2 20:06

有人吗
页: [1]
查看完整版本: 如何用小波脊提取信号的瞬时幅值和频率?