|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
我自己用正弦信号,试了一段包络的程序,感觉上包络线不对吧,请各位帮忙啊!
程序如下:
clear;
clc
fs=512;N=256
t=0:1/fs:(N-1)/fs;t=t';
f1=5;f2=100;
x=sin(2*pi*f2*t)
n=length(x);
s=x;
t=0:length(s)-1;
s1=s;
sd=1;
if(sd>0.3)
jd=find(diff(sign(diff(s1)))==-2)+1; %找h1极大值的位置
jx=find(diff(sign(diff(s1)))==2)+1; %找h1极小值的位置
ah=length(jd);
al=length(jx);
jdz(ah)=0;
for i=1:ah
bh=jd(i);
jdz(i)=s1(bh);
end %找出h1极大值对应函数值
jxz(al)=0;
for i=1:al
bl=jx(i);
jxz(i)=s1(bl);
end %找出h1极小值对应函数值
jsbl=spline(jd,jdz,t); %极大值拟和的上包络
jxbl=spline(jx,jxz,t) %极小值拟和的下包络
m1=(jsbl+jxbl)/2; %上下包络均值
m1=m1';
h1=s1-m1;
sd=sum(((s1-h1)./h1).^2);
end
subplot(511)
plot(t,x)
subplot(512)
plot(t,x)
axis([0 300 -1 -0.5])
hold on;
subplot(513)
plot(t,jxbl)
axis([0 300 -1 -0.5])
subplot(514)
plot(t,x)
axis([0 300 0.5 1])
subplot(515)
plot(t,jsbl)
%title('采用EMD中的包络方法');
结果如下:
上包络线是不是不对啊?
|
|