首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >滤波/去噪

滤波/去噪
EN

Stack Overflow用户
提问于 2015-04-30 19:52:41
回答 1查看 6.1K关注 0票数 1

问题很简单。如何消除数据中的噪声?我合成了一些x和y值,以及一些噪声,这是我所处理的数据的总体简化(除了随机噪声之外,我无法使之与我必须处理的噪声相同)。我真的不知道我是否需要过滤或平滑。我的文件包含两组需要绘制的数据,这些数据中存在实验噪声,什么是删除它的最佳方法?平滑还是过滤?

最近,我在另一篇文章中发布了这段代码,我所做的就是给它添加噪音。

代码语言:javascript
复制
import matplotlib.pyplot as plt
import numpy as np
from scipy.optimize import curve_fit, minimize_scalar 

x1 = [1,2,2.5,3.2,2.8,3.5,4,5]
y = [1,4,9.2,16,16.1,9.6,4,1]
noise = np.random.normal(0,1,8)
x = x1 + noise #bring on the noise

def f(x, p1, p2, p3):
return p3*(p1/((x-p2)**2 + (p1/2)**2))   

p0 = (8, 16, 0.1) # guess perameters 
plt.plot(x,y,"ro")
popt, pcov = curve_fit(f, x, y, p0)

fm = lambda x: -f(x, *popt) #this part and below is not my code but the 
#solution to my previous question     
r = minimize_scalar(fm, bounds=(1, 5))
print "maximum:", r["x"], f(r["x"], *popt)

x_curve = np.linspace(1, 5, 100)
plt.plot(x_curve, f(x_curve, *popt))
plt.plot(r['x'], f(r['x'], *popt), 'ko')
plt.show()

如果我去掉噪音,用x代替x1 .我的数据点得到了一个不错的冷杉。当涉及噪音时,我怎样才能接近这个?

EN

回答 1

Stack Overflow用户

发布于 2018-10-27 00:05:07

利用卡尔曼滤波去除噪声的最简单的方法。假设你的数据(测量)有一些噪音。你想用过滤器修正。使用卡尔曼滤波器并根据您的数据转换更改transition_covariance变量。

代码语言:javascript
复制
import matplotlib.pyplot as plt 
from pykalman import KalmanFilter 
import numpy as np

measurements = np.asarray([1, 2, 3, 5, 3, 2, 1, 2, 4, 5,7, 9, 10, 8, 5, 1]) 
kf = KalmanFilter(transition_matrices=[1],
                  observation_matrices=[1],
                  initial_state_mean=measurements[0],
                  initial_state_covariance=1,
                  observation_covariance=5,
                  transition_covariance=1) #0.01) 
state_means, state_covariances = kf.filter(measurements) 
state_std = np.sqrt(state_covariances[:,0]) 
print (state_std) 
print (state_means) 
print (state_covariances)

plt.plot(measurements, '-r', label='measurment') 
plt.plot(state_means, '-g', label='kalman-filter output') 
plt.legend(loc='upper left') 
plt.show()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29976619

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档