matlab对信号包络的两种画法

假设信号

%%%%连续信号
t=0:0.001:20;
y=(1-0.7*cos(t)).*(cos(10*pi*t)+sin(9*pi*t));
plot(t,y);
hold on

希尔伯特变换绘制包络

%%%%希尔伯特变换绘制包络
z1=abs(hilbert(y));
z2=-abs(hilbert(y));
plot(t,z1,t,z2);

插值法绘制包络

d=diff(y);  
n=length(d);
d1=d(1:n-1);
d2=d(2:n);
dmin=find(d1.*d2<0&d1<0)+1;
dmax=find(d1.*d2<0&d1>0)+1;%返回极值点位置

y_min=spline(t(dmin),y(dmin),t);%三次样条插值,在每两点之间又增加一些点,让曲线更加光滑
y_max=spline(t(dmax),y(dmax),t);

plot(t,y_min,'r--')
plot(t,y_max,'g--')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值