跳到主要内容

第 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.