Python信号分析 | 信号的表示(三) 【离散信号的表示】
1、指数序列
指数序列一般形式为Aan., 可以用MATLAB中数组幂运算(即点幂运算)a.^n来实现。
Python中用a**n实现。
Python代码如下:
""" 离散信号表示之指数序列 """ import numpy as np import matplotlib.pyplot as plt n=np.arange(0,15) a=3.0/4 f=a**n plt.subplot(221) plt.title(u'a=3/4') plt.stem(n,f) a=-3.0/4 f=a**n plt.subplot(222) plt.title(u'a=-3/4') plt.stem(n,f) a=5.0/4 f=a**n plt.subplot(223) plt.title(u'a=5/4') plt.stem(n,f) a=-5.0/4 f=a**n plt.subplot(224) plt.title(u'a=-5/4') plt.stem(n,f) plt.show()
运行结果:
2、正弦序列
正弦序列一般形式为Asin(βn)或是Acos(βn),表示方法与连续信号类似。
Python代码如下:
""" 正弦序列 """ import numpy as np import matplotlib.pyplot as plt n=np.arange(0,40) plt.ylim(-1,1) plt.subplot(211) plt.title(u'sin(npi/6)') plt.stem(n,np.sin(n*np.pi/6)) plt.subplot(212) plt.title(u'sin(5n)') plt.stem(n,np.sin(5*n)) plt.show()
运行结果:
3、单位序列
在Python中可以用where函数来实现单位序列。
代码如下:
""" 单位序列 """ import numpy as np import matplotlib.pyplot as plt def dwxl(t): r=np.where(t==0.0,1.0,0.0) return r n=np.arange(-4,8) plt.ylim(0,2) plt.stem(n,dwxl(n)) plt.show()
运行结果:
4、阶跃序列
在Python中同样可以用where函数来实现单位序列。
代码如下:
""" 阶跃序列 """ import numpy as np import matplotlib.pyplot as plt def dwjy(t): r=np.where(t>=0.0,1.0,0.0) return r n=np.arange(-4,8) plt.ylim(0,2) plt.stem(n,dwjy(n)) plt.show()
运行结果:
—————— end ——————