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

Relevanta dokument
Beräkningsverktyg HT07

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

Introduktion till MATLAB

Instruktion för laboration 1

1.1 MATLABs kommandon för matriser

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

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

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

Matriser. Vektorer. Forts. Grunderna i MATLAB. Informationsteknologi. Informationsteknologi.

Laboration 1: Linjär algebra

Logik och Jämförelser. Styrsatser: Villkorssatsen if och repetitonssatsen for. Scriptfiler. Kommentarer. Tillämpningar: Ett enkelt filter.

Matlabövning 1 Funktioner och grafer i Matlab

Mer om funktioner och grafik i Matlab

Matriser och linjära ekvationssystem

TSBB14 Laboration: Intro till Matlab 1D

Beräkningsvetenskap föreläsning 2

Matriser och Inbyggda funktioner i Matlab

Matlabövning 1 Funktioner och grafer i Matlab

Matematisk Modellering

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

Numeriska metoder, grundkurs II. Dagens program. Hur skriver man en funktion? Administrativt. Hur var det man gjorde?

Kapitel 4. Programmet MATLAB

Instruktion för laboration 1

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

Matlabföreläsningen. Lite mer och lite mindre!

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

Matriser. Vektorer. Grunderna i MATLAB 2. Informationsteknologi. Informationsteknologi.

Department of Physics Umeå University 27 augusti Matlab för Nybörjare. Charlie Pelland

Innehåll. Vad är MATLAB? Grunderna i MATLAB. Informationsteknologi. Informationsteknologi.

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

Datorövning 1 Fördelningar

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

MATLAB övningar, del1 Inledande Matematik

TSKS21 Signaler, Information och Bilder Lab 2: Digitalisering

TANA17 Matematiska beräkningar med Matlab

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

Mer om linjära ekvationssystem

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

TANA17 Matematiska beräkningar med Matlab

Matriser och linjära ekvationssystem

jsp?d=&a=827474&sb2231i0=1_

15 februari 2016 Sida 1 / 32

Matriser och Inbyggda funktioner i Matlab

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

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

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

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

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

MAM283 Introduktion till Matlab

Matriser och vektorer i Matlab

Flerdimensionella signaler och system

TAIU07 Matematiska beräkningar med Matlab

2 februari 2016 Sida 1 / 23

Laboration: Vektorer och matriser

Linjär algebra. 1 Inledning. 2 Matriser. Analys och Linjär Algebra, del B, K1/Kf1/Bt1. CTH/GU STUDIO 1 TMV036b /2013 Matematiska vetenskaper

Mer om funktioner och grafik i Matlab

Matriser och vektorer i Matlab

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

Exempel att testa. Stora problem och m-filer. Grundläggande programmering 4. Informationsteknologi. Informationsteknologi.

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

Lägg märke till skillnaden, man ser det tydligare om man ritar kurvorna.

Datorövning 1: Fördelningar

Laboration 0: Del 2. Benjamin Kjellson Introduktion till matriser, vektorer, och ekvationssystem

Datorövning 1: Introduktion till MATLAB

TAIU07 Matematiska beräkningar med Matlab

Innehåll. Vad är MATLAB? Grunderna i MATLAB. Informationsteknologi. Informationsteknologi.

Linjär algebra med tillämpningar, lab 1

MMA132: Laboration 1 & 2 Introduktion till MATLAB

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

Laboration i tidsdiskreta system

MMA132: Laboration 2 Matriser i MATLAB

Enklast att skriva variabelnamn utan ; innehåll och variabelnamn skrivs ut

Laboration 4: Lineär regression

TAIU07 Matematiska beräkningar med Matlab

Projekt Spektralanalys med hjälp av den diskreta Fouriertransformen

Laboration: Grunderna i Matlab

Introduktion till MATLAB, med utgångspunkt från Ada

Du kan söka hjälp efter innehåll eller efter namn

Introduktion till MATLAB

Laboration i Matlab. Uppgift 1. Beskrivning

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

Grunderna i MATLAB. Beräkningsvetenskap och Matlab

Introduktion till Matlab Föreläsning 1. Ingenjörsvetenskap

Projekt 2 (P2) Problembeskrivning och uppdragsspecifikation

Introduktion till MATLAB

15 september, Föreläsning 5. Tillämpad linjär algebra

Innehåll. Vad är MATLAB? Vad är MATLAB? Informationsteknologi. Grunderna i MATLAB. Informationsteknologi. Informationsteknologi. Vad är MATLAB?

Linjär algebra med MATLAB

Vad är MATLAB? Användningsområden. Var kan man köra MATLAB? MATLAB-miljön: avsluta. MATLAB-miljön: Start. Informationsteknologi. Grunderna i MATLAB

Liten MATLAB introduktion

6. Matriser Definition av matriser 62 6 MATRISER. En matris är ett rektangulärt schema av tal: a 11 a 12 a 13 a 1n a 21 a 22 a 23 a 2n A =

Moment Viktiga exempel Övningsuppgifter

MATLAB. En kort praktisk introduktion. Olof Hultin FAFA Omarbetad efter original av Henrik Persson

Laboration: Grunderna i MATLAB

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 8p av totalt 20p Tid: 14:e januari klockan

PC-BERÄKNINGAR. REGLERTEKNIK Laboration 5 och inlämningsuppgift. Inlämningsdatum:... Inlämnad av labgrupp:... Gruppdeltagare:

KPP053, HT2016 MATLAB, Föreläsning 1. Introduktion till MATLAB Skript Inläsning och utskrift av variabler Ekvationssystem Anonyma funktioner

Komponentvisa operationer,.-notation Multiplikation (*), division (/) och upphöj till (ˆ) av vektorer följer vanliga vektoralgebraiska

SF1624 Algebra och geometri Lösningsförslag till tentamen DEL A

MMA132: Laboration 1 Introduktion till MATLAB

Transkript:

BE 00-0-0 MATLAB (Matrix Laboratory) matlab.ico för SIGNALER & SYSTEM

. Grunder >> /3 >> MATLAB-prompt ans = 0.6667 >> /3; Ingen utskrift a=[ 9 ]; Vektor, längd 5 >> a Alltså radvektor a = 9 >> at=a'; >> at at = 9 >> a*at ans = 94 >>whos Name Size Bytes Class a x5 40 double array ans 5x 40 double array at 5x 40 double array Transponerad vektor, dvs kolonnvektor. Transponering görs med operatorn ' Kvadratsumman Visar aktuella variabler i arbets-arean ( workspace ) ( default work ) Grand total is 5 elements using 0 bytes >> pwd ans = C:\matlabR\work >> clear all >> whos print working directory Här ligger MATLAB på c:, normalt startar Du på nätet, enhet H: Byt directory a la DOS med CD Raderar alla variabler

. Vektorer är viktigt >> a.*a ans = 4 4 8 4 >> a(3) ans = 4 >> [maxx,ix]=max(a.*a) maxx =8 (MAX av vektorn ) ix =4 ( Index för MAX-värdet ) >> help max Elementvis multiplikation. Obs Obs punkten (. ) ( Om a var 9 ) >> a.^ (a upphöjt till (elementvis)) ger samma resultat Obs att i MATLAB börjar index med, inte 0 som i C/C++ max är en färdig funktion som ingår i MATLAB OnLine-manual. Skriv help MAX Largest component. For vectors, MAX(X) is the largest element in X. For... >> t=[0:300]; Generera t.ex en tidvektor med sampelintervallet >> s=sin(0.*t); sin(0), sin(0.),, sin(60) >> s(:3) De 3 första elementen i s ans = 0 0.987 0.3894 >> s(0) Typiskt fel??? Index into matrix is negative or zero. >> s=exp(-0.0*t); Addera vektorer >> s=s+s; >> N=length(s) N =30 >> size(s) ans = 30 Längd och dimension, Dimensionen: rad, 30 kolumner 3

>> W=sum(s.*s) W =0.49 Signalens energi bestäms enligt W = N t= 0 s ( t) >> W=s'*s Går också bra W =0.49 >> plot(t,s);xlabel('t'); Se figur övre nedan >> ylabel('s'); >> title('s(t),linjär skala'); >> loglog(t,s.^) Se undre figuren nedan Vad innebär loglog? s(t),linjär skala.5 s 0.5 0-0.5-0 50 00 50 00 50 300 t 0 0 0 0-0 - 0-3 0-4 0-5 0 0 0 0 0 3 4

>>subplot(,,); >>stem(t(:50),s(:50)); >>subplot(,,); >>stem(t(:5:end),s(:5:end)); :a av plottar Stem ritar staplar ( lollipops ) De 50 första samplen :a av plottar Var 5:te sampel från start till slut.5 0.5 0-0.5 0 5 0 5 0 5 30 35 40 45 50.5 0.5 0-0.5-0 50 00 50 00 50 300 5

>> a=[ 3];b=[4 5 6]; >> conc=[a b] conc = 3 4 5 6 >> snoom=conc(end:-:) snoom =6 5 4 3 >> zeropadd= [snoom zeros(,4)] zeropadd = 6 5 4 3 0 0 0 0 >> zeropadd=[snoom'; zeros(4,)] zeropadd= 6 5 4 3 0 0 0 0 >> f=[,-3,]; >> p=roots(f) p = >> conv([, -p()],[, -p()]) ans = -3 >> conv([ ],[0 ]) ans =0 >> stem(0:length(ans)-,ans) Skarva ihop vektorer Utan kommentar Addera en vektor med 4 nollor till snoom Nog vanligare med kolumnvektorer. Observera ; -tecknet Beskriver ett polynom: f(z)=z -3z+ och dess rötter Funktionen conv multiplicerar ihop polynom.5 0.5 0 0 3 4 6

>> x=sin(0.*t); >> x=x';%kolumnvektor >> brus=randn(length(x),); >> x_plus_brus=x+brus; >> save f x_plus_brus; >> clear ; >> load f >> stem(x_plus_brus) >> w=0:.:;%frekvensvektor >> x=sin(w+pi/);% x=f(w) >> A=[w' x'];%a *-matris >> A(:,);:a kolumn i A >> A(:,);:a kolumn i A >> plot(a(:,),a(:,)); Generera en brusig sinus Spara signalen i workspace på fil med namn f.mat Extension mat fås automatiskt clear raderar variabler från minnet load hämtar fil från workspace Ibland kan det vara smidigt att tänka i fler än dimension (D) Dessa kommandon skapar en D-matris och plottar f(x). Vad tror Du att A(,:) blir? Jo, 0 (:a raden i A ) >> whos Name Size Bytes Class Dessa variabler finns i minnet nu A x 76 double array ans x 6 double array w x 88 double array x x 88 double array Grand total is 46 elements using 368 bytes 7

3. Matriser är viktigt >> A=[ 3;4 5 6;7 8 9];%3*3 >> B=[ ]';%3* >> C=A*B C = 8 0 3 >> D=B*A??? Error using ==> * Inner matrix dimensions must agree. >> A=[ ;5 4]; >> B=inv(A) B = -0.6667 0.3333 0.8333-0.667 >> help inv INV Matrix inverse. INV(X) is the inverse of the square matrix X. >> A=[ 3;5 -] ; >> y=[5 4]'; >> x=inv(a)*y x = Obs ordning vid multiplikation Lös ekvationssystemet x + 3x = 5 5x - x = 4 Matrisnotation: y=ax x=a - y 8

4. Liksom komplexa tal a =.0000 +.0000i abs(a).36 real(a) phase(a) ans =.07 %Obs i radianer! >> fas_rad=phase(a)*80/pi fas_rad = 63.4349 >> j=sqrt(-);%obs >> x=;cos(x) ans = -0.46 >> arg=j*x; >> y=(exp(arg)+exp(-arg))/ y = -0.46 >> t=(0:0)*j; >> y=/t;??? Error using ==> / Matrix dimensions must agree. >> y=./t; Warning: Divide by zero. >>plot(abs(y)); >>hold; >>plot(abs(y),'o'); Im(a) Konvertera vinkeln till grader Här kallas i för j Beräkna cos() med Eulers formel Obs. t är ju en vektor Elementvis invertering kräver då en. Plotta y. Obs funktionen hold Re(a) 9

5. m-filer Man upptäcker snart att det kan bli omständligt att när man behöver ett antal kommandon enbart jobba mot MATLAB-prompten. Då skriver man lämpligen en m-fil. Den skapas i en texteditor och sparas i workspace. Den får filtypen m, t.ex kompass.m: %m-fil som plottar %en komplex vektor %i ett polärt diagram %Fas-steg på 30 grader (pi/6) %Filnamn: kompass.m % t=0:pi/6:*pi; j=sqrt(-); x=exp(-0.*t- j*t); re=real(x); im=imag(x); compass(re,im); Exekveras så här: >> kompass Tänk igenom programmets funktion! 0

6.Funktioner Ett kraftfullare verktyg är att skapa egna funktioner som Kan anropas med ett antal parametrar och returnera ett antal värden. Ex: %Funktion som beräknar min- %och max-värden i en vektor. %IN-data: Vektor v %UT-data: minn och maxx %Filnamn: minmax function [minn,maxx]=minmax(v) minn=min(v); maxx=max(v); Tillämpning: >> v=randn(00,);%slumptalsvektor >> [mi,ma]=minmax(v) mi = -.707 ma =.83

Ex: %Funktion som plottar %beloppskurvan för en %kompex-vektor %IN-data: Vektor v %Filnamn: complott function complott(v) plot(abs(v)); Tillämpning: >> j=sqrt(-);t=0:0.:;v=sin(j*t); >> complott(v); Förklara varför sinusfunktionen får ett absolutvärde >! (i fig. ovan)

7. Vanliga testsignaler >> dirac=[,zeros(,9)]'; Ger en dirac-puls följd av 9 st 0:or I matten: δ [n] 03456789 >>step=[ones(0,)]'; Stegfunktion I matten: u [ n] u[ n 0] 03456789 >> pulse=[zeros(,5), ones(,4) zeros(,6)]'; Tidsfördröjd puls I matten: u [ n 5] u[ n 9] 03456789034 >> ramp=0:0; Ramp I matten: n ( u[ n] u[ n ]) 0 0 3

>> n=0:40;x=sin(0.**pi*n); Justera så index på x-axeln börjar med 0: >> stem(0:length(n)-, x); Sinus t = 0:.000:.0.50; y = SQUARE(*pi*30*t);, plot(t,y) Fyrkantvåg 30 Hz 4

function my_sawtooth(m,n,topp) %M=nr of periods %N=nr of samples/period y=[]; y=topp*(0:n)./(n);%up_ramp for i=:m y=[y y];%concat up_ramp end %compute x_axis %note:topp x-coord is same %as next start x-coord: x=[]; for i=:m%loop periods for j=:n%loop samples t=(i-)*(n-); xt=t:t+(n-); end x=[x xt];%concat x-coord end %"return to zero": y(end+)=0; x(end+)=x(end); Sågtandsvåg >> my_sawtooth(4,5,.5); plot(x,y,x,y,'o'); 5

8. Faltning ( convolution ) Huru göra faltning för tidsdiskreta signaler? Ex med f=0,,,3,, och g=,,,0,: %conv f[n]*g[n] %discrete time convolution % f=[0 3 ]; g=[ 0 ]; k=0::length(f)+length(g)-; c=conv(f,g); stem(k,c,'filled'); 6

9. Några filterexempel Med kod: %Filtrering av brusig %sinus med frekvens f f=0;%hz fs=00;%samplingsfrekvens dt=/fs;%sampelintervall N=0;%antal sampel t=0:dt:(n-)*dt;%tiden x=sin(*pi*f.*t);%signal n=0.*randn(,n);%brus s=x+n;%brusig signal subplot(3,,); plot(t,s); legend('brusig signal'); % %****filter**** %Lågpass,gräns Hz %normerad gränsfrekvens: % w=(/(0.5*fs) % gradtal gr=8 % w=/(0.5*fs); grad=8; [B,A]=butter(grad,w); F=0:.5:0;%frekvensvektor i Hz [H]=freqz(B,A,F,fs); subplot(3,,); %plotta frekvenskurva ( i db ): plot(f,0*log0(abs(h))); legend('filtrets dämpkurva'); y=filter(b,a,s); subplot(3,,3); plot(t,y,'r'); legend('filtrerad signal'); 7

MED SIMULINK: 8