
python中scipy库可以用于科学计算,其中它的不同子模块相应于不同的应用。例如像scipy.signal模块就是信号处理工具,即使用scipy.signal.detrend()移除信号的线性趋势,scipy.signal.resample()使用FFT重采样n个点。
1、使用scipy.signal.detrend()移除信号的线性趋势
1 2 3 4 5 6 7 8 9 10 11 12 | import numpy as np
import pylab as plt
from scipy import signal
t = np.linspace(0, 3, 200)
x = t + np.random.normal(size=200)
plt.plot(t, x, linewidth=3)
#移除信号的线性趋势
plt.plot(t, signal.detrend(x), linewidth=3)
plt.show()
|
2、scipy.signal.resample()使用FFT重采样n个点
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | import numpy as np
t = np.linspace(0, 5, 100)
x = np.sin(t)
from scipy import signal
x_resampled = signal.resample(x, 25)
import matplotlib.pyplot as plt
plt.plot(t, x)
plt.plot(t[::4], x_resampled, 'ko' )
# plt.savefig( './sig1-1.png' ) # 保存要显示的图片
plt.show()
|
以上就是python中进行信号处理的两种实现方法,希望能对你有所帮助哟~