Learn the fundamentals of digital signal processing theory and discover the myriad ways DSP makes everyday life more productive and fun.

Loading...

来自 洛桑联邦理工学院 的课程

数字信号处理

241 评分

Learn the fundamentals of digital signal processing theory and discover the myriad ways DSP makes everyday life more productive and fun.

从本节课中

Module 4: Part 1 Introduction to Filtering

- Paolo PrandoniLecturer

School of Computer and Communication Science - Martin VetterliProfessor

School of Computer and Communication Sciences

According to the shape of their impulse response,

we can already label a filter as belonging to one of the following categories.

You have Finite Impulse Response Filters or FIRs for short,

Infinite Impulse Response or IIR, causal filters and noncausal filters.

FIR filters have an impulse response with a finite support.

Because of that and because of how the convolution sum is computed, only a finite

number of samples are involved in the computation of each output sample.

A typical example of FIR filter is the moving average filter that we've seen

before where only capital M samples are non zero.

IIR filters on the other hand have an infinite support for

their impulse response.

So potentially an infinite number of samples are involved in the computation of

each output sample.

However, perhaps surprisingly,

in many cases we can still compute each output sample in a finite amount of time.

One notable exception is the class of ideal filter which we will study shortly.

For instance, the leaky integrator has an implement supporting pulse response,

but due to its algorithmic nature.

We can compute each output sample with only three operations.

A filter is said to be causal if its impulse response is zero,

for n less than zero.

Now, if you remember how the convolution sample is computed, convolution involves

a time reversal of the impulse response before multiplication with the input.

That means that only past values of the input

are involved in the computation of the output.

So for instance, if your input response is like this and

zero, when you compute the convolution sum you time reverse it.

And so you will only affect values in the past.

Causal filter, because of their dependency only on the past, can work online,

they can work in real time.

A noncausal filter, on the other hand, is a filter whose impulse response is

now zero for at least some negative values of the index.

In other words, noncausal filters will need samples from the future

in order to be able to compute their current output value.

As such they can, of course, not work in real time.

But there are applications in which the future is indeed available to

a process system.

And particular when you do what is called batch processing,

namely processing for which all the data is available in advance.

A typical case in point is image processing in which

the whole picture is available for processing before you start.

The moving average filter is again a causal filter.

We have developed it in a causal fashion and indeed its impulse response

is now zero only for positive or null values of the index.

We could develop a known causal moving average if we center

the impulse response is 0.

And, indeed, if we do so, we would eliminate the delay that you've seen

when computing longer and longer averages,

because we would compensate the delay by looking at future samples.

We could apply this to a set of data that we've already stored in computer memory,

for instance.