Smooth of series data

非 Y 不嫁゛ 提交于 2019-12-08 05:39:03

问题


i need to smooth better this kind of plot, I've already used a moving average (10 points) to get this plot but it's not yet perfect. I want to remove all these little peaks dued by noise, I need to consider only the bigger ones because I'm counting the num of beats from a sensor. (ie.: in the first 30 seconds I should have just one peak instead of several successive little peaks)

I thought to use a cubic spline but isn't simple to implement in C and it's going to take almost 1-2 weeks of work.

Is there a simpler method / algorithm to use for this achievement? I'm working on this project for iOS (iPhone) environment.

a busy cat http://img15.imageshack.us/img15/1929/schermata022455973alle1o.png


回答1:


The answer to your question depends a lot on the underlying data. Is the jaggedness of the data really 'noise' or is it really jagged data.

Strategies you could try:

  • windowing the data and take the median/mean in each window -- so each window is 50 (from your x axis)
  • sample the data
  • Nonlinear least squares curve fit (you'd probably have to use a C++ library for that, here is an open source version you could port http://www.ics.forth.gr/~lourakis/levmar/)
  • some sort of naive bezier smoothing should be pretty easy.

All of these methods have ramifications and none are without problems. Good luck.



来源:https://stackoverflow.com/questions/9311168/smooth-of-series-data

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!