I am trying to create an adaptive noise canceller using the RLS algorithm. The dsp toolbox from matlab offers the RLS adaptive filter already implemented, so this saved me some trouble.
My goal is to filter out the hearth beat signal from the muscle signal, however, so far I have had zero to no success. After reading a decent amount of articles on the internet, I found out that the adaptive filters are suitable for this purpose as I have a reference signal of the electrocardiogram, which I want to remove. I chose the RLS algorithm, as it converges faster than the LMS algorithm, so it should be the better option. The filter order is set to 60 and the ForgettingFactor
is 0.999, which according to multiple sources, should result the removal of the noise signal, however, in my case the hearth beat signal is still significantly noticeable.
From the attached images, you can see that the signal is not filtered. Should I process the signal before using the adaptive filter or is the method wrong (or badly implemented) and I should try something else?
order
andForgettingFactor
parameters until I receive the wanted result. $\endgroup$moving weighted window
with ``window size = 7` on my signal to get a reference signal). $\endgroup$