The great attributes of discrete-time signals and systems rely on the ability to interface with the continuous-time domain. Analog-to-digital converters (ADCs) and digital-to-analog converters (DACs) are the electronic subsystems that convert signals between continuous-time and discrete-time signal forms. This figure shows how to implement the interface of these two subsystems.
The very first block of this figure represents the antialiasing filter. You can use this filter to block signals above the folding frequency, fs/2, from entering the ADC and thus avoid aliasing.
If you’re thinking an ideal low-pass filter of the form Haa(f) = II(f / fs) does the trick, you’re right. If this seems too easy, here’s the catch: A realizable antialiasing filter allows some of the signals above fs / 2 to get past the filter. These signals are attenuated but aren’t 0.
A higher-order filter design can help solve the leakage problem but only at the expense of a more complex analog low-pass filter.
A workaround to the complex analog filter is to start by oversampling the input signal. For audio signal processing, the factor may be 64 times the input signal or higher. With this configuration, the analog antialiasing filter can be low order. Perhaps just a first-order low-pass filter — a resistor and a capacitor — is all your design needs for aliasing protection.
Use a high-order digital filter, running at the oversampled rate, for precision antialias filtering, and combine this filter with a decimation operation, which brings the sampling rate back to a 1 times oversampling rate. The complexity of the high-order digital filter followed by a decimator is manageable by using a technique known as polyphase filtering, and the performance is good.