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

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

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

TSKS21 Signaler, Information och Bilder Lab 2: Digitalisering

Spektrala Transformer

Signal- och bildbehandling TSBB03

Signal- och Bildbehandling, TSBB14 Laboration 1: Kontinuerliga signaler

Signal- och bildbehandling TSBB14

Signal- och bildbehandling TSBB14

7. Sampling och rekonstruktion av signaler

Signal- och bildbehandling TSBB03

Signal- och bildbehandling TSEA70

Signal- och bildbehandling TSBB03

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

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

7 Olika faltningkärnor. Omsampling. 2D Sampling.

Signal- och bildbehandling TSBB03, TSBB14

Ulrik Söderström 19 Jan Signalanalys

SF1635, Signaler och system I

Signal- och bildbehandling TSBB14

TSBB16 Datorövning A Samplade signaler Faltning

Ulrik Söderström 20 Jan Signaler & Signalanalys

Signal- och bildbehandling TSEA70

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

RÄKNEEXEMPEL FÖRELÄSNINGAR Signaler&System del 2

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

Signal- och bildbehandling TSEA70

Spektralanalys - konsten att hitta frekvensinnehållet i en signal

Facit till Signal- och bildbehandling TSBB

REGLERTEKNIK Laboration 5

Signal- och bildbehandling TSEA70

Spektrala Transformer

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

Laboration 3 Sampling, samplingsteoremet och frekvensanalys

DT1130 Spektrala transformer Tentamen

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

Signal- och bildbehandling TSBB14

Signal- och bildbehandling TSEA70

Tentamen ssy080 Transformer, Signaler och System, D3

Spektrala Transformer

SF1635, Signaler och system I

Transformer och differentialekvationer (MVE100)

Medicinska bilder. Programkurs 6 hp Medical Images TSBB31 Gäller från: 2018 VT. Fastställd av. Fastställandedatum

FÖRELÄSNING 13: Analoga o p. 1 Digitala filter. Kausalitet. Stabilitet. Ex) på användning av analoga p. 2 filter = tidskontinuerliga filter

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

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

TSDT15 Signaler och System

Bildbehandling i frekvensdomänen

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

Signal- och Bildbehandling FÖRELÄSNING 7. En bild är en 2D signal. För en digital bild gäller. Fig. 2.1

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

Flerdimensionella signaler och system

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

Medicinska Bilder, TSBB31. Lab: Mätvärden på Medicinska Bilder

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

Övningsuppgifter. Digital Signal Processing. Övningar med svar och lösningar. Mikael Swartling Nedelko Grbic Bengt Mandersson. rev.

Signal- och bildbehandling TSBB14

MR-laboration: design av pulssekvenser

Sammanfattning TSBB16

Signaler & Signalanalys

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

TEM Projekt Transformmetoder

Spektrala Transformer

Formelsamling. i kursen Medicinska Bilder, TSBB31. 1D och 2D Fouriertransformer, samt några formler för CT, SPECT, mm

Datorövning: Fouriertransform med Python

Lösning till tentamen i Medicinska Bilder, TSBB31, DEL 1: Grundläggande 2D signalbehandling

Medicinska Bilder, TSBB31. Lab: Mätvärden på Medicinska Bilder

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

Signalanalys med snabb Fouriertransform

TSBB31 Medicinska bilder Föreläsning 3

Medicinska Bilder, TSBB31. Lab3: Mätvärden på Medicinska Bilder

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

Spektrala Transformer

Signaler, information & bilder, föreläsning 14

GRUNDKURS I SIGNALBEHANDLING (454300), 5sp Tentamen

Projekt 3: Diskret fouriertransform

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

Ellära. Laboration 4 Mätning och simulering. Växelströmsnät.

DT1120 Spektrala transformer för Media Tentamen

Signaler, information & bilder, föreläsning 12

Bildbehandling i frekvensdomänen. Erik Vidholm

Fouriermetoder MVE295 - bonusuppgifter

Signaler, information & bilder, föreläsning 14

DT1130 Spektrala transformer Tentamen

Grundläggande signalbehandling

Laboration i Fourieranalys, TMA132 Signalanalys med snabb Fouriertransform

Laboration i tidsdiskreta system

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

Laboration i Fourieroptik

Signal- och bildbehandling

Tillämpad digital signalbehandling Laboration 1 Signalbehandling i Matlab och LabVIEW

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

Signal- och bildbehandling TSBB03 och TSEA70

DT1130 Spektrala transformer Tentamen

Tentamen ssy080 Transformer, Signaler och System, D3

Linjär analys. Datorlaboration 2. av Sven Spanne. Reviderad ht av Amiran Ambroladze, Jan Gustavsson och Pavel Kurasov.

TANA17 Matematiska beräkningar med Matlab

Föreläsning 10, Egenskaper hos tidsdiskreta system

DT1130 Spektrala transformer Tentamen

Laboration i Fourieroptik

2 Ortogonala signaler. Fourierserier. Enkla filter.

Transkript:

Signal- och Bildbehandling, TSBB14 Laboration 2: Sampling och Tidsdiskreta signaler Anders Gustavsson 1997, Maria Magnusson 1998-2013 Avdelningen för Datorseende, Institutionen för Systemteknik Linköpings Universitet 2 Laboration 2 2.1 Inledning Vi ska i denna laboration studera sampling av endimensionella signaler. De fenomen som uppstår är sedan lätt generaliserbara till flerdimensionella signaler såsom bilder och volymer. 2.2 Förberedelser inför laborationen Det viktigaste är att noggrant läsa igenom hela laborationshandledningen. Läs också om sampling, TDFT och DFT på föreläsningsbilderna och i kompendiet. Lös om möjligt förberedelseuppgifterna i labhandledningen innan laborationstillfället! De är markerade med en liten pekande hand. Förberedelseuppgiften märkt en stor pekande hand ska lämnas in separat och godkännas i efterhand. 2.3 Redovisning Laborationen och förberedelseuppgifterna märkta med en liten pekande hand godkänns alltså vid laborationstillfället, medan förberedelseuppgiften märkt med en stor pekande hand lämnas in separat och godkännas i efterhand. 1

2.4 Sampling Låt oss först klargöra att en signal kan samplas på två sätt, dels genom avkänning och dels genom multiplikation med ett impulståg. Den ena samplingsmodellen är illustrerad till vänster i Fig. 1, där den kontinuerlig signalen x(t) avkänns vid tidpunkterna t = nt. Detta ger den tidsdiskreta signalen x d [n] som endast är definierad för diskreta värden n. Sambandet mellan x d [n] och x(t) lyder x d [n] =x(t) t=nt = x(nt ), n =0, 1, 2, 3,... (1) x(t) x d [n] x(t) s(t) t = nt n= δ(t nt ) Figur 1: Två modeller av sampling. Det andra sättet att beskriva sampling visas till höger i Fig. 1, där den samplade signalen s(t) utgörs av signalen x(t) multiplicerad med impulståget n= δ(t nt ). Funktionen s(t) är en tidskontinuerlig signal som har värdet 0 överallt utom i punkterna t = nt, n =0, 1, 2, 3,... Att tänka sig samplingen som en multiplikation med ett tåg av oändliga dirac-pulser är teoretiskt mycket användbart. Impulståget är ju en tidskontinuerlig signal och därför kan all den vanliga teorin för kontinuerlig fouriertransform användas. T ex så kan samplingsteoremet härledas på ett enkelt sätt. Förberedelseuppgift A Skriv upp sambandet mellan x(t) och s(t). Skriv också upp sambandet mellan x d [n] och s(t): Förberedelseuppgift B Hur lyder sambandet mellan fouriertransformerna F[x(t)] = X(f) och F[s(t)] = S(f)? 2

Förberedelseuppgift C Ovanstående samband leder fram till samplingsteoremet. Hur lyder det? Tyvärr kan man dock inte använda oändliga dirac-pulser då man gör datorberäkningar i t ex MATLAB. Turligt nog att den tidsdiskreta fouriertransformen (TDFT:n) mycket nära besläktad med fouriertransformen av en impulstågssamplad signal. Förberedelseuppgift D Hur lyder den tidsdiskreta fouriertransformen, TDFT:n, av x d [n], dvs X T (Ω)? Och hur lyder sambandet mellan S(f) och x d [n]? X T (Ω) = S(f) = Förberedelseuppgift E I förra förberedelseuppgiften ser vi att S(f) =X T (Ω) om ett samband mellan Ω och f gäller. Vilket? Förberedelseuppgift G Beräkna X(ω) eller X(f), den kontinuerliga fouriertransformen av signalen i ekvation (2) nedan. Använd nedanstående samband. Förenkla din formel så att den endast innehåller ett bråksteck. Beräkna X(0) och X(± )? Kontrollera om det stämmer med figur 3! Räknar du med ω? Beräkna i så fall ut X(20π) och kontrollera om det stämmer med figur 3! Räknar du med f? Beräkna i så fall ut X(10) och kontrollera om det stämmer med figur 3! F[sin(at)] = π j [δ(ω a) δ(ω + a)] = 1 [ ( δ f a ) ( δ f + a )] 2j 2π 2π F[e bt u(t)] = 1 b + jω = 1, u(t) betecknar enhetssteget. b + j2πf 3

Förberedelseuppgift F Figuren nedan visar hur x(t),s(t),x d [n],x(f),s(f), och X T (Ω) förhåller sig till varandra. f A noterar en frekvens där funktionen har ett maxima och funktionsvärdet är A. Fyll i korrekta värden uttryckta i T,A,Ω A och f A i rutorna! Det gäller att ω =2πf och Ω=2πΦ, där Ω kallas normaliserad vinkelfrekvens och Φ kallas normaliserad frekvens. Signaldomän Fourierdomän x(t) X(f) A t F ω f ω = ω A f = f A s(t) S(f) T t F ω = ω = f = f = ω f x d [n] X T (Ω) 1 n TDFT Ω= Ω= Φ= Φ= Ω Φ 2.5 Start av laboration Starta KretslabSBB på samma sätt som i lab 1. Vi ska studera signalen { sin(20πt) e x(t) = 5t, t 0, (2) 0, t < 0. Vi kommer att återkomma till denna signal gång på gång under laborationen. Vi tittar på signalen i KretslabSBB: > x=in( sin(20*pi*t)*exp(-5*t)*us(t), t ); > X=foutr(x); > signal(x) > figure(2) > spect(x) 4

1 0.8 0.6 0.4 0.2 0 0.2 0.4 0.6 0.8 3 2 1 0 1 2 3 Time (s) Figur 2: Signalen x(t). 0.1 Filter characteristics or signal spectrum 0.08 Magnitude 0.06 0.04 0.02 0 0 10 20 30 40 50 60 70 80 90 100 Frequency: f (Hz) = ω/2π (rad/s) 200 100 Phase 0 100 200 0 10 20 30 40 50 60 70 80 90 100 Frequency: f (Hz) = ω/2π (rad/s) Figur 3: Amplitudspektrum X(f) och fas arg(x(f)) för X(f), fouriertransformen av x(t). 5

Överensstämmer signal och fouriertransform med figur 2 och 3? Vi vill nu sampla signalen x(t). Signalen är dock inte perfekt bandbegränsad så vi kommer tyvärr att få lite vikningsdistorsion hur vi än gör. Låt oss dock anse att gränsfrekvensen ligger approximativt på fg =30Hz. Är det rimligt? Ge då en lämplig samplingsfrekvens, f s för denna gränsfrekvens. Sampla signalen med den valda frekvensen: > xd=sample( sin(20*pi*t)*exp(-5*t)*us(t),fs); > signal(xd) Vi kan rekonstruera den samplade signalen idealt och på så sätt återskapa den tidskontinuerliga signalen för att undersöka effekten av vikningsdistorsionen. > xrek=pam(xd, fs); Jämför xrek och x. Kommentar? Prova andra samplingsfrekvenser f s. Vid vilken samplingsfrekvens f s börjar man tydligt se att den ursprungliga signalen är helt oigenkännlig? (Ni måste göra om hela förfarandet ovan, inte bara rekonstruktionen!) Leta upp en frekvens där ni ser spår av vikningsdistorsion i den rekonstruerade signalen. Därefter undersöker vi hur den rekonstruerade signalens amplitudspektrum ser ut jämfört med den ursprungliga signalens amplitudspektrum: > XREK=foutr(xrek); > spect(xrek,x) 6

Man ser direkt att den rekonstruerade signalens amplitudspektrum är noll över en viss frekvens. Det har att göra med den ideala rekonstruktionen. (Vi återkommer till det senare i laborationen.) Kan ni också se effekten av vikningsdistorsion i amplitudspektrum? Ett annat sätt att studera inverkan av vikningsdistorsionen är att studera den samplade signalens fouriertransform, dvs TDFT:n av xd. Vi gör detta på signalen definierad ovan, med samplingsfrekvensen 100 Hz: > xd100=sample( sin(20*pi*t)*exp(-5*t)*us(t),100); > XT100=foutr(xd100); > spect(x,xt100); I det övre fönstret har vi nu den kontinuerliga signalens amplitudspektrum, i det undre fönstret den samplade signalens amplitudspektrum. Transformerna är relaterade till varandra genom samplingsteoremet och relationen mellan S(f) och X T (Ω). Amplitudspektrum innehåller en ganska smal puckel. Vad är maximala amplituden på puckeln i X(f) och X T (Ω)? Visa att det stämmer med Förberedelseuppgift F! Vid vilket värden på f = ω/2π och Φ=Ω/2π ligger puckeln? Visa att det stämmer med Förberedelseuppgift F! Markera nu i figuren till Förberedelseuppgift F, vilken del av X T (Ω) ni ser på skärmen. Det räcker att se denna lilla del. Pga symmetri känner ni hela X T (Ω)! Kontakta nu lab-assistenten och be om hjälp att kontrollera detta svar samt Förberedelseuppgift F! Hade ni rätt? 7

Vi sänker samplingsfrekvensen till hälften. > xd50=sample( sin(20*pi*t)*exp(-5*t)*us(t),50); > XT50=foutr(xd50); > spect(x,xt50) Kan man se någon vikningsdistorsion i amplitudspektrum? Kan man se någon vikningsdistorsion vid 25 Hz vid 25Hz = 2π 25rad/s samplingsfrekvens? Ser ni att värdet i origo för XT25(f) f=0 är relativt sett lägre än i X, XT50 och XT100? För att kunna förklara detta vikningsfenomenen så måste ni plotta imaginärrespektive realdel av fouriertransformen var för sig med kommandot: > reimspect(x) Jämför den övre plotten med realdelen av X(f) i Fig. 4. Är de ganska lika? Fig. 4 visar också vad som händer i fourierdomänen då man samplar. Ta hjälp av figuren och förklara nu med egna ord varför värdet i origo för XT(f) f=0 har sänkts. Era tidigare experiment gav att det fanns ett mönster för hur puckeln förflyttade sig vid sänkning av samplingsfrekvensen. Vilken frekvens ska puckeln ligga på om man samplar med 12.5 Hz? 8

Realdel av X(f). Sampling ger upprepning av X(f)...... som summeras till XT(f). Figur 4: Hur sampling yttrar sig i fourierdomänen. Öppna ett nytt fönster genom att använda figure-kommandot och plotta en figur med TDFT:n då signalen är samplad med 12.5 Hz. Den puckel ni ser ligger inte på förväntad frekvens utan på en annan - vilken? Varifrån kommer denna puckel? 2.6 Rekonstruktion Det är av nödvändigt att återskapa en tidskontinuerlig signal från samplade värden i olika sammanhang. Detta kan göras på olika sätt. Det önskvärda är att man kan rekonstruera signalen idealt, dvs man återskapar den bakomliggande samplade kontinuerliga signalen helt i varje punkt. Ideal rekonstruktion är inte möjlig. En begränsning är att man vanligtvis måste bandbegränsa signalen för att kunna sampla utan att få vikningsdistorsion. Detta leder till att det enbart går att rekonstruera den bandbegränsade signalen. Det är dock inte möjligt att ens rekonstruera den idealt. Anledningen till att ideal rekonstruktion ej är möjlig, har samband med den tidskontinuerliga signal som används vid rekonstruktionen. 9

Förberedelseuppgift H Vilken signal används vid faltningen med sampelpunkterna då man utför ideal rekonstruktion? Varför används denna funktion? Förberedelseuppgift I Varför kan inte denna signal användas i praktiken? Vi börjar med att undersöka ideal rekonstruktion. Vi definierar därför en sincfunktion och studerar dess fouriertransform: > p=in( sinc(t), t ); > P=foutr(p); > signal(p) > figure > spect(p,2) Beskriv hur amplitudspektrum abs(p ) ser ut! Vi trunkerar signalen p för att kunna använda den i praktiken: > ptrunc=in( sinc(t)*pulse(t,-3,3), t ); > figure(1) > signal(ptrunc) > PTRUNC=foutr(ptrunc); > spect(ptrunc,2) På vilket sätt skiljer sig denna signals amplitudspektrum abs(ptrunc) från den ideala signalens amplitudspektrum abs(p )? På vilket sätt skapar detta problem vid rekonstruktionen? 10

Vi ska nu prova att sampla och rekonstruera en signal med den trunkerade sincen som rekonstruktionsfunktion. Först samplar vi: > x=in( sin(10*t), t ); > xd=sample( sin(10*t),5); > signal(xd,50); Vilken frekvens har sinussignalen och vilken fouriertransform har sin(10t)? Vi samplar alltså sinus-signalen ovan med 5 Hz. Räcker det enligt samplingsteoremet? Vi rekonstruerar den samplade signalen och jämför med den ursprungliga (ha tålamod, det kan ta ett tag beroende på dator): > xrek=pam(xd,5, sinc(t*5)*pulse(t,-3/5,3/5) ); > signal(x, xrek,3); Kan ni se avvikelser mellan den urspungliga signalen x och den rekonstruerade signalen xrek? Vi undersöker vad som händer om vi har en enklare funktion. En vanlig ansats är att man använder vanlig linjär interpolation för att ta fram värden mellan sampelpunkterna. > xlinj=in( ramp(t,-1,0)-ramp(t,0,1)+pulse(t,0,1), t ); > signal(xlinj,5) Vi studerar denna signals utseende i fourierdomänen: > XLINJ=foutr(xlinj); > spect(xlinj,6) Avviker denna signals amplitudspektrum abs(xlinj) mycket ifrån den ideala signalens amplitudspektrum abs(p )? 11

Vi prövar med att rekonstruera signalen med den linjära funktionen: > xrek1=pam(xd,5, ramp(t,-1/5,0)-ramp(t,0,1/5) +pulse(t,0,1/5) ); > signal(x, xrek1,1.5); Kan ni se avvikelser mellan den urspungliga signalen x och xrek1? Finns det någon koppling mellan val av samplingsfrekvens och rekonstruktionsmetod, dvs kan man välja hög samplingsfrekvens och enkel rekonstruktionsmetod eller vice versa? Motivera ert svar. Rita bilder om det behövs! Pröva gärna med en annan samplingsfrekvens än ovan, t ex f s =50: > xd=sample( sin(10*t),50); > xrek1=pam(xd,50, ramp(t,-1/50,0)-ramp(t,0,1/50) +pulse(t,0,1/50) ); 2.7 Diskreta fouriertransformen, DFT KretslabSBB-tillägget möjliggör simulering av kontinuerliga funktioner i MATLAB. I praktiken är alla förekommande signaler i MATLAB samplade. Detta leder till att man får använda en samplad version av TDFT:n som vi studerat ovan. Den samplade TDFT:n kallas den diskreta fouriertransformen och förkortas DFT. Det är mycket beräkningskrävande att räkna ut DFT:n vilket lett till att olika metoder för att snabbt beräkna transformen tagits fram. Dessa metoder går under samlingsnamnet Fast Fourier Transforms och brukar benämnas FFT. Ofta benämner man DFT:n med FFT fast det första är en transform och det andra en metod att beräkna transformen. Vi kommer att använd nedanstående definitioner på DFT och invers DFT i laborationen: X D [k] = N/2 1 n= N/2 x d [n] e jk(2π/n)n, k = N 2,..., N 2 1 (3) x D [n] = 1 N N/2 1 k= N/2 X d [k] e jk(2π/n)n, n = N 2,..., N 2 1 (4) 12

Förberedelseuppgift J Ovanstående definitioner är centrerade varianter på de något vanligare icke-centrerade definitionerna på DFT och invers DFT. Skriv upp dem: För att beräkna DFT:n och studera dess beteende så använder vi nu standard kommandon i MATLAB. Vi använder dock inte fft-rutinerna i MAT- LAB direkt utan funktionsanropen four och ifour som utför DFT enligt ekvation (3) och (4). (Den intresserade laboranten kan skriva type four och type ifour imatlab för att se hur de är uppbyggda.) Den fft-rutin som finns i MATLAB fungerar exakt som i förberedelseuppgift J. Vi börjar med att definiera den välbekanta signalen från ekvation (2): > t=-2.56:0.01:2.55; > y=sin(20*pi*t).*exp(-5*t).*(t>0); Vilket samplingsavstånd T använder vi? Förberedelseuppgift K Här är en figur som visar hur x(t),x d [n],x(f),x T (Ω) och X D [k] förhåller sig till varandra. Fyll i korrekta värden uttryckta i T,A, ω A,f A och N i rutorna! (De streckade rutorna har ni redan fyllt i i Förberedelseuppgift F.) Antag att funktionen x(t) är 0 för t >NT/2. Detta gör att ingen fönstring behövs av x d [n] innan DFT. Tips: Jämför förberedelseuppgift D och ekvation (3) för att få fram ett uttryck på hur k beror av Ω. 13

Signaldomän Fourierdomän x(t) X(f) A t F ω f ω = ω A f = f A x d [n] X T (Ω) 1 n TDFT Ω= Ω= Φ= Φ= Ω Φ x d [n] X D (k) 1 N 2 N n DFT 1 k = k = k Vi skapar en heltalsaxel som stämmer överens med storleken på y: > N=512; > k=-n/2:n/2-1; Sedan plottar vi både signalen och dess DFT: > plot(k,y) > Y=four(y); > plot(k,abs(y)) Vid vilket värde på f = ω/2π och k ligger puckeln? Visa att det stämmer med Förberedelseuppgift K! Vilken höjd har puckeln? Visa att det stämmer med Förberedelseuppgift K! 14

Vi kan studera fasen enligt: > phase=atan2(imag(y),real(y)); > plot(k,phase) Jämför denna fas med fasen på signalen i ekvation (2). Ni har en plot på den i figur 3. Vilka likheter och skillnader finns? Men är de skillnader vi ser verkligen relevanta skillnader? Vi ska nu studera DFT:n lite noggrannare genom att använda en slickepinneplot med stem-kommandot nedan. Prova ut några lämpliga värden på xmin, xmax, ymin och ymax nedan så att slickepinnarna syns tydligt! > clf > stem(k,abs(y)) > axis([xmin xmax ymin ymax]) Vilka värden på xmin, xmax, ymin och ymax valde ni? Kan man säga att stem-kommandot ger en sannare bild av våra data än plot-kommandot? Varför i så fall? 2.8 Fönstring med rektangelfönster DFT:n är den transform som är praktiskt användbar i datorsammanhang. För att kunna beräkna fouriertransformen av en signal krävs att man trunkerar den i tidsdomänen vilket innebär att man begränsar signalens utsträckning. Trunkering motsvarar multiplikation med en rektangelfunktion. Detta kallas också fönstring med rektangelfönster. Det finns flera andra fönster, t ex Hanning-, Hamming- och Blackman-fönstren, men vi nöjer 15

oss här med att studera den effekt som ett rektangel-fönster har på DFT:n. Principen är densamma för alla fönster. Först definierar vi en lång cosinussignal, så lång att dess trunkeringseffekter kan försummas: > f=cos(50*pi*t); > figure(1) > subplot(2,1,1); plot(k,f) > F=four(f); > subplot(2,1,2); plot(k,abs(f)) Vi kan tydligt se spikarna som hör samman med cosinussignalen. I TDFT:n skulle cosinussignalen ge dirac-spikar i amplitudspektrum. I DFT:n blir det ändliga spikar istället. Om vi nu trunkerar signalen så får vi följande: > ftrunc=cos(50*pi*t).*(abs(t)<0.25); > figure(2) > subplot(2,1,1); plot(k,ftrunc) > FTRUNC=four(ftrunc); > subplot(2,1,2); plot(k,abs(ftrunc)) Trunkering motsvarar alltså multiplikation med en rektangelfunktion i signaldomänen. Vad motsvarar detta i fourierdomänen? Använd svaret på förra frågan för att förklara det deformerade utseendet av FTRUNC jämfört med F. Appendix: Egna fft-rutiner i MATLAB function y = four(x) [d,n] = size(x); x = fftshift(x); y = fft(x); y = fftshift(y); function y = ifour(x) [d,n] = size(x); x = fftshift(x); y = ifft(x); y = fftshift(y); 16