求助,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瞬时频率
瞬时频率好像不对,不应该是负值 {:{39}:}
页:
[1]