第 12 讲:滤波
本讲内容:滤波与傅里叶变换卷积性质的联系;理想与非理想选频滤波器的频域和时域特性;由微分方程描述的连续时间选频滤波器;RC 低通与高通滤波器;由差分方程描述的离散时间选频滤波器;滑动平均滤波器;递归离散时间滤波器;演示专业音频控制室中的滤波应用。
授课教师:艾伦·V. 奥本海姆教授
英文字幕稿
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.
PROFESSOR: In discussing the continuous-time and
discrete-time Fourier transforms, we developed a
number of important properties.
Two particularly significant ones, as I mentioned at the
time, are the modulation property and
the convolution property.
Starting with the next lecture, the one after this
one, we'll be developing and exploiting some of the
consequences of the modulation property.
In today's lecture though, I'd like to review and expand on
the notion of filtering, which, as I had mentioned,
flows more or less directly from the convolution property.
To begin, let me just quickly review what the convolution
property is.
Both for continuous-time and for discrete-time, the
convolution property tells us that the Fourier transform of
the convolution of two time functions is the product of
the Fourier transforms.
Now, what this means in terms of linear time-invariant
filters, since we know that in the time domain the output of
a linear time-invariant filter is the convolution of the
input and the impulse response, it says essentially
then in the frequency domain that the Fourier transform of
the output is the product the Fourier transform of the
impulse response, namely the frequency response, and the
Fourier transform of the input.
So the output is described through that product.
Now, recall also that in developing the Fourier
transform, I interpreted the Fourier transform as the
complex amplitude of a decomposition of the signal in
terms of a set of complex exponentials.
And the frequency response or the convolution property, in
effect, tells us how to modify the amplitudes of each of
those complex exponentials as they go through the system.
Now, this led to the notion of filtering, where the basic
concept was that since we can modify the amplitudes of each
of the complex exponential components separately, we can,
for example, retain some of them and
totally eliminate others.
And this is the basic notion of filtering.
So we have, as you recall, first of all the notion in
continuous-time of an ideal filter, for example, I
illustrate here an ideal lowpass filter where we pass
exactly frequency components in one band and reject totally
frequency components in another band.
The band being passed, of course, referred to as the
passband, and the band rejected as the stopband.
I illustrated here a lowpass filter.
We can, of course, reject the low frequencies and retain the
high frequencies.
And that then corresponds to an ideal highpass filter.
Or we can just retain frequencies within a band.
And so I show below what is referred to commonly as a
bandpass filter.
Now, this is what the ideal filters looked like for
continuous-time.
For discrete-time, we have exactly the same situation.
Namely, we have an ideal discrete-time lowpass filter,
which passes exactly frequencies which are the low
frequencies.
Low frequencies, of course, being around 0, and because of
the periodicity, also around 2pi.
We show also an ideal highpass filter.
And a highpass filter, as I indicated last time, passes
frequencies around pi.
And finally, below that, I show an ideal bandpass filter
passing frequencies someplace in the range between 0 and pi.
And recall also that the basic difference between
continuous-time a discrete-time for these
filters is that the discrete-time versions are, of
course, periodic in frequency.
Now, let's look at these ideal filters, and in particular the
ideal lowpass filter in the time domain.
We have the frequency response of the ideal lowpass filter.
And shown below it is the impulse response.
So here is the frequency response and below it the
impulse response of the ideal lowpass filter.
And this, of course, is a sine x over x
form of impulse response.
And recognize also or recall that since this frequency
response is real-valued, the impulse response, in other
words, the inverse transform is an even function of time.
And notice also, since I want to refer back to this, that
the impulse response of an ideal lowpass filter, in fact,
is non-causal.
That follows, from among other things, from the fact that
it's an even function.
But keep in mind, in fact, that a sine x over x function
goes off to infinity in both directions.
So the impulse response of the ideal lowpass filter is
symmetric and continues to have tails off to plus and
minus infinity.
Now, the situation is basically the same in the
discrete-time case.
Let's look at the frequency response and associated
impulse response for an ideal discrete-time lowpass filter.
So once again, here is the frequency response of the
ideal lowpass filter.
And below what I show the impulse response.
Again, it's a sine x over x type of impulse response.
And again, we recognize that since in the frequency domain,
this frequency response is real-valued.
That means, as a consequence of the properties of the
Fourier transform and inverse Fourier transform, that the
impulse response is an even function in the time domain.
And also, incidentally, the sine x over x function goes
off to infinity, again, in both directions.
Now, we've talked about ideal filters in this discussion.
And ideal filters all are, in fact, ideal
in a certain sense.
What they do ideally is they pass a certain band of
frequencies exactly and they reject a band
of frequencies exactly.
On the other hand, there are many filtering problems in
which, generally, we don't have a sharp distinction
between the frequencies we want to pass and the
frequencies we want to reject.
One example of this that's elaborated on in the text is
the design of an automotive suspension system, which, in
fact, is the design of a lowpass filter.
And basically what you want to do in a case like that is
filter out or attenuate very rapid road variations and keep
the lower variations in, of course, elevation of the
highway or road.
And what you can see intuitively is that there
isn't really a very sharp distinction or sharp cut-off
between what you would logically call the low
frequencies and what you would call the high frequencies.
Now, also somewhat related to this is the fact that as we've
seen in the time domain, these ideal filters have a very
particular kind of character.
For example, let's look back at the ideal lowpass filter.
And we saw the impulse response.
The impulse response is what we had shown here.
Let's now look at the step response of the discrete-time
ideal lowpass filter.
And notice the fact that it has a tail that oscillates.
And when the step hits, in fact, it has
an oscillatory behavior.
Now, exactly the same situation occurs in
continuous-time.
Let's look at the step response of the
continuous-time ideal lowpass filter.
And what we see is that when a step hits then, in fact, we
get an oscillation.
And very often, that oscillation is something
that's undesirable.
For example, if you were designing an automotive
suspension system and you hit a curve, which is a step
input, in fact, you probably would not like to have the
automobile oscillating, dying down in oscillation.
Now there's another very important point, which again,
we can see either in continuous-time or
discrete-time, which is that even if we want it to have an
ideal filter, the ideal filter has another problem if we want
to attempt to implement it in real time.
What's the problem?
The problem is that since the impulse response is even and,
in fact, has tails that go off to plus and minus infinity,
it's non-causal.
So if, in fact, we want to build a filter and the filter
is restricted to operate in real time, then, in fact, we
can't build an ideal filter.
So what that says is that, in practice, although ideal
filters are nice to think about and perhaps relate to
practical problems, more typically what we consider are
nonideal filters and in the discrete-time case, a nonideal
filter then we would have a characteristic somewhat like
I've indicated here.
Where instead of a very rapid transition from passband to
stopband, there would be a more gradual transition with a
passband cutoff frequency and a stopband cutoff frequency.
And perhaps also instead of having an exactly flat
characteristic in the stopband in the passband, we would
allow a certain amount of ripple.
We also have exactly the same situation in continuous-time,
where here we'll just simply change our frequency axis to a
continuous frequency axis instead of the discrete
frequency axis.
Again, we would think in terms of an allowable passband
ripple, a transition from passband to stopband with a
passband cutoff frequency and a stopband cutoff frequency.
So the notion here is that, again, ideal filters are ideal
in some respects, not ideal in other respects.
And for many practical problems, we
may not want them.
And even if we did want them, we may not be able to get
them, perhaps because of this issue of causality.
Even if causality is not an issue, what happens in filter
design and implementation, in fact, is that the sharper you
attempt to make the cutoff, the more expensive, in some
sense, the filter becomes, either in terms of components,
in continuous-time, or in terms of computation in
discrete-time.
And so there are these whole variety of issues that really
make it important to understand the
notion nonideal filters.
Now, just to illustrate as an example, let me remind you of
one example of what, in fact, is a nonideal lowpass filter.
And we have looked previously at the associated
differential equation.
Let me now, in fact, relate it to a circuit, and in
particular an RC circuit, where the output could either
be across the capacitor or the output can
be across the resistor.
So in effect, we have two systems here.
We have a system, which is the system function from the
voltage source input to the capacitor output, the system
from the voltage source input to the resistor output.
And, in fact, just applying Kirchhoff's Voltage Law to
this, we can relate those in a very straightforward way.
It's very straightforward to verify that the system from
input to resistor output is simply the identity system
with the capacitor output subtracted from it.
Now, we can write the differential equation for
either of these systems and, as we talked about last time
in the last several lectures, solve that equation using and
exploiting the properties of the Fourier transform.
And in fact, if we look at the differential equation relating
the capacitor output to the voltage source input, we
recognize that this is an example that, in effect, we've
solved previously.
And so just working our way down, applying the Fourier
transform to the differential equation and generating the
system function by taking the ratio of the capacitor voltage
or its Fourier transform to the Fourier transform of the
source, we then have the system function associated
with the system for which the output is
the capacitor voltage.
Or if we solve instead for the system function associated
with the resistor output, we can simply
subtract H1 from unity.
And the system function that we get in that case is the
system function that I show here.
So we have, now, two system functions, one for the
capacitor output, the other for the resistor output.
And one, the first, corresponding to the capacitor
output, in fact, if we plot it on a linear amplitude scale,
looks like this.
And as you can see, and as we saw last time, is an
approximation to a lowpass filter.
It is, in fact, and nonideal lowpass filter, whereas the
resistor output is an approximation to a highpass
filter, or in effect, a nonideal highpass filter.
So in one case, just comparing the two, we have a lowpass
filter as the capacitor output associated with the capacitor
output, and a highpass filter associated with
the resistor output.
Let's just quickly look at that example now, looking on a
Bode plot, instead of on the linear scale
that we showed before.
And recall incidentally, and be aware incidentally, of the
fact that we can, of course, cascade several filters of
this type and improve the characteristics.
So I have shown at the top a Bode plot of the system
function associated with the capacitor output.
It's flat out to a frequency corresponding to 1 over the
time constant, RC.
And then it falls off at 10 dB per decade, a decade being a
factor of 10.
Or if instead we look at the system function associated
with the resistor output, that corresponds to a 10 dB per
decade increase in frequency up to approximately the
reciprocal of the time constant, and then approaching
a flat characteristic after that.
And if we consider either one of these, looking back again
at the lowpass filter, if we were to cascade several
filters with this frequency response, then because we have
things plotted on a Bode plot, the Bode plot for the cascade
would simply be summing these.
And so if we cascaded, for example, two stages instead of
a roll-off at 10 dB per decade, it would roll off at
20 dB per decade.
Now, filters in this type, RC filters, perhaps several of
them in cascade, are in fact very prevalent.
And in fact, in an environment like this, where we're, in
fact, doing recording, we see there are filters of that type
that show up very commonly both in the audio and the
video portion of the signal processing that's associated
with making this set of tapes.
In fact, let's take a look in the control room.
And what I'll be able to show you in the control room is the
audio portion of the processing that's done and the
kinds of filters, very much of the type we just talked about,
that are associated with the signal processing that's done
in preparing the audio for the tapes.
So let's just take a walk into the control room
and see what we see.
This is the control room that's
used for camera switching.
It's used for computer editing and also audio control.
You can see the monitors, and these are used
for the camera switching.
And this is the computer editing console that's used
for online and offline computer editing.
What I really want to demonstrate though, in the
context of the lecture is the audio control panel, which
contains, among other things, a variety of filters for high
frequency, low frequencies, et cetera, basically
equalization filters.
And what we have in the way of filtering is, first of all,
what's referred to as a graphic equalizer, which
consists of a set of bandpass filters, which I'll describe a
little more carefully in a minute.
And then also, an audio control panel, which is down
here and which contains separate equalizer circuits
for each of a whole set of channels and also lots of
controls on them.
Well, let me begin in the demonstration by demonstrating
a little bit of what the graphic equalizer does.
Well, what we have is a set of bandpass filters.
And what's indicated up here are the center frequencies of
the filters, and then a slider switch for each one that lets
us attenuate or amplify.
And this is a dB scale.
So essentially, if you look across this bank of filters
with the total output of the equalizer just being the sum
of the outputs from each of these filters, interestingly
the position of the slider switches as you move across
here, in effect, shows you what the frequency response of
the equalizer is.
So you can change the overall shaping of the filter by
moving the switches up and down.
Right now the equalizer is out.
Let's put the equalizer into the circuit.
And now I put in this filtering characteristic.
And what I'd like to demonstrate is filtering with
this, when we do things that are a little more dramatic
than what would normally be done in a typical audio
recording setting.
And to do this, let's add to my voice some music to make it
more interesting.
Not that my voice isn't interesting as it is.
But in any case, let's bring some music up.
[MUSIC PLAYING]
And now what I'll do is set the low frequencies flat.
And let me take out the high frequencies above 800 cycles.
And so now what we have, effectively,
is a lowpass filter.
And now with the lowpass filter, let me now bring the
highs back up.
And so I'm bringing up those bandpass filters.
And now let me cut out the lows.
And you'll hear the lows disappearing and, in effect,
keeping the highs in effectively crispens the
sound, either my voice or the music.
And finally, let me go back to 0 dB equalization on each of
the filters.
And what I'll also do now is take the equalizer out of the
circuit totally.
Now, let's take a look at the audio master control panel.
And this panel has, of course, for each channel and, for
example, the channel that we're working
on, of a volume control.
I can turn the volume down, and I can turn the volume up.
And it also has, for this particular equalizer circuit,
it has a set of three bandpass filters and knobs which let us
either put in up to 12 dB gain or 12 dB attenuation in each
of the bands, and also a selector switch that lets us
select the center the band.
So let me just again demonstrate a
little bit with this.
And let's get a close up of this panel.
So what we have, as I indicated, is
three bandpass filters.
And these knobs that I'm pointing to here are controls
that allow us for each of the filters to put in up to 12 dB
gain or 12 dB attenuation.
There are also with each of the filters a selector switch
that lets us adjust the center frequency of the filter.
Basically it's a two-position switch.
There also, as you can see, is a button that let's us either
put the equalization in or out.
Currently the equalization is out.
Let's put the equalization in.
We won't hear any effect from that, because the gain
controls are all set at 0 dB.
And I'll want to illustrate shortly the effect of these.
But before I do, let me draw your attention to one other
filter, which is this white switch.
And this switch is a highpass filter that essentially cuts
out frequencies below about 100 cycles.
So what it means is that if I put this switch in, everything
is more or less flat above 100 cycles.
And what that's used for, basically, is to eliminate
perhaps 60 cycle noise, if that's present, or some low
frequency hum or whatever.
Well, we won't really demonstrate
anything with that.
Let's [? go ?] now with the equalization in, demonstrate
the effect of boosting or attenuating the low and high
frequencies.
And again, I think to demonstrate this, it
illustrates the point the best if we have a
little background music.
So maestro, if you can bring that up.
[MUSIC PLAYING]
And so now what I'm going to do is first boost the low
frequencies.
And that's what this potentiometer knob will do.
So now, increasing the low frequency gain and, in fact,
all the way up to 12 dB when I have the knob over as far as
I've gone here.
And so that has a very bassy sound.
And in fact, we can make it even bassier by taking the
high frequencies and attenuating those by 12 dB.
OK well, let's put some of the high frequencies back in.
And now let's turn the low-frequency gain first
back down to 0.
And now we're back to flat equalization.
And now I can turn the low frequency gain down so that I
attenuate the low frequencies by much as 12 dB.
And that's where we are now.
And so this has, of course, a much crisper sound.
And to enhance the highs even more, I can, in addition to
cutting out the lows, boost the highs by putting in,
again, as much as 12 dB.
OK well, let's turn down the music now and go back to no
equalization by setting these knobs to 0 dB.
And in fact, we can take the equalizer out.
Well, that's a quick look at some real-world filters.
Now let's stop having so much fun, and let's
go back to the lecture.
OK well, that's a little behind-the-scenes look.
What I'd like to do now is turn our attention to
discrete-time filters.
And as I've meant in previous lectures, there are basically
two classes of discrete-time filters or discrete-time
difference equations.
One class is referred to a non-recursive or moving
average filter.
And the basic idea with a moving average filter is
something that perhaps you're somewhat familiar with
intuitively.
Think of the notion of taking a data sequence, and let's
suppose that what we wanted to do was apply some smoothing to
the data sequence.
We could, for example, think of taking adjacent points,
averaging them together, and then moving that average along
the data sequence.
And what you can kind of see intuitively is that that would
apply some smoothing.
So in fact, the difference equation, let's say, for
three-point moving average would be the difference
equation that I indicate here, just simply taking a data
point and the two data points adjacent to it and forming an
average of those three.
So if we thought of the processing involved, if we're
forming an output sequence value, we would take three
adjacent points and average them.
That would give us the output add the associated time.
And then to compute the next output point, we would just
simply slide this by one point, average these together,
and that would give us the next output point.
And we would continue along, just simply sliding and
averaging to form the output data sequence.
Now, that's an example of what's commonly referred to a
three-point moving average.
In fact, we can generalize that notion
in a number of ways.
One way of generalizing the notion of a moving average
from the three-point moving average, which I summarize
again here, is to think of extending that to a larger
number of points, and in fact applying weights to that as I
indicated here, so that, in addition to just summing up
the points and dividing by the number of points summed, we
can, in fact, apply individual weights to the points so that
it's what is often referred to as a weighting moving average.
And I show below one possible curve that might result, where
these would be essentially the weights associated with this
weighted moving average.
And in fact, it's easy to verify that this indeed
corresponds to the impulse response of the filter.
Well, just to cement this notion, let me show you an
example or two.
Here is an example of a five-point moving average.
A five-point moving average would have an impulse response
that just consists of a rectangle of length five.
And if this is convolved with a data sequence, that would
correspond to taking five adjacent points and, in
effect, averaging them.
We've looked previously at the Fourier transform of this
rectangular sequence.
And the Fourier transform of that, in fact, is of the form
of a sine n x over sine x curve.
And as you can see, that is some approximation to a
lowpass filter.
And so this, again, is the impulse response and frequency
response of a nonideal lowpass filter.
Now, there are a variety of algorithms that, in fact, tell
you how to choose the weights associated with a weighted
moving average to, in some sense, design better
approximations and without going into the details of any
of those algorithms.
Let me just show the result of choosing the weights for the
design of a 251-point moving average filter, where the
weights are chosen using an optimum algorithm to generate
as sharp a cutoff as can possibly be generated.
And so what I show here is the frequency response of the
resulting filter on a logarithmic amplitude scale
and a linear frequency scale.
Notice that on this scale, the passband is very flat.
Although here is an expanded view of it.
And in fact, it has what's referred to as an equal-ripple
characteristic.
And then here is the transition band.
And here we have to stopband, which in fact is down somewhat
more than 80 dB and, again, has what's referred to as an
equal-ripple characteristic.
Now, the notion of a moving average for filtering is
something that is very commonly used.
I had shown last time actually the result of some filtering
on a particular data sequence, the Dow
Jones Industrial Average.
And very often, in looking at various kinds of stock market
publications, what you will see is the Dow Jones average
shown in its raw form as a data sequence.
And then very typically, you'll see also the result of
a moving average, where the moving average might be on the
order of day, or it might be on the order of months.
The whole notion being to take some of the random high
frequency fluctuations out of the average and show the low
frequency, or trends, over some period of time.
So let's, in fact, go back to the Dow Jones average.
And let me now show you what the result of filtering with a
moving average filter would look like on the same Dow
Jones industrial average sequence that
I showed last time.
So once again, we have the Dow Jones average from 1927 to
roughly 1932.
At the top, we see the impulse response
for the moving average.
Again, I remind you on an expanded time scale, and
what's shown here is the moving average
with just one point.
So the output on the bottom trace is just simply identical
to the input.
Now, let's increase the length of the moving
average to two points.
And we see that there is a small amount of smoothing,
three points and just a little more
smoothing, that gets inserted.
Now a four-point moving average, and next the
five-point moving average, and a six-point
moving average next.
And we see that the smoothing increases.
Now, let's increase the length of the moving average filter
much more rapidly and watch how the output is more and
more smooth in relation to the input.
Again, I emphasize that the time scale for the impulse
response is significantly expanded in relationship to
the time scale for both the input and the output.
And once again, through the magic of filtering, we've been
able to eliminate the 1929 Stock Market Crash.
All right, so we've seen moving average filters, or
what are sometimes referred to as non-recursive filters.
And they are, as I stressed, a very important class of
discrete-time filters.
Another very important class of discrete-time filters are
what are referred to as recursive filters.
Recursive filters are filters for which the difference
equation has feedback from the output back into the input.
In other words, the output depends not only on the input,
but also on previous values of the output.
So for example, as I've stressed previously, a
recursive difference equation has the general form that I
indicate here, a linear combination of weighted
outputs on the left-hand side and linear combination of
weighted inputs on the right-hand side.
And as we've talked about, we can solve this equation for
the current output y of n in terms of current and past
inputs and past outputs.
For example, just to interpret this, focus on the
interpretation of this as a filter, let's look at a first
order difference equation, which we've talked about and
generated the solution to previously.
So the first order difference equation would be as I
indicated here.
And imposing causality on this, so that we assume that
we are running this as a recursive forward in time, we
can solve this for y of n in terms of x of n and y of n
minus 1 weighted by the factor a.
And I simply indicate the block diagram for this.
But what we want to examine now for this first order
recursion is the frequency response and see its
interpretation as a filter.
Well in fact, again, the mathematics for this we've
gone through in the last lecture.
And so interpreting the first order difference equation as a
system, what we're attempting to generate is the frequency
response, which is the Fourier transform
of the impulse response.
And from the difference equation, we can, of course,
solve for either one of those by using the properties,
exploiting the properties, of Fourier transform.
Applying the Fourier transform to the difference equation, we
will end up with the Fourier transform of the output equal
to the Fourier transform of the input times this factor,
which we know from the convolution property, in fact,
is the frequency response of the system.
So this is the frequency response.
And of course, the inverse Fourier transform of that,
which I indicate below, is the system impulse response.
So we have the frequency response obtained by applying
the Fourier transform to the difference equation, the
impulse response.
And, as we did last time, we can look at that in terms of a
frequency response characteristic.
And recall that, depending on whether the factor a is
positive or negative, we either get a lowpass filter or
a highpass filter.
And if, in fact, we look at the frequency response for the
factor a being positive, then we see that this is an
approximation to a lowpass filter, whereas below it I
show the frequency response for a negative.
And there this corresponds to a highpass filter, because
we're attenuating low frequencies and retaining the
high frequencies.
And recall also that we illustrated this
characteristic as a lowpass or highpass filter for the first
order recursion by looking at how it worked as a filter in
both cases when the input was the Dow Jones average.
And indeed, we saw that it generated both lowpass and
highpass filtering in the appropriate cases.
So for discrete-time, we have the two classes, moving
average and recursive filters.
And there are a variety of issues discussed in the text
about why, in certain contexts, one might want to
use one of the other.
Basically, what happens is that for the moving average
filter, for a given set a filter specifications, there
are many more multiplications required than
for a recursive filter.
But there are, in certain contexts, some very important
compensating benefits for the moving average filter.
Now, this concludes, pretty much, what I want to say in
detail about filtering, the concept of filtering, in the
set of lectures.
This is only a very quick glimpse into a very important
and very rich topic, and one, of course, that can be studied
on its own in an considerable amount of detail.
As the lectures go on, what we'll find is that the basic
concept of filtering, both ideal and nonideal filtering,
will be a very important part of what we do.
And in particular, beginning with the next lecture, we'll
turn to a discussion of modulation, exploiting the
property of modulation as it relates to
some practical problems.
And what we'll find when we do that is that a very important
part of that discussion and, in fact, a very important part
of the use of modulation also just naturally incorporates
the concept and properties of filtering.
Thank you.