Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

how to use FFT to filter a 50Hz noise from a data array?

Tags:

java

android

Suppose I have a data array from an ECG like this one

http://joachim.behar.perso.neuf.fr/Joachim/ECG_tuto_1/ECG_filters_basics/ecg_sample.txt

and I need to filter a 50Hz noise out of it, using an algorithm like that

http://joachim.behar.perso.neuf.fr/Joachim/ECG_tuto_1/ECG_filters_basics/notch_filter.m

and the result should be like that ( red - filtered, blue - unfiltered ) seen in Figure 2:

enter image description here

What would be the best way of doing it in Java/android? Would this library help https://sites.google.com/site/piotrwendykier/software/jtransforms ?

Thanks! )

like image 514
Roger Travis Avatar asked Nov 03 '22 13:11

Roger Travis


1 Answers

In the article ECG elementary filtering, a notch filter is applied in the (mis-numbered) section on Removing power line noise; the result is displayed in Figure 2. This Java ImageJ plugin, Notch_Filters, "implements the most common Notch filters in the frequency domain." While the example is not directly portable to android, it might allow you to select a particular implementation to re-implement.

Note that the article expands on the limitations of the approach.

Addendum: The notch filter relies on an FFT, so you'll need both.

like image 105
trashgod Avatar answered Nov 09 '22 19:11

trashgod