limengchao19 发表于 2010-12-9 23:02

求助,EMD求瞬时频率时出问题

用EMD做一个频率突变的例子,但是瞬时频率好像不对,两端应该是5HZ啊,程序如下:
x=0:0.0001:1;

y1=zeros(size(x));
y2=zeros(size(x));
y3=zeros(size(x));
N=length(x);
for k=1:N
    if x(k)<0.63&x(k)>=0
       y1(k)=cos(2*pi*5*x(k)) ;
    elseif x(k)>=0.63&x(k)<0.6357
      y2(k)=-1.02*x(k)+1.2354;
    else
      y3(k)=cos(2*pi*5*x(k)-0.2);
    end
end
y=y1+y2+y3;
figure(1)
plot(x,y);

imf=emd(y);
=size(imf);
figure(2)
for i=1:m
   
    subplot(m,1,i);
    plot(x,imf(i,:));
end
figure(3)
P=hilbert(imf(1,:));
   th   = unwrap(angle(P));%Hilbert变换的相位
   
   d = diff(th)*10000/(2*pi);%求导,得到频率:f = (1/2*pi)*d(th)/dt

plot(d)
图如下:
1、原始信号

2、EMD分解

3、IMF1瞬时频率


dzkt 发表于 2010-12-13 00:44

瞬时频率好像不对,不应该是负值

yuwenamy 发表于 2012-3-3 10:33

{:{39}:}
页: [1]
查看完整版本: 求助,EMD求瞬时频率时出问题