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