I am working on a board that has no antialisaing filter at the input of the ADC. I have option to I implement my own filter using RC + Opamp circuit. But is it also possible to implement Anti Aliasing filter after sampling by ADC and processing in Digital domain: a digital Anti aliasing filter?


Just to support Matt's answer and provide a few more details:

Most modern ADCs do most of the hard antialiasing job in the digital domain. Reason is that digital filters tend to produce less by-products for a much lower cost. The actual chain is:

  • Analog Input.
  • Analog Anti-aliasing filter.
  • Oversampling (eg, at 8x).
  • Digital Anti-Aliasing Filter.
  • Decimating (reduction to 1x).
  • Digital Output.

The further illustrate, consider the following:

  • The audio is sampled at 44100Hz.
  • This provides a Nyquist frequency of 22050 Hz.
  • Any frequencies above 24100 Hz will alias back to the audible range (below 20kHz).
  • 20000Hz to 24100 is about quarter of an octave.
  • Even with a steep 80dB/8ve filter you will only be reducing the aliasing frequencies by 20dB.

But with 8x oversampling:

  • The audio is sampled at 352.8kHz (44.1kHz x 8).
  • Nyquist is 176.4 kHz.
  • Only frequencies above 332.8kHz will mirror to the audible range.
  • That's about 4 octaves.
  • So you can apply a 24dB/8ve analog filter to reduce aliasing frequencies by 96dB.
  • Then oversample.
  • Then apply linear phase digital filter between 20kHz and 24.1kHz

The following book is an excellent, clear resource for these sort of things.

| improve this answer | |
  • 1
    $\begingroup$ What you say is certainly true for audio applications (in which ready to use, integrated codec chips replaced ADC/DAC a long time ago) - but there are many fields of engineering in which the acquisition is still done by vanilla SAR ADCs (as standalone chips or built into microcontrollers) - and with these you have to do the hard work! $\endgroup$ – pichenettes May 21 '13 at 21:38
  • $\begingroup$ That's a great comment. Yet I believe the answer still stands - if you can afford it, digital anti-aliasing filters brings about many benefits. $\endgroup$ – Izhaki May 22 '13 at 8:54
  • $\begingroup$ just wanted to know is this the way to make sure that the analog filters will have small geometry and weight? $\endgroup$ – gpuguy May 22 '13 at 10:30
  • 1
    $\begingroup$ If I understand the question correctly then yes - using a digital filter will mean a much simpler analog fiter (particularly if quality is to account for). $\endgroup$ – Izhaki May 22 '13 at 11:47
  • $\begingroup$ Do you mean "decimate" at the second-to-last step in the oversampling workflow? $\endgroup$ – Nick T Apr 28 '14 at 18:59

No, this does not make sense. Say your ADC sample rate is 1kHz. A 100 Hz sine wave and a 900 Hz sine wave will yield exactly the same sequence of digital samples once fed into your ADC - but you want to pass the former and attenuate the later. How do you expect your digital filter to produce different outputs when fed the same input?

The only thing that could work would be to sample the input signal as fast as your ADC allows, and then downsample it in the digital domain to your target sample rate - but unless you have CPU cycles to waste, you'd better use an analog filter upstream.

| improve this answer | |
  • 1
    $\begingroup$ "A 100 Hz sine wave and a 900 Hz sine wave will yield exactly the same sequence of digital samples". This is in general not true (although I understand what you mean). $\endgroup$ – niaren May 20 '13 at 18:57
  • 3
    $\begingroup$ Okay, this requires a particular condition on their phases to work but this is not the point! The point is that your digital samples might look like they come from a 100 Hz sine wave, while the very same data sequence could have been generated by a 900 Hz sine wave. $\endgroup$ – pichenettes May 20 '13 at 20:42
  • $\begingroup$ can you tell what that condition is (for exactly to hold)? $\endgroup$ – niaren May 20 '13 at 20:56
  • 1
    $\begingroup$ There is a phase difference of $\pi$ between the two. $\endgroup$ – pichenettes May 20 '13 at 21:17
  • $\begingroup$ there is a error in your answer. 100Hz and 900 Hz do not have the same sampled output. Actually its [100 +/- k*1000] which will give the same samples. So, -900, 1100, 2100 etc. are the aliased frequencies corresponding to 100Hz. Actually, 900Hz will be negative of the 100Hz size wave. $\endgroup$ – user10835 Aug 16 '14 at 14:55

I agree with pichenettes's answer but I would like to add that it is pretty common practice to use a simple inexpensive low-order analog anti-aliasing filter, and do the rest of the anti-aliasing filtering in the digital domain. This implies of course that you do not process at maximum sampling rate but that you downsample after the digital anti-aliasing filter. Summarizing:

  1. Of course you need an analog anti-aliasing filter.

  2. The analog filter can be kept very simple if you can downsample your signal. In this case you can do more aliasing removal in the digital domain (before downsampling).

| improve this answer | |

Your Answer

