Spektralanalys - konsten att hitta frekvensinnehållet i en signal

Relevanta dokument
Projekt Spektralanalys med hjälp av den diskreta Fouriertransformen

Vad är spektralanalys? Spektralanalys. Frekvensinnehåll. Enkelt exempel

Projekt Spektralanalys med hjälp av den diskreta Fouriertransformen. Marcus Björk Doktorand i Signalbehandling, Systemteknik (IT)

Projekt Spektralanalys med hjälp av den diskreta Fouriertransformen

Beskrivning av signaler i frekvensdomänen - sammanfattning

Ulrik Söderström 20 Jan Signaler & Signalanalys

Ulrik Söderström 19 Jan Signalanalys

Kap 10 - Modeller med störningar. Hur beskriva slumpmässiga störningar?

Spektrala Transformer

Spektrala Transformer

Tillämpad Fysik Och Elektronik 1

Resttentamen i Signaler och System Måndagen den 11.januari 2010, kl 14-19

Projekt Spektralanalys med hjälp av den diskreta Fouriertransformen. Marcus Björk Doktorand i Signalbehandling, Systemteknik (IT)

Spektrala Transformer

Projekt 3: Diskret fouriertransform

Vad gör vi när vi bara har en mätserie och ingen elegant matematisk funktion? Spektrum av en samplad signal. Trunkering i tiden

Föreläsning 10, Egenskaper hos tidsdiskreta system

Teori... SME118 - Mätteknik & Signalbehandling SME118. Johan Carlson 2. Teori... Dagens meny

DT1130 Spektrala transformer Tentamen

Transformer och differentialekvationer (MVE100)

Signaler & Signalanalys

Spektrala Transformer

Kompletterande räkneuppgifter i Spektrala Transformer Komplex analys, sampling, kvantisering, serier och filter Laura Enflo & Giampiero Salvi

TEM Projekt Transformmetoder

Signalanalys med snabb Fouriertransform

EXEMPEL 1: ARTVARIATION FÖRELÄSNING 1. EEG frekvensanalys EXEMPEL 2: EEG

7. Sampling och rekonstruktion av signaler

DT1130 Spektrala transformer Tentamen

Laboration 3 Sampling, samplingsteoremet och frekvensanalys

AD-DA-omvandlare. Mätteknik. Ville Jalkanen. 1

Spektrala Transformer

Laboration i Fourieranalys, TMA132 Signalanalys med snabb Fouriertransform

DIGITALA FILTER. Tillämpad Fysik Och Elektronik 1. Frekvensfunktioner FREKVENSSVAR FÖR ETT TIDSDISKRET SYSTEM. x(n)= Asin(Ωn)

Laboration i Fourieranalys för F2, TM2, Kf2 2011/12 Signalanalys med snabb Fouriertransform (FFT)

i(t) C i(t) = dq(t) dt = C dy(t) dt y(t) + (4)

Signal- och bildbehandling TSBB03

Signal- och Bildbehandling, TSBB14. Laboration 2: Sampling och Tidsdiskreta signaler

Föreläsning 11 Reglerteknik AK

Föreläsning 11. Reglerteknik AK. c Bo Wahlberg. 8 oktober Avdelningen för reglerteknik Skolan för elektro- och systemteknik

Signaler och system, IT3

Laboration i tidsdiskreta system

Föreläsning 6: Spektralskattning: icke parametriska metoder. Leif Sörnmo 4 oktober 2009

SIGNALANALYS I FREKVENSRUMMET

En översikt av Kap 7. Tillbakablick, återkoppling Informationsteknologi Reglering av vätskenivån i en tank. Framkoppling. Informationsteknologi

Laboration i Fourieranalys för F2, TM2, Kf2 2013/14 Signalanalys med snabb Fouriertransform (FFT)

TSKS21 Signaler, Information och Bilder Lab 2: Digitalisering

Reglerteori. Föreläsning 3. Torkel Glad

Signal- och Bildbehandling, TSBB14. Laboration 2: Sampling och rekonstruktion. DFT.

Tentamen i TMA 982 Linjära System och Transformer VV-salar, 27 aug 2013, kl

Tentamen i ESS 010 Signaler och System E3 V-sektionen, 16 augusti 2005, kl

Projekt 1 (P1) Problembeskrivning och uppdragsspecifikation

Tentamen ssy080 Transformer, Signaler och System, D3

Tentamen ssy080 Transformer, Signaler och System, D3

DT1130 Spektrala transformer Tentamen

Analys av egen tidsserie

TSBB16 Datorövning A Samplade signaler Faltning

DT1120 Spektrala transformer för Media Tentamen

Datorövning: Fouriertransform med Python

Uppsala Universitet Matematiska Institutionen Bo Styf. Sammanfattning av föreläsningarna 15-18, 30/11-12/

Homework Three. Farid Bonawiede Samer Haddad Michael Litton Alexandre Messo. 28 november Time series analysis

DT1120/DT1130 Spektrala transformer Tentamen

Datorövning 1: Fördelningar

Signal- och Bildbehandling FÖRELÄSNING 4. Multiplikationsteoremet. Derivatateoremet

Vad gör vi när vi bara har en mätserie och ingen elegant matematisk funktion?

Projektinstruktion: Spektralanalys med hjälp av den diskreta Fouriertransformen

Lektionsanteckningar 11-12: Normalfördelningen

Signaler några grundbegrepp

Lösningar till tentamen i Transformmetoder okt 2007

REGLERTEKNIK Laboration 5

Flerdimensionella signaler och system

Lab 1 Analog modulation

Signal- och bildbehandling TSBB03, TSBB14

GRUNDKURS I SIGNALBEHANDLING (454300), 5sp Tentamen

Tillämpning av komplext kommunikationssystem i MATLAB

DT1130 Spektrala transformer Tentamen

SF1635, Signaler och system I

Finns det över huvud taget anledning att förvänta sig något speciellt? Finns det en generell fördelning som beskriver en mätning?

Samtidig visning av alla storheter på 3-fas elnät

Kryssproblem (redovisningsuppgifter).

Projektinstruktion: Spektralanalys med hjälp av den diskreta Fouriertransformen

Bildbehandling i frekvensdomänen

F9 SAMPLINGFÖRDELNINGAR (NCT

Exempelsamling Grundläggande systemmodeller. Klas Nordberg Computer Vision Laboratory Department of Electrical Engineering Linköping University

Signal- och bildbehandling TSBB03

FREKVENSSPEKTRUM TILLÄMPAD FYSIK OCH ELEKTRONIK, UMEÅ UNIVERSITET 1

Växelström i frekvensdomän [5.2]

Kan vi beskriva ett system utan någon fysikalisk kännedom om systemet?

TSIU61: Reglerteknik

Uppsala Universitet Matematiska Institutionen Bo Styf. Sammanfattning av föreläsningarna 11-14, 16/11-28/

1. Vi har givet två impulssvar enligt nedan (pilen under sekvenserna indikerar den position där n=0) h 1 (n) = [ ]

x(t) = sin(ω 0 t) (1) b) Tillåt X(ω) att innehålla diracimpulser (en generalliserad funktion). Vilken signal x(t) har spektrumet X(ω)?

MVE051/MSG Föreläsning 7

Svängningar och frekvenser

Laboration 5: Regressionsanalys. 1 Förberedelseuppgifter. 2 Enkel linjär regression DATORLABORATION 5 MATEMATISK STATISTIK FÖR I, FMS 012, HT-08

bli bekant med summor av stokastiska variabler.

Signalbehandling Röstigenkänning

TSRT91 Reglerteknik: Föreläsning 5

Signal- och bildbehandling TSEA70

Föreläsning 8, Introduktion till tidsdiskret reglering, Z-transfomer, Överföringsfunktioner

Växelström i frekvensdomän [5.2]

Transkript:

Spektralanalys - konsten att hitta frekvensinnehållet i en signal Bengt Carlsson, Erik Gudmundson och Marcus Björk Systems and Control Dept. of Information Technology, Uppsala University 7 november 013 Sammanfattning Detta material ger en sammanfattning av den teori som behövs för att genomföra projektarbetet Spektralanalys med hjälp av den tidsdiskreta Fouriertransformen i kursen Transformmetoder. Materialet ger en beskrivning av hur frekvensinnehållet i en signal kan uppskattas. Först ges ett konkret exempel, sedan härleds den disktera Fouriertransformen från den kontinuerliga motsvarigheten. Den disktera Fouriertransformen kan sedan användas för att direkt uppskatta spektrumet. Begreppet zeropadding och dess effekter på spektrumet samt Bartlett s metod för variansreducering i spektrum beskrivs också.

Innehåll 1 Inledning Illustration av hur information i en signal kan framhävas i frekvensdomänen 3 3 Fouriertransformen för tidskontinuerliga signaler 5 4 Fouriertransformen för tidsdiskreta deterministiska signaler 5 5 Periodogrammet - den enklaste spektrumskattningen 7 6 Zeropadding 8 7 Variansreducering av spektrumet m.h.a. Bartlett s metod 8 1

1 Inledning Spektralanalys handlar om att uppskatta en signals (tidsseries) frekvensinnehåll. Ett enkelt exempel på spektralanalys hittar vi i ljudtillämpningar. Just när det gäller ljud har vi alla en känsla för vad som menas med spektrum (även om vi inte kanske kallar det för spektrum). För en ljudsignal kan vi t ex säga att det innehåller mycket bas (eller diskant) och vi menar då att ljudsignalen domineras av låga (höga) frekvenser. Spektralanalys handlar helt enkelt om att ta fram (och visa) vilka frekvenser en signal innehåller och hur starka de är. De flesta musikanläggningar har en equalizer som ger möjlighet att påverka spektrumet för ljudet. Många kan även visa spektrum för den spelade musiken. Se figur 1 för ett exempel. Figur 1: Windows Media Player med plugin Polyphony Spectrum Visualizations. Figuren visar spektrum för en ljudsignal. X-axeln i plotten är frekvens och y-axeln är amplitud. Nederst till vänster visas en grafisk equalizer där det uppspelade ljudets frekvensinnehåll kan påverkas. För en ljudsignal är det kanske uppenbart att det kan vara av intresse att se vilka frekvenser som en signal innehåller. Spektralanalys kan dock användas för i princip alla typer av signaler och kan ge värdefull information som inte kan ses genom att bara studera signalen i tidsdomänen. Ett typiskt exempel där spektralanalys kan användas är för att detektera vibrationer i en mekanisk konstruktion (t ex en turbin). Vibrationerna kan mätas genom att givare (accelerometrar) monteras på turbinens axel. Vibrationer uppträder i ett spektrum som toppar, där frekvensen där toppen ligger svarar mot vibrationsfrekvensen och höjden på toppen svarar mot hur stark vibrationen är. Se även nästa avsnitt för en illustration. Som nämnts ovan används spektralanalys i en mängd tillämpningar. Inom områden som ekonomi, meterologi och astronomi kan spektralanalys användas för att upptäcka gömda perio-

diciteter som ger information om återkommande processer och cykliska fenomen. Inom medicin använder man spektralanalys på t ex EKG- och EEG-signaler, och inom reglerteknik för att ta reda på de dynamiska egenskaperna hos ett system för att kunna bygga en regulator. Illustration av hur information i en signal kan framhävas i frekvensdomänen Innan vi går in på teorin för spektralanalys ska vi ge ett motiverande exempel. Figur visar en tidsserie som t ex skulle kunna vara signalen från en mätgivare som ska detektera vibrationer i ett mekaniskt system. I figuren representerar x-axeln tid och y-axeln amplitud (i någon lämplig storhet). Det är mycket svårt att se något vettigt i figuren pga att mätdata har slumpmässiga störningar. Signalen i figur har simulerats i MATLAB mha följande kod: fs = 10000; % samplingsfrekvens Ts=1/fs; % samplingstid N=1000; % antal sampel t = (0:(N-1))*Ts; % samplingstillfällen (tidsvektor) f1=1500; % frekvens för sinus 1 f=4000; % frekvens för sinus ynn = sin(*pi*f1*t) + sin(*pi*f*t); % två sinussignaler skapas sigma = 1; % standardavvikelse för bruset noise = sigma*randn(1,n); % skapa brusvektor y = ynn + noise; % bruset adderas till signalen 4 3 Signal amplitude 1 0 1 3 4 0 0.0 0.04 0.06 0.08 0.1 Time [s] Figur : En uppmätt signal från något system. 3

Om vi istället tar mätdatat från figur och gör spektralanalys (periodogram) får vi resultatet som visas i figur 3. Där har vi frekvens på x-axeln och effekt på y-axeln. Vi ser nu två tydliga toppar vid frekvenserna 1500 och 4000 Hz. Uppenbarligen innehåller signalen två olika periodiciteter, något som var väldigt svårt att se i tidsdomänen (figur )! Spektrum skattades med koden: %Beräkna periodogrammet L = N; % Zeropadding om L>N Phi = abs(fft(y,l)).^/n; %Skapa en frekvensvektor för de positiva frekvenserna f = (0:(L/-1))*fs/L; %Plotta spektrum subplot(,1,1) plot(f, Phi(1:L/)) grid on xlabel( frequency, Hz ) ylabel( \Phi(f) ).5 x 105 1.5 Φ(f) 1 0.5 0 0 1000 000 3000 4000 5000 Frequency [Hz] Figur 3: Spektralanalys (periodogram) av signalen i figur. Frågan är nu hur man kan skatta spektrum och hur det fungerar? Detta beskrivs i de kommande avsnitten. Utgångspunkten är den vanliga Fouriertransformen som behandlats på föreläsningarna i Transformmetoder. Sedan skapas en diskret approximation av det verkliga spektrumet som kan användas i praktiken där alla signalerna i allmänhet är diskret uppmätta. 4

3 Fouriertransformen för tidskontinuerliga signaler Givet en tidskontinuerlig signal x c (t) med ändlig energi (integralen av signalens belopp existerar) definieras Fouriertransformen enligt X c (ω) = x c (t)e iωt dt (1) där variabeln ω betecknar vinkelhastigheten [radianer/sekund]. Kopplingen till frekvens [Hertz] ges av ω = πf. Spektrum för signalen x c (t) defineras som Φ c (ω) = X c (ω) () och anger hur mycket av en viss frekvens som signalen innehåller. Speciellt anger ω ω 1 Φ c (ω)dω (3) hur mycket av signalens energi som finns mellan frekvenserna ω 1 och ω. Att spektrum kan tolkas som signalens frekvensinnehåll följer av Parseval s (Plancherel s) formel: x c (t) dt = 1 π Φ c (ω)dω. (4) Om vi har en signal med en känd funktion x c (t) kan vi alltså ganska rättframt beräkna signalens spektrum enligt ovan. I nästan alla praktiska fall är signalens funktion x c (t) okänd och det enda vi har tillgång till är mätningar av x c (t). För att vi ska kunna lagra en signal i en dator måste den samplas, d.v.s. stickprov av signalen lagras i datorn. Detta betyder att vi inte har mätningar av signalen x c (t) för alla tidpunkter utan bara sampel vid vissa tidpunkter av signalen, se figur 4. Sampling sker så gott som alltid i dagens digitala samhälle. I fortsättningen kommer vi att beteckna de samplade värdena av en kontinuerlig signal x c (t) med x[n], n = 0, ±1, ±,.... Formellt gäller x[n] = x c (nt s ) där T s är tiden mellan två sampel, samplingstiden. Notationen med hakparenteser indikerar att n anges i sampel och inte kontinuerlig tid. En signal som bara är definierad i diskreta tidpunkter kallas tidsdiskret. Om vi bara har den tidsdiskreta signalen tillgänglig är det uppenbart att vi inte (exakt) kan räkna ut integralen (1) utan någon form av approximation måste göras. För att komma vidare måste vi definiera en Fouriertransform för tidsdiskreta signaler. Detta görs i nästa avsnitt. 4 Fouriertransformen för tidsdiskreta deterministiska signaler Antag att x[n] (som ovan är n = 0, ±1, ±,...) är en tidsdiskret signal med ändlig energi (summan av signalens absolutbelopp existerar). Normalt härstammar den tidsdiskreta signalen från sampling av en tidskontinuerlig signal enligt ovan med samplingintervallet T s, dvs. t = nt s. Den tidsdiskreta Fouriertransformen (DTFT) ges då av X(ω) = x[n]e iωn (5) n= 5

3.5 3.5 1.5 1 0.5 0 0.5 1 Sampel Kontinuerlig signal 1.5 0 1 3 4 5 6 7 Time [s] Figur 4: Exempel på en kontinuerlig signal och en sampling av signalen. Avståndet mellan två sampel kallas samplingsintervall T s [s], och samplingsfrekvensen ges av f s = 1/T s [Hz]. där ω som nu betecknar den normaliserade vinkelfrekvensen definieras som ω = π f f s (6) Detta kan man lätt se genom att ωt = πft = πfnt s = π f f s n. Då k nu är ett heltal så kommer transformen i (5) vara periodisk i ω enligt X(ω + πm) = X(ω), m Z (7) vilket från (6) ger att transformen är periodisk med samplingsfrekvensen f s om man översätter det till den icke normaliserade frekvensen. Dess spektrum definieras analogt med det tidskontinuerliga fallet, Φ(ω) = X(ω). (8) Parseval s formel ges av n= x[n] = 1 π Φ(ω)dω. (9) π π Till sist, om vi har ett T s som är tillräckligt litet och ett N som är tillräckligt stort kan man visa att Φ(ω) Φ c (ω), vilket betyder att man kan skatta den kontinuerliga signalens spektrum med den tidsdiskreta Fouriertransformen. 6

5 Periodogrammet - den enklaste spektrumskattningen I kapitel 4 antog vi att vi hade tillgång till ett oändlig antal sampel, vilket naturligtvis aldrig inträffar i verkligheten. Vi måste därför skatta (estimera) spektrumet utifrån de sampel vi har. Enklaste sättet att göra detta är att byta ut gränserna för summan i (5) så att den enbart omfattar de sampel vi har tillgång till! Antag att vi har tidsserien x[n], där n = 0, 1,..., N 1, då får vi från (5): X(ω) = N 1 n=0 Analogt med (8) får vi följande spektrumskattning för x[n]: ˆΦ p (ω) = 1 N 1 x[n]e iωn N n=0 x[n]e iωn. (10) där hat-symbolen (ˆ) markerar att det är ett estimat (uppskattning) av spektrumet. I praktiken kan vi heller inte utvärdera (11) vid alla frekvenser. Man väljer därför ofta L punkter uniformt utspridda över en period Normalt väljs L = N. Då får vi (11) ω k = π k, k = 0, 1,..., L 1 (1) L X[k] = N 1 n=0 x[n]e iπ k N n (13) Detta är den diskreta Fouriertransformen (DFT) där både tid och frekvens antar diskreta värden. Motsvarande skattning av spektrum kallas periodogrammet, och fås nu som ˆΦ p [k] = 1 N X[k] = 1 N 1 x[n]e iπ k N n N Den diskreta Fouriertransformen är också periodisk, analogt med (7). En annan egenskap är att, för reella signaler, så gäller X[k] = X[ k] (15) där X är komplex-konjugatet av X, dvs. att transformen är konjugat-symmetrisk. Detta betyder att Periodogrammet kommer att vara symmetriskt och periodiskt, dvs. att det är tillräckligt att titta på en halv period av Periodogrammet (ω [0, π]). Beräkningen av summan i (13) vid ett givet antal frekvenser kan göras mycket effektivt med hjälp av den så kallade fast Fourier transform (FFT). När man räknar ut Fouriertransformen i MATLAB för en tidsserie x (vektor) med N sampel får man den i N frekvenspunkter X (vektor), det vill säga L = N i (1), genom kommandot: X = fft(x). X kommer då innehålla information för ω [0, π], dvs bara den första halvan är av intresse då man plottar Periodogrammet. Tack vare denna metod är det alltså möjligt att hitta och visualisera periodiciteter i tidsserier, vilket också verkar vara förklaringen till dess namn, Periodogrammet. Periodogrammet är den enklaste av alla spektrumskattningar och har inte alltid så bra egenskaper, men den är ändå viktig då många mer avancerade metoder bygger på denna (som exempel Bartletts metod i 7). 7 n=0 (14)

6 Zeropadding För små N, dvs. korta dataset, kan det bli väldigt glest mellan frekvenspunkterna om man använder (13), vilket kan ge svårtydda spektrum. Det vanligaste botemedlet mot detta är att lägga till nollor på slutet av tidsserien, {x(0),..., x(n 1), 0, 0,...}, tills önskad längd uppnås, säg L. Vi har nu fler sampel i vår tidsserie än tidigare (N L), men eftersom nollorna inte ger något bidrag till summan i (13) påverkas inte Fouriertransformens värde, det enda som händer är att antalet frekvenspunkter ökar. Detta ger alltså samma sak som att välja ett L > N i (1) och kallas zeropadding. I MATLAB är detta mycket enkelt eftersom man i funktionsanropet kan ange i hur många punkter man vill räkna ut FFT:n, X = fft(x,l). Notera att man inte lägger till någon information genom zeropadding. Den verkliga upplösningen är begränsad av antalet sampel man har av sin signal N för en given samplingsfrekvens, dvs. hur lång den tillgängliga signalen är i tid. 7 Variansreducering av spektrumet m.h.a. Bartlett s metod Vi ska här beskriva en enkel metod för att minska variansen ( fladdrigheten ) hos spektrumet, Bartlett s metod. Den delar helt enkelt upp tidsserien i ett antal lika stora delar. Sedan räknas ett spektrum ut för varje del och det slutgiltiga spektrumet fås som medelvärdet av alla delspektrum. Bruset kommer då undertryckas givet att brusets medelvärde är noll. Matematiskt beskrivs det på följande sätt. Antag att vi har en tidsserien x[n], n = 0,..., N 1, och att vi delar upp den i P = N/M delar om vardera M sampel. Låt x p [m] = x[(p 1)M + m], m = 0,..., M 1, p = 1,..., P, (16) vara observationerna av den p-te delen och låt ˆΦ p [k] = 1 M 1 x M p [m]e iπ k N m m=0 (17) vara dess periodogram. Då fås Bartlett s spektrumestimat som ˆΦ B [k] = 1 P P ˆΦ p [k], (18) p=1 det vill säga medelvärdet av periodogrammen från de P olika delarna. På projektets hemsida finns MATLAB-kod för denna metod att ladda ned. 8