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<c0: r=0.0 else: r=1 return r x=np.linspace(-2,4,1000) y=np.array([rect_wave(t,2.0,-1.0) for t in x]) plt.ylim(-0.2,1.2) plt.plot(x,y) plt.show()
運行結果:

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)
運行結果:
第一篇:https://www.cnblogs.com/PlanetB613/p/13441680.html
—— END ——
