Reputation: 11
I want to use data from a magnetometer to gain information about the motion of a metal object near it. After recording the data, I need to remove noise from the data before using it. What is a good method to remove noise? I read about filters in Matlab here but cannot decide which one to use. How can I decide which filter to use?
Edit: The metal object moves at a steady rate and I want to find out the angle of its motion. I am adding a graph from my sample data which I want to filter. Sample Magnetometer data
Upvotes: 0
Views: 661
Reputation: 98
I guess you're able to record the noise. And if you can do it, yo can also use some adaptive filtering.
From MathWorks' Overview of Adaptive Filters and Applications:
Block Diagram That Defines the Inputs and Output of a Generic RLS Adaptive Filter
You can use recorded noise as desired signal and your error signal should be around 0 without any motion near it, and should have some filtered value when the motion appears.
You can find an example of adaptive filtering on the MathWorks website:
Consider a pilot in an airplane. When the pilot speaks into a microphone, the engine noise in the cockpit combines with the voice signal. This additional noise makes the resultant signal heard by passengers of low quality. The goal is to obtain a signal that contains the pilot's voice, but not the engine noise. You can cancel the noise with an adaptive filter if you obtain a sample of the engine noise and apply it as the input to the adaptive filter.
Read more about adaptive filtering:
Upvotes: 1