Brno University of Technology Faculty of Information

Document technical information

Format ppt
Size 3.4 MB
First found May 22, 2018

Document content analysis

Category Also themed
Language
English
Type
not defined
Concepts
no text concepts found

Persons

Organizations

Places

Transcript

Digital filters
Honza Černocký, ÚPGM
Aliases
•
•
•
•
Numerical filters
Discrete systems
Discrete-time systems
etc.
2
What for ?
Processing of signals
• Emphasizing
• Attenuating
• Detecting
3
Emphasis
• Basses – low frequencies
4
Emphasis
• Trebles – high frequencies
5
Emphasis
• Telephone band 300-3400 Hz
6
Attenuating
• A signal contamined by 1kHz and its
cleaning by a sharp band-stop
7
Detection
• Couple of peaks in noise
8
Detection
• Matched filter
9
• A nice app: RICHTER Jiří. Echo-Based
Distance Measurement on Mobile Phone,
BP FIT, 2014/2015
10
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.c
11
What next ?
• Only 3 simple operations
– Multiplication with a constant
– Summation (addition)
*
+
– Shift
12
Shift ? Only to the past !
x[n]
n
„now“,
„presence“
past
future
13
Shift off-line
x[n-1] x[n]
n-1
n
… just changing the value of the pointer.
14
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
A simple filter
y[n] = b0x[n] + b1x[n-1] + b2x[n-2] + b3x[n-3]
… difference equation
16
How does it work ?
17
Implementation off-line
• Allocation of space for the output signal.
• Then absolutely verbatim re-writing of the
difference equation
fir_offline.c
18
Implementation on-line
• A function for filtering is called for every
sample
• It must memorize the past samples
fir_online.c
19
What will it do for …
b0
b1
b2
b3
0.25
0.25
1
2
0.25
-0.25
0
0
0.25
0.25
0
0
0.25
-0.25
0
0
0
0
0
1
20
Another possible
implementation…
21
How to represent a filter ?
y[n] = b0x[n] + b1x[n-1] + b2x[n-2] + b3x[n-3]
… difference equation
b0
x[n]
z-1
b1
z-1
b2
z-1
b3
S
y[n]
… scheme
22
Impulse response
• Reaction to unit impulse
0
0
0
0
0
1
0
0
0
0
0
0
23
Finite / infinite impulse
response?
24
Convolution
… demo on our filter
25
It works also the other way round
(convolution is commutative…)
… demo on our filter – homework ?
26
Convolution - summary
• Flip the impulse response
• Shift it to given „n“
• Mutliply
• Add
• Write the results
… „paper strip“ method – demo
27
Making use of filter output
• Feedback – recursive filters
28
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
Scheme
b0
x[n]
S
y[n]
z-1
b1
-a1
z-1
z-1
b2
-a2
z-1
z-1
b3
-a3
z-1
30
Implementation off-line
• Digging also in the old outputs …
… iir_offline.c
31
Implementation on-line
• The function has to memorize also the
past outputs.
… iir_online.c
32
Impulse response
• For example for a simple, purely recursive
filter (nothing done with the input)
x[n]
S
y[n]
-a1
z-1
• Infinite impulse response - IIR
33
Stability
• Mathematically „Bounded Input Bounded
Output“
• Popularly: “if reasonable stuff on the input
expecting reasonable stuff on the output”
34
Stability of FIR
35
Stability of IIR
36
First order IIR
x[n]
S
y[n]
-a1
z-1
• What must be respected for a1?
• And how about for more complicated IIR
filters ?
37
General filter
38
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
Implementation off-line
• … still the same, this time with cycles
iirbig_offline.c
40
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
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
Tests
• 2s of chamber „a“ (440 Hz) plus some
noise
See the Matlab file matlab_filtry.m (section
“filcy atd”)
43
Mason’s float
• 20 equal samples valued 1/20
• Smoothing, less noise
=> Low-pass
44
Mason’s superfloat
• 181 equal samples valued 1/181
• Smoothing, less noise but almost no signal
left 
=> Even more low-pass
45
Cutter with a dented edge
=> High pass
46
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
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
Method 1 – measure !
filtr
49
Method 2 – use impulse
response
• Generate impulse response and perform
its frequency transform
• But the impulse response can be
loooonnnnng.
50
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
Difference equation
=> transfer function
y[n] = b0x[n] + b1x[n-1] + … + bQx[n-Q]
- a1y[n-1] + … + aPy[n-P]
52
Transfer function => frequency
response
z => ej2pf
• f is normalized by the sampling frequency
• Will obtain a complex number, must take
only its magnitude.
• Matlab: by hand or with freqz
53
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
Summary
Describing the filter by
• Scheme
• Difference equation
• Impulse response
• Transfer function
• Frequency response
55
Summary II.
• Types of filters
– FIR
– IIR
• Implementation
– Mutliplication
– Summation
– Shifts
• Off-line
• On-line
56
Summary III.
• Computing the frequency response
– Ugly:
• „measurement“
• Analysis of h[n]
– Nicely
• Transfer function: replacing z by ej2pf
• f is normalized frequency
57
TODO’s
•
•
•
•
Phase – shifts of signals
Stability for more complex IIR filters
Design of filters
Learning filters on data
58
The END
59
×

Report this document