La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Corso di Segnali e Sistemi

Presentazioni simili


Presentazione sul tema: "Corso di Segnali e Sistemi"— Transcript della presentazione:

1 Corso di Segnali e Sistemi
Prof. Michele Pavon INTRODUZIONE A MATLAB 30 aprile 2015 Chiara Pielli

2 Cos’è Matlab? Matrix LABoratory Calcolo numerico e analisi statistica
Applicazioni: sistemi di controllo comunicazioni progettazione elettronica elaborazione di immagini biologia computazionale Alternativa open source: GNU Octave

3 Interfaccia

4 Istruzioni Due modi per fornire le istruzioni: tramite command window:
- comandi eseguiti immediatamente - volatile tramite script: - file .m scritto in un editor - salvataggio programma in memoria Se il comando è errato o mal formulato, Matlab segnala l’errore con una risposta in rosso.

5 Istruzioni – definizione variabili
Variabile numerica >> a = 5 >> b = >> c = 1+7i Stringa >> s = ‘pippo’ Vettore >> v = [1 5 9] >> u = [3; 0; 4] Matrice >> C = [2 6; 4 9; 3 1] Per sopprimere l’eco, usare il punto e virgola: >> k=10;

6 Gestione variabili Lista variabili nel workspace:
>> who Descrizione variabili nel workspace: >> whos Salvataggio variabili in un file data.mat: >> save data [salvo TUTTO il workspace] >> save data c [salvo solo la variabile c] Cancellazione variabili dal workspace: >> clear all [cancello TUTTE le variabili] >> clear c [cancello solo la variabile c]

7 Istruzioni – vettori [1/3]
Definizione di un vettore: >> v = [1 3 8] Lunghezza di un vettore: >> l = length(v) >> l = 3 Vettore trasposto >> u = v’; >> u = Somma elementi >> s = sum(v) >> s = 11 Vettore simmetrico >> u = wrev(v) >> u = 8 3 1

8 Istruzioni – vettori [2/3]
Sia v= [ ]; !!Gli indici in Matlab partono da 1!! Estrazione di elementi: >> v(3) >> ans = 0 >> v(1:2) >> ans = [1 8] >> v(2:2:4) >> ans = [8 9] >> v(3:-1:1) >> ans = [0 8 1]; >> v(:) >> ans = [1; 8; 0; 9];

9 Istruzioni – vettori [3/3]
Siano v = [ ] ed u = [ ]; Somma fra due vettori >> u + v >> ans = [ ] Prodotto interno <u,v> = uTv >> v*u’ >> ans = 30 Prodotto componente per componente >> v.*u >> ans = [ ] Elevamento a potenza componente per componente >> v.^ >> ans = [ ]

10 Istruzioni – matrici [1/2]
Definizione matrice: >> M = [7 4; 1 9]; Dimensione matrice: >> size(M) >> ans = [2, 2] >> size(M, 2) >> ans = 2 Estrazione elementi: >> M(1,2) >> ans = 4 >> M(2,:) >> ans = [1 9]; Matrice inversa (! se M è quadrata): >> inv(M) >> ans =

11 Istruzioni – matrici [2/2]
Siano e Somma: >> A + B >> ans = Prodotto: >> A * B >> ans = Prodotto elemento per elemento: >> A.*B >> ans = 24 36

12 Istruzioni logiche Matlab può valutare proposizioni logiche
1 = true e 0 = false Operatori: - ugualianza == >= <= - disuguaglianza ~= > < - and && - or || Esempi: >> ( (a > 0) || (c <= 3) ) >> ( (a ~=0) && (c+d > 7) )

13 Cicli iterativi Struttura IF: if (condizione){ Struttura WHILE:
<istruzioni> }else { }end }elseif { Struttura WHILE: while (condizione){ <istruzioni> }end Struttura FOR: for(j = min:step:max){

14 Script File contenente una successione di comandi da eseguire
Si scrive tramite editor di testo Si salva in un file con estensione .m

15 Funzioni [1/2] File invocato nel main
Parametri di ingresso + valori di ritorno Moltissime funzioni già implementate È possibile creare funzioni personalizzate: - come uno script: editor di testo & estensione .m - sintassi: function [out1, out2, …] = nomeFunzione(in1, in2, ...) - nome file identico al nome della funzione Es: function a = areaTriangolo(b, h) a = (b*h)/2; end

16 Funzioni [2/2] Informazioni su una funzione: help nomeFunzione
» help abs ABS Absolute value. ABS(X) is the absolute value of the elements of X. When X is complex, ABS(X) is the complex modulus(magnitude) of the elements of X. Alcune funzioni utili: real, imag, eye, ones, sin, cos, exp, log, plot, stem, min, max, conv, deconv, abs, phase, ... Cercare funzioni  Google

17 Grafici [1/5] Rappresentiamo la funzione seno nell’intervallo [0, 2π] con passo di campionamento Tc = 0.01 » Tc = 0.01; » x = 0:Tc:2*pi; » plot(x, sin(x));

18 Grafici [2/5] Aggiungere elementi al grafico: T = 0.01; x = 0:T:2*pi;
plot(x,sin(x),'r-.','LineWidth',3) grid on; title('Plot of sin(x)'); xlabel('x'); % nome asse x ylabel('sin(x)'); % nome asse y axis([0 2*pi -1 1]);

19 Grafici [3/5]

20 Grafici [4/5] Esercizio: stampare su due figure differenti i segnali entrambi con passo di campionamento T = 0.02.

21 Grafici [5/5] clear all; close all; % chiudo finestre aperte T = 0.02; % passo di campionamento t = 0:T:50; % crea vettore tempi f = cos(2*t); % crea vettore per f g = exp(-0.1*t).*cos(2* t); % vettore per g figure; % apro una nuova figura plot(t, f) % stampo il primo grafico xlabel('t') % nome asse x ylabel('f(t)' % nome asse y title('primo grafico') % titolo grafico figure; plot(t,g,'r') % stampo il secondo grafico xlabel('t'); ylabel('g(t)‘); title 'secondo grafico');

22 Esempio riepilogo [1/2] Scrivere uno script esempio.m che calcola i valori massimo e minimo e la media di un vettore aleatorio con distribuzione uniforme nell’intervallo [0,30]. (SUGGERIMENTO: guardare l’help della funzione rand) close all; clear all; L = 100; % lunghezza vettore % genero sequenza casuale uniforme in [a,b] a = 0; b = 30; v = a + (b-a).*rand(L, 1); % calcolo max e min del vettore [vMin, iMin] = min(v); [vMax, iMax] = max(v);

23 Esempio riepilogo [2/2] % Produciamo il grafico richiesto figure;
stem(v); hold on; stem(iMin, vMin,'kx‘); stem(iMax, vMax,'gs'); vMedio = mean(v)*ones(L,1); plot(vMedio,'r–'); grid on; legend('v','valore minimo', 'valore massimo', 'valor medio');

24 Homework Stampare il segnale:
con passo di campionamento T = 0.02 scegliere in maniera opportuna il passo di campionamento


Scaricare ppt "Corso di Segnali e Sistemi"

Presentazioni simili


Annunci Google