8

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!

Damien
  • 606
  • 2
  • 8
  • 13

1 Answers1

6

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.

Jim Clay
  • 12,101
  • 31
  • 55
  • Is there a "best" class of FIR for this problem? Or should a windowed-sinc be sufficient? – Damien Sep 03 '12 at 22:43
  • 1
    Yes, a windowed-sinc should be fine. – Jim Clay Sep 04 '12 at 02:04
  • 2
    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. – Jim Clay Sep 04 '12 at 02:51