|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
我的程序如下:
clear
fs=200;
t=0:1/fs:1;
s=cos(10*pi*t)+2*cos(40*pi*t);
figure(1)
plot(t,s)
c=emd(s);%进行emd分解
figure(2)
b=size(c,1);
for j=1:1:b
subplot(b+1,1,j)
plot(t,c(j,:))
end
subplot(b+1,1,b+1)
plot(t,sum(c))
% c(1,:)=cos(10*pi*t);
% c(2,:)=2*cos(40*pi*t);
l=length(s);
t=t(2:end-1);
figure(3)
% b=1;
for m=1:b
H(m,:)=hilbert(c(m,:));
% x(m,:)=real(H(m,:));
% y(m,:)=imag(H(m,:));
% fi(m,:)=atan(y(m,:)./x(m,:));%瞬时相位
% g(m,:)=szwf(fi(m,:),t);%求微分,求瞬时角频率
% f(m,:)=g(m,:)./(2*pi);%瞬时频率
f(m,:)=instfreq(H(m,:)');
f1= f(m,:)*fs;
subplot(b,1,m);
plot(t,f1);
xlabel('t(s)');
ylabel('freq(hz)')
title('时频图');
end
求出的频率为什么和采样频率有关,而且和原始信号不匹配?
但是下面这个程序求的信号就是正确的,希望得到大家的帮助
clear
T=10;
N=1000;
n=0:1:N-1;
dt=T/N;%采样周期
t=n*dt;
x=2*cos(40*pi*t);
y=hilbert(x');
[fnor,t]=instfreq(y);
fnor1=fnor*N/T;
fnor1(1,1)
plot(t,fnor1);
这个频率是正确的 |
|