戳鏈接看第一篇:
Python信號(hào)分析 | 信號(hào)的表示(一)
1、三角信號(hào)
三角信號(hào)在MATLAB中用tripuls函數(shù)表示。
ft=tripuls(t,width,skew)
產(chǎn)生幅度為1,寬度為width,且以0為中心左右各展開width/2大小,斜度為skew的三角波。
width默認(rèn)值為1,skew的取值范圍為[-1,1]。
在Python中用一個(gè)分段函數(shù)來表示三角信號(hào)。
Python代碼如下:
"""
三角信號(hào)
"""
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()
運(yùn)行結(jié)果如下圖:
2、復(fù)指數(shù)信號(hào)
在MATLAB中,復(fù)指數(shù)函數(shù)的調(diào)用格式為:
exp((a+j*w)*t)
在Python中的函數(shù)表示為:
exp((complex(a,w))*t)
Python代碼如下:
"""
復(fù)指數(shù)信號(hào)
"""
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'實(shí)部')
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()
運(yùn)行結(jié)果:
3、矩形脈沖信號(hào)
在MATLAB中,矩形脈沖信號(hào)可用rectpuls函數(shù)產(chǎn)生,其調(diào)用格式為:
y=rectpuls(t,width)
該函數(shù)生成幅度為1,寬度為width,以t=0為對稱中心的矩形脈沖信號(hào)。
Python中用一個(gè)分段函數(shù)表示矩形脈沖信號(hào)。
代碼如下:
"""
矩形脈沖信號(hào)
"""
import numpy as np
import matplotlib.pyplot as plt
def rect_wave(x,c,c0): #起點(diǎn)為c0,寬度為c的矩形波
if x>=(c+c0):
r=0.0
elif x
運(yùn)行結(jié)果:
4、階躍信號(hào)
在MATLAB中,階躍信號(hào)用“t>=0”產(chǎn)生,調(diào)用格式為:
ft=(t>=0)
在Python中可以用where函數(shù)繪制其波形,調(diào)用格式為:
where(condition,[x,y])
該函數(shù)的返回結(jié)果是根據(jù)前面的條件判斷輸出x還是y。
Python代碼如下:
"""
階躍信號(hào)
"""
import numpy as np
import matplotlib.pyplot as plt
#定義階躍信號(hào)
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()
運(yùn)行結(jié)果:
5、符號(hào)算法表示正弦信號(hào)
Python代碼如下:
"""
符號(hào)算法表示正弦信號(hào)
"""
import numpy as np
from sympy import plot,sin,Symbol
t=Symbol('t') #定義符號(hào)變量t
y=sin(np.pi/4*t)
plot(y)
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
