Topics covered: Design of FIR filters using windows, comparison of rectangular, Bartlett, and Hamming windows, frequency sampling method of filter design, optimum equi-ripple FIR filters.
Instructor: Prof. Alan V. Oppenheim
Design of FIR Digital Filters (PDF)
The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue to offer high quality educational resources for free. To make a donation or view additional materials from hundreds of MIT courses, visit MIT OpenCourseWare at ocw.mit.edu.
ALAN V. OPPENHEIM: During the last three lectures, we considered the design of infinite impulse response digital filters. The two main classes of design procedures that we discussed involved mapping continuous time designs to discrete time designs. That was the first class. And the second class was the use of algorithmic design procedures. In this lecture, I would like to discuss the design of finite impulse response digital filters.
And I remind you that as we've stressed in a number of the lectures, one of the very important aspects of finite impulse response digital filters is the fact that they can be implemented to have exactly linear phase. So finite impulse response filters, as opposed to infinite impulse response filters, are useful for problems where linear phase is an important constraint.
It turns out also-- and this isn't a point that we'll be touching on in these lectures-- but it turns out also that finite impulse response digital filters have some important advantages over infinite impulse response filters with regard to round off noise, that is, with regard to the effects of finite register length.
Now in general, the implementation of finite impulse response filters is considerably simpler for discrete time systems than it is for continuous time systems. Consequently, it turns out that there are not really available, or a wide variety of continuous time design procedures for finite impulse response filters as there were for infinite impulse response.
And consequently, the continuous time to discrete time mapping, as a design procedure, is not particularly applicable to the design of finite impulse response digital filters. So this includes, for example, the impulse and variant technique, and the use of the bilinear transformation. That is, those techniques are not particularly useful when we are talking about the design of finite impulse response filters.
As an additional interesting side point, if we were to begin with a finite impulse response analog or continuous time filter, and map it to a digital filter using the bilinear transformation, then in fact the resulting filter would not be a finite impulse response filter. The algorithmic procedures that we talked about in the previous lectures, of course, still do apply to the design of finite impulse response filters. And there also are some other algorithmic procedures that are discussed in the text, and that I will touch on just very briefly in today's lecture.
Now for the design of finite impulse response filters, there are basically three classes, or three types of design techniques that we'll be discussing. And in this lecture, what I intend to do is present the three of these, primarily with an eye toward giving you an appreciation for what the style of the design techniques is. That is, to give you an overview of these design techniques. But I won't dwell on many of the details.
So in the design of finite impulse response digital filters, then, we of course are talking about a unit sample response that is a finite length. And we'll choose the length, the interval over which the unit sample response is non-zero to be in the range from 0 to capital N minus 1. So the Z-transform of the finite impulse response filter is then given by the sum from 0 to capital N minus 1 of h of n, z to the minus n, which of course is a polynomial in z to the minus 1.
And we know that, for this class of systems, h of z has only zeros, except at z equal 0. That is, the poles of h of z can only fall at z equals 0, or z equals infinity. And I remind you also that for linear phase finite impulse response filters, the constraint on the unit sample response is that it basically is symmetrical about its midpoint. In other words, as we look at the unit sample response starting from the left hand end and starting from the right hand end, approaching toward the middle, then we see the same values. In other words, there's a symmetry that's required for linear phase.
The three basic design procedures that I'd like to talk about in this lecture, basically introduce in the lecture, are first of all, a design technique which is referred to as the window method. The second design technique that is commonly referred to as the frequency sampling method. And a third designed technique, which is an algorithmic design procedure which results in equiripple filters, which as I'll comment on again when we get to this point in the lecture, turn out to be important because they have some optimality properties. So these are the three basic design techniques, then, that I'd like to discuss in this lecture.
Well, to begin with, the window method is basically a method based on the following strategy. Let's suppose that we begin the design of the finite impulse response filter with a desired unit sample response, h sub d of n. For example, suppose that we wanted to design a low pass filter. We could begin with a desired unit sample response which was the unit sample response of an ideal low pass filter.
Now as you know, the unit sample response of an ideal low pass filter basically has a sin x over x type of envelope. In particular, the important characteristic is that it extends from minus infinity to plus infinity. So in fact, it doesn't correspond to a finite impulse response filter. But we could imagine obtaining the unit sample response of an FIR filter by perhaps truncating this infinitely long unit sample response so that we retain only the values in the interval from 0 to capital N minus 1.
Or more generally, we can imagine multiplying the desired unit sample response by a window, the window being 0 outside the interval from 0 to capital N minus 1. So the window method basically consists of beginning with a desired unit sample response, which in general will be infinitely long, or at least longer than the filter that we want to design. We apply to that a window, which is 0 outside the range 0 to capital N minus 1. And the result then is the unit sample response of the finite impulse response filter.
Well, what is the effect of this in the frequency domain? We know that multiplication in the time domain corresponds to convolution in the frequency domain. And consequently, the frequency response of the finite impulse response filter that results, is the periodic convolution of the desired frequency response. That is, the Fourier transform of the desired unit sample response, that convolved with the Fourier transform of the window, w of n
For example, if we were talking about a rectangular window, and in a rectangular window, w of n is simply constant over the range 0 to capital N minus 1, the magnitude of the Fourier transform of the window has a form roughly as I've indicated here. This is drawn for the case, N equals 8. And it's the magnitude of h of e to the j omega-- I'm sorry, of w of e to the j omega. If we were to remove the magnitude sines, then every alternate lobe would be flipped over in sine. So in fact, this is a sin nx over sin x curve.
So for the particular case of a rectangular window, we would have not the ideal low pass filter that we began with, but the ideal lowpass filter frequency characteristic convolved with the Fourier transform of the window. So that's depicted here where we have the ideal low pass filter. Superimposed on top of it is the Fourier transform of, in this case, a rectangular window.
And then to obtain the resulting overall frequency response of the finite impulse response filter, that would be obtained by convolving these two together. And we can see that the result of that, very roughly, is to, in fact, at the discontinuity, the almost exact effect is to integrate the window frequency response, the frequency response of the window. And the resulting frequency response for the finite impulse response filter then, as opposed to being the ideal characteristic that we desired, in fact has some ripples in it.
Generally, then, it has some deviation in the pass band. It has some deviation in the stop band. And it has a transition region from pass band to stop band. And that's introduced because of the convolution of this window frequency response with the desired or ideal frequency response.
Now ideally, what would we like as the frequency response of the window? Well, ideally what we would like, of course, is we would like this function to be an impulse. Because if it's an impulse, then we convolve it with the desired frequency response, and the result will again be the desired frequency response. The overshoot that we have in the pass band and the stop band has arisen because of the side lobe structure of the frequency response of the window. And the transition region has arisen because, primarily because of the width of this central lobe.
So, in fact, if we want to keep the deviation in the pass band and stop band small, then that implies that we would like to keep the side lobe structure of the window small, the window frequency response small. And if we would like to keep the transition band narrow, that implies that we would like to keep this main lobe narrow. And as I think that your intuition should agree with by now, generally, an attempt to make this function narrower in frequency will have the general effect of making the window longer in time.
So that, in fact, as we try to make the time window, w of n, or equivalently, the order of the finite impulse response filter smaller, the tendency will be toward a widening transition band in the frequency response of the filter. Likewise, as we allow the order of the filter to get longer, we have more flexibility in the filter. And consequently, we're able to control better the transition band and the overshoot in both the pass band and in the stop band.
Well, in particular, again continuing with the example of a rectangular window, if we look at the frequency-- the unit sample response for the case of an ideal low pass filter multiplied by a 51 point rectangular window, then the unit sample response we obtain is as indicated here. Actually, I've marked this as the desired unit sample response. It's only equal to the desired unit sample response in the interval from 0 to 50. And the desired unit sample response, of course, continues to be non-zero outside that range. Whereas multiplying by a rectangular window truncates it to be 0 outside this range.
The resulting frequency response for this particular example I've indicated here. And as opposed to the previous frequency response that I depicted, this is shown on a logarithmic frequency scale. There, in fact, is some ripple in the pass band, although it's not evident on a logarithmic frequency scale. But generally, you can see the effect of a transition band, and then a side lobe structure in the stop band. And you can see also that the asymptotic behavior of this is-- in the vicinity for this particular example-- is in the vicinity of minus 20 dB attenuation in the stop band.
So this then is an example of a low pass filter that could be obtained by applying a rectangular window to the ideal low pass filter. There are other possible choices for windows. In particular, two other choices that I'd like to mention are what are referred to as the Hamming window and the Bartlett window. As opposed to the rectangular window, the Bartlett window is a triangular window, which has the effect basically of making the transition at the ends of the unit sample response less abrupt than they are in the case of a rectangular window.
The Hamming window is a window which corresponds essentially to a cosine bell sitting on a small pedestal. So for this particular example, again, the low pass filter, the ideal low pass filter windowed, we can compare the frequency response obtained with the Bartlett window to that obtained with the rectangular window, and also with the Hamming window. So let's take a look at that.
Here we have the frequency response of the Bartlett window. And you can see generally that the ripples aren't as severe in the stop band as they were in the case of the rectangular window. And in fact, we can compare these simply by referring back to the rectangular window frequency response that we had previously. So the rectangular window lies slightly under, or actually asymptotically touches the frequency response obtained from the Bartlett window. But for the Bartlett window, the ripples in the stop band aren't as severe as they are for the rectangular window.
Now to compare both of these to the Hamming window, we can put on top of this the frequency response for the Hamming window. And in this case, you can see that the frequency response obtained with the Hamming window applied to a low pass filter has considerably better stop band attenuation than either the rectangular or the Bartlett window. In particular, it comes down to about minus 30 or minus 32 or so dB.
There is a slight price paid for this. And the price is, as you notice, that the transition band is slightly wider than it is for either of the other two windows. And in general, this is a type of trade off that arises again and again in the design of-- actually, always in the design of digital or analog filters. In particular, in using windows, there is always this trade off between improved stop band attenuation and a narrower-- or wider, rather-- transition band. As you are willing to allow the transition band to become wider, you can generally obtain some advantage in terms of stop band attenuation.
All right. So this is a quick view into the use of windows. In the text, in fact, there are quite a large number of windows that are discussed, besides the rectangular, the Bartlett, and the Hamming window. And similar frequency responses for filters designed using a variety of these windows is presented in the text.
The next design procedure that I would like to discuss is the design procedure that is referred to as the frequency sampling design procedure. And basically, the idea behind that procedure is to argue that if we have a desired frequency response, which I've indicated by the continuous line-- a desired frequency response-- then we could think of designing a digital filter by specifying samples of the desired frequency response at equally spaced points along the frequency axis.
Now we know that for a finite impulse response digital filter-- in general, for any finite length sequence-- we can represent it in terms of samples of its Fourier transform. That, in fact, is the discrete Fourier transform. So basically what we're saying is that we can begin with a desired frequency response and specify the discrete Fourier transform of the finite impulse response filter by specifying equally spaced samples of the desired frequency response. So we have then that the actual frequency response will correspond to capital N samples, equally spaced in frequency, of the desired frequency response characteristic.
Now one could say that, or one could inquire as to whether, in fact, if we do that, what we're able to implement is the desired digital filter frequency response. In other words, we know that we can implement a finite impulse response filter by using only the values specified in the discrete Fourier transform. And here we've specified a discrete Fourier transform that's unity in the pass band and it's zero in the stop band.
And one can ask, well, in fact, is that an ideal digital low pass filter? Well, the answer to that is no. And the reason is that it is important, very important to keep track of the fact that just because we specify the frequency response at equally spaced points along the frequency axis doesn't mean that, in between those points, the frequency characteristic has to be particularly well-behaved.
That is, the Fourier transform of the unit sample response is a continuous function of frequency. We're specifying samples of that continuous function of frequency. And there is implied an interpolation in between those samples. Well, in fact, if we were to look at a unit sample response whose discrete Fourier transform magnitude is unity in the pass band and zero in the stop band, one possible choice, in fact, is the unit sample response and frequency response that I've indicated here.
This is the unit sample response. This is the corresponding frequency response. The discrete Fourier transform of h of n, in fact, is exactly unity in the pass band and zero in the stop band. But the interpolation in between those points is not unity in the pass band and zero in the stop band. In fact, by simply putting the previous view graph on top of this one, we can see that this frequency response characteristic indeed goes through the specified frequency points.
But it is not particularly well constrained in between those points. So, in fact, for one example, if we chose this as the unit sample response corresponding to this set of frequency samples, the resulting frequency response of the finite impulse response low pass filter would be as we've indicated with this continuous curve.
Well, we know that there are other unit sample responses whose discrete Fourier transforms are exactly the same. The magnitude of the discrete Fourier transform is exactly the same as this one. In particular, we know that if we were to circularly rotate h of n, circularly shift h of n, the magnitude of the discrete Fourier transform would remain exactly the same.
So in fact, another unit sample response that would correspond to a frequency response, which likewise goes through the same frequency samples, is the one that we have here. This unit sample response is simply the previous one, circularly shifted by approximately n over 2, or n minus 1 over 2. And in this case, the frequency response characteristic is even worse than it was in the previous example.
So here we have a frequency response that has very wild, large fluctuations in the pass band, and even in the stop band, but still goes through the same frequency samples that we had specified previously. And we can see that by, again, putting these two on top of each other. And you can see, in this case again, that this frequency characteristic goes through the specified frequency samples. But it has a very wild behavior in between.
All right. So the frequency sampling method, then, is basically a method that consists of specifying samples of the frequency response, and then accepting the interpolation in between those samples that is dictated by the form of the unit sample response. And I stress that one has to be careful in the phase that's applied to this, or equivalently, the circular shift that's applied to the unit sample response, since as we've seen in the last several view graphs, that very seriously affects the interpolation in between these frequency points.
Furthermore, an additional point has been made, and that is that it is not-- even though we can implement a finite impulse response filter using the discrete Fourier transform, specifying the discrete Fourier transform to be unity in the pass band and zero in the stop band does not mean that we've implemented an ideal low pass filter.
All right. Well, we had-- this, of course, is not a unit sample response that we would be particularly anxious to use. Clearly, the behavior in the pass band and stop band is very severe, and in fact, too severe. So we could at least consider as somewhat reasonable the unit sample response and frequency response that we had previously, in this case, relatively well-behaved. That is, it ripples somewhat in the pass band and in the stop band. But now we could inquire as to whether there is some way of improving the pass band ripple and the stop band ripple.
We know, or we anticipate, that there's a price that we would have to pay for that. Probably the price, and indeed it turns out that the price we have to pay is the price of widening the transition band. Well, how could we widen the transition band? We could imagine beginning with this particular design, taking as one possibility one of the stop band constrained points. And allow it to move into the transition band so that, in fact, we have a wider frequency range that we're permitting the transition from pass band to stop band to go to.
And let me illustrate that here, where now what we've done is to take one of the frequency samples in the stop band, move it up into the transition band. And as we do that, you can see for this particular example, the pass band ripple hasn't changed too much. But in fact, the stop band ripple has changed somewhat dramatically.
As we allow this transition point to move farther up into the transition band, basically widening the general pass band region, what we'll see is that the pass band ripple become somewhat smaller. And there, in fact, is a trade off that is introduced between the pass band ripple and the stop band ripple. And let me illustrate that with this next example, where in this case, we have moved the transition point up somewhat further.
So that whereas in the previous case the transition point was someplace down here, we've now moved it farther up into the transition region, closer to the pass band. And the pass band ripple has become correspondingly smaller. So this, in fact, is a design technique that can be used for the design of, generally, band frequency selective filters, where we first of all specify frequency samples.
In fact, this can be used, really, for the design of any digital filter characteristic with transition regions. And then, perhaps, [AUDIO OUT] reducing the ripple in the pass band and/or the stop band, or in the various bands, by allowing an additional point to be used to widen the transition band. And as we move this point up or down, then, we will reduce the pass band and the stop band ripple.
We can also, of course, consider moving not just one point into the transition region, but two points or three points or more points. Obviously, as we do that, we will widen the transition band further. And at the same time, that offers some additional flexibility, which permits us to reduce the pass band and stop band ripple. So this then is basically the strategy in the frequency sampling method of digital filter design.
The final method that I would like to touch on just very briefly is a method which I referred to at the beginning of this lecture as an equiripple design method. And basically, the notion here is that we've seen that there is a trade off between the transition region on the one hand, and pass band and stop band ripple on the other hand.
Well, one could inquire as to whether, in at least in some sense, we could design for ourselves an optimum class of filters. And indeed, you can. And in fact, it's possible to show that the optimum strategy in terms of minimizing pass band or stop band ripple, or in terms of minimizing a transition band, is to design the filter to have an equiripple frequency response characteristic. Well, one way of setting up the optimal condition-- and it turns out that there are a variety of ways, and these are discussed in quite a bit more detail in the text.
But for example, if we pick a pass band cutoff frequency and a stop band cutoff frequency. Furthermore, if we, of course, are going to allow some deviation in the pass band and some deviation in the stop band, if in addition, we fix the ratio of stop band to pass band ripple, and if we then inquire as to what sort of characteristic should result if delta 1, the pass band ripple, or equivalently, delta 2, the stop band ripple is minimized-- this should be delta 2-- so if delta 1 and delta 2 are minimized, it turns out it can be shown that that implies an equiripple characteristic in the pass band, and an equiripple characteristic in the stop band. That is, the ripples in the pass band should alternate between the upper and lower limits. And the ripples in a stop band should alternate between the upper and lower limits.
In the text, there are discussed several algorithmic procedures for actually designing equiripple filters. We won't go through those details in this lecture. Mainly, I want to emphasize the point that there are procedures that allow you to implement designs of this type. And that designs of this type are optimum. Let me just show you one example of an optimum equiripple finite impulse response filter that was designed when our computer budget was particularly big.
This is an example of a length 251 point finite impulse response digital filter, designed using one of the algorithms that is discussed in the text. And you can see that, indeed, the equiripple characteristics are evident in the pass band. This curve corresponds to the frequency characteristics plotted in dB. So the pass band ripple doesn't show up. So with that scale expanded, we can see the ripple. And then we have the ripple in the stop band. There should be 125 ripples all together.
And in fact, we could see if that was true. We could [AUDIO OUT] one, two, three. But let's not do that. Obviously, there's a very sharp transition band. And what turns out to be minus approximately 80-- approximately minus 85 dB attenuation in the stop band. So this is an example of a very high order equiripple optimum finite impulse response digital filter that was designed using one of the algorithms discussed in the text.
OK. Well, this, as I indicated at the beginning of the lecture, was intended primarily as a very brief overview of finite impulse response digital filter design. Hopefully, it gives you some appreciation for the style of the design techniques. There are, of course, a large number of details, some of which are discussed in the text and some of which aren't. But in any case, this, then, concludes our discussion of the design of infinite impulse response and finite impulse response digital filters.
In the next lecture, we will begin a new topic, specifically the topic involving the computation of the discrete Fourier transform. Thank you.
This OCW supplemental resource provides material from outside the official MIT curriculum.
MIT OpenCourseWare is a free & open publication of material from thousands of MIT courses, covering the entire MIT curriculum.
No enrollment or registration. Freely browse and use OCW materials at your own pace. There's no signup, and no start or end dates.
Knowledge is your reward. Use OCW to guide your own life-long learning, or to teach others. We don't offer credit or certification for using OCW.
Made for sharing. Download files for later. Send to friends and colleagues. Modify, remix, and reuse (just remember to cite OCW as the source.)
Learn more at Get Started with MIT OpenCourseWare