Tidsdiskreta stokastiska signaler

Relevanta dokument
Inledning. Initiering av miljön. Att köra MatLab. Labrapporten

Laboration 2: 1 Syfte. 2 Väntevärde och varians hos en s.v. X med fördelningen F X (x) MATEMATISK STATISTIK, AK FÖR BYGG, FMS 601, HT-08

TSKS21 Signaler, Information och Bilder Lab 2: Digitalisering

Flerdimensionella signaler och system

TSBB14 Laboration: Intro till Matlab 1D

Index. Vektorer och Elementvisa operationer. Summor och Medelvärden. Grafik i två eller tre dimensioner. Ytor. 20 januari 2016 Sida 1 / 26

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

Datorövning 1 Fördelningar

Instruktion för laboration 1

SF1900 Sannolikhetsteori och statistik, HT 2017 Laboration 1 för CINEK2

Datorövning 1: Fördelningar

Introduktion till MATLAB

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 2 november 2015 Sida 1 / 23

Variabler. TANA81: Beräkningar med Matlab. Matriser. I Matlab skapas en variabel genom att man anger dess namn och ger den ett värde:

TAIU07 Matematiska beräkningar med Matlab

KPP053, HT2016 MATLAB, Föreläsning 2. Vektorer Matriser Plotta i 2D Teckensträngar

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

Laboration: Grunderna i Matlab

M0043M Integralkalkyl och Linjär Algebra, H14, Matlab, Föreläsning 1

Signalanalys med snabb Fouriertransform

Laboration 3: Stora talens lag, centrala gränsvärdessatsen och enkla punktskattningar

TANA17 Matematiska beräkningar med Matlab

MATLAB the Matrix Laboratory. Introduktion till MATLAB. Martin Nilsson. Enkel användning: Variabler i MATLAB. utvecklat av MathWorks, Inc.

TEM Projekt Transformmetoder

Laboration: Grunderna i MATLAB

Dagens program. Programmeringsteknik och Matlab. Administrativt. Viktiga datum. Kort introduktion till matlab. Övningsgrupp 2 (Sal Q22/E32)

Matematisk Modellering

Mer om funktioner och grafik i Matlab

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

Syftet med den här laborationen är att du skall bli mer förtrogen med följande viktiga områden inom matematisk statistik

TAIU07 Matematiska beräkningar med Matlab

Linjär algebra med tillämpningar, lab 1

Matlabövning 1 Funktioner och grafer i Matlab

Spektrala Transformer

Projekt Spektralanalys med hjälp av den diskreta Fouriertransformen

Datorövning 1: Fördelningar

Laboration i Fourieroptik

Laboration i Fourieranalys, TMA132 Signalanalys med snabb Fouriertransform

MR-laboration: design av pulssekvenser

MATLAB. Python. Det finns flera andra program som liknar MATLAB. Sage, Octave, Maple och...

Datorövning 1 Introduktion till Matlab Fördelningar

TAIU07 Matematiska beräkningar med Matlab

Lab 1 Analog modulation

At=A' % ' transponerar en matris, dvs. kastar om rader och kolonner U' % Radvektorn U ger en kolonnvektor

Instruktion för laboration 1

Matlabövning 1 Funktioner och grafer i Matlab

bli bekant med summor av stokastiska variabler.

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

Beräkningsverktyg HT07

STOCKHOLMS UNIVERSITET VT 2011 Avd. Matematisk statistik GB DATORLABORATION 1: TIDSSERIER.

repetera begreppen sannolikhetsfunktion, frekvensfunktion och fördelningsfunktion

MAM283 Introduktion till Matlab

Bildbehandling i frekvensdomänen

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 27 oktober 2015 Sida 1 / 31

Matriser och Inbyggda funktioner i Matlab

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

MATLAB. Vad är MATLAB? En kalkylator för linlär algebra. Ett programspråk liknande t.ex Java. Ett grafiskt verktyg.

BE MATLAB. (Matrix Laboratory) matlab.ico. för SIGNALER SYSTEM

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 8p av totalt 20p Tid: 21:a April klockan

När man vill definiera en matris i MATLAB kan man skriva på flera olika sätt.

DATORÖVNING 2 MATEMATISK STATISTIK FÖR D, I, PI OCH FYSIKER; FMSF45 & MASB03. bli bekant med summor av stokastiska variabler.

1 Syfte. 2 Moment hos och faltning av fördelningar MATEMATISK STATISTIK, AK FÖR L, FMS 033, HT Angående grafisk presentation

Matriser och Inbyggda funktioner i Matlab

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

Funktionsteori Datorlaboration 2

Demonstration av laboration 2, SF1901

KPP053, HT2016 MATLAB, Föreläsning 3. Plotter och diagram Läsa och skriva data till fil

Övningar med Digitala Filter med exempel på konstruktion och analys i MatLab

Laborationstillfälle 1 Lite mer om Matlab och matematik

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

Matematisk Modellering

Mer om funktioner och grafik i Matlab

(a) Skriv en matlabsekvens som genererar en liknande figur som den ovan.

Optimal Signalbehandling Datorövning 1 och 2

Projekt 2 (P2) Problembeskrivning och uppdragsspecifikation

TANA17 Matematiska beräkningar med Matlab

Uppgift 1 - programmet, Uppg6.m, visade jag på föreläsning 1. Luftmotståndet på ett objekt som färdas genom luft ges av formeln

Laboration 1: Beskrivande statistik

TAIU07 Matematiska beräkningar med Matlab

Laboration: Vektorer och matriser

SF1546, Numeriska Metoder för O1 Lab0 - frivillig. (dvs uppgifterna behöver inte redovisas!)

Matriser och vektorer i Matlab

Funktioner och grafritning i Matlab

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

TANA17 Matematiska beräkningar med Matlab

Laboration 3: Stora talens lag, centrala gränsvärdessatsen och enkla punktskattningar

Tentamen TAIU07 Matematiska beräkningar med MATLAB för MI

Tentamen TAIU07 Matematiska beräkningar med MATLAB för MI

Laboration 2. Grafisk teknik (TNM059) Digital Rastrering. S. Gooran (VT2007)

Introduktion till Matlab

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 9 november 2015 Sida 1 / 28

Introduktion till Matlab

TAIU07 Matematiska beräkningar med MATLAB för MI. Fredrik Berntsson, Linköpings Universitet. 15 januari 2016 Sida 1 / 26

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

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

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 9p av totalt 20p Hjälpmedel: MATLAB

Laboration 1: Introduktion till R och Deskriptiv statistik

Projekt 6. Fourieroptik Av Eva Danielsson och Carl-Martin Sikström

Digitala filter. FIR Finit Impulse Response. Digitala filter. Digitala filter. Digitala filter

Laboration i Fourieroptik

Transkript:

Lab-PM för TSDT06 Signalteori Tidsdiskreta stokastiska signaler Mikael Olofsson Institutionen för systemteknik Linköpings universitet, 581 83 Linköping Februari 2007

Not: Detta lab-pm är avsett för teknologkursen TSDT06 Signalteori vid Linköpings universitet. Det är en omskrivning av av det lab-pm från november 2000 som använts i kursen fram till våren 2006. Detta lab-pm bygger därför på tidigare kursansvarigas arbete, dvs. Ulf Henriksson, Anders Lindman och Danyo Danev. Lab-PM för TSDT06 Signalteori: Tidsdiskreta stokastiska signaler c 2007 Mikael Olofsson Institutionen för systemteknik Linköpings universitet 581 83 Linköping Detta dokument är skrivet i L A TEX2ε på en ACT PC under Windows XP.

Innehåll 1 Introduktion 1 2 Examination 1 2.1 Formalia..................................... 1 2.2 Rapporten.................................... 2 3 De tre studierna 2 3.1 Studie 1 Modellering av signaler....................... 2 3.2 Studie 2 Icke-LTI-system........................... 3 3.3 Studie 3 Speciella operationer........................ 4 A Introduktion till MatLab 5 A.1 Hjälp i MatLab................................. 5 A.2 Uttryck i MatLab................................ 6 A.3 Standardfunktioner och -kommandon..................... 8 A.4 Funktioner i Signal Processing Toolbox.................... 8 A.5 Grafer och figurer................................ 9 A.6 Några tips.................................... 10

1. Introduktion 1 1 Introduktion Dessa laborationer i signalteori har som mål att ge en känsla för hur man kan skapa, hantera och analysera utfall av stokastiska processer med hjälp av en dator. Laborationen ska även öka förståelsen av modell kontra verklighet. Laborationen är uppdelad i tre studier som är relativt fria, nämligen 1. modellering av signaler, 2. icke-lti-system, och 3. speciella operationer. Du kommer att arbeta med MatLab som erbjuder en intuitiv miljö för hantering av matriser och vektorer. Signaler kan representeras som vektorer. Laborationen förutsätter viss datorvana och kännedom om MatLab-syntax för hantering av matriser. Det presenteras inte mycket teori i detta PM, utan det är meningen att du ska slå i kompendiet och kanske annan litteratur (t.ex. mat.stat.-boken) för att söka information. Grundtanken är att en studie ska ge en djupare förståelse för kopplingen mellan modell och verklighet. Därför måste man ha tänkt igenom uppgiften noggrant innan man sätter sig framför datorn. Det är också bra att läsa igenom appendix för att få en klar bild över vilka funktioner man har att arbeta med. 2 Examination 2.1 Formalia Laborationerna utförs i grupper om två personer och består av 3 studier som finns beskrivna i laborationskompendiet. Laborationen examineras genom en laborationsrapport som du lämnar in ihophäftad till examinator Mikael Olofsson, antingen personligen till honom, eller per epost till mikael@isy.liu.se. Laborationsrapport skall vara inlämnad senast sista dagen i läsperiod VT1 för att labpoängen skall kunna inrapporteras i samband med tentarapporteringen. I annat fall rapporteras i kommande tentaperioder. Mikaels tjänsterum är i hus B, en trappa upp, i korridor A, mellan ingångarna 27-29. Om han inte finns där ska det finnas en låda utanför hans dörr, där du kan lämna rapporten. Skriftlig eller muntlig komplettering av rapporten kan komma att krävas innan den godkänns. För att rapporten över huvud taget ska bli godkänd under denna signalteoriomgång måste den vara inlämnad senast den sista dagen i läsperioden. Eventuella kompletteringar kan dock göras under efterföljande läsperiod. I annat fall måste laborationerna göras om nästa gång kursen ges.

2 Rekonstruktion i CD-spelare Tre generationer 2.2 Rapporten Labrapporten ska vara en rapport, alltså inte endast en kort sammanfattning av laborationsarbetet utan en fullständig redogörelse av uppgifterna. Detta innebär att tillämlig teori skall redovisas likaväl som tillvägagångssätt, resultat, tolkningar av resultat respektive slutsatser. Tänk också på hur språket behandlas. Lägg gärna in bilder och figurer som beskriver teori och resultat. Glöm inte att ange vad bilderna avser att visa och glöm heller inte att ange variabler och gradering av grafernas axlar. Då rapporten bedöms tas hänsyn till dess utformning och hur väl den beskriver problemet och dess lösning förutom det rena faktainnehållet. Om du skickar in rapporten per epost måste du se till att den är på ett format som Mikael kan läsa. Följande går bra: MSWord (.doc), DVI, PS, PDF. Se till att eventuella inklippta figurer inte är länkade. Följande information skall finnas på förstasidan: Titel Namn Personnummer Studentmailadress Vi vill inte ha in rapporter med MatLab-listningar. Vi vill veta vad ni har gjort, inte exakt hur. Rapporter med MatLab-listningar kommer att återlämnas utan bedömning. 3 De tre studierna 3.1 Studie 1 Modellering av signaler DFT Diskret fouriertransform MatLab implementerar DFT enligt följande: Y [k] = DFT{y[n]} = N 1 n=0 y[n]e j2πkn/n DFT är ett viktigt verktyg i signalbehandling. En DFT beräknas oftast med hjälp av en snabb algoritm kallad FFT - Fast Fourier Transform.

3.2 Studie 2 Icke-LTI-system 3 Modellering av signaler Att modellera en signal som en följd av lika fördelade oberoende stokastiska variabler är ofta för grovt. I signalteorin tas ett flertal verktyg upp som kan användas för att beskriva signaler av slumpmässig natur. Det finns även användbara formler som exempelvis anger spektraltäthet efter LTI-filtrering. Just genom att filtrera vitt brus kan man erhålla en signal med en spektraltäthet som bättre svarar mot en verklig signal. Man ställs då inför problemet att anpassa modellens parametrar till en given signal. Om man på något sätt ska mäta hur bra modellanpassningen är, blir denna anpassning ett optimeringsproblem. Det är också problem som har med kopplingen mellan tidsmedelvärden och ensemblemedelvärden att göra och även egenheter hos den diskreta fouriertransformen, DFT. I kompendiet behandlas exempelvis Bartletts estimat som är ett vanligt sätt att skatta autokorrelationsfunktionen och periodogrammet för att skatta spektraltätheten. När man har en modell kan man använda den för diverse beräkningar. Modellen kan ligga till grund för exempelvis prognoser. Bra modeller är även användbara för brusreducering, komprimering, reglering m.m. Uppgift Genom att filtrera vitt brus kan man erhålla en signal med känd spektraltäthet. Konstruera därför ett enkelt lågpassfilter och beräkna teoretiskt hur utsignalens spektraltäthet och AKF blir när insignalen är vitt brus. Plotta dessa kurvor! Studera det som står i kompendiet om AKF- och spektraltäthetsskattning och beräkna utifrån dessa teorier skattningar på AKF och spektraltäthet för filtrets utsignal! Använd samma filter i båda fallen. Plotta skattningarna. Hur ser skattningarna ut jämfört med de teoretiska resultaten? Kan skattningarna göras bättre på något sätt? I kompendiet finns förslag på åtgärder. Prova och jämför ett par metoder! Kanske har ni egna idéer. 3.2 Studie 2 Icke-LTI-system Icke-LTI-system är svåra att behandla och denna kurs tar endast upp vissa minnesfria ickelinjära system såsom en kvadrerare. Dessa behandlas i kapitel 12. Kapitel 9 i kompendiet handlar om kvantisering.

4 Rekonstruktion i CD-spelare Tre generationer Uppgifter Skapa ett lågpassfiltrerat brus på samma sätt som i studie 1, men använd ett lågpassfilter av högt gradtal, så att det låter sig väl approximeras med ett idealt lågpassfilter. Använd detta brus som insignal till följande system: Kvadrerare Halvvågslikriktare AM-modulator (multiplikation med en stationär sinus) Det är viktigt att spektraltätheten hos insignalen är sådan att signalen kan användas för att påvisa icke-lti-egenskaperna hos systemen. Fånga upp fenomen både i utsignalens periodogram och i dess amplitudfördelning som påvisar att vi har ett icke-lti-system. Spektraltätheter skattas enligt föregående studie och amplitudfördelningen kan erhållas genom att plotta signalens histogram. Utnyttja det ni kom fram till i studie 1 som förbättrade skattningen av spektraltätheten. Redogör för förväntade (teoretiska) resultat och jämför med dessa. Glöm inte att en process måste vara åtminstone svagt stationär för att spektraltätheten ska vara väldefinierad. Försäkra er därför om att utsignalerna är svagt stationära, och om de inte är det: Se till att de blir det. Tänk på att amplitudfördelningen hos insignalen har stor betydelse för resultatet. Pröva därför även med en signal som inte är normalfördelad. Fundera på om ni kan hitta någon speciell fördelning som tydligt visar på sådana skillnader. Kvantiseraren är en annan olinjäritet som, i mån av tid och intresse, kan undersökas. Då är det kanske inte spektraltätheten hos utsignalen som är viktigast, utan snarare kvantiseringsfelet som bör undersökas. 3.3 Studie 3 Speciella operationer I signalbehandling förekommer många olika sätt att manipulera signaler på. Undersök i denna studie vad som händer med spektraltätheten då en sekvens multipliceras med omväxlande +1 och 1. Man bildar med andra ord en ny sekvens Y [n] = X[n] ( 1) n, där X[n] är den ursprungliga sekvensen. en sekvens decimeras, vilket innebär att vartannat sampel sätts till noll. Detta implementeras genom att sekvensen multipliceras med följden..., 0, 1, 0, 1, 0, 1,... Generera insignalen på samma sätt som i studie 2. Jämför precis som tidigare teori och praktiska resultat. Var som tidigare noga med att göra utsignalen minst svagt stationär för att kunna tala om en spektraltäthet. Uttryck bland annat utsignalens spektraltäthet i insignalens dito.

A. Introduktion till MatLab 5 A Introduktion till MatLab MatLab är ett verktyg för numeriska beräkningar. Den grundläggande (och egentligen enda) datatypen i MatLab är matrisen som kan vara antingen reell eller komplex. Kolumnvektorer är matriser med endast en kolumn och radvektorer är matriser med endast en rad. MatLab erbjuder ett kommando-orienterat gränssnitt mot i systemet inbyggda funktioner liksom mot egenutvecklade funktioner. MatLab har inbyggt stöd för att presentera matriser och vektorer på diverse olika sätt. Grafer och 3d-ytor kan enkelst genereras. Flera kurvor kan plottas ii samma figur. Till MatLab kan man köpa olika funktionsbibliotek. Vi kommer att komma i kontakt med det mycket spridda biblioteket Signal Processing Toolbox. Några av funktionerna i Signal Processing Toolbox är dokumenterade under Funktioner i Signal Processing Toolbox på sidan 8. Detta appendix är långt ifrån heltäckande dokumentation över funktionaliteten i MatLab och Signal Processing Toolbox, men borde vara tillräckligt för att lösa uppgifterna i denna lab. A.1 Hjälp i MatLab MatLab har online-dokumentation för de flesta funktioner. Den kan nås på några olika sätt. MatLab har en traditionell hjälpfunktion som nås med menyvalet Help/MatLab Help. Där finns överväldigande mycket information, men den information som har med dessa labbar att göra finns under MatLab och Signal Processing Toolbox. On-line-hjälpen kan också erhållas med kommandot help <funktion>. Om hjälptexterna är för långa för det fönster man arbetar i, kan man aktivera en paging-funktion med kommandot more on. Med mellanslag och returtangenten kan man sedan stega i texten. Tangenten q gör att man hoppar över resten av texten. Ett alternativ till help är lookfor <ord> som listar alla till <ord> associerade funktioner. Det är också möjligt att erhålla hjälp om andra saker än funktioner. T.ex. help signal listar alla funktioner som ingår i Signal Processing Toolbox tillsammans med en kort beskrivning av dem. Enbart help skriver en lista över olika funktionsgrupper (inklusive toolboxar) som det finns vidare hjälptexter för.

6 Rekonstruktion i CD-spelare Tre generationer A.2 Uttryck i MatLab Kommandon som man ger i MatLab är nästan alltid en tilldelning eller ett kommando i stil med print, plot eller hold. En tilldelning ser ut som >> a = <uttryck>; där <uttryck> är en kombination av matriser, funktioner och operander. Lägg också märke till semikolonet (;) på slutet. Utelämnar man det kommer resultatet av uttrycket att skrivas ut på skärmen - inte alltid så bra när det är fråga om stora vektorer/matriser. Man kan alltid bryta en utskrift med CTRL-c och fortfarande lita på att kommandot utfördes. Vissa funktioner i MatLab kan generera flera returvärden. en tilldelning av två variabler har följande form: >> [a,b] = <uttryck>; Ett exempel på en funktion som returnerar två returvärden är hist. Nedan följer några grundläggande typexempel och uttryck man kan använda sig av i MatLab: i (alternativt j) Imaginära enheten. a = [1 2;3 4] b = [a a] c = [a;a] Ger matrisen ( 1 2 3 4 Ger då matriserna b = ). ( 1 2 1 2 3 4 3 4 ) och c = 1 2 3 4 1 2 3 4 a = eye(n) b = zeros(m,n) c = ones(m,n) Här blir a en n n-enhetsmatris, b en m n-matris med nollor och c en m n-matris med ettor..

A.2 Uttryck i MatLab 7 a = m:n b = m:k:n c = [1 2 zeros(1,3)] Ger vektorerna a = [m,m + 1,m + 2,...,n], b = [m,m + k,m + 2k,...,n] och c = [1, 2, 0, 0, 0]. b = a(n) c = a(m,n) Här blir b det n-te elementet i vektorn a eller den n-te kolumnen i matrisen a. Och c blir elementet på rad m och i kolumn n i matrisen a. b = a(m,:) c = a(:,n) d = a(m:n) Här blir b rad nummer m i matrisen a, c blir kolumn nummer n i matrisen a och d blir en vektor (matris) med element (kolumn) nummer m t.o.m. nummer n ur vektorn (matrisen) a. a([1 3],:) = [] Modifierar matrisen a genom att ta bort raderna 1 och 3. c = a+b c = a*b c = a/b c = a\b Matrisaddition, -multiplikation, -vänsterdivision (löser cb = a om möjligt) samt - högerdivision (löser bc = a om möjligt). a Transponering. flipud(a) Vänder upp och ned på matrisen a. size(a) Ger vektorn [m,n], där m är antalet rader och n är antalet kolumner i a. c = a.*b c = a.ˆ2 Elementvis multiplikation respektive kvadrering. c = a>n Ger en matris c av samma storlek som a, med ettor i de positioner där a:s element är större än n. a = inv(b) Matrisinvertering.

8 Rekonstruktion i CD-spelare Tre generationer A.3 Standardfunktioner och -kommandon sqrt(a), real(a), imag(a), abs(a), angle(a) sin(a), cos(a), tan(a), cot(a) log(a), exp(a), round(a) Samtliga dessa funktioner verkar elementvis på matriser och gör precis vad man förväntar sig. Möjligen bör det nämnas att angle(a) ger argumentet av det komplexa talet a, eller i fallet komplexvärd matris: Elementvist argumentet. rand(m,n), randn(m,n) Ger en m n-matris av likformigt fördelade respektive normalfördelade oberoende slumptal. Likformigt mellan 0 och 1 samt normalfördeladet N(0,1). save filnamn var1 var 2... load filnamn delete filnamn Spara variablerna var1, var2,... på fil, ladda in variabler från en fil, respektive ta bort fil. Kommandot save filename utan variabellista sparar samtliga variabler. who, whos Listar samtliga variabler sm man tilldelat. whos ger mer information om variablerna. cd, pwd, ls Fungerar som UNIX-kommandona med samma namn, alltså gå till katalog, ge aktuell katalog respektive lista katalog. A.4 Funktioner i Signal Processing Toolbox X = fft(x,n), y = ifft(y,n) Beräknar en n punkters DFT respektive invers DFT. Eftersom MatLabs indexering börjar med 1, så motsvarar X[1] konstanttermen. Om n är mindre än sekvenslängden, så trunkeras den. Om n är större än sekvenslängden, så fylls den ut med nollor. Om n utelämnas beräknas (I)DFTn med samma längd som sekvenslängden. z = conv(x,y) Faltningen mellan x och y. Om x är av längd n och y är av längd m, så bilr z av längd n + m 1. Om x och y tolkas som koefficienter i univariata polynom, så motsvarar z koefficienterna i produkten av dessa polynom. y = filter(b,a,x) Filtrerar signalen x genom filtret H[z] = b(1) + b(2)z 1 +... + b(n)z n 1 a(1) + a(2)z 1 +... + a(n)z m 1, där n är längden hos b och m är längden hos a. Resultatet y trunkeras till samma längd som x. Man kan förlänga resultatet genom att förlänga x med nollor.

A.5 Grafer och figurer 9 [b,a] = butter(n,w) [b,a] = cheby1(n,r,w) [b,a] = cheby2(n,w) [b,a] = fir1(n,w) Genererar filterkoefficienter för ett filter av grad n och normerad gränsfrekvens W, och i förekommande fall rippel R som anges i db. Observera att MatLabs åsikt om normerade frekvenser är att 1 motsvarar halva sampelfrekvensen, och inte hela som vi är vana vid. De resulterande vektorerna a och b kan användas i kommandot filter ovan. hamming(n) hanning(n) blackman(n) boxcar(n) Skapar fönster. Det sista skapar ett rektangulärfönster. A.5 Grafer och figurer plot(y), plot(x,y) plot(x1,y1, -,x2,y2,.,...) Grundläggande plot-funktion. För närmare information, se on-line-hjälpen. hist(a,n) [f,d] = hist(a,n) Beräknar och plottar histogram för kolumner i a. Parametern n anger antalet intervall man vill ha. Den första formen plottar histogrammet, medan den andra formen beräknar histogrammet och returnerar vektorerna f och d. f(k) ger antalet träffar i intervall nummer k, medan d(k) ger mittpunkten i intervall nummer k. Man kan även låta n vara en sorterad vektor som anger intervallens mittpunkter. De två yttre facken blir då oändligt stora. clf Raderar aktuell figor (clear current figure). hold on, hold off Kommandot plot raderar normalt aktuell graf innan den nya grafen ritas. Kommandot hold on gör att aktuell graf fortsättningsvis inte raderas. Kommandot hold off återställer uppförandet. subplot(m,n,p) Detta kommando delar in aktuell graf i ett koordinatsystem med m rader och n kolumner, och anger att nästa plot-kommando ritas i den n-te rutan, räknat radvis. grid on, grid off Slår på respektive av rutnät för aktuell graf.

10 Rekonstruktion i CD-spelare Tre generationer title( text ), xlabel( text ), ylabel( text ) Rubrik och text vid horisontell respektive vertikal axel på aktuell graf. axis([xmin xmax ymin ymax]) axis( auto ) Styr axlarnas gradering. Den första versionen anger min- och maxvärden för axlarna, medan den andra versionen slår på automatisk skalning. Default-uppförandet för plottar är automatisk skalning av axlarna. plottools on, plottools off Slår på respektive av editeringsverktyg till aktuell graf. Då du gjort en graf kan du vilja justera hur den presenteras. Gör då det innan du skriver figuren till fil enligt nedan. print -deps filnamn.eps print -depsc filnamn.eps Skriv aktuell figur till EPS-filen filnamn.eps. Den första versionen ger svart på vitt, medan den andra ger färg. A.6 Några tips Att generera brus De signaler som behövs i laborationen måste man generera själv, och det är då lämpligt att utgå från brus och sedan filtrera detta. I MatLab finns en grundläggande funktion rand för att generera likformigt fördelade slumptalsmatriser. En motsvarande funktion randn skapar normalfördelade matriser. För att till exempel slapa en 1024 sampel lång vit normalfördelad signalvektor med variansen 1 skriver man x=randn(1024,1); Observera att den sista ettan inte syftar på variansen, utan på att antalet kolumner i matrisen är 1. Tyvärr är det så att det är väldigt svårt att generera äkta slumptal i en dator. Man får istället vad man kallar pseudobrus. Pseudobrus genereras ofta med hjälp av återkopplade binära skiftregister, i allmänhet mycket långa, som enkelt kan simuleras i en dator. Sekvenser från sådana skiftregister liknar mycket oberoende utfall från en likformigt fördelad brusprocess.

A.6 Några tips 11 Grafer Då man ritar en kurva i MatLab får man i normalfallet bara en numrering av samplet längs den horisontella axeln. För att få en snygg skala i en graf då man till exempel ska rita ett spektrum, kan det vara bra att uppritningen sker mot en vektor (0:n-1) /n. Detta ger den normaliserade frekvensen på den horisontella axeln. Här förutsätts x vara antalet punkter i spektrat. Ex: Kommandot plot((0:99) /100,cos((0:99) /100*pi.ˆ2) ritar en spektraltäthet med typiskt lågpassutseende. Kom också ihåg att fouriertransformen i allmänhet producerar ett komplext resultat. Funktionen abs kan vara bra att känna till. Skriv funktioner Ni kommer att vilja göra flera liknande beräkningar, som till slut resulterar i diverse grafer. Därför är det en bra idé att redan från början skriva funktioner som ni sedan anropar med olika argument för att uppnå det ni vill. Speciellt gäller detta säkert spektralestimeringen.