I know this is maybe a very basic question but I am doing this as a hobby and I can't find a solution to this problem. Basically I am trying to remove some noise from data I am reading from an accelerometer. This is what I want to achieve: ![enter image description here][1] I read [here][2] that Total Variaton Denoising would fit my needs. So I read [this][3] article from Wikipedia and I think I have to use one of this equations: ![enter image description here][4] ![enter image description here][5] But I don't understand how I apply this to my signal. Suppose I have a set of x,y points like in the plots above, how I apply the equation to that data? I implemented some simple low-pass and high-pass filters like this: gravity[0] = alpha * gravity[0] + (1 - alpha) * event.values[0]; But this is maybe too complex and I don't know where to start or how. I want to implement this in Java or C so Matlab is not an option (I have seen a lot of MatLab implementing this). I will appreciate any help to guide me in the right direction! [1]: https://i.sstatic.net/3pc1B.png [2]: https://dsp.stackexchange.com/questions/3026/picking-the-correct-filter-for-accelerometer-data%20%22%22 [3]: http://en.wikipedia.org/wiki/Total_variation_denoising%20%22%22 [4]: https://i.sstatic.net/d4eiM.png [5]: https://i.sstatic.net/Nyjec.png