8
$\begingroup$

I have a sensor producing (more or less) bandlimited data with a cut-off of about 45Hz, with a roll-off and AWGN. I have an ADC that samples said signal at 800Hz, with a single-pole anti-aliasing filter at about 200Hz. The problem is, I only have enough communication bandwidth to send samples at 100Hz and therefore some decimation is necessary.

Currently, I simply have an 8-sample moving average filter and send every 8th sample. This feels dirty and suboptimal. Surely there must be a better way.

Is there an accepted "best" thing to do in this instance? Should I, for example, do a low-pass FIR filter to squeeze out as close to 50Hz of signal bandwidth as possible? Or, is there some sort of optimal estimation scheme will do better?

The aim is to implement several channels (9 channels) on a smallish microcontroller (ARM Cortex M4, for example), so the computationally cheaper the better!

$\endgroup$
6
$\begingroup$

Should I, for example, do a low-pass FIR filter to squeeze out as close to 50Hz of signal bandwidth as possible?

Yes, that is exactly what you should do. That is an extremely low data rate, so even with a wimpy processor I would think that should be able to do a pretty good filter. Especially since you only need to calculate $\frac{1}{8}$ of the filter outputs.

$\endgroup$
  • $\begingroup$ Is there a "best" class of FIR for this problem? Or should a windowed-sinc be sufficient? $\endgroup$ – Damien Sep 3 '12 at 22:43
  • 1
    $\begingroup$ Yes, a windowed-sinc should be fine. $\endgroup$ – Jim Clay Sep 4 '12 at 2:04
  • 2
    $\begingroup$ Although you can create the filter with a literal windowed-sinc, it would probably be easier to do using the remez algorithm. With it you can specify your pass-band bandwidth, cutoff frequency, and filter order, and it will come up with the best equiripple filter possible given those constraints. $\endgroup$ – Jim Clay Sep 4 '12 at 2:51

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.