# Anti aliasing filter + DC offset

I'm looking into sampling a signal into a micro-controller, the ADC will be sampling at ~38.5 Khz with 8 bit depth. The dynamic range is given by 6.021*N + 1.763 dB, so in this case I'm getting ~49.92 dB which means I need to attenuate the signal about that much at the Nyquist freq. of 19.25 Khz.

After some experimenting with TI's filter lab I got the following implementation of a 4th order LPF:

I was wondering about the input impedance of the circuit so I quickly entered it into Multisim and got the following:

At 20 Hz the input Z is about 750 KOhm which is good enough for me, however as we move towards 1 KHz that figures goes down to about 16 KOhm. At 4 KHz (passband) the input Z is only 4 KOhm.

Questions are:

1. How can I improve on that? Is there anything I could do without adding an additional op-amp buffer stage in front of the filter?
2. Since the ADC is single supply I'll need to bias the signal to VCC/2. How can I do that without killing the filter response? Looks like adding a cap at the output and a voltage divider will have a very dramatic effect on the low freq. response.

A passive filter also possible (but low input Z):

simulate this circuit – Schematic created using CircuitLab

• What is the noise environment, such that you think you need 4-poles of filtering? If this is audio/speech, why not just a LPF at 10KHz, to exclude RFI and cellphone energy and AM radio energy? Jul 22, 2017 at 13:03
• The filter is only there to remove higher freq. from the input signal, the signal is audio but only speech and harmonic content is expected to be present at higher freq. Jul 22, 2017 at 13:09
• Why not a low pass filter at 5KHz? That will knock down the energy at 20KHz (2 octaves higher) by 12dB, at 40KHz by 18 dB, and at 1MHz by another 25X or near 8*6=48dB. And cellphone energy by another 1,000:1, if your capacitor ties to a large GND plane to shunt out the 1,000MHz of cellphones. Jul 22, 2017 at 13:22
• Since the input is audio freq. I am much more worried about harmonic content at 10 KHz than 1 MHz. Jul 22, 2017 at 13:25
• Maybe I am not understanding, but it seems like you have concluded that your filter needs 50 dB of attenuation at Fs/2 because you have 50 dB of dynamic range. I am not sure if that is logical. I would think 20 dB at Fs/2 would be just fine. 40 for sure. Depending on other noise sources, you may not even have a true 50dB of SNR to begin with. Jul 22, 2017 at 14:36

How can I improve on that? Is there anything I could do without adding an additional op-amp buffer stage in front of the filter?

Increasing input impedance can be done by scaling the first filter components (R1,R2,C1,C2). Scale resistors UP while scaling capacitors DOWN maintains the same cut-off frequency. Still, source impedance adds to R1...if your signal source impedance is known, and stable, make R1 smaller.
Example: scale filter by ten: R1=27.4K, R2=37.4K, C1=1nF, C2=1.2nF
If your source resistance is 1K, then make R1= 26.4K.

Since the ADC is single supply I'll need to bias the signal to VCC/2. How can I do that without killing the filter response? Looks like adding a cap at the output and a voltage divider will have a very dramatic effect on the low freq. response.

You can add a 2-resistor voltage divider to generate DC input. Since both op-amps have DC gain of 1, this voltage will appear at the filter output (plus-or-minus the small op-amp offset voltages). The 100k bias resistors shown will lower the source resistance (Rsource) only slightly. Incorporating filter scaling, and subtracting Rsource of 1K, and adding DC offset, your filter now looks like this:

simulate this circuit – Schematic created using CircuitLab Use op-amps that have low bias currents, so that those large-value bias resistors plus series-connected filter resistors won't cause DC offset errors. Also, be aware that filter scaling increases thermal noise voltage. If your filter is used with very small input signals, scaling those input resistors up will impact the noise floor. For an 8-bit A-to-D, this shouldn't be a problem.

Think about what the full spectrum of your input signal is and how much spectrum you would like to keep i.e. not be affected by the anti alias filter.

If, for instance, you are only interested in keeping DC to 5 kHz then the lowest frequency that will alias and fold-down into your otherwise pristine bandwidth of 5 kHz will be 33 kHz (based on a Nyquist frequency of 19 kHz). This frequency and higher need to be eradicated to a small level. But how small are noise and harmonics at or above 33 kHz?

So, your low pass filter starts to cut-in at about 5 kHz and reduces signals by up to 50 dB at 33 kHz. But, if you don't think there is any significant amplitude of anything at 33 kHz then the amplitude reduction (brought about by the anti alias filter) might only need to be (say) 20 dB or 10 dB.

It's all about sensibly thinking about what you need and, designing an anti alias filter that works sufficiently but no more than that. Reading between the lines it seems to me that a second order filter might be sufficient freeing an op-amp to be used as a buffer.

Remember that this is the design of an anti alias filter and, using the principles described above, it doesn't mean that there wont be some aliased signals residing above 5 kHz however, in this example, I have assumed that anything in the digital domain above 5 kHz can be ignored and, if necessary removed with digital filters or post DAC filters. Keeping the desired bandwidth pristine is what an anti alias filter is intended to do.

If you want your anti alias filter to do more than the basic function of keeping a section of bandwidth free from being folded into then you need to provide more information but, ultimately, you need to understand the principles involved and think about what you want a bit harder.

Here's a picture of what I mean: -

The red curve is your input spectrum including harmonics (that you don't care for) and upper frequency noise (that you also don't care for). The blue curve is a folded-down (mirror image) of the input spectrum that can potentially disrupt the pristine area of DC to 5 kHz.

I've drawn a little green arrow at 33 kHz and also one at 5 kHz to show how 33 kHz gets folded down to 5 kHz. So, if the 33 kHz amplitude only needs a further 10 or 20 dB reduction to make the folded down version acceptable at 5 kHz then that is all the anti-alias filter needs to acheive.

• Why are you referring to the sampling freq. as the stop band? If I understand correctly, the requirements is to attenuate freq. at half the sampling freq. by a significant amount in order to prevent aliasing. Anything above half the sample freq. with an amplitude big enough not to fall outside the dynamic range will show up as unwanted and wrong "data". Jul 22, 2017 at 20:30
• I don't recognise your first sentence as applying to what I wrote. It's a lot subtler than what you may think and not as problematic as most folk think. Define what frequency band you wish to keep pristine and I'll try and put some better numbers on it. Jul 22, 2017 at 22:20
• Thanks for the reply. I'll re-phrase: You suggested a 50 dB attenuation at 33 KHz, however should I not need that at about half that freq. (Nyquist)? Are suggested that the harmonic content at ~19.5 KHz is so low anyway that even with 10 or 20 dB attenuation it will be placed near or below the dynamic range? If I need 20 dB attenuation at 20 KHz there is no problem using a 2 pole filter. Jul 22, 2017 at 22:27
• I'm not really sure from your comment that you understand what aliasing does. I said "up to 50 dB at 33 kHz" meaning or implying that I didn't think as much as 50 dB was needed. As for what else you commented on AND what I said in my answer, you need to be clearer to me (and anyone else wishing to contribute) what your inputted spectrum is. I can't really help you without this definition so think hard and come up with some numbers on what your signals and harmonics are like and what wideband noise you might have. Also I feel you don't quite understand the effects of aliasing. Bed time for me. Jul 22, 2017 at 23:58