python中可用于科学计算的scipy库它的不同子模块对应于不同的应用程序。例如,scipy.signal模块是信号处理工具,即使用scipy.signal.detrend()移除信号的线性趋势势,scipy.signal.resample()使用FFT重新采样n个点。
1、使用scipy.signal.detrend()移除信号的线性趋势
importnumpyasnp importpylabasplt fromscipyimportsignal 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个点
importnumpyasnp t=np.linspace(0,5,100) x=np.sin(t) fromscipyimportsignal x_resampled=signal.resample(x,25) importmatplotlib.pyplotasplt plt.plot(t,x) plt.plot(t[::4],x_resampled,'ko') #plt.savefig('./sig1-1.png')#保存要显示的图片 plt.show()
以上是python中信号处理的两种实现方法,希望对你有所帮助~