怎么用matlab画包络线 上下两条都要,急用 跪谢!

h1=1.0163;
h2=0.056;
x=[0:0.05:9.5];
k1=(h1+h2)-h1.*sin(pi.*x).*cos(pi.*x)./(pi.*x)-0.21*h2.*sin(4.76*pi.*x)./(pi.*x);

用matlab画包络线 上下两条都要仅需要如下四步即可解决:

1、调制波形,本次需要演示的调制波形如下图所示。

2、包络线的绘制,下面的代码就是利用matlab来绘制第一步信号的包络线,并且将包络线和原信号绘制在同一张图上。

3、在上一步的代码绘制处的调制信号的包络线图形。

4、使用下面的比较的指令,再看结果如下图所示即可。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-03-15

clc,clear all,close all
h1=1.0163;h2=0.056;
x=[0.05:0.05:9.5];
k1=(h1+h2)-h1.*sin(pi.*x).*cos(pi.*x)./(pi.*x)-0.21*h2.*sin(4.76*pi.*x)./(pi.*x);

[up,down] = envelope(x,k1,'linear');  %包络线自定义函数

plot(x,k1,'g-'); hold on;
plot(x,up,'r-.');
plot(x,down,'r-.');
xlabel('x'),ylabel('k1')
hold off

追问

同样是包络线

如果我想画图中那条黑线怎么办啊 谢谢了大侠!

第2个回答  推荐于2017-10-01

其实就是把表达式中的三角函数分别取最大值和最小值(乘积项要进行一下变换)。

 

参考代码:

h1=1.0163;h2=0.056;x=[0:0.05:9.5];
k1=(h1+h2)-h1.*sin(pi.*x).*cos(pi.*x)./(pi.*x)-0.21*h2.*sin(4.76*pi.*x)./(pi.*x);
ku=(h1+h2)+h1.*0.5./(pi.*x)+0.21*h2./(pi.*x);
kl=(h1+h2)-h1.*0.5./(pi.*x)-0.21*h2./(pi.*x);
plot(x,k1)
hold on
plot(x,ku,'r--',x,kl,'g:')
ylim([0 1.4])

 

追问

谢谢 我画出来了

本回答被提问者采纳
相似回答