马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
%l利用希尔伯特直接正交发求瞬时频率
clear ;clc;
t=0:300;
x0=@(t)sin(0.027*pi*t)-sin(2*(0.027*pi)*t+pi/2)+sin(4*(0.027*pi)*t);%信号x(t)
y0=x0(t);
figure(1);
plot(t,y0);
axis([0 300 -4 4]);
x1=@(t)(((t-120)==0)|((t-240)==0));%脉冲信号v(t)
y1=x1(t);
figure(2);
plot(t,y1);
axis([0 300 -0.1 0.1]);
y2=y0+y1;
imf = emd(y2);%EMD 分解
x3=imf(1,:);%用第一个imf
x4=x3';
figure(3);
subplot(411);plot(t,imf(1,:));
axis([0 300 -1 1]);
subplot(412);plot(t,imf(2,:));
axis([0 300 -1 1]);
subplot(413);plot(t,imf(3,:));
axis([0 300 -1 1]);
subplot(414);plot(t,imf(4,:));
axis([0 300 -1 1]);
[instf,t]=instfreq(x4);%用HT求得瞬时频率
instf = sym('instf');
y=int(instf);%积分
b=cos(y);%求的F(T)
z1=1-b^2;
z2=sqrt(z1);%求得Y(T)
z3=b./z2;
z4=atan(z3);
dt=diff(t);
dx=diff(z4);
f=0.5.*pi*dx./dt;%求瞬时频率
f1=sym(f);
figure(4);
plot(t,f1);
大家帮我看看程序错在哪里了?尤其是最后图显示不出来, |