Transcript Document

1D Fourier Analysis
Dr. Rolf Lakaemper
Sound
Let’s have a look at SOUND:
Pressure
SOUND: 1 dimensional function of
changing (air-)pressure in time
Time t
Sound
Pressure
SOUND: if the function is periodic, we
perceive it as sound with a certain
frequency (else it’s noise). The
frequency defines the pitch.
Time t
Sound
The AMPLITUDE of the curve defines the
VOLUME
Sound
The SHAPE of the curve defines the
sound character
String
Flute
Brass
Sound
How can the
SHAPE
of the curve be defined ?
Sound
Listening to an orchestra, you can distinguish
between different instruments, although
the sound is a
SINGLE FUNCTION !
Flute
Brass
String
Sound
If the sound produced by an
orchestra is the sum of different
instruments, could it be possible
that there are BASIC SOUNDS,
that can be combined to produce
every single sound ?
Sound
The answer (Jean Baptiste Fourier, 1822):
Any function that periodically
repeats itself can be expressed as
the sum of sines/cosines of
different frequencies, each
multiplied by a different coefficient
Sound
Or differently:
Since a flute produces a sine-curvelike sound, a (huge) group of
(outstandingly) talented flautists
could replace a classical
orchestra.
()
1D Functions
A look at SINE / COSINE
The sine-curve is defined by:
• Frequency (the number of oscillations between
0 and 2*PI)
• Amplitude (the height)
• Phase (the starting angle value)
• The constant y-offset, or DC (direct current)
1D Functions
The general sine-shaped function:
f(t) = A * sin(t + ) + c
Amplitude
Frequency
Phase
Constant offset
(usually set to 0)
1D Functions
Remember Fourier:
…A function…can be expressed as the sum of
sines/cosines…
What happens if we add sine and
cosine ?
1D Functions
a * sin(t) + b * cos(t)
= A * sin(t + )
(with A=sqrt(a^2+b^2) and tan  = b/a)
Adding sine and cosine of the same frequency
yields just another sine function
with different phase and amplitude, but same frequency.
Or: adding a cosine simply shifts the sine function left/right
and stretches it in y-direction. It does NOT change the
sine-character and frequency of the curve.
1D Functions
Remember Fourier, part II:
Any function that periodically repeats itself…
change the shape of the
function, we must add sine-like
=> To
functions with different
frequencies.
1D Functions
This applet shows the result:
Applet: Fourier Synthesis
1D Functions
What did we do ?
•
•
Choose a sine curve having a certain frequency,
called the base-frequency
Choose sine curves having an integer multiple
frequency of the base-frequency
• Shift each single one horizontally using the
cosine-factor
• Choose the amplitude-ratio of each single
frequency
• Sum them up
1D Functions
This technique is called the
FOURIER SYNTHESIS,
the parameters needed are the
sine/cosine ratios of each frequency.
The parameters are called the
FOURIER COEFFICIENTS
1D Functions
As a formula:
f(x)= a0/2 + k=1..n akcos(kx) + bksin(kx)
Fourier Coefficients
1D Functions
Note:
The set of ak, bk ENTIRELY defines
the CURVE synthesized !
We can therefore describe the
SHAPE of the curve or the
CHARACTER of the sound by the
(finite ?) set of FOURIER
COEFFICIENTS !
1D Functions
Examples for curves, expressed by
the sum of sines/cosines (the
FOURIER SERIES):
1D Functions
SAWTOOTH Function
f(x) = ½ - 1/pi * n 1/n *sin (n*pi*x)
Freq. sin
cos
1
1
0
2
1/2
0
3
1/3
0
4
1/4
0
1D Functions
SQUARE WAVE Function
f(x) = 4/pi * n=1,3,5 1/n *sin (n*pi*x)
Freq. sin
cos
1
1
0
3
1/3
0
5
1/5
0
7
1/7
0
1D Functions
What does the set of FOURIER
COEFFICIENTS tell about the
character of the shape ?
(MATLAB Demo)
1D Functions
Result:
Steep slopes introduce HIGH
FREQUENCIES.
1D Functions
Motivation for Sound Filtering:
...remove steep slopes to let only
lower frequencies pass
it would be nice to be able to get the
set of FOURIER COEFFICIENTS if
an arbitrary (periodically) function
is given! (why?)
1D Functions
The Problem now:
Given an arbitrary but periodically
1D function (e.g. a sound), can
you tell the FOURIER
COEFFICIENTS to construct it ?
1D Functions
The answer (Fourier):
YES.
1D Functions
We don’t want to explain the
mathematics behind the answer
here, but simply use the MATLAB
Fourier Transformation Function.
1D Functions
MATLAB - function fft:
Input: A vector, representing the
discrete function
Output: The Fourier Coefficients as
vector of imaginary numbers,
scaled for some reasons
1D Functions
Example:
x=0:2*pi/(2047):2*pi;
s=sin(x)+cos(x) + sin(2*x) + 0.3*cos(2*x);
f=fft(s);
1.3
Freq. 0
1026.2 1022.8i
Freq. 1
310.1 1022.1i
Freq. 2
-0.4 +
1.6i
Freq. 3
cos
sin
1D Functions
1.3
1026.2 1022.8i
310.1 1022.1i
-0.4 + 1.6i
Fr
Re
Im
Fr
Re
Im
0
1.3
0
0
~0
0
1
1026.2
1022.8
1
~1
~1
2
310.1
1022.1
2
~0.3
~1
Transformation: t(a) = 2*a / length(result-vector)
1D Functions
The fourier coefficients are given by:
F=fft(function)
L=length(F); %this is always = length(function)
Coefficient for cosine, frequency k-times the base frequency:
real(F(k+1)) * 2 / L
Coefficient for sine, frequency k-times the base frequency:
imag(F(k+1)) * 2 / L
1D Functions
An application using the Fourier Transform:
Create an autofocus system for a digital
camera
We did this already, but differently !
(MATLAB DEMO)
1D Functions
Second application:
Describe and compare 2-dimensional shapes
using the Fourier Transform !