Tids-frekvensanalyse af musik

Størrelse: px
Starte visningen fra side:

Download "Tids-frekvensanalyse af musik"

Transkript

1 Tids-frekvensanalyse af musik Signaler og systemer Projektrapport, MATTEK4 G3-115 Matematik-Teknologi Aalborg Universitet

2 Copyright c Aalborg University 2016 Foto på forside: Lavet i Python 2.7

3 Institut for Elektroniske Systemer Institut for Matematiske Fag Matematik-Teknologi Fredrik Bajers Vej Aalborg Titel: Tids-frekvensanalyse af musik Tema: Signaler og systemer Projektperiode: Forårssemestret 2016 Projektgruppe: MATTEK4 G3-115 Deltagere: Barbara Martinovic Casper B. Andersen Julius Garde Morten Ø. Nielsen Sanne D. Nielsen Vejledere: Peter Koch Morten Grud Rasmussen Oplagstal: 6 Sidetal ekskl. bilag: 109 Afleveringsdato: Abstract: Der er lavet tids-frekvensanalyse af lydsignaler, vha. DFT i en STFT. Grundet Heisenbergs usikkerhedsrelation kan der ikke opnås arbitrær god opløsning i både tid og frekvens. I STFT en benyttes en vinduesstørrelse på hhv og 2 9 for lydsignaler optaget med en samplingsfrekvens på 44,1 khz og downsamplet til 2,205 khz. Disse vinduesstørrelser giver det bedste forhold mellem tids- og frekvensopløsning mhp. tonebestemmelse af lydsignaler. Der er lavet signalmodifikation i form af filtrering af additiv støj, hvor der er forsøgt at konstruere et multi-båndpasfilter vha. vinduesmetoden med et Kaiser-vindue og Parks-McClellan-algoritmen. Det er konkluderet, at vinduesmetoden med et Kaiser-vindue er bedst. Det er lykkedes at opnå en præcision på ±20% af tonebestemmelsen for signaler uden støj, og ±50% for støjforurenede signaler. Rapportens indhold er frit tilgængeligt, men offentliggørelse (med kildeangivelse) må kun ske efter aftale med forfatterne.

4

5 Forord Dette projekt er udarbejdet af studerende på 4. semester på bacheloruddannelsen Matematik-Teknologi ved Institut for Matematiske Fag på Aalborg Universitet. I rapporten benyttes IEEE-metoden til henvisning af kilder. De nævnte udviklede programmer i rapporten er udarbejdet i sproget Python 2.7. Programmerne beskrevet i rapporten findes på den vedlagte USB eller i zip-fil i Bilag A. Der benyttes i som betegnelse for den imaginære enhed, samt benyttes betegnelsen følge om {x n } n Z. Aalborg Universitet, 25. Maj 2016 Barbara Martinovic <bmarti14@student.aau.dk> Casper B. Andersen <cban12@student.aau.dk> Julius Garde <jgarde14@student.aau.dk> Morten Ø. Nielsen <mn14@student.aau.dk> Sanne D. Nielsen <saniel14@student.aau.dk> v

6

7 Indhold Forord v Indledning 1 Problemformulering 3 Musikteori 5 1 Diskret-tids systemer Analog/Digital-konvertering Sampling Kvantisering Aliasing Systembeskrivelse Input Kravspecifikationer for input Applikation Kravspecifikationer for applikationen Output Kravspecifikationer for output Endelig systembeskrivelse Matematiske redskaber L p - og l p -rum Fourier-analyse i kontinuert tid Fourier-rækker Konvergens af Fourier-rækker Fourier-transformationen vii

8 viii Indhold 5 Diskrete Fourier-transformationer Diskret-tids Fourier-transformation Diskret Fourier-tranfsormation Fast Fourier-transformation Korttids-Fourier-Transformation Diskret-tids STFT en Heisenbergs usikkerhedsrelation Filterteori Grundlæggende begreber Ideelle filtre Design af filtre Vinduesmetoden Parks-McClellan-algoritmen Implementering Indhent data Filter STFT Spektrogram Tonebestemmelse Test af modul Databehandling Databehandling og resultater Spektrogrammer Tonebestemmelse Downsampling af signal Tonebestemmelse efter downsampling Diskussion 105 Konklusion 109 Litteratur 111 A USB/zip-fil 115 B Forsøgsbeskrivelse 117 B.1 Forsøg i lyddødt rum B.1.1 Udstyr

9 Indhold ix B.1.2 Opstilling B.1.3 Udførelse C Specifikationer for anvendt udstyr 121 C.1 Lyddøde rum C.2 Mikrofon C.3 Højttaler C.4 Lydkort D Flowchart 123 E Filtre 125 E.1 Parks-McClellan E.2 Filter vha. Kaiser-vindue med samplingsfrekvens på 44,1 khz E.3 Filter vha. Kaiser-vindue med samplingsfrekvens på 2205 Hz F Spektrogrammer 131 F.1 Vindue-overlap F.2 Vinduesfunktioner F.3 Vinduesstørrelser F.4 Frekvensrespons for kromatisk skala med additiv støj F.5 Frekvensrespons for kromatisk skala med sinus-støj F.6 Vinduesstørrelser for downsampling

10

11 ˇ ˇ ˇ Indledning En af glæderne som musiker er ikke blot at spille og komponere musik, men også at dele det med andre. De fleste musikere kan læse og skrive noder selv, men nogle gange kan det, at stoppe op midt i sin kreative proces, for at nedskrive noderne gøre mere skade end gavn. Andre gange optager man musikken, for så senere at aflytte tonerne og nedskrive noderne. Spørgsmålet er; findes der et bedre alternativ? Er det muligt at benytte en computer til at nedskrive noder for én? De fleste har nok set et nodeark (se Figur 1), der er kendetegnet ved fem linjer, hvorpå der er placeret noder og andre symboler, der indikerer, hvilke toner, der spilles, og længden af disse. Hver tone har sin egen frekvens, der angives i Hertz [Hz el. s 1 ]. Det vil sige, at et nodeark kan betragtes som en symbolsk repræsentation af et tids-frekvens diagram, et såkaldt spektrogram [11]. På Figur 1 er der indlagt en tids- og frekvensakse for at illustrere sammenhængen mellem nodeark og et spektrogram. Frekvens [Hz] G ˇŘˇ ˇ ˇÐˇ 7 Tid [s] 3 ˇŘˇ ˇ ˇ Figur 1: Eksempel på et nodeark m. indtegnet tids- og frekvensakser. Hvad kan denne symbolske fortolkning af et spektrogram anvendes til i sammenhæng med ovenstående problemstilling? Hvis der er mulighed for at kunne udføre analyse af et signals frekvenser til et givet tidspunkt, vil et spektrogram kunne fremstilles. Dvs. at hvis man kan optage det stykke musik, der ønskes nedskrevet til noder, og derefter lave en tids-frekvensanalyse af optagelsen, så vil det være muligt at kunne nedskrive noderne ud fra et spektrogram. En computer vil evt. selv kunne omskrive spektrogrammet til noder. 1

12 2 Indledning Umiddelbart fremstår det som om, at dette er et forholdsvis simpelt problem, men der er flere aspekter, der har indflydelse på og kan vanskeliggøre tidsfrekvensanalysen. For det første er der de såkaldte overtoner. En overtone er et multiplum af en tones grundfrekvens og er med til at give tonen sin klang. F.eks. har kammertonen (A 4 ) frekvensen 440 Hz, og overtonerne er således 880 Hz, 1320 Hz, 1760 Hz osv. Et instruments lyd eller klang afhænger bl.a. af, hvor meget overtonerne kommer til udtryk i lyden [27, s. 114]. I forbindelse med tids-frekvensanalyse kan overtonerne give problemer, da én tone vil give flere frekvenser i tids-frekvens spektrogrammet. Dette bliver især et problem, når flere toner spilles samtidig, f.eks. i en akkord. En musiker spiller sjældent enkelte toner alene, der vil som regel være en vekslen mellem akkorder og enkelte eller flere toner. Foruden overtoner, kan støj give problemer. Støj vil gøre det svært at fortolke et spektrogram, da det kan utydeliggøre, hvilke frekvenser, der er i spil (ordspil er tilsigtet). Det er langt fra alle, der har et lyddødt rum eller perfekt udstyr til optagelsen. Der vil altid være én eller form for støj, når man f.eks. optager et stykke musik. To eksempler på støj, er additiv støj og foldningsstøj. Additiv støj kunne f.eks. være et andet instrument, der spiller i baggrunden eller en anden form for lydgivende kilde. Hvis optagelsen er foregået i f.eks. en garage, så vil lydsignalet fra instrumentet blive reflekteret og give en form for ekko, dette er foldningsstøj. Begge eksempler kan også forekomme samtidig, f.eks. hvis man har optaget et symfoniorkester spille i en parkeringskælder og ønsker at bestemme, hvilke toner en bestemt violinist spiller, så er de resterende instrumenter additiv støj, og det hele bliver reflekteret.

13 Problemformulering Hvorledes kan tids-frekvensanalyse benyttes til bestemmelse af toner i et stykke optaget musik? Hvordan kan processen/opstillingen - fra dataopsamling til endelig behandling af lydsignalet - beskrives som et diskret-tids system, og hvilke specifikationer skal elementerne i systemet have? Hvilke matematiske værktøjer er tilstrækkelige for, at kunne foretage tidsfrekvensanalyse af lydsignalet? Hvor effektivt kan additiv støj minimeres i et signal med henblik på tidsfrekvensanalyse, og hvilke parametre har indflydelse herpå? Projektafgrænsning: I første omgang afgrænses projektet til signalanalyse og -behandling af toner i et lyddødt rum, med og uden forurening af additiv støj. Med bestemmelse af toner menes, at der ønskes at bestemme toner i en kort, simpel melodi spillet på en akustisk guitar. Fokus i projektet vil være signalanalyse og -behandling af lyd frem for symbolbehandling. Vi vil således blot præsentere resultaterne (de fundne toner) grafisk i form af et spektrogram og en tabel med tonerne. Projektet afgrænses til, at der arbejdes i ikke-sand tid. 3

14

15 Musikteori I dette kapitel introduceres grundlæggende begreber og teori inden for musik, der er nødvendig for forståelsen af rapporten. Musik består af toner, som er tilknyttet specifikke frekvenser. Toner angives ved noder i nodeark, hvor den vertikale position af noden angiver frekvens. Man skelner mellem 12 forskellige ordnede toner, hvorefter frekvensen er fordoblet, og følgen gentages (se Tabel 1). To toner f 1 og f 2, siges at være oktavækvivalente, hvis følgende forhold om frekvenserne gør sig gældende: f 2 = 2 n f 1, hvor n Z. I Tabel 1 er tonerne A med frekvens hhv. 220,00 og 440,00 oktavækvivalente. Dette skyldes, at de klinger ens for øret, den ene vil dog lyde højere end den anden. Tonesystemet bygger altså på en logaritmisk skala, og den indbyrdes afstand mellem to naboliggende toner er således 12 2 [27, s. 45, 47]. Et implementeret redskab til omregning fra frekvens til tone findes i freqs_n_pitches.py i Bilag A. TONE A A B C C D D E F F G G A FREQ Tabel 1: Toner angivet i frekvens afrundet til nærmeste heltal. Afstanden mellem to toner kaldes intervallet mellem disse, og skal ikke skal forveksles med det matematiske udtryk. En oktav er det specifikke interval mellem to toner, hvor frekvensen fordobles. Oktaver markerer altså, at følgen af toner starter forfra. For entydigt at angive toner, introduceres følgende notation: A 0 defineres som tonen fire oktaver under kammertonen 440 Hz, og A n angiver således den n te oktav af A over A 0. For Tabel 1 vil intervallet således strække sig fra A 3 til A 4. Når en tone slås an på strengeinstrumenter opstår et fænomen, hvor overtoner klinger sammen med den anslåede tone, også kaldet grundfrekvensen, typisk af lavere amplitude. Overtoner er heltals-multiplum af grundfrekvensen, f.eks vil tonen A 2 = 110 Hz klinge sammen med overtonerne A 3 = 220 Hz, E 4 = 330 Hz, A 4 = 440 Hz (se Figur 2) [27, s. 114]. Dette komplicerer et givent lydsignal og 5

16 6 Musikteori derved også bestemmelsen af den anslåede tone. Hvis der begrænses til én lydgiver, blandes overtonerne ikke sammen, og man kan således med rimelighed antage den laveste frekvens over en vis amplitude-tærskel som grundfrekvensen. Figur 2: Fremkomsten af overtoner ses som linjer over den anslåede tone ved 392,00 Hz (tonen G 4 ).

17 Kapitel 1 Diskret-tids systemer Når der bliver spillet på en guitar, er det et akustisk signal, der udsendes i form af lyd. Når denne optages gennem en mikrofon, omdannes dette til et elektrisk signal, som er kontinuert. I dette projekt ønskes dette signal behandlet digitalt på en computer. Det er derfor nødvendigt at konvertere signalet fra analog til digital, således dette kan lade sig gøre. Beskrivelse af selve systemet findes under Kapitel 2. I dette kapitel gives en kort introduktion til forskellen mellem analoge og digitale signaler, samt konverteringen fra analog til digital. Kapitlet er baseret på [16, Kap. 4: s og , Kap. 6: s ]. Guitar Mic x(t) S/H ADC x[n] Figur 1.1: Illustration af det akustiske signal, der bliver opfanget af mikrofonen, hvorefter det elektriske signal, x(t), bliver sendt i gennem et sample/hold-kredsløb (S/H). Herefter sendes signalet i gennem en analog/digital-converter (ADC), således det bliver konverteret til et digitalt signal, x[n], der kan viderebehandles på en computer. Et analogt signal er et signal, der er kontinuert både i tid og amplitude. På Figur 1.2a ses et eksempel på et kontinuert signal. For kontinuerte signaler er det muligt, at bestemme værdier til enhver tid for signalet. Et digitalt signal er, i modsætning til det analoge, diskret i både tid og amplitude. Der er derfor en begrænsning af data i et digitalt signal ift. det analoge signal. Der kendes således kun værdier til bestemte angivne tider i et digitalt signal. På Figur 1.2b ses den digitale repræsentation af det kontinuerte signal x(t). 7

18 8 Kapitel 1. Diskret-tids systemer x(t) x[n] S/H og ADC (a) t (b) n Figur 1.2: (a) Det analoge signal, x(t). (b) Det digitale signal, x[n]. 1.1 Analog/Digital-konvertering Når et analogt signal skal konverteres til digital, gøres det ved at sample signalet og derefter anvende en analog/digital-converter (ADC) på det samplede signal. Det analoge signal samples først for at diskretisere det i tid, dog gøres dette i realiteten ikke kun ved sampling, men ved at holde de samplede værdier. I resten af dette afsnit vil dette blive betragtet som en operation, der sker i ADC. Herefter kvantiseres signalet for også at få det diskretiseret i amplitude. Dette gøres ved at repræsentere amplitudens værdier vha. det endelige antal bits, der er til rådighed, hvilket giver en approksimation af signalets amplitudeværdier. Opløsningen af amplituden er således afhængig af antallet af bits. På Figur 1.3 ses en illustration af konverteringen fra analog til digital, hvis elementer bliver uddybet i det følgende. Sampling Analog/Digital-konvertering s(t) x(t) x Kvantisering x s(t) x[n] = ˆx s[nt ] Figur 1.3: Illustration af sampling og analog/digital-konverteringen af det analoge signal Sampling Sampling er, som nævnt, en nødvendighed for at kunne anvende ADC. I kontinuert tid kan sampling ses som et impulstog, der bliver multipliceret med det kontinuerte signal. På Figur 1.3 ses et blokdiagram af en analog/digital-konverter, hvor det kontinuerte signal x(t), sendes ind og multipliceres med impulstoget s(t) (se (1.1)). Produktet heraf, x s (t), har til tiden t = nt n Z samme værdi som x(t), ellers er den nul for t nt og er derfor stadig et kontinuert signal. På Figur 1.4a ses en grafisk repræsentation af det kontinuerte signal x(t), på Figur 1.4b ses impulstoget

19 1.1. Analog/Digital-konvertering 9 x(t) x s(nt ) s(t) (a) t x[n] (b) n n (c) Figur 1.4: (a) Det analoge signal, x(t). (b) Impulstog s(t). (c) Det digitale signal, x[n]. s(t), og på Figur 1.4c ses den diskrete repræsentation af signalet x[n]. Impulstoget, s(t), er givet som: s(t) = n= δ(t nt ) (1.1) hvor T er impulstogets periode, som er illustreret på Figur 1.4b, og δ(t) er Dirac deltafunktionen, der defineres nedenfor. Ydermere defineres Kronecker delta-funktionen, som anvendes senere. Definition 1.1 (Delta-funktioner) Kontinuert: Dirac delta-funktion, δ : R R, har følgende egenskaber: δ(t) dt = 1 δ(t τ)f(t) dt = f(τ) f(t)δ(t) = f(0)δ(t) Definition er baseret på [24, s ]. (1.2) Diskret: Kronecker delta-funktion er defineret på følgende vis: δ n = { 1, n = 0; 0, n 0 n Z (1.3) Definition er baseret på [24, s ].

20 10 Kapitel 1. Diskret-tids systemer Der benyttes følgende notation for det diskrete signal: x[n] = ˆx s [nt ] = ˆx c (t), n Z t=nt hvor x[n] er det kvantiserede signal, x s det samplede signal, n er samplingsnummeret og T er samplingsperioden [s]. Samplingsfrekvensen f s, er givet ved 1/T [Hz]. Der findes også en anden variant af samplingsfrekvensen: vinkelsamplingsfrekvensen ω s = 2π/T [rad/s]. Produktet x s (t), der er multiplikationen mellem x(t) og s(t), er: x s (t) = x(t)s(t) = x(t) n= δ(t nt ) = n= Vha. Dirac delta-funktionens egenskaber, kan den omskrives til: x s (t) = n= x(nt )δ(t nt ) x(t)δ(t nt ) Det er vigtigt, at der bliver samplet med en tilstrækkelig høj samplingsfrekvens, således der ikke opstår aliasing af signalet (se Afsnit 1.1.3). Derfor præsenteres følgende sætning. Sætning 1.1 (Nyquist-Shannons samplingssætning) Lad x(t) være et båndbegrænset signal med: X c (ω) = 0, ω ω N (1.4) hvor ω N er den højeste vinkelfrekvens i signalet, og X c (ω) er den Fouriertransformerede (se Afsnit 4.2). Da gælder, at x(t) er entydigt bestemt ved dets samples x[n] = x(nt ), n Z, hvis: hvor ω s = 2π T er vinkelsamplingsfrekvensen. ω s > 2 ω N (1.5) Hermed kan det konkluderes, at såfremt der ønskes at diskretisere et analogt signal uden tab af information, skal signalet samples med en samplingsfrekvens, der er større end det dobbelte af den højeste forekommende frekvens i signalet. Den højeste frekvens i signalet ω N, betegnes også som båndbredden, samt Nyquist-frekvensen. Nyquist-raten er 2 ω N og er den, der skal overholdes for der ikke opstår aliasing.

21 1.1. Analog/Digital-konvertering Kvantisering Som tidligere nævnt, bliver det samplede signal kvantiseret i ADC en. Ved kvantiseringen bliver det samplede signals amplitude - som kan antage enhver værdi på den reelle akse - diskretiseret, således det får en endelig præcision, og output-signalet er nu blevet digitalt. Denne kvantisering er nødvendig for at kunne repræsentere signalet på en computer, der kun har en endelig præcision. Præcisionen afhænger af antallet af bit, der anvendes ved kvantiseringen. Disse bit er binære, og antager således værdierne 0 eller 1. Enhver værdi er derved repræsenteret med bit og kan antage én ud af 2 k værdier, hvor k angiver antallet [ af bit. Hvis ] der ønskes at antage værdier fra 0 og op, bliver intervallet for værdierne 0, 2 k 1 for heltal. Det er også muligt at have et interval, der strækker sig over både negative og positive værdier. I dette tilfælde benyttes den første bit til at angive fortegn, [ hvor 0 angiver] positive tal og 1 angiver negative tal, og intervallet bliver således 2 k 1, 2 k 1 1. Denne repræsentation kaldes 2 s komplement. Hvis der derimod anvendes sign and magnitude som repræsentation, vil der være to værdier for [ nul, både en positiv] og en negativ, og derved vil intervallet i stedet se således ud (2 k 1 1), 2 k 1 1. Som regel ønskes der ikke at arbejde i heltal, men derimod i floating point. Dog arbejder mange mikro-processorer ikke i floating point, men derimod i fixed point, som også er decimaltal. Den har dog, i modsætning til floating point, fast komma. Her antages værdier i intervallet [ 1, 1 ]. er et forhold mellem dynamik-området, X m, og antallet af bits: = 2X m 2 k = X m 2 k 1 (1.6) En fixed point-værdi kan udregnes på følgende måde: k 1 X = x 0 + x l 2 l (1.7) l=1 Kvantisering kan betragtes som en afbildning fra de reelle { tal til en diskret mængde: Q k : R I k, hvor k er antal bit i kvantiseringen og I k = x Z [ ]} x 2 k 1, 2 k 1 1 er intervallet, der afbilledes ind i. Kvantiseringen kan betragtes som en stykkevis konstant funktion, der virker på amplitude-variablen x [18, s. 4]. Der benyttes følgende notation om kvantiseringen af et samplet signal: x[n] = ˆx s [nt ] = Q k (x s (nt )) (1.8) hvor x[n] er det kvantiserede signal, og x s er det samplede signal. På Figur 1.6 ses kvantiserings-funktionen Q k, illustreret som en trappe med kvantiserings-niveauer af længden. Dens trin er typisk ækvidistante, og antallet af disse afhænger generelt af 2 k. Det medfører, at der haves et lige antal niveauer, og hvis

22 12 Kapitel 1. Diskret-tids systemer MSB LSB Sign Fast komma (a) x 0 x 1 x 2 x 3 x k 2 x k 1 Fast komma (b) Figur 1.5: Illustration af fixed point, hvor første bit er et sign bit.(a) Placering af MSB (Most Significant Bit) og LSB (Least Significant Bit). (b) Fordeling af x l. det ønskes at inkludere 0-amplituden medfører dette, at fordelingen af positive og negative niveauer bliver ulige fordelt. ˆx = Q(x) x X m Figur 1.6: Kvantiseringen kan betragtes som en stykkevis konstant funktion, der virker på amplitude-variablen x. Kvantiseringsoperationen af en amplitude til en k bit repræsentation kan blive implementeret ved afrunding eller trunkering, i begge tilfælde er kvantiseringen en ikkelineær, hukommelsesløs operation [16, s. 434].

23 1.1. Analog/Digital-konvertering 13 Det kan vises eksperimentelt, at for stigende kompliceret signaler falder korrelationen mellem signal og fejl, og fejlen induceret af kvantisering kan således betragtes som hvidstøj. [16, s. 456] Fejl-leddet for en given sampling er givet som: e Q [n] = x[n] x s [nt ] (1.9) hvor x[n] er det kvantiserede signal, og x s [nt ] er den sande samplingsværdi. Pr. konstruktion af kvantiserings-funktionen gælder: e Q [n] /2, som er den største afrunding, og ligeledes ved trunkering gælder: e Q [n] <. Fejlen er altså domineret af en parameter, og fejlen ved kvantisering kan således gøres arbitrær lille ved at lade bit-opløsningen vokse (se Figur 1.7). Figur 1.7: Kvantiseret sinus signal ved hhv. 3-bit og 16-bit [4] Aliasing Nyquist-Shannons samplingssætning (se Sætning 1.1) garanterer, at et samplet signal kan rekonstrueres, så længe samplingsfrekvensen er større end Nyquist-raten. Hvis samplingsfrekvensen derimod ikke er tilstrækkelig stor ift. Nyquist-raten, opstår fænomenet aliasing. Aliasing forhindrer genskabelsen af det oprindelige signal, da høje frekvenser bliver maskeret som lavere frekvenser, når der opstår aliasing. Hvis man ser på signalet i frekvensdomænet, ses aliasing som at dele af de periodiske gentagelser af signalet overlapper hinanden (se Figur 1.8). Denne overlapning medfører, at frekvenser bliver lagt sammen, som fører til fejlagtig information om amplituden i intervallet. [3, s ] Aliasing kan undgås ved at overholde Nyquist-Shannons samplingssætning. Det kan gøres ved at begrænse de højeste frekvenser i signalet, tilpasse samplingsfrekvensen eller ved en kombination af disse. Et ideelt lavpasfilter (se Afsnit 7.2) vil kunne eliminere aliasing, givet tilstrækkelig samplingsfrekvens. Et eksempel på aliasing, grundet for lav samplingsfrekvens, ses på Figur 1.9.

24 14 Kapitel 1. Diskret-tids systemer X(w) f s I et kontinuert signal påvirket af ukendt støj, er det ikke muligt at bestemme den højeste frekvens i signalet. Dette medfører, at der ikke kan bestemmes en passende samplingsfrekvens. I dette tilfælde vil et lavpasfilter kunne benyttes til at reducere bidraget fra frekvenser over Nyquists-raten, et såkaldt anti aliasing-filter, således aliasing minimeres. Det kan i praksis også være fordelagtigt at minimere samplingsfrekvensen, da dette sætter mindre krav til det anvendte hardware, samt reducerer beregningskompleksiteten i en eventuelt efterfølgende databehandling. Et anti aliasing-filter er således ofte gunstigt. I projektet er der valgt at sample med en fref Figur 1.8: Illustration af aliasing, hvor det ses, at de periodiske gentagelser overlapper i frekvensdomænet. kvens på 44,1kHz (se Afsnit 2), som er standarden for lydoptagelser på CD er [26]. Nyquist-frekvensen i dette tilfælde er således 22,05kHz, som inkluderer det hørbare lydspektrum [27, s. 4]. For at undgå aliasing benyttes inden sampling et anti aliasingfilter, som er implementeret i det anvendte lydkort (se Afsnit 2.1.1). Der er blevet Figur 1.9: Sampling af den blå kurve med for lav samplingsfrekvens resulterer i aliasing. Dette medfører fejlfortolkning af kurven, der resulterer i den røde kurve. forklaret, at når der bliver spillet på en guitar, udsendes et akustisk signal, som når det opfanges af en mikrofon, omdannes det til et elektrisk signal. Der er i dette kapitel forklaret, at vi kan konvertere signalet til et digital signal vha. sampling og ADC. Disse metoder medfører nogle fejl, som beskrevet. Disse fejl vil blive vurderet og opstilles specifikationer for i næste kapitel, således de bliver taget højde for ift. systemet.

25 Kapitel 2 Systembeskrivelse Som beskrevet i indledningen og problemformuleringen, er systemet, der arbejdes med i projektet, et system, der skal kunne lave en tids-frekvensanalyse af indspillede lydoptagelser. I dette kapitel vil systemmet blive beskrevet, og der vil blive opstillet kravspecifikationer for systemets del-elementer. Kapitlet vil danne grundlag for det øvrige i rapporten. Systemet skal overordnet opbygges på en sådan måde, at det får et input, som bliver behandlet i applikationen, der giver et output i form af en grafisk repræsentation. Dette er illustreret på Figur 2.1. I det følgende vil der blive uddybet, hvad hver af delene i systemet består af. PC Input Applikation Output Figur 2.1: Overordnet systemdiagram 2.1 Input Inputsignalet er et akustisk signal, der bliver spillet på en guitar. Dette akustiske signal bliver opfanget af en mikrofon, der omdanner signalet til et analogt signal. Dette analoge signal bliver i lydkortet konverteret til et digitalt signal via sampling og ADC i lydkortet. Den specifikke opsætning er beskrevet i forsøgsbeskrivelsen (se Bilag B). Systemdiagrammet for inputtet er illustreret på Figur

26 16 Kapitel 2. Systembeskrivelse Guitar Mic Lydkort Applikation S/H A/Dconverter Figur 2.2: Systemdiagram af inputtet Kravspecifikationer for input For at inputtet skal kunne accepteres, skal det opfylde følgende kravspecifikationer. Lyddødt rum For at inputtet til test ikke bliver forurenet af foldningsstøj, bliver inputtet optaget i et lyddødt rum. Da projektets fokus ligger på filtrering af additiv støj, benyttes det lyddøde rum for, at få det mest rene data indsamlet. Et yderligere argument er, at såfremt en applikation ikke fungerer under kliniske forhold, fungerer denne næppe under ikke-kliniske forhold. Specifikationerne på det tilgængelige lyddøde rum er angivet i Bilag C.1. Mikrofon Til at optage det akustiske signal i det lyddøde rum, anvendes en mikrofon med følgende krav: Ækvivalent støjniveau under 20 db-a (For yderligere information [10]). Frekvensrespons har DC-forstærkning i det hørebare område, fra Hz. Lydkort Det ønskes, at det anvendte lydkort kan sample med 44, 1kHz, der benyttes som samplingsfrekvens i projektet, som opfylder Nyquist-Shannons samplingssætning (sætning 1.1) for det hørbare frekvensspektrum. Det vurderes, at en tilstrækkelig bitopløsning til kvantisering vil være 16-bit, da det er det, der anvendes til musikindspilning [12]. 2.2 Applikation Efter inputtet er blevet optaget, behandles det i applikationen, hvor det først lagres som en.wav-fil. Herefter bliver signalet viderebehandlet i applikationen, hvor det bliver filtreret, således additiv støj i signalet reduceres. Når signalet er filtreret, ønskes

27 2.2. Applikation 17 det at lave en tid-frekvens analyse. Hertil anvendes en korttids Fourier-transform (se Kapitel 5) for at transformere signalet fra tidsdomænet over i frekvensdomænet. Til sidst dannes spektrogrammer af signalet, som bruges til at bestemme toner i signalet, hvilket giver outputtet. På Figur 2.3 ses systemdiagrammet for applikationen. Input Applikation Output Lagring Filter Fourier Spektrogram Figur 2.3: Systembeskrivelse af applikationen Kravspecifikationer for applikationen For at applikationen er acceptabel, skal den opfylde følgende kravspecifikationer. Lagring Hvor meget lagerplads, der er nødvendig på computeren, afhænger af samplingsfrekvensen og længden af input signalet. På følgende vis udregnes den forventede filstørrelsen for 60 s: bit f s antal lydspor antal sekunder bit/byte = = 5, 292 MB Vi forventer lydsekvenser af maks. 60 s, hvilket vil sige, at der skal bruges op til cs. 5, 3 MB. Filter Det ønskes at filteret skal opfylde følgende krav: Maks. dæmpning 1 db i pasbånd Min. dæmpning 20 db i stopbånd Lineær fase Der er ikke valgt nogle yderligere krav mht. filterets type og form, ligesom der ikke er angivet krav om transitionsbåndbredde og knækfrekvenser. Disse overvejelser behandles i Afsnit 8.2. Der ønskes lineær fase for at undgå forvrængning af lydsignalet. Filteres orden vælges, således det opfylder ovenstående specifikationer, dog er ordenens størrelse ikke af stor betydning, da der ikke arbejdes i sand tid.

28 18 Kapitel 2. Systembeskrivelse Fourier-transformation og spektrogram Den anvende Fourier-transformation skal være en korttids Fourier-transformation for at opnå en tids-frekvens fortolkning af signalet. Der skal vælges passende forhold mellem tids- og frekvens repræsentation (se Heisenbergs usikkerhedsrelation 6.1), således spektrogrammet bliver let fortolkeligt. Da der ikke arbejdes i sand tid, har beregningskompleksiteten ikke stor betydning, dog ønskes om muligt en lille beregningskompleksitet grundet den høje samplingsfrekvens. 2.3 Output Outputtet fra applikationen er en grafisk repræsentation af melodien spillet på guitaren, i form af et spektrogram og en tabel over de toner, der er blevet spillet (se Figur 2.4). Applikation Grafisk repræsentation Figur 2.4: Systembeskrivelse af output Kravspecifikationer for output Der ønskes, at tone-bestemmelsen højst har en procentafvigelse på ±20 % af de spillede toner. Hvis f.eks. et stykke musik i alt består af 10 toner, så må tonebestemmelsen højst afvige med ±2 toner. 2.4 Endelig systembeskrivelse På Figur 2.5 ses den endelige systembeskrivelse for systemet, der indeholder alle elementer - fra mikrofonen, der optager lydsignalet, til det bliver behandlet gennem de forskellige dele af applikationen, til den grafiske repræsentation kommer ud af systemet som output. Lydkort Applikation S/H og Mic Lagring Filter Fourier ADC Spektrogram Grafisk repræsentation Figur 2.5: Totale systembeskrivelse.

29 2.4. Endelig systembeskrivelse 19 Der er nu nået frem til, hvad det er for et system, der skal arbejdes med, hvordan det skal opbygges og hvilke specifikationer, det skal opfylde. I det følgende afsnit vil de matematiske redskaber, der er nødvendige for teorien til de forskellige dele applikationen bygger på, blive præsenteret.

30

31 Kapitel 3 Matematiske redskaber I dette afsnit vil der blive givet en præsentation af nogle af de vigtigste definitioner og sætninger, som er nødvendige for forståelsen af de efterfølgende afsnit. Der gives ikke en detaljeret gennemgang, da afsnittet kun er ment som en introduktion af de nødvendige resultater, der er relevante for projektet. Først præsenteres en operator, som vil blive anvendt hyppigt i projektet, både i den kontinuerte og i den diskrete udgave. Definition 3.1 (Foldning) Kontinuert: Lad f, g være to funktioner defineret på R. Så er foldningen af f og g defineret som følgende: (f g) (t) = f (τ) g (t τ) dτ = f (τ) g (t τ) dτ, R forudsat integralet konvergerer. Foldning er en operationen, der altså giver en ny funktion på R, givet to funktioner. Diskret: Lad f, g være følger defineret på Z. Så er foldningen af f og g defineret som: (f g) [n] = f [m] g [n m], m= forudsat summen konvergerer. Definitionen er baseret på en kombination af [11, s. 8] og [16, s. 26]. Ovenstående definition kan udvides til at gælde for funktioner defineret på R d og Z d, men da det kun er det endimensionelle tilfælde, der er relevant for projektet, begrænses der til d = 1. Som det fremgår af definitionen, så er foldning en operation, som tager to funktioner og afbilder dem over i én funktion, men det er ikke blevet 21

32 22 Kapitel 3. Matematiske redskaber specificeret, hvor de antager værdier, kun hvor funktionerne er defineret. I projektet studeres bestemte funktioner, nemlig funktioner, der ligger i de såkaldte L p -rum. I det følgende gives en introduktion til disse L p -rum, samt definition af indre produkt og norm. 3.1 L p - og l p -rum Følgende er baseret på en kombination af [11, s. 3-4], [24, s ] og [23, Sek. 1 og 2]. Først præsenteres definitionen af L p -rummet samt L p -normen, da L p -rummene er defineret ud fra denne norm. Definition 3.2 Lad B R n være en mængde, og 1 p <. Så er L p -normen defineret som: ( f p = B ) 1 f(t) p p dt hvor integralet er et såkaldt Lebesgue-integral. Det komplekse L p -rum, også kaldet Lebesgue-rum, defineres som: { } L p (B) := f : f p <. Bemærk, at såfremt der skrives L p, menes L p (R). Rapporten vil ikke uddybe Lebesgue-integraler yderligere, da dette ligger uden for projektets fokus. En kort bemærkning skal dog falde til Definition 3.2: det komplekse L p -rum er fuldstændigt, og da det er et normeret vektorrum, kaldes det også for et Banachrum. Som udgangspunkt er man hovedsagligt interesseret i rummene L 1 og L 2. Specielt L 2, da dette ikke blot er en Banachrum, men et Hilbertrum. Et Hilbertrum er et fuldstændigt normeret vektorrum, hvis norm er induceret af et indre produkt. Det indre produkt for L 2 er defineret som følgende. Definition 3.3 Lad f, g L 2 (B), så har L 2 -rummet følgende indre produkt: f, g 2 = f(t)g(t) dt B Det ses nu, at det indre produkt er kompatibelt med L 2 -normen, da der gælder: ( ) f 2 = f, f = f(t) 2 2 dt B

33 3.1. L p - og l p -rum 23 Tilsvarende findes der diskrete udgaver af L p -rummene. Disse er følgerummene, l p - rummene. Definition 3.4 Lad B Z n være en mængde og p 1. Så er følgerummet l p defineret som: l p (B) := hvor normen er givet som: { } x = {x[n]} n B : x p <, x p = ( Tilfældet, hvor p =, er l givet som: n B x[n] p ) 1 p l (B) := { x = {x[n]} n B : x < }, hvor normen er givet som: x = sup x[n] n B Som udgangspunkt er man hovedsagligt interesseret i rummene l 1, l 2 og l. Især er l 2 interessant, da dette er et Hilbertrum ligesom L 2. Definition 3.5 Lad x, y l 2 (B), så har l 2 -rummet følgende indreprodukt: x, y 2 = n B x[n]y[n] I dette afsnit er de indledende matematiske redskaber blevet præsenteret, som vil blive anvendt i de følgende afsnit. Først undersøges Fourier-rækkerne for at lede op til Fourier-transformationen. Dernæst præsenteres den tids-diskrete- og diskrete- Fourier-transformation, og til sidst præsenteres Korttids-Fourier-transformationen, der er relevant for den senere tids-frekvensanalyse af et stykke musik.

34

35 Kapitel 4 Fourier-analyse i kontinuert tid Efter de nødvendige matematiske redskaber blev gennemgået i det forrige kapitel, vil der i dette afsnit blive forklaret, hvorledes visse funktioner kan skrives som en uendelig række af trigonometriske funktioner. Det ønskes i projektet at undersøge lydsignaler, og herved kunne adskille de enkelte frekvenser fra hinanden i signalet. Dette kapitel vil omhandle Fourier-analyse i kontinuert tid og ligger til grund for den diskrete Fourier-analyse, som anvendes i applikationen. Først præsenteres Fourierrækker som en introduktion til Fourier-transformationen. 4.1 Fourier-rækker Det ønskes at skrive en given 2π-periodisk funktion f, som en konvergent trigonometrisk række: c n e inθ. (4.1) Hvis denne konvergerer mod f, og c n er på formen: c n = 1 π f(θ) e inθ dθ, n N (4.2) 2π π da kaldes rækken (4.1) Fourier-rækken for f, og c n den tilhørende Fourier-koefficient. For udledning af Fourier-koefficienten (4.2), se [9, s ]. Fourier-rækken er en trigonometrisk række, men det modsatte gør sig ikke nødvendigvis gældende. Det er nemlig ikke indlysende, at den trigonometriske række konvergerer og i givet fald konvergerer mod f. [23, s. 33] Vi definerer Fourier-rækker som følger: 25

36 26 Kapitel 4. Fourier-analyse i kontinuert tid Definition 4.1 (Fourier-rækker) Lad f : R C være en 2π-periodisk funktion. Da kaldes: f(θ) n= c n e inθ (4.3) Fourier-rækken for f med tilhørende Fourier-koefficient: c n = 1 π f(θ)e inθ dθ. (4.4) 2π π [20, s ] Bemærkning til Definition 4.1: Der benyttes om Fourier-rækken, da denne kun er lig f i passende forstand under betingelser af f, som ikke præsenteres her. Der ønskes dog at vise én type af konvergens for familien af stykkevis kontinuerte funktioner: Konvergens af Fourier-rækker Det ønskes nu at undersøge, hvorledes Fourier-rækken konvergerer mod f(θ). Det begrænses til at give tilstrækkelige kriterier for, hvornår Fourier-rækken for en stykkevis kontinuert funktion konvergerer punktvis. Inden konvergens kan vises, kræves følgende indledende resultater og definitioner [20, s. 16]: Definition 4.2 (Stykkevis kontinuerte funktioner) En funktion f, defineret på et interval I, kaldes stykkevis kontinuert, hvis: (i) f er defineret og kontinuert på I, bortset fra i et endeligt antal punkter (ii) hvis a I er et sådant punkt, hvori f ikke er kontinuert, da eksisterer grænseværdierne: f(a + ) = lim f(θ), f(a ) = lim f(θ) θ a + θ a Funktionen f kaldes stykkevis glat, hvis der ydermere gælder, at den afledte f, også er stykkevis kontinuert. [9, s. 32] Nedenstående Lemma følger af Bessels ulighed (se [20, s ]). Lemmaet præsenteres uden bevis, og benyttes senere i beviset for punktvis konvergens.

37 4.1. Fourier-rækker 27 Lemma 4.1 (Riemann-Lebesgues Lemma) Hvis f : [ π, π] C er stykkevis kontinuert, vil: π π f(θ) e inθ dθ 0, når n (4.5) Specielt, hvis f : R C er 2π-periodisk og stykkevis kontinuert, vil de tilhørende Fourierkoefficienter gå mod nul, når n. For at vise punktvis konvergens af Fourier-rækken af en 2π-periodisk funktion, er det tilstrækkeligt at undersøge grænseværdien af en partialsum af Fourier-rækken [9, s. 33]. Betragt derfor den symmetriske N te partialsum af den komplekse Fourier-række (4.3) for f: S f N N (θ) := n= N c n e inθ (4.6) Vi ønsker at vise, at for et vilkårligt θ konvergerer S f N (θ) mod f(θ), når N. Ved substitution af c n i ovenstående fås: S f N (θ) = 1 2π N n= N π π f(ψ) e in(θ ψ) dψ Eksponentialleddet i integranden i ovenstående kan omskrives til e in(ψ θ) ved at substituere N med N. Nu laves følgende variabel-skift, φ := ψ θ: S f N (θ) = 1 2π Da f var antaget 2π-periodisk: S f N (θ) = 1 2π N n= N N n= N π+θ π+θ π Og vi definerer den N te Dirichlet-kerne, D N (φ): S f N (θ) = π π π f(θ + φ) e inφ dφ f(θ + φ) D N (φ) dφ, hvor D N (φ) = 1 2π Det ses, at Dirichlet-kernen kan omskrives til: D N (φ) = 1 2π e inφ N n= N f(θ + φ) e inφ dφ (4.7) N n= N e inφ (4.8) e i(n+n)φ = 1 2N 2π e inφ e inφ (4.9) n=0

38 28 Kapitel 4. Fourier-analyse i kontinuert tid Summen i (4.9) genkendes som den endelige geometriske række: K 0 r n = (r K+1 1)/(r 1) for r 1, hvor K = 2N og r = e inφ. Vi har e iφ 1 = φ 0, og følgende omskrivning af (4.9) laves: D N (φ) = 1 2π e inφ ei(2n+1)φ 1 e iφ = 1 e i(n+1)φ e inφ 1 2π e iφ 1, φ 0 (4.10) Brøken i ovenstående ganges med exp( iφ 1 2 ) i tæller og nævner, og der fås: D N (φ) = 1 exp ( i(n )φ) exp ( i(n )φ) 2π exp ( i 1 2 φ) exp( i 1 (4.11) 2φ) Ovenstående omskrives vha. Eulers formel: D N (φ) = 1 sin([n ]φ) 2π sin( 1 2 φ) Inden konvergens vises, kræves følgende lemma: Lemma 4.2 For alle N N gælder: 0 π D N (θ) dθ = π 0 D N (θ) dθ = 1 2 Nu præsenteres sætningen for punktvis konvergens af Fourier-rækken: Sætning 4.1 (Punktvis konvergens af Fourier-rækken) Lad f : R C være en 2π-periodisk stykkevis glat funktion, og lad S f N være defineret som i (4.6) og (4.8). Så gælder: lim N Sf N (θ) = 1 [ ] f(θ ) + f(θ + ) 2 for alle θ. Specielt gælder lim N S f N (θ) = f(θ) for alle θ, hvor f er kontinuert. (4.12) Bevis: Beviset er baseret på [9, s. 35]. Fra Lemma 4.2 haves: f(θ ) = f(θ ) D N (φ) dφ π og 1 π 2 f(θ +) = f(θ + ) D N (φ) dφ (4.13) 0

39 4.1. Fourier-rækker 29 og fra (4.8): S f N (θ) = 0 π Ligningerne (4.13) trækkes fra (4.14), og der fås: S f N (θ) 1 2 [ ] f(θ ) + f(θ + ) π f(θ + φ)d N (φ) dφ + f(θ + φ)d N (φ) dφ (4.14) 0 = + 0 π π 0 [ ] f(θ + φ) f(θ ) D N (φ) dφ [ f(θ + φ) f(θ + ) ] D N (φ) dφ Der ønskes at vise, at for ethvert fastholdt θ går (4.15) mod 0 for N. Fra omskrivningen af Dirichlet-kernen (4.10) kan ovenstående skrives: 1 2π hvor g(φ) defineres ved: g(φ) = π π (4.15) g(φ) [ e i(n+1)φ e inφ] dφ, (4.16) f(θ + φ) f(θ ) e iφ 1 f(θ + φ) f(θ + ) e iφ 1, for π < φ < 0, for 0 < φ < π Det ønskes at vise, at g er stykkevis glat på [ π, π], således Riemann-Lebesgues Lemma (Lemma 4.1) kan anvendes, og udtrykket således går mod 0 for n. Funktionen g(φ) er veldefineret i alle punkter, på nær φ = 0. Vi finder grænseværdien af g for φ 0 + ved brug af l Hôpitals regel: f(θ + φ) f(θ ) f (θ + φ) lim g(φ) = lim φ 0 + φ 0 + e iφ = lim 1 φ 0 + ie iφ = f (θ + ) i Analogt kan det vises, at g(φ) går mod f (θ )/i for φ 0. Herved er g altså stykkevis glat på intervallet [ π, π], og fra Riemann-Lebesgues Lemma følger, at Fourier-koefficienterne: c n = 1 2π π π g(φ)e inφ dφ går mod 0 for n. Tilbage er udtrykket i (4.16), der blot er c ( (N+1)) c n, og derfor går dette også mod 0. [9, s ] Sætning 4.1 giver tilstrækkelige betingelser for, at Fourier-rækken konvergerer. I de punkter, hvor f er kontinuert, konvergerer rækken netop mod f, og for enkeltstående diskontinuerte punkter haves konvergens mod middelværdien for grænseværdierne fra hhv. venstre og højre. I det følgende afsnit præsenteres Fourier-transformationen, og der udledes en sammenhæng mellem Fourier-transformationen og Fourier-rækken.

40 30 Kapitel 4. Fourier-analyse i kontinuert tid 4.2 Fourier-transformationen I projektet benyttes Fourier-transformationen, hvorfor den kontinuerte Fourier-transformation defineres og behandles i dette afsnit. I afsnittet behandles først tilfældet for funktioner i L 1, hvorefter resultaterne udvides til også at omfatte L 2. Først betragtes den generelle Fourier-koefficient for en T -periodisk funktion: c n = 1 T T c n = T/2 T/2 T/2 T/2 f(t)e 2πi(n/T )t dt f(t)e 2πi(n/T )t dt Koefficienten c n kan betragtes som en funktion af ω = 2πn T. Ved at lade T bemærkes, at T c n bliver en kontinuert funktion af ω. Derved forsvinder kravet om periodicitet af f. For T fås grænsen [22, s. 9]: T c n F (ω) = f(t)e iωt dt Dette giver følgende definition af Fourier-transformationen. Definition 4.3 For en kontinuert differentiabel funktion f, defineres Fourier-transformation F (ω) som følger: F {f} (ω) = F (ω) = f(t)e iωt dt Fourier-transformationen har visse favorable egenskaber, hvor et udpluk af disse er relevante for projektet. Disse præsenteres nedenfor. Først præsenteres to operatorer, T a og M a, som kaldes for hhv. tidsforskydning og frekvensmodulation. Sætning 4.2 (Tidsforskydning og frekvensmodulation) Lad T a, M a : L 1 L 1 og antag, at f L 1. Så haves: De Fourier-transformerede er: Det bemærkes: T a f(t) = f(t a), for a R M a f(t) = e iat f(t) F {T a f} (ω) = e iaω F (ω) (4.17) F {M a f} (ω) = F (ω a) (4.18) F {T a f} (ω) = M a F (ω) og F {M a f} (ω) = T a F (ω)

41 4.2. Fourier-transformationen 31 Det kan have sine fordele at kunne Fourier-transformere den tids-afledte, især i forbindelse med omskrivninger og udledninger. Derfor er følgende regneregler interessante for projektet. Sætning 4.3 (Regneregler for differentiation) Hvis f L 1 er kontinuert og stykkevis glat, samt f L 1, da haves: Ydermere, hvis tf(t) er integrabel haves: F { f } (ω) = iωf (ω) (4.19) F {tf} (ω) = i d F (ω) (4.20) dω Bevis: Bevis for (4.19). Vi bemærker, at pr. analysens fundamentalsætning gælder følgende: lim f(t) = f(0) + f (t) dt t Da f L 1, er integralet endeligt. Grænseværdien må være 0, da f L 1 og altså skal opfylde f(t) dt <. Antag, at lim t f(t) konvergerer til a 0. Da vil integration over hele den positive reelle akse ikke medføre et endeligt resultat, da et uegentligt integrale af en konstant ikke giver et endeligt resultat. Samme argument haves for lim t f(t). Nu benyttes partiel integration på (4.19): Bevis for (4.20). F { f } (ω) = e iωt f (t) dt [ ] = e iωt f(t) ( iω)e iωt f(t) dt = iω e iωt f(t) dt = iωf (ω) 0 F {tf} (ω) = = i d dω e iωt tf(t) dt e iωt f(t) dt = i d dω F (ω). Følgende egenskab viser, at hvis man folder (se Definition 3.1) to funktioner i tidsdomænet, så svarer det til at multiplicere i frekvens-domænet og omvendt. Denne egenskab er ofte anvendt i forbindelse med signalbehandling.

42 32 Kapitel 4. Fourier-analyse i kontinuert tid Sætning 4.4 (Foldning og multiplikation) Hvis f, g L 1, haves: F {f g} (ω) = (F G) (ω) (4.21) Udover diverse regneregler, som er blevet gennemgået i det ovenstående, er det også interessant, hvorledes en funktion kan bestemmes ud fra dens Fourier-transformation, også kaldet den inverse Fourier-transformation. Sætning 4.5 (Invers Fourier-transformation) Lad f være integrabel og stykvis kontinuert på R, samt defineret ved sine diskontinuiteter som f(t) = 1 2 [f(t +) + f(t )]. Da haves: 1 f(t) = lim e iωt e ε2 ω 2 2 F (ω) dω. (4.22) ε 0 2π Hvis F L 1, da er f kontinuert, og: f(t) = 1 e iωt F (ω) dω (4.23) 2π For funktioner i L 2, som ikke er i L 1, er konvergens af integralet i Fourier-transformationen ikke garanteret. I det følgende betragtes funktioner i L 1 L 2. Vi vil definere Fouriertransformationen som grænsen til en følge af funktioner i L 2 -normen (se Definition 3.2). Lad nu f, g, F, G L 1 L 2. Lad os betragte det indre produkt mellem to funktioner: 2π f, g 2 = 2π f(t) g(t) dt = f(t)e iωt G(ω) dω dt hvor sidste lighed følger af (4.23). Vi kan benytte Fubinis sætning (se [11, A. 13 s ]), da f og g begge er i L 1, hvilket medfører, at integration af deres absolutværdier giver et endeligt resultat. Heraf følgende omskrivning: f(t) e iωt G(ω) dω dt = = f(t)e iωt G(ω) dt dω F (ω)g(ω) dω hvor sidste resultat fremkommer som følge af definition på Fourier-transformationen i L 1. Vi har altså vist: 2π f, g = F (ω)g(ω) dω = F, G.

43 4.2. Fourier-transformationen 33 For f = g haves således: 2π f 2 = F 2. Lad f L 2. Da kan vi finde en følge {f n } n Z, således f n og F n er i L 1, samt f n f i L 2 -normen. I dette tilfælde vil vi, på baggrund af det tidligere resultat om normbevarelse under Fourier-transformationen, således have: F n F m 2 = 2π f n f m 2, som netop går mod 0, når n, m. Vi bemærker, at {f n } n Z er en Cauchy-følge i L 2, som er fuldstændigt, hvorfor følgen konvergerer til et element i L 2 [9, s. 222]. Denne grænse definerer vi som Fourier-transformationen i L 2 : Definition 4.4 (Fourier-transformation i L 2 ) Fourier-transformationen i L 2 defineres som: lim f n = F {f} (ω) = F (ω). n De ovenstående resultater opsummeres i følgende sætning. Sætning 4.6 (Plancherel) Fourier-transformationen defineret på L 1 L 2 F : L 2 L 2, og det haves: F, G = 2π f, g og F 2 = 2π f 2 kan udvides til en afbildning I dette kapitel er den kontinuerte Fourier-transformation samt Fourier-rækker blevet præsenteret. Som nævnt i Kapitel 1 arbejdes der i projektet i diskret tid. Det er derfor relevant at undersøge, hvorledes det er muligt, at foretage en Fourier-transformation i diskret tid.

44

45 Kapitel 5 Diskrete Fourier-transformationer I det forrige kapitel blev Fourier-rækker og -transformationen i kontinuert tid præsenteret. Da der samples data, er det derfor nødvendigt at kunne anvende Fouriertransformationen på diskrete signaler. I dette kapitel præsenteres en række diskrete Fourier-transformationer, der alle har relevans for projektet. 5.1 Diskret-tids Fourier-transformation Følgende afsnit er baseret på en kombination af [25, s. 3, ], [24, s ] og [16, s ]. Lad x(t) være et kontinuert signal af tiden t. Hvis T angiver samplingsperioden, betegner x[n], som nævnt i Afsnit 1.1.1, det diskrete signal fremkommet ved samplingen af x(t). Således haves x[n] = x(nt ) under forudsætning af uendelig bit-opløsning, hvor n Z. Det samplede signal x s (t) af x(t) blev i Afsnit også beskrevet vha. et impulstog: x s (t) = x(t)δ(t nt ) = x(nt )δ(t nt ) = x[n]δ(t nt ) (5.1) n= n= n= I Afsnit 4.2 blev Fourier-transformationen for kontinuerte signaler præsenteret (se 35

46 36 Kapitel 5. Diskrete Fourier-transformationer Definition 4.3). Ved at anvende dette, fås Fourier-transformationen af x s (t): F {x s } (ω) = = = = x s (t)e iωt dt n= x[n] n= x[n]e iωnt n= x[n]δ(t nt )e iωt dt δ(t nt )e iωt dt Sidste lighed følger af egenskaberne for δ(t) i (1.2) på side 9. Når man taler om diskrete signaler, kan vælges at lade T = 1, idet nt i det kontinuerte tilfælde blot er n te sampling i det diskrete tilfælde. Diskret-tids Fourier-transformationen (DTFT) af det diskrete signal x[n] er da defineret på følgende vis: Definition 5.1 (Diskret-tids Fourier-transformationen (DTFT)) Lad x[n] være et diskret signal. Da er dets DTFT givet som: X(e iω ) = n= x[n]e iωn, ω R hvor ω = 2πf er vinkelfrekvensen, og f er frekvensen. Den inverse DTFT til X(e iω ) er givet som: x[n] = 1 π X(e iω )e iωn dω, ω R 2π π Det ses, at X(e iω ) er en 2π-periodisk funktion. Ligeledes fremgår af Definition 5.1, at X(e iω ) også kan udtrykkes ved frekvensen f. I så fald er X(f) periodisk med perioden 1, som ses ud fra udledningen af DTFT. Inden T antages at være 1, er X(f) periodisk med samplinsgfrekvensen f s = 1/T, hvorefter det følger, at når T antages at være 1, er perioden også dette. Ved at multiplicere X(e iω ) med 1 2π eiωm og integrere over en periode, opnås den inverse DTFT: 1 π X(e iω )e iωm dω = 1 2π π 2π = = π n= n= π n= π x[n] 1 2π x[n]e iωn e iωm dω π e iω(n m) dω x[n]δ[n m] = x[m]

47 5.1. Diskret-tids Fourier-transformation 37 hvoraf sidste lighed følger af Kronecker delta funktionen (se Definition 1.1 på side 9), idet der gælder, at 1 π 2π π e iω(n m) dω = δ[n m]. Nedenfor på Figur 5.1 ses et eksempel på et endeligt diskret signal med længde 11, og dets kontinuerte periodiske DTFT: x[n] X(e iω ) n (a) π 2π 3π 4π ω (b) Figur 5.1: (a) Diskret og endeligt signal x[n]. (b) Signalets tilhørende periodiske DTFT X(e iω ). Den røde kurve indikerer en periode af X(e iω ). DTFT er nu blevet præsenteret, men det er ikke nævnt, hvad der kræves, for at DTFT en eksisterer. Det er naturligt at undersøge, om den uendelige sum i Definition 5.1 konvergerer. Dvs. hvad kræves for, at: M lim M x[n]e iωn < n= M Det viser sig, at en tilstrækkelig betingelse kan findes ved: X(e iω ) = x[n]e iωn = n= n= n= x [n] e iωn x[n] < hvilket betyder, at såfremt følgen {x n } n=z er absolut summérbar og dermed ligger i l 1 (Z) (se Afsnit 3.1), eksisterer dens DTFT. Det bemærkes, at da der i projektet samples endeligt målt data, vil datafølgen altid være absolut summérbar. Da egenskaben om at være absolut summérbar kun er en tilstrækkelig betingelse, kan følger, der ikke opfylder denne egenskab, fortsat godt have en DTFT. Såfremt følgen ligger i l 2 (Z) eksisterer dens DTFT ligeledes [24, s. 219].

48 38 Kapitel 5. Diskrete Fourier-transformationer Da X(e iω ) er defineret på hele den reelle akse, er det ikke muligt at anvende DTFT en i praksis, da en computer har endelig hukommelse. Det er derfor nødvendigt, at diskretisere frekvensdomænet for X(e iω ). 5.2 Diskret Fourier-tranfsormation Afsnittet er baseret på [24, s. 259] og [25, s ]. Såfremt et diskret signal er endeligt eller periodisk, vil summeringen i Definition 5.1 blive endelig, idet al information omkring signalet er indeholdt i en periode. X(e iω ) er dog fortsat kontinuert. Formålet er således, at kunne diskretisere X(e iω ). Antag nu, at der er givet et diskret signal x[n] med længde N. Da frekvensdomænet for X(e iω ) er 2π-periodisk, inddeles hver periode nu i N inddelinger: ω k = 2πk, k = 0, 1,..., N 1 N Således opnås nu en diskretisering af X(e iω ): X(e iω k ) = n= x[n]e 2πikn/N = N 1 x[n]e 2πikn/N n=0 Det ses således, at der er foretaget en sampling af DTFT en beskrevet i Afsnit 5.1. Dette betegnes som den Diskrete Fourier-transformation (DFT), der er givet på følgende vis: Definition 5.2 (Diskret Fourier-transformationen (DFT)) Lad x[n] være et diskret og periodisk signal med periode N. Da er dets DFT givet som: X[k] = N 1 n=0 Den inverse DFT er givet som: x[n]e 2πikn/N, k = 0, 1,..., N 1 x[n] = 1 N N 1 k=0 X[k]e 2πikn/N, n = 0, 1,..., N 1 Det bemærkes her, at der i definitionen antages, at signalet x[n] er periodisk. Om signalet er endeligt eller periodisk har ikke indflydelse på definitionen af DFT en. Dette skyldes, at DFT-transformationsparet - til forskel fra DTFT-transformationsparet i

49 5.3. Fast Fourier-transformation 39 Definition begge er periodiske med periode N, uanset om x[n] er periodisk eller endelig. Samme argument gælder for x[n]. Det betyder således i praksis, at når der i projektet optages endeligt data, antages dette automatisk for at være periodisk, når DFT en anvendes. På Figur 5.2 ses et diskret signal med længde 11 og dets DFT. Ved sammenligning med Figur 5.1 ses det, at DFT en netop er en sampling af DTFT en. x[n] X[k] n (a) π 2π 3π 4π ω (b) Figur 5.2: (a) Diskret og periodisk signal x[n]. (b) Signalets tilhørende diskrete og periodiske DFT X[k]. Den underliggende kontinuerte kurve X(e iω ) (stiplet) er ligeledes indtegnet. De røde kurver indikerer en periode. Af de gennemgåede Fourier-transformationer er DFT en den eneste, der er mulig at beregne fuldt ud i praksis på en computer med endelig hukommelse, da både tidsog frekvensdomænet er diskret. Dette betyder, at overvejelser omkring implementationen og beregningstiden har indflydelse på, hvor god DFT en er at anvende i praksis. 5.3 Fast Fourier-transformation Afsnittet er baseret på en kombination af [24, Kap ] og [16, s ]. I Definition 5.2 blev DFT en præsenteret som: X[k] = N 1 n=0 x[n]e 2πikn/N k = 0, 1,..., N 1 Det ses, at der for hver X[k] kræves N komplekse multiplikationer og N 1 komplekse additioner. Idet der haves N antal X[k], udføres der således i alt: beregninger. N 2 + N(N 1) = 2N 2 N (5.2)

50 40 Kapitel 5. Diskrete Fourier-transformationer Lad O(c) betegne beregningskompleksiteten, hvor c er den del af antallet af beregninger, der har størst kompleksitet, når der ses bort fra eventuelle konstanter. Således haves, at den direkte udregning af DFT en er O(N 2 ). Hvis der samples med 44,1kHz i blot 1 sekund opnås approksimativt (44, ) 2 = , beregninger. For store datafølger kan køretiden derfor blive stor, og det er derfor gunstigt at kunne nedsætte denne. Den såkaldte Fast Fourier-transformation (FFT) er en familie af algoritmer, der anvender DFT en, men med en beregningskompleksitet på O(N log 2 (N)). Nedenfor præsenteres Radix 2 FFT-algoritmen, der i rapporten benævnes R2-FFT. Idéen bag R2-FFT er at opdele DFT en i to lige store summeringer; én for lige n og én for ulige n. Algoritmer, der opdeler følger i mindre dele, betegnes også som Decimation in Time (DIT) algoritmer. Lad x[n] være et diskret signal med længde N, der opfylder, at N = 2 m for et m N \ 0. Lad nu W N = e i2π/n, og dermed W kn N = e i2πkn/n. Summen i Definition 5.2 kan da skrives som: X[k] = N 1 n=0 (N/2) 1 x[n] WN kn = n=0 (N/2) 1 x[2n] W k(2n) N + n=0 x[2n + 1] W k(2n+1) N (5.3) Hvor k = 0, 1,... N 1. Sidste lighed følger af at opdele summeringen i lige og ulige n. Således er den oprindelige DFT opdelt i to lige store, men mindre DFT er for følgerne med hhv. lige og ulige indeksering; {x 0, x 2,..., x N 2 } og {x 1, x 3,..., x N 1 }. Det bemærkes, at der for W desuden gælder følgende: W k(2n) N = e i2πk2n/n = e i2πkn/(n/2) = W kn N/2 (5.4) W k+n/2 N = e i2πk/n e iπ = W k N (5.5) Ved at anvende (5.4), kan (5.3) omskrives til: X[k] = (N/2) 1 n=0 x[2n] W kn N/2 + W k N (N/2) 1 n=0 x[2n + 1] WN/2 kn, k = 0, 1,..., N 1 For overskuelighedens skyld betegner vi nu følgerne med hhv. lige og ulige indeksering som x e [n] og x o [n], således: x e [n] = x[n], n = 0, 2,..., N 2 x o [n] = x[n], n = 1, 3,..., N 1 De tilhørende DFT er betegnes ligeledes X e [k] og X o [k], dvs:

51 5.3. Fast Fourier-transformation 41 X e [k] = X o [k] = (N/2) 1 n=0 (N/2) 1 n=0 x e [n]wn/2 kn, k = 0, 1,..., N 1 (5.6) x o [n]wn/2 kn, k = 0, 1,..., N 1 (5.7) X e [k] og X o [k] betegnes også som N/2-DFT er, idet der i deres summering kun indgår følger af den halve længde af den oprindelige DFT. Ligning (5.3) kan nu skrives som: X[k] = X e [k] + W k NX o [k], k = 0, 1,..., N 1 Nu kommer opdelingen af summeringen i lige og ulige n for alvor til sin fordel; anvendes (5.5) samt periodiciteten af DFT en, haves: X[k + N/2] = X e [k] W k NX o [k], k = 0, 1,..., N 1 Dette medfører, at det kun er nødvendigt at udregne X e [k] og X o [k] for det halve antal N, dvs for k = 0, 1,..., N/2 1. Resultaterne kan derefter genbruges således, at DFT en for hele datafølgen af længde N opnås. På Figur 5.3 ses et diagram for en datafølge af længde 8, hvor DFT en udregnes ved opdeling i to N/2-DFT er. x[0] x[2] x[6] x[8] N/2 DFT X e [0] X e [1] X e [2] X e [3] W8 0 W8 1 W8 2 W8 3 X[0] X[1] X[2] X[3] x[1] x[3] x[5] x[7] N/2 DFT X o [0] X o [1] X o [2] X o [3] W8 0 W8 1 W8 2 W8 3 X[4] X[5] X[6] X[7] Figur 5.3: Flow-diagram for beregningen af DFT en for en datafølge med længde 8 ved brug af to N/2-DFT er. Hvert knudepunkt repræsenterer et element. Elementer, der mødes i et knudepunkt, summeres og danner knude-elementet. Hvis der er angivet en variabel ved en pil, betegner denne vægten af pilen. Et element, der bevæger sig langs en vægtet pil, multipliceres med vægten. Figur inspireret af [16, s. 758].

52 42 Kapitel 5. Diskrete Fourier-transformationer På Figur 5.3 ses, at for at beregne X[0], er det nødvendigt at udregne X o [0], multiplicere dette med W 0 N og addere med X e[0]. Pga. (5.5) samt periodiciteten af (5.6) og (5.7) er det at udregne X[4] nu muligt ved at udregne X o [0], multiplicere dette med W 0 N og addere med X e[0]. De to DFT er, X e [k] og X o [k], kan ligeledes igen opdeles i hver to DFT er, og i R2- FFT fortsættes denne procedure, indtil alle DFT er består af følger af længde 2. I (5.2) blev vist, at der for den direkte udregning af DFT en kræves N 2 multiplikationer og N(N 1) additioner. Hvis N er forholdsvis stor, er antallet af additioner approksimativt lig N 2. Med denne antagelse kræves - såfremt der inddeles i to DFT er som i (5.3) - både (N/2) 2 multiplikationer og additioner for både X e [k] og X o [k]. Når de to DFT er lægges sammen, kræves igen yderligere N additioner, ligesom der kræves N multiplikationer, idet X o [k] skal multipliceres med WN k. Dette betyder, at antallet af multiplikationer og additioner er approksimativt ens. Da det, at medregne både antallet af multiplikationer og additioner, blot vil medføre en skalering af antallet af beregninger med en konstant, som ikke medtages i den endelige beregningskompleksitet, vil antallet af beregninger nu kun omhandle én type operation. Ved at opdele DFT en som i (5.3), bliver antallet af beregninger 2(N/2) 2 + N. Hvis de to N/2-DFT er begge opdeles yderligere i to N/4-DFT er, kræves ikke længere (N/2) 2 additioner og/eller multiplikationer, men i stedet i alt N/2 + 2(N/4) 2 for hver N/2-DFT. Således haves: 2(2(N/4) 2 + N/2) + N = 4(N/4) 2 + 2N = 2 2 (N/2 2 ) 2 + 2N Da det er antaget, at datafølgen har længden N = 2 m for et m N \ 0, kan opdelingsprocessen maksimalt ske m = log 2 (N) gange. Dette giver således: mn + 2 m (N/2 m ) 2 = N log 2 (N) + N Således opnås en kompleksitet O(N log 2 (N)). I eksemplet med de 44,1 khz opnås nu ca. 6, beregninger. Det ses, at antallet af beregninger af markant reduceret. Numpy-biblioteket i Python anvender en DIT-algoritme kaldet Cooley-Tukey [6], som bygger på R2-FFT, men hvor der kan anvendes følger af vilkårlig længde N = N 1 N 2 med N 1, N 2 N \ 0. I dette kapitel er DTFT en, der er Fourier-transformationen for diskrete signaler, blevet gennemgået. Desuden er beskrevet, at DTFT en anvendes i praksis vha. DFT en, som igen i praksis er implementeret vha. en FFT grundet dens lavere beregningskompleksitet. Det er nu beskrevet, hvorledes informationen om frekvensindholdet i et diskret signal kan findes. Problemet er imidlertid fortsat, at det ikke er muligt at kende tidspunktet for, hvortil de enkelte frekvenskomposanter optræder i signalet. Dette problem løses vha. Korttids-Fourier-transformationen, som præsenteres i følgende kapitel.

53 Kapitel 6 Korttids-Fourier-Transformation I de forrige afsnit er både den kontinuerte- og diskrete Fourier-transformation blevet præsenteret. I det følgende vil Korttids-Fourier-transformationen (Short-time Fourier transform) blive præsenteret og undersøgt nærmere. Hertil anvendes teori fra både Afsnit 4.2 og Afsnit 5.1. Gennem rapporten vil Korttids-Fourier-transformation blive refereret som STFT. Afsnittet er baseret på [25, Kap. 9.1], og [11, Kap. 3]. På nuværende tidspunkt vides det, at et lydsignal i kontinuert tid, x(t), indeholder information om signalets amplitude til tiden t, men der er ikke eksplicit information tilgængelig omkring signalets frekvenser. Omvendt indholder det Fourier-transformerede signal, X(ω) = F {x} (ω), kun information om signalets relative størrelse til frekvensen ω, men ingen information om signalets tids-karakteristik, f.eks. til hvilke tider bestemte frekvenser forekommer. Dette skyldes, at Fourier-transformationen af signalet er taget på hele tidslængde af signalet. Kort sagt kan informationerne i signalet enten repræsenteres i tids- eller frekvensdomænet, men ikke begge samtidig. Dette er et problem i og med, at et nodeark indeholder informationer om signalet i både tid og frekvens (se f.eks. Fig. 1). For at omgå denne problemstilling anvendes bl.a. STFT. STFT anvender en såkaldt vinduesfunktion til at opsplitte signalet, inden der anvendes en Fourier-transformation. Denne vinduesfunktion lader man glide hen ad tidsaksen (se Figur 6.1), hvor det afgrænsede signal Fourier-transformeres, hver gang vinduet flyttes. Dette giver følgende definition af STFT en: 43

54 44 Kapitel 6. Korttids-Fourier-Transformation Amplitude τ 0 Tid τ n Figur 6.1: Illustration af, hvordan en vinduesfunktion (rød kurve) glider hen ad tidsaksen fra τ 0 til τ n. Signalet (blå kurve) bliver trunkeret af vinduesfunktionen, der giver en afgrænset del af signalet (violet kurve). Definition 6.1 (Korttids-Fourier-transformationen (STFT)) Lad f, g L 2 (R n ), hvor g 0 er en given vinduesfunktion. Så er STFT en af en funktion f med hensyn til g givet som: V g f (τ, ω) = f(t)g (t τ)e iωt dt, for τ, ω R n, R n hvor τ angiver placeringen af vinduet. Hvis f, g L 2 (R n ), så gælder følgende: V g f (τ, ω) = F {f T τ g} (ω) = 1 2π (F M τ G ) (ω), (6.1) hvor G (t) = G( t). Da der i dette projekt undersøges lydsignaler, vil der i det følgende fokuseres på tilfældet, hvor n = 1 og funktioner x(t) L 2 (R). Lad os betragte x, g L 2 (R), hvor x er et givet lydsignal, og g er en reel og lige vinduesfunktion. Da følger af Definition 6.1 og af (6.1), at: V g x (τ, ω) = = R x(t)g (t τ)e iωt dt x(t)g (t τ) e iωt dt = 1 2π (X M τ G) (ω) (6.2a) (6.2b)

55 6.1. Diskret-tids STFT en 45 Som det fremgår af ovenstående, kan STFT en bestemmes for signalet x, enten ved at Fourier-transformere signalet, der er trunkeret med vinduesfunktionen, eller ved at folde det Fourier-transformerede signal med den frekvensmodulerede (se Sætning 4.2) Fourier-transformation af vinduesfunktionen. 6.1 Diskret-tids STFT en I ovenstående blev den kontinuerte STFT præsenteret, men det vil være relevant for projektet at bestemme en STFT i diskret tid. Der begrænses til diskrete signaler i l 2 (Z). Ligesom i det kontinuerte tilfælde, er der to måder, hvorpå den diskrete STFT kan bestemmes. Fra Definition 5.1 haves, at DTFT en er givet som: X(e iω ) = n= x [n] e iωn, hvor x [n] er det diskretiserede signal. Anvendes dette i stedet fås en diskretiseret version af (6.2a). Ligeledes gælder samme relation som i (6.2b), men i stedet bruges den diskrete foldning (se Afsnit 3.1). Dette giver følgende definition. Definition 6.2 (Den diskrete STFT) Lad x, g l 2 (Z), hvor g 0 er en given vinduesfunktion, og x [n] og g [n] være henholdsvis det diskrete signal og vinduesfunktion. Da er diskret-tids STFT en givet som: V g x(m, e iω ) = x [n] g [n m] e iωn, eller: V g x(m, e iω ) = n= ( X G e iωm) (e iω ), hvor X(e iω ), G(e iω ) er de Fourier-transformerede af x[n], g[n]. 6.2 Heisenbergs usikkerhedsrelation I forbindelse med STFT en vil det være relevant at undersøge, hvad der sker, når bredden på den anvendte vinduesfunktion varieres. Her kommer Heisenbergs usikkerhedsrelation i spil. Normalt kendes Heisenbergs usikkerhedsrelation fra fysikken i forbindelse med kvantemekanik, men den har også sine relationer (ordspil er tilsigtet) i harmonisk analyse. Afsnittet er baseret på [25, Kap ] og [11, Kap. 2.2].

56 46 Kapitel 6. Korttids-Fourier-Transformation Sætning 6.1 (Heisenbergs usikkerhedsrelation) Hvis f L 2 (R), og µ t, µ ω R er middelværdierne for t og ω, så gælder: ( ) 1 ( (t µ t ) 2 f(t) 2 2 ) 1 ( ) 1 dt (ω µ ω ) 2 F (ω) 2 2 π 2 dω f Inden beviset for Sætning 6.1, præsenteres nogle begreber fra sandsynlighedsregning, der anvendes i beviset. Først konstrueres følgende funktioner, for en given funktion f L 2 (R) og dens Fourier-transformerede, F : p f (t) = f(t) 2 f(t) 2 2 = F (ω) 2 p F (ω) = F (ω) 2 = 2 f(t) 2 f(t) 2 dt F (ω) 2 F (ω) 2 dω (6.3a) (6.3b) Da begge funktioner i (6.3) opfylder: p f (t), p F (ω) > 0 og p f (t) dt = p F (ω) dω = 1, så følger det af [15, Proposition 2.6], at p f (t) og p F (ω) er sandsynlighedstæthedsfunktioner. Hvordan f udbreder sig i henholdsvis tid og frekvens, kan bestemmes ud fra variansen for p f (t) og p F (ω), som er givet ved: hvor: σ 2 t = σ 2 ω = (t µ t ) 2 1 p f (t) dt = f(t) 2 2 (ω µ ω ) 2 1 p F (ω) dω = F (ω) 2 2 µ t = t p f (t) dt og µ ω = (t µ t ) 2 f(t) 2 dt (6.4a) (ω µ ω ) 2 F (ω) 2 dω, (6.4b) ω p F (ω) dω. Det bemærkes, at 2π f 2 2 = F 2 2 jf. Plancherel s Sætning (se Sætning 4.6). Bevis (Sætning 6.1): Først antages uden tab af generalitet, at µ t = µ ω = 0. Dernæst betrages: σt 2 σω 2 1 = f(t) = 2π f(t) 4 2 t 2 f(t) 2 1 dt F (ω) 2 2 tf(t) 2 dt ω 2 F (ω) 2 dω ωf (ω) 2 dω (6.5)

57 6.2. Heisenbergs usikkerhedsrelation 47 Ved at anvende regnereglen for Fourier-transformationen af den tids-afledte (se Sætning 4.3) og Plancherel s Sætning (se Sætning 4.6), haves følgende: ωf (ω) = 1 i F { f } (ω) og ωf (ω) 2 dω = 1 i F { f } 2 (ω) = 2π f (t) 2 dt. dω Indsættes dette i (6.5) fås: σt 2 σω 2 1 = f(t) 4 tf(t) 2 dt f (t) 2 dt. 2 Anvendes Cauchy-Schwarz s ulighed opnås følgende: ( σt 2 σω 2 1 f(t) 2 2 tf(t)f (t) dt) 2 ( 1 2 f(t) 4 tf(t)f (t) dt). (6.6) 2 Da følgende gælder: ( f(t) 2) ( ( ) = f(t)f(t)) = f (t)f(t) + f(t)f (t) = 2Re f (t)f(t) opnås følgende omskrivning: 2 f (t)f(t), σ 2 t σ 2 ω = 1 f(t) f(t) 4 2 ( ( 1 ( 2 t f(t) 2) ) 2 dt ( t f(t) 2) ) 2 dt. Ved partiel integration opnås: t ( f(t) 2) dt = t f(t) 2 f(t) 2 dt = her antages, at lim t tf(t) 2 = 0. Til sidst fås: ( σt 2 σω f(t) 4 2 ( t f(t) 2) ) 2 dt = f(t) 2 dt, 1 4 f(t) 4 f(t) 4 2 = Tages kvadratroden på begge sider og indsættes (6.4a) og (6.4b), fås resultatet. For at bevise sætningen generelt, gentages ovenstående for følgende funktion: g(t) = e iµωµt M µω T µt f(t) = e iµωµt e iµωt f (t µ t ), således G(ω) = e iµωµt M µt T µω F (ω) = e iµωµt e iµtω F (ω µ ω )

58 48 Kapitel 6. Korttids-Fourier-Transformation da der gælder følgende: g(t) 2 = f(t) 2, ( ug(u + 2µ t ) 2 = ue iµωµt e iµω(u+2µt) f (u + µ t ) 2 du ( ) 1 = (t µ t ) f (t) 2 2 dt, ( vg(v + 2µ ω ) 2 = ve iµωµt e iµt(v+2µω) F (v + µ ω ) 2 dv ( ) 1 = (ω µ ω ) F (ω) 2 2 dω ) 1 2 ) 1 2 Heisenbergs usikkerhedsrelation udtaler sig om, at man ikke simultant kan præcisere et signals opførsel i både tids- og frekvens-domænet. Hvis det f.eks. ønskes at præcisere et signals opførsel i tid, dvs. man vælger variansen, σ t, til at være lille, så fås en mindre præcision af opførslen i frekvens, altså σ ω bliver større. Ofte bruges termen opløsning, forstået således, at en høj opløsning i tid medfører en lav opløsning i frekvens og omvendt. Grunden til den sammenhæng mellem tid og frekvens skyldes, at produktet σ t σ ω er nedadtil begrænset. Dette er en nyttig viden i forbindelse med valg af vinduesfunktioner til STFT en: vælges et smalt vindue, vil man få en god tidsopløsning af signal, men vælges et bredt vindue, fås en god frekvensopløsning. Men hvilken vinduesfunktion vil være den optimale? Afhængig af, hvad man skal anvende STFT en af et signal til, er der forskellige svar, men den optimale vinduesfunktion er den, der minimerer Heisenbergs usikkerhedsrelation, altså σ 2 t σ 2 ω = 1 4. Vi vender tilbage til denne diskussion senere (se Kapitel 9). I dette afsnit er STFT en blevet gennemgået, både den tids-kontinuerte og den tidsdiskrete. Afsnittet har anvendt nogle af resultaterne fra de forrige afsnit, og nu anvendes STFT en samt resten af den præsenterede teori på konkret data.

59 Kapitel 7 Filterteori Da der i projektet ønskes at filtrere eventuel støj fra de optagede lydsignaler, er formålet med dette kapitel at præsentere de grundlæggende begreber inden for filterteori. Derudover ønskes at præsentere metoder til design af filtre, herunder Parks-McClellan algoritmen, som ønskes implementeret i applikationen. 7.1 Grundlæggende begreber Afsnittet er baseret på en kombination af [24, s. 227] og [16, s ]. Når et system påtrykkes et signal x[n], sker en ændring af amplitude og fase af signalet; systemet påvirker signalet. Outputtet af systemet bliver således y[n]. En sådan forandring afhænger af impulsresponsen h[n] fra det givne system. Outputtet y[n] fremkommer ved en foldning af h[n] og x[n]. [16, s. 26] Et sådant system kan anses for at være et filter (se Figur 7.1). x[n] h[n] y[n] Figur 7.1: Signalet, x[n], påtrykker systemet, h[n], og outputtet bliver y[n]. Lad h[n] være impulsresponsen for et filter. Da bestemmes frekvensresponsen af filteret ved at finde DTFT en af filteret: H(e iω ) = n Z h[n]e iωn. (7.1) Frekvensresponsen er således et udtryk for et systems respons i amplitude og fase for en given frekvens. Hvis disse skrives hver for sig, kan (7.1) skrives: H(e iω ) = H(e iω ) e iarg(h(eiω )) 49

60 50 Kapitel 7. Filterteori hvor H(e iω ) og arg(h(e iω )) kaldes henholdsvis amplitude- og faseresponsen. Disse funktioner har begge perioden 2π og antager reelle værdier. Faseresponsen er periodisk, da arg er periodisk, og amplituderesponsen er periodisk, da DFT en er dette. Et filter kan beskrives ved dets frekvensrespons. Et filter, hvis frekvensrepsons udelukkende antager reelle værdier, siges at have nul-fase. Hvis frekvensresponsen for et filter kan skrives: H(e iω ) = A(e iω )e iαω+iβ (7.2) hvor A(e iω ) er en reel funktion, siges et sådan filter at have generaliseret lineær fase. Dette svarer til, at faseresponsen, som funktion af ω, blot er en ret linje med diskontinuerte spring af størrelse 2π. Et filter med generaliseret lineær fase vil, pånær ved sine diskontinuiteter, have et konstant group delay τ(ω): τ(ω) = d dω arg(h(eiω )) = α. Et krav for, at der er opnået generaliseret lineær fase under antagelse af kausalitet, er: h[n] sin(ω(n α) + β) = 0. 0 De grundlæggende begreber for filtre er nu blevet præsenteret. I det følgende afsnit vil de såkaldte ideelle filtre blive præsenteret. 7.2 Ideelle filtre Betragt et signal med støj, hvor støjen har lavere frekvens end signalet. Da er det gunstigt at kunne filtrere de lave frekvenser fra, således signalet bliver støjfrit. Ligeledes kan det også være ønskeligt at kunne filtrere høje frekvenser fra. Der kan også opstå tilfælde, hvor det er nødvendigt både at filtrere en række høje og lave frekvenser fra. Disse filtre betegnes som hhv. lavpas-, højpas- og båndpasfiltre, og vil blive præsenteret nedenfor i deres ideelle form. De præsenterede filtre i dette afsnit er, for overskuelighedens skyld, antaget som værende reelle. Afsnittet er baseret på en kombination af [24, s ] og [17, s ]. Et lavpasfilter lader, som navnet antyder, de lave frekvenser passere. Frekvensresponsen for et ideelt lavpasfilter er givet på følgende vis: { 1 for ω H l (e iω ωc ) = 0 ellers hvor ω c betegnes som knækfrekvensen. Ved at tage den inverse DTFT ses, at impulsresponsen er uendelig: h l [n] = 1 ωc e iωn dω = 1 [ ] e iωn ωc = sin(nω c) 2π ω c 2π in πn ω c

61 7.2. Ideelle filtre 51 På Figur 7.2 ses en illustration af impulsresponsen for n [ 5, 5] og amplituderesponsen for et ideelt lavpasfilter med ω c = π 2. Filteret betegnes ideelt, idet det præcist lader frekvenserne i pasbåndet [ ω c, ω c ] passere uden at påvirke de tilhørende amplituder, og præcist skærer frekvenserne i stopbåndene [ π, ω c ) og (ω c, π] fra (a)... n π ω c ω c π (b)... ω Figur 7.2: (a) Impulsresponsen h[n] for n [ 5, 5]. (b) Amplituderesponsen Hl (e iω ) for et ideelt lavpasfilter med ω c = π 2. På samme vis er det muligt kun at lade de højere frekvenser passere. Et ideelt højpasfilter har frekvensresponsen: H h (e iω ) = { 1 for ω ωc 0 ellers Et ideelt båndpasfilter har frekvensresponsen: H b (e iω ) = { 1 for ωc1 ω ω c2 0 ellers Amplituderesponsen for et ideelt højpas- og båndpasfilter ses på Figur 7.3 med ω c = π 2, ω c1 = π 4 og ω c2 = 3π 4. For alle tre nævnte ideelle filtre gælder, at deres impulsrespons er uendelig. Sådanne filtre betegnes også Infinite Impulse Response (IIR) filtre. IIR-filtre vil ikke blive uddybet yderligere, da de ikke anvendes i projektet. Desuden ses det, at der i frekvensresponsen opnås en diskontinuitet, som i praksis ikke er muligt at realisere. Det er derfor nødvendigt at kunne fremstille et filter, hvis overgang mellem stopbånd og pasbånd sker gradvist. Dette kan både realiseres ved hjælp af et IIR-filter, men også ved hjælp af et filter med endelig impulsrespons - de såkaldte Finite Impulse Response (FIR) filtre, som anvendes i projektet. Da der ønskes lineær fase præsenteres nu, hvordan dette kan opnås vha. FIR-filtre.

62 52 Kapitel 7. Filterteori 1 1 π ω c ω c π ω π ω c2 ω c1 ω c1 ω c2 π ω (a)... (b)... Figur 7.3: (a) Amplituderesponsen for H h (e iω ). (b) H b (e iω ) med ω c = π 2, ω c1 = π 4 og ω c2 = 3π 4. FIR-filtre Der findes 4 forskellige FIR filtertyper med lineær fase. Disse kategoriseres efter symmetri af deres impulsrespons, samt hvorvidt filterordnen M er et lige eller ulige tal. Der udledes kun filteret af type 1. Et system siges at være et type 1 lineær fase FIR system, hvis dette har symmetrisk impulsrespons omkring M/2, hvor M er et lige heltal. Da kan impulsresponsen skrives: h[n] = h[m n] Vi opstiller nu et udtryk for frekvensresponsen af dette system: H(e iω ) = M/2 1 n=0 Ved at substituere k = M n opnås: H(e iω ) = M/2 1 n=0 h[n]e iωn + h[m/2]e iωm/2 + h[n]e iωn + h[m/2]e iωm/2 + Ved udnyttelse af symmetri omkring M/2 opnås: H(e iω ) = M/2 1 k=0 M n=m/2+1 M k=m/2+1 h[n]e iωn h[k]e iω(m k) h[k](e iωk + e iω(m k) ) + h[m/2]e iωm/2 M/2 = e iωm/2 a[k] cos(ωk) k=0

63 7.3. Design af filtre 53 hvor a[0] = h[m/2] og a[k] = 2h[(M/2) k] for k = 1, 2... M/2. Det ses, at der er opnået lineær fase, da β = 0 eller π og α = M/2 (se (7.2)). Ligeledes kan der konstrueres et type 2 filter, hvor M er ulige. Der kan også konstrueres filtre med anti-symmetrisk impulsrespons, type 3 og type 4, der hhv. har lige og ulige M. De forskellige typer af filtre ses i Tabel 7.1 med tilhørende α og β, der giver lineær fase. [5, s. 1-6] FIR Type H(e iω ) α og β 1 e 2 e M/2 iωm/2 M+1/2 iωm/2 3 ie 4 ie k=1 k=0 M/2 iωm/2 a[k] cos(ωk) α = M 2 og β = 0 β = π a[k] cos ( ω ( k 1 2 k=1 (M+1)/2 iωm/2 k=1 )) α = M og β = 0 β = π 2 a[k] sin(ωk) α = M 2 og β = π 2 β = 3π 2 a[k] sin (ωk) α = M 2 og β = π 2 β = 3π 2 Tabel 7.1: Frekvensrespons af forskellige typer af FIR-filtre. 7.3 Design af filtre I forrige afsnit er der blevet præsenteret, hvorledes der kan opnås lineær fase med FIR-filtre. Formålet med dette afsnit er at præsentere, hvorledes disse kan tilvejebringes. Der kan anvendes mange forskellige metoder, nedenfor præsenteres vinduesmetoden, herunder Kaiser-vinduet, hvorefter Parks-McClellan-algoritmen præsenteres Vinduesmetoden Afsnittet er baseret på [16, s ]. Udgangspunktet for vinduesmetoden er en ønsket ideel frekvensrespons, som f.eks. de ideelle lav-, høj-, og båndpas-filtre beskrevet i Afsnit 7.2. Lad derfor H d (e iω ) være den ønskede frekvensrespons med impulsrespons h d [n]. Fra Afsnit 7.2 vides, at de ideelle filtre har uendelig impulsrespons, og ved at anvende en vinduesfunktion, kan h d [n] således trunkeres. Lad derfor w[n] være en vinduesfunktion. Trunkeringen af

64 54 Kapitel 7. Filterteori h d [n] kan da skrives som: h[n] = h d [n]w[n] hvor h[n] er den opnåede impulsrespons. Multiplikation i tidsdomænet medfører en foldning mellem H d (e iω ) og W (e iω ), dvs. DTFT en af hhv. h d [n] og w[n] [16, s. 62]. Således haves den opnåede frekvensrespons: H(e iω ) = 1 π H d (e iθ )W (e iω θ ) dθ 2π π Der tages nu udgangspunkt i det rektangulære vindue, der er givet ved: med følgende frekvensrespons: W (e iω ) = M n=0 w[n] = { 1 for 0 n M 0 ellers e iωn = 1 e iω(m+1) 1 e iω = eiω 1 2 e iω(m+ 2) 1 M+1 = e iω M e iω( 2 ) e iω( M+1 2 ) e iω 1 2 e iω e iω 1 2 e iω 1 2 ( ( )) sin ω M+1 = e iω M 2 2 ( ) (7.3) sin ω 1 2 På Figur[ 7.4 ses amplituderesponsen ] for det rektangulære vindue med M = 10. Intervallet 2π M+1, 2π M+1 betegnes som hovedsløjfen, og de resterende intervaller mellem to på hinanden følgende nulpunkter i perioden betegnes som sidesløjfer. W (e iω ) 2π M+1 2π M+1 π 2π ω Figur 7.4: [ Udsnit af amplituderesponsen ] W (e iω ) for det rektangulære vindue med M = 10. Intervallet angiver hovedsløjfen. 2π M+1, 2π M+1

65 7.3. Design af filtre 55 Af Figur 7.4 fremgår, at et større M medfører en smallere hovedsløjfe. Dette er ønskværdigt, idet en smallere hovedsløjfe medfører et smallere transitionsbånd på det opnåede filter H(e iω ), når W (e iω ) foldes med H d (e iω ). I denne forstand opnås en bedre approksimation af det ideelle filter, H d (e iω ). Men af (7.3) og Figur 7.4 ses, at et større M medfører en større amplitude for hovedsløjfen samt flere sidesløjer med større amplituder. Den relative forskel mellem hovedsløjfen og sidesløjfernes amplitude er dog den samme [16, s. 563]. Det er ønskværdigt at have M så lille som muligt, idet dette reducerer antallet af beregninger i den endelige implementation. Denne problematik kan forsøges løst ved at vælge en passende vinduesfunktion og et passende M. En mulig løsning på disse problemstillinger kunne være et Kaiser-vindue. Her angiver δ den maksimale fejl i hhv. pas- og stopbånd. Hvis der er forskellige fejl i hhv. pas- og stopbånd, da vælges δ som den mindste af disse. Ud fra dette kan vinduet fremstilles ved hjælp af en formparameter β, som netop bestemmes ud fra δ. Kaiser-vinduet defineres som: w[n] = I 0[β(1 [(n α)/α] 2 ) 1 2 ] I 0 (β) for 0 n M og 0 ellers. Her er α = M/2 og I 0 den modificerede nulte-ordens Bessel-funktion af første art; for en gennemgang heraf se [21]. Parameteren β indgår som variabel i udtrykket for vinduet, og denne bestemmer formen af vinduet: en højere β giver mindre sidesløje, men breddere hovedsløjfe [1]. Det betyder, at man kan ændre formen af vinduesfunktion ved at ændre på parameteren β, uden nødvendigvis at ændre på M. I det følgende tages udgangspunkt i et lavpasfilter. Da M begrænser støtten, angiver M + 1 længden af vinduet. Ved at holde β konstant og øge filterordenen, kan bredden af hovedsløjfen reduceres, men ikke amplituden af sidesløjfen. I praksis konstrueres vinduet ved først at specificere en ønsket maksimalfejl δ, denne benyttes herefter til udregning af β og følgeligt M. Transitionsbåndets bredde ω opfylder: ω = ω s ω p (7.4) hvor ω p er pasbåndskanten, og ω s er stopbåndskanten. Ved at definere A som: A = 20 log 10 (δ) (7.5) kan den optimale formparameter β findes på følgende vis: 0,1102(A 8.7) for A > 50 β = 0,5842(A 21) 0,4 + 0,07886(A 21) for 21 A 50 0 for A < 21 (7.6)

66 56 Kapitel 7. Filterteori Et kvalificeret gæt på orden, for opnåelse af et ønsket transitionsbånd under forudsætning af et givent A, er givet som: M = A 8 2,285 ω (7.7) Det kan være nødvendigt at iterere flere gange, for at opnå et passende M. Idéen bag anvendelsen af vinduesmetoden er nu blevet gennemgået, samt de problemstillinger, der hører hertil. Den generelle problemstilling er at få en så smal hovedsløjfe som muligt, men samtidig få et så kort vindue som muligt, og dermed et lavere M. Problemet med det nævnte Kaiser-vinduet er dog, at fejlen i både pas- og stopbånd er ens. Dette er ikke altid gunstigt, idet det f.eks. kan være ønskværdigt at have en lavere fejl i pasbåndet. Nedenfor præsenteres derfor Parks-McClellan-algoritmen, hvori det er muligt at vægte fejlene i både pas- og stopbånd forskelligt Parks-McClellan-algoritmen Afsnittet er baseret på [16, s ]. I det følgende introduceres en algoritme til konstruktion af digitale FIR-filtre med lineær fase, den såkaldte Parks-McClellan-algoritme. Algoritmen søger at minimere den maksimale fejl, en såkaldt minimax-optimering. Dette gøres ved at opstille et Lagrange-interpolationspolynomium for den ønskede frekvensrespons af det ideelle filter. Alterneringssætningen (se Sætning 7.2) anvendes til at undersøge, hvorvidt fejlen mellem det ideelle filter og interpolationspolynomiet er minimax-optimeret. Såfremt den maksimale fejl ikke er minimeret, udskiftes et eller flere interpolationspunkter, hvorefter der konstrueres et nyt interpolationspolynomium. Vi søger at approksimere et type 1 FIR-filter med et polynomium i variablen x = cos(ω). Dette polynomium er givet ved: A(e iω ) = P (x) = L a k x k, (7.8) Koefficienterne a k er relaterede til impulsresponsen h[n] og L = M 2 [16, s ]. Der vil ikke gives en yderligere gennemgang af ovenstående. Således er et udtryk for frekvensresponsen af et filter blevet opstillet som et polynomium i x. Parks-McClellan-algoritmen kræver et udtryk for en fejlfunktion E(ω), dette værende fejlen mellem den ønskede frekvensrespons H d (e iω ) og frekvensresponsen A(e iω ). Ved at definere en vægtfunktion W (ω) kan vi bestemme, hvor meget præcision, der ønskes i de forskellige bånd i filteret. Fejlfunktionen opstilles som følger: k=0 E(ω) = W (ω)[h d (e iω ) A(e iω )], (7.9)

67 7.3. Design af filtre 57 Det er minimeringen af maksimalværdien af netop fejlfunktionen, som søges i Parks- McClellan-algoritmen. Når filterspecifikationerne er opstillet med en vægtning af præcisionen i de forskellige bånd, kan der kun ændres på den egentlige frekvensrespons, hvis der søges at minimax-optimere fejlfunktionen. Parks-McClellan-algoritmen udnytter Alterneringssætningen, der opstiller tilstrækkelige og nødvendige betingelser for, at man netop har den approksimation, som minimax-optimerer fejlfunktionen (7.9). For at bevise Alterneringssætningen præsenteres først en sætning, der anvendes i beviset (for bevis se [19, s. 1]). Sætning 7.1 Lad V være et lineært underrum af C(K). Et element p V er en bedste approksimation til f C(K) i sup-normen, hvis og kun hvis: hvor Z er mængden: max[f(x) p(x)]q(x) 0, q V x Z Z := {x : f(x) p(x) = f p sup } altså mængden af punkter, hvor f og p har maksimal differens. [19, s. 1] Nu opstilles og bevises Alterneringssætningen. Sætning 7.2 (Alterneringssætningen) Et polynomium p P n, hvor P n er mængden af polynomier af grad højst n, er en bedste approksimation til en kontinuert funktion f, hvis og kun hvis der eksisterer (n + 2) punkter, således: f(x k ) p(x k ) = ( 1) k f p sup Differensen skal altså antage sin maksimalværdi i (n + 2) punkter med skiftende fortegn. [19, s. 2] Bevis: Antag, at f p antager sin maksimalværdi, f p sup, i n + 1 punkter. Lad: Z = {x [a, b] : f(x) p(x) = f p sup } og: Z ± = {x [a, b] : f(x) p(x) = ± f p sup }

68 58 Kapitel 7. Filterteori Det bemærkes, at Z er foreningsmængden af Z + og Z. Der konstrueres en foreningsmængde af disjunkte intervaller A, således: Z A samt at to på hinanden følgende elementer i Z befinder sig i på hinanden følgende intervaller i A. Herefter vælges en mængde af punkter z i, således: b 1 < z 1 < a 2 b m 1 < z m 1 < a m hvor a i og b i er endepunkterne i det i te element i A. Altså er z i et punkt i mellem to elementer. Vi opstiller polynomiet q som følger: q(x) = Π m 1 k=1 (x z k) m 1 n. Vi bemærker, at q skifter fortegn, når x passerer z k. Da disse punkter ikke er elementer i intervallerne i A vides, at q har forskellige fortegn i to på hinanden følgende intervaller. Derfor haves for enten q eller q: [f(x) p(x)]q(x) < 0, x Z, hvorfor p ikke kan være en bedste approksimation pr. Sætning 7.1, hvis f p kun antager maksimalværdi med skiftende fortegn i n + 1 punkter. Det antages nu, at p opfylder: f(x k ) p(x k ) = ( 1) k f p sup. Lad q P n og bemærk, at for at p ikke er en bedste approksimation, skal der gælde: [f(x k ) p(x k )] q(x k ) < 0 hvilket vil kræve n+2 fortegnsskift af q, da f(x k ) p(x k ) skifter fortegn n+2 gange. Kravet til q om n + 2 fortegnsskift er umuligt pr. algebraens fundamentalsætning, da q har grad højst n. [19, s. 2] Da der er etableret tilstrækkelige og nødvendige betingelser for en minimax-optimering af fejlfunktionen, præsenteres nu Parks-McClellan algoritmen. Der antages i det følgende, at der for det ideelle filter ønskes gain K = 1 i pasbåndet og 0 i stopbåndet. Lad δ være den mindste af de tilladte fejl i hhv. stop- og pasbåndet. Ved at bruge (7.8), kan (7.9) opsplittes til et system af L + 2 ligninger på følgende vis: 1 x 1 x x L 1 1 x 2 x x L x L+2 x 2 L+2... x L L+2 1 W (ω 1 ) a 1 0 H d (e iω 1 ) W (ω 2 ) a 1.. = H d (e iω 2 ). ( 1) L+1 δ H d (e iω L+2) W (ω L+2 ) (7.10)

69 7.3. Design af filtre 59 Implementeringen af algoritmen begynder med at gætte på L + 2 frekvenser, til hvilke fejlfunktionen antager værdien δ med skiftende fortegn. I stedet for at løse matrixligningen benyttes Lagrange-interpolation. For de givne frekvenser, der gættes på, haves [16, s. 591]: δ = L+2 k=1 L+2 k=1 hvor b k er et polynomium af grad L + 2: b k = b k H d (e iω k) [b k ( 1) k+1 /W (ω k )] L+2 i=1,i k (7.11) 1 (x k x i ). (7.12) Dette medfører, at hvis koefficienterne a k er givet som i (7.10), og δ er givet som i (7.11), da antager fejlfunktionen værdierne ±δ i de L + 2 frekvenser. En konsekvens er, at A(e iω ) antager værdierne 1 ± δ i pasbåndet og ±δ i stopbåndet, da det ideelle filter har gain på hhv. 1 og 0 i båndene. Vi har tidligere opstillet A(e iω ) som et trigonometrisk polynomium, og under substitutionen x = cos(ω) som et normalt polynomium i variablen x. Denne fremstilling P (x), af det trigonometriske polynomium tillader os at udføre Lagrange-interpolation på vores L + 2 punkter, hvorfor vi opnår: A(e iω ) = L+1 k=1 L+1 [d k /(x x k )]C k. (7.13) [d k /(x x k )] k=1 Dette er den Barycentriske Lagrange-interpolation, hvor C k er A(e iω ) isoleret i fejlfunktionen: C k = H d (e iω k ) ( 1)k+1 W (ω k ), (7.14) og d k er givet som: d k = b k (x k x L+2 ). (7.15) Således opnås en interpolation gennem L + 1 punkter. I det sidste punkt antages den rette værdi dog også, da (7.10) er opfyldt. Vi bemærker, at interpolationen giver os frekvensresponsen til alle ω. Vi kan derfor finde de punkter, hvor E(ω) δ. Der er opnået en minimax-approksimation, når E(ω) δ. Vi kan nu beskrive algoritmen skridt for skridt:

70 60 Kapitel 7. Filterteori Algoritme 1 Parks-McClellan 1: procedure Parks-McClellan 2: Gæt på L + 2 frekvenser ω 1,..., ω L+2, hvor fejlfunktionen antager maksimalværdi med skiftende fortegn. 3: Udregn δ i (7.11). 4: Udfør Barycentrisk Lagrangeinterpolation på ω 1,..., ω L+2 vha. (7.13). 5: Udregn fejlen E(ω) ω. 6: Lokalisér ekstrema, hvor E(ω) δ. 7: if Antallet af ekstrema = L + 2 then 8: if Ekstrema er uændret then 9: Bedste approkismation nået. 10: break 11: else 12: Gå til linje 3. 13: else 14: Behold L + 2 største ekstrema med skiftende fortegn. 15: if Ekstrema er uændret then 16: Bedste approkismation nået. 17: break 18: else 19: Gå til linje 3. Af Algoritme 1 fremgår i Linje 3-6, at der gættes på L + 2 punkter, hvorefter de præsenterede formler udregnes. Når der i Linje 5 udregnes fejlen for alle ω, fremgår dette i praksis ved at uniformt inddele frekvensaksen i et antal diskrete frekvenspunkter. Antallet af frekvenspunkter kan udregnes på forskellig vis, men densiteten af punkterne er typisk en faktor 16 (se [14], [13]). I Python opnås antallet af frekvenspunkter ved (M + 2)16 frekvenspunkter (se [8]), hvor M angiver filterets orden. Det er således i disse punkter ekstremaerne i Linje 6 fremkommer. Det første gæt på de L + 2 punkter udføres i praksis ved at uniformt fordele L + 2 punkter på frekvenspunkterne. På Linje 7-12, såfremt de fremfundne ekstrema udgør L+2 punkter, udføres proceduren fra Linje 3 igen, såfremt de nye fundne L+2 ekstrema er ændret, og ellers afsluttes algoritmen, idet den bedste approksimation er bestemt. Fra Linje vælges de største L + 2 ekstrema med skiftende fortegn, og igen udføres algoritmen fra inje 3, såfremt disse er ændret. Det er værd at bemærke, at en vigtig del af algoritmen er lokaliseringen af ekstrema og interpolation gennem disse nye punkter. Denne udveksling betegnes også Remez-algoritmen, og signal-biblioteket i Python navngiver således også dets Parks-McClellan-algoritme som Remez. Når algoritmen er afsluttet, er frekvensresponsen for det opnåede optimale filter fundet, og impulsresponsen findes således ved at udføre en invers DFT. Filterets orden M afgør, hvor lang impulsresponsen bliver.

71 7.3. Design af filtre 61 I dette kapitel er den nødvendige teori omkring design af digitale filtre blevet gennemgået. I det følgende kaptitel beskrives implementeringen af de funktioner, som skal fremstille hhv. spektrogrammer og filtre, samt bestemme toner.

72

73 Kapitel 8 Implementering I de forrige kapitler er den nødvendige teori til implementering af vores applikation blevet præsenteret. Denne implementering dokumenteres i dette kapital. På Figur 8.1 ses flowchartet for den implementerede applikation. Først importeres de nødvendige funktioner i form af biblioteker, og herefter indlæses det optagede data, som ønskes behandlet af applikationen. Det indlæste data behandles i funktionen pitch_band_filter, hvor dataet filtreres af det implementerede båndpasfilter (se Afsnit 8.2). Herefter behandles dataet i funktionen spectrogram (se Afsnit 8.4). Til sidst bestemmes toner med identify_keynotes (se Afsnit 8.5). 8.1 Indhent data Det optagede input skal indlæses i applikationen for at kunne blive behandlet. Indhentning af dette data sker vha. funktionen read_data, hvis struktur er vist i Algoritme 2. Algoritme 2 Read_data 1: function read_data(fil, direct =../../Labdata/Lydoptagelser/ ) 2: Tjek om fil = string 3: Tjek om direct = string 4: Indlæs data og samplingsfrekvens 5: return data og samplingsfrekvensen Det fremgår af Algoritme 2 i Linje 1, at funktionen read_data tager to input-værdier, hhv. filnavnet og stien til filens placering. Der er foruddefineret en sti, hvis en anden ikke bliver angivet. I Linje 2-3 testes der for, om hhv. filnavnet og stien er angivet som string. Hvis begge er af typen string, indlæses dataet og samplingsfrekvensen fra filen i Linje 4 og returneres i Linje 5. 63

74 64 Kapitel 8. Implementering Start Import funktioner Input-data pitch_band_filter spectrogram identify_keynotes Stop Figur 8.1: Overordnet flowchart over applikationen. Rektangulære vinduer med bløde hjørner repræsenterer terminalvinduer (rød). Rektangulære vinduer repræsenterer processer (orange). Parallelogrammet repræsenterer data (blå) og rektangulære vinduer med dobbelt kant repræsenterer sub-rutiner (cyan). 8.2 Filter Når dataet er indlæst, ønskes at filtrere evt. støj fra. Fra kravspecifikationerne for filteret på side 17 ønskes maks. dæmpning på 1 db i pasbånd og min. dæmpning på 20 db i stopbånd. Kravet om lineær fase er overholdt, idet der opnås FIR-filtre vha. Parks-McClellan-algoritmen. Da det ikke er muligt, og ej heller meningen med applikationen, at kende støjen på forhånd, vælges derfor at designe et multi-båndpasfilter, hvis pasbånd ligger over hver tone i guitarspektrummet (se afsnittet om musikteori på side 5). For at kunne anvende Parks-McClellan-algoritmen, er det nødvendigt at specificere intervallerne for pas- og stopbåndene. Den mindste forskel mellem to på hinanden følgende toner i guitarspektrummet befinder sig ved tonerne E 2 og F 2 på hhv. 82,42 og 87,31 Hz med en forskel på ca. 4,9 Hz. Disse toner udgør ligeledes de to første

75 8.2. Filter 65 toner i selve guitarspektrummet. Hvis det nu antages, at pasbåndet for hver af disse to toner kun indeholder selve tonerne, og det samtidig vurderes, at en rimelig mindste transitionsbåndsbredde er på 1 Hz fås, at bredden af stopbåndet mellem disse to toner er 4,9 0, 5 1 = 1,45 Hz. Det vurderes dog, at det er muligt i en given situation, at brugeren af applikationen ikke nødvendigvis spiller den præcise frekvens for den givne tone. Der er således tilladt en afvigelse. Dette skal naturligvis reflekteres i bredderne på de givne pasbånd. For den mindste tone på 82,42 Hz vælges, at den største afvigelse må være 1 Hz, således opnås et breddere pasbånd uden at fjerne stopbåndet helt. Lad tonen 82,42 Hz udgøre centerfrekvensen for dets pasbånd. De 1 Hz udgør således ca. 1,2% af centerfrekvensen. Det vælges nu at definere alle toner som centerfrekvenserne for deres respektive pasbånd, og endefrekvenserne udregnes ved at trække eller lægge en procentsats til. For en sikkerheds skyld vælges denne procentsats til at være 1%. Ligeledes vælges transitionsbåndsbredden til 1 Hz. Til implementering af Parks-McClellan-algoritmen anvendes Pythons implementation af denne, Remez, fra Signal-biblioteket i Scipy-biblioteket (se [8]). Det er dog observeret ved numeriske eksperimenter, at Parks-McClellan-algoritmen ikke er mulig at anvende til dette formål. Da det ikke har været muligt at bestemme en metode til at vælge vægte for hhv. pas- og stopbånd, er der først forsøgt med forskellige fremgangsmåder: ens vægt i både pas- og stopbånd, større vægt i stopbånd end pasbånd, større vægt i pasbånd end stopbånd. Med disse fremgangsmåder lykkedes det ikke at opfylde kravsspecifikationerne, og derfor blev der forsøgt med tilfældigt valgte vægte. I Bilag E.1 ses figurer af amplituderesponsen i db for multibåndpasfiltre opnået ved anvendelse af Parks-McClellan. På Figur E.2-E.3 er der anvendt en samplingsfrekvens på 44,1 khz, men med en filterorden på hhv. 200 og 700. På hver af disse figurer er der to sæt filtre, begge med forskellige, men tilfældigt generede vægte. Filterene opfylder ikke de angivne krav, og selv hvis samplingsfrekvensen reduceres med en faktor 10 (se Figur E.1), opfyldes kravene fortsat ikke. Koden til dette kan findes i Parks-McClellan.py i Bilag A. Det tyder på, at det kan blive for svært at fastsætte de præcise vægte, der vil resultere i det ønskede filter, idet en ændring af vægte resulterer i vidt forskellige filtre. Dette skyldes formentlig de mange pasbånd, samt deres indbyrdes afstand. Det konkluderes, at ideen bag Parks-McClellan er god, men grundet de mange pasbånd er det ikke muligt at bestemme de vægte for pasog stopbånd, der opfylder kravene for filteret på side 17. Der vælges, på baggrund af ovenstående, at forsøge med et Kaiser-vindue i stedet for. Her vælges ligeledes en transitionsbåndsbredde på 1 Hz, at tonerne udgør centerfrekvenserne for pasbåndene, og at enderne på pasbåndene udgør ±1% af centerfrekvenserne. Filteret er implementeret i Kaiser.py ved anvendelse af Pythons FIR-filter funktion signal.firwin, fra Signal-biblioteket i Scipy-biblioteket (se [7]), der fremstiller FIR-filtre vha. vinduesmetoden. De viste figurer i dette afsnit er genereret med

76 66 Kapitel 8. Implementering Kaiser_plot.py, der importerer Kaiser.py. Funktionen signal.firwin er i dette projekt anvendt som følger: Algoritme 3 signal.firwin 1: function signal.firwin(numtaps, cut_offs, window=( kaiser, beta), pass_zero=false, nyq=nuq_f) 2: return filter_coeff På Linje 1 i Algoritme 3 ses, at firwin tager fem inputværdier, hvor numtaps er filterets længde, og cut_offs er en liste med knækfrekvenser. Disse knækfrekvenser udregnes i praksis ud fra de angivne endefrekvenser for pasbåndene, idet knækfrekvenserne, grundet symmetrien af hovedsløjfen for vinduesfunktioner, befinder sig midt på transitionsbåndsintervallet. window angiver vinduet, som her er sat til et Kaiser-vindue, og beta er formparameteren beskrevet i (7.6) på side 55. pass_zero angiver, hvis sat til False, at DC-forstærkningen skal være 0. Dette er ønskeværdigt, idet der ønskes et stopbånd indtil første pasbånd med tonen på 82,42 Hz som centerfrekvens. Endeligt angiver nyq Nyquist-frekvensen. På Linje 2 returneres filterkoefficienterne for filteret. Den endelige implementation og opnåelse af det ønskede filter er forklaret i Algoritme 4.

77 8.2. Filter 67 Algoritme 4 Kaiser-vindue-filter 1: function pitch_band_filter(delta_percent, trans_length, fs, M_- gain=1, plot=none, save=none) 2: nyq_f = fs/2 3: db_specs = [-1, -20] 4: db_max_error = max(abs(db_specs)) 5: Udregn centerfrekvenser vha. guitar_pitches 6: Udregn pasbåndsintervaller ud fra delta_percent 7: passbands = liste med pasbåndsintervaller 8: Udregn knækfrekvenser ud fra passbands og trans_length 9: cut_offs = liste med knækfrekvenser 10: width = trans_length/nyg_f 11: numtaps, beta = signal.kaiserord(db_max_error, width) 12: numtaps = numtaps M_gain 13: filter_coeff = signal.firwin(numtaps, cut_offs, window=( kaiser, beta), pass_zero=false, nyq=nyg_f) 14: if plot=true then 15: Plot filterets amplituderespons i db og faserespons 16: if save=true then 17: Gem plot 18: return filter_coeff I Algoritme 4 ses på Linje 1, at inputtet for funktionen er delta_percent, der angiver den procentmæssige andel af centerfrekvenserne, der skal anvendes som endefrekvenser for det tilhørende pasbånd. Som førnævnt er denne sat til 1%, dvs. delta_percent = 0,01. trans_length udgør bredden af transitionsbåndene, der ligeledes som førnævnt er sat til 1 Hz. fs angiver samplingsfrekvensen, der som nævnt i Afsnit 2.1.1, er 44,1 khz. Som default er plot og save sat til None. Hvis disse begge sættes til True plottes amplituderesponsen og faseresponsen for filterne, og plottene gemmes. M_gain vender vi tilbage til. På Linje 2 defineres Nyquistfrekvensen som den halve samplingsfrekvens. På Linje 5-7 beregnes tonerne i guitarspektrummet vha. guitar_pitches (se freq_n_pitches.py i Bilag A), hvorefter pasbåndsintervallerne udregnes vha. delta_percent. Disse intervaller gemmes efterfølgende i listen passbands. Fra passbands og den angivne transitionsbåndslængde trans_length udregnes de tilhørende knækfrekvenser på Linje 8, som gemmes i listen cut_off på Linje 9. På Linje 10 udregnes bredden af transitionsbåndet i forhold til Nyquistfrekvensen, mens der på Linje 3-4 bestemmes det maksimale angivne db-krav, som her er de 20 db for stopbåndet. Ud fra dette og transitionsbåndsbredden i forhold til Nyguistfrekvensen, udregnes nu filterets længde numtaps og formparameteren beta, der blev beskrevet på side 55. På Linje 13 bereg-

78 68 Kapitel 8. Implementering nes filterkoefficienterne, som returneres på Linje 18. På linjerne plottes filterets amplituderespons i db samt faseresponsen, såfremt plot er sat til True. Hvis dette er tilfældet, og save samtidig er sat til True, gemmes plottene ligeledes på Linje I Algoritme 4 indgår ligeledes variablen M_gain, som ved default er sat til 1. Da den beregnede filterlængde numtaps, jævnfør teorien beskrevet i Afsnit 7.3.1, ikke nødvendigvis er korrekt i første omgang, anvendes M_gain til at skalere filterlængden, indtil den filterlængde, der opfylder de angivne krav, er fundet. For den anvendte samplingsfrekvens på 44,1 khz, er M_gain bestemt til at være 3,1 for, at kravene er opfyldt. Dette medfører en filterorden på , hvortil den oprindelige filterorden var beregnet til værende 37014, hvilket må siges at være højt (for diskussion heraf, se Kapitel 9.1.4). Amplituderesponsen i db for filteret ses på Figur 8.2, mens faseresponsen ses på Figur 8.3. Amplitude [db] Guitarspektrummet i båndpasfilteret med M= Toner Pasbåndskanter Knækfrekvenser db krav Frekvens [Hz] Figur 8.2: Amplituderesponsen i db af det opnåede filter med orden M = For overskuelighedens skyld er kun et udsnit af filteret vist.

79 8.2. Filter Faserespons af båndpasfilter med M= Vinkel [Radianer] Frekvens [Hz] Figur 8.3: Faseresponsen af det opnåede filter med orden M = Amplituderesponsen er for overskuelighedens skyld kun vist omkring guitarspektrummet, da dette udgør en meget lille del af hele frekvensspektrummet. I Bilag E.2 på Figur E.5 ses amplituderesponsen for filteret ni toner af gangen, mens hele filteret ses på Figur E.4 i Bilag E.2. Det konkluderes, at filteret overholder de angivne db-krav. Da der er plottet mange punkter i Figur 8.3, fremgår det ikke tydeligt, at der er opnået lineær fase. På Figur 8.4 er derfor vist to udsnit for faseresponsen. Det ses ud fra figurene, at der er opnået lineær fase, og ligeledes bemærkes et pasbånd ved ca Hz på Figur 8.4b 2420 Faserespons af båndpasfilter med M= Faserespons af båndpasfilter med M= Vinkel [Radianer] Vinkel [Radianer] Frekvens [Hz] (a) Frekvens [Hz] (b) Figur 8.4: (a) Faserespons i et stopbåndsinterval. (b) Faserespons i et interval med et pasbånd beliggende fra ca Hz. Den høje filterorden skyldes dels den høje samplingsfrekvens og dels den lave transitionsbåndsbredde. Af (7.7) på side 56 fremgår, at en mindre transitionsbåndsbredde medfører en større filterorden. Da samplingsfrekvensen samtidig er høj, er transitionsbåndsbredden relativt til Nyquistfrekvensen meget lav, hvorfor det er nødvendigt med

80 70 Kapitel 8. Implementering en høj filterorden. Det er pasbåndene ved de lave frekvenser, der primært er skyld i den høje filterorden. Dette skyldes, at pasbåndene ligger tæt, og pasbåndsbredderne er små i forhold til transitionsbåndsbredden. I et forsøg på at mindske den meget høje filterorden, er der blevet foretaget en downsampling med en faktor 20, således der opnås en samplingsfrekvens på 2205 Hz. Der er ligeledes forsøgt downsampling med en faktor 10 og 5. Filtrene for disse præsenteres ikke i dette afsnit, men resultaterne af downsampling ses i Afsnit Amplituderesponsen i db samt faseresponsen ses på hhv. Figur 8.5 og Figur 8.6. Her er M_gain bestemt til at skulle være 4,4, før kravene er overholdt. Amplitude [db] Guitarspektrummet i båndpasfilteret med M=8148 Toner Pasbåndskanter Knækfrekvenser db krav Frekvens [Hz] Figur 8.5: Amplituderesponsen i db af det opnåede filter med orden M = 8148, hvor samplingsfrekvensen er 2205 Hz Faserespons af båndpasfilter med M= Vinkel [Radianer] Frekvens [Hz] Figur 8.6: Faseresponsen af det opnåede filter med orden M = 8148, hvor samplingsfrekvensen er 2205 Hz. På Figur 8.5 ses hele filterets amplituderespons, og det ses, at guitarspektrummet nu

81 8.3. STFT 71 er fordelt over hele frekvensspektrummet, modsat filteret med samplingsfrekvensen 44,1 khz. Det ses ligeledes, at filterordnen er markant reduceret. Dette skyldes bl.a., at transitionsbåndsbredden er højere ift. Nyquistfrekvensen sammenlignet med filtret for samplingsfrekvensen på 44,1 khz. For et nærmere kig på filterets amplituderespons ved guitartonerne henvises til Figur E.6 i Bilag E.3, hvor amplituderesponsen i db er vist for ni toner af gangen. Af Figur 8.6 fremgår filterets faserespons med tydeligere diskontinuiteter, grundet den markante lavere filterorden, men igen kan det være svært - dog lidt nemmere - at gennemskue, om der er opnået lineær fase. Derfor er der vist to intervaller af faseresponsen på Figur 8.7. Ud fra figurene fremgår igen lineær fase, og det bemærkes, at der ses et pasbånd ved ca Hz på Figur 8.7b. 6.0 Faserespons af båndpasfilter med M= Faserespons af båndpasfilter med M=8148 Vinkel [Radianer] Frekvens [Hz] (a) Vinkel [Radianer] Frekvens [Hz] (b) Figur 8.7: (a) Faserespons i et stopbånds interval. (b) Faserespons i et interval med et pasbånd beliggende fra ca Hz. Grundet kravene for filteret anført på side 17, er formparameteren β for Kaiservinduet lig 0. Dette betyder, at de fremstillede filtre er tilvejebragt vha. et rektangulært vindue. [16, s. 566] 8.3 STFT I STFT.py findes en implementeret STFT. Koden består af tre dele, og bruges til at Fourier-transformere data, samt anvende vinduesfunktioner til at udplukke datasegmenter. Input er et data-array, og output er en matrix, hvis søjler indeholder de Fourier-transformerede vindue-produkter. Kodens dele præsenteres enkeltvis herunder, efterfulgt af tests. Kodens del-elementer testes enkeltvis, da der ikke haves en separat STFT at sammenligne med. Uddybende kommentarer findes i selve koden.

82 72 Kapitel 8. Implementering Funktionerne zeropad og datasplit Den første del tilføjer nuller, kaldet zero padding, i begge ender af data-arrayet, således der mindst haves en halv vindueslængde af nuller i begge ender. Dette gøres, således det første og sidste vindue i STFT en kan centreres omkring hhv. første og sidste datapunkt. En algoritme for zeropad-koden ses herunder: Algoritme 5 zeropad 1: function zeropad(data, windowsize, overlap) 2: Forlæng data-array med nuller af længde (windowsize/2) i starten 3: Opdel data i mindre segmenter vha. datasplit 4: for i in antal data-arrays do 5: if data-array[i] ikke har korrekt længde efter datasplit then 6: Generer nuller, der kompenserer for afvigelsen 7: Forlæng array[i] med ovenstående 8: return data som nested array Herefter opdeles data-arrayet i mindre segmenter af længde windowsize vha. datasplit (se Algoritme 6), således vinduesfunktionen let kan multipliceres med dataet efterfølgende i en for loop. Data-segmenterne overlappes med en faktor overlapfac, hvis denne er angivet. Output er et nested array. Algoritme 6 datasplit 1: function datasplit(data, windowsize, overlap) 2: return data[i: i + windowsize] for i in range(0 ; længde af data) med step: (windowsize - overlap) Efter data-arrayet er blevet opsplittet i et nested-array, skal det multipliceres med den givne vinduesfunktion. Dette gøres i funktionen vindue (se Algoritme 7). Algoritme 7 vindue 1: function vindue(data, windowfunc, windowsize) 2: Udregn array til givet vinduetype af længde windowsize 3: for i in antal data-arrays do 4: for j in respektive indgange i array[i] do 5: data[i][j] = data[i][j] vindue[j] 6: return data Herefter udregnes Fourier-transformationen af de enkelte arrays vha. fft.rfft, som ligger i Python s numpy-bibliotek (se Algoritme 8). Dette giver en matrix, som transponeres inden den returneres.

83 8.3. STFT 73 Algoritme 8 fft 1: function vindue(data, windowfunc, windowsize) 2: return rfft(data[m][:]) for m in range(0 ; antal data-arrays) Test Testen findes i Test_af_modul.py og kaldes ved kommandoerne test( zeropad ), test( overlap ) og test( vindue ). Kravet for zero padding er, at der forlænges med mindst en halv vindueslængde i begge ender af data-arrayet, men for at sikre, at der er nok datapunkter i sidste array, forlænges yderligere, således det passer med en hel vindueslængde. I testen ses derfor blot på det første og sidste array. Funktionen giver følgende output: Antal nuller i hhv. f ø rste og sidste array : med windowsize lig 256. Det ses, at de første 129 elementer i det første array er nuller, hvilket skyldes, at første datapunkt i data-arrayet er lig nul grundet konstruktionen af test-signalet, samt zero padding på 128. Det sidste array ender med 180 nuller, hvilket svarer til zero padding på 128, samt ekstra 52 nuller for korrekt dimensionering af data-matricen. Kravet om zero padding på mindst 1 2 windowsize er således overholdt. For test af datasplit tjekkes, om output-arrayet har rette form ift. det angivne overlap. Der genereres en tidsakse, som opdeles vha. datasplit, og herefter plottes Hanning-vinduer som funktion af tids-arrayene. Der testes med tre overlapparametre: 0; 0,3 samt 0,6 (se Figur 8.9).

84 74 Kapitel 8. Implementering (a) Overlapfaktor på 0. (b) Overlapfaktor på 0,3. (c) Overlapfaktor på 0,6. Figur 8.8: Test af forskellige overlapsfaktorer med Hanning-vinduer. Det ses, at Hanning-vinduerne forskydes korrekt ud ad tidsaksen ift. overlap-parameteren, og der opnås således det ønskede overlap af vinduesfunktionerne. Funktionen vindue testes med et konstrueret sinus-signal fra wavegen.synth med en frekvens på 100 Hz, og en amplitude på 0,8. Dataet opsplittes og multipliceres med Hanning-vinduer vha. funktionerne zeropad og vindue, og plottes herefter som funktion af tiden (se Figur 8.9). Det forventes, at sinus-signal bliver approksimeret med vinduesfunktionerne. Som det fremgår af Figur 8.9, ses en tydelig aftegning af sinus-signalet.

85 8.4. Spektrogram 75 (a) (b) Figur 8.9: vindue testes vha. et konstrueret sinus-signal, som multipliceres med Hanningvinduer. (a) Resultat af test. (b) Udsnit af (a). 8.4 Spektrogram Da der ønskes at sammenholde frekvens og amplitude ift. tiden, laves et spektrogram over dataet. Et spektrogram er en visuel repræsentation af spektrummet af frekvenser som funktion af tiden. Den kan både vises i 2D eller 3D. I 2D er den tredje dimension vist ved hjælp af farver, der indikerer amplitudens størrelse. Det er et 2-dimensionelt spektrogram, der ønskes fremstillet, hvor tiden er repræsenteret ud ad første-aksen og frekvensen ud ad anden-aksen. Algoritme 9 beskriver skridt for skridt, hvorledes spektrogrammet i applikationen er implementeret.

86 76 Kapitel 8. Implementering Algoritme 9 Spectrogram 1: Udregn STFT vha. funktionen STFT. 2: Bestem værdierne for akserne vha. funktionen specaxis. 3: if db = True then 4: Omregn STFT-udregningerne til db. 5: else 6: For STFT-udregningerne bestem modulus i 2. potens 7: Plot spektrogrammet med pcolormesh. 8: if maxlimit er en tuple med længde 2 then 9: Sæt grænserne for x- og y-aksen for plottet ud fra angivne værdier i maxlimit. 10: else if maxlimit er en float og er større end 0 then 11: Sæt grænsen for y-aksen ud fra maxlimit, og x-aksen ud fra værdien fra specaxis for plottet. 12: else 13: Sæt grænserne for x- og y-aksen for plottet ud fra angivne værdier fra specaxis. 14: Sæt labels på plottet. 15: if Der er angivet en sti til, hvor plottet skal gemmes then 16: Gem plottet ud fra de angivne informationer og viser det. 17: else 18: Vis plottet. 19: if give_me_data = True then 20: return det beregnede data. Af Linje 1 i algoritmen fremgår, at STFT en af dataet udregnes vha. funktion STFT. STFT-udregningerne bruges i Linje 2 til at bestemme værdierne for akserne. Disse bestemmes med funktionen specaxis, som ses i Algoritme 10. Disse værdier for akserne anvendes i Linje 11 og 13 til at sætte grænserne for akserne i plottet. Det tjekkes i Linje 3-6 om det ønskes, at STFT-udregningerne skal være i db, og i givet fald omregnes de til db, ellers beregnes modulus i 2. potens. Efter omregningen af dataene, plottes spektrogrammet i Linje 7 med funktionen pcolormesh. Grænserne for plottets akser sættes i Linje 8-13, først ud fra maxlimit, hvis denne er opgivet, ellers anvendes de udregnede grænser fra Linje 2. Efter plottets grænser er blevet justeret, tilføjes labels til plottet i Linje 14. I Linje 15-18, såfremt der er opgivet en sti, hvortil plottet skal gemmes, bliver det gemt samt vist, ellers bliver det kun vist. Som det sidste i algoritmen tjekkes der i Linje 19 om give_me_data er True i givet fald returneres de beregnede data.

87 8.5. Tonebestemmelse 77 Algoritme 10 Specaxis 1: function specaxis(stftdata, overlapfac = 0., fs=44100) 2: freqbins, timebins = shape(stftdata) 3: f = [0: freqbins] (fs /(2 (freqbins-1)) 4: tfac = (1 overlapfac) (2 (freqbins - 1))/fs 5: t = [0: timebins] tfac - floor(freqbins-1)/fs 6: return t, f Af Algoritme 10 fremgår det af Linje 1, at funktionen specaxis tager værdierne stftdata, overlapfac og fs. stftdata er de udregnede STFT data fra Linje 1 i Algoritme 9, overlapfac er overlapfaktoren (default er 0), og fs er samplinfsfrekvensen (default er 44100). I Linje 2 bestemmes dimensionerne for stftdata. Disse bruges i Linje 3-5 til at bestemme værdier for hhv. frekvensaksen og tidsaksen. Disse akseværdier returneres i Linje 6 og er det data, der fås i Linje 2 i Algoritme Tonebestemmelse I det følgende vil funktionen identify_keynotes blive gennemgået. Funktionen anvendes til at bestemme de toner, som det optagede signal indeholder. Funktionen består af fem dele, og hver del gemmegås for sig. Inden dette, angives funktionens in- og output. Funktionen tager som udgangspunkt arrays t, f og Stt, der er outputtet fra spectrogram (se Afsnit 8.4), som input. Derudover tager funktionen variabler cutoff, lowfreq og filname. Variablen lowfreq angiver den laveste frekvens, som kan blive repræsenteret, og da det er en standard-stemt guitar, som applikationen er tilsigtet, er den laveste frekvens 82,47 Hz. Outputtet fra funktionen er to arrays med henholdsvis de fundne toner og varigheden af disse i sekunder. Disse gemmes i en tabel, og filname angiver navnet på filen. Vi vender tilbage til cutoff senere. Del 1 I den første del laves de indledende udregninger (se Algoritme 11). Først bestemmes den frekvens i f, der ligger tættest på 82,47 Hz. Herefter udregnes længden af t samt indekset, hvor t er lig 0. Til sidst bestemmes for hvert vindue frekvensen med den største amplitude, samt dets indeks i f, der gemmes i hhv. keyfreqs og keyindexs. Del 2 I anden del undersøges, hvilke af de fundne frekvenser i keyfreqs, der ikke hører til. Dette gøres ved tælle, hvor mange gange indekserne i keyindexs forekommer. I

88 78 Kapitel 8. Implementering Algoritme 11 Identify keynotes Del 1 1: lowfreq = den frekvens i f, der ligger tættes på lowfreq 2: N = længden af t, hvilket svarer til antallet af vinduer. 3: startindex = indekset, hvor t er lig 0 4: keyindexs, keyfreqs = tomme arrays til at opbevarer indekser og frekvenser for tonerne 5: for hvert vindue do 6: Gem indekset i keyindexs for, hvor i vinduet amplituden er størst. 7: if er frekvensen under lowfreqs then 8: Gem 0 i keyfreqs for, hvor i vinduet amplituden er størst. 9: else 10: Gem frekvensen i keyfreqs for, hvor i vinduet amplituden er størst. Numpy findes funktionen bincount, der kan anvendes i dette tilfælde. De indekser, som ikke forekommer mere end cutoffgange, gemmes i array et falseindexs. Del 3 Først undersøges, om 0 ligger i falseindexs. Er dette tilfældet, springes frem til næste indeks k efter 0, der ikke ligger i falseindexs og keyfreqs[0]=keyfreqs[k]. Dernæst sættes dfreq = 0., og table2 er tabellen med de heltal, der giver overtonen svarende til en oktav af grundtonen. Herefter gennemgås hvert element i keyfreqs. For overskuelighedens skyld er dette vist i et flowchart (se Figur 8.10). En kort forklaring er: hvis keyfreqs[i]=0 er forskellig fra keyfreqs[i+1], og i+1 ligger i falseindexs, springes frem til keyfreqs[i+k], hvor i+k ikke ligger i falseindexs. Er keyfreqs[i+1] en overtone af keyfreqs[i+k] og en oktav af grundtonen, så sættes keyfreqs[i+1] lig med keyfreqs[i+k]. Ellers sættes keyfreqs[i+1] lig med den af keyfreqs[i] og keyfreqs[i+k], som ligger tættest på. Hvis keyfreqs[i] ikke er nul, tjekkes først, om keyfreqs[i+1] er en overtone af keyfreqs[i] og en oktav af grundtonen. Hvis i+1 ikke ligger i falseindexs, da sættes k=2, og ovenstående gentages. Del 4 og 5 I fjerde del omregnes alle frekvenser i keyfreqs til toner med funktionen freq_to_pitch. Disse toner gemmes i keynotes. Da det ikke er nødvendigt at have den samme tone gentaget flere gange, så løbes der igennem keynotes, og hvis keynotes[i] er lig med keynotes[i+1], fjernes keynotes[i+1]. Hver tone, der fjernes, svarer til, at keynotes[i] varer et ekstra vindue. Når der vides, hvor mange vinduer en tone varer, kan antallet af vinduer omregnes til sekunder. Varigheden i sekunder gemmes i time.

89 8.6. Test af modul 79 Start: i=0 i += 1 Nej i < N Ja keyfreqs[i+1]!= keyfreqs[i] Nej Ja i+1 in falseindexs Nej _identify_helper3 Ja keyfreqs[i] = 0 Nej _identify_helper2 Ja _identify_helper1 End Figur 8.10: Overordnet flowchart af funktion identify_keynotes. Flowcharts for _identify_helper1, _identify_helper2 og _identify_helper3 findes i Bilag D. I del fem oprettes en tex-fil, hvor der gemmes en tabel med tonerne ift. varigheden af dem. 8.6 Test af modul For at sikre, at modulet virker efter hensigten, og funktionerne lever op til kravsspecifikationerne, laves en fuldstændig test, hvor alle funktionerne, som skal anvendes i databehandlingen, testes med et konstrueret signal. På denne måde vides på forhånd, hvilket resultat, der forventes. Der ligges hovedsagligt vægt på resultaterne af spektrogrammerne og tonebestemmelserne. Det konstruerede signal, som anvendes i testen, ses i Tabel 8.1. Signalet består af en

90 80 Kapitel 8. Implementering række toner, hvor én ligger under 82, 47 Hz og én over 1046, 50 Hz, som er hhv. den laveste og højeste tone på en guitar. Disse toner skal derfor filtreres fra. Alle toner spilles med samme varighed. Tone: c#2 d4 f4 a4 d5 f5 a5 f5 d5 Frekvens: 69,30 293,66 349,23 440,00 587,33 698,46 880,00 698,46 587,33 a4 f4 d4 f#6 440,00 349,23 293, ,98 Tabel 8.1: Tabel over tonerne og de tilhørende frekvenser i det konstruerede signal. Tabeller udformet som Tabel 8.1 skal læses som, at de grå rækker er en følge af toner, og de hvide rækker er enten deres tilhørende frekvens i Hz eller varighed i sekunder. Først køres den fuldstændige test uden filtrering. Dette giver følgende spektrogram og tabel over toner. Figur 8.11: Spektrogrammet for det konstruerede signal uden filtrering. Tone: break d4 f4 a4 d5 f5 a5 f5 d5 a4 Tid: f4 d4 f# Tabel 8.2: Tabel over tonerne i det konstruerede signal uden filtrering og deres varighed, fundet ud fra tids-frekvensanalyse. Uden filtrering fremgår af Figur 8.11, at spektrogrammet, som bliver fremstillet, opfylder kravene om passende valg af vindueslængde og overlapfaktor, således spektrogrammet har et passende forhold mellem tids-/frekvensopløsningen. Dette giver

91 8.6. Test af modul 81 det læselige spektrogram, som ses på figuren. Dog skal bemærkes de søjler, som fremkommer ved hvert toneskift. Enten skyldes dette den måde, som signalet konstrueres på, da der kan forekomme diskontinuiteter, når to sinuser med forskellige frekvenser sættes sammen, eller også kommer det af trunkeringen med vinduesfunktionen i STFT en. Hvad angår tonebestemmelsen, så fremgår af Tabel 8.2, at alle tonerne bestemmes korrekt i forhold til Tabel 8.1. Dog skal det bemærkes, at den første tone C 2 bliver sorteret fra af funktionen til bestemmelsen. Dette skyldes, at denne tone som sagt ligger under 82,47 Hz. Ligeledes er varigheden af hver tone tilnærmelsesvis lige lang. Så igen opfyldes kravsspecifikationerne. Ved filtrering opnås følgende spektrogram og tonebestemmelse, som ses i henholdsvis Figur 8.12 og Tabel 8.3. Figur 8.12: Spektrogrammet for det konstruerede signal med filtrering. Tone: d4 c#4 f4 d4 f4 c#4 d4 f4 a4 d5 Tid: f5 a5 f5 d5 a4 f4 d4 c#4 f4 d f4 c#4 d Tabel 8.3: Tabel over tonerne i det konstruerede signal uden filtrering og deres varighed, bestemt ud fra tids-frekvensanalyse. Som set på Figur 8.12, bliver signalet mere udvisket, men de to toner, C 2 og F 6, er blevet frafiltreret som ønsket. Dog bemærkes det, at tonen F 6 stadig antydes, og den er blevet forskudt i tid. Dette kan skyldes numeriske fejl, muligvis forårsaget

92 82 Kapitel 8. Implementering af den høje filterorden (se Afsnit 8.2). Udviskningen af signalet gør også, at tonebestemmelse bliver mere upræcis. De første og sidste 6 toner skulle i stedet have været et break. Så umiddelbart overholdes kravsspecifikationerne, men der er nogle små problemer, der ønskes løst, bl.a. udviskningen. I følgende kapitel behandles de data, der er opsamlet ved forsøg, og de nævnte problemstillinger undersøges nærmere, og der forsøges at bestemme en løsning på disse.

93 Kapitel 9 Databehandling I dette kapital præsenteres først de overvejelser, der er gjort i forbindelse med dataopsamling og -behandling, inden resultaterne af det behandlede data præsenteres. De data, der er blevet opsamlet, er lydoptagelser af guitarmelodier mm. fra det lyddøde rum. Specifikationer for rummet ses under Bilag C. Grunden til, at optagelserne blev foretaget i det lyddøde rum, er, at lyden reflekteres meget svagt, hvilket tilnærmelsesvis resulterer i målinger uden foldningsstøj. For hvis applikationen ikke virker under disse forudsætninger, vil det ikke virke under dårligere forhold. Selve beskrivelsen af, hvilket udstyr, der er blevet benyttet, hvordan opstillingen var og udførelsen af forsøgene, findes i Bilag B. Frekvens-punkter I projektet anvendes en guitar, hvis grundfrekvens-spektrum strækker sig over intervallet E 2 til C 6, svarende til hhv. ca. 82,41Hz og 1046,50Hz. Det laveste interval i frekvens, der ønskes at skelne mellem ved tonebestemmelsen, er mellem tonerne E 2 og F 2 med indbyrdes afstand 87,31 82,41 = 4,9Hz, således kravspecifikationerne kan mødes (se Afsnit 2.3.1). Der ønskes altså en frekvensopløsning, der imødekommer dette krav, når antallet af datapunkter til STFT en vælges. Hvis frekvens-opløsningen ikke er tilstrækkelig høj, vil der fremkomme mere end én tone i nogle frekvenspunkter, som kan umuliggøre tonebestemmelsen, pga. den givne frekvens ikke kan repræsenteres. Med en samplingsfrekvens på 44,1 khz bestemmes vinduesstørrelsen N: N < 4,9 Hz = N > 213 (9.1) Der skal således bruges over 2 13 = 8192 datapunkter i STFT en for tilstrækkelig frekvensopløsning. 83

94 84 Kapitel 9. Databehandling Skala og melodi Ud af de målinger og optagelser, der er fremstillet, vælges her at begrænse til én skala og én melodi. Skalaen er den kromatiske skala, som løber over samtlige toner i rækkefølge, og netop derfor er en god kandidat som test-skala. I Tabel 9.1 ses tonerne, der indgår i skalaen fra E 3 -E 5 samt de tilhørende frekvenser. Melodien, der er valgt Tone: e3 f3 f#3 g3 g#3 a3 a#3 b3 c4 Frekvens: c#4 d4 d#4 e4 f4 f#4 g4 g#4 a a#4 b4 c5 c#5 d5 d#5 e Tabel 9.1: Kromatisk skala fra tonen E 3 -E 5 med tilhørende frekvenser i Hz. til forsøget, er et stykke af Der er et yndigt land, og tonerne samt frekvenser ses i Tabel 9.2 og angives i den rækkefølge, de anslås på guitaren. To på hinanden følgende toner angiver altså, at de slås an to gange. Tone: a#3 f4 f4 d4 a#3 g4 a#3 a#4 a#4 Frekvens: a4 g4 g4 f4 f4 a3 a3 a#3 c d4 e4 f4 g4 f4 e4 f Tabel 9.2: Første halvdel af første vers af Der er et yndigt land. Støj I forbindelse med lydoptagelserne i det lyddøde rum er der blevet gjort overvejelser omkring støj. I projektet er fokus på additive støjkilder. Dertil blev valgt en ren sinus på 261,63 Hz og en optagelse af en støjsekvens, som var et forsøg på at approksimere tilfældig støj, der kunne forekomme i det miljø, hvori applikationen anvendes. Pointen med den tilfældige støj var også at tilnærme sig et white-noise-signal, også kaldet pink-noise. Støjkilder blev afspillet gennem en højttaler under optagelserne og er ikke lagt oven på lydsignalet under databehandlingen. Dvs. signal-støj-forholdet kendes ikke præcist, men der var gjort overvejelser omkring dette inden optagelserne, bl.a. at støjkilden ikke skulle overdøve guitaren.

95 9.1. Databehandling og resultater Databehandling og resultater I dette afsnit laves databehandling, og resultater for de indspillede optagelser gennemgås. Dertil benyttes tids-frekvensanalyse i from af spektrogrammer, og efterfølgende præsenteres tabeller for tonebestemmelsen. På alle spektrogrammer anvendes db-skala for intensiteten af signalerne med 10 5 som reference Spektrogrammer I dette afsnit præsenteres resultaterne af tids-frekvensanalyse af optagelserne. Disse resultater er spektrogrammer af optagelser af egenstøjen, additiv tilfældig støj, ikke støjforurenede melodi samt melodien under forurening fra de additive støjkilder. Der undersøges også, hvilken betydning størrelsen af overlap og vindue har for udformningen af spektrogrammerne. Egenstøj På Figur 9.1 ses spektrogrammet for egenstøjen fra mikrofonen, hhv. for hele spektrummet og for guitar-spektrummet. På Figur 9.1a ses, at egenstøjen fra mikrofonen hovedsageligt er repræsenteret ved lave frekvenser. På Figur 9.1b ses egenstøjen fra mikrofonen i guitar-spektrummet. Det ses, at egenstøjen inden for guitarspektrummet minder om hvidstøj, men det meste af egenstøjen er koncentreret i mellem 0 og 100 Hz. (a) Egenstøj. (b) Egenstøjen i guitar-spektrummet. Figur 9.1: Spektrogram for egenstøjen. (a) Hele spektrummet. (b) Guitar-spektrummet. Sinus-signal Der er lavet to optagelser af de genererede rene sinus-signaler, TEST_sinus og TEST_sinus2, og spektrogrammerne for disse ses på Figur 9.2. Det ses, at der er en lille afvigelse mellem de to spektrogrammer i amplitude. De er dog tilnærmelsesvis ens med samme frekvens.

96 86 Kapitel 9. Databehandling (a) TEST_sinus (b) TEST_sinus2 Figur 9.2: Spektrogram for de genererede rene sinus-signaler. Tilfældigt støjsignal Dette støjsignal er en optagelse fra det lyddøde rum, hvor der er blevet trommet på en skraldespand og bladret i et hæfte. Der er skabt to støjsignaler, og det er TEST_stoj2, der er blevet anvendt i optagelserne. På Figur 9.3 ses spektrogrammet for støjsignalet. Det bemærkes, at spektrogrammet indeholder søjler, hvori et bredt spektrum af frekvenser er indeholdt. Da hvid støj indeholder alle frekvenser, er disse søjler approksimationer heraf. Figur 9.3: Spektrogram af TEST_stoj2. Nu er spektrogrammerne af de forskellige støj-signaler blevet undersøgt. I det følgende betragtes spektrogrammerne for de optagede melodier under forskellige forhold og parametre.

97 9.1. Databehandling og resultater 87 Den kromatiske skala Den spillede kromatiske skala i forsøget løber mellem tonerne E ζ og E ζ +1 for ζ = 2, 3, 4 og indeholder alle toner mellem disse. Når tonen E ζ +1 er spillet, spilles skalaen inverst indtil tonen E ζ er nået. På Figur 9.4 ses spektrogrammet for den kromatiske skala E 3, spillet på en guitar fire gange med kort pause mellem hver. Ligeledes ses forekomsten af overtoner til grundfrekvenserne. Det ses også, at grundfrekvenserne af tonerne i den kromatiske skala er tydeligere end overtonerne. Figur 9.4: Spektrogrammet for den kromatiske skala E 3. Vindue-overlap Der er lavet numeriske eksperimenter med størrelsen på overlap af vinduer. På Figur 9.5 ses spektrogrammer af samme signal med overlap på hhv. 0; 0,35; 0,65 og 0,9. Det ses, at størrelsen af overlappet har betydning for præcisionen i hhv. tid og frekvens. Overlap på 0,65 og 0,9 giver grafisk de bedste resultater. Der vælges at benytte overlap-faktor på 0,65, da denne har den mindste beregningskompleksitet af de to. Figuren findes i stor størrelse i Bilag F.1. Vinduesfunktioner Der er lavet numeriske eksperimenter med forskellige vinduesfunktioner. På Figur 9.6 ses spektrogrammer af den kromatiske skala E 3 med forskellige vinduer. Af figurene kan det synes, at det triangulære vindue og Blackman-vinduet er bedst, da de virker til at have den mindste udviskning af signalet i spektrogrammet. Det kan også synes, at det rektangulære vindue, Boxcar-vinduet, udvisker mere, og Hanning udvisker mest.

98 88 Kapitel 9. Databehandling (a) Overlap: 0 (b) Overlap: 0.35 (c) Overlap: 0.65 (d) Overlap: 0.90 Figur 9.5: Spektrogrammer af lydfilen guitar_e3_krom.wav med forskellige overlap af vinduer. I Bilag F.2 ses dog, at udviskningen ved brug af Hanning-vinduet ikke sker i de spillede toner, men omkring dem. På Figur 9.7 ses spektrogrammer af den filtrerede kromatiske skala E 3 med forskellige vinduesfunktioner. Hvis man igen ser på de små figurer, vil man på samme vis tro, at Hanning-vinduet ikke giver det bedste resultat. I Bilag F.2 ses disse figurer også i stor størrelse, hvoraf det igen ses, at Hanning-vinduet giver det bedste resultat.

99 Databehandling og resultater (a) Hanning-vindue (b) Triang-vindue (c) Blackman-vindue (d) Boxcar-vindue Figur 9.6: Spektrogrammer af guitar_e3_krom.wav med forskellige valg af vindue. (a) Hanning-vindue (b) Triang-vindue (c) Blackman-vindue (d) Boxcar-vindue Figur 9.7: Spektrogrammer af guitar_e3_krom.wav med forskellige vinduer, filtreret.

100 90 Kapitel 9. Databehandling Vinduesstørrelse For at undersøge betydningen af vinduesstørrelsen i STFT en ift. opløsningen af spektrogrammet, laves en række eksperimenter. På Figur?? ses spektrogrammer af den kromatiske skala E 3 med forskellige valg af vinduesstørrelser. De viste vinduesstørrelser er hhv. 2 12, 2 13, 2 14 og Det ses, at en vinduesstørrelse på 2 13 og 2 14 giver det bedste forhold mellem tids- og frekvensopløsningen (se Afsnit 6.2), således det er muligt at bestemme tonerne. For at undersøge, hvilken af disse, der er den bedste, laves spektrogrammer med indlagte linjer, der repræsenterer tonernes placering på frekvensaksen. Disse samt figurerne i stor størrelse ses i Bilag??. Det ses, at 2 14 er tilstrækkelig, mens 2 13 ikke er tilstrækkelig. Da 2 14 er for stor en vinduesstørelse, påvirker dette tonebestemmelsen negativt, og derfor anvendes Denne størrelse opfylder også kravet om vinduesstørrelsen (se (9.1)). (a) Vinduesstørrelse: 2 12 (b) Vinduesstørrelse: 2 13 (c) Vinduesstørrelse: 2 14 (d) Vinduesstørrelse: 2 15 Figur 9.8: Spektrogrammer af lydfilen guitar_e3_krom.wav for forskellige vinduesstørrelser. Kromatisk skala med sinus-støj På Figur 9.9 ses spektrogrammer for den kromatiske skala E 3, både med og uden filter, der er optaget med sinus som additiv støj. Det fremgår tydeligt på figuren, at sinus-støjen ligger i signalet, og det ses også, at vores filter ikke filtrerer støjen fra, da denne ligger inden for et pasbånd i filteret.

101 9.1. Databehandling og resultater 91 (a) Kromatisk skalaer E 3 med sinusstøj. (b) Kromatisk skalaer E 3 med sinus støj, filtreret. Figur 9.9: Spektrogrammer af kromatisk skala E 3 med sinus-støj. Kromatisk skala med tilfældig støj Den anden type af additiv støj, der er anvendt, er det tilfældige støjsignal. På Figur 9.10 ses spektrogrammet af den kromatiske skala mellem tonerne E 3 og E 5 med additiv støj, både med og uden filter. I Bilag F.4 ses frekvensresponsen for signalet, igen både med og uden filter. Det ses, at støjen uden for guitar-spektrummet samt dele af støjen mellem guitartonerne bliver filtreret fra. (a) Kromatisk skala E 3.du fandt lamaen (b) Kromatisk skala E 3 med additiv støj, filtreret. Figur 9.10: Spektrogram af kromatisk skala mellem tonerne E 3 og E 5 med støj, både med og uden filter. Båndstopfiltreret kromatisk skala med sinus-støj Det er set for den kromatiske skala med sinus-støj, at vores Kaiser-vindue filter ikke filtrerer sinus-støjen fra, da støjen ligger i guitar-spektrummet. Det er i stedet forsøgt at anvende et båndstopfilter til at fjerne sinus-støjen. På Figur 9.11 ses spektrogrammer af den kromatiske skala E 4 med sinus-støj, både uden og med båndstopfilteret, der virker lokalt på sinus-støjen. Det ses, at båndstopfilteret fjerner

102 92 Kapitel 9. Databehandling sinus-støjen fra det optagede signal. I Bilag F.5 ses frekvensresponsen for den kromatiske skala E 4 med sinus-støj, både uden og med båndstopfilteret, hvor det fremgår, at sinus-frekvensen bliver dæmpet. Denne filtrering er dog ikke særlig anvendelig for applikationen, da der er risiko for at fjerne en tone der, hvor sinus-signalet ligger. med sinus- (a) Kromatisk skala E 4 støj. (b) Kromatisk skala E 4 med sinusstøj, filtreret med båndstopfilter. Figur 9.11: Spektrogram af kromatisk skala E 4 med sinus-støj, uden og med filtrering med båndstopfilter. Melodi-stykke Til simulering af mere virkelige lyd-signaler end skalaer, som man kan forestille sig man vil benytte applikationen til, er en mere kompliceret melodi optaget. Denne melodi er første stykke af Der er et yndigt land (se Tabel 9.2). På Figur 9.12 ses spektrogrammet af melodien uden støj - både uden og med filter - for den filtrede melodi med sinus-støj, samt den filtrede melodi med tilfældig støj. Som det ses på Figur 9.12c, er der samme problem med, at sinus-signalet ikke kan filtreres fra, som vi så på Figur 9.9.

103 9.1. Databehandling og resultater 93 (a) Spektrogram af melodi. (b) Spektrogram af filtreret melodi. (c) Spektrogram af filtreret melodi med sinus. (d) Spektrogram af filtreret melodi med støj. Figur 9.12: Spektrogrammer af melodien: rent signal både uden og med filter, samt det filtreret signal med sinus og det filtreret signal med støj Tonebestemmelse I dette afsnit undersøges, hvor effektiv tonebestemmelsen er, både uden støj og hvor støj forsøges filtreret fra. De følgende tabeller er uddrag af de oprindelige, da skalaen og melodien gentages tre gange ved hver optagelse, så derfor vil der også være en form for gentagelse i de oprindelige tabeller. Tabellerne angiver, hvilken tone der bliver spillet, og hvor lang tid den angiveligt skulle vare. Det er essentielt at kende både tone og varighed for at kunne fremstille et nodeark, men for overskueligheds skyld, er det valg ikke at repræsentere resultaterne i nodeark. Det bemærkes, at toner skrives med småt i tabellerne, da dette er det direkte output fra applikationen. Først forsøges tonerne bestemt for den kromatiske skala. Det vi forventer at se i tabellerne for tonebestemmelsen er, at tonerne følger Tabel 9.1, dog når den sidste tone anslås, spilles skalaen i omvendt rækkefølge for til sidst at ringe ud på enten en E 3 eller E 4. Dvs. vi forventer også, at varigheden af hver tone er ligeligt fordelt med undtagelse af den sidste, der som sagt ringer ud. I Tabel 9.3 og 9.4 ses tonebestemmelsen for optagelserne af skala fra hhv. E 3 -E 4 og E 4 -E 5. Som det fremgår af både Tabel 9.3 og 9.4, så følger tonerne pænt det mønster, som

104 94 Kapitel 9. Databehandling Tone: e3 e4 f4 f3 f#3 g3 g#3 a3 a#3 b3 Tid: c4 c#4 d4 d#4 e4 d#4 d4 c#4 c4 b a#3 a3 g#3 g3 f#3 f4 f3 e4 e Tabel 9.3: Kromatisk skala fra tonen E 3 -E 4 og tilbage til E 3. Tone: e4 f4 f#4 g4 g#4 a4 a#4 b4 c5 c#5 Tid: d5 d#5 e5 d#5 d5 c#5 c5 b4 a#4 a g#4 g4 f#4 f4 e Tabel 9.4: Kromatisk skala fra tonen E 4 -E 5 og tilbage til E 4. vi forventede at se. Der er dog visse steder, det går galt ift. tonebestemmelsen i Tabel 9.3. Dette sker i starten og i slutningen ved tonerne E 3 og F 3, hvor deres overtone E 4 og F 4 har haft større amplitude. Betragter vi i stedet tiden, så ser det ud til at varigheden af hver tone er nogenlunde ligeligt fordelt. Af begge tabeller fremgår det, at størstedelen af toner har en varighed på ca. 0,2 sekunder, dog er der tilfælde, hvor en tone har været mere dominerende og derfor varer længere tid, hvorfor den efterfølgende tone er kortere i tid. F.eks. i Tabel 9.4, hvor der gås fra en G 4 til en F 4 (sidste grå række). En yderligere ting, som går igen i begge tabeller er, at den, som er i starten og slutningen ikke fremkommer i tabellerne. F.eks. skulle der i Tabel 9.4 inden den første og efter den sidste E 4 have været et break. Indtil videre tyder det på, at tonebestemmelsen virker uden støj og for opfylder kravet om en afvigelse på ±20%. Dog tyder det også på, at det går bedre ved tonerne med en høj frekvens, når man sammenligner Tabel 9.3 og 9.4. Nu er spørgsmålet så, hvordan påvirkes tonebestemmelsen, når der er støj, som man forsøger at filtrere fra? I Tabel 9.5 og 9.6 ses tonebestemmelsen, hvor der er anvendt hhv. en ren sinus og tilfældig støj, som additiv støj. Den rene sinus, der er valgt som additiv støjkilde, svarer til tonen C 4, og som det fremgår af Tabel 9.5, så er det netop tonen, der forekommer hyppigst. Hvis man ikke vidste, hvilken tone støjen svarer til, så vil man ikke være i stand til at gennemskue, hvad der bliver spillet. Så i dette tilfælde vil filteret ikke hjælpe, som vi så det i Figur 9.9, da støjen ikke filtreres fra. I dette tilfælde, vil båndstopfilteret ikke kunne anvendes, da C 4 indgår i skalaen, så jo mindre man er sikker på, at den tone ikke indgår i melodien, så er det ikke muligt at opnå den ønskede præcision af

105 9.1. Databehandling og resultater 95 Tone: c4 e4 f4 c4 f#3 c4 g4 c4 a#3 b3 Tid: c4 c#4 c4 e4 d#4 c4 d4 c4 c#4 b c4 b3 a#3 c4 a3 c4 g3 c4 f#3 c Tabel 9.5: Filtreret Kromatisk skala fra tonen E 3 -E 4 med en ren sinus som additiv støj. tonebestemmelsen. Problemet forekommer ved alle optagelserne af den kromatiske skala med den rene sinus som additiv støjkilde, så derfor medtages kun Tabel 9.5. Tone: break e4 f4 f#4 g3 g#3 a3 a#3 b3 c4 Tid: b3 c#4 d4 d#4 e4 f#4 g4 g#4 a3 a a#4 b4 c5 c#5 d#6 a3 e6 d#6 a3 c# c#5 a3 c5 b4 a#4 a4 g#4 g4 f#4 f e4 d#4 d4 c#4 c4 b3 a#3 a3 g#3 g f#3 f4 e4 e3 break g3 a3 break a3 break Tabel 9.6: Filtreret kromatisk skala fra tonen E 3 -E 5 med additiv støj. Ved den tilfældige støj, som ses i Tabel 9.6, går det væsentlig bedre. Spilles skalaen fra E 3 -E 5 og tilbage til E 3, så vi burde se en gengivelse af Tabel 9.1. Det er dog ikke helt tilfældet. Ligesom i Tabel 9.3, er nogle af toner forvekslet med deres overtone, f.eks. i starten, hvor E 4, F 4 og F 4 skulle have været hhv. E 3, F 3 og F 3. Faktisk går de samme type fejl fra Tabel 9.3 og 9.4 igen i Tabel 9.6, f.eks. ved tonen E 4 (2. grå række), som varer 0,72 sekunder. Denne tone skulle have være efterfulgt af en F 4, men i stedet er det F 4, hvilket kunne tyde på, at tonen E 4 havde været mere dominerede end F 4 og derfor ikke er med. Dette vil også forklare, hvorfor tonen E 4 varer længere end de ca. 0,2 sekunder. Derudover er der også andre toner, som sniger sig ind imellem to andre toner. F.eks. er der en A 3 mellem en C 5 og en C 5 (4. grå række), som ikke skulle have været der. Vi ser også, at til sidst i skalaen veksles der imellem break og forskellige toner. Dette skulle have været et stort break. En mulig forklaring på disse fejl, kan være den støj som måtte ligge indenfor guitarspektrumet, der bidrager til usikkerheden, men det kan også skyldes den udviskning,

106 96 Kapitel 9. Databehandling som kommer af filtreringen. Nu vender vi os imod at undersøge tonebestemmelsen af melodien. I Tabel 9.7 ses tonebestemmelsen af melodien. Tone: break a#3 a#4 f4 e4 d4 a#3 a#4 g4 a#3 Tid: a#4 a4 g4 f4 a3 a#3 c4 d4 e4 f g4 f4 e4 f4 e4 break Tabel 9.7: Der er et yndigt land. Som det fremgår af Tabel 9.7, så formås tonerne faktisk at blive bestemt rimeligt præcis. Dog er der to gange, hvor det er overtonen, A 4, til A 3, som er den mest dominerende. Derudover er der en E 4, som har sneget sig ind i mellem F 4 og D 4 (1. række), men dette er også den eneste. Hvad angår varigheder af tonerne, så ser det ud til, at de passer med rytmen, hvis vi sammenligner med spektrogrammet (se Figur 9.12a). Dog bliver de toner, som anslås flere gange i træk slået sammen i én. Spørgsmålet er nu, om tonebestemmelsen forbliver lige så god, når der er additiv støj, som skal filtreres fra. Som det fremgik af Tabel 9.5, så gav den rene sinus problemer, da den ligger inden for guitarspektrummet, så dette vil også giver problemer her og derfor undersøges dette ikke nærmere. I stedet vil vi vende os mod Tabel 9.8, hvor den tilfældige støj filtreres fra. Tone: a3 d4 e4 a3 e4 d4 c#4 d4 a3 d4 Tid: e4 a#3 f4 d4 a#3 g4 a#3 a#4 a4 g f4 a3 a#3 c4 d4 e4 f4 g4 f4 e f4 d4 e4 d4 c#4 d4 a3 a#3 e4 a Tabel 9.8: Filtret Der er et yndigt land med additiv støj. Som det ses af tabellen, så er de første 11 toner forkerte. De skulle slet ikke have været der, men der skulle være et break. Det sammen gælder ved de sidste 9 toner. Men selvom disse 20 tonerne ikke hører til i melodien, så lykkes det faktisk at bestemme melodien. Fra 12. tone og frem finder vi melodien. Der er stadig sammen problem med de toner de anslås flere gang efter hinanden, som ved Tabel 9.7. Dog kan vi ikke

107 9.1. Databehandling og resultater 97 rigtig sige, at resultatet er tilfredsstillende, da 20 ud af 40 er forkerte. Fejlen kan måske skyldes det støj, der måtte være i guitarspektrummet, som ikke kan filtreres fra, eller udvaskningen fra filteret. Uanset hvad, så tyder det på, at vi står med samme problem som i Tabel 9.6. For at komme nogle af disse problemer, som vi har stødt på i forbindelsen med tonebestemmelsen, til livs, forsøges med downsampling Downsampling af signal Grunden til, at vi downsampler skyldes, at den højeste frekvens i guitarspektrummet kun ligger omkring de 1050 Hz, og vi kan derfor, jf. Nyquist s samplingssætning (Sætning 1.1), nøjes med en samplingsfrekvens større end 2100 Hz, altså ca. en faktor 20 til forskel. Grunden til, at vi valgte 44,1 khz som samplingsfrekvens var, at dette er standarden inden for dette fagområde (se Afsnit 2.1.1). Denne høje samplingsfrekvens giver problemer, når vi skal fremstille filteret, da det medfører en enorm høj filterorden for at opnå det ønskede resultat, hvilket ikke er gunstigt. Der er altså en faktor 20 til forskel mellem hvad der er nødvendigt, og hvad optagelserne er blevet optaget med. Det vælges nu at undersøge downsampling ved hhv. en faktor på 5, 10 og 20. Hermed er de nye samplingsfrekvenser hhv Hz, 4410 Hz og 2205 Hz. Der er ikke behov for den samme vindueslængde ved downsampling, de nye vindueslængder bliver: ( ) N < 4,9 Hz = N = 1800 = N > 210 (9.2) ( ) N < 4,9 Hz = N = 900 = N > 29 (9.3) ( ) N < 4,9 Hz = N = 450 = N > 28 (9.4) På Figur 9.13 ses spektrogrammet for den filtrerede melodi downsamplet med hhv. 5, 10 og 20. Det ses, at det bliver mere tydeligt, hvad der bliver spillet jo mere, der downsamples. Det bestemmes derfor, at anvende en downsampling med en faktor 20. Vinduesstørrelse Da signalet bliver downsamplet, skal vinduesstørrelsen også tilpasses. Der er derfor lavet numeriske eksperimenter med vinduesstørrelsen til STFT en. På Figur 9.14 ses spektrogrammer af den downsamplede kromatisk skala E 3 med forskellige valg af vinduesstørrelser. De viste vinduesstørrelse er hhv. 2 7, 2 8, 2 9 og Det ses, at vinduesstørrelse på 2 8 og 2 9 er dem med bedst forhold mellem tids- og frekvensopløsning (se Afsnit 6.2), der gør det muligt at bestemme tonerne. For at undersøge hvilken, der er den bedste, er der lavet spektrogrammer med indlagte linjer for tonerne, disse

108 98 Kapitel 9. Databehandling (a) Spektrogram af melodi downsamplet med en faktor 5. (b) Spektrogram af melodi downsamplet med en faktor 10. (c) Spektrogram af melodi downsamplet med en faktor 20. Figur 9.13: Spektrogram af melodi downsamplet med hhv. faktor 5, 10 og 20. kan ses i Bilag F.6, samt figurerne i stor størrelse. Her ses, at 2 9 er tilstrækkelig, mens 2 8 ikke er tilstrækkelig, og derfor benytter vi 2 9 til spektrogrammerne, og den opfylder også det udregnede vinduesstørrelse (9.4).

109 9.1. Databehandling og resultater 99 (a) Vinduesstørrelse: 2 7 (b) Vinduesstørrelse: 2 8 (c) Vinduesstørrelse: 2 9 (d) Vinduesstørrelse: 2 10 Figur 9.14: Spektrogrammer med forskellige vinduesstørrelser af lydfilen guitar_e3_krom.wav. Downsamplet kromatisk skala Der ses nu på den downsamplede kromatiske skala E 3, med og uden filter, samt filtreret med sinus og tilfældig støj. På Figur 9.15 ses disse spektrogrammer. Det ser ud til, at downsamplingen har hjulpet en del på udviskning af signalet i spektrogrammerne, især ved filtrering. Melodi På Figur 9.16 ses spektrogrammer for downsamplet melodi, både uden og med filter, samt med sinus og med støj filtreret. Ligeledes ser det også her ud til, at downsamplingen har hjulpet en del på udviskning af melodien i spektrogrammerne, især ved filtrering.

110 100 Kapitel 9. Databehandling (a) Spektrogram af downsamplet kromatisk skala E 3. (b) Spektrogram af filtreret downsamplet kromatisk skala E 3. (c) Spektrogram af filtreret downsamplet kromatisk skala E 3 med sinus. (d) Spektrogram af downsamplet kromatisk skala med støj filtreret. Figur 9.15: Spektrogrammer af downsamplet kromatisk skala, både uden og med filtrering, samt med sinus filtreret og med støj filtreret. (a) Spektrogram af downsamplet melodi. (b) Spektrogram af filtreret downsamplet melodi. (c) Spektrogram af filtreret downsamplet melodi med sinus. (d) Spektrogram af filtreret downsamplet melodi med tilfældig støj. Figur 9.16: Spektrogrammer af downsamplet melodi, både uden og med filtrering, samt med sinus og med støj, filtreret.

111 9.1. Databehandling og resultater Tonebestemmelse efter downsampling I det følgende vil forsøgene fra Afsnit blive gentaget, men nu med anvendelse af downsampling for at undersøge, hvad dette gør ved resultaterne. I Tabel 9.9 og 9.10 ses tonebestemmelsen ved downsampling for optagelserne af skalaerne E 3 og E 4. Tone: break e4 f3 f#3 g3 g#3 a3 a#3 b3 c4 Tid: c#4 d4 d#4 e4 d#4 d4 c#4 c4 b3 a# a3 g#3 g#4 g3 f#3 f4 e4 e3 break Tabel 9.9: Downsamplet kromatisk skala E 3. Tone: break e4 f4 f#4 g4 g#4 a4 a#4 b4 c5 Tid: c#5 d5 d#5 e5 d#5 d5 c#5 c5 b4 a# a4 g#4 g4 f#4 f4 e4 break Tabel 9.10: Downsamplet kromatisk skala E 4. Som det fremgår af Tabel 9.9, er der en fejl ved den første tone E 4, da dette skulle have været en E 3. Det samme gør sig gældende ved slutningen, hvor F 4 og E 4 skulle have været hhv. F 3 og E 3. Det samme problem så vi også uden downsampling, men ellers bliver tonerne bestemt korrekt, og med downsampling bliver pauserne i start og slut også bestemt, hvilket ikke var tilfældet før downsampling. Det sammen problem med pauserne så vi også i Tabel 9.4, men som det fremgår af Tabel 9.10, bestemmes pauserne også her. Dvs. at der opnås fuldstændig bestemmelse af toner for den kromatiske skala E 4, når vi anvender downsampling. For begge tabeller ser det ud til, at varighederne af tonerne stadig er ligeligt fordelt, dog med en lidt større usikkerhed end før downsamplingen. Altså ser det ud til, at det går godt, når vi anvender downsampling, men hvad med når der kommer støj på og der filtreres? I Tabel 9.11 og 9.12 ses tonebestemmelsen ved downsampling, hvor der er anvendt hhv. en ren sinus og tilfældig støj, som additiv støj. Som det fremgår af Tabel 9.11, så er tonebestemmelsen ikke blevet bedre end i Tabel 9.5, hvilket vi heller ikke forventede. Downsamplingen afhjælper ikke problemet, da den rene sinus stadig ligger inden for guitarspektrummet.

112 102 Kapitel 9. Databehandling Tone: c4 e4 f4 c4 f#3 c4 g4 c4 b3 c4 Tid: c#4 c4 d4 c4 e4 d#4 c4 d4 c4 c# c4 b3 c4 a3 c4 g3 c4 f#3 c4 e Tabel 9.11: Downsamplet og filtreret kromatisk skala fra E 3 med ren sinus som additiv støj. Tone: e3 f3 e3 f3 e3 e4 f4 f#4 g3 g#3 Tid: a3 a#3 b3 c4 c#4 d4 d#4 e4 f4 g g#4 a4 a3 a#4 b4 c5 c#5 d5 d#5 e d#5 d5 c#5 c5 b4 a#4 a4 g#4 g4 f# f4 e4 d#4 d4 c#4 c4 b3 a#3 a3 g# g3 f#4 f#3 f4 e3 e4 e3 f3 e3 f Tabel 9.12: Downsamplet og filtreret kromatisk skala mellem tonerne E 3 -E 5 med additiv støj. Sammenlignet med Tabel 9.6, så er tonebestemmelsen i Tabel 9.12 bedre. Der er stadig problemer i starten og slutningen, hvor der er lidt usikkerhed. Der er også enkelte toner, der forveksles med deres overtone, men ellers er tonebestemmelsen væsentlig forbedret ved downsampling. Vi mangler nu kun at betragte tonebestemmelse ved downsampling af vores melodi, som ses i Tabel Tone: break a#3 a#4 f4 d4 a#3 g4 a#3 a#4 a4 Tid: g4 f4 a3 a#3 c4 d4 e4 f4 g4 f e4 f4 e4 break Tabel 9.13: Downsamplet Der er et yndigt land.

113 9.1. Databehandling og resultater 103 Som det fremgår af Tabel 9.13, så er tonebestemmelsen stadig lige så god, som uden downsampling. Der er stadig nogle toner, som bliver forvekslet med deres overtone, og problemet med, at to toner slås sammen i én, er stadig til stede efter downsamplingen, men det interessante er, om downsampling vil gøre tonebestemmelsen bedre, når støj filtreres fra melodien. Tone: a3 d4 a3 e4 d4 c#4 d4 a3 a#3 f4 Tid: d4 a#3 g4 a#3 a#4 a4 g4 f4 a3 a# c4 d4 e4 f4 g4 f4 e4 f4 d4 a e4 d4 e4 c#4 d4 a3 e4 d Tabel 9.14: Downsamplet og filtreret Der er et yndigt land med additiv støj. Sammenlignet med Tabel 9.8, ses ikke den store forskel i Tabel De første 8 toner og de sidste 10 skulle have været et break, ligesom set i Tabel 9.8. Altså har dowsamplingen ikke hjulpet det store her. Downsamplingen hjalp en lille smule på den udviskning, der kommer fra filteret i vores forsøg, men der er stadig fejl, som bl.a. kommer fra den støj, som måtte befinde sig ved tonerne i guitarspektrummet. For at komme dette til livs, skal der mere til end downsampling, evt. et andet design af filter.

114

115 Diskussion Der er i projektforløbet eksperimenteret med forskellige overlap-værdier i konstruktionen af spektrogrammer. I rapporten er forsøgene med hhv. 0, 30, 65 og 90% overlap dokumenteret. Det er naturligt at betvivle, hvorvidt valget af overlap på 65% er tæt på optimalt, når der kun er præsenteret 4 eksperimenter. Der er dog eksperimenteret med andre overlapfaktorer, på trods af mangel på dokumentation heraf. Valget af overlap på 65% er således foretaget på baggrund af flere numeriske eksperimenter end dokumenteret i rapporten. Der er udført eksperimenter med forskellige valg af vinduesfunktioner, og Hanningvinduet gav de bedste resultater ift. tonebestemmelsen. Man kunne tænke sig, at en mere dybdegående analyse, hvori der eksperimenteres med flere typer vinduesfunktioner, ville give endnu bedre resultater. Da vinduesstørrelsen til STFT en blev valgt, blev der valgt den mindste 2 er potens, som opfyldte kravet om tilstrækkelig frekvensopløsning uden at gå på kompromis med tonebestemmelsen. Således blev tidsopløsningen bedst mulig. Hvis det indspillede musik-stykke ligger i den øvre del af guitar-spektrummet, kan kravene til frekvensopløsning lempes, da tonerne her ligger mindre tæt. Såfremt der spilles i den øvre ende af guitarspektrummet, kan nøjes med mindre vinduesstørrelse i STFT en, der benyttes til tonebestemmelse, hvilket vil forøge tidsopløsningen. Valget af overlap og vinduesstørrelse blev truffet på baggrund af et ønske om læselige spektrogrammer, men er også vigtige i forbindelse med tonebestemmelse. Valgene af parametrene blev foretaget med Heisenbergs usikkerhedsrelation i mente. Med hensyn til downsampling af signalet viste det sig, at lavere samplingsfrekvens betød mildere krav til vinduesstørrelsen, og samtidig ikke gav problemer mht. tonebestemmelsen. Der blev i projektet benyttet et FIR-filter implementeret ved vinduesmetoden, hvor der blev anvendt et Kaiser-vindue. Dette filter blev valgt i stedet for et filter implementeret ved Parks-McClellan-algoritmen. Ved sammenligning af frekvensresponserne mellem et filter konstrueret ved hhv. vinduesmetoden og Parks-McClellanalgoritmen, ses tydeligt, at vinduesmetoden er bedst ift. den ønskede applikation. En udfordring ved benyttelse af Parks-McClellan-algoritmen er, at frekvensresponsen af det konstruerede filter kraftigt afhænger af vægtningen af de ønskede fejl i pas- og 105

116 106 Diskussion stopbånd. Det har vist sig at være en udfordring at vælge denne, således der opnås et tilfredsstillende resultat. En mulig grund til, at konstruktionen af et filter ved Parks-McClellan-algoritmen mislykkedes er, at samplingsfrekvensen er 44,1 khz, og guitarspektrummet kun strækker sig over 82, ,50 Hz. Dette bevirker, at pasog stopbånd ligger meget tæt, hvorfor der ikke opnås de ønskede gains i de respektive bånd. Problemstillingen med de tætte pas- og stopbånd ses også ved anvendelse af vinduesmetoden, hvilket kom til udtryk ved en enorm høj filterorden. Disse problemstillinger blev forsøgt løst vha. downsampling. I tilfældet for Parks-McClellan, vil valget af fejl i pas- og stopbånd stadig være en udfordring. Ved vinduesmetoden blev filterordnen mindsket markant til en passede orden, men gav dog stadig problemer ved tonebestemmelsen. En mulig forbedring af filteret kunne ske ved implementering af parallelfiltrering: der konstrueres en række filtre med kun ét pasbånd. Det optagede signal filtreres herefter med hvert af disse, hvorefter de resulterende, nu filtrerede, signaler summeres punktvis. Dette vil tillade en lavere filterorden, og det er muligt, at udviskningen mellem pas- og stopbånd kan reduceres markant, da hvert filter kun har ét pasbånd. Resultaterne af tonebestemmelsen er meget forskellige. I forsøgene med den kromatiske skala og melodien uden støj, har tonebestemmelsen fungeret efter hensigten, dog med en række småfejl. Vi så bl.a., at grundtonerne blev forvekslet med deres første overtone, og der blev observeret toner, som ikke var blevet spillet, f.eks. blev break erstattet af én eller flere toner. Tidsbestemmelsen gav resultater i overensstemmelse med det forventede. Der blev dog observeret få afvigelser i nogle tabeller. En fejl, som både har betydning for bestemmelsen af de enkelte toner og deres varighed, blev observeret i forbindelse med tonebestemmelse af melodien: hvis den samme tone anslås flere gange i træk, blev disse anslag bestemt til at være ét enkelt anslag, hvilket resulterede i at tonebestemmelsen fandt én tone, med længere varighed. En mulig løsning kunne være at undersøge varigheden af en tone, og i tilfældet af, at den har en vis varighed, tolkes den som to på hinanden følgende toner. I forsøget med downsampling mindskedes nogle af disse fejl, f.eks. forvekslingen af tonerne med overtoner og break. Det lykkedes at overholde kravsspecifikationen til tonebestemmelsen på ±20% uden filtrering. I forsøgene med additiv støj var resultaterne også meget forskellige. Ud fra optagelserne med den rene sinus som additiv støjkilde var det klart, at det ikke kunne lade sig gøre at fjerne støjen, uden også at fjerne en potentiel guitartone. Filteret blev designet ud fra antagelsen om, at man ikke kender støjen, men kender frekvenserne, som svarer til tonerne fra en guitar. Dette medfører, at såfremt støjen ligger i eller tæt ved en guitartone, kan den ikke frafiltreres. Heraf blev afvigelsen af tonebestemmelsen for stor ift. resultaterne uden støj. Downsampling afhjalp ikke problemet, så den eneste mulighed vil være, at lave et båndstop, men dette vil resultere i, at der fjernes en tone, som ligger i guitarspektrummet (se f.eks. Tabel 9.5). Ved forsøgene med den tilfældige støjkilde blev afvigelserne for både skala og melodi væsentlig større end dem uden støj. Der var flere toner, som sneg sig ind, og der var

117 Diskussion 107 flere forvekslinger af toner med deres overtoner. Afvigelsen lå her på omkring ±50%, hvilket er langt over den anførte kravsspecifikation på ±20%. Ved downsampling var håbet, at afvigelsen vil blive mindsket, men den blev kun mindsket med ca. 2 procentpoint. De fejl, som blev observeret ved filtrering af den tilfældige støj, kan skyldes flere ting. Det kan bl.a. skyldes, at noget af støjen ligger ved tonerne i guitarspektrummet og derfor ikke bliver frafiltreret. Ydermere udviskes signalet som følge af filtrering. Filteret fjerner muligvis additiv støj, men introducerer nye fejl i form af toneudviskning. Den høje filterorden kan muligvis være forklaringen på udviskningen, men ved downsampling forekom de samme udviskninger, dog i mindre grad. Dette er muligvis en indikator på, at filterordenen stadig er for høj. Som tidligere diskuteret kunne en mulig løsning på problemet være et andet filterdesign, samt en forbedring af programmet til tonebestemmelse.

118

119 Konklusion Det blev vist, hvordan implementeringen af et tonebestemmelses-system kan tilvejebringes. Systemet blev opbygget på følgende vis: musikken optages og digitaliseres, hvorefter signalet støj-filtreres og transformeres til frekvensdomænet. Til dette anvendes den diskrete Fourier-transformation i form af en STFT, som matematisk værktøj. Herefter bestemmes de spillede toner med data et fra STFT en i et program, og til sidst genereres de fundne toner i en tabel til læsning. Det kan konkluderes, at en vindueslængde på 2 13 og 2 9 for en samplingsfrekvens på hhv. 44,1 khz og 2,205 khz er tilstrækkelig for tonebestemmelsen og er et godt forhold i Heisenbergs usikkerhedsrelation. Systemet blev skabt med filosofien om, at systemet skal fungere under kliniske forhold, før det kan fungerer under ikke-kliniske forhold. For at kunne filtrere ukendt støj fra signalet og udføre tonebestemmelsen, blev der tilvejebragt et multibåndpasfilter vha. et Kaiser-vindue. Filteret blev fremstillet med pasbånd i små intervaller centreret omkring mulige toner. Det lykkedes at foretage en frekvensanalyse af lydsignaler fra en guitar uden additiv støj, således toner kunne bestemmes med tilstrækkelig præcision. Forekomsten af et udefrakommende støjsignal komplicerer tonebestemmelsen væsentligt. Forsøget med støjkilden, der lå oven i en spillet tone, kunne ikke filtreres succesfuldt, og angiver således applikationens begrænsning. Det kan konkluderes, at en forudsætning for, at tonebestemmelsen kan udføres godt er, at støjen ligger uden for pasbåndende i filteret. Grundet den høje filterorden af det anvendte filter, forekom der udviskning af signalet, hvilket besværliggjorde tonebestemmelsen. For signalet med tilfældig støj viste det sig, at kravet om en afvigelse på 20% ikke kunne nås, idet der blev opnået en afvigelse på ca. 50%. Downsampling af signalet afhjalp ikke dette problem, da det blot gav en forbedring på ca. 2 procentpoint. Det kan konkluderes, at en downsampling og reducering af filterets orden ikke har kunne medvirke til en opfyldelse af de opstillede krav. 109

120

121 Litteratur [1] Online. URL Window.html. Fra bogen "Spectral Audio Signal Processing"af Julius O. Smith, Center for Computer Research in Music and Acoustics (CCRMA). [2] Instutut for elektroniske systemer Aalborg Universitet. URL aau.dk/labs/acoustics/facilities/anechoic_room_large/. [3] Richard Baraniuk. Signals and Systems. The Connexions Project, URL SignalsAndSystems.pdf. [4] Jan Dimon Bendtsen, Febuar URL dk/pluginfile.php/453522/mod_folder/content/0/slidesdo2.pdf? forcedownload=1. [5] Jeff A. Bilmes, November URL courses/ee518/notes/lec15.pdf. [6] The Scipy Community,. URL reference/routines.fft.html. [7] The Scipy Community. Dokumentation af pythons filterfunktion, der fremstiller fir filtre vha. vindue-metoden. Online,. URL scipy /reference/generated/scipy.signal.firwin.html. [8] The Scipy Community. Dokumentation af pythons parks-mcclellan-algoritme, remez. Online,. URL reference/generated/scipy.signal.remez.html. [9] G.B. Folland. Fourier Analysis and Its Applications. Pure and applied undergraduate texts. American Mathematical Society, ISBN [10] Georg Neumann GmbH. What is self-noise (or equivalent noise level)? URL what-is-self-noise-or-equivalent-noise-level. 111

122 112 Litteratur [11] K. Gröchenig. Foundations of Time-Frequency Analysis. Applied and Numerical Harmonic Analysis. Birkhäuser Boston, ISBN [12] HowStuffWorks. What is the difference between dvd-audio and cds? URL [13] Mathworks. Firpm : Parks-mcclellan optimal fir filter design. Online. URL [14] James H. McClellan, Thomas W. Parks, and Lawrence R. Rabiner. Original fortran code. Original Fortran kode for Parks-McClellan-algoritmen. URL http: //michaelgellis.tripod.com/dsp/pgm21.html. [15] P. Olofsson and M. Andersson. Probability, Statistics, and Stochastic Processes. Wiley, ISBN [16] A.V. Oppenheim and R.W. Schafer. Discrete-Time Signal Processing: Pearson New International Edition. Pearson Education Limited, ISBN [17] A.V. Oppenheim, A.S. Willsky, and S.H. Nawab. Signals and Systems. Prentice- Hall signal processing series. Prentice Hall, ISBN [18] Robin Schmidt. Digital signals - sampling and quantization. URL rs-met.com/documents/tutorials/digitalsignals.pdf. [19] A. Shadrin. Online, URL PartIIIat/b05.pdf. [20] Jan Philip Solovej. Fourierrækker: Noter til analyse 1, URL fouriertilnoter2011.pdf. [21] Springer. Encyclopedia of mathematics: Bessel functions. Online. URL https: // [22] Lia Vas. Fourier series. fourier transform. URL mathmethods/files/fourier.pdf. [23] Jørgen Vesterstrøm, Marts [24] Martin Vetterli, Jelena Kovacevic, and Vivek K. Goyal. Foundations of Signal Processing. Cambridge University Press, May URL fourierandwavelets.org/fsp_v1.1_2014.pdf. ISBN: X. [25] R. Wang. Introduction to Orthogonal Transforms: With Applications in Data Processing and Analysis. Cambridge University Press, ISBN

123 Litteratur 113 [26] Wikipedia. Sampling (signal processing). URL wiki/sampling_(28signal_processing). [27] David Wright. Mathematics and music. URL ~wright/math109/00book.pdf.

124

125 Bilag A USB/zip-fil Medfølgende USB/zip-fil indeholder to hovedmapper. Første mappe hedder Lydoptagelser og indeholder de optagelser, der er anvendt i projektet. Anden mappe hedder Python scripts og indeholder de scripts, der bliver anvendt i projektet. Python scripts -mappen indeholder yderligere tre mapper: Plots, Tabeller med toner og wavalyze. Plots og Tabeller med toner er tomme, men bruges til at gemme outputs fra diverse scripts. Mappen wavalyze indeholder de py-filer, der importeres som et samlet bibliotek. Tabel A.1 giver en oversigt over alle py-filer. 115

126 116 Bilag A. USB/zip-fil Tabel A.1: Python filer. Filnavn: Beskrivelse: FFT115.py Indeholder funktionerne til den selvimplementerede FFT. Ligger under mappen wavalyze. filters.py Indeholder funktionerne til filtrene. Ligger under mappen wavalyze. freqs_n_pitches.py Indeholder funktionerne til tonebestemmelse m.m. Ligger under mappen wavalyze. Kaiser.py Indeholder funktionerne til filter med Kaiser-vindue. Ligger under mappen wavalyze. read_data.py Indeholder funktionerne til indlæsning af data. Ligger under mappen wavalyze. spectrogram.py Indeholder funktionerne til fremstilling af spektrogrammer. Ligger under mappen wavalyze. STFT.py Indeholder funktionerne til den implementerede STFT. Ligger under mappen wavalyze. wavegen.py Indeholder funktioner til at fremstille testsignaler og pakning af disse som wav-filer. Ligger under mappen wavalyze. init.py Er nødvendig for at kunne importere wavalyze som bibliotek. Databehandling.py Anvendes til at lave spektrogrammer og tonebestemmelse. Ligger under mappen Python scripts. Kaiser_plot.py Anvendes til at lave plots af filteret med Kaiser-vinduet. Ligger under mappen Python scripts. ParksMcclellan.py Anvendes til at lave plots af Parks-McClellan-filteret. Ligger under mappen Python scripts. Test_af_modul.py Anvendes til at teste modullet wavalyze. Ligger under mappen Python scripts.

127 Bilag B Forsøgsbeskrivelse B.1 Forsøg i lyddødt rum Formålet med forsøget er at optage en guitarmelodi, som skal bruges til, vha. applikationen (se Kapitel 2), at konstruere en tonetabel for den spillede melodi. Optagelsen foregår i et lyddødt rum, for ikke at opfange foldningsstøj i form af refleksioner under optagelsen. Optagelserne vil blive foretaget med og uden additiv støj. B.1.1 Udstyr Mikrofon: RØDE NT2-A Lydkort: Steinberg CI2 XLR-kabler Stativ Akustisk guitar Computer Højttaler: FBT Jolly 3A Målebånd B.1.2 Opstilling I det lyddøde rum er guitaristen placeret på en stol med guitaren, således der er en afstand på 52 cm til mikrofonen, der er placeret på et stativ ud for guitaristen, og med mikrofonen rettet mod guitaren (se Figur B.1 og B.2). Stolen med guitaristen er placeret på en plade, der er står på fire stolper, som er placeret ned i en holder 117

128 118 Bilag B. Forsøgsbeskrivelse Lyddøde rum 52 cm Guitar Mic Højttaler Figur B.1: Illustration af forsøgsopstilling. i gulvet. Stativet til mikrofonen er placeret på en stolpe. Mikrofonen er tilsluttet et panel i væggen med et XLR-kabel. Ved siden af guitaristen er en højttaler placeret på pladen, som anvendes i nogle af optagelserne til at afspille støj fra. Højttaleren er forbundet til panelet. Panelet i kontrolrummet er tilsluttet med kabler til lydkortet, som er koblet til computeren via et USB-kabel. På computeren benyttes programmet Audacity til dataopsamling. Der optages i mono med 16-bit opløsning. På Figur B.1 ses en illustrationen af opsætningen, og på Figur B.2 ses billeder fra forsøget. (a) (b) Figur B.2: (a) Opstillingen i det lyddøde rum. (b) Opkoblingen af lydkort i kontrolrummet. B.1.3 Udførelse Først opsættes opstillingen som vist på Figur B.1. Herefter laves test-forsøg for at indstille gain på lydkortet til det maksimale niveau, hvortil der ikke opstår clipping, da kun den indbyrdes amplitudeforskel af frekvenserne i signalet har betydning for den videre analyse. Da optages mikrofonens egenstøj samt de additive støjkilder, der skal anvendes under nogle af de følgende optagelser. Herefter optages melodier spillet af guitaristen, med og uden støj. De melodier, der anvendes i forsøget, er opgivet herunder. Det anvendte additive støj er angivet efter

129 B.1. Forsøg i lyddødt rum 119 melodierne. Melodier I forsøget er det valgt at lave optagelser både med to simple melodier, her pentatonskalaen og den kromatiske skala, samt en mere avanceret melodi: første halvdel af første vers af "Der er et yndigt land". Specielt for skalaerne indspilles tre optagelser: én over hver oktav startende fra tonerne E 2, E 3 og E 4. Additivt støj Det additive støj, der anvendes i forsøgene, er et sinus-signal på 261 Hz, og improviseret tromme-spil på en skraldespand med bladring i papirhæfte.

130

131 Bilag C Specifikationer for anvendt udstyr C.1 Lyddøde rum Der anvendes et lyddødt rum til at optage lyd i, da der ikke ønskes, at inputtet til applikationen påvirkes af foldningsstøj. Herunder følger specifikationerne for det lyddøde rum, der vil blive anvendt. Det anvendte lyddøde rum ligger på Frederik Bajers vej 7B, i Lokale B Rummet er opbygget som en boks i en boks, begge er konstrueret i beton, og den inderste boks er placeret på fire store affjedrende gummi-fødder, som sammen med konstruktionen er med til at minimere indflydelsen af støj forårsaget af vibrationer, og støj fra f.eks. forbikørende biler og busser udenfor. De indvendige mål for den inderste beton boks er ca. 8,6 gange 7,4 m i grundareal og med en højde på omkring 8,2 m. Tilsvarende er målene mellem spidserne af kilerne 6,2 gange 4,9 m og højde på 5,8 m. I rummet er der placeret et panel med nogle forskellige elektriske tilslutninger, der er forbundet til kontrolrummet. Dette gør det muligt at lave setups med minimalt hardware placeret inde i rummet under målinger. [2] C.2 Mikrofon Der er anvendt en studiemikrofon, en Røde NT2-A, til optagelserne i det lyddøde rum. Mikrofonen har tilnærmelsesvis 0 db frekvensrespons i området Hz, og har lav egenstøj. 121

132 122 Bilag C. Specifikationer for anvendt udstyr C.3 Højttaler Der anvendes en FBT Jolly 3A højttaler til at afspille støjsignalet på nogle af optagelserne. C.4 Lydkort Der anvendes et lydkort til at sample og kvantisere inputtet for at få det analoge lydsignal, der er opfanget af mikrofonen, konverteret til et digitalt signal, som kan behandles i applikationen. Det anvendte lydkort er et Steinberg CI. Dette lydkort har en maksimal samplingsfrekvens på 48 khz og en bit-opløsning på 24 bit, hvorfor det opfylder de opstillede kravsspecifikationer (se Kapitel 2). Samplingsfrekvensen, der er anvendt i forsøget, er på 44,1 Hz, som er den samme samplingsfrekvens, der anvendes til CD er.

133 Bilag D Flowchart _identify_helper2 dfreq = int(round( keyfreqs[i+1]/keyfreqs[i])) _identify_helper1 k=2 dfreq in tabel2 Ja keyfreqs[i+1] = keyfreqs[i] i+k in falseindexs Ja k+=1 k=2 Nej Nej dfreq = int( round(keyfreqs[i+1] /keyfreqs[i+k])) i+k in falseindexs Ja k+=1 Nej dfreq in tabel2 Nej bud = np.array([keyfreqs[i], keyfreqs[i+k]]) dfreq = int( round(keyfreqs[i+1] /keyfreqs[i+k])) Ja keyfreqs[i+1] = keyfreqs[i+k] End keyfreqs[i+1] = min(bud, key=lambda x:np.abs(xkeyfreqs[i+1])) dfreq in tabel2 Ja keyfreqs[i+1] = keyfreqs[i+k] Nej bud = np.array([keyfreqs[i], keyfreqs[i+k]]) keyfreqs[i+1] = min(bud, key=lambda x:np.abs(xkeyfreqs[i+1])) End Figur D.1: Hjælpe-flowchart for _identify_helper1 og _identify_helper2 til tonebestemmelsen i identify_keynotes 123

134 124 Bilag D. Flowchart _identify_helper3 keyfreqs[i] = 0 or keyfreqs[i+2] = 0 Ja bud = np.array([keyfreqs[i], keyfreqs[i+2]]) Nej keyfreqs[i] = keyfreqs[i+2] and i+2<n Ja keyfreqs[i+1] = min(bud, key=lambda x:np.abs(xkeyfreqs[i+1])) keyfreqs[i+1] = keyfreqs[i] Nej dfreq = int( round(keyfreqs[i+1] /keyfreqs[i+2])) dfreq in tabel2 Nej bud = np.array([keyfreqs[i], keyfreqs[i+2]]) Ja keyfreqs[i+1] = keyfreqs[i+2] keyfreqs[i+1] = min(bud, key=lambda x:np.abs(xkeyfreqs[i+1])) End Figur D.2: Hjælpe-flowchart for _identify_helper3 til tonebestemmelsen i identify_keynotes

135 Bilag E Filtre E.1 Parks-McClellan Båndpasfilter vha. Parks-McClellan med M=100 Toner Båndpasfilter vha. Parks-McClellan med M=100 Toner Amplitude (db) Amplitude (db) Frequency (Hz) Frequency (Hz) (a) (b) Figur E.1: Amplituderesponsen i db af hele det opnåede filter med orden M = 100, samplingsfrekvens 4410 Hz. I a) og b) er der anvendt forskellige, men tilfældige vægte. Det nederste plot i a) og b) viser amplituderesponsen i db for guitarspektrummet. 125

136 126 Bilag E. Filtre Båndpasfilter vha. Parks-McClellan med M=200 Toner Båndpasfilter vha. Parks-McClellan med M=200 Toner Amplitude (db) Amplitude (db) Frequency (Hz) Frequency (Hz) (a) (b) Figur E.2: Amplituderesponsen i db af hele det opnåede filter med orden M = 200, samplingsfrekvens 44,1 khz. I a) og b) er der anvendt forskellige, men tilfældige vægte. Det nederste plot i a) og b) viser amplituderesponsen i db for guitarspektrummet Båndpasfilter vha. Parks-McClellan med M=700 Toner Båndpasfilter vha. Parks-McClellan med M=700 Toner Amplitude (db) Amplitude (db) Frequency (Hz) Frequency (Hz) (a) (b) Figur E.3: Amplituderesponsen i db af hele det opnåede filter med orden M = 700, samplingsfrekvens 44,1 khz. I a) og b) er der anvendt forskellige, men tilfældige vægte. Det nederste plot i a) og b) viser amplituderesponsen i db for guitarspektrummet.

137 E.2. Filter vha. Kaiser-vindue med samplingsfrekvens på 44,1 khz 127 E.2 Filter vha. Kaiser-vindue med samplingsfrekvens på 44,1 khz 50 Båndpasfilter med M= Amplitude [db] Frekvens [Hz] Figur E.4: Amplituderesponsen i db af hele det opnåede filter med orden M =

138 128 Bilag E. Filtre Amplitude [db] Pasbånd i guitarspektrummet med M= Frekvens [Hz] Toner Pasbåndskanter Knækfrekvenser db krav Figur E.5: Amplituderesponsen for guitarspektrummet ni toner af gangen i db af det opnåede filter med orden M =

139 E.3. Filter vha. Kaiser-vindue med samplingsfrekvens på 2205 Hz 129 E.3 Filter vha. Kaiser-vindue med samplingsfrekvens på 2205 Hz Amplitude [db] Pasbånd i guitarspektrummet med M= Frekvens [Hz] Toner Pasbåndskanter Knækfrekvenser db krav Figur E.6: Amplituderesponsen for guitarspektrummet ni toner af gangen i db af det opnåede filter med orden M = 8148.

140

141 Bilag F Spektrogrammer F.1 Vindue-overlap Figur F.1: Overlap: 0 131

142 132 Bilag F. Spektrogrammer Figur F.2: Overlap: 0,35 Figur F.3: Overlap: 0,65

143 F.1. Vindue-overlap 133 Figur F.4: Overlap: 0,90

144 134 Bilag F. Spektrogrammer F.2 Vinduesfunktioner Figur F.5: Hanning-vindue.

145 F.2. Vinduesfunktioner 135 Figur F.6: Triangulære vindue. Figur F.7: Blackman-vindue.

146 136 Bilag F. Spektrogrammer Figur F.8: Boxcar-vindue. Figur F.9: Hanning-vindue ved filtrering.

147 F.2. Vinduesfunktioner 137 Figur F.10: Triangulære vindue ved filtrering. Figur F.11: Blackman-vindue ved filtrering.

148 138 Bilag F. Spektrogrammer Figur F.12: Boxcar-vindue ved filtrering.

149 F.3. Vinduesstørrelser 139 F.3 Vinduesstørrelser Figur F.13: Vinduesstørrelse: 2 12

150 140 Bilag F. Spektrogrammer Figur F.14: Vinduesstørrelse: 2 13 Figur F.15: Vinduesstørrelse: 2 14

151 F.3. Vinduesstørrelser 141 Figur F.16: Vinduesstørrelse: 2 15 Figur F.17: Vinduesstørrelse med tonelinjer: 2 13

152 142 Bilag F. Spektrogrammer Figur F.18: Vinduesstørrelse med tonelinjer: 2 14 F.4 Frekvensrespons for kromatisk skala med additiv støj Figur F.19: Frekvensresponsens for den kromatiske skala mellem E 3 og E 5.

153 F.5. Frekvensrespons for kromatisk skala med sinus-støj 143 Figur F.20: Frekvensresponsens for kromatisk skala mellem E 3 og E 5, filtreret. F.5 Frekvensrespons for kromatisk skala med sinus-støj Figur F.21: Frekvensrespons for den kromatiske skala E 4 med sinus-støj.

154 144 Bilag F. Spektrogrammer Figur F.22: Frekvensrespons for den kromatiske skala E 4 båndstop-filter. med sinus-støj filtreret med F.6 Vinduesstørrelser for downsampling Figur F.23: Vinduesstørrelse: 2 7

155 F.6. Vinduesstørrelser for downsampling 145 Figur F.24: Vinduesstørrelse: 2 8 Figur F.25: Vinduesstørrelse: 2 9

156 146 Bilag F. Spektrogrammer Figur F.26: Vinduesstørrelse: 2 10 Figur F.27: Vinduesstørrelse med tonelinjer: 2 8

157 F.6. Vinduesstørrelser for downsampling 147 Figur F.28: Vinduesstørrelse med tonelinjer: 2 9

Signalbehandling og matematik 1 (Tidsdiskrete signaler og systemer)

Signalbehandling og matematik 1 (Tidsdiskrete signaler og systemer) Signalbehandling og matematik 1 (Tidsdiskrete signaler og systemer) Session 1. Sekvenser, diskrete systemer, Lineære systemer, foldning og lineære tidsinvariante systemer Ved Samuel Schmidt sschmidt@hst.aau.dk

Læs mere

Matematisk modellering og numeriske metoder. Lektion 8

Matematisk modellering og numeriske metoder. Lektion 8 Matematisk modellering og numeriske metoder Lektion 8 Morten Grud Rasmussen 18. oktober 216 1 Fourierrækker 1.1 Periodiske funktioner Definition 1.1 (Periodiske funktioner). En periodisk funktion f er

Læs mere

Heisenbergs usikkerhedsrelationer. Abstrakt. Hvorfor? Funktionsrum. Nils Byrial Andersen Institut for Matematik. Matematiklærerdag 2013

Heisenbergs usikkerhedsrelationer. Abstrakt. Hvorfor? Funktionsrum. Nils Byrial Andersen Institut for Matematik. Matematiklærerdag 2013 Heisenbergs usikkerhedsrelationer Nils Byrial Andersen Institut for Matematik Matematiklærerdag 013 1 / 17 Abstrakt Heisenbergs usikkerhedsrelationer udtrykker at man ikke på samme tid både kan bestemme

Læs mere

Sampling og aliasing. Datalogisk Institut Københavns Universitet. Kapitel 4 c Jens D. Andersen

Sampling og aliasing. Datalogisk Institut Københavns Universitet. Kapitel 4 c Jens D. Andersen Sampling og aliasing (Kapitel 4) Jens D. Andersen Datalogisk Institut Københavns Universitet p.1/32 Sampling og aliasing Konvertering af signaler mellem analog (kontinuerttids-) og digital (diskrettids-)

Læs mere

2. Fourierrækker i en variabel

2. Fourierrækker i en variabel .1. Fourierrækker i en variabel I Kapitel II 7 blev der indført, dels funktionsrummene L p (X, µ) (mere udførligt skrevet L p (X, E, µ)), dels rummene L p (X, µ), der fås af L p (X, µ) ved at funktioner

Læs mere

Fourier transformationen

Fourier transformationen MODUL 6 Fourier transformationen Forfattere: Øistein WIND-WILLASSEN & Michael ELMEGÅRD 4. juni 4 Indhold Fourier transformationen 5. Definition og oprindelse.............................. 5.. Funktioner

Læs mere

Sampling. Reguleringsteknik for Grundfos Lektion 6. Jan Bendtsen

Sampling. Reguleringsteknik for Grundfos Lektion 6. Jan Bendtsen Sampling Reguleringsteknik for Grundfos Lektion 6 Jan Bendtsen Indhold Basal sampling A/D-konvertering Nyquist-frekvens Kvantisering Aliasing Feedbacksystemer Eksempel: servokontrol af motor Strøm til

Læs mere

Lineære systemer med hukommelse.

Lineære systemer med hukommelse. Lineær Response Teori. I responseteorien interesserer man sig for, hvad der kan siges generelt om sammenhængen mellem input φ(t) og output γ(t) for et system. Valg af variable. Det betragtede systems forskellige

Læs mere

Introduktion til Laplace transformen (Noter skrevet af Nikolaj Hess-Nielsen sidst revideret marts 2013)

Introduktion til Laplace transformen (Noter skrevet af Nikolaj Hess-Nielsen sidst revideret marts 2013) Introduktion til Laplace transformen (oter skrevet af ikolaj Hess-ielsen sidst revideret marts 23) Integration handler ikke kun om arealer. Tværtimod er integration basis for mange af de vigtigste værktøjer

Læs mere

π er irrationel Frank Nasser 10. december 2011

π er irrationel Frank Nasser 10. december 2011 π er irrationel Frank Nasser 10. december 2011 2008-2011. Dette dokument må kun anvendes til undervisning i klasser som abonnerer på MatBog.dk. Se yderligere betingelser for brug her. Indhold 1 Introduktion

Læs mere

Analyse 1, Prøve 4 Besvarelse

Analyse 1, Prøve 4 Besvarelse Københavns Universitet Prøve ved Det naturvidenskabelige Fakultet juni 2011 1 Analyse 1, Prøve 4 Besvarelse Lad Opgave 1 (50%) M = {T R 2 T er en åben trekant} og lad A : M R være arealfunktionen, dvs.

Læs mere

Digitale periodiske signaler

Digitale periodiske signaler KAPITEL FEM Digitale periodiske signaler For digitale signaler, som er periodiske, gælder det, at for alle n vil hvor det hele tal er perioden. g(n + ) = g(n), (5.) Af udtrykkene ses det, at periodiske

Læs mere

Introduktion til differentialregning 1. Jens Siegstad og Annegrethe Bak

Introduktion til differentialregning 1. Jens Siegstad og Annegrethe Bak Introduktion til differentialregning 1 Jens Siegstad og Annegrete Bak 16. juli 2008 1 Indledning I denne note vil vi kort introduktion til differentilregning, idet vi skal bruge teorien i et emne, Matematisk

Læs mere

Besvarelse, Eksamen Analyse 1, 2013

Besvarelse, Eksamen Analyse 1, 2013 Københavns Universitet Prøve ved Det naturvidenskabelige Fakultet juni 23 Besvarelse, Eksamen Analyse, 23 Opgave Lad, for n N, funktionen f n : [, ) R være givet ved NB. Trykfejl. Burde være x. f n (x)

Læs mere

Den homogene ligning. Vi betragter den n te ordens, homogene, lineære differentialligning. d n y dt n. an 1 + any = 0 (1.2) dt. + a1 d n 1 y dt n 1

Den homogene ligning. Vi betragter den n te ordens, homogene, lineære differentialligning. d n y dt n. an 1 + any = 0 (1.2) dt. + a1 d n 1 y dt n 1 1/7 Den homogene ligning Vi betragter den n te ordens, homogene, lineære differentialligning a 0 d n y dt n + a1 d n 1 y dt n 1 hvor a 0,..., a n R og a 0 0. Vi skriver ligningen på kort form som + + dy

Læs mere

Spektrumrepræsentation

Spektrumrepræsentation Spektrumrepræsentation (Kapitel 3) Jens D. Andersen Datalogisk Institut Københavns Universitet p.1/35 $ $ $ Spektrumrepræsentation Matematisk repræsentation af en sinusoide: hvor "! er en fasor. Mere komplicerede

Læs mere

Kortfattet svar til eksamen i Matematik F2 d. 21. juni 2017

Kortfattet svar til eksamen i Matematik F2 d. 21. juni 2017 Kortfattet svar til eksamen i Matematik F2 d. 2. juni 27 Opgave Bestem for følgende tilfælde om en funktion f(z) af z = x + iy er analytisk i dele af den komplekse plan, hvis den har real del u(x, y) og

Læs mere

Øvelsesvejledning. Frekvenskarakteristikker Simulering og realisering af passive filtre.

Øvelsesvejledning. Frekvenskarakteristikker Simulering og realisering af passive filtre. ELT2, Passive filter, frekvenskarakteristikker Øvelsesvejledning Frekvenskarakteristikker Simulering og realisering af passive filtre. Øvelsen består af 3 dele: 1. En beregningsdel som du forventes at

Læs mere

Svingninger. Erik Vestergaard

Svingninger. Erik Vestergaard Svingninger Erik Vestergaard 2 Erik Vestergaard www.matematikfysik.dk Erik Vestergaard, 2009. Billeder: Forside: Bearbejdet billede af istock.com/-m-i-s-h-a- Desuden egne illustrationer. Erik Vestergaard

Læs mere

ANALYSE 1, 2014, Uge 5

ANALYSE 1, 2014, Uge 5 ANALYSE, 204, Uge 5 Afleveringsfrist for Prøve 2 er Tirsdag den 20/5 kl 0:5. Forelæsninger Tirsdag Vi går videre med Afsnit 4 om uniform konvergens af Fourierrækker, hvor hovedsætningen er Sætning 4.3.

Læs mere

Integralregning Infinitesimalregning

Integralregning Infinitesimalregning Udgave 2.1 Integralregning Infinitesimalregning Noterne gennemgår begreberne integral og stamfunktion, og anskuer dette som et redskab til bestemmelse af arealer under funktioner. Noterne er supplement

Læs mere

Algebra - Teori og problemløsning

Algebra - Teori og problemløsning Algebra - Teori og problemløsning, januar 05, Kirsten Rosenkilde. Algebra - Teori og problemløsning Kapitel -3 giver en grundlæggende introduktion til at omskrive udtryk, faktorisere og løse ligningssystemer.

Læs mere

Hilbert rum. Chapter 3. 3.1 Indre produkt rum

Hilbert rum. Chapter 3. 3.1 Indre produkt rum Chapter 3 Hilbert rum 3.1 Indre produkt rum I det følgende skal vi gøre brug af komplekse såvel som reelle vektorrum. Idet L betegner enten R eller C minder vi om, at et vektorrum over L er en mængde E

Læs mere

Supplerende opgaver. S1.3.1 Lad A, B og C være delmængder af X. Vis at

Supplerende opgaver. S1.3.1 Lad A, B og C være delmængder af X. Vis at Supplerende opgaver Analyse Jørgen Vesterstrøm Forår 2004 S.3. Lad A, B og C være delmængder af X. Vis at (A B C) (A B C) (A B) C og find en nødvendig og tilstrækkelig betingelse for at der gælder lighedstegn

Læs mere

Kalkulus 2 - Grænseovergange, Kontinuitet og Følger

Kalkulus 2 - Grænseovergange, Kontinuitet og Følger Kalkulus - Grænseovergange, Kontinuitet og Følger Mads Friis 8. januar 05 Indhold Grundlæggende uligheder Grænseovergange 3 3 Kontinuitet 9 4 Følger 0 5 Perspektivering 4 Grundlæggende uligheder Sætning

Læs mere

Pointen med Differentiation

Pointen med Differentiation Pointen med Differentiation Frank Nasser 20. april 2011 c 2008-2011. Dette dokument må kun anvendes til undervisning i klasser som abonnerer på MatBog.dk. Se yderligere betingelser for brug her. Bemærk:

Læs mere

Lineære differentialligningers karakter og lineære 1. ordens differentialligninger

Lineære differentialligningers karakter og lineære 1. ordens differentialligninger enote 11 1 enote 11 Lineære differentialligningers karakter og lineære 1. ordens differentialligninger I denne note introduceres lineære differentialligninger, som er en speciel (og bekvem) form for differentialligninger.

Læs mere

1/41. 2/41 Landmålingens fejlteori - Lektion 1 - Kontinuerte stokastiske variable

1/41. 2/41 Landmålingens fejlteori - Lektion 1 - Kontinuerte stokastiske variable Landmålingens fejlteori - lidt om kurset Landmålingens fejlteori Lektion 1 Det matematiske fundament Kontinuerte stokastiske variable - rw@math.aau.dk Institut for Matematiske Fag Aalborg Universitet Kursusholder

Læs mere

Mere om differentiabilitet

Mere om differentiabilitet Mere om differentiabilitet En uddybning af side 57 i Spor - Komplekse tal Kompleks funktionsteori er et af de vigtigste emner i matematikken og samtidig et af de smukkeste I bogen har vi primært beskæftiget

Læs mere

Projektopgave Observationer af stjerneskælv

Projektopgave Observationer af stjerneskælv Projektopgave Observationer af stjerneskælv Af: Mathias Brønd Christensen (20073504), Kristian Jerslev (20072494), Kristian Mads Egeris Nielsen (20072868) Indhold Formål...3 Teori...3 Hvorfor opstår der

Læs mere

MM502+4 forelæsningsslides

MM502+4 forelæsningsslides MM502+4 forelæsningsslides uge 11+12 1, 2009 Produceret af Hans J. Munkholm, delvis på baggrund af lignende materiale udarbejdet af Mikael Rørdam 1 I nærværende forbindelse er 11 + 12 23 1 Egenskaber for

Læs mere

wwwdk Digital lydredigering på computeren grundlæggende begreber

wwwdk Digital lydredigering på computeren grundlæggende begreber wwwdk Digital lydredigering på computeren grundlæggende begreber Indhold Digital lydredigering på computeren grundlæggende begreber... 1 Indhold... 2 Lyd er trykforandringer i luftens molekyler... 3 Frekvens,

Læs mere

Eksamen 2014/2015 Mål- og integralteori

Eksamen 2014/2015 Mål- og integralteori Eksamen 4/5 Mål- og integralteori Københavns Universitet Institut for Matematiske Fag Formalia Eksamensopgaven består af 4 opgaver med ialt spørgsmål Ved bedømmelsen indgår de spørgsmål med samme vægt

Læs mere

Matematik F2 Opgavesæt 6

Matematik F2 Opgavesæt 6 Opgave 4: Udtryk funktionen f(θ) = sin θ ved hjælp af Legendre-polynomierne på formen P l (cos θ). Dvs. find koefficienterne a l i ekspansionen f(θ) = a l P l (cos θ) l= Svar: Bemærk, at funktionen er

Læs mere

Københavns Universitet, Det naturvidenskabelige Fakultet. Afleveringsopgave 1

Københavns Universitet, Det naturvidenskabelige Fakultet. Afleveringsopgave 1 Københavns Universitet, Det naturvidenskabelige Fakultet 1 Lineær Algebra (LinAlg) Afleveringsopgave 1 Eventuelle besvarelser laves i grupper af - 3 personer og afleveres i to eksemplarer med 3 udfyldte

Læs mere

Emneopgave: Lineær- og kvadratisk programmering:

Emneopgave: Lineær- og kvadratisk programmering: Emneopgave: Lineær- og kvadratisk programmering: LINEÆR PROGRAMMERING I lineær programmering løser man problemer hvor man for en bestemt funktion ønsker at finde enten en maksimering eller en minimering

Læs mere

Matematisk modellering og numeriske metoder. Lektion 16

Matematisk modellering og numeriske metoder. Lektion 16 Matematisk modellering og numeriske metoder Lektion 16 Morten Grud Rasmussen 6. november, 2013 1 Interpolation [Bogens afsnit 19.3 side 805] 1.1 Interpolationspolynomier Enhver kontinuert funktion f på

Læs mere

3 Overføringsfunktion

3 Overføringsfunktion 1 3 Overføringsfunktion 3.1 Overføringsfunktion For et system som vist på figur 3.1 er overføringsfunktionen givet ved: Y (s) =H(s) X(s) [;] (3.1) Y (s) X(s) = H(s) [;] (3.2) Y (s) er den Laplacetransformerede

Læs mere

Projekt 4.6 Løsning af differentialligninger ved separation af de variable

Projekt 4.6 Løsning af differentialligninger ved separation af de variable Projekt 4.6 Løsning af differentialligninger ved separation af de variable Differentialligninger af tpen d hx () hvor hx ()er en kontinuert funktion, er som nævnt blot et stamfunktionsproblem. De løses

Læs mere

Design og udvikling af et blodtryks ma lesystem

Design og udvikling af et blodtryks ma lesystem Design og udvikling af et blodtryks ma lesystem 3. semesterprojekt side 1 af 5 Design og udvikling af et blodtryks målesystem Problemformulering I daglig klinisk praksis er der ofte behov for kontinuert

Læs mere

Den ideelle operationsforstærker.

Den ideelle operationsforstærker. ELA Den ideelle operationsforstærker. Symbol e - e + v o Differensforstærker v o A OL (e + - e - ) - A OL e ε e ε e - - e + (se nedenstående figur) e - e ε e + v o AOL e - Z in (i in 0) e + i in i in v

Læs mere

Svar til eksamen i Matematik F2 d. 23. juni 2016

Svar til eksamen i Matematik F2 d. 23. juni 2016 Svar til eksamen i Matematik F d. 3. juni 06 FORBEHOLD FOR FEJL! Bemærk, i modsætning til herunder, så skal det i besvarelsen fremgå tydeligt, hvordan polerne ndes og hvordan de enkelte residuer udregnes.

Læs mere

C R. Figur 1 Figur 2. er eksempler på kredsløbsfunktioner. Derimod er f.eks. indgangsimpedansen

C R. Figur 1 Figur 2. er eksempler på kredsløbsfunktioner. Derimod er f.eks. indgangsimpedansen Kredsløbsfunktioner Lad os i det følgende betragte kredsløb, der er i hvile til t = 0. Det vil sige, at alle selvinduktionsstrømme og alle kondensatorspændinger er nul til t = 0. I de Laplace-transformerede

Læs mere

Besvarelses forslag til Tag-hjemeksamen Vinteren 02 03

Besvarelses forslag til Tag-hjemeksamen Vinteren 02 03 IMFUFA Carsten Lunde Petersen Besvarelses forslag til Tag-hjemeksamen Vinteren 02 0 Hvor ikke andet er angivet er henvisninger til W.R.Wade An Introduction to analysis. Opgave a) Idet udtrykket e x2 cos

Læs mere

Årsplan i matematik klasse

Årsplan i matematik klasse 32-36 Brøker og Én brøk - forskellige betydninger en helhed ved hjælp af brøker. en helhed ved hjælp af brøker. Eleven kan bruge brøker til at beskrive forholdet mellem to størrelser. Eleven kan argumentere

Læs mere

Nedenfor er tegnet svingningsmønsteret for to sinus-toner med frekvensen 440 og 443 Hz:

Nedenfor er tegnet svingningsmønsteret for to sinus-toner med frekvensen 440 og 443 Hz: Appendiks 1: Om svævning: Hvis to toner ligger meget tæt på hinanden opstår et interessant akustisk og matematisk fænomen, der kaldes svævning. Det er dette fænomen, der ligger bag alle de steder, hvor

Læs mere

Undervisningsbeskrivelse

Undervisningsbeskrivelse Undervisningsbeskrivelse Stamoplysninger til brug ved prøver til gymnasiale uddannelser Termin Jan 2016 - Juni 2019 Institution Hotel- og Restaurantskolen Uddannelse Fag og niveau Lærer(e) Hold EUX ernæringsassistent

Læs mere

Potensrækker. Morten Grud Rasmussen 1 10. november 2015. Definition 1 (Potensrække). En potensrække er en uendelig række på formen

Potensrækker. Morten Grud Rasmussen 1 10. november 2015. Definition 1 (Potensrække). En potensrække er en uendelig række på formen Potensrækker Morten Grud Rasmussen 1 10 november 2015 Definition og konvergens af potensrækker Definition 1 Potensrække) En potensrække er en uendelig række på formen a n pz aq n, 1) hvor afsnittene er

Læs mere

4 Oversigt over kapitel 4

4 Oversigt over kapitel 4 IMM, 2002-09-14 Poul Thyregod 4 Oversigt over kapitel 4 Introduktion Hidtil har vi beskæftiget os med data. Når data repræsenterer gentagne observationer (i bred forstand) af et fænomen, kan det være bekvemt

Læs mere

MATEMATIK 11 Eksamensopgaver Juni 1995 Juni 2001, 4. fjerdedel

MATEMATIK 11 Eksamensopgaver Juni 1995 Juni 2001, 4. fjerdedel Juni 2000 MATEMATIK 11 Eksamensopgaver Juni 1995 Juni 2001, 4. fjerdedel Opgave 1. (a) Find den fuldstændige løsning til differentialligningen y 8y + 16y = 0. (b) Find den fuldstændige løsning til differentialligningen

Læs mere

Definition: Normalfordelingen. siges at være normalfordelt med middelværdi µ og varians σ 2, hvor µ og σ er reelle tal og σ > 0.

Definition: Normalfordelingen. siges at være normalfordelt med middelværdi µ og varians σ 2, hvor µ og σ er reelle tal og σ > 0. Landmålingens fejlteori Lektion 2 Transformation af stokastiske variable - kkb@math.aau.dk http://people.math.aau.dk/ kkb/undervisning/lf12 Institut for Matematiske Fag Aalborg Universitet Repetition:

Læs mere

Eleven kan handle med overblik i sammensatte situationer med matematik. Eleven kan anvende rationale tal og variable i beskrivelser og beregninger

Eleven kan handle med overblik i sammensatte situationer med matematik. Eleven kan anvende rationale tal og variable i beskrivelser og beregninger Kompetenceområde Efter klassetrin Efter 6. klassetrin Efter 9. klassetrin Matematiske kompetencer handle hensigtsmæssigt i situationer med handle med overblik i sammensatte situationer med handle med dømmekraft

Læs mere

MATEMATIK 11 Eksamensopgaver Juni 1995 Juni 2001, 3. fjerdedel

MATEMATIK 11 Eksamensopgaver Juni 1995 Juni 2001, 3. fjerdedel MATEMATIK Eksamensopgaver Juni 995 Juni 200, 3. fjerdedel August 998 Opgave. Lad f : R \ {0} R betegne funktionen givet ved f(x) = ex x for x 0. (a) Find eventuelle lokale maksimums- og minimumspunkter

Læs mere

Matematisk modellering og numeriske metoder. Lektion 6

Matematisk modellering og numeriske metoder. Lektion 6 Matematisk modellering og numeriske metoder Lektion 6 Morten Grud Rasmussen 24. september, 2013 1 Forcerede oscillationer [Bogens afsnit 2.8, side 85] 1.1 Et forstyrret masse-fjeder-system I udledningen

Læs mere

Wigner s semi-cirkel lov

Wigner s semi-cirkel lov Wigner s semi-cirkel lov 12. december 2009 Eulers Venner Steen Thorbjørnsen Institut for Matematiske Fag Århus Universitet Diagonalisering af selvadjungeret matrix Lad H være en n n matrix med komplekse

Læs mere

Besvarelse til eksamen i Matematik F2, 2012

Besvarelse til eksamen i Matematik F2, 2012 Besvarelse til eksamen i Matematik F2, 202 Partiel besvarelse - har ikke inkluderet alle detaljer! Med forbehold for tastefejl. Opgave Find og bestem typen af alle singulariteter for følgende funktioner:

Læs mere

Formelsamling - MatF2. Therkel Zøllner og Amalie Christensen 27. juni 2009

Formelsamling - MatF2. Therkel Zøllner og Amalie Christensen 27. juni 2009 Formelsamling - MatF2 Therkel Zøllner og Amalie Christensen 27. juni 2009 1 Indhold 1 Kompleks variabel teori 3 1.1 Komplekse funktioner 825-830........................... 3 1.2 Powerserier af komplekse

Læs mere

Chapter 3. Modulpakke 3: Egenværdier. 3.1 Indledning

Chapter 3. Modulpakke 3: Egenværdier. 3.1 Indledning Chapter 3 Modulpakke 3: Egenværdier 3.1 Indledning En vektor v har som bekendt både størrelse og retning. Hvis man ganger vektoren fra højre på en kvadratisk matrix A bliver resultatet en ny vektor. Hvis

Læs mere

Komplekse tal. x 2 = 1 (2) eller

Komplekse tal. x 2 = 1 (2) eller Komplekse tal En tilegnelse af stoffet i dette appendix kræver at man løser opgaverne Komplekse tal viser sig uhyre nyttige i fysikken, f.eks til løsning af lineære differentialligninger eller beskrivelse

Læs mere

Figur 0.1: To kredsløb hvor en operationsforstærker bliver brugt som komparator. [1]

Figur 0.1: To kredsløb hvor en operationsforstærker bliver brugt som komparator. [1] A/D Konvertering Den virkelige verden, består af kontinuerlige analoge signaler. Computere derimod kan kun håndtere diskrete digitale signaler. Et forsøg på at repræsentere og bearbejde virkeligheden på

Læs mere

af koblede differentialligninger (se Apostol Bind II, s 229ff) 3. En n te ordens differentialligning

af koblede differentialligninger (se Apostol Bind II, s 229ff) 3. En n te ordens differentialligning EKSISTENS- OG ENTYDIGHEDSSÆTNINGEN Vi vil nu bevise eksistens- og entydighedssætningen for ordinære differentialligninger. For overskuelighedens skyld vil vi indskrænke os til at undersøge een 1. ordens

Læs mere

Polynomier. Indhold. Georg Mohr-Konkurrencen. 1 Polynomier 2. 2 Polynomiumsdivision 4. 3 Algebraens fundamentalsætning og rødder 6

Polynomier. Indhold. Georg Mohr-Konkurrencen. 1 Polynomier 2. 2 Polynomiumsdivision 4. 3 Algebraens fundamentalsætning og rødder 6 Indhold 1 Polynomier 2 Polynomier 2 Polynomiumsdivision 4 3 Algebraens fundamentalsætning og rødder 6 4 Koefficienter 8 5 Polynomier med heltallige koefficienter 9 6 Mere om polynomier med heltallige koefficienter

Læs mere

Analyse 2. Gennemgå bevis for Sætning Supplerende opgave 1. Øvelser. Sætning 1. For alle mængder X gælder #X < #P(X).

Analyse 2. Gennemgå bevis for Sætning Supplerende opgave 1. Øvelser. Sætning 1. For alle mængder X gælder #X < #P(X). Analyse 2 Øvelser Rasmus Sylvester Bryder 3. og 6. september 2013 Gennemgå bevis for Sætning 2.10 Sætning 1. For alle mængder X gælder #X < #P(X). Bevis. Der findes en injektion X P(X), fx givet ved x

Læs mere

Den klassiske oscillatormodel

Den klassiske oscillatormodel Kvantemekanik 6 Side af 8 n meget central model inden for KM er den såkaldte harmoniske oscillatormodel, som historisk set spillede en afgørende rolle i de banebrydende beskrivelser af bla. sortlegemestråling

Læs mere

Karakteristiske funktioner og Den Centrale Grænseværdisætning

Karakteristiske funktioner og Den Centrale Grænseværdisætning E6 efterår 1999 Notat 10 Jørgen Larsen 20. oktober 1999 Karakteristiske funktioner og Den Centrale Grænseværdisætning Karakteristiske funktioner som er nære slægtninge til Fourier-transformationen) er

Læs mere

Anvendelse af den diskrete fouriertransformation

Anvendelse af den diskrete fouriertransformation KAPITEL SYV Anvendelse af den diskrete fouriertransformation En meget anvendt beregningsprocedure inden for digital signalbehandling er den diskrete fouriertransformation (i det følgende forkortet til

Læs mere

Introduktion til cosinus, sinus og tangens

Introduktion til cosinus, sinus og tangens Introduktion til cosinus, sinus og tangens Jes Toft Kristensen 24. maj 2010 1 Forord Her er en lille introduktion til cosinus, sinus og tangens. Det var et af de emner jeg selv havde svært ved at forstå,

Læs mere

Gult Foredrag Om Net

Gult Foredrag Om Net Gult Foredrag Om Net University of Aarhus Århus 8 th March, 2010 Introduktion I: Fra Metriske til Topologiske Rum Et metrisk rum er en mængde udstyret med en afstandsfunktion. Afstandsfunktionen bruges

Læs mere

En martingalversion af CLT

En martingalversion af CLT Kapitel 11 En martingalversion af CLT Når man har vænnet sig til den centrale grænseværdisætning for uafhængige, identisk fordelte summander, plejer næste skridt at være at se på summer af stokastiske

Læs mere

Taylors formel. Kapitel Klassiske sætninger i en dimension

Taylors formel. Kapitel Klassiske sætninger i en dimension Kapitel 3 Taylors formel 3.1 Klassiske sætninger i en dimension Sætning 3.1 (Rolles sætning) Lad f : [a, b] R være kontinuert, og antag at f er differentiabel i det åbne interval (a, b). Hvis f (a) = f

Læs mere

Ren versus ligesvævende stemning

Ren versus ligesvævende stemning Ren versus ligesvævende 1. Toner, frekvenser, overtoner og intervaller En oktav består af 12 halvtoner. Til hver tone er knyttet en frekvens. Kammertonen A4 defineres f.eks. til at have frekvensen 440

Læs mere

Besvarelser til Calculus Ordinær Eksamen - 5. Januar 2018

Besvarelser til Calculus Ordinær Eksamen - 5. Januar 2018 Besvarelser til Calculus Ordinær Eksamen - 5. Januar 18 Mikkel Findinge Bemærk, at der kan være sneget sig fejl ind. Kontakt mig endelig, hvis du skulle falde over en sådan. Dette dokument har udelukkende

Læs mere

n=1 er veldefineret for alle følger for hvilke højresiden er endelig. F.eks. tilhører følgen

n=1 er veldefineret for alle følger for hvilke højresiden er endelig. F.eks. tilhører følgen 2 Hilbert rum 2. Eksempler på Hilbert rum Vi skal nu først forsøge at begrunde, at de indre produkt rum af funktioner eller følger, som blev indført i Kapitel, ikke er omfattende nok til vores formål.

Læs mere

Varmeligningen og cosinuspolynomier.

Varmeligningen og cosinuspolynomier. Varmeligningen og cosinuspolynomier. Projekt for MM50 Marts 009 Hans J. Munkholm 0. Praktiske oplysninger Dette projekt besvares af de studerende, som er tilmeldt eksamen i MM50 uden at være tilmeldt eksamen

Læs mere

Differentialregning. Ib Michelsen

Differentialregning. Ib Michelsen Differentialregning Ib Michelsen Ikast 2012 Forsidebilledet Tredjegradspolynomium i blåt med rød tangent Version: 0.02 (18-09-12) Denne side er (~ 2) Indholdsfortegnelse Introduktion...5 Definition af

Læs mere

3. klasse 6. klasse 9. klasse

3. klasse 6. klasse 9. klasse Børne- og Undervisningsudvalget 2012-13 BUU Alm.del Bilag 326 Offentligt Elevplan 3. klasse 6. klasse 9. klasse Matematiske kompetencer Status tal og algebra sikker i, er usikker i de naturlige tals opbygning

Læs mere

Matematisk modellering og numeriske metoder. Lektion 11

Matematisk modellering og numeriske metoder. Lektion 11 Matematisk modellering og numeriske metoder Lektion 11 Morten Grud Rasmussen 5. november 2016 1 Partielle differentialligninger 1.1 Udledning af varmeligningen Vi vil nu på samme måde som med bølgeligningen

Læs mere

Mini-formelsamling. Matematik 1

Mini-formelsamling. Matematik 1 Indholdsfortegnelse 1 Diverse nyttige regneregler... 1 1.1 Regneregler for brøker... 1 1.2 Potensregneregler... 1 1.3 Kvadratsætninger... 2 1.4 (Nogle) Rod-regneregler... 2 1.5 Den naturlige logaritme...

Læs mere

Undervisningsbeskrivelse

Undervisningsbeskrivelse Undervisningsbeskrivelse Termin august 2015 maj 2016 Institution Rybners Uddannelse Fag og niveau Lærer(e) HTX A Steffen Podlech Hold 2.E Oversigt over gennemførte undervisningsforløb Titel 1 Titel 2 Titel

Læs mere

Grundlæggende Matematik

Grundlæggende Matematik Grundlæggende Matematik Hayati Balo, AAMS August 2012 1. Matematiske symboler For at udtrykke de verbale udsagn matematisk korrekt, så det bliver lettere og hurtigere at skrive, indføres en række matematiske

Læs mere

Punktmængdetopologi. Mikkel Stouby Petersen. 1. marts 2013

Punktmængdetopologi. Mikkel Stouby Petersen. 1. marts 2013 Punktmængdetopologi Mikkel Stouby Petersen 1. marts 2013 I kurset Matematisk Analyse 1 er et metrisk rum et af de mest grundlæggende begreber. Et metrisk rum (X, d) er en mængde X sammen med en metrik

Læs mere

Om hypoteseprøvning (1)

Om hypoteseprøvning (1) E6 efterår 1999 Notat 16 Jørgen Larsen 11. november 1999 Om hypoteseprøvning 1) Det grundlæggende problem kan generelt formuleres sådan: Man har en statistisk model parametriseret med en parameter θ Ω;

Læs mere

Besvarelser til Calculus Ordinær eksamen - Forår - 6. Juni 2016

Besvarelser til Calculus Ordinær eksamen - Forår - 6. Juni 2016 Besvarelser til Calculus Ordinær eksamen - Forår - 6. Juni 16 Mikkel Findinge Bemærk, at der kan være sneget sig fejl ind. Kontakt mig endelig, hvis du skulle falde over en sådan. Dette dokument har udelukkende

Læs mere

Matematisk modellering og numeriske metoder. Lektion 17

Matematisk modellering og numeriske metoder. Lektion 17 Matematisk modellering og numeriske metoder Lektion 1 Morten Grud Rasmussen. december 16 1 Numerisk integration og differentiation 1.1 Simpsons regel Antag, at vi har en funktion f på intervallet I = [a,

Læs mere

Statistik Lektion 3. Simultan fordelte stokastiske variable Kontinuerte stokastiske variable Normalfordelingen

Statistik Lektion 3. Simultan fordelte stokastiske variable Kontinuerte stokastiske variable Normalfordelingen Statistik Lektion 3 Simultan fordelte stokastiske variable Kontinuerte stokastiske variable Normalfordelingen Repetition En stokastisk variabel er en funktion defineret på S (udfaldsrummet, der antager

Læs mere

Studieplan. Stamoplysninger til brug ved prøver til gymnasiale uddannelser. Oversigt over gennemførte undervisningsforløb

Studieplan. Stamoplysninger til brug ved prøver til gymnasiale uddannelser. Oversigt over gennemførte undervisningsforløb Studieplan Stamoplysninger til brug ved prøver til gymnasiale uddannelser Termin August 10-juni 11 Institution Grenaa Tekniske Gymnasium Uddannelse Fag og niveau Lærer(e) Hold HTX Matematik B2 Klavs Skjold

Læs mere

brikkerne til regning & matematik tal og algebra preben bernitt

brikkerne til regning & matematik tal og algebra preben bernitt brikkerne til regning & matematik tal og algebra 2+ preben bernitt brikkerne. Tal og algebra 2+ 1. udgave som E-bog ISBN: 978-87-92488-35-0 2008 by bernitt-matematik.dk Kopiering af denne bog er kun tilladt

Læs mere

Besvarelser til Calculus Ordinær Eksamen - 3. Januar 2017

Besvarelser til Calculus Ordinær Eksamen - 3. Januar 2017 Besvarelser til Calculus Ordinær Eksamen - 3. Januar 17 Mikkel Findinge Bemærk, at der kan være sneget sig fejl ind. Kontakt mig endelig, hvis du skulle falde over en sådan. Dette dokument har udelukkende

Læs mere

Omskrivningsregler. Frank Nasser. 10. december 2011

Omskrivningsregler. Frank Nasser. 10. december 2011 Omskrivningsregler Frank Nasser 10. december 2011 2008-2011. Dette dokument må kun anvendes til undervisning i klasser som abonnerer på MatBog.dk. Se yderligere betingelser for brug her. Indhold 1 Introduktion

Læs mere

MATEMATIK 4 PROJEKT 3. marts 2006 Oversigt nr. 1

MATEMATIK 4 PROJEKT 3. marts 2006 Oversigt nr. 1 PROJEKT 3. marts 2006 Oversigt nr. 1 1. og 2. møde (15/2 og 2/3). Her har vi læst og gennemgået kapitel 1 i [GKP] om mængdeteoretisk topologi. Dog er følgende kursorisk: 1.1; 1.5.10 13; 1.6.13 14. 3. gang,

Læs mere

Mat H /05 Note 2 10/11-04 Gerd Grubb

Mat H /05 Note 2 10/11-04 Gerd Grubb Mat H 1 2004/05 Note 2 10/11-04 Gerd Grubb Nødvendige og tilstrækkelige betingelser for ekstremum, konkave og konvekse funktioner. Fremstillingen i Kapitel 13.1 2 af Sydsæters bog [MA1] suppleres her med

Læs mere

Komplekse tal og algebraens fundamentalsætning.

Komplekse tal og algebraens fundamentalsætning. Komplekse tal og algebraens fundamentalsætning. Michael Knudsen 10. oktober 2005 1 Ligningsløsning Lad N = {0,1,2,...} betegne mængden af de naturlige tal og betragt ligningen ax + b = 0, a,b N,a 0. Findes

Læs mere

Program. Statistik og Sandsynlighedsregning. Eksempler. Sandsynlighedstæthed og sandsynlighedsmål

Program. Statistik og Sandsynlighedsregning. Eksempler. Sandsynlighedstæthed og sandsynlighedsmål Program Statistik og Sandsynlighedsregning Sandsynlighedstætheder og kontinuerte fordelinger på R Varians og middelværdi Normalfordelingen Susanne Ditlevsen Uge 48, tirsdag Tætheder og fordelingsfunktioner

Læs mere

Reeksamen 2014/2015 Mål- og integralteori

Reeksamen 2014/2015 Mål- og integralteori Reeksamen 4/5 Mål- og integralteori Københavns Universitet Institut for Matematiske Fag Formalia Eksamensopgaven består af 4 opgaver med ialt spørgsmål. Ved bedømmelsen indgår de spørgsmål med samme vægt.

Læs mere

Idenne note giver vi et eksempel på, hvorledes det er vigtigt at holde sig

Idenne note giver vi et eksempel på, hvorledes det er vigtigt at holde sig Analyse : Eulers formel Sebastian rsted 9. maj 015 Idenne note giver vi et eksempel på, hvorledes det er vigtigt at holde sig for øje, hvor de matematiske resultater kommer fra, og hvad de baseres på;

Læs mere

Besvarelser til Calculus Ordinær Eksamen Januar 2019

Besvarelser til Calculus Ordinær Eksamen Januar 2019 Besvarelser til Calculus Ordinær Eksamen - 14. Januar 19 Mikkel Findinge Bemærk, at der kan være sneget sig fejl ind. Kontakt mig endelig, hvis du skulle falde over en sådan. Dette dokument har udelukkende

Læs mere

Årsplan for 7. klasse, matematik

Årsplan for 7. klasse, matematik Årsplan for 7. klasse, matematik I matematik bruger vi bogsystemet Sigma som grundmateriale. I systemet er der, ud over grundbogen, også kopiark og tests tilknyttet de enkelte kapitler. Systemet er udarbejdet

Læs mere

Mujtaba og Farid Integralregning 06-08-2011

Mujtaba og Farid Integralregning 06-08-2011 Indholdsfortegnelse Integral regning:... 2 Ubestemt integral:... 2 Integrationsprøven:... 3 1) Integration af potensfunktioner:... 3 2) Integration af sum og Differens:... 3 3) Integration ved Multiplikation

Læs mere

Matematisk modellering og numeriske metoder. Lektion 5

Matematisk modellering og numeriske metoder. Lektion 5 Matematisk modellering og numeriske metoder Lektion 5 Morten Grud Rasmussen 19. september, 2013 1 Euler-Cauchy-ligninger [Bogens afsnit 2.5, side 71] 1.1 De tre typer af Euler-Cauchy-ligninger Efter at

Læs mere

Grundlæggende Matematik

Grundlæggende Matematik Grundlæggende Matematik Hayati Balo, AAMS Juli 2013 1. Matematiske symboler For at udtrykke de verbale udsagn matematisk korrekt, så det bliver lettere og hurtigere at skrive, indføres en række matematiske

Læs mere