1.5.9 信号处理:scipy.signal
In [13]:
from scipy import signal
import matplotlib.pyplot as pl
- scipy.signal.detrend(): 从信号中删除线性趋势:
In [14]:
t = np.linspace(0, 5, 100)
x = t + np.random.normal(size=100)
pl.plot(t, x, linewidth=3)
pl.plot(t, signal.detrend(x), linewidth=3)
Out[14]:
[<matplotlib.lines.Line2D at 0x10781e590>]
- scipy.signal.resample(): 用FFT从信号中抽出n个点。
In [15]:
t = np.linspace(0, 5, 100)
x = np.sin(t)
pl.plot(t, x, linewidth=3)
pl.plot(t[::2], signal.resample(x, 50), 'ko')
Out[15]:
[<matplotlib.lines.Line2D at 0x107855cd0>]
- scipy.signal 有许多窗口函数:scipy.signal.hamming(), scipy.signal.bartlett(), scipy.signal.blackman()…
- scipy.signal 有滤镜 (中位数滤镜scipy.signal.medfilt(), Wienerscipy.signal.wiener()), 但是我们将在图片部分讨论这些。