ajal filters

88
The Basic Theory of Filtering AJAL.A.J ASSISTANT PROFESSOR UNIVERSAL ENGINEERING COLLEGE Mail: [email protected] , Mob: 8907305642 1 AJAL.A.J , 8907305642

Upload: ajal-jose

Post on 26-Jun-2015

899 views

Category:

Engineering


2 download

DESCRIPTION

The Time and Frequency Response of the Analog Filter digital delay

TRANSCRIPT

Page 1: Ajal filters

The Basic Theory of Filtering

AJAL.A.J

ASSISTANT PROFESSOR

UNIVERSAL ENGINEERING COLLEGEMail: [email protected] , Mob: 8907305642

1AJAL.A.J , 8907305642

Page 2: Ajal filters

What is a filter?

Vin Vout

Simply put, it retains history of the input signal.

Take this simple lowpass filter for an example.

This simple filter is a kind of integrator, in which the capacitor integrates the charge provided through the resistor. As the rate of change of Vout depends on the current

through the resistor, low frequencies will be filtered less than high frequencies.

2AJAL.A.J , 8907305642

Page 3: Ajal filters

In other words:

• The output of a filter is a function not only of the input at the present time, but also of previous events.

• That’s what a linear filter does. No more, no less. We are sticking to linear filters today, thank you!

• There are many ways to build filters.3AJAL.A.J , 8907305642

Page 4: Ajal filters

The Time and Frequency Response of the Analog Filter

Time (impulse) Response

Frequency Response

4AJAL.A.J , 8907305642

Page 5: Ajal filters

How does the analog filter exhibit memory?

• In the case shown, the capacitor is the memory element.– It retains previous history.– It does so by summing the history into one

value, the voltage across the capacitor.– In such a way, a single component can have

a long memory.

5AJAL.A.J , 8907305642

Page 6: Ajal filters

Ok, what’s the “impulse response”

Impulse response is the response of the circuit to a (mathematical) signal of infinite height (and power), and infinitely short duration. This “unit impulse” has very special characteristics:

1) It contains all frequencies2) It has energy of “1” at all frequencies.3) It describes the behavior of the filter at all frequencies.

Completely.

POINT 3 is what you need to remember. The impulse response of a filter is a complete description of what it does.

6AJAL.A.J , 8907305642

Page 7: Ajal filters

Another way to look at the impulse response.

• The impulse response of a system shows how a filter captures the HISTORY of the signal. In other words: – The value of the impulse response at a time ‘t’

demonstrates how much of the HISTORY of the signal is added to the output at time ‘t’ later.

7AJAL.A.J , 8907305642

Page 8: Ajal filters

Remember last month?

• Multiple speakers created a “comb filter”?– Yep, that’s a filter. Different distance means

“different times in the history of the signal.

– You can plot a time response for such a filter just like you can plot the one for the simple RC filter above.

– We saw some of that last month.

8AJAL.A.J , 8907305642

Page 9: Ajal filters

Getting back to the analog filter:

• The analog filter’s output can not change instantly as that would require infinite current in the resistor, that means that the output depends on the HISTORY of the signal.

• In fact, if you have an input signal, and you integrate the product of the time-reversed impulse response times the signal, you get the filter’s output.

9AJAL.A.J , 8907305642

Page 10: Ajal filters

DID YOU SAY INTEGRATE?

• Well, it can be a sum, rather than an integral, and in fact in the digital domain, it is a sum, rather than an integral.

• In the digital domain, rather than having all frequencies, you have all frequencies inside the digital passband, which will be ½ the sample rate wide.

10AJAL.A.J , 8907305642

Page 11: Ajal filters

I’ll say more about that later.

• For now, let’s get back to that analog filter again for a minute.

11AJAL.A.J , 8907305642

Page 12: Ajal filters

So, what did that filter actually do?

• It stored part of the history of the signal. As the time went on, it “forgot”, exponentially, the contributions to its output from previous history.– Not all impulse responses are so simple.– An impulse response may be positive or

negative– An impulse response may “ring” or not.

12AJAL.A.J , 8907305642

Page 13: Ajal filters

How about a “Digital” filter?

+

One SampleDelay

Feedback

X (1-1/8)

Input Output

The digital filter uses history explicitly.

13AJAL.A.J , 8907305642

Page 14: Ajal filters

That digital delay

• In digital terms, a delay of one sample is defined as a multiplication by ‘z’. – Some texts use z-1.– Either works. The rules are the same, except

for how you interpret some things that I’ll leave out for now.

– Remember a delay of ‘z’ is one sample. If I say I multiplied a signal by z3, it means I delayed it by 3 samples. Yes, it really is that simple.

14AJAL.A.J , 8907305642

Page 15: Ajal filters

What is it’s time and frequency response?

The result is the same (below half the sampling rate)

15AJAL.A.J , 8907305642

Page 16: Ajal filters

What about not below half the sampling rate?

• Inside the ‘z’ domain, there is no such thing.– The ‘z’ domain is also called the “digital domain” by many people. This

does involve a potential confusion that I will ignore for the time being.

• Remember when we talked about the sampling theorem a long time ago? We used an anti-aliasing filter.

• All other “frequencies” are represented by aliases below fs/2, and you don’t let them in in the first place!

• All information in the sampled domain is contained inside that bandwidth. All aliases/images contain exactly the SAME information as the baseband spectrum. No more, no less.

16AJAL.A.J , 8907305642

Page 17: Ajal filters

Why is the response the same?

• This filter also stores the history of the signal in an exponentially decaying fashion. In the digital filter, you can see the storage more directly, as the ‘z’ element. In the analog filter, reactive components provide the history in a continuous fashion.

• I picked the parameters to provide the same visible response as long as we stay well below half the sampling rate.

• Recursive (IIR) filter outputs depend on both previous outputs and input(s).

• Analog filters are mostly (but not completely) filters that depend on both output and input.

17AJAL.A.J , 8907305642

Page 18: Ajal filters

Back to Impulse Response

• The response of either filter to an impulse is called its “impulse response”. A digital impulse is simpler (as the bandwidth is finite), and consists of one ‘1’ sample but both have the same use.

• This is the “time response” plotted in the proceeding diagrams.

• The impulse response of a filter defines its memory (history) of a signal.

• Remember. The impulse response of the filter contains exactly all the information about a filter.

• This is, you will find out, very handy.

18AJAL.A.J , 8907305642

Page 19: Ajal filters

Ok, what’s the big deal, JJ?

• Since the impulse response of the filter defines its interaction with the signal, this means that we can either use the recursive form shown before to implement the filter, or we can simply multiply the time reversed impulse response by the signal and sum (integrate) the result, to get the filter output.

• The two operations are exactly the same.

19AJAL.A.J , 8907305642

Page 20: Ajal filters

Let us use a 9th order Elliptical filter as an example:

Impulse response

NoiseInput

Red: By time reverse, multiply, and sum Green: By direct filtering

(the two exactly overlap)

20AJAL.A.J , 8907305642

Page 21: Ajal filters

Convolution

• The process of multiplying the time-reversed signal by the impulse response, and summing (integrating) is called “convolution”.

t

tthtTx )()(

Think of it as a way to expressly include the history of the signal in the filter output.21AJAL.A.J , 8907305642

Page 22: Ajal filters

I thought we multiplied transfer functions, jj????

S() H() Y() = S()*H()

The usual way we see transfer functions expressed:(notice this is in the ‘’, or frequency, domain)

What’s actually happening in the time domain:(Note: is used here to denote convolution.

There are other notations.)

s(t) s(t)h(t) y(t)

These are two ways of saying the exact same thing! 22AJAL.A.J , 8907305642

Page 23: Ajal filters

Multiplication in the time domain is the same as convolution in the frequency domain.

Multiplication in the FREQUENCY domain is the same as convolution in the TIME domain.

It works either way. If you read a DSP text, you will see the word “duality”. This is duality in action.

23AJAL.A.J , 8907305642

Page 24: Ajal filters

• For typical filters, convolution is what happens in the time domain.

• Convolution is merely another way of expressing what happens when you filter a signal.

• It’s the same as multiplying the signal by the transfer function.

This relationship holds for the ‘s’ domain, the ‘z’ domain, and quite some other domains as well. 24AJAL.A.J , 8907305642

Page 25: Ajal filters

• Convolution is important because:– Convolving in the time domain (like we just saw here)

is the same as multiplying the Fourier Transform of the signal by the Fourier Transform of the Impulse Response and then taking the Inverse Fourier Transform

– This works the other way around, too, but isn’t usually as interesting to discuss in most filtering applications except perhaps as window functions. (There are exceptions, for instance, “TNS”.)

25AJAL.A.J , 8907305642

Page 26: Ajal filters

Multiplication of Transforms of Signal and Filter

Signal

Signal Spectrum

Filter

FilterSpectrum

Product of Spectra

Inverse transformOf Product 26AJAL.A.J , 8907305642

Page 27: Ajal filters

An example of ConvolutionTime

DomainFrequency

Domain

h(t)

s(t)

y=s(t) h(t)

|FFT(y)|

|H(w)|

|S(w)|

|Y(w)=H(w)*S(w)|

IFFT(Y)

In this plot, it’s easier to see the linear superposition in the time domainbecause the two parts of the signal s(t) do not overlap. 27AJAL.A.J , 8907305642

Page 28: Ajal filters

What’s my point?

• Filtering is Convolution. Convolution is filtering. They are the same thing expressed in different domains. There are several ways to do filtering:– IIR (Infinite Impulse Response) filters, like the two

shown much earlier. They are called IIR because the filter’s impulse response continues to infinity (yes, at infinitely small value for a stable filter). These filters, effectively, use a topology that implements the history inside a few (very important, sensitive) state variables.

– FIR (Finite Impulse Response) filters, in other words, just do the convolution using a ( potentially arbitrary) impulse response.

28AJAL.A.J , 8907305642

Page 29: Ajal filters

So, they are the same?

• Well, no. In fact, FIR filters have zeros, and IIR filters have poles. (In reality, nearly all IIR filters have both poles and zeros, which is to say that they have both an FIR and an IIR part.

• FIR and IIR filters can have quite different properties, and usually do, they are two different means to an end. Neither one nor the other is always better.

29AJAL.A.J , 8907305642

Page 30: Ajal filters

More about IIR filters

• IIR filters must be implemented using feedback to implement the poles, in order to be truly IIR.– IIR filters are “longer” (in terms of impulse response)

compared to the memory they directly use. (i.e. a 2nd order filter can have 1000’s of samples of significant energy in its impulse response.)

• The impulse response length is what can determine the sharpness of the filter’s frequency and phase response.

– This extension places substantial requirements on the implementation in terms of accuracy, both of coefficients (analog or digital), and of related processes (digital storage, multiplication, addition).

– The data is stored in a few variables, so the accuracy required for those variables rises accordingly.

30AJAL.A.J , 8907305642

Page 31: Ajal filters

FIR Filters

• FIR filters are not generally as sensitive to coefficient roundoff

• FIR filters often require more computation, because you must do a multiply-add for each term in the impulse response

• FIR filters can be constant delay, IIR filters can not. Sometimes this matters.

31AJAL.A.J , 8907305642

Page 32: Ajal filters

What are the meaningful properties of a filter?

• The amplitude response (plotted in terms of amplitude vs. frequency)

• The phase response (plotted in terms of phase vs. frequency)– What does phase response mean?

• Linear phase (i.e. constant time delay)• Minimum phase• Non-minimum-phase Linear phase is an important

subset of this class that has all zeros.

Attention: We are talking about single filters here, not filter banks. Thatis another subject, and one that places more constraints on individual filters!

32AJAL.A.J , 8907305642

Page 33: Ajal filters

A bit more on phase response

• “Linear Phase” (constant delay)– If a filter has a constant delay, the phase shift of the filter will be

t*w, where t is the time delay, and w the natural frequency (2 pi f).

• This means that a delay can exhibit enormous phase shift.• This phase shift, however, is ONLY delay.

• Non-linear delay– This is the part of the phase shift (in and around the filter’s

passband) that is not modeled by a straight line)• The part that does not correspond to a straight line constitutes non-

constant-time phase shift.

• Phase shift of “1 million degrees” in and of itself tells you nothing!

33AJAL.A.J , 8907305642

Page 34: Ajal filters

Some example plots:IIR FIR

ImpulseResponseNotice similar

length

MagnitudeResponse

Notice similar frequencyresponse

PhaseResponse

DIFFERENTPHASE

RESPONSE

13th order elliptical,(poles and zeros)

512 pointSymmetric

FIR

“Linear” phaseNote phaseNonlinearity in

passband

34AJAL.A.J , 8907305642

Page 35: Ajal filters

Properties of Impulse Responses

• Symmetry

• Antisymmetry

• Asymmetry

• DC Gain

• Fs/2 Gain

• Frequency response

• Phase Response

35AJAL.A.J , 8907305642

Page 36: Ajal filters

DC gain

• The DC gain of an impulse response is exactly the sum of all of its non-zero coefficients.

• For many applications, one wishes to set this to one.– This is easy. Divide the entire impulse

response by the sum of all values of the impulse response.

36AJAL.A.J , 8907305642

Page 37: Ajal filters

Gain at FS/2

• This is also easy.

• Sum all of the EVEN taps

• Sum all of the ODD taps

• The difference of the two is the gain of the filter at FS/2

37AJAL.A.J , 8907305642

Page 38: Ajal filters

Some useful things to know(I won’t prove them here)

• A symmetric impulse response implies:– The passband phase response (one or multiple passbands) will

look like a pure delay (linear phase)• “Linear phase” phi = w*t, where omega is the natural frequency

and ‘t’ is the time delay

• An antisymmetric impulse response has some interesting (and special) properties. They are beyond this introductory tutorial, but are worth looking into for some applications. Such filters will have “linear phase” in the passband, but the intercept of such a filter at DC must be at +_ 90 degrees, and the filter must have a zero at DC.

• An asymmetric impulse response implies:– The passband phase response is not a pure delay.– Practically speaking this means that the response is the sum of

a symmetric and an antisymmetric response.

38AJAL.A.J , 8907305642

Page 39: Ajal filters

Implications of the previous page

No IIR filter can be linear phase. If it were, it would have

to extend to infinity on both sides, and have infinite delay.

Some IIR filters can “come close” under some

circumstances. In such cases, they have substantial “pre-

ringing” (as they must). A true IIR filter with linear phase must be “non-causal”, i.e. it must be

able to “look ahead” in time

9th order ButterworthImpulse response

With 108 gain

39AJAL.A.J , 8907305642

Page 40: Ajal filters

FIR filters are usually designed as “type 1 linear phase” meaning that they are symmetric, with even filters having two identical center taps, and odd filters

symmetric about a single center tap. Symmetric filters with an even number of taps must have a zero at pi and can not be highpass.

Even Odd

40AJAL.A.J , 8907305642

Page 41: Ajal filters

There are other kinds of FIR filters, in particular antisymmetric even tap filters, which have linear phase in the passband, but do not have zero phase shift at DC. Rather, they

have + or – 90 degree phase shift at DC, and must have a zero at DC. These “type 4 filters” can not be used as lowpass filters.

41AJAL.A.J , 8907305642

Page 42: Ajal filters

A completely asymmetric FIR filter is a valid filter, and in some cases (phase compensation, etc) may be used. Such filters are usually for special-purpose

applications, however.

42AJAL.A.J , 8907305642

Page 43: Ajal filters

A comparison of 3 FIR filters

43AJAL.A.J , 8907305642

Page 44: Ajal filters

Even vs. odd lengthEven Odd

(we will compare 32 tap vs. 33 tap Lowpass FIR’s with identical parameters except for length

Zero at pi Nonzero at pi

Delay of 15.5 samples. Delay of 16 samples

44AJAL.A.J , 8907305642

Page 45: Ajal filters

So?

• If you need an integer delay in the filter, use an odd-length filter. (N.B. In many applications, where even filters are applied twice, you can use two even filters.)

• If you need a zero at pi, use an even-length filter.

• If you don’t want a zero at pi, you can’t use a symmetric even-length filter. You can use an antisymmetric even length filter if you want a highpass filter, but then you’ll have a zero at DC.– This means that symmetric high pass filters are of

odd length.

45AJAL.A.J , 8907305642

Page 46: Ajal filters

More useful things to know

• The longer the impulse response is at a given level, the sharper the filter cutoff will be to that level– This expresses the old, familiar knowledge

that df · dt >= 1 (for a two-sided Gaussian)– Yes, this means that if you want 1 Hz

resolution, you need a 1 second impulse response.

46AJAL.A.J , 8907305642

Page 47: Ajal filters

Frequency Response vs. LengthShort Long

32 tap 64 tap

The top filters have a wide transition band (.25) The bottom a .05 transition band.47AJAL.A.J , 8907305642

Page 48: Ajal filters

The filters vs. their responses32 tap first

Big

Small

Note: The passband ripple performs in a similar fashion.48AJAL.A.J , 8907305642

Page 49: Ajal filters

Filter vs. response64 tap

49AJAL.A.J , 8907305642

Page 50: Ajal filters

There are other tradeoffs possible

• IIR filters can have:– Passband ripple only– Stop band ripple only– Neither passband nor stop band ripple (monotonic

response)– Both passband and stop band ripple

• FIR filters as usually designed can have:– Ratio of passband ripple to stop band ripple controlled

via design parameters. The filter response is not defined in a “transition” band.

– There are other FIR types possible, they are not that common in most present-day uses.

50AJAL.A.J , 8907305642

Page 51: Ajal filters

FIR Example – Passband vs. stopband ripple.

Both filters have 32 taps and the same edge frequency and transition bandwidth

Passband weight 10, stop band .1 Passband weight .1, stopband 10

51AJAL.A.J , 8907305642

Page 52: Ajal filters

What’s this about “windows”?

• A window is just another filter, usually a lowpass filter.– It is a filter that is most often used to mitigate

“edge effects” or other artifacts of truncation or blocking.

– It is normally MULTIPLIED in the time domain, therefore it CONVOLVES in the frequency domain.

52AJAL.A.J , 8907305642

Page 53: Ajal filters

Several examples of windows:These are examples of a windowed sync (brick wall) filter

All filters are length 8191

Black is rectangular window, red is Hann, green is Blackman, blue is Hamming, cyan is Kaiser(5), magenta is Bartlett, yellow is Nutall 53AJAL.A.J , 8907305642

Page 54: Ajal filters

How are filters described?

• FIR filters usually are simply listed by either the tap weights (individual values) or by a function that describes the tap weights. This is the same as providing numerator polynomial.

• IIR filters are described as sets of poles and zeros. More on that now:

54AJAL.A.J , 8907305642

Page 55: Ajal filters

Poles? Zeros? WHAT!?

• Poles and zeros are a way of expressing a transfer function as two polynomials, one in the numerator, and one in the denominator.

• For either numerator or denominator, a polynomial can be described as a1+ a2 * z1 + a3* z2 … where a1, a2, a3 are the “tap weights’.

• One can also calculate the roots of the polynomial.– The roots of the numerator are the ZEROS.– The roots of the denominator are the POLES.

55AJAL.A.J , 8907305642

Page 56: Ajal filters

Why poles? Why Zeros?

• A zero shows a value for the polynomial variable that results in a ZERO output.

• A pole shows a value for the polynomial that has an INFINTE output. (the response looks like a pole)

• The meaning of poles and zeros in terms of frequency changes depending on the kind of transfer function (i.e. ‘s’ or Laplace domain, ‘z’ domain, ‘’ or Fourier domain, or others) but for the commonly used domains will still be some expression of frequency.

56AJAL.A.J , 8907305642

Page 57: Ajal filters

A pole/zero plot for a 5th order Butterworth, using bilinear Z form

57AJAL.A.J , 8907305642

Page 58: Ajal filters

Expressing Poles and Zeros

• In the FIR filter, the zeros are expressed by directly providing an impulse response, corresponding to the polynomial that results in the zeros.

• In an IIR filter, both the poles and zeros are often factored. This leads to a variety of topologies, shown on the next page.

• Factoring depends on the fact that any real coefficient polynomial can be factored into real roots or complex pairs of roots. A complex pair of roots will always have real coefficients.

58AJAL.A.J , 8907305642

Page 59: Ajal filters

Direct form 2nd order Cascade form

1z

1z

These are not the only two possibilities.

a1

a2

a3

a4

a51z

1z

1z b1

b2

b3

b4

b5

a1

a2

b1

b2

One Second Order Section

(multiple sections are cascaded)

59AJAL.A.J , 8907305642

Page 60: Ajal filters

The Direct Form

• The direct form creates a number of difficulties.– It increases the size (in terms of bit depth) of

numerical coefficients– It increases the depth required for accumulators

(mantissa for floating point)

• It’s not, generally speaking, very common or useful for more than 3rd order. Don’t do this.– This can result in instabilities due to numerical

resolution– You can get “limit cycles” and other disturbing

nonlinear behavior

60AJAL.A.J , 8907305642

Page 61: Ajal filters

Factoring into second-order sections:

• There are a number of ways to make second order sections.– All depend on the fact that you can factor a real-valued

polynomial into second-order sections with real coefficient values.

– How does this relate to filtering? • If you convolve a set of factored polynomials, you get the original

polynomial– That means that if you cascade sections with the polynomials

implemented, you MULTIPLY the transfer functions. This is the same old duality in another form. What you’re doing is convolving things a part at a time, and then doing more and more in cascade.

• A second-order section is easy to check for stability.• By factoring both numerator and denominator and grouping things

correctly, you can ensure the best gain structure for a given filter.

• Your computer does this for you!

61AJAL.A.J , 8907305642

Page 62: Ajal filters

So we factor FIR’s as well?

• Generally not. There are several reasons:– The coefficient bit-depth growth is not nearly as

extreme– Coefficients are not generally as large (in FIR filters

coefficients are most often considerably smaller than 1.

– FIR’s can’t go unstable, have limit cycles, or some other kinds of disturbing behavior.

– Of course, they require more calculation, and they may require a wider accumulator than you expect.

62AJAL.A.J , 8907305642

Page 63: Ajal filters

Some examples of Filter Coefficients

• For an IIR 3rd order bilinear Z Butterworth filter with a cutoff at .125 fs/2, the numerator is:

0.0053 0.0159 0.0159 0.0053• The denominator is: 1.0000 -2.2192 1.7151 -0.4535

• For a similar FIR filter, the tap values are: 0.0003 0.0034 0.0067 -0.0031 -0.0312 -0.0397 0.0349 0.1945

0.3343 0.3343 0.1945 0.0349 -0.0397 -0.0312 -0.0031 0.0067 0.0034 0.0003

• Notice the difference in the size of the tap weights. In this example, the tap weights are quite moderate for an IIR denominator. Longer filters will have often have a substantially larger range of values.

In general, this kind of tradeoff is well beyond the scope of a beginning tutorial, but everyone must be aware of this kind of issue. As you will discover in the next part of this tutorial, most filter design packages take care of this problem.

63AJAL.A.J , 8907305642

Page 64: Ajal filters

How to write a transfer function, in the ‘z’ domain:

• The transfer function for the third order Butterworth is written as:

• In factored form, it would look like this:

3-2-1-

-3-2-1

z 0.4535- z 1.7151 z 2.2192- 1.0000

z 0.0053 z 0.0159 z 0.0159 0.0053

6788.551.1

12*

6682.

1*0053.

12

12

1

1

zz

zz

z

z

Doing factoring is one of the things Matlab, Octave, and other linear algebra and/or filter design packages are for.

64AJAL.A.J , 8907305642

Page 65: Ajal filters

More about poles and zeros

• We’ll show some pole/zero plots, along with the impulse responses, frequency responses and phase responses.

65AJAL.A.J , 8907305642

Page 66: Ajal filters

Symmetric FIR (odd length)

66AJAL.A.J , 8907305642

Page 67: Ajal filters

Allpass Filter

67AJAL.A.J , 8907305642

Page 68: Ajal filters

Designing Filters

• Steve will show you Octave, a freeware program that allows you to design both IIR and FIR filters.

• We’ll discuss a bit, here, about designing both kinds of filters.

68AJAL.A.J , 8907305642

Page 69: Ajal filters

Designing IIR Filters

• First, decide what kind of filter you want:– Butterworth (no ripple, monotonic amplitude

response, requires more poles/zeros)– Chebychev 1 (passband ripple, monotonic

stopband)– Chebychev 2 (stopband ripple, monotonic

passband)– Elliptical (equiripple passband, equiripple

stopband. Shortest filter for a given rejection ratio. Has issues.)

69AJAL.A.J , 8907305642

Page 70: Ajal filters

How to do that?

• Use the “help” function.– help butter (for Butterworth)– help cheby1 (for Chebychev 1)– help cheby2 (for Chebychev 2)– help ellip (for Cauer elliptical)

• Follow the directions. Time does not permit a full examination of all of the calling parameters.

• All have the form– [bb, aa]=butter(3,.125) for example.– BB is the zero polynomial– AA is the pole polynomial

70AJAL.A.J , 8907305642

Page 71: Ajal filters

What does the Frequency Response look like?

• Use “freqz(bb,aa)”

• It will give you frequency and phase response.

71AJAL.A.J , 8907305642

Page 72: Ajal filters

Designing FIR filters

• Use “remez”• This takes a bit of doing.

• Before you use “remez” you need to decide:– Length of the filter (a single integer)– The points at which frequency response

changes– The amplitudes at each of those points.

72AJAL.A.J , 8907305642

Page 73: Ajal filters

So you have

• len=15 (NOTE: That means a 16 tap filter, the order is 1 less than the filter length)

• freq=[ 0 .2 .6 1] (that is a list of 4 frequencies, corresponding to DC, .2 .6 and 1 times half the sampling rate, whatever that is). 0 and 1 must be included.

• amp=[1 1 0 0] (that means that the amplitude at 0 and .2 you want to be close to 1. at .6 and 1, you want it to be zero.

• bb=remez(len,freq,amp) will give you a filter that is optimized to be as close as possible to that response.

73AJAL.A.J , 8907305642

Page 74: Ajal filters

But I care about passband ripple!(or stopband ripple)

• w=[10 1] (this is half as long as freq and amp vectors, both of which must be even length) Here, the 10 means that the ERROR in the filter design between the first two frequency points is counted 10 times as much as the weight (1) between the second two points.

• So bb=remez(len,freq,amp,w) will give you a filter

with the error weighting you specify.• NOTE: you can not weight the error in a

transition band. By definition, there is no error in a transition band.

74AJAL.A.J , 8907305642

Page 75: Ajal filters

Now, frequency response

• freqz(bb)

• That’s all it takes. You will see frequency and phase response.

• remez always designs symmetric filters, unless you tell it to do something else

• “help remez” will get you as many options as you wanted to ever know about.

75AJAL.A.J , 8907305642

Page 76: Ajal filters

To Take Home:

• Filtering is the practice of convolving an impulse response (the time response of the filter) with the signal.

• FIR filters directly implement this convolution.

• IIR filters use a functional representation that does the convolution implicitly, with some cost in implementation issues.

76AJAL.A.J , 8907305642

Page 77: Ajal filters

More to take home:

• Frequency (complex spectrum) response and impulse response are duals.

• The relationship df * dt > matters in filter design just like it does in anything else.– If you want a sharp filter, you have a long impulse

response.– If you want a short impulse response, you can not

have a sharp filter cutoff.

• IIR filters do not shorten the impulse response, they simply operate in a different fashion.

77AJAL.A.J , 8907305642

Page 78: Ajal filters

To come after the break:

• Steve Hastings will give you a set of tips for tools that you can get off the net to help you design, plot, and understand filters (and a whole lot more things)

• boB Gudgel will show you what it sounds like to implement various filters, and offer tips on how to do this kind of work in the real world.

78AJAL.A.J , 8907305642

Page 79: Ajal filters

Filterbanks

• Ok, now what is a filter?

• And a filterBANK?

Filterin out

Filterbankinoutputs

79AJAL.A.J , 8907305642

Page 80: Ajal filters

Filterbanks

• A filterbank is nothing but a way to implement a set of filters, generally strongly mathematically related, in one operation.

• A filterbank can always be decomposed into a set of individual filters– This is usually a lot more work that it’s worth,

but not always.

80AJAL.A.J , 8907305642

Page 81: Ajal filters

The famous audio filterbank:

• This would be the “MDCT”, or “Modified Discrete Cosine Transform”.– Annoyingly, it’s not a transform, it’s a

FILTERBANK.– It is an exact reconstruction filterbank, though,

so it does obey most of the rules of transforms, except that it has overlap between blocks, and remains critically sampled. A transform either has no overlap, OR is not critically sampled.

81AJAL.A.J , 8907305642

Page 82: Ajal filters

Critically Sampled – Whaaa???

• Critically sampled is a simple concept at its heart, it means that in the filtered domain, you have the same number of samples that you do in the unfiltered domain.

82AJAL.A.J , 8907305642

Page 83: Ajal filters

The theory of filterbanks is long, deep, and wide

• And I won’t even try to relate it in an hour.

• BUT, what you need to remember is that an output of a filterbank is just like running some particular kind of a filter on the signal. The filterbank just does a lot of these at once.

• It may also:– Downsample (i.e. critical sampling)– Be oversampled (more values in the filtered domain

than in the input and output domains)

83AJAL.A.J , 8907305642

Page 84: Ajal filters

What are some applications?

• For an MDCT, the obvious one is coding:– It is critically sampled. Ergo, no extra data to

code– It does a good job of frequency analysis, so

you can relate the perceptual model well, and you can also get good signal processing gain from it.

– It has an efficient form for calculation, very similar to an FFT of half its length.

84AJAL.A.J , 8907305642

Page 85: Ajal filters

Some rules about critically sampled banks.

• If you’re not careful, very odd things happen when you modify the filtered results.– The best known of these is the “pre-echo” in audio

codecs.– There are also other things that can go wrong

• Why? That critical sampling means that the filterbank creates a lot of aliasing, and then cancels it on reconstruction. Mess with the signal in the filtered domain, and the aliasing does not cancel.

85AJAL.A.J , 8907305642

Page 86: Ajal filters

How about oversampled filterbanks

• You can avoid aliasing problems, so– You can modify the signal– You can use it for things like equalizers– Gain compressors work well with this kind of

filterbank

• There are other applications that are far too complicated to bring up at present.

86AJAL.A.J , 8907305642

Page 87: Ajal filters

So - Filterbanks

• At their heart, nothing but a handy way of implementing a whole set of filters at the same time.– There are more things to this than

computational efficiency.

87AJAL.A.J , 8907305642

Page 88: Ajal filters

Thank u all

AJAL.A.J , 8907305642 88