Python信号分析 | 信号的表示(二)【三角、复指数、矩形脉冲、阶跃】

戳链接看第一篇:
Python信号分析 | 信号的表示(一)

1、三角信号
三角信号在MATLAB中用tripuls函数表示。


ft=tripuls(t,width,skew)

产生幅度为1,宽度为width,且以0为中心左右各展开width/2大小,斜度为skew的三角波。
width默认值为1,skew的取值范围为[-1,1]。
在Python中用一个分段函数来表示三角信号。
Python代码如下:


"""
三角信号
"""
import numpy as np
import matplotlib.pyplot as plt
def triangle_wave(x,c,hc):    #幅度为hc,宽度为c,斜度为hc/2c的三角波
if x>=c/2:
r = 0.0
elif x<=-c/2:
r = 0.0
elif x > -c/2 and x<0:
r=2*x/c*hc+hc
else:
r=-2*x/c*hc+hc
return r
x=np.linspace(-3,3,1000)
y=np.array([triangle_wave(t,4.0,1.0) for t in x])
plt.ylim(-0.2,1.2)
plt.plot(x,y)
plt.show()

运行结果如下图:

2、复指数信号
在MATLAB中,复指数函数的调用格式为:
exp((a+j*w)*t)
在Python中的函数表示为:
exp((complex(a,w))*t)
Python代码如下:


"""
复指数信号
"""
import numpy as np
import matplotlib.pyplot as plt
t=np.linspace(-3.0,3.0,1000)
plt.ylim(0,4)
f=2*np.exp((complex(-0.5,8))*t)
plt.subplot(221)
plt.title(u'实部')
plt.plot(t,np.real(f))
plt.subplot(222)
plt.title(u'虚部')
plt.plot(t,np.imag(f))
plt.subplot(223)
plt.title(u'绝对值')
plt.plot(t,np.abs(f))
plt.subplot(224)
plt.title(u'angle')
plt.plot(t,np.angle(f))
plt.show()

运行结果:

3、矩形脉冲信号
在MATLAB中,矩形脉冲信号可用rectpuls函数产生,其调用格式为:
y=rectpuls(t,width)
该函数生成幅度为1,宽度为width,以t=0为对称中心的矩形脉冲信号。
Python中用一个分段函数表示矩形脉冲信号。
代码如下:


"""
矩形脉冲信号
"""
import numpy as np
import matplotlib.pyplot as plt
def rect_wave(x,c,c0):     #起点为c0,宽度为c的矩形波
if x>=(c+c0):
r=0.0
elif x


运行结果:

4、阶跃信号
在MATLAB中,阶跃信号用“t>=0”产生,调用格式为:
ft=(t>=0)
在Python中可以用where函数绘制其波形,调用格式为:
where(condition,[x,y])
该函数的返回结果是根据前面的条件判断输出x还是y。
Python代码如下:


"""
阶跃信号
"""
import numpy as np
import matplotlib.pyplot as plt
#定义阶跃信号
def unit(t):
r=np.where(t>0.0,1.0,0.0)
return r
t=np.linspace(-1.0,3.0,1000)
plt.ylim(-1.0,3.0)
plt.plot(t,unit(t))
plt.show()

运行结果:

5、符号算法表示正弦信号
Python代码如下:


"""
符号算法表示正弦信号
"""
import numpy as np
from sympy import plot,sin,Symbol
t=Symbol('t')   #定义符号变量t
y=sin(np.pi/4*t)
plot(y)

运行结果:


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

Python信号分析 | 信号的表示(二)【三角、复指数、矩形脉冲、阶跃】 插图1

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

Python信号分析 | 信号的表示(二)【三角、复指数、矩形脉冲、阶跃】 插图2
温馨提示:本文最后更新于2022-12-31 15:53:39,某些文章具有时效性,若有错误或已失效,请在下方留言或联系Yave
------本页内容已结束,喜欢请分享------

感谢您的来访,获取更多精彩文章请收藏本站。

原发站点
Yave520-开发者社区
隐私政策
privacy-policy
用户协议
agreement
许可协议
NC-SA 4.0
© 版权声明
THE END
喜欢就支持一下吧
点赞15 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

夸夸
夸夸
还有吗!没看够!
取消
昵称常用语表情代码图片

    暂无评论内容