Uppsala University Information Technology Dept. of Systems and Control EG 19 november 2009 MB 15 december 2013 Transformmetoder (W3) 2013 Projektinstruktion: Spektralanalys med hjälp av den diskreta Fouriertransformen Deadline: 10:e Januari kl 23:59
Innehåll I Introduktion 1 1 Inledning 1 2 Mål 1 3 Utförande och examination 1 II Projektuppgifter 3 4 Uppgiftsformulering 3 4.1 Analys i tidsdomän och frekvensdomän........................ 3 4.2 Upplösning och zeropadding.............................. 3 4.3 Variansreduktion i spektrumet............................ 4 4.4 Praktisk tillämpning.................................. 5 III Extramaterial 9 5 Introduktion till MATLAB 9 5.1 MATLAB-kommandon................................. 9 5.1.1 Enskilda kommandon............................. 10 5.1.2 Grafik...................................... 11 5.1.3 Att spara och läsa in data........................... 11 5.1.4 Att skriva program............................... 12 5.1.5 Allmänna kommandon............................. 12 i
Del I Introduktion 1 Inledning Ni ska i detta projekt studera hur den diskreta Fouriertransformen (DFT) kan användas för att studera frekvensinnehållet i en signal/tidsserie. Projektet består av flera små deluppgifter där man i den sista kan välja mellan att antingen studera energiförbrukningen i Sverige, data från magnetresonansspektroskopi, data från sprängämnet TNT eller undersöka tonerna i ett valfritt musikinstrument. Projektsinstruktionen består av tre delar. Del I är en introduktion om projektets uppbyggnad och syfte. Del II beskriver uppgifterna som ska lösas med hjälp av MATLAB. Del III innehåller tips om användbara MATLAB-kommandon. 2 Mål Syftet med detta projekt är att ge förståelse för Fouriertransformen och hur man kan använda den i praktiken för att få ut frekvensinformation ur en tidsserie/signal (diskreta Fouriertransformen), få övning i att använda MATLAB som hjälpmedel, öva på att skriva en kortfattad teknisk rapport. 3 Utförande och examination Projektet utförs i grupper om (högst) fyra studenter. Det kommer finnas ett tillfälle i datorsal med lärarstöd där studenterna kan arbeta med projektet och ställa frågor. I övrigt förutsätts studenterna lösa uppgifterna på egen hand t.ex. i datorsal P2315. Frågor besvaras av Marcus Björk, rum P2337, e-postadress marcus.bjork@it.uu.se. Innan ni börjar med projetket bör ni titta igenom det teorikompendie som hör till Spektralanalys - konsten att hitta frekvensinnehållet i en signal. Där får ni kopplingen mellan det matematiska oändligt kontinuerliga fallet och det praktiska finit samplade fallet. Ni behöver inte förstå alla detaljer (kommer inte på tentan), utan bara helheten och att det fungerar. Examinationen för projektet sker genom en kortfattad, men korrekt skriven, rapport på svenska eller engelska. Rapporten och eventuella rester skall lämnas in via Studentportalen som en pdf 1 under Transformmetoder, Inlämningar, Projektrapporter W. Rapporten ska vara skriven så att någon som har läst kursen i transformmetoder men inte har gjort detta projekt kan förstå vad som har gjorts, samt vara läsbar utan intruktionen. 1 Ett bra program för att skriva ut filer som pdf är PDFCreator om ni inte kan spara som pdf direkt i det program ni använder (dvs Word2003 eller tidigare). 1
Det finns en checklista som i stora drag beskriver vad som krävs. Se till att pricka av checklistan innan rapporten skickas in! I allmänhet skall rapporten följa instruktionen Att skriva en teknisk rapport. Bifoga väl valda figurer samt er MATLAB-kod! Ni behöver inte beskriva metoderna ni använder, ange bara vilka de är. Icke godkända rapporter måste kompletteras enligt kommentarer från projekthandledaren. Allt material finns att ladda ner på http://www. it.uu.se/katalog/marbj996/transformmetoder/p2ht13. Deadline för projektet är 10:e Januari kl 23:59. Efter denna deadline kommer inga rester att ges, så försök att se bli godkända tills dess. Innan den 15:e så kommer rapporterna rättas löpande och rester att ges vid behov, vilket betyder att man kan avklara projektet tidigare om man vill. Notera alltså att man bör se till att få sin rapport godkänd innan deadline! Kom ihåg: för att bli godkänd i kursen måste man vara godkänd på projektet. 2
Del II Projektuppgifter 4 Uppgiftsformulering I detta avsnitt presenteras de olika uppgifterna som ska lösas i projektet. För att bli godkänd krävs att samtliga uppgifter är godkända. Notera att MATLAB version 7 eller nyare måste användas för att kunna öppna.mat-filerna i Uppgift 4.1, 4.3, 4.4b, 4.4c och 4.4d. Använd teorikompendiet! Där finns även lite kod som kan vara till hjälp. 4.1 Analys i tidsdomän och frekvensdomän Undersöka vilka frekvenser som bygger upp den brusiga uppmätta signalen som finns att ladda ned på http://www.it.uu.se/katalog/marbj996/transformmetoder/p2ht13. Signalen är samplad med f s = 500 Hz. Plotta först signalen i tiden och försök se vilka periodiciteter (tydliga frekvenser eller sinusar ) den innehåller. Använd sedan istället Periodogrammet för att skatta och undersöka spektrumet (frekvensinnehållet). Hur många tydliga periodiciteter (frekvenser) finns det och vilka är dessa? Vad finns det för fördelar med att titta på en signal i frekvensdomänen istället för tidsdomänen? Tänk på att ni enbart behöver studera första halvan av signalen i frekvensdomän när ni använder FFT-kommandot. Andra halvan är bara en spegling eftersom datat är reellt (se teorikompendiet). Notera att signalen innehåller vitt brus. Anledningen att man kallar det vitt är, i analogi med synligt ljus, att det är vitt om det innehåller alla frekvenser. Vitt brus har alltså samma energi vid alla frekvenser. 4.2 Upplösning och zeropadding Upplösningen hos spektrumet är en viktig detalj i spektralanalys. Med upplösning menar man hur nära två frekvenser kan vara utan att flyta ihop till en enda topp i spektrumet. Letar du efter periodiciteter i datat och hittar endast en topp i spektrumet skulle det alltså ändå kunna finnas flera närliggande toppar som inte kan särskiljas! I denna uppgift ska upplösningen hos Periodogrammet studeras. Skapa ens signal som innehåller två sinusar med vardera frekvensen f 1 = 0.2 och f 2 = f 1 + f och amplituderna 1. Lägg inte till något brus! s(t) = sin(2πf 1 t) + sin(2πf 2 t) (1) För att underlätta analysen sätts samplingsfrekvensen till f s = 1 Hz och N = 100 sampel. Börja med f = 0.1 och skatta signalens spektrum med Periodogrammet. Minska sedan f i små steg mot 0, skapa nya signaler och plotta Periodogrammet för varje. Gör sedan om samma experiment fast med zeropadding L = 10N (se teorikompendiet). Vilket är det minsta f, för vilket de två sinusarna (topparna i spektrum) går att upplösa? Vad gör zeropadding och när behöver man använda det? 3
Vad händer med upplösningen då zeropadding tillämpas och varför? Redovisa några väl valda plottar av spektrum, med och utan zeropadding, som visar era resultat. Använd gärna MATLAB-kommandot subplot för att lätt kunna göra jämförelser mellan plottar samt hålla antalet sidor nere i rapporten. 4.3 Variansreduktion i spektrumet När man skattar spektrum med ett beränsat antal sampel så kommer skattningen vara osäker. Som exempel, när en signal innehåller brus så ser även skattningen av spektrum också brusig ut, dvs. variansen av skattningen är hög. Det är viktigt att skilja på variansen av bruset i signalen och den osäkerhet (varians) som man har i skattningen av spektrum ( hur brusigt spektrumet ser ut ). Signalen som skall undersökas har f s = 1 Hz och N = 1024 sampel och finns att ladda ned på projekthemsidan http://www.it.uu.se/katalog/marbj996/transformmetoder/p2ht13. Skatta och undersök signalens spektrum med hjälp av Periodogrammet och Bartletts metod (se teorikompendiet). Använd subsekvens-längderna M = N/2, N/4, N/8 och N/16 för Bartletts metod, vilket alltså leder till att den ursprungliga signalen delas in i 2, 4, 8 resp. 16 delar. Vilken inverkan har M på variansen och upplösningen av skattningen? Jämför med Periodogrammet. Kan vi få både hög upplösning och låg varians? Vilken varians (effekt ) har det vita bruset i signalen (se 4.1 för infomation om vitt brus)? Vilken skattning ger bäst estimat av brusets spektrum? Ni kan använda samma metod som i föregående uppgift för att titta på upplösningen, eller direkt från figurerna med varierande M dra slutsatser (motivering krävs). Skriptet bartlettse(y,m,l) ligger tillsammans med datat och skapar en spektrumskattning med hjälp av Barletts metod för en given indelningslängd M. Ni kan skriva help bartlettse i MATLAB för mer information. Redovisa med några väl valda plottar av spektrumen som visar era resultat, samt era slutsatser. 4
4.4 Praktisk tillämpning Ni ska här välja en av följande fyra uppgifter. a) Frekvensanalys av en ljudsignal Uppgiften går ut på att via en dator spela in en ljudsekvens och sedan undersöka frekvensinnehållet i signalen. Valet av ljudkälla bör vara en signal som inte förändrar sina egenskaper under den tid den spelas in och som har någon tonal komponent. Det kan t.ex. vara en ton från ditt favoritinstrument, en stämgaffel eller varför inte ljudet från en visselpipa eller din egen vissling (hur rent kan du vissla?). Tal är inte lämpligt! Det går även att hitta på andra exempel som kan vara intressanta som ljudet från en motor eller en eltandborste, men det är bra om man har en uppfattning om vilken frekvens man förväntar sig. Om du väljer ett instrument kan du pröva att spela in flera toner och undersöka om frekvensanalysen stämmer med musikteorin (t ex ska tonen normal A,dvs A i ettstrukna oktaven, ha frekvensen 440 Hz). Finns det en grundton/dominant ton? Stämmer frekvensen överens med vad ni förväntat er? Finns det övertoner (multiplar av grundtonen) och vilka frekvenser har de? Varför uppkommer övertoner? Illustrera hur Bartletts metod påverkar resultatet och kommentera. Finns det anledning att använda zeropadding? Varför/varför inte? Några tips Inspelning: Använd en dator med intern eller extern mikrofon och spela in med Ljudinspelaren eller dylikt. Lagra filen som ljudfil (wav-format, Microsoft PCM). Det bör räcka med att spela in någon sekund. OBS: I Windows Vista samt Windows 7 har den inbyggda ljudinspelaren blivit mer begränsad, du kan t.ex. inte lyssna på dina ljud längre. Sedan har de även tagit bort alternativet att spara som wav-fil. För att kunna spara som wav-fil måste man köra programmet genom att i sök-fältet på start-menyn (eller i kommandoraden) skriva: soundrecorder /file out.wav. Ett annat alternativ är att ladda hem ett gratis-verktyg för inspelning och redigering av ljud, som t.ex. Audacity, som är ett mycket mer avancerat verktyg. Överföring av ljudfilen till MATLAB: Med hjälp av kommandot wavread (se vidare information genom att skriva help wavread direkt i MATLAB) kan en ljudfil i wavformat 2 läsas in till MATLABs workspace. För att få rätt enhet på frekvensaxeln vid analysen ska också samplingsfrekvensen läsas in. Om ljudfilen t.ex. heter elgitarr.wav, lagras ljudfilen och dess samplingsfrekvens i MATLAB med kommandot [y,fs] = wavread( elgitarr ). Kontrollera gärna att signalen låter som den ska med kommandot soundsc(y,fs). 2 Notera att enligt dokumentationen för wavread stöds endast Microsoft PCM dataformat. 5
b) Analys av data för detektion av sprängämnen För att detektera fasta sprängämnen kan man använda en teknik vid namn nuclear quadrupole resonance, NQR. Där använder man sig av det faktum att vissa atomer har en icke-symmetrisk laddningsfördelning i atomkärnan (spinntal > 0.5). Ett exempel på ett sådant grundämne är kväveisotopen 14 N som finns i så gott som alla högexplosiva ämnen. Lägger man ett elektriskt fält över ämnet kan man excitera det till högre energitillstånd och när man tar bort fältet faller atomerna tillbaka till grundtillståndet samtidigt som dess överskottsenergi avges i form av en väldigt svag radiovåg (jämför med hur en glödlampa fungerar). Radiovågen blir då en summa av sinusar med olika frekvenser, olika många beroende på vilket ämne man undersöker. Vid excitering av TNT, ett av de vanligaste sprängämnena, innehåller signalen sex frekvenser varav fyra brukar vara urskiljbara. Notera att dessa fyra toppar dock inte nödvändigtvis är de högsta i spektrumet, beroende på andra starka interfererade (störande) signaler kan finnas i mätningen. Frekvenserna beror också i hög grad av temperaturen men detta beroende är känt och visas i figur 1. 852 850 848 Frequency [khz] 846 844 842 840 838 836 834 280 285 290 295 300 305 310 315 320 Temp [K] Figur 1: Temperaturberoendet hos fyra av TNT:s excitationsfrekvenser. Uppgiften här är att studera de två olika dataserierna som finns att ladda ned från http://www. it.uu.se/katalog/marbj996/transformmetoder/p2ht13. Den ena består av en mätning på TNT och den andra innehåller bara brus och interferens, d.v.s. störningar. Eftersom mätningarna är gjorda vid King s College i London kan man se en av BBCs radiokanaler i mätningen som exempel på interferens. Dessa tidsserier består av reella data med basfrekvens 741.5 khz, samplat med f s = 400 khz. Skapa alltså frekvensvektorn som f = 741.5 + (0:(N/2-1))*400/N, där N är längden på datat, så får ni khz som enhet på x-axeln när ni plottar spektrumet. I vilken av serierna finns sprängämnet? Vilken temperatur, i C, hade sprängämnet när man mätte på det? Vilken frekvens har radiokanalen man ser? Är det motiverat att använda Bartletts och/eller zeropadding? Varför/varför inte? Redovisa med några väl valda plottar samt era slutsatser. 6
c) Analys av MRS data Magnetresonansspektroskopi (MRS) är ett viktigt diagnostiskt hjälpmedel när man t.ex. letar efter tumörer i hjärnan. Från att tidigare ha varit tvungen att ta vävnadsprover, s.k. biopsi, kan man idag med MRS undersöka patienten utan ingrepp. Principerna för MRS bygger på att man rätar först upp atomernas magnetiska moment genom att lägga på ett kraftigt magnetfält (längs z-axel). Sedan exciterar man atomerna så att de vrids till ett högre energitillstånd med en hjälp av en elektromagnitisk puls (RF-signal). Efter excitation faller de magnetiska momenten tillbaka till grundtillståndet samtidigt som de roterar kring magnetfältet. Detta ger upphov till en periodisk signal med dämpning i xy-planet. Beroende på till vilken molekyl och hur de exciterade atomerna är bundna, fås vågor med olika frekvenser. Signalen från en MRS-undersökning kan alltså approximeras med en summa av vågor med olika frekvenser från olika ämnen. Beroende på vilken grundämne man exciterar (vanligen väte, fosfor, natrium eller fluor) kan man se en rad olika ämnen i vävnaden. Tabell 1 visar exempel på ämnen man kan urskilja vid fosfor-mrs-skann av hjärnan. I denna uppgift ska ni ladda ned en simulerad MRS-dataserie från http://www.it.uu.se/ katalog/marbj996/transformmetoder/p2ht13. Serien är ett exempel på en signal från en fosfor-mrs-skann av hjärnvävnad. Notera att signalen är komplexvärd! Detta är vanligt inom MR då signalen uppmäts i ett plan. Istället för att använda vektorer beskriver man rörelsen i planet med komplexa funktioner. Studera Periodogrammet av tidsserien. Serien är samplad med samplingsfrekvens f s = 3 khz. Är spektrumet symmetriskt? Varför/varför inte? (ledning: Använd fftshift() för att få frekvensen noll i mitten av spektrumet, se help fftshift() för mer information, och skapa en frekvensaxel från -fs/2 till fs/2.) Redogör med hjälp av Tabell 1 för vilka ämnen som förekommer i just denna signal och dess frekvenser. Är det motiverat att använda Bartletts och/eller zeropadding? Varför/varför inte? Redovisa med en eller flera väl valda plottar samt era slutsatser. Ämne Frekvens [Hz] β-atp 1-86 β-atp 2-70 β-atp 3-54 α-atp 1 152 α-atp 2 168 γ-atp 1 292 γ-atp 2 308 Fosfokreatin 360 Fosfodiester 440 Oorganisk fosfor 490 Fosfomonoester 530 Tabell 1: Exempel på ämnen i hjärnvävnad och deras frekvenser vid fosfor-mrs, samplade med f s = 3 khz. ATP = adenosintrifosfat. 7
d) Analys av elförbrukningen i Sverige Här studerar ni elförbrukningen i Sverige. Datat är hämtat från Svenska Kraftnäts hemsida (http://www.svk.se/energimarknaden/el/statistik/) där man kan ladda ned statistik för elproduktion och förbrukning som excel-blad. På projekthemsidan finns data med statistik för år 2012 klart att laddas in i MATLAB. Datat är summerat per timme och det är tänkt att ni i första hand ska studera den totala energiförbrukningen och vilka periodiciteter den har. Det går även att studera andra storheter som finns i datasetet om man tycker det är intressant. När ni laddar in elstatistik2012.mat får ni fyra sparade dataserier. alldata innehåller rådatat importerat från excel (med xlsread()) och labels innehåller tillhörande överskrifter för respektive kolonn. datumochtid innehåller de två första kolonnerna ur alldata, första kolonnen är datumet för samplet, den andra timmen på dygnet. totelforbr är det datat som ni ska undersöka och göra spektralanalys på. Detta data kommer från kolonn tre i alldata och även minustecknet har tagits bort. Alla energiförbrukningar/produktioner är mätta i MWh och motsvara effekten integrerad över en timme. Eftersom medelvärdet i effektförbrukningen inte är noll måste ni dra bort detta innan spektralanalyserar datat, annars får ni en stor topp för frekvensen noll som kan skymma det intressanta. Detta görs enklast med x = x - mean(x); i MATLAB. Vilka periodiciteter tror ni på förhand att ni kommer att se, hur bör energiförbrukningen variera över ett år (snabba/långsamma förändringar)? Spektralanalysera datat för att se om det stämmer överens med era förväntningar. Studera även några månader i taget, t.ex. årets två eller tre första, och jämför. I datat finns övertoner d.v.s. multiplar av en grundfrekvens. Varför uppstår dessa? (ledning: plotta tidsdatat och tänk på Fourierserien för en fyrkantsvåg/pulståg. Grovt uppskattat hur ser förbrukningen ut för dag respektive natt?). Redovisa era slutsatser tillsammans med några väl valda plottar. 8
Del III Extramaterial 5 Introduktion till MATLAB MATLAB är en förkortning av MATRIX LABORATORY och är ett matrisbaserat integrerat system för numeriska beräkningar och grafisk presentation av data. Programmet är mycket kraftfullt och har blivit en standard inom många discipliner. En sak man måste komma ihåg är att MATLAB inte är symboliskt (även om det finns en symbolisk del) utan numeriskt. Om man ändrar en variabel x så måste man beräkna om alla andra variabler som beror av x, detta görs inte automatiskt. MATLAB vet heller inte vad du har räknat ut (t.ex sin(x)) utan har bara ett numeriskt värde för detta. MATLAB har en kärna av inbyggda kommandon och funktioner. Dessa kommandon kan delas in i följande tre huvudklasser: klass exempel 1. matrisoperationer [V, D] = eig(x) egenvektorer och egenvärden till matrisen X 2. grafik plot(x, y) plottar y mot x semilogy(x, y) plottar log 10 (y) mot x 3. data save filnamn sparar alla variabler i filen filnamn load filnamn läs in alla variabler i filen filnamn I MATLAB kan man exekvera makrofiler. Dessa är vanliga textfiler som innehåller en sekvens av kommandon. Makrofiler kallas i MATLAB för m-filer eftersom de slutar på.m. För att styra programflödet i filerna används kommandon som for, while, och if. Man konstruerar enkelt egna makrofiler med hjälp av en vanlig texteditor. I MATLAB finns en integrerad texteditor som enkelt kan nås från menyn eller genom att skriva edit i kommandoraden eller genom att skapa en ny m-fil i menyn. MATLAB har ett mycket användbart system för hjälp. Systemet är uppbyggt kring kommandot help. Den huvudsakliga användningen är help kommando, vilket ger hjälp om kommandot kommando. Mycket användbart! Notera också att omfattande hjälp finns tillgänglig via menyn samt på Mathworks R hemsida, http://www.mathworks.com/help/techdoc/. MATLAB har en mycket flexibel och omfattande programmeringsmiljö och det tar lång tid att lära sig alla dess funktioner och möjligheter. Ett sätt att komma i gång med MATLAB är att studera några enkla exempel, vilket vi ska göra i nästa avsnitt. 5.1 MATLAB-kommandon Vi ska här studera några praktiska exempel hur man använder MATLAB. Följande moment kommer att behandlas: 1. Enskilda kommandon. 2. Plotta data. 3. Att spara och läsa in data. 9
4. Att skriva program. 5. Allmänna kommandon. 5.1.1 Enskilda kommandon Variabler skapas då man tilldelar dem ett värde. Dessa variabler läggs då i Workspace. Om man skriver ; i slutet på ett godtyckligt kommando så skrivs resultatet inte ut i Command Window, det lagras bara i den variabel som tilldelas (t.ex. x=1 alt. x=1;). Specificering av matriser: x=[1 2 3]=[1,2,3] ger radvektorn x = [ 1 2 3 ] 1 y=[1;2;3] ger kolonnvektorn x = 2 3 1 2 3 A=[1 2 3;4 5 6;7 8 9] ger matrisen A = 4 5 6 7 8 9 1 z=a(:,1) ger 1:a kolonnen av A, z = 4 7 w=a(1,:) ger 1:a raden av A, w = [ 1 2 3 ] a=a(m,n) tar ut element med radindex M och kolonnindex N D=[z y] ger en matris med kolonnerna z och y (z och y måste ha rätt dimensioner) t=[0:0.1:10] ger radvektorn t = [ 0 0.1 0.2... 10 ] generellt [startvärde:inkrement:slutvärde] t=linspace(0,10,101) ger samma vektor t som ovan. Generellt linspace(a,b,n) ger intervallet [a b] i indelat i N punkter Speciella matriser: A=ones(M,N) A=zeros(M,N) A=eye(N) A=randn(M,N) ger en M N matris av ettor ger en M N matris av nollor ger en N N enhetsmatris ger en M N matris av normalfördelade slumptal Matrisberäkning, C MN betecknar en matris med M rader och N kolonner (dimensionerna på matriserna måste stämma överens, alternativt att den ena är en skalär): C=A+B C=A*B x=a\b C=A C=inv(A) C MN är summan av A MN och B MN C MN är matrisprodukten av A ML och B LN x är lösningen till ekvationssystemet Ax = b C NM är komplexkonjugerade transponatet av A MN C MM är inversen av A MM Elementvis beräkning (A och B måste ha samma dimension, alternativt att den ena är en skalär): 10
C=A.*B Multiplikation [1 2 3].*[4 5 6] ger [ 4 10 18 ] C=A./B Division [1 2 3]./[4 5 6] ger [ ] 1 2 3 4 5 6 C=A.^k Exponent [1 2 3].^2 ger [ 1 4 9 ] C=A. Transponat, men ej komplexkonjugering Andra användbara kommandon: length(x) ger längden av vektorn x sin(t) sinus av vektorn t abs(x) absolutbeloppet av vektorn x mean(x) medelvärdet av vektorn x fft(x) FFT av vektorn x i L=length(x) punkter fft(x,l) FFT av vektorn x, uträknat i L punkter (zeropadding om L >length(x), annars trunkering) ifft(x) inversa FFT av vektorn X fftshift(x) skiftar plats på första och andra halvan av vektorn x 5.1.2 Grafik När man använder plot så skapas automatiskt ett fönster om inget sådant redan är öppet. Om man plottar igen så skrivs detta över om man inte öppnar ett nytt fönster alternativt använder hold on enligt nedan för att skapa en figur med två grafer eller fler i samma fönster. plot(y) plottar vektorn y mot elementens index. plot(x,y) plottar vektorn y mot vektorn x. plot([x y]) plottar kolonnvektorerna x och y i samma diagram. loglog(y) plottar vektorn y i ett loglog-diagram (log-axlar). figure skapar ett nytt tomt figurfönster. subplot(m,n,k) nästa plot hamnar i del nummer k av en M rader och N kolonner stor matris med plot-axlar. hold on nästkommande plottar hamnar i samma figur. hold off nästkommande plottar skriver över tidigare. close all stänger ned alla figurer. legend( graf1, graf2,...) sätter etikett på de olika kurvorna i samma figur. title( En graf som visar... ) namnger figuren. xlabel( mått [enhet] ), ylabel namnger axlarna. axis([xmin xmax ymin ymax]) sätter gränserna på axlarna. 5.1.3 Att spara och läsa in data För att spara de variabler man har genererat i MATLAB, och därmed finns i Workspace, används kommandot save. För att läsa in variabler som tidigare sparats används kommandot load. Exemplen nedan visar hur dessa kommandon används. save filnamn save filnamn a b c load filnamn sparar alla variabler i Workspace i filen filnamn.mat sparar de i Workspace definierade variablerna a b c i filen filnamn.mat läser in alla variabler som sparats i filen filnamn.mat 11
Använder man MATLABs eget gränssnitt kan man även klicka och släppa för att läsa in data och ladda sparade figurer. Man kan också importera data i många olika format direkt via Workspace, samt mycket annat. Pröva gärna själva! 5.1.4 Att skriva program Gå in på File-menyn och tryck på New om ny fil skall skapas eller Open M-file för att redigera gammal fil. Skriv önskad kod precis som i Command Window och spara filen med ett filnamn som slutar på.m (t.ex. test.m). Dessa filer kan nu köras från Command Window genom att skriva filens namn (i detta fall test). 5.1.5 Allmänna kommandon help kommando clear variabel clear clc exit ger information om kommandot kommando raderar varabeln variabel ur workspace raderar alla variabler i workspace rensar det som skrivits i command window lämnar MATLAB 12