So let's review the filter design problem. As suppose you are given a set of requirements such as a frequency response specified in terms of where you want to passband to be and where you want to stopband to be. At the same time, you could have multiple stopbands and multiple passbands. You will probably have some phase requirements as well. Namely in the form of whether linear phase is necessary or not. And most often you will have some limit on the computational resources you can use. We are interested in realizable filters, therefore our final design will be expressed the form of a rational transfer function. And our problem becomes finding the degree of the numerator and of the denominator as well as the coefficients of the polynomials involved in order to best fulfill the requirements. So for example, if we want to design a lowpass, the specifications can be like these. We have a cut off frequency. We have a desired value for the past band and a desired value for the stop band. Now these specifications seem to indicate an ideal characteristic that we know we cannot attain in practice. And therefore, we'll try to fulfill these requirements by taking explicitly into account what we know about what is achievable with the realizable filter. In particular, we know that the passband and stopband transitions cannot be infinitely sharp. And therefore, we will use some transition bands to allow for a gradual decay of the frequency response from passband to stopband. Also, the magnitude response cannot be constant over an interval. We will see shortly why. And therefore, we will have to specify some tolerances over the passbands and stopbands, within which we allow the frequency response to move. In general, the lesson is the following. If we want very small transmission bands, we will need to use a filter of high order. And similarly, if we want small error tolerances, we need a high order filter. Now, a high order means a high polynomial degree either at the numerator or at the denominator of the transfer function. Which means that we will need to use more computational power to implement that filter, and that the delay introduced by the filter in a causal realization will be larger. We can plot the realistic lowpass specifications graphically as follows. Instead of having one cutoff frequency, we have a transition band between a frequency omega p, which specifies the end of the pass band to a frequency omega s, which specifies the beginning of the stopband. And instead of having one desired value for stopband and passband, we have tolerance regions within which the frequency response can wiggle. The fact that we cannot have an arbitrarily sharp transition from passband to stopband should be sufficiently clear. The transfer function is a rational transfer function, and as such, it cannot have a discontinuity point. The reason why we cannot have a flat response, ie, a response that is identical to a constant over a certain interval. Maybe it requires a little bit more of an explanation. So, again, we start from a rational transfer function, and now suppose that the frequency response H of e to the j omega is constant over an interval. No matter how small that interval. Well, in that case, the z transform will be constant over an interval as well. And therefore, we can write that the denominator minus the constant times the numerator is identically zero over an interval but this guy here, B of Z minus C-A of Z is a polynomial in z. So, if it is constant over an interval, it has an infinite number of roots over that interval. But we know, from the fundamental theorem of algebra, that if a polynomial has an infinite number of roots, it is identically 0 over the entire complex plane. Which means that if the fourier transform is constant over an interval, no matter how small that interval, it will be constant over the entire frequency range. As a consequence, you can think of the frequency response of a filter as a shark. It must always move and it can never be at rest. An important case is what we call the equiripple error, where the error, for instance, in this case in the passband, oscillates between a maximum and a minimum and the local extrema of the frequency response coincides with the upper and lower limit of the tolerance region. Once the specs are in place, the three big questions are, well first are we going to design an IIR or FIR? And once we have answered that question, how will we determine the coefficients of the transfer function and how do we evaluate the performance of the filter? In order to answer the first question, we have to consider the pros and the cons of one design versus another. IIRs are computationally efficient. They can achieve a very strong attenuation in the stop band rather easily. And they're good for audio because they can achieve a monotonic characteristic in the pass band. On the other hand, they might have stability issues specially in numerical implementations that are prone to overflow or underflow. They're difficult to design for arbitrary responses, namely a low-pass or high-pass characteristic is easy to obtain. But it's not so easy to obtain an arbitrary response with an IIR. And they have no linear phase. FIRs on the other hand, they're always stable. They can be designed optimally, as we will see later, and they can be designed with linear phase which is a greater advantage especially for communication systems. On the other hand, they're computationally more expensive and acoustically they might sound harsh sometimes. In general, finding the degree and the coefficients of the polynomials involved in the transfer function is a very hard nonlinear problem. In the case of IR filters, there is a vast body of literature on filter design that dates back from the days of discreet electronics that has been converted to the problem of designing digital film. FIR filters, on the other hand, are purely digital entities that do not exist in the analog world. Design techniques for FIR filters have been developed from scratch since the beginning of digital signal processing. They have reached their apex in the early 70s with Parks-McClellan optimal filter design technique.