fourieranalyse i sammenhæng med lydbølger - mp2 · 2013. 11. 2. · bilag 3: ourieranalysef af...
TRANSCRIPT
Fourieranalyse i sammenhæng med lydbølger
Mathias Kærlev
Fourieranalyse af en periodisk funktion
Vejledere: Poul Hedegaard, Kristian Svendsen
Mathias Kærlev Fourieranalyse 21-12-2012
Abstract
For this paper, the usage of real-valued Fourier series with sound waves, speci�cally a guitar
string's sound, is examined and some of the applications for both Fourier-synthesis and Fourier-
analysis are explored. The foundation of the Fourier-analysis, the Fourier-coe�cients, are
deduced through the Fourier series, and the analysis of both periodic functions and actual data
are accounted for. The guitar string's sound is recorded and an audio-analysis is performed
where both the frequency spectrum and the Fourier-coe�cients are derived. Additionally,
video-analysis is also made to examine the movement of the vibrating string. To test the
empirical data, a guitar string's sound can be determined in theory through Fourier-analysis of
a function that represents the guitar string. From this, the resulting frequency spectrums in the
audio-analysis are found to largely correspond with the expected amplitudes and frequencies.
However, the video-analysis was not able to depict a great range of harmonics, but did show
the presence of standing waves. It can be concluded that Fourier-analysis can be used to
determine the frequency-spectrum and Fourier-spectrum of a guitar string with large precision.
Furthermore, Fourier-synthesis of the string's Fourier-spectrum yields a sound wave identical to
the source to a great extent, which gives Fourier-synthesis several use-cases for e.g. lightweight
electronic instruments that reproduce the sound of real instruments.
2/41
Mathias Kærlev Fourieranalyse 21-12-2012
Indhold
Indledning 4
Fourieranalyse 5
Periodiske funktioner og lyd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Lige/ulige funktioner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Fourierrækker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Ortogonalitetsrelationer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Bestemmelse af fourierkoe�cienter . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Regneeksempler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Ulige funktioner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Lige funktioner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Eksperimenter 16
Fourieranalyse med datasæt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Guitaren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Analyse af lyd fra guitar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Analyse af video fra vibrerende guitarstreng . . . . . . . . . . . . . . . . . . . . . . . 25
Fouriersyntese 27
Konklusion 29
Litteraturliste 30
Bilag 31
Bilag 1: Graf til regneeksempler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Bilag 2: Fourieranalyse af lyd fra guitar - anslået på midten (Datalyse) . . . . . . . . 32
Bilag 3: Fourieranalyse af lyd fra guitar - anslået på 13(Datalyse) . . . . . . . . . . . 33
Bilag 4: Programkode til fourieranalyse (Python) . . . . . . . . . . . . . . . . . . . . 34
Bilag 5: Data for videoanalyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Bilag 6: Data for videoanalyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Bilag 7: Fourieranalyse af video - Datalyse . . . . . . . . . . . . . . . . . . . . . . . . 38
Bilag 8: Graf for fouriersyntese i CAS-værktøj . . . . . . . . . . . . . . . . . . . . . . 39
Bilag 9: Programkode til fouriersyntese (Python) . . . . . . . . . . . . . . . . . . . . 40
Bilag 10: Billede af udtræk fra lyddata . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3/41
Mathias Kærlev Fourieranalyse 21-12-2012
Indledning
Jean Baptiste Joseph Fourier var en fransk matematiker, der gennem sit arbejde kom frem til
det, som vi kender som fourierrækker. Fourier antog, at alle funktioner kan skrives op som en
uendeligt antal led af sinus- og cosinusfunktioner, og ud fra den antagelse kunne han �nde frem
til nogle konstanter, de såkaldte fourierkoe�cienter, som funktioner ville bestå af. På dette
tidspunkt var det en banebrydende og kontroversiel idé, der skulle vise sig at have mange an-
vendelser inden for matematikken og fysikken. I dette projekt er det især analyse af lydsignaler,
som fourierrækkerne kan bruges til, og fourieranalysen består så af at �nde fourierkoe�cien-
terne, der kan bruges til at lave et frekvensspektrum.
Formålet med dette projekt er, at bestemme en guitars frekvensspektrum gennem fouriera-
nalyse. Dette kan så gøres enten gennem FFT eller fourierkoe�cienterne, men begge vil der
kigges på. Desuden vil teorien bag guitarens svingninger undersøges med fourieropløsning, og
en fouriersyntese af guitarens fourierspektrum vil forsøges og diskuteres.
Opdelingen er sådan, at baggrunden for fourieranalysen er beskrevet først. Der er redegjort
for de matematiske principper, der er nødvendige for at bevise sammenhængen for fourierkoef-
�cienterne. Heri indgår en introduktion til periodiske funktioner, som også hænger sammen med
vores forståelse af lydbølger, ortogonalitetsrelationerne mellem sinus og cosinus, regneregler for
lige/ulige funktioner og afsluttende fourierrækker. Der vil også indgå nogle regneeksempler, der
illustrativt viser, hvordan fourieranalysen kan bruges til at �nde fourier- og frekvensspektret
for en kendt funktion.
Herefter beskrives den eksperimentelle og praktiske del af opgaven, hvor fourieranalysen bru-
ges til at analysere en guitarstrengs tone og overtoner. De fysiske årsager til guitarstrengens
grundtone og overtone vil først blive forsøgt forklaret gennem teori med fourieropløsning, og
så testet gennem empiri. Her vil indgå både en analyse af video og lyd fra guitarstrengen, da
både strengens bevægelse og resulterende lyd kan undersøges ved hjælp af fourieranalyse.
Afslutningsvist vil fouriersyntese med samme fourierkoe�cienter fra de første eksperimenter un-
dersøges. Hvad er mulighederne for at gå �den anden vej� med et fourierspektrum? En vurdering
af fouriersyntesens muligheder vil diskuteres, altså i hvor stort et omfang man kan genskabe
instrumenters tone ud fra en fourieranalyse.
I denne projektopgave bruges der fourierrækker på reel form, og der vil altså derfor ikke indgå
beregninger med komplekse tal.
4/41
Mathias Kærlev Fourieranalyse 21-12-2012
Fourieranalyse
Overordnet er fourieranalysen et redskab til at bestemme de harmoniske svingninger, der indgår
i en periodisk funktion. Ved approksimation af areal kan man også lave fourieranalyse på et
datasæt, men det vil uddybes i eksperiment-afsnittet. Når man ved hvilken sammensætning
af bølger et datasæt eller funktion består af, kan man se, hvilken frekvens og amplitude (dvs.
styrke) bølgerne har. Det er fourierkoe�cienterne, der indeholder denne information, men før
vi kan begynde at �nde dem, er der nogle matematiske begreber vi skal kende til.
Periodiske funktioner og lyd
En tone er i virkeligheden en lydbølge, der gentager sig.1 Se følgende �gur, der viser en lydop-
tagelse af en anslået guitar fra eksperiment-afsnittet:
Selv om der er en del støj, der kan gøre det svært at gennemskue, er det altså tydeligt, at lyden
�gentager� sig.
Vi kan selv modellere funktioner, der svarer til lydbølger, ved at gøre dem periodiske. Peri-
odiske funktioner er funktioner, der gentager sig efter en periode T . Når den konstante periode
T adderes til den variable, vil funktionsværdierne gentage sig. Det vil sige at der gælder, at
f(x + T ) = f(x), hvor T er det mindste tal, der opfylder ligningen. Normalt de�nerer vi kun
periodiske funktioner inden for et interval. Til vores formål sætter vi intervallet til [−T2; T2],
sådan så vores funktioners halve periode er delt mellem y-aksen. Desuden kan det hænde, at vi
de�nerer en funktion stykkevist, hvilket betyder, at vi de�nerer funktionsværdierne gennem ét
eller �ere intervaller. Et eksempel kunne være
f(x) =
x, for x ≥ 0
−x, for x < 0
i intervallet [−T2; T2]. Funktionen er altså de�neret over hele intervallet [−T
2; T2], men med for-
skellige funktionsudtryk for x ≥ 0 og x < 0.
Lige/ulige funktioner
Til vores formål er det hensigtsmæssigt at se, at funktioner kan være �lige�, hvor der desu-
den gælder for funktionen, at f(x) = f(−x). Funktionen vil rent gra�sk være spejlet omkring
y-aksen. For ulige funktioner gælder der, at −f(x) = f(−x). Funktionsværdierne vil på den
1N. Hartling C. Claussen E. Both. Spektrum - Fysik II. 1. udg. Gyldendal, 2004. isbn: 10-87-02-00685-5, s.40
5/41
Mathias Kærlev Fourieranalyse 21-12-2012
ene side af y-aksen være det samme som på den anden side af y-aksen, men med negativt fortegn.
Et eksempel på en ulige funktion kunne være f(x) = x. Indsætter vi i de�nitionen, ser vi,
at udtrykket er sandt:
−f(x) = f(−x)
−x = −x
Et eksempel på en lige funktion kunne være f(x) = |x|. Indsætter vi i de�nitionen, ser vi
igen, at udtrykket er sandt:
f(x) = f(−x)
|x| = | − x|
|x| = |x|
Desuden har beregninger med lige/ulige funktioner nogle interessante egenskaber:
1) Produktet mellem to lige funktioner er en lige funktion
Har vi en ulige funktion f(x), gælder der, at f(−x) = −f(x)⇔ f(x) = −f(−x). Har vi så en
lige funktion, g(x), gælder der, at g(x) = g(−x). Vi sætter h(x) til produktet af f og g:
h(x) = f(x) · g(x) = g(−x) · f(−x)
= (f · g)(x) = (f · g)(−x)
= h(x) = h(−x)
h(x) = h(−x), så h(x) er lig vores de�nition på en lige funktion, og sætning 2 er bevist.
2) Produktet mellem to ulige funktioner er en lige funktion
Et lignende bevis kan laves for denne sætning, hvis f(x) er en ulige funktion og g(x) er en lige
funktion:
h(x) = f(x) · g(x) = −g(−x) · −f(−x)
= (f · g)(x) = (f · g)(−x)
= h(x) = h(−x)
h(x) = h(−x), så h(x) er igen lig vores de�nition på en lige funktion, og sætning 2 er bevist.
3) Produktet mellem en lige og en ulige funktion er en ulige funktion
6/41
Mathias Kærlev Fourieranalyse 21-12-2012
h(x) = f(x) · g(x) = g(−x) · −f(−x)
= (f · g)(x) = −(f · g)(−x)
= h(x) = −h(−x)
m
h(−x) = −h(x)
h(−x) = −h(x), så h(x) er lig vores de�nition på en ulige funktion, og sætning 3 er altså bevist.
4) Integration fra −A til A af en ulige funktion er 0
Arealet under grafen for x < 0 vil svare til arealet under grafen for x > 0, bare med negativt
fortegn. Kigger vi på f(x) = x og integralet´ 2−2(f(x))dx, er det helt tydeligt:
Som det ses, så er´ 2−2(f(x))dx =
´ 0−2(f(x))dx +
´ 2
0(f(x))dx = −2 + 2 = 0. Dette vil også
vise sig at være vigtigt til beviset om ortogonalitetsrelationerne og når sammenhængen mellem
fourierkoe�cienterne og lige/ulige funktioner skal vises.
Det skal nævnes, at sinus er en ulige og cosinus er en lige funktion.
Graf for sinus og cosinus
Det vil vise sig, at vi kan bruge disse egenskaber for cosinus og sinus til vores beviser.
De ovenstående regneregler vil vise sig at være betydelige ved bestemmelse af fourierkoe�cien-
terne.
Fourierrækker
En periodisk funktion f(x) med perioden T kan tilnærmes med en konstant plus en sum af
harmoniske funktioner2:2Niels Christian Jensen. Fourieranalyse. 2004. url: http://www.emu.dk/gym/tvaers/sciencegym/
matematik-materialer/fourier.doc, s. 1
7/41
Mathias Kærlev Fourieranalyse 21-12-2012
f(x) =1
2a0 +
M∑n=1
(an · cos(2π
Tnx) + bn · sin(
2π
Tnx))
dvs.
f(x) =1
2a0 + a1 · cos(
2π
Tx) + b1 · sin(
2π
Tx) + ...+ an · cos(
2π
Tnx) + bn · sin(
2π
Tnx)
Dette kaldes fourierrækken, hvor an og bn er de såkaldte fourierkoe�cienter, der siger noget om
amplituden for det enkelte led. a0-ledet kaldes også for DC-ledet.3 Når man har bestemt fouri-
erspektret for en funktion eller datasæt, har man altså bestemt fourierkoe�cienterne. Beviset
for, at periodiske funktioner overhovedet kan tilnærmes fourierrækken vil ikke forsøges, men
fourierrækken er udgangspunktet for vores andre beviser. I princippet vil funktionen kunne
bestå af uendeligt mange led, så i teorien burde M , den øvre grænse for summeringen, være
lig ∞. Jo større værdi af M , jo tættere på den oprindelige funktion vil fourierrækken være.
Meningen med den12-koe�cient for a0 vil vise sig senere.
Til dette projekt vil det være oplagt at �nde frekvensspektret for nogle simple funktioner,
mest for at forklare princippet til de praktiske forsøg. Et frekvensspektrum viser fordelingen
mellem frekvens og amplitude, men hvordan kan vores fourierkoe�cienter sige noget om det?
Hvis vi kender vores periode T , kan vi �nde frekvensen for cosinus/sinus-ledene ved f = 1T· n.
Det skyldes, at cosinus/sinus har en periode 2π, og at division med T vil ændre perioden til
T , og derfor får vi 2πT. Dette kaldes også vinkelfrekvensen ω, der har værdien 2π
T, men til vores
formål bruger vi bare dens værdi. Faktoren n siger noget om, hvor hurtigt de harmoniske funk-
tioner svinger i forhold til det første led ved n = 1. For eksempel vil n = 2 få vinkelfrekvensen
til at være dobbelt så stor, og derfor svinger funktionen altså også dobbelt så hurtigt.
Skal vi se fourierrækken i forhold til toner, vil det sige, at leddene for n = 1 siger noget
om grundtonen, altså tonen med laveste frekvens. n = 2 siger så noget om 1. overtone, n = 3
om 2. overtone, og så videre. anog bn-koe�cienterne er bølgernes amplitude, da cosinus/sinus
har funktionsværdier i intervallet [1;−1]. Den samlede amplitude for an og bn er de�neret som
A =√a2n + b2n.
Hvis f skal være i Hz, altså SI-enheden for frekvens, kræver det, at perioden T er i sekun-
der. Til regneeksemplerne sættes T ikke til sekunder, og derfor vil frekvensen være enhedsløs,
men det viser princippet i udregningen.
3Mogens Oddershede Larsen. Fourieranalyse. 2. udg. (Besøgt d. 20.12.2012). 2007. url: http://www.larsen-net.dk/files/Fourieranalyse.pdf, s. 1
8/41
Mathias Kærlev Fourieranalyse 21-12-2012
Ortogonalitetsrelationer
Før vi kan bestemme værdierne af fourierkoe�cienterne, må vi først vide noget om ortogonali-
tetsrelationerne for cosinus og sinus. Ved ortogonalitetsrelationerne forstås, at
ˆ T/2
−T/2(1 · cos(2π
T· nx))dx = 0 ∧ n 6= 0 (1)
ˆ T/2
−T/2(1 · sin(2π
T· nx))dx = 0 (2)
ˆ T/2
−T/2(sin(
2π
T· nx) · cos(2π
T·mx))dx = 0 (3)
ˆ T/2
−T/2(sin(
2π
T· nx) · sin(2π
T·mx))dx =
T2
form = n 6= 0
0 for n 6= m(4)
ˆ T/2
−T/2(cos(
2π
T· nx) · cos(2π
T·mx))dx =
T2
form = n 6= 0
0 for n 6= m(5)
hvor der gælder, at n ∈ Z ∧ m ∈ Z, og at n ≥ 0 ∧ m ≥ 0.4 Der gælder også nogle andre
ortogonalitetsrelationer, men disse er de eneste, der bruges til beviset for fourierkoe�cienterne.
Grunden til navnet �ortogonalitetsrelationer� skyldes, at funktioner kan opfattes som vektorer,
og hvis skalarproduktet f · g =´ baf(x)g(x)dx er lig 0 med passende grænser for a og b, siges
funktionerne at være ortogonale.5
Skal disse relationer bevises, kan vi starte med (1) for n 6= 0:
ˆ T/2
−T/2(1 · cos(2π
T· nx))dx =
sin(n · π) · Tn · π
= 0
Da n ∈ Z (n er et heltal) må sin(n ·π) altid give 0, da det vil svare til n ·180◦. sin(1 ·180◦) = 0,
sin(2 · 180◦) = 0, sin(3 · 180◦) = 0, og så videre, og derfor vil ligningen ovenover altid give 0
hvis n 6= 0.
Vi fortsætter med (2):
ˆ T/2
−T/2(1 · sin(2π
T· nx))dx =
ˆ T/2
0
(sin(2π
T· nx))dx−
ˆ T/2
0
(sin(2π
T· nx))dx = 0
Integralet af en ulige funktion (her sinus) med grænser, hvis størrelse er lig hinanden, vil altid
være lig 0, som vi så i afsnittet om lige/ulige funktioner.
4MT2111 Linear Partial Di�erential Equations. (Orthogonality Relations og The Fourier Coe�cients) (Be-søgt d. 20.12.2012). url: http://www.maths.manchester.ac.uk/DeptWeb/UGCourses/Syllabus/Level2/MT2111Lecture10_2004.pdf.
5Steen Albrechtsen. Fourieranalyse. Werks O�set Århus, 1991. isbn: 87-983931-0-3, s. 11
9/41
Mathias Kærlev Fourieranalyse 21-12-2012
Vi fortsætter med (3). Ser vi på produktet sin(2πT·nx) ·cos(2π
T·mx), er det jo et produkt mellem
en lige og ulige funktion, hvilket vil give en ulige funktion. Integrerer vi en ulige funktion fra
−T/2 til T/2, får vi 0, og det er altså bevist.
Ved (4) har vi produktet sin(2πT· nx) · sin(2π
T· mx). Ved m = n > 0 er det vigtigt at se,
at vi kan bruge følgende trigonometriske formel6:
sin(u) · sin(v) = 1
2(cos(u− v)− cos(u+ v))
Vi indsætter parameteren 2πT· nx for både u og v i formlen (da m = n):
sin(2π
T· nx)2 = 1
2(cos(
2π
T· nx− 2π
T· nx)− cos(2π
T· nx+ 2π
T· nx)) = 1
2(1− cos(2 · 2π
T· nx))
Integrerer vi det udtryk, og bruger vi sætning 1, får vi:
ˆ T/2
−T/2(1
2(1− cos(2 · 2π
T· nx)))dx =
ˆ T/2
−T/2(1
2)dx =
T
2
Det er bevist.
Ved n 6= m kan vi indsætte 2πT· nx for u og 2π
T·mx for v:
sin(2π
T· nx) · sin(2π
T·mx) = 1
2(cos(
2π
T· nx− 2π
T·mx)− cos(2π
T· nx+ 2π
T·mx))
=1
2cos(
2πx
T· (n−m))− 1
2cos(
2πx
T· (n+m))
Vi integrerer udtrykket:
=1
2
ˆ T/2
−T/2cos(
2πx
T· (n−m))dx− 1
2
ˆ T/2
−T/2cos(
2πx
T· (n+m))dx
Af sætning 1 vil både det højre og venstre led gå ud, da n 6= m, hvilket også vil sige, at
n−m 6= 0 og n+m 6= 0.
Lignende bevis gælder for (5). Hvis m = n 6= 0 kan vi bruge en trigonometriske formel og
gentage beviset:
cos(u) · cos(v) = 1
2(cos(u+ v) + cos(u=v))
cos(2π
T· nx)2 = 1
2(cos(
2π
T· nx+ 2π
T· nx) + cos(
2π
T· nx− 2π
T· nx)) = 1
2(1 + cos(2 · 2π
T· nx))
ˆ T/2
−T/2(1
2(1 + cos(2 · 2π
T· nx)))dx =
ˆ T/2
−T/2(1
2)dx =
T
2
Igen, for m 6= n:
cos(2π
T· nx) · cos(2π
T·mx) = 1
2(cos(
2π
T· (n+m)) + cos(
2π
T· (n−m)))
6Albrechtsen, Fourieranalyse, s. 15
10/41
Mathias Kærlev Fourieranalyse 21-12-2012
Vi integrerer:
1
2
ˆ T/2
−T/2cos(
2π
T· (n+m))dx+
1
2
ˆ T/2
−T/2cos(
2π
T· (n−m))dx
Af sætning 1 følger igen, at ovenstående bliver 0. Det er bevist.
Med disse relationer kan vi nu bestemme værdier for fourierkoe�cienterne.
Bestemmelse af fourierkoe�cienter
Tager vi udgangspunkt i de�nitionen for fourierrækken, kan vi integrere fra −T2til T
2og eliminere
nogle led:
f(x) =1
2a0 +
∞∑n=1
(an · cos(2π
Tnx) + bn · sin(
2π
Tnx))
mˆ T/2
−T/2f(x)dx =
ˆ T/2
−T/2
1
2a0dx =
a0 · T2
m
a0 =2
T
ˆ T/2
−T/2f(x)dx
Vi har nu fundet frem til a0. Ledene fra summen går altså ud, hvilket kan ses ved:
∞∑n=1
(an ·ˆ T/2
−T/2(cos(
2π
Tnx))dx) + bn ·
ˆ T/2
−T/2(sin(
2π
Tnx))dx))
Vi bruger ortogonalitetsrelationerne (1) og (2):∞∑n=1
(an · 0 + bn · 0) = 0
Skal vi fortolke værdien 12a0, så er det den gennemsnitlige værdi for perioden.
´ T/2−T/2 f(x)dx er
jo lig arealet for hele perioden, og faktoren 2Tvil så give os det dobbelte af den gennemsnitlige
højde/funktionsværdi.
Vi fortsætter med at �nde an. Vi kan gange et cos(2πTnx)-led ind, og bagefter integrere fra −T
2
til T2. I stedet for n bruger vi k for summeringen da vi kan bruge én af ortogonalitetsreglerne
til at slippe af med summeringen:
11/41
Mathias Kærlev Fourieranalyse 21-12-2012
ˆ T/2
−T/2(f(x) · cos(2π
Tnx))dx =
ˆ T/2
−T/2(1
2a0 · cos(
2π
Tnx) +
∞∑k=1
(ak · cos(2π
Tkx) · cos(2π
Tnx) + bk · sin(
2π
Tkx) · cos(2π
Tnx)))dx
Vi bruger ortogonalitetsrelationerne (2) og (3):
=
ˆ T/2
−T/2(∞∑k=1
(ak · cos(2π
Tnx) · cos(2π
Tkx)))dx
Vi bruger ortogonalitetsrelationen (5), og slipper af med summerigen, da integralet af de led,
hvor n 6= k, er 0:
=an · T2
m
an =2
T·ˆ T/2
−T/2(f(x) · cos(2π
Tnx))dx
Beviset for bn følger i lignende stil, men denne gang ganger vi et sin(2πTnx)-led ind:
ˆ T/2
−T/2(f(x) · sin(2π
Tnx))dx =
ˆ T/2
−T/2(1
2a0 · sin(
2π
Tnx) +
∞∑k=1
(an · sin(2π
Tkx) · cos(2π
Tnx) + bn · sin(
2π
Tnx) · sin(2π
Tkx)))dx
Vi bruger ortogonalitetsrelationerne (1) og (3):
=
ˆ T/2
−T/2(∞∑k=1
(bn · sin(2π
Tnx) · sin(2π
Tkx)))dx
Vi bruger ortogonalitetsrelationen (4), og slipper af med summerigen, da integralet af de led,
hvor n 6= k, er 0:
=bn · T2
m
bn =2
T
ˆ T/2
−T/2(f(x) · sin(2π
Tnx))dx
Det viser sig så, at a0 vil svare til an ved n = 0 (og det var netop grunden for den 12-koe�cient):
12/41
Mathias Kærlev Fourieranalyse 21-12-2012
a0 =2
T·ˆ T/2
−T/2(f(x) · cos(2π
T· 0 · x))dx =
2
T·ˆ T/2
−T/2(f(x) · cos(0))dx
Da cos(0) = 1:
a0 =2
T·ˆ T/2
−T/2(f(x))dx
Vores sammenhæng for an gælder altså også for n = 0!
Men hvad så med bn ved n = 0? Lad os regne:
b0 =2
T·ˆ T/2
−T/2(f(x) · sin(2π
T· 0 · x))dx =
2
T·ˆ T/2
−T/2(f(x) · sin(0))dx
Da sin(0) = 0:
b0 =2
T·ˆ T/2
−T/2(f(x) · 0)dx =
2
T·ˆ T/2
−T/2(0)dx = 0
b0 er lig 0. Der gælder altså for an, at n ∈ {0,1,2,...}, og for bn, at n ∈ {1,2,3,...}.
Regneeksempler
Ulige funktioner
Vi vælger en ulige, periodisk funktion, f.eks. f(x) = x på intervallet [−π; π], dvs. med periode
T = 2π. Det giver en såkaldt �savtaks�-funktion.
Vi �nder først a0: a0 = 2T
´ T/2−T/2 f(x)dx = 1
π
´ π−π f(x)dx = 0
Vi �nder nu an og bn fra 1 ≤ n ≤ 4:
a1 =1
π·ˆ π
−π(f(x) · cos(1 · x))dx = 0
a2 =1
π·ˆ π
−π(f(x) · cos(2 · x))dx = 0
a3 =1
π·ˆ π
−π(f(x) · cos(3 · x))dx = 0
a4 =1
π·ˆ π
−π(f(x) · cos(4 · x))dx = 0
b1 =1
π
ˆ π
−π(f(x) · sin(1 · x))dx = 2
b2 =1
π
ˆ π
−π(f(x) · sin(2 · x))dx = −1
b3 =1
π
ˆ π
−π(f(x) · sin(3 · x))dx =
2
3
b4 =1
π
ˆ π
−π(f(x) · sin(4 · x))dx =
−12
13/41
Mathias Kærlev Fourieranalyse 21-12-2012
Da vi nu har fundet alle vores ønskede koe�cienter, kan vi nu bestemme fourierrækken for
funktionen:
f(x) =1
2a0 +
4∑n=1
(an · cos(2π
Tnx) + bn · sin(
2π
Tnx)) = 2sin(x)− sin(2x) + 2
3sin(3x)− 1
2sin(4x)
Det ses helt klart hvordan fourierrækken kommer tættere og tættere på den oprindelige funktion,
jo �ere led vi sætter på:
Graf for fourierrækken ved et stigende antal fourierkoe�cienter (se bilag 1)
Alligevel burde der nok medtages �ere led for at få en pænere approksimation.
Hvorfor er det kun sinus-leddene, der bliver tilbage? Sinus er jo også en ulige funktion. Ta-
ger vi udgangspunkt i beviset for an, kan vi se, at cosinus ganges ind i integralet for f(x):
ˆ T/2
−T/2(f(x) · cos(2π
Tnx))dx
En lige funktion ganget med en ulige funktion må give en ulige funktion, og integrerer vi en
ulige funktion fra −T/2 til T/2, får vi altid værdien 0, som vi så tidligere i afsnittet om lige og
ulige funktioner. Går vi tilbage til an, ser vi så, at
an =2
T·ˆ T/2
−T/2(f(x) · cos(2π
Tnx))dx =
2
T·ˆ T/2
−T/2h(x)dx =
2
T· 0 = 0
an-koe�cienterne vil så altid være 0 for en ulige funktion.
Frekvensspektret kan vi også bestemme, idet fn = 1T·n = n
2πog An =
√a2n + b2n =
√02 + b2n =
|bn|. Da vi til regneeksemplerne ikke bruger enheder, vil resultatet ikke være i Hz, men det viser
stadig princippet i udregningen.
14/41
Mathias Kærlev Fourieranalyse 21-12-2012
f 12π
1π
32π
2π
A 2 2 23
12
Lige funktioner
Vi vælger en lige, periodisk funktion, f.eks. f(x) =
−x for x ≤ 0
x for x > 0med periode T = 2π på
intervallet [−π; π]. Det giver en såkaldt triangle-funktion:
Vi �nder først a0:
a0 =2
T
ˆ T/2
−T/2f(x)dx =
1
π
ˆ π
−πf(x)dx = π
Vi �nder nu an og bn fra 1 ≤ n ≤ 4. Fordi f(x) er en lige funktion, vil bn-leddene gå ud,
så udregningerne for dem tages ikke med (beviset kommer senere). Til an bliver vi nødt til
at integrere vores funktion stykkevist, da funktionen selv er de�neret stykkevist, dvs. først i
intervallet [−π; 0], og bagefter i intervallet [0; π]:
a1 =1
π
ˆ π
−π(f(x) · cos(1 · x))dx =
1
π(
ˆ π
0
(f(x) · cos(1 · x))dx+ˆ 0
−π(f(x) · cos(1 · x))dx) = − 4
π
a2 =1
π(
ˆ π
0
(f(x) · cos(2 · x))dx+ˆ 0
−π(f(x) · cos(2 · x))dx) = 0
a3 =1
π(
ˆ π
0
(f(x) · cos(3 · x))dx+ˆ 0
−π(f(x) · cos(3 · x))dx) = − 4
9π
a4 =1
π(
ˆ π
0
(f(x) · cos(4 · x))dx+ˆ 0
−π(f(x) · cos(4 · x))dx) = 0
Da vi nu har fundet alle vores ønskede koe�cienter, kan vi nu bestemme fourierrækken for
funktionen:
f(x) =1
2a0 +
4∑n=1
(an · cos(2π
Tnx) + bn · sin(
2π
Tnx)) =
π
2− 4
πcos(x)− 4
9πcos(3x)
15/41
Mathias Kærlev Fourieranalyse 21-12-2012
Med 4 led er det en rimelig approksimation. Alligevel er de skarpe kanter blevet langt blødere,
så måske burde vi havde forsøgt os med nogle �ere led.
På samme måde som før kan vi bevise, at bn-leddene går ud, da f(x) er en lige og sin(x) er
ulige funktion, og f(x) · sin(x) er derfor også en ulige funktion. Integralet´ T/2−T/2 f(x) · sin(
2πTnx) er så altid lig 0, og bn-leddene er derfor 0.
Vi laver igen et frekvensspektrum for vores funktion, idet An =√a2n + b2n =
√a2n + 02 = |an|:
f 12π
32π
A π4
9π4
Eksperimenter
Nyquists kritiske frekvens
Til vores forsøg er det vigtigt at vide, at antallet af målinger vi laver, og hvor hurtigt vi
kan lave dem, har en afgørende betydning. Nyquists kritiske frekvens siger, at den maksimale
frekvens, der kan optages, er den halve af samplingsfrekvensen. Det vil sige fmax = 12fs hvor fs er
samplingsfrekvensen, dvs. målinger pr. sekund. Hvis vi f.eks. optager med en samplingsfrekvens
på 1000Hz, vil den største frekvens, vi kan lave fourieranalyse på, være 12·1000Hz = 500Hz. Vi
kan også fortolke Nyquists kritiske frekvens på en anden måde, hvis vi gerne vil kende grænsen
forM .7 Tager vi udgangspunkt i fn = 1T·n, kan vi jo sætte fn til det halve af samplingsfrekvensen
og isolere n. Hvis T = N ·4t (altså antallet af målinger ganget med tiden mellem målingerne),
får vi, at: 12· fs = 1
T· n⇔ n = 1
2· fs · T = 1
2· fs ·N · 1
fs= 1
2N . Den største værdi, M bør have,
er altså det halve af antallet af målinger.
7Albrechtsen, Fourieranalyse, s. 33
16/41
Mathias Kærlev Fourieranalyse 21-12-2012
Fourieranalyse med datasæt
Her kommer den praktiske anvendelse af fourieranalysen ind i billedet. Problemet med fouri-
eranalysen er, at der er mange integraler og beregninger, der skal indgå, når man forsøger
at bestemme frekvensspektret. Her er FFT, Fast Fourier Transform, en algoritme, som gør
beregningen meget hurtigere. Programmer som LoggerPro og Datalyse kan lave FFT for os,
men i stedet for reelle fourierkoe�cienter får vi et frekvensspektrum beregnet og præsenteret.
Princippet bag fourieranalysen er stadig bevaret (selv om FFT bruger komplekse værdier til
udregningen, men det er sådan set sekundært).
I stedet for FFT kunne man dog også kigge på data for én periode og foretage nogle beregninger
derudfra. Normalt kender vi ikke en funktion for vores lydbølge, men kun nogle samples, altså
nogle punkter på grafen for vores lydsignal, og vi skal derudfra beregne vores integraler. Tager
vi udgangspunkt i an og bn, skal vi altså �nde arealet under grafen for de periodiske funktioner
f(tk) · cos(2πT nx) og f(tk) · sin(2πT nx), hvor f(tk) vil svare til vores måling til tiden tk, dvs.
måling k (hvor k = 0 er første måling). Hvis vi lader N være antal målinger i en periode og hvis
4t er tiden mellem de enkelte målinger, så får vi en periode T = N · 4t. Ved approksimation
kan vi bestemme arealet af f(x), hvis vi antager, at arealet under grafen for hver måling er et
rektangel med bredde 4t og længde f(x).
Eksempeldata, der viser princippet bag beregningen med rektangler
Ved summering vil det svare til´ T/2−T/2 f(tk)dt =
N−1∑k=0
(4t · f(tk)) = 4t ·N−1∑k=0
(f(tk)). Grænsen for
summeringen vil være N − 1, da vores k-indeks starter ved 0, og k = N ville altså gå ud over
vores måledata. Vi kan nu �nde an ved at gange et cos(2πTnx) ind:
ˆ T/2
−T/2f(tk) · cos(
2π
Tnx)dt = 4t ·
N−1∑k=0
(f(tk) · cos(2π
Tn · tk))
an =2
T
ˆ T/2
−T/2f(tk) · cos(
2π
Tn · tk)dt =
2
T4t ·
N−1∑k=0
(f(tk) · cos(2π
Tn · tk))
Da T = N · 4t og tk = k · 4t, kan vi reducere udtrykket yderligere:
17/41
Mathias Kærlev Fourieranalyse 21-12-2012
an =2
N · 4t· 4t(
N−1∑k=0
f(k · 4t) · cos( 2π
N · 4tn · k · 4t)) = 2
N· (N−1∑k=0
f(k · 4t) · cos(2πNn · k))
På samme måde kan vi �nde et udtryk for bn, dvs. bn =2
N· (N−1∑k=0
f(k · 4t) · cos(2πNn · k))
Beviset kunne også være ført ved brug af trapezreglen8, men resultatet er det samme.
For at illustrere hvordan man kan bruge vores nye udtryk sammen med reelle data, kan vi lave
et simpelt datasæt:
t/s 0 1 2 3
A 0 1 0 -1
Ifølge Nyquists kritiske frekvens, vil n over N2indeholde for stor en fejl, at disse led ikke bør
medtages.
Vi �nder derfor kun fourierkoe�cienterne for 0 ≤ n ≤ 42. N = 4, da vi har 4 målinger, og
4t = 1s:
a0 =2
4· (
3∑k=0
f(k · 1s) · cos(2π4· 0 · k)) =0 b1 =
2
4· (
3∑k=0
f(k · 1s) · cos(2π41 · k)) = 1
a1 =2
4· (
3∑k=0
f(k · 1s) · cos(2π4· 1 · k)) =0 b2 =
2
4· (
3∑k=0
f(k · 1s) · cos(2π42 · k)) = 0
a2 =2
4· (
3∑k=0
f(k · 1s) · cos(2π4· 2 · k)) =0
Det vil så svare til følgende fourierrække:
f(t) = b1 · sin(2π
N · 4tnt) = sin(
2π
4 · 1s· 1 · t) = sin(
2π
4s· t)
Sammenligner vi de oprindelige værdier, passer det endda eksakt:
t/s 0 1 2 3
f(t) 0 1 0 -1
Vi kan nu lave et frekvensspektrum for vores datasæt (de eneste led, der er relevante, er a1og b1):
f/Hz 0,25
A 1
f =1
Tn =
1
4s· 1 = 0,25Hz
A =√a21 + b21 =
√02 + 12 = 1
8Bevis ved trapezregel, Albrechtsen, Fourieranalyse, s. 31
18/41
Mathias Kærlev Fourieranalyse 21-12-2012
Det er selvfølgelig et simpelt eksempel, men vi har nu bestemt frekvensspektret uden nogen
kendt funktion. Til de følgende eksperimenter vil Datalyse bruges til at lave frekvensspektret,
og bilag 4 til at �nde fourierkoe�cienter i det første forsøg.
Hvad hvis man ikke kender lydbølgens periode, men kun har nogle vilkårlige måledata? Det er
jo netop det, som Datalyse og LoggerPro kan gøre for os. I det tilfælde kunne man sætte sin
periode til T = N · 4t, altså antallet af målinger multipliceret med tiden mellem målingerne,
og så bestemme amplituderne for frekvenserne ved f = 1T· n. I det tilfælde har man jo ikke
grundtonen ved n = 1 og overtonerne ved n > 1, men i stedet det, man kalder spektrale fre-
kvenser og spektrale amplituder.9 Vi får altså ikke styrken af grundtonen og overtonerne, men
styrken af alle frekvenserne i dataene (til det punkt hvor det er muligt). Ud fra det resulteren-
de frekvensspektrum kan vi alligevel tolke på, hvilke frekvenser og amplituder grundtonen og
overtonerne har, ved at se efter frekvenser, der er særdeles stærke, de såkaldte �peaks�.
Guitaren
Guitaren som instrument er karakteriseret ved, at den har 6 strenge, der kan slås an. Til
forsøgene vil vi bruge den streng, der har den mindste frekvens, dvs. den nederste streng, der
har tonen E2 og frekvens omkring 80Hz. Dette skyldes, at frekvensen bør være så lav så mulig,
sådan så vi er sikre på, at vi ikke når op over Nyquists frekvens for vores overtoner. Der er
�ere måder at spille en guitar på, men til vores formål vil vi strække strengen ud og lade den
svinge. Da strengen er udspændt i to ender, vil der opstå stående bølger. Der vil så dannes lyd
når strengen skubber til luften, og med de frekvenser, som vi kan forvente fra stående bølger.10 Hvis vi skal se, hvilke frekvenser vi kan forvente i vores lydoptagelse, kan vi så bruge formlen
v = λ · f ⇔ f = vλ. Hvis strengen har længden L, har de stående bølger bølgelængden λn = 2L
n,
hvor n = 1 er grundtonen og n > 1 er overtonerne.11
Bølgelængder for forskellige værdier af n
Indsætter vi λn i formlen for frekvensen, får vi fn = v2Ln
= n·v2·L . Uden værdier for udbredelses-
hastigheden og båndlængden, kan vi stadig se på forholdet mellem overtonerne og grundtonen:fnf1
= n ⇔ fn = n · f1. Går vi f.eks. tilbage til vores E-streng, ved vi, at f1 = 80Hz, og vi kan
forvente, at overtonerne vil være f2 = 2 · 80Hz = 160Hz, f3 = 3 · 80Hz = 240Hz, og så videre.
Afhænger amplituden for de forskellige overtoner af, hvor og hvordan guitarstrengen slås an?
9Albrechtsen, Fourieranalyse, s. 5310C. Claussen, Spektrum - Fysik II, s. 4211Jensen, Fourieranalyse, s. 6
19/41
Mathias Kærlev Fourieranalyse 21-12-2012
Hvilke amplituder for frekvenserne kan vi forvente i en idealiseret situation, dvs. uden nogen
modstand og anden påvirkning? Med fourieranalyse kan vi kigge på to forskellige begyndelses-
kon�gurationer: hvis vi strækker strengen ud på midten og hvis vi strækker strengen ud 13fra
enden. Hvis guitarstrengens længde er L, og hvis vi strækker guitarens streng afstanden d ud i
midten, kan vi opstille en funktion for dette12:
f(x) =
2dLx for 0 ≤ x ≤ L
2
−2dL(x− L) for L
2≤ x ≤ L
Graf for f(x)
Umiddelbart vil strengen fortsætte med at svinge på denne måde. Vi kan gøre funktionen perio-
disk i intervallet [−L;L]med periode 2L ved at forlænge den, så den også svinger under x-aksen:
g(x) = f(x)− f(−x)
Graf for g(x)
Vi kan nu foretage en fourieranalyse på g(x). Vi medtager op til 6 koe�cienter, dvs. op til 6
overtoner. Vi behøver kun at regne bn-koe�cienterne, da g(x) er en ulige funktion (mellemreg-
ningerne tages ikke med, men regnes i et CAS-værktøj):
bn =1
L
ˆ L
−Lg(x) · sin(π
Lnx)dx b1 =
1
L
ˆ L
−Lg(x) · sin(π
Lx)dx =
8d
π2
b2 =1
L
ˆ L
−Lg(x) · sin(2π
Lx)dx = 0 b3 =
1
L
ˆ L
−Lg(x) · sin(3π
Lx)dx =
−8d9π2
b4 =1
L
ˆ L
−Lg(x) · sin(4π
Lx)dx = 0 b5 =
1
L
ˆ L
−Lg(x) · sin(5π
Lx)dx =
8d
25π2
b6 =1
L
ˆ L
−Lg(x) · sin(5π
Lx)dx = 0
Overtonerne med lige n går altså ud. Vi kan nu lave et frekvensspektrum:
f f1 2f1 3f1 4f1 5f1 6f1
A A1 0 19· A1 0 1
250
A1 = |8d
π2| = 8d
π2
A3 = |−8d9π2| = 8d
9π2=
1
9· A1
A5 = |8d
25π2| = 8d
25π2=
1
25· A1
12Jensen, Fourieranalyse, s. 4
20/41
Mathias Kærlev Fourieranalyse 21-12-2012
Selv om vi ikke kan �nde værdier for frekvenserne og amplituderne, er det forholdet imellem
dem, der er interessant. Ifølge vores beregninger burde der komme 2 overtoner, 3f1 og 5f1. Den
3. overtones amplitude er 19af grundtonens, og 5. overtones amplitude er 1
25af grundtonen,
mens 2. og 4. overtone helt forsvinder.
Ser vi på det andet udfald, hvor vi trækker guitarstrengen op 13fra enden, kan vi gentage
vores beregninger:
f(x) =
3dLx for 0 ≤ x ≤ L
3
− 3d2L(x− L) for L
3≤ x ≤ L
Graf for f(x)
g(x) = f(x)− f(−x)
Graf for g(x)
bn =1
L
ˆ L
−Lg(x) · sin(π
Lnx)dx b1 =
1
L
ˆ L
−Lg(x) · sin(π
Lx)dx =
9d ·√3
2π2
b2 =1
L
ˆ L
−Lg(x) · sin(2π
Lx)dx =
9d ·√3
8π2b3 =
1
L
ˆ L
−Lg(x) · sin(3π
Lx)dx = 0
b4 =1
L
ˆ L
−Lg(x) · sin(4π
Lx)dx =
−9d ·√3
32π2b5 =
1
L
ˆ L
−Lg(x) · sin(5π
Lx)dx =
−9d ·√3
50π2
b6 =1
L
ˆ L
−Lg(x) · sin(5π
Lx)dx = 0
f f1 2f1 3f1 4f1 5f1 6f1
A A114· A1 0 1
16· A1
125· A1 0
A1 = |9d ·√3
2π2| = 9d ·
√3
2π2
A2 = |9d ·√3
8π2| = 9d ·
√3
8π2=
1
4· A1
A4 = |−9d ·
√3
32π2| = 9d ·
√3
32π2=
1
16· A1
A5 = |−9d ·
√3
50π2| = 9d ·
√3
50π2=
1
25· A1
I dette tilfælde forsvinder hver 3. overtone helt.
Disse to begyndelseskon�gurationer vil bruges til især det første eksperiment for at se, om
vi tilnærmelsesvis kan se samme forhold for overtonerne. I dette tilfælde er det ufatteligt svært
at genskabe en ideal situation, så en egentlig afvigelses-værdi for amplituderne vil ikke forsøges.
21/41
Mathias Kærlev Fourieranalyse 21-12-2012
Analyse af lyd fra guitar
Formål
En guitarstrengs frekvensspektrum forsøges bestemt gennem fourieranalyse af lyd. Sammen-
hængen mellem det punkt, hvor strengen slås an, og amplituderne for overtonerne, sammenlig-
nes med teori-afsnittet. Desuden ønskes fourierspektret bestemt gennem udvælgelse af en enkelt
periode fra lyddataene.
Apparatur
Mikrofon, akustisk guitar, PC med Datalyse, Audacity og Python 2.7
Forsøgsopstilling
Guitaren lægges �adt på et bord, og en mikrofon sættes op sådan, at den kan optage tæt på
guitarens lydhul.
Forsøgets udførelse
Mikrofonen sættes til at optage lyddata i programmet Datalyse, hvorefter guitarens E-streng
slås an med et plekter på midten. Ved brug af Datalyses �fourieranalyse�-funktion �ndes fre-
kvensspektret for optagelsen med en blokstørrelse på 8192. Forsøget gentages, men i stedet for
midten slås E-strengen an 13inde på strengen.
Forsøgsresultater
Vi starter med resultaterne for midten af strengen.
Frekvensspektrum for optagelsen
22/41
Mathias Kærlev Fourieranalyse 21-12-2012
Se bilag 2 for det resulterende frekvensspektrum, beregnet af Datalyse. Ved a�æsning af grafen
ses, at der er nogle helt tydelige �peaks�, altså nogle toppe på grafen. Skal vi fortolke disse
peaks kan vi se, at lydsignalets grundtone er 81Hz med amplitude 100, svarende til tonen E2,
1. overtone er 161Hz med amplitude 23, 2. overtone er 237Hz med amplitude 50, og så videre.
Vi laver et skema over de forskellige peaks (op til 5. overtone):
f/Hz 81 161 237 318 399 481
A 100 23 50 20 42 19
Ifølge guitar-afsnittet passer det godt med vores forventninger. Vi havde jo regnet med, at
grundtonen ville være E2, og at overtonerne ville være n · f1. Overtonerne følger ikke helt voresforudsigelse, da alle de �lige� overtoner burde gå helt væk. Der er sikkert nogle fejlkilder behæf-
tet med forsøget, der kan forklare det. Alligevel kan vi se, at de lige overtoner ikke er nær så
stærke som de ulige overtoner, så på den måde er det et acceptabelt resultat.
Lad os fortsætte med dataene fra strengen, der blev slået an 13inde på strengen. Vi �nder
et frekvensspektrum gennem Datalyse.
Frekvensspektrum for optagelsen (bilag 3)
Skema over de forskellige peaks:
f/Hz 81 161 - 319 398 480
A 100 57 - 34 22 4
Skal vi sammenligne med teorien, er 2. overtone ved ≈ 240Hz også gået helt væk! Det var
også det vi forventede. De andre overtoner falder i amplitude, jo længere vi kommer væk fra
grundtonen, så det svarer også overens med teorien.
Præcisionen af vores frekvensspektre skal måske undersøges. Da vi har en blokstørrelse på
8192 (dvs. det antal målinger, der undersøges), vil det sige, at vi har en T -værdi på N · 4t =8192 · 1
44100Hz≈ 0,1858s. Vi antager her, at Datalyse har en samplingsfrekvens ved optagelser på
44100Hz. f1 er så 1 · 1T≈ 5Hz, f2 ≈ 11Hz, f3 ≈ 16Hz. Det vil altså sige, at vi kan bestemme
vores frekvenser med en usikkerhed på ±3Hz.
23/41
Mathias Kærlev Fourieranalyse 21-12-2012
Som sagt kunne vi også kigge på en enkelt periode og �nde både frekvensspektret og fourier-
spektret på den måde. Med programmet Audacity udvælges følgende periode, der �ndes lige
efter strengen er slået an ved dataene for optagelse 2:
Billede af lydbølge (bilag 10)
For at gøre beregningerne lidt mere overkommelige, bruges programmet i bilag 4 til at
beregne fourierkoe�cienterne. Programmet kræver, at Python 2.7 er installeret, men ellers er
princippet bag programmet allerede blevet forklaret i starten af dette afsnit (dvs. det
beregner koe�cienterne ved approksimation af arealet for f(x)). Med en 4t-værdi på 125µs
(en �sampling rate� på 8000Hz), må ovenstående bølge have en periode på
T = N · 4t = 100 · 125µs = 125 · 10−4s. Ved brug af de resulterende data fra bilag 4 laves et
frekvensspektrum:
Frekvensspektret ser ikke ud til at svare til det, vi fandt ved Datalyse. Det må skyldes, at
Datalyse kigger på mange �ere perioder, hvor amplituderne kunne have ændret sig, mens vi
kun har valgt en enkelt periode her. Alligevel er resultatet passende med vores teori om, at 2.
overtone burde være meget lavere end resten af overtonerne. Overtonernes amplitude falder
også trinvist, efterhånden som n stiger, hvilket vi havde forventet. 4. overtone er en anomali i
forhold til vores teori, men der er igen nogle fejlkilder, der måske kan forklare det.
Fejlkilder
I forhold til fejlkilder er det svært at lave en optagelse helt uden støj fra omgivelserne. Alligevel
er støjens styrke så lille, at den i det resulterende frekvensspektrum er ubetydelig. Desuden
optager vi jo ikke kun den lyd, som strengen laver. Lyden resonerer med guitarens krop, så i
virkeligheden er det hele guitarens lyd, som vi optager. På den måde er vores idealiserede teori
om, at det kun er strengen, der laver lyd, måske ikke opfyldt på �ere måder. Afhængigt af, om
guitaren f.eks. er holdt op eller spændt fast kan også gøre, at lyden vil ændre sig. Desuden var
24/41
Mathias Kærlev Fourieranalyse 21-12-2012
rummet, hvor forsøgene blev gjort, ikke lyddødt. Støj er allerede nævnt, men lyden fra guitaren
kan være re�ekteret af vægge eller andre over�ader i rummet, hvilket kunne have resoneret med
strengen eller guitarens krop. Optageudstyret burde der også kigges på, da det kunne være,
at PC'en eller mikrofonen behandler lyden på en uhensigtsmæssig måde, eller at mikrofonens
optageposition kunne gøre en forskel.
Konklusion
Gennem fourieranalyse i Datalyse har vi fundet en guitarstrengs toner og overtoner, samt
dens fourierspektrum. Ud fra teorien om, at der opstår stående bølger på strengen, passer
forsøgets resultater meget godt. Det ligner også, at sammenhængen mellem det punkt, hvor
strengen strækkes ud, og mange af de overtoner vi får, passer med teoriafsnittet, selv om der
for nogle overtoner er nogle uoverensstemmelser. Skal metoden kommenteres, er fourieranalyse
i dette tilfælde med en usikkerhed på ±3Hz et godt værktøj til analyse af frekvensspektrer.
Analyse af video fra vibrerende guitarstreng
Formål
En guitarstrengs frekvensspektrum forsøges bestemt gennem videoanalyse i et punkt og fouri-
eranalyse.
Apparatur
Akustisk guitar, high-speed kamera (f.eks. Casio EX-ZR100), halogenlampe, PC med Datalyse
Forsøgsopstilling
En guitar sættes oprejst på et bord med en støtte i enden. Kameraet hæves op sådan, at den kan
optage guitarens dybe E-streng ved lydhullet. Da lyset fra omgivelserne ikke er tilstrækkeligt,
bruges i stedet en halogenlampe til at belyse optageområdet. Guitarens E-streng prikkes med
sort tusch, sådan så det bliver nemmere at �nde et referencepunkt på optagelsen.
Forsøgets udførelse
Ved brug af et high-speed kamera (i dette tilfælde et Casio EX-ZR100) kan der optages med
1000Hz, altså 1000 billeder pr. sekund (4t = 11000Hz
= 10−3s). Kameraet bør sættes til indstil-
lingen �Super Macro�, da optageafstanden vil være meget lille. Strengen slås an med et plekter13inde på strengen, mens kameraet optager.
25/41
Mathias Kærlev Fourieranalyse 21-12-2012
Billeder fra optagelsen, der viser svingningen
Billede for billede �ndes prikkens y-koordinat i video-optagelsen og noteres ned på et regneark.
Da FFT-algoritmen i Datalyse kræver, at antallet af målinger skal være potenser af 2, dvs. 2x,
laver vi 128 målinger (27 = 128). Resultaterne for forsøget kan �ndes i bilag 5.
Forsøgsresultater
Graf over forsøgsresultaterne (bilag 6)
Dataene importeres manuelt til Datalyse gennem en CSV �l. Ved fourieranalyse i Datalyse
�ndes frekvensspektret for vores data med blokstørrelse 128 (se bilag 7). Igen har vi nogle
�peaks�, som vi kan tolke på.
Frekvensspektrum af data
Ved 78Hz har vi vores grundtone med amplitude 100, svarende til tonen E2. Kigger vi på
vores data ligner det da også, at svingningen har en periode, der svarer til 12 målinger, dvs.
f = 1T= 1
N ·4t =1
12·10−3s≈ 83Hz. Ved 156Hz har vi vores 1. overtone med amplitude 39. Selv
om det er svært at se, har vi ved 242Hz vores 2. overtone med amplitude 7.
Vi har altså en grundtone og 2 overtoner. I forhold til lydanalysen ligner det, at frekvens-
spektret er mindre præcist, da afstanden mellem linjepunkterne for frekvenserne i grafen er
større. Det skyldes, at vi kun har 128 målinger, hvilket vil svare til en T -værdi på N · 4t =
26/41
Mathias Kærlev Fourieranalyse 21-12-2012
128 · 11000Hz
= 0,128s. f1 er så 1 · 1T≈ 8Hz, f2 ≈ 16Hz, f3 ≈ 23Hz, og så videre, så i virkelig-
heden kan vi kun bestemme vores toners frekvenser med en usikkerhed på ±4Hz.
Igen passer det godt overens med vores forventninger om, at der opstår stående bølger på
strengen, og at overtonerne vil være lig fn = n · f1. Alligevel er det besynderligt, at vi kun får
3-4 overtoner. Det er der nok nogle årsager til.
Fejlkilder
Af fejlkilder kan nævnes, at strengen imellem yderpunkterne er utydelig, og ser ud til at være
til stede mellem et større interval. I dette tilfælde blev midtpunktet valgt, men det er ikke
nødvendigvis korrekt. Referencepunktets horisontale position har også afgørende betydning
for, hvilke overtoner der kommer med. I teorien kunne vi jo optage ved ét af knudepunkterne
for en af de stående bølger, og på den måde ville vi ikke få noget udsving for den bølge. Dette
er nok tilfældet for de højere overtoner, der tilmed også har svage amplituder i forhold til
grundtonen. Opløsningen af optagelsen er desuden begrænset til 224x64, så i virkeligheden kan
y-koordinatet højst bestemmes med omkring 32 pixels nøjagtighed, altså mellem de pixels,
hvor strengen svinger. I teorien burde vi ikke være nået op over Nyquists kritiske frekvens, idet
fmax =12· 1000Hz = 500Hz. Det ligner heller ikke, at overtonerne over 500Hz ville have nogen
betydning, da overtonerne forsvinder meget tidligere.
For en mindre usikkerhed på vores frekvenser kunne vi have fundet nogle �ere punkter for
svingningen, sådan så T -værdien ville være større. Det ville kræve, at vi havde lavet 28 = 256
eller �ere målinger, hvilket måske havde været lidt for meget arbejde til vores formål.
Konklusion
Ved videoanalyse, fourieranalyse og det resulterende frekvensspektrum har vi set, at der må
have opstået stående bølger på guitarstrengen. I forhold til en analyse af lyd er præcisionen
af vores måleresultater meget mindre, da vi ikke kan optage med så stor en hastighed, som en
mikrofon kan, og at antallet af målinger nødvendigvis er langt mindre. Med vores video-analyse
har vi ikke kunnet se mange overtoner, men de overtoner, der kom frem, var af de forventede
frekvenser.
Fouriersyntese
Med fouriersyntese forstås, at man kan lave et periodisk signal med de fourierkoe�cienter,
altså den grundtone og de overtoner, man ønsker. I afsnittet med eksperimenter bestemte vi
frekvensspektret og fourierkoe�cienterne for en guitarstreng. Ud fra frekvensspektret er det
umiddelbart ikke muligt at genskabe det oprindelige lydsignal, da vi kun kender en amplitude
og en frekvens, hvilket ikke er nok. I princippet skal vi kende til an og bn-koe�cienterne, altså
fourierspektret, før vi kan genskabe tonens periodiske signal. Tager vi 15 fourierkoe�cient-par
27/41
Mathias Kærlev Fourieranalyse 21-12-2012
fra afsnittet om lydanalyse, kan vi prøve at genskabe lydbølgen fra guitaren i et CAS-værktøj.
Vi indsætter dataene i et regneark (med navnene antabel og bntabel), og laver en funktion
f(x) =1
2· antabel[1] +
15∑n=1
(antabel[n+ 1] · cos(2πTnx) + bntabel[n+ 1] · sin(2π
Tnx))
Vi kan nu tegne grafen for funktionen (funktionen er forskudt ned ad y-aksen, sådan så funk-
tionen svinger omkring x-aksen):
Graf for fouriersyntese i CAS-værktøj (bilag 8)
Sammenligner vi med �guren fra Analyse af lyd fra en guitar, dvs. bilag 10, er lydbølgens
struktur særdeles godt konserveret. Ved at lave en lyd�l for fourierrækken, kan vi prøve at sam-
menligne lyden med den fra guitaren. Bilag 9 er et program, der laver fouriersyntese og gemmer
en lyd�l med en varighed på 5 sekunder. Princippet er det samme som for CAS-værktøjet, men
i dette tilfælde gemmes der til en lyd�l i stedet.
Lyd�len lyder noget �tør�. I virkeligheden gentager en lydbølge sig jo heller ikke uden at nog-
le parametre ændrer sig. Amplituden for de forskellige overtoner og grundtonen vil nok blive
mindre efterhånden som guitarstrengens svingning aftager. Vi kunne undersøge, hvordan koef-
�cienterne ændrer sig over tid, og ændre vores model, sådan så koe�cienternes værdier aftager.
Det var i hvert fald én måde at gøre det resulterende signal mere virkelighedsnært på.
Som vi så ovenover, så er fouriersyntese et godt redskab til at genskabe en tone. Hvad hvis
vi vil syntetisere alle tonerne for guitaren? Hvis vi havde ændret båndlængden på vores guitar-
streng, havde vi selvfølgelig fået en anden grundtone. Antager vi, at den nye tone havde opført
sig ligesom den gamle tone, altså med samme an og bn-værdier, kunne vi i vores fouriersyn-
tese ændre vores T -værdi, sådan så grundtonen passer med den nye tone. Hvis vi antager, at
det gælder for en arbitrær tone på strengen, ville vi kunne syntetisere alle tonerne på den streng.
Havde vi samlet et fourierspektrum for hver streng (eller tone), kunne vi genskabe hver tone på
guitaren. I princippet får vi ved fouriersyntese af disse fourierspektre et elektronisk instrument,
der genskaber instrumentets lyd! Det helt specielle ved de forskellige instrumenter er jo deres
klang, altså sammensætningen af overtoner.13Kunne man genskabe deres klang for forskellige
toner, har man sig altså et elektronisk instrument. Man kunne også have lavet lydoptagelser
13C. Claussen, Spektrum - Fysik II, s. 41
28/41
Mathias Kærlev Fourieranalyse 21-12-2012
for hver tone og streng, men det ville føre til langt mere data, der skal gemmes. Som vi så, så
behøver vi ikke mere end 15 fourierkoe�cienter for at få genskabt tonen, der overordnet ligner
det oprindelige signal. Den største ulempe ved fouriersyntese er dog, at fourierspektret ikke
indeholder nogen information om, hvordan lydsignalet ændrer sig over �ere perioder. Hvis man
ønsker at lave en funktion fra et lydsignal med en enkelt periode er fourieranalyse- og syntese
en ideal løsning, men til et signal, der varierer over tid, må man altså gøre noget mere ved det
syntetiserede lydsignal eller bruge lydoptagelser i stedet.
Fouriersyntese er på den måde en god løsning til at genskabe instrumenters klang. Det skaber
muligheder for f.eks. simple, elektroniske instrumenter, der ikke kan være særlig virkelighedsnæ-
re pga. hukommelsesbegrænsninger, eller hvor en realistisk lyd ikke er vigtig.
Konklusion
I denne opgave blev frekvens- og fourierspektret for en guitarstreng både gennem teori og em-
piri bestemt ved brug af fourieranalyse. Selve fourieranalyse og dens udregning blev bevist
med afsæt i fourierrækken og illustreret gennem regneeksempler med periodiske funktioner.
Med udgangspunkt i fourieranalysen kunne guitarstrengens svingning i en idealiseret situation
forudsiges ved fourieropløsning af forskellige funktioner, der repræsenterede guitarstrengens
begyndelseskon�guration. Dette kunne efterprøves i praksis, og til lydanalysen kunne sammen-
hængen mellem teori og forsøgsresultater spores, idet overtonernes amplitude opførte sig tæt
på det forventede. Videoanalysen viste sig at være begrænset i forhold til de overtoner, der
kunne �ndes, men alligevel bekræftede det de stående bølger på strengen. En enkelt periode fra
lyddataene blev genskabt gennem fouriersyntese, og den resulterende funktion viste sig at være
en god tilnærmelse til originalen. Fouriersyntesen kunne altså genskabe en klang, og til f.eks.
simple elektroniske instrumenter ville fouriersyntese være et lettere alternativ til lydoptagelser
eller samples, når man prøver at reproducere en instruments lyd.
29/41
Mathias Kærlev Fourieranalyse 21-12-2012
Litteraturliste
Albrechtsen, Steen. Fourieranalyse. Werks O�set Århus, 1991. isbn: 87-983931-0-3.
C. Claussen E. Both, N. Hartling. Spektrum - Fysik II. 1. udg. Gyldendal, 2004. isbn: 10-87-
02-00685-5.
Jensen, Niels Christian. Fourieranalyse. 2004. url: http : / / www . emu . dk / gym / tvaers /
sciencegym/matematik-materialer/fourier.doc.
Larsen, Mogens Oddershede. Fourieranalyse. 2. udg. (Besøgt d. 20.12.2012). 2007. url: http:
//www.larsen-net.dk/files/Fourieranalyse.pdf.
Maor, Eli. Trigonometric Delights. (Besøgt d. 20.12.2012). Princeton University Press, 1998,
198�210 (Fourier Theorem). isbn: 9780691095417. url: http://press.princeton.edu/
books/maor/chapter_15.pdf.
MT2111 Linear Partial Di�erential Equations. (Orthogonality Relations og The Fourier Coef-
�cients) (Besøgt d. 20.12.2012). url: http://www.maths.manchester.ac.uk/DeptWeb/
UGCourses/Syllabus/Level2/MT2111Lecture10_2004.pdf.
30/41
Mathias Kærlev Fourieranalyse 21-12-2012
Bilag
Bilag 1: Graf til regneeksempler
31/41
Mathias Kærlev Fourieranalyse 21-12-2012
Bilag 2: Fourieranalyse af lyd fra guitar - anslået på midten (Datalyse)
32/41
Mathias Kærlev Fourieranalyse 21-12-2012
Bilag 3: Fourieranalyse af lyd fra guitar - anslået på 13 (Datalyse)
33/41
Mathias Kærlev Fourieranalyse 21-12-2012
Bilag 4: Programkode til fourieranalyse (Python)
Data er taget fra en 8000Hz lyd�l, dvs. 4t = 18000Hz
= 125µs med 100 punkter, N = 100.14
import math
data = [
0 , 18 , 21 , 40 , 55 , 76 , 94 , 108 , 125 , 136 , 147 , 152 , 159 , 170 , 175 ,
179 , 182 , 178 , 175 , 174 , 174 , 181 , 188 , 190 , 182 , 157 , 130 , 109 , 92 ,
88 , 99 , 113 , 127 , 136 , 142 , 150 , 163 , 174 , 180 , 190 , 196 , 200 , 198 ,
183 , 164 , 145 , 124 , 107 , 104 , 103 , 108 , 116 , 124 , 137 , 144 , 145 , 145 ,
149 , 153 , 160 , 168 , 169 , 171 , 168 , 158 , 150 , 148 , 148 , 159 , 171 , 173 ,
178 , 175 , 159 , 147 , 136 , 124 , 120 , 118 , 112 , 105 , 94 , 84 , 80 , 80 , 83 ,
93 , 99 , 98 , 99 , 99 , 97 , 90 , 81 , 60 , 45 , 30 , 23 , 15 , 7
]
N = l e n ( data )
M = N / 2
pr int ' n\ tan \ tbn \tAn '
for n in x range (M+1):
an = 0
bn = 0
for k in x range (N) :
an += data [ k ] * math . cos ( (2 * math . p i ) * ( f l o a t ( n*k ) / N) )
bn += data [ k ] * math . s i n ( (2 * math . p i ) * ( f l o a t ( n*k ) / N) )
an *= 2.0 / N
bn *= 2.0 / N
i f n == 0 :
pr int ' \ t%s ' % an
continue
An = math . s q r t ( an**2 + bn **2)
pr int '%s \ t%s \ t%s \ t%s ' % (n , an , bn , An)
14Inspireret af Albrechtsens FOURIER.pas, Fourieranalyse s. 83
34/41
Mathias Kærlev Fourieranalyse 21-12-2012
Output:
n f an bn An
0 253,58
1 80 -39,17 13,9 41,56
2 160 -29,5 18,51 34,83
3 240 -13,64 7,96 15,79
4 320 -21,51 -20,34 29,6
5 400 4,58 -3,79 5,94
6 480 -17,54 8,19 19,35
7 560 0,24 -3,44 3,45
8 640 1,39 -0,72 1,56
9 720 2,55 1,35 2,89
10 800 -0,35 5,42 5,44
11 880 1,11 -7,69 7,77
12 960 1,75 -0,53 1,82
13 1040 2,35 3,31 4,06
14 1120 0,82 0,3 0,88
15 1200 0,84 -1,46 1,69
16 1280 1,83 -1,06 2,12
17 1360 0,43 -0,02 0,43
18 1440 0,57 -0,7 0,91
19 1520 0,82 0,25 0,86
20 1600 0,67 -0,26 0,72
21 1680 0,81 0,09 0,82
22 1760 1,23 0,57 1,36
23 1840 0,31 -0,02 0,31
24 1920 1,15 -0,13 1,16
25 2000 0,85 -0,02 0,85
n f an bn An
26 2080 0,84 -0,19 0,86
27 2160 0,59 -0,05 0,59
28 2240 1,19 -0,06 1,19
29 2320 1,35 0 1,35
30 2400 1,13 -0,08 1,14
31 2480 0,89 0,02 0,89
32 2560 1,24 -0,2 1,25
33 2640 1,19 -0,42 1,26
34 2720 0,1 -0,17 0,2
35 2800 1,45 0,05 1,45
36 2880 1,3 -0,11 1,31
37 2960 1,06 -0,04 1,07
38 3040 0,86 0,15 0,88
39 3120 1,06 -0,3 1,1
40 3200 1,13 -0,29 1,17
41 3280 1,18 -0,25 1,21
42 3360 1,21 -0,27 1,24
43 3440 1,51 -0,33 1,55
44 3520 1,26 -0,25 1,28
45 3600 1,62 -0,33 1,65
46 3680 1,36 -0,26 1,39
47 3760 1,34 -0,23 1,36
48 3840 1,29 -0,18 1,3
49 3920 1,23 -0,09 1,23
50 4000 1,21 0,01 1,21
35/41
Mathias Kærlev Fourieranalyse 21-12-2012
Bilag 5: Data for videoanalyse
n t/s y
0 0,000 128
1 0,001 130
2 0,002 134
3 0,003 144
4 0,004 160
5 0,005 209
6 0,006 252
7 0,007 240
8 0,008 200
9 0,009 151
10 0,010 123
11 0,011 124
12 0,012 128
13 0,013 129
14 0,014 134
15 0,015 142
16 0,016 148
17 0,017 181
18 0,018 234
19 0,019 251
20 0,020 223
21 0,021 174
22 0,022 132
23 0,023 122
24 0,024 124
25 0,025 129
26 0,026 130
27 0,027 137
28 0,028 145
29 0,029 161
n t/s y
30 0,030 208
31 0,031 249
32 0,032 240
33 0,033 200
34 0,034 150
35 0,035 123
36 0,036 123
37 0,037 124
38 0,038 132
39 0,039 134
40 0,040 139
41 0,041 152
42 0,042 184
43 0,043 227
44 0,044 250
45 0,045 226
46 0,046 175
47 0,047 133
48 0,048 122
49 0,049 124
50 0,050 132
51 0,051 131
52 0,052 140
53 0,053 148
54 0,054 161
55 0,055 205
56 0,056 250
57 0,057 237
58 0,058 200
59 0,059 151
n t/s y
59 0,059 151
60 0,060 126
61 0,061 121
62 0,062 130
63 0,063 130
64 0,064 134
65 0,065 143
66 0,066 153
67 0,067 183
68 0,068 229
69 0,069 248
70 0,070 224
71 0,071 177
72 0,072 134
73 0,073 118
74 0,074 125
75 0,075 129
76 0,076 135
77 0,077 137
78 0,078 149
79 0,079 164
80 0,080 206
81 0,081 245
82 0,082 241
83 0,083 203
84 0,084 157
85 0,085 124
86 0,086 121
87 0,087 126
88 0,088 132
n t/s y
90 0,090 146
91 0,091 156
92 0,092 183
93 0,093 226
94 0,094 246
95 0,095 225
96 0,096 177
97 0,097 139
98 0,098 121
99 0,099 125
100 0,100 130
101 0,101 136
102 0,102 144
103 0,103 154
104 0,104 166
105 0,105 201
106 0,106 245
107 0,107 240
108 0,108 204
109 0,109 156
110 0,110 125
111 0,111 121
112 0,112 125
113 0,113 126
114 0,114 127
115 0,115 136
116 0,116 142
117 0,117 147
118 0,118 182
119 0,119 233
n t/s y
120 0,120 249
121 0,121 225
122 0,122 174
123 0,123 133
124 0,124 122
125 0,125 126
126 0,126 128
127 0,127 131
36/41
Mathias Kærlev Fourieranalyse 21-12-2012
Bilag 6: Data for videoanalyse
37/41
Mathias Kærlev Fourieranalyse 21-12-2012
Bilag 7: Fourieranalyse af video - Datalyse
38/41
Mathias Kærlev Fourieranalyse 21-12-2012
Bilag 8: Graf for fouriersyntese i CAS-værktøj
39/41
Mathias Kærlev Fourieranalyse 21-12-2012
Bilag 9: Programkode til fouriersyntese (Python)
Tabeldata taget fra bilag 3. Programmet gemmer en 44100Hz signed 16bit PCM WAV lyd�l
med navnet �syntese.wav�, der er 5 sekunder lang.
import wave
import math
import s t r u c t
an_tabe l = [
253 .58 , −39.17 , −29.50 , −13.64 , −21.51 , 4 . 58 , −17.54 , 0 . 24 , 1 . 39 , 2 . 55 ,
−0.35 , 1 . 11 , 1 . 75 , 2 .35
]
bn_tabel = [
0 , 13 .90 , 18 .51 , 7 . 96 , −20.34 , −3.79 , 8 . 19 , −3.44 , −0.72 , 1 . 35 , 5 . 42 ,
−7.69 , −0.53 , 3 .31
]
T = 1 / 81 .0 # 81 Hz
FRAMERATE = 44100.0 # 44100 Hz
TOTAL_TID = 5 # 5 sekunde r
def f ( x ) :
v = 0 .0
f o r k , an i n enumerate ( an_tabe l ) :
v += an * math . cos ( (2 * math . p i ) / T * k * x )
f o r k , bn i n enumerate ( bn_tabel ) :
v += bn * math . s i n ( (2 * math . p i ) / T * k * x )
re tu rn v
data = [ ]
max_value = None
min_value = None
f o r x i n x range ( i n t (FRAMERATE * TOTAL_TID) ) :
v = f ( x / FRAMERATE)
i f x == 0 :
max_value = min_value = v
e l s e :
max_value = max( v , max_value )
min_value = min ( v , min_value )
data . append ( v )
fp = wave . open ( ' s y n t e s e . wav ' , 'wb ' )
fp . se tpa rams ( ( 1 , 2 , FRAMERATE, l e n ( data ) , 'NONE ' , None ) )
f o r s i n data :
s = ( s − min_value ) / f l o a t ( max_value − min_value )
s = ( s − 0 . 5 ) * 2
fp . w r i t e f r ame s ( s t r u c t . pack ( ' h ' , i n t ( s * 0x7FFF ) ) )
fp . c l o s e ( )
40/41
Mathias Kærlev Fourieranalyse 21-12-2012
Bilag 10: Billede af udtræk fra lyddata
41/41