03 使用python生成時域波形(numpy & scipy)

01 生成正弦波形

import numpy as np
import scipy.signal as sig
import matplotlib.pyplot as plt
fs=256
t=np.arange(0,1,1/fs)
xt=np.sin(2*np.pi*5*t) #初相位為0度
plt.plot(t,xt)

03 使用python生成時域波形(numpy & scipy)的圖1

import numpy as np
import scipy.signal as sig
import matplotlib.pyplot as plt
fs=256
t=np.arange(0,1,1/fs)
xt=np.sin(2*np.pi*5*t+np.pi/2) #初相位為90度
plt.plot(t,xt)

03 使用python生成時域波形(numpy & scipy)的圖2


02 生成余弦波形

import numpy as np
import scipy.signal as sig
import matplotlib.pyplot as plt
fs=256
t=np.arange(0,1,1/fs)
xt=np.cos(2*np.pi*5*t) #初相位為0度
plt.plot(t,xt)

03 使用python生成時域波形(numpy & scipy)的圖3


03 生成三角波形

import numpy as np

import scipy.signal as sig
import matplotlib.pyplot as plt
fs=256
t=np.arange(0,1,1/fs)
xt=sig.sawtooth(2*np.pi*5*t,1) #上斜
plt.plot(t,xt)

03 使用python生成時域波形(numpy & scipy)的圖4

import numpy as np
import scipy.signal as sig
import matplotlib.pyplot as plt
fs=256
t=np.arange(0,1,1/fs)
xt=sig.sawtooth(2*np.pi*5*t,0.5) #等腰三角
plt.plot(t,xt)

03 使用python生成時域波形(numpy & scipy)的圖5

import numpy as np
import scipy.signal as sig
import matplotlib.pyplot as plt
fs=256
t=np.arange(0,1,1/fs)
xt=sig.sawtooth(2*np.pi*5*t,0) #下斜
plt.plot(t,xt)

03 使用python生成時域波形(numpy & scipy)的圖6


04 生成矩形波形

import numpy as np
import scipy.signal as sig
import matplotlib.pyplot as plt
fs=256
t=np.arange(0,1,1/fs)
xt=sig.square(2*np.pi*5*t,0.25)
plt.plot(t,xt)

03 使用python生成時域波形(numpy & scipy)的圖7

import numpy as np
import scipy.signal as sig
import matplotlib.pyplot as plt
fs=256
t=np.arange(0,1,1/fs)
xt=sig.square(2*np.pi*5*t,0.5)
plt.plot(t,xt)
03 使用python生成時域波形(numpy & scipy)的圖8

import numpy as np
import scipy.signal as sig
import matplotlib.pyplot as plt
fs=256
t=np.arange(0,1,1/fs)
xt=sig.square(2*np.pi*5*t,0.75)
plt.plot(t,xt)

03 使用python生成時域波形(numpy & scipy)的圖9


05 生成掃頻波形

import numpy as np
import scipy.signal as sig
import matplotlib.pyplot as plt
fs=256
t=np.arange(0,5,1/fs)
xt=sig.chirp(t,6,5,1,method='linear') #線性掃頻
plt.plot(t,xt)
plt.title('linear sweep,f0=6Hz,f1=1Hz')
plt.xlabel('t(sec)')

頻率 f(t) = f0 + (f1 - f0) * t / t1

03 使用python生成時域波形(numpy & scipy)的圖10

import numpy as np
import scipy.signal as sig
import matplotlib.pyplot as plt
fs=256
t=np.arange(0,5,1/fs)
xt=sig.chirp(t,6,5,1,method='quadratic') #二次掃頻
plt.plot(t,xt)
plt.title('quadratic sweep,f0=6Hz,f1=1Hz')
plt.xlabel('t(sec)')

頻率 f(t) = f0 + (f1 - f0) * t**2 / t1**2

03 使用python生成時域波形(numpy & scipy)的圖11

import numpy as np
import scipy.signal as sig
import matplotlib.pyplot as plt
fs=256
t=np.arange(0,5,1/fs)
xt=sig.chirp(t,6,5,1,method='logarithmic') #對數掃頻
plt.plot(t,xt)
plt.title('logarithmic sweep,f0=6Hz,f1=1Hz')
plt.xlabel('t(sec)')

頻率 f(t) = f0 * (f1/f0)**(t/t1)

03 使用python生成時域波形(numpy & scipy)的圖12
import numpy as np
import scipy.signal as sig
import matplotlib.pyplot as plt
fs=256
t=np.arange(0,10,1/fs)
p=np.poly1d([0.02, -0.3, 1.5, 2])
xt=sig.sweep_poly(t, p)
plt.subplot(211)
plt.plot(t, xt)
plt.subplot(212)
plt.plot(t, p(t), c='r', label='f(t)')
plt.legend()
plt.xlabel('t(sec)')

頻率 f(t)=0.02*t**3 - 0.3*t**2 + 1.5*t + 2

03 使用python生成時域波形(numpy & scipy)的圖13

登錄后免費查看全文
立即登錄
App下載
技術鄰APP
工程師必備
  • 項目客服
  • 培訓客服
  • 平臺客服

TOP

1