滤波

滤波主要分为两种,时域和频域滤波。时域滤波又可分为平均值、中值滤波、卡尔曼滤波。频域滤波又可分为低通、高通、带通、带阻滤波。本文介绍使用python实现一维数据低通滤波:

import numpy as np
import matplotlib.pyplot as plt

x = np.arange(0,10*np.pi,0.01)
y = np.sin(x)

plt.plot(x,y)
plt.show()

滤波

原始数据如上。

加入噪声。

s = np.random.random(3142)*0.2

yy = s+y

plt.plot(x[0:628],yy[0:628])
plt.show()

滤波

加入噪声的数据如上。

使用scipy库中的signal函数进行滤波。

from scipy import signal
b,a = signal.butter(8,0.01,'lowpass')   8为滤波器阶数,0.01为滤波器截止频率,lowpass为低通
filldata = signal.filtfilt(b,a,yy)

plt.plot(x[0:628],filldata[0:628])
plt.show()

滤波