2
$\begingroup$

What is a Butterworth filter?

I have raw X, Y, Z acceleration sensor data that I need to smooth them from noise. I have read that a Butterworth filter is one of the most appropriate for the specific kind of job I am working on.

Is that filter being applied directly on the raw data (time-amplitude domain) or I need to translate the data to the frequency-amplitude domain (using FFT)?

Is IIR any kind of a Butterworth filter?

What do I make with the result from that filter? Do I multiply it on my data in order to filter them out?

$\endgroup$
3
  • $\begingroup$ I have no idea, but with any signal processing my first step is usually to try scipy to see if it supplies a black box. In this case: docs.scipy.org/doc/scipy-0.14.0/reference/generated/… Also related: stackoverflow.com/questions/12093594/… $\endgroup$
    – ericksonla
    Aug 2, 2018 at 20:47
  • 2
    $\begingroup$ Try typing "Butterworth filter" into Google. Your question suggests you haven't attempted to do any research yourself. You can implement it either in the time or frequency domains, or even with analogue electronic circuit. $\endgroup$
    – alephzero
    Aug 2, 2018 at 21:49
  • $\begingroup$ @alephzero No. I have done plenty of research but in the internet you only find articles with huge amount of mathematics (something I am weak). I have also found the book 'Digital signal Processing' from Steven W. Smith, but it is a book of 700 pages with plenty of math. Stating such question here, I was just expecting some kind of answer for dummies. $\endgroup$ Aug 3, 2018 at 12:27

3 Answers 3

2
$\begingroup$

This.... this is the content of most of a semester on digital signal processing. You said, "I found [a book on signal processing], but it is a book of 700 pages with plenty of math." Well, yes. Welcome to digital signal processing.

You then said, "I was just expecting some kind of answer for dummies." Okay, Wikipedia says it's a type of filter "designed to have a frequency response as flat as possible in the passband. It is also referred to as a maximally flat magnitude filter."

Filter design is typically done in the frequency/Laplace domain. If you want something you can use, then you need to convert back to the time domain. That would leave you with a continuous time filter; if you want a discrete time filter (you do), then you would use a discrete time approximation.

$\endgroup$
2
$\begingroup$

A Butterworth filter is just a type of filter (there are lots of types) with a particular shape to its response. In your situation, a Butterworth filter would be used as a low-pass filter (LPF) to cut off higher-frequencies that contain noise. The filter can be implemented either on time-domain samples or on the frequency domain (after FFT), but if you want to use the data quickly then you probably need to process it in the time domain. You correctly refer to IIR (infinite impulse response - another option is FIR or Finite Impulse Response). There are filters that are constructed as a series of 'taps' (or 'weights') that are multiplied by the present sample and a series of previous samples, then summed and averaged. You will need to learn a bit about FIR/IIR implementations of a low-pass filter to calculate tap values to give you a cut-off above your signal frequency (but low enough to cut out the noise). This might seem complicated so here is a simple example of a 'tap' based filter - add the present sample to the previous 4 and divide by 5. The output of that filter is a low-pass, because it is simply a moving average - all the tap values are simply '1'. Your next step is.... check out how to implement a simply low-pass FIR filter, and try to implement it! Good luck :)

$\endgroup$
1
$\begingroup$

Use a filter as a noise gate. Your signal or data with it phase reversed will drive the filter the filter in turn drives a vca. The original signal is being passed through the filter proper. Then you will balance the difference in amplitude or and phase of either or both signals to remove the noise. This has the least buffer and lag time I think. Also is this in hardware anolog, digital or programming? Should be no noise in the first place? IO streams or is this a type of tap? Maybe to look into something without cross talk.Fortran? Go back to your hardware to see how it is working with your ...data?

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.