scipy.signal模块专门用于信号处理。
重新采样
scipy.signal.resample()函数使用FFT将信号重采样成n个点。
示例
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()
输出

去除趋势
scipy.signal.detrend()函数从信号中去除线性趋势。
示例
import numpy as np t = np.linspace(0, 5, 100) x = t + np.random.normal(size=100) from scipy import signal x_detrended = signal.detrend(x) import matplotlib.pyplot as plt plt.plot(t, x) plt.plot(t, x_detrended) # plt.savefig('./sig2-1.png') # 保存要显示的图片 plt.show()
输出

滤波
对于非线性滤波,scipy.signal模块中提供了中值滤波scipy.signal.medfilt(), 维纳滤波scipy.signal.wiener()。滤波的使用,可参考图像处理章节,不再赘述。
频谱分析
scipy.signal.spectrogram()计算连续时间窗上的频谱图scipy.signal.welch()计算功率谱密度(PSD)
本文来自博客园,作者:大码王,转载请注明原文链接:https://www.cnblogs.com/huanghanyu/
posted on
浙公网安备 33010602011771号