digital filters honza Černocký, Úpgm. aliases numerical filters discrete systems discrete-time...

59
Digital filters Honza Černocký, ÚPGM

Upload: lindsay-bates

Post on 13-Dec-2015

220 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Digital filters Honza Černocký, ÚPGM. Aliases Numerical filters Discrete systems Discrete-time systems etc. 2

Digital filtersHonza Černocký, ÚPGM

Page 2: Digital filters Honza Černocký, ÚPGM. Aliases Numerical filters Discrete systems Discrete-time systems etc. 2

Aliases

• Numerical filters

• Discrete systems

• Discrete-time systems

• etc.

2

Page 3: Digital filters Honza Černocký, ÚPGM. Aliases Numerical filters Discrete systems Discrete-time systems etc. 2

What for ?

Processing of signals

•Emphasizing

•Attenuating

•Detecting

3

Page 4: Digital filters Honza Černocký, ÚPGM. Aliases Numerical filters Discrete systems Discrete-time systems etc. 2

Emphasis

• Basses – low frequencies

4

Page 5: Digital filters Honza Černocký, ÚPGM. Aliases Numerical filters Discrete systems Discrete-time systems etc. 2

Emphasis

• Trebles – high frequencies

5

Page 6: Digital filters Honza Černocký, ÚPGM. Aliases Numerical filters Discrete systems Discrete-time systems etc. 2

Emphasis

• Telephone band 300-3400 Hz

6

Page 7: Digital filters Honza Černocký, ÚPGM. Aliases Numerical filters Discrete systems Discrete-time systems etc. 2

Attenuating

• A signal contamined by 1kHz and its cleaning by a sharp band-stop

7

Page 8: Digital filters Honza Černocký, ÚPGM. Aliases Numerical filters Discrete systems Discrete-time systems etc. 2

Detection• Couple of peaks in noise

8

Page 9: Digital filters Honza Černocký, ÚPGM. Aliases Numerical filters Discrete systems Discrete-time systems etc. 2

Detection• Matched filter

9

Page 10: Digital filters Honza Černocký, ÚPGM. Aliases Numerical filters Discrete systems Discrete-time systems etc. 2

• A nice app: RICHTER Jiří. Echo-Based Distance Measurement on Mobile Phone, BP FIT, 2014/2015

10

Page 11: Digital filters Honza Černocký, ÚPGM. Aliases Numerical filters Discrete systems Discrete-time systems etc. 2

What will be needed ?

• Sampled signal– At some sampling frequency (most often 8kHz,

16kHz, 44.1kHz (CD), 48kHz, 96kHz)

• For visualization, will show it as continuous (stem vs. plot)

• For ISS no special formats (MP3, OGG, WAV), but a plain RAW– No header, sequence of 16-bit shorts

… wire.c11

Page 12: Digital filters Honza Černocký, ÚPGM. Aliases Numerical filters Discrete systems Discrete-time systems etc. 2

What next ?

• Only 3 simple operations

– Multiplication with a constant *– Summation (addition) +

– Shift

12

Page 13: Digital filters Honza Černocký, ÚPGM. Aliases Numerical filters Discrete systems Discrete-time systems etc. 2

Shift ? Only to the past !

13

past

n„now“, „presence“

x[n]

future

Page 14: Digital filters Honza Černocký, ÚPGM. Aliases Numerical filters Discrete systems Discrete-time systems etc. 2

Shift off-line

14

n

x[n]

n-1

x[n-1]

… just changing the value of the pointer.

Page 15: Digital filters Honza Černocký, ÚPGM. Aliases Numerical filters Discrete systems Discrete-time systems etc. 2

Shift on-line

• We have only x[n]• Function with a memory

float filter (float xn) {

static float xn1, xn2;

… some processing …

xn2 = xn1;

xn1 = xn;

return something;

} 15

Page 16: Digital filters Honza Černocký, ÚPGM. Aliases Numerical filters Discrete systems Discrete-time systems etc. 2

A simple filter

y[n] = b0x[n] + b1x[n-1] + b2x[n-2] + b3x[n-3]

… difference equation

16

Page 17: Digital filters Honza Černocký, ÚPGM. Aliases Numerical filters Discrete systems Discrete-time systems etc. 2

How does it work ?

17

Page 18: Digital filters Honza Černocký, ÚPGM. Aliases Numerical filters Discrete systems Discrete-time systems etc. 2

Implementation off-line

• Allocation of space for the output signal.

• Then absolutely verbatim re-writing of the difference equation

fir_offline.c

18

Page 19: Digital filters Honza Černocký, ÚPGM. Aliases Numerical filters Discrete systems Discrete-time systems etc. 2

Implementation on-line

• A function for filtering is called for every sample

• It must memorize the past samples

fir_online.c

19

Page 20: Digital filters Honza Černocký, ÚPGM. Aliases Numerical filters Discrete systems Discrete-time systems etc. 2

What will it do for …

b0 b1 b2 b3

0.25 0.25 0.25 0.25

0.25 -0.25 0.25 -0.25

1 0 0 0

2 0 0 0

0 0 0 1

20

Page 21: Digital filters Honza Černocký, ÚPGM. Aliases Numerical filters Discrete systems Discrete-time systems etc. 2

Another possible implementation…

21

Page 22: Digital filters Honza Černocký, ÚPGM. Aliases Numerical filters Discrete systems Discrete-time systems etc. 2

How to represent a filter ?

y[n] = b0x[n] + b1x[n-1] + b2x[n-2] + b3x[n-3]

… difference equation

… scheme22

z-1

z-1

z-1

b0

b1

b2

b3

x[n] y[n]

Page 23: Digital filters Honza Černocký, ÚPGM. Aliases Numerical filters Discrete systems Discrete-time systems etc. 2

Impulse response

• Reaction to unit impulse

23

0 0 0 0 0 1 0 0 0 0 0 0

Page 24: Digital filters Honza Černocký, ÚPGM. Aliases Numerical filters Discrete systems Discrete-time systems etc. 2

Finite / infinite impulse response?

24

Page 25: Digital filters Honza Černocký, ÚPGM. Aliases Numerical filters Discrete systems Discrete-time systems etc. 2

Convolution

… demo on our filter

25

Page 26: Digital filters Honza Černocký, ÚPGM. Aliases Numerical filters Discrete systems Discrete-time systems etc. 2

It works also the other way round (convolution is commutative…)

… demo on our filter – homework ?

26

Page 27: Digital filters Honza Černocký, ÚPGM. Aliases Numerical filters Discrete systems Discrete-time systems etc. 2

Convolution - summary

• Flip the impulse response

• Shift it to given „n“

• Mutliply

• Add

• Write the results

… „paper strip“ method – demo

27

Page 28: Digital filters Honza Černocký, ÚPGM. Aliases Numerical filters Discrete systems Discrete-time systems etc. 2

Making use of filter output

• Feedback – recursive filters

28

Page 29: Digital filters Honza Černocký, ÚPGM. Aliases Numerical filters Discrete systems Discrete-time systems etc. 2

Diference equation

y[n] = b0x[n] + b1x[n-1] + b2x[n-2] + b3x[n-3]

- a1y[n-1] - a2y[n-2] - a3y[n-3]

… why not a0 ?

… and why do the feed-back coefficients have negative sign ?

29

Page 30: Digital filters Honza Černocký, ÚPGM. Aliases Numerical filters Discrete systems Discrete-time systems etc. 2

Scheme

30

z-1

z-1

z-1

b0

b1

b2

b3

x[n] y[n]

z-1

z-1

z-1

-a1

-a2

-a3

Page 31: Digital filters Honza Černocký, ÚPGM. Aliases Numerical filters Discrete systems Discrete-time systems etc. 2

Implementation off-line

• Digging also in the old outputs …

… iir_offline.c

31

Page 32: Digital filters Honza Černocký, ÚPGM. Aliases Numerical filters Discrete systems Discrete-time systems etc. 2

Implementation on-line

• The function has to memorize also the past outputs.

… iir_online.c

32

Page 33: Digital filters Honza Černocký, ÚPGM. Aliases Numerical filters Discrete systems Discrete-time systems etc. 2

Impulse response

• For example for a simple, purely recursive filter (nothing done with the input)

• Infinite impulse response - IIR

33

x[n] y[n]

z-1

-a1

Page 34: Digital filters Honza Černocký, ÚPGM. Aliases Numerical filters Discrete systems Discrete-time systems etc. 2

Stability

• Mathematically „Bounded Input Bounded Output“

• Popularly: “if reasonable stuff on the input expecting reasonable stuff on the output”

34

Page 35: Digital filters Honza Černocký, ÚPGM. Aliases Numerical filters Discrete systems Discrete-time systems etc. 2

Stability of FIR

35

Page 36: Digital filters Honza Černocký, ÚPGM. Aliases Numerical filters Discrete systems Discrete-time systems etc. 2

Stability of IIR

36

Page 37: Digital filters Honza Černocký, ÚPGM. Aliases Numerical filters Discrete systems Discrete-time systems etc. 2

First order IIR

• What must be respected for a1?

• And how about for more complicated IIR filters ?

37

x[n] y[n]

z-1

-a1

Page 38: Digital filters Honza Černocký, ÚPGM. Aliases Numerical filters Discrete systems Discrete-time systems etc. 2

General filter

38

Page 39: Digital filters Honza Černocký, ÚPGM. Aliases Numerical filters Discrete systems Discrete-time systems etc. 2

General filter

• Order of input Q

• Order of output P

Difference equation

y[n] = b0x[n] + b1x[n-1] + … + bQx[n-Q]

- a1y[n-1] + … + aPy[n-P]

39

Page 40: Digital filters Honza Černocký, ÚPGM. Aliases Numerical filters Discrete systems Discrete-time systems etc. 2

Implementation off-line

• … still the same, this time with cycles

iirbig_offline.c

40

Page 41: Digital filters Honza Černocký, ÚPGM. Aliases Numerical filters Discrete systems Discrete-time systems etc. 2

Implementation on-line

• The cycles must run backward (otherwise the old values rewrite the new ones)

• The cycle for the output must stop at index 1.

• „Trash“ memory fields, that will never be used – make things easier and save us some „if“s.

iirbig_online.c

41

Page 42: Digital filters Honza Černocký, ÚPGM. Aliases Numerical filters Discrete systems Discrete-time systems etc. 2

Frequency responses

• For FIR filters:

• The coefficients of the filter (resp. of its impulse response) act as a machining tool – the result will be similar

42

Page 43: Digital filters Honza Černocký, ÚPGM. Aliases Numerical filters Discrete systems Discrete-time systems etc. 2

Tests

• 2s of chamber „a“ (440 Hz) plus some noise

See the Matlab file matlab_filtry.m (section “filcy atd”)

43

Page 44: Digital filters Honza Černocký, ÚPGM. Aliases Numerical filters Discrete systems Discrete-time systems etc. 2

Mason’s float

• 20 equal samples valued 1/20

• Smoothing, less noise

=> Low-pass

44

Page 45: Digital filters Honza Černocký, ÚPGM. Aliases Numerical filters Discrete systems Discrete-time systems etc. 2

Mason’s superfloat

• 181 equal samples valued 1/181

• Smoothing, less noise but almost no signal left

=> Even more low-pass

45

Page 46: Digital filters Honza Černocký, ÚPGM. Aliases Numerical filters Discrete systems Discrete-time systems etc. 2

Cutter with a dented edge

=> High pass46

Page 47: Digital filters Honza Černocký, ÚPGM. Aliases Numerical filters Discrete systems Discrete-time systems etc. 2

Band-pass ?

• We want to select 440 Hz.

• The output will resemble the impulse response …

… listen to the result also on a speech file.

47

Page 48: Digital filters Honza Černocký, ÚPGM. Aliases Numerical filters Discrete systems Discrete-time systems etc. 2

Frequency response more precisely

• Currently, interested only in magnitude

• i.e. how individual frequencies are amplified / attenuated

• … not how they are shifted

See the last part of matlab_filtry.m

48

Page 49: Digital filters Honza Černocký, ÚPGM. Aliases Numerical filters Discrete systems Discrete-time systems etc. 2

Method 1 – measure !

49

filtr

Page 50: Digital filters Honza Černocký, ÚPGM. Aliases Numerical filters Discrete systems Discrete-time systems etc. 2

Method 2 – use impulse response

• Generate impulse response and perform its frequency transform

• But the impulse response can be loooonnnnng.

50

Page 51: Digital filters Honza Černocký, ÚPGM. Aliases Numerical filters Discrete systems Discrete-time systems etc. 2

The ultimate solution z-transform

Basic tools:

x[n] => X(z)

a x[n] => a X(z)

x[n-k] => X(z) z-k

51

Page 52: Digital filters Honza Černocký, ÚPGM. Aliases Numerical filters Discrete systems Discrete-time systems etc. 2

Difference equation => transfer function

y[n] = b0x[n] + b1x[n-1] + … + bQx[n-Q]

- a1y[n-1] + … + aPy[n-P]

52

Page 53: Digital filters Honza Černocký, ÚPGM. Aliases Numerical filters Discrete systems Discrete-time systems etc. 2

Transfer function => frequency response

z => ej2f

•f is normalized by the sampling frequency

•Will obtain a complex number, must take only its magnitude.

•Matlab: by hand or with freqz

53

Page 54: Digital filters Honza Černocký, ÚPGM. Aliases Numerical filters Discrete systems Discrete-time systems etc. 2

Relation of time and spectra

y[n] = x[n] h[n] (convolution)

Y(f) = X(f) H(f) (mutliplication)

•Attention, must multiply the complex numbers in spectra !

54

Page 55: Digital filters Honza Černocký, ÚPGM. Aliases Numerical filters Discrete systems Discrete-time systems etc. 2

Summary

Describing the filter by

•Scheme

•Difference equation

•Impulse response

•Transfer function

•Frequency response

55

Page 56: Digital filters Honza Černocký, ÚPGM. Aliases Numerical filters Discrete systems Discrete-time systems etc. 2

Summary II.

• Types of filters– FIR– IIR

• Implementation– Mutliplication– Summation– Shifts

• Off-line• On-line

56

Page 57: Digital filters Honza Černocký, ÚPGM. Aliases Numerical filters Discrete systems Discrete-time systems etc. 2

Summary III.

• Computing the frequency response– Ugly:

• „measurement“• Analysis of h[n]

– Nicely• Transfer function: replacing z by ej2f

• f is normalized frequency

57

Page 58: Digital filters Honza Černocký, ÚPGM. Aliases Numerical filters Discrete systems Discrete-time systems etc. 2

TODO’s

• Phase – shifts of signals

• Stability for more complex IIR filters

• Design of filters

• Learning filters on data

58

Page 59: Digital filters Honza Černocký, ÚPGM. Aliases Numerical filters Discrete systems Discrete-time systems etc. 2

The END

59