0
\$\begingroup\$

In the context of direct digital synthesis, I need a low pass filter to reconstruct the analog signal at the output of a DAC. I'm generating only sine wave signals and the maximum carrier frequency is 220 kHz.

Are there any rules of the thumb for setting the filter's cutoff frequency, so that a 220 kHz sine wave passes through almost unfiltered, and everything higher than that gets attenuated?

Obviously, the cutoff frequency should be set "just above" 220 kHz. But how much is "just above"?

\$\endgroup\$
  • \$\begingroup\$ How can you output a sinewave at 220kHz with a DAC sampling at 220kHz? \$\endgroup\$ – Marko Buršič Nov 7 '17 at 14:00
  • \$\begingroup\$ No the DAC is clocked at 10 MHz \$\endgroup\$ – geschema Nov 7 '17 at 14:47
2
\$\begingroup\$

There are two important bands in an anti-alias, aka reconstruction, filter. There's the passband, and then there's the arguably more important stopband.

Obviously, the passband should cover at least the band you want to generate, but it can cover more. In waveform synthesis it can be advantageous to cover significantly more if it makes the group delay at the edge of the desired bandwidth flatter. However, for single sinewaves, phase is not an issue and it can be very close if flatness permits.

The stopband has to stop all the aliases coming from the DAC. If you're sampling at 10MHz, then the aliases of DC to 220kHz extend from 9.78MHz to 10.22MHz.

To be easy on yourself, you should design the lowest order, that is, most gently sloping in the transition band, filter that will meet your desired flatness at 220kHz, and suppression above 9MHz.

Most (all, that we're concerned with) DACs will implement a 'zero order hold', that is, output a rectangular stepped waveform rather than narrow pulses. This means that the aliases will already have been filtered significantly by the sinc(x) response. For 9.78MHz, sinc(x) = 0.023, or over 30dB of free alias filtering. That's a good reason for using the very high oversampling ratio that you have, rather than trying to snuggle right up to Nyquist.

Where should the filter corner/cutoff frequency be between 220kHz and 9.78MHz? You're trading off passband flatness, stopband depth, and filter complexity.

If you use a single RC (first order filter) with a 300kHz corner, then you'll have an additional 30dB of alias suppression, and only lose a couple of dB with the sloppy passband shape at 220kHz.

A first order filter with a 1MHz corner would give you a flatter passband, and the additional 20dB alias suppression will be adequate for a 'scope', though not for more sensitive applications.

A higher order filter will give you a flatter passband and deeper stopband. Again, play with the corner frequency to trade off passband flatness and stopband suppression.

That's the argument from signal processing point of view. In practice, there will be other signals between 220kHz and 9.78M. There will be thermal noise, and there may be interference from other signals like MCU clocks or SMPS switching. Both of these can be reduced by bringing the stopband edge down in frequency, to 1MHz or even 500kHz. Even with a 2:1 stop/pass ratio, you should still be able to design a reasonable order filter, but less than that and it gets somewhat harder.

\$\endgroup\$
  • \$\begingroup\$ Thanks @Neil_UK. Those are all very helpful insights. Is there any (possibly free) tool that I can use to play around with filter types and cutoff frequencies? \$\endgroup\$ – geschema Nov 8 '17 at 9:52
  • \$\begingroup\$ google 'filter design'. Active filters can be OK at relatively low frequencies, though 220k is pushing it for cooking grade op-amps, you'd need to use fast ones, app notes from TI, Analog, Linear are good sources of info on this. To stop MHz, you really need LC filters. I often use a hybrid of an LC 'roofing' filter to protect a downstream active filter from the high frequencies, which can then do a nice passband shape. \$\endgroup\$ – Neil_UK Nov 8 '17 at 14:33
  • \$\begingroup\$ can we connect on LinkedIn? linkedin.com/in/geschemann \$\endgroup\$ – geschema Nov 9 '17 at 8:23

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.