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

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

Laboration i Fourieranalys, TMA132 Signalanalys med snabb Fouriertransform

Signalanalys med snabb Fouriertransform

Fouriermetoder MVE295 - bonusuppgifter

Transformer och differentialekvationer (MVE100)

Spektrala Transformer

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

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

GRUNDKURS I SIGNALBEHANDLING (454300), 5sp Tentamen

Ulrik Söderström 20 Jan Signaler & Signalanalys

FOURIERANALYS En kort introduktion

Ulrik Söderström 19 Jan Signalanalys

DT1130 Spektrala transformer Tentamen

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

Lösningsförslag, Tentamen, Differentialekvationer och transformer II, del 2, för CTFYS2 och CMEDT3, SF1629, den 9 juni 2011, kl.

DT1130 Spektrala transformer Tentamen

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

Försättsblad till skriftlig tentamen vid Linköpings universitet KÅRA T1 T2 U2 U4

DT1120/DT1130 Spektrala transformer Tentamen

7. Sampling och rekonstruktion av signaler

Lösningar till tentamen i Transformmetoder okt 2007

TSBB16 Datorövning A Samplade signaler Faltning

Spektralanalys - konsten att hitta frekvensinnehållet i en signal

Laplace, Fourier och resten varför alla dessa transformer?

Signal- och bildbehandling TSBB14

Tentamen ssy080 Transformer, Signaler och System, D3

Lösningsförslag till tentamen i SF1683, Differentialekvationer och Transformmetoder (del 2) 4 april < f,g >=

Laboration 3 Sampling, samplingsteoremet och frekvensanalys

DT1130 Spektrala transformer Tentamen

Funktionsteori Datorlaboration 2

DT1130 Spektrala transformer Tentamen

Laboration 1, M0039M, VT16

Spektrala Transformer

Försättsblad till skriftlig tentamen vid Linköpings universitet G33(1) TER4(63)

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

Signal- och bildbehandling TSBB14

Spektrala Transformer

Signal- och bildbehandling TSEA70

Tentamen ssy080 Transformer, Signaler och System, D3

DIGITAL KOMMUNIKATION

Signaler några grundbegrepp

Kryssproblem (redovisningsuppgifter).

Datorövning: Fouriertransform med Python

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

Approximation av funktioner

SF1669 Matematisk och numerisk analys II Lösningsförslag till tentamen DEL A. r cos t + (r cos t) 2 + (r sin t) 2) rdrdt.

Tentamen i Beräkningsvetenskap II, 5.0 hp, Del A

Laboration 2 Ordinära differentialekvationer

2 Matrisfaktorisering och lösning till ekvationssystem

MATEMATIK Chalmers tekniska högskola Tentamen , kl och v 4 =

TENTAMEN Modellering av dynamiska system 5hp

Institutionen för matematik KTH. Tentamensskrivning, , kl B1202/2 Diff och Trans 2 del 2, för F och T.

Signaler & Signalanalys

Reglerteknik AK. Tentamen 24 oktober 2016 kl 8-13

Mer om Fourierserier. Fouriertransform LCB vt 2012

LÖSNINGSFÖRSLAG TILL TENTAMEN 2 SF1664

SF1635, Signaler och system I

KTH 2D1240 OPEN vt 06 p. 1 (5) J.Oppelstrup

Tentamen i Beräkningsvetenskap I och KF, 5.0 hp,

Tentamen del 1 SF1546, , , Numeriska metoder, grundkurs

LABORATIONSHÄFTE NUMERISKA METODER GRUNDKURS 1, 2D1210 LÄSÅRET 03/04. Laboration 3 3. Torsionssvängningar i en drivaxel

Signal- och bildbehandling TSBB03

Föreläsning 10, Egenskaper hos tidsdiskreta system

TANA17 Matematiska beräkningar med Matlab

Tillämpning av komplext kommunikationssystem i MATLAB

Signal- och bildbehandling TSBB03

Tentamen i Beräkningsvetenskap II, 5.0 hp,

Tentamen i Elektronik, ESS010, del 1 den 21 oktober 2008 klockan 8:00 13:00

x 2 = lim x 2 x 2 x 2 x 2 x x+2 (x + 3)(x + x + 2) = lim x 2 (x + 1)

Flerdimensionella signaler och system

FÖRSÄTTSBLAD TILL TENTAMEN. ELLER (fyll bara i om du saknar tentamenskod): Datum: 16 januari Bordsnummer:

Laboration 4. Numerisk behandling av integraler och begynnelsevärdesproblem

Dagens teman. Linjära ODE-system av ordning 1:

Kurs DN1215, Laboration 3 (Del 1): Randvärdesproblem för ordinära differentialekvationer

1 dy. vilken kan skrivas (y + 3)(y 3) dx =1. Partialbråksuppdelning ger y y 3

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

BEGREPPSMÄSSIGA PROBLEM

Spektrala Transformer

Laboration 4: Stora talens lag, Centrala gränsvärdessatsen och enkla punktskattningar

Grundläggande signalbehandling

Laboration 4. Numerisk behandling av integraler och begynnelsevärdesproblem

Lösningsförslag till tentamen i SF1629, Differentialekvationer och Transformer II (del 2) 8 januari 2018

DT1120 Spektrala transformer för Media Tentamen

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

Projekt 3: Diskret fouriertransform

LAB 4. ORDINÄRA DIFFERENTIALEKVATIONER. 1 Inledning. 2 Eulers metod och Runge-Kuttas metod

SF1633, Differentialekvationer I Tentamen, torsdagen den 7 januari Lösningsförslag. Del I

2 Laborationsutrustning

Transformer och differentialekvationer M3, 2010/2011 Ett par tillämpningar av Fourieranalys.

Monte Carlo-metoder. Bild från Monte Carlo

Signal- och bildbehandling TSEA70

10. Kretsar med långsamt varierande ström

Tentamen i Signaler och kommunikation, ETT080

TAIU07 Matematiska beräkningar med Matlab

Tillämpad Fysik Och Elektronik 1

Funktionsteori Datorlaboration 2

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

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

Digital Signalbehandling i Audio/Video

Transkript:

Laboration i Fourieranalys för F2, TM2, Kf2 2013/14 Signalanalys med snabb Fouriertransform (FFT) Den här laborationen har två syften: dels att visa hur den snabba Fouriertransformen fungerar och vad man bör tänka på när den används, dels att verkligen testa den på ett par exempel. Laborationen består av tre uppgifter, men för F2 och Kf2 ingår bara de två första. Den tredje är enbart för TM2. För samtliga kan laborationen ge upp till 4 bonuspoäng vid tentamen. Den är inte obligatorisk, men rekommenderas. De olika uppgifterna går ut på att 1. med olika samplingsfrekvenser, och olika antal sampel analysera en ren sinussignal. 2. studera ett linjärt filter, och sedan se hur brus passerar filtret och hur man hittar signaler i brus 3. (för TM) studera effekter av ickelineariteter i filter. Det enklaste är att göra dessa uppgifter med hjälp av Matlab, och denna beskrivning är anpassad till det. Rapport Rapporten skall innehålla utskrifter av plottarna, i en skala där det som är väsentligt för uppgiften går att se. Till varje deluppgift bör man skriva ett par rader som förklarar vad plottarna visar och varför de ser ut som som de gör. Rapporterna får vara handskrivna under förutsättning att de skrivs med läslig handstil. Allmänt om diskret och snabb Fouriertransform Detta är en kortfattad beskrivning; läs också i Follands bok. Låt f(t) : R R vara en signal, och låt ˆf(ω) = f(t)e iωt dt vara dess Fouriertransform. Vi skall först anta att f är bandbegränsad, d.v.s. att det finns en konstant Ω så att ˆf(ω) = 0 om ω > Ω. Samplingssatsen säger då att f är bestämd om man känner f(t n ) i punkterna t n = nπ/ω. Den mest högfrekventa möjliga komponenten i f är alltså e ±iωt, med period 2π/Ω. Samplingssatsen innebär alltså att 1

man måste ha minst två sampel per period för den högsta tillåtna frekvensen. Om det dessutom är så att man bara är intresserad av f(t) i ett begränsat intervall, säg 0 t T, räcker det därför väsentligen att betrakta de sampelpunkter som faller inom detta intervall; antalet punkter blir då ungefär N = T Ω/π. Funktionen kan visserligen inte vara noll utanför [0, T ] (eller något annat begränsat intervall) om den är bandbegränsad, men under lämpliga förutsättningar blir felet inte så stort. Därför antar vi (felaktigt) att f(t) = 0 utanför intervallet [0, T ]. Då skulle man kunna använda samplingssatsen med ombytta roller för f och ˆf; väsentligen har ˆf bandbredd T/2. Det borde innebära att det räcker att känna värdena ˆf(ω n ) för ω n = n2π/t, för alla ω n Ω. För att snabbt komma fram till den diskreta Fouriertransformen väljer vi N och sätter a n = f(nt/n) och â m = N 1 a n e i2πmn/n. Eftersom i2πmn/n = i2πω n nt/n blir summan här, efter multiplikation med steglängden T/N, en Riemannsumma till integralen f(t)e iωnt dt = ˆf(ω m ). Det betyder att â m T/N bör vara en bra approximation av ˆf(ω m ). Därför kallas följden â m den diskreta Fouriertransformen av följden (a n ) 0 N 1. Observera att â m är periodisk med period N, så att det räcker att betrakta (â m ) 0 N 1. I de fall vi sysslar med har man dessutom symmetrier som gör det tillräckligt att betrakta bara hälften så många värden, 0 m < N/2. Se uppgift 1.1 nedan. Precis som för Fouriertransformen finns det en inversionsformel för att beräkna a m om â m är kända: a n = 1 N N 1 m=0 e i2πmn/n â m. Problemet är nu att för att man skall få någon noggrannhet i beräkningarna krävs det att N är stort, och då blir det kostsamt att utföra beräkningarna: det är N koefficienter att beräkna, och för varje n skall en summa med N termer beräknas, i allt N 2 operationer. Men det finns ett sätt att göra beräkningarna mycket snabbare, det som kallas snabb Fouriertransform (FFT). Antag först att N är delbart med 2, säg N = 2N 1. Då kan man skriva â m = = a 2n e i2πm2n/2n1 + a 2n e i2πmn/n1 + e i2πm/n a 2n+1 e i2πm(2n+1)/2n1 a 2n+1 e i2πmn/n1 (1) Om man tittar efter, ser man att den första summan i (1) är en diskret Fouriertransform av de N 1 jämna koefficienterna a 2n, och den andra summan av de N 1 udda koefficienterna a 2n+1. Vi skriver a j n = a 2n och a u n = a 2n+1 för de udda respektive jämna 2

koefficienterna, där nu n = 0,... N 1 1 så att dimensionen halveras. Med motsvarande beteckningar för de diskreta Fouriertransformerna får vi â m = â j m + e i2πm/n â u m för 0 m N 1 1 = N/2 1, där â j m och â u m är periodiska med period N 1. Kostnaden för att beräkna â j m och â u m är i storleksordningen 2N 2 1 = N 2 /2 operationer. Förutom det går det åt en multiplikation och en addition per m, alltså sammanlagt N 2 /2 + N operationer (en operation räknas i dessa sammanhang ofta som en addition och en multiplikation). Kostnaden har halverats. Men den stora vinsten gör man om N 1 i sin tur är ett jämnt tal, så att även â j m och â u m kan beräknas på liknande sätt, och så vidare. Optimalt resultat får man om N = 2 k, sämst får man om N är ett primtal (för då kan man inte göra något alls åt kostnaden). Av detta skäl vill man ofta välja N som en tvåpotens, och om man har ett antal sampelvärden som ligger nära en tvåpotens kan det se ut som en god ide att helt enkelt fylla på med så många nollor som behövs. Det görs i alla händelser ofta i praktiken ibland. Men i matlab faktoriseras istället N i så många primfaktorer som möjligt, och man vinner den beräkningstid som går. Laborationsuppgift 1 Denna del av laborationen går mest ut på att bekanta sig med fft i matlab. Börja med att starta matlab och läsa manualbladet till fft 1. Sampla signalen f(t) = sin(8t) + 2 cos(15t) N gånger i intervallet 0 t < T, där T = 100, dvs. skapa en vektor x = [x(1), x(2),..., x(n)], där x(k+1)= f(kt/n) är det k-te stickprovet ( samplet ) av signalen. Observera att numreringen av vektorelement i matlab alltid startar med 1. Välj som N några olika 2-potenser (stora och små) och beräkna den diskreta Fouriertransformen av x med hjälp av funktionen fft. Plotta dess absolutbelopp och i ett par fall också dess real- och imaginärdelar. Börja då med att plotta Fouriertransformen i hela intervallet [1, N] och lägg märke till symmetrierna kring mittpunkten, som gör att man kan nöja sig med att plotta den diskreta Fouriertransformen i halva intervallet [1, N/2], här och i det följande. Man vill förstås sampla så att frekvenserna 8 och 15 i Fouriertransformen blir tydligt synliga. Steglängden vid samplingen är h = T/N, i tidsvariabeln. Poängen med den här delen av uppgiften är att se att denna steglängd måste vara tillräckligt liten för att man ska kunna upptäcka alla frekvenser hos signalen. För att göra detta mera precist kan man jämföra med samplingssatsen. Signalen är bandbegränsad med en högsta frekvens ω max, som i vårt fall är 15. Då säger samplingssatsen att signalen är bestämd av den samplade signalen om hω max π. Satsen kräver egentligen att man samplar f över hela reella axeln, men resultatet stämmer rätt väl ändå. Man brukar uttrycka detta i termer av den s.k. samplingsfrekvensen 3

ν = 2π/h. (Antalet samplingar per tidsenhet är 1/h, och om det handlade om en rotation skulle man få faktorn 2π genom att gå över från varv till radianer per tidsenhet. Man säger också vinkelfrekvens.) Nu blir olikheten ν 2ω max. Samplingsfrekvens måste alltså minst vara 2ω max, som kallas Nyquistfrekvensen eller Nyquistgränsen. I vårt fall är ν = 2πN/T så vi får 2πN/T 2ω max. Med T = 100 och ω max = 15 fungerar exempelvis N = 2 9 = 512 mycket bra för att göra frekvenserna ω = 8 och ω = 15 synliga. Undersök vilka 2-potenser som går bra som N-värde. 2. Två sätt att modulera en radiovåg för att överföra till exempel tal är amplitudmodulering och fasmodulering. Låt oss som ett exempel betrakta en bärfrekvens på ν = 50 MHz (alltså kortvågsbandet), och antag att talet, dvs. den signal man vill överföra, består av signalen φ(t). Den modulerade signalen kommer då att ha utseendet f A (t) = (1 + αφ(t)) cos(νt) f F (t) = cos(νt + αφ(t)) (fm). (am), resp. I båda fallen är α en konstant som bestämmer moduleringsgraden. Välj nu ν = 60 och α = 0.2, och antag att φ(t) = sin(4t) + 0.5 cos(7t). Plotta den modulerade signalen, och dess spektrum (med hjälp av fft) för amplitud- och fasmodulering. Vilka frekvenser är det man ser? (Prova ev. att variera frekvenserna i φ.) Laborationsuppgift 2 En vanlig typ av signal är brus. Det innebär att φ(t) på något sätt är slumpvis fördelat. En samplad signal som vi är intresserade av här kan ha olika beteende. Ett är att φ(t n ) är helt oberoende av varandra, till exempel normalfördelade. Med matlab kan en sådan brussignal (med N sampel) genereras genom phi = randn(1,n). Ett annat slags brus, betecknat ψ, uppstår om i stället differenserna ψ(t n+1 ) ψ(t n ) är oberoende slumptal. I matlab kan man skriva t.ex. psi(1) = phi(1); for j=2:n, psi(j)=psi(j-1)+phi(j); end (För att få ett mer realistiskt brus borde man här egentligen byta phi(j) i summan mot phi(t)*sqrt(dt), där dt= t = t n+1 t n, men det ger bara ett fel med en konstant faktor, och för vårt ändamål spelar det ingen roll.) Jämför resultaten mellan föregående exempel och λ, som ges av lambda(1) = phi(1); for j=2:n, lambda(j)=phi(j-1)+phi(j); end 4

1. Skapa brussignaler phi, psi och lambda enligt ovanstående. Plotta tidsserierna, och även deras spektra med hjälp av fft-algoritmen. Varför får spektrum olika utseende i de tre fallen? 2. Med hjälp av spektralanalys kan man försöka hitta signaler i brus. På kurshemsidan finns en länk till en fil som innehåller sampel från en brusig signal, samplad över ett tidsintervall på 10 sekunder. Hämta hem den, läs in den i matlab, och undersök om det finns något i den som liknar en signal. Ange i så fall tydliga frekvenser, och deras relativa amplitud. OBS. Datafilerna genereras individuellt till var och en som hämtar den. Följ instruktionerna för nedhämtning. I laborationsrapporten skall identifikationstalet ftal anges. 3. Ett enkelt filter kan modelleras med en differentialekvation v (t) + 2kv (t) + ω 2 v(t) = f(t); här är f(t) insignalen, och v(t) utsignalen. Denna deluppgift består i att mata in bruset phi som beskrivits ovan och plotta spektrum för utsignalen. I matlab kan man göra det på detta sätt: Konstruera en matlabfunktion, en fil odedef.m, som innehåller definitionen av differentialekvationen, enligt function out1 = odedef(t,y) global tlist flist; % tlist och flist är vektorer % som innehåller sampeltidpunkter % och sampelvärden för % insignalen a=0.25; % 2k, som är dämpning b=100.0; % omega^2 out1 = [y(2);... interp1(tlist,flist,t)... % detta skapar en interpolerad % funktion av (tlist, flist) -a*y(2)-b*y(1)]; Skapa sedan en matlab skriptfil till exempel så här: % globala deklarationer global tlist flist N = 10000; Tmax = 10.0; dt = Tmax / N; tlist = dt : dt : Tmax; % skapa en insignal... flist = 10*randn(1,N); [ T, v ] = ode45( odedef, tlist, [0, 0]); 5

Efter körning av denna fil innehåller v(j,1) lösningen vid tid t j, och v(j,2) innehåller lösningens derivata. Vilka frekenser syns i utsignalen? Laborationsuppgift 3 (avsedd endast för TM) Denna del av laborationen handlar om ickelineariteter och hur dessa påverkar spektrum. 1. En förstärkare skall idealt sett vara linjär, utsignalen v(t) skall vara proportionell mot insignalen f(t): v(t) = Kf(t). En riktig förstärkare kan istället tänkas ge en utsignal på formen v(t) = Kf(t) + bf(t) 2 + cf(t) 3, där konstanterna b och c ej båda är 0. Låt f(t) = cos(8t) eller f(t) = cos(8t) + sin(11t). Studera med dessa två funktioner f utsignalens spektrum. Välj i båda fallen minst tre kombinationer av värden på b och c som ger väsentligt olika utfall. Gör också en teoretisk analys för att förklara de erhållna resultaten, t ex med hjälp av additionssatser för trigonometriska funktioner. 2. Vi går tillbaka till filtrets differentialekvation, men modifierar den en aning: v (t) + bv(t)(1 + ηv(t) 2 ) = A cos(ωt), med b 0 och η 0. I denna ekvation har dämpningen tagits bort, men en ickelinjär (kubisk) term har tillkommit. Ekvationen brukar kallas Duffingekvationen. Studera spektrum av lösningen v(t) som ovan, för några kombinationer av η, b, ω och A. Det viktigaste är att variera η. Visa med exempel att ett stort η-värde ger ett kaotiskt beteende, och att ett η av samma storleksordning som b kan ge ett tämligen regelbundet beteende. 3. Icke-lineariteten i Duffingekvationen visar sig på flera sätt. Visa först att lösningen inte är proportionell mot A, genom att hitta ett exempel som gör detta tydligt. Visa också att lösningen inte beror additivt av högerledet, t.ex. så här: Ersätt högerledet med en summa av två cosinusfunktioner med olika frekvenser. Åskådliggör genom att titta på spektrum att lösningen för summan inte är summan av lösningarna för var och en av cosinusfunktinerna. 6