Filter design
From Academic Kids

The design of a frequency domain filter must begin by deciding what kind of filter is required for the task at hand.
The basic functionality must be decided first, like lowpass, highpass, bandpass, allpass, or more complex functions.
 A lowpass filter is used to block unwanted highfrequency signals.
 A highpass filter passes high frequencies fairly well; it is helpful as a filter to block any unwanted low frequency components.
 A bandpass filter passes a limited range of frequencies.
An important parameter is the required frequency response. In particular, the steepness and complexity of the response curve is a deciding factor for the filter order and feasibility.
A first order filter will only have a single frequencydependent component. This means that the slope of the frequency response is limited to 6 dB per octave. For many purposes, this is not sufficient. To achieve steeper slopes, higher order filters are required.
It must also be decided how the filter is going to be implemented:
Contents 
Analog filters
The design of linear analog filters is for the most part covered in the linear filter section.
Digital filters
Digital filters are implemented according to one of two basic principles, according to how they respond to an impulse:
Sample rate
Unless the sample rate is fixed by some outside constraint, selecting a suitable sample rate is an important design decision. A high rate will require more in terms of computational resources, but less in terms of antialiasing filters. Interference and beating with other signals in the system may also be an issue.
Antialiasing
For any digital filter design, it is crucial to analyze and avoid aliasing effects. Often, this is done by adding analog antialiasing filters at the input and output, thus avoiding any frequency component above the Nyquist frequency. The complexity (i.e., steepness) of such filters depends on the required signal to noise ratio and the ratio between the sampling rate and the highest frequency of the signal.
IIR
IIR filters are the digital counterpart to analog filters. They use feedback, and will normally require less computing resources than an FIR filter of similar performance. Due to the feedback, high order IIR filters may have problems with instability and arithmetic overflow, and require careful design to avoid such pitfalls. Additionally, they have an inherent frequencydependent phase shift, which can be a problem in many situations. 2nd order IIR filters are often called 'biquads' and a common implementation of higher order filters is to cascade biquads. A useful reference for computing biquad coefficients is the RBJ Audio EQ Cookbook (http://www.musicdsp.org/files/AudioEQCookbook.txt).
FIR
FIR filters do not use feedback, and are inherently stable. FIR filter coefficients are normally symmetrical, and that makes them phase neutral by nature. It is also easier to avoid overflow. The main disadvantage is that they may require significantly more processing and memory resources than cleverly designed IIR variants. FIR filters are generally easier to design: The Remez exchange algorithm is one suitable method for designing quite good filters semiautomatically.