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)
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)
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 生成三角波形
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)
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)
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)
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)
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)
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)
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
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
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)
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

工程师必备
- 项目客服
- 培训客服
- 平台客服
TOP
