Laboratorio di Programmazione Lezione 1 Introduzione al...

19
Introduzione Ottenere MATLAB Laboratorio di Programmazione Lezione 1 Introduzione al corso Prof. Michele Scarpiniti Prof. Danilo Comminiello Dipartimento di Ingegneria dell’Informazione, Elettronica e Telecomunicazioni “Sapienza” Universit` a di Roma http://ispac.diet.uniroma1.it/scarpiniti/index.htm [email protected] [email protected] M. Scarpiniti Laboratorio di ProgrammazioneLezione 1 Introduzione al corso 1 / 19

Transcript of Laboratorio di Programmazione Lezione 1 Introduzione al...

IntroduzioneOttenere MATLAB

Laboratorio di ProgrammazioneLezione 1

Introduzione al corso

Prof. Michele Scarpiniti

Prof. Danilo Comminiello

Dipartimento di Ingegneria dell’Informazione, Elettronica e Telecomunicazioni“Sapienza” Universita di Roma

http://ispac.diet.uniroma1.it/scarpiniti/index.htm

[email protected]@uniroma1.it

M. Scarpiniti Laboratorio di ProgrammazioneLezione 1 Introduzione al corso 1 / 19

IntroduzioneOttenere MATLAB

IntroduzioneRisorse

Generalita e Obiettivi del Corso

L’obiettivo del corso e quello di fornire una panoramica generale al linguaggioMATLAB. Oltre alla descrizione dei fondamenti del linguaggio MATLAB,dei costrutti e dei comandi messi a disposizione per la manipolazione divettori e matrici e la creazione di grafici, si dara particolar enfasi ai toolbox diinteresse per l’ingegneria delle comunicazioni. Si vorra, quindi, approfondirealcuni argomenti come la trasformata di Fourier, le modulazioni, l’analisistatistica dei segnali, la manipolazione dei segnali multimediali quali l’audioe le immagini, la progettazione di filtri e altre specifiche applicazioni. Infine siintrodurra l’utilizzo di Simulink, utile alla simulazione di sistemi complessi.

M. Scarpiniti Laboratorio di ProgrammazioneLezione 1 Introduzione al corso 2 / 19

IntroduzioneOttenere MATLAB

IntroduzioneRisorse

Risultati dell’apprendimento

Lo studente acquisisce le nozioni necessarie a programmare in linguaggioMATLAB e in particolare a gestire vettori e matrici di dati e disegnaregrafici. Particolare enfasi sara anche data al calcolo simbolico. Inoltre, lostudente acquisira l’uso dei toolbox fondamentali nelle varie branche dell’in-gegneria delle comunicazioni. Infine, lo studente sara in grado di effettuaresimulazioni di semplici sistemi tramite Simulink.

M. Scarpiniti Laboratorio di ProgrammazioneLezione 1 Introduzione al corso 3 / 19

IntroduzioneOttenere MATLAB

IntroduzioneRisorse

Docenti del corso

Il corso sara tenuto in co-docenza:

Michele Scarpiniti

Luogo: Dip. DIET, I piano, stanza 121, Facolta di Ingegneriadell’Informazione, Informatica e Statistica (S. Pietro inVincoli), Via Eudossiana 18, Roma.

Recapiti: 06 44585869 (interno: 25869), Fax: 06 44585632.

E-mail: [email protected] (indicare “Laboratoriodi Programmazione” nell’oggetto).

Sito web:http://ispac.diet.uniroma1.it/scarpiniti/index.htm

M. Scarpiniti Laboratorio di ProgrammazioneLezione 1 Introduzione al corso 4 / 19

IntroduzioneOttenere MATLAB

IntroduzioneRisorse

Docenti del corso

Danilo Comminiello

Luogo: Dip. DIET, I piano, stanza 102, Facolta di Ingegneriadell’Informazione, Informatica e Statistica (S. Pietro inVincoli), Via Eudossiana 18, Roma.

Recapiti: 06 44585495 (interno: 25495), Fax: 06 44585632.

E-mail: [email protected] (indicare “Laboratoriodi Programmazione” nell’oggetto).

M. Scarpiniti Laboratorio di ProgrammazioneLezione 1 Introduzione al corso 5 / 19

IntroduzioneOttenere MATLAB

IntroduzioneRisorse

Prerequisiti, frequenza e modalita di esame

Settore Scientifico-Disciplinare (SSD): AAFF (Altre AttivitaFormative), ma sara impartito da docenti del SSD ING-IND/31(Elettrotecnica).

Inquadramento: BCOR; Terzo anno; Primo semestre.

Crediti: 6 CFU.

Prerequisiti: conoscenze di base di Fondamenti di Informatica.

La frequenza e fortemente consigliata.

Modalita di esame: Tesina: lo studente deve dimostrare di saperprogrammare in linguaggio MATLAB risolvendo un problemaassegnato e consegnando un elaborato.

M. Scarpiniti Laboratorio di ProgrammazioneLezione 1 Introduzione al corso 6 / 19

IntroduzioneOttenere MATLAB

IntroduzioneRisorse

Sito web del corso

Tutte le informazioni relative al corso (programma, docenti, recapiti, datedi esame) e il materiale didattico e reperibile al seguente indirizzo:

http://ispac.diet.uniroma1.it/scarpiniti/LabPro_info.

htm

M. Scarpiniti Laboratorio di ProgrammazioneLezione 1 Introduzione al corso 7 / 19

IntroduzioneOttenere MATLAB

IntroduzioneRisorse

Programma di massima del Corso

In sintesi il programma di massima del corso e articolato come segue:1 Introduzione al linguaggio MATLAB2 L’ambiente di lavoro MATLAB3 I tipi di dato4 Le funzioni di base5 Il controllo di flusso6 I vettori e le matrici7 I polinomi8 I grafici9 L’input e output

10 Creare nuove funzioni11 Il calcolo simbolico12 I metodi numerici13 MATLAB orientate agli oggetti14 Le interfacce grafiche

M. Scarpiniti Laboratorio di ProgrammazioneLezione 1 Introduzione al corso 8 / 19

IntroduzioneOttenere MATLAB

IntroduzioneRisorse

Programma di massima del Corso

15 La rappresentazione dei segnali

16 Lavorare con l’audio

17 Il filtraggio

18 La statistica

19 Le modulazioni

20 Lavorare con le immagini

21 Esempi applicativi

22 Le basi di Simulink

23 Esempi e applicazioni in Simulink

M. Scarpiniti Laboratorio di ProgrammazioneLezione 1 Introduzione al corso 9 / 19

IntroduzioneOttenere MATLAB

IntroduzioneRisorse

Testi del Corso

Dispensa a cura del docente.

MATLAB: Getting Started Guide, reperibile online:http://www.mathworks.com/access/helpdesk/help/pdf_doc/matlab/

getstart.pdf.

Complementi:

H. Moore, MATLAB per l’Ingegneria, Pearson, 2008.

H. Moore, MATLAB for Engineers, Pearson, 2014.

D. M. Smith, Engineering Computation with MATLAB. Pearson, 2010.

T. A. Davis, MATLAB Primer, 8-th edition, CRC Press, 2010.

M. Scarpiniti Laboratorio di ProgrammazioneLezione 1 Introduzione al corso 10 / 19

IntroduzioneOttenere MATLAB

IntroduzioneRisorse

Testi del Corso

Il testo proposto, al momento disponibilecome dispensa del corso, e il seguente:

M. Scarpiniti,Laboratorio di programmazione:MATLAB per l’Ingegnere delleComunicazioni,2017.

Il testo e scaricabile dal sito web di ri-ferimento del corso. E necessaria lapassword per aprire il documento, darichiedere al docente.

michele scarpiniti

laboratorio di programmazionematlab® per l’ingegnere delle comunicazioni

Versione 1.0

Dipartimento DIETUniversità di Roma “La Sapienza”via Eudossiana 18, 00184 Romahttp://ispac.diet.uniroma1.it/scarpiniti/index.htm

Aprile 2017

M. Scarpiniti Laboratorio di ProgrammazioneLezione 1 Introduzione al corso 11 / 19

IntroduzioneOttenere MATLAB

Download e installazioneRisorse

MATLAB e Sapienza

Dal 2017, grazie ad un accordo quadro tra Mathworks e Sapienza Universitadi Roma, tutti i docenti e gli studenti dell’Ateneo possono ottenere gratui-tamente la versione Professional di MATLAB, contenente tutti i pacchettiaggiuntivi.

M. Scarpiniti Laboratorio di ProgrammazioneLezione 1 Introduzione al corso 12 / 19

IntroduzioneOttenere MATLAB

Download e installazioneRisorse

Ottenere MATLAB

Per scaricare la propria versione di MATLAB e sufficiente eseguire i seguenti passi:

1 effettuare il login su: https://campus3.uniroma1.it/campus/indexlogin.php, utilizzando le proprie credenziali (di solito il numero di matricola e lapassword utilizzata per l’account studenti.uniroma1.it);

2 cliccare quindi sulla voce Matlab;

3 copiare, dalla tabella in alto, l’Activation Key che dovra essere utilizzato infase di installazione del software;

4 cliccare il link Registration: si verra dirottati sul sito di MATLAB;

5 creare un account MATLAB;

6 selezionare la versione di MATLAB idonea al sistema operativo in uso eprocedere con il download;

7 installare MATLAB: quando richiesto inserire l’Activation Key precedente;

8 selezionare l’installazione completa, di tutti i componenti.

M. Scarpiniti Laboratorio di ProgrammazioneLezione 1 Introduzione al corso 13 / 19

IntroduzioneOttenere MATLAB

Download e installazioneRisorse

Risorse su MATLAB

Oltre ai testi su MATLAB gia citati, esistono altre risorse utili, soprattutto online.

Per iniziare si cita il sito web della Mathworks (https://it.mathworks.com/) che rappresenta il punto di partenza di una serie di risorse utili.

1 Tra queste si cita sicuramente la guida in linea (https://it.mathworks.com/help/index.html), che e la versione online di quella presente nelcalcolatore se si e installati MATLAB.

2 E anche utile citare MATLAB Answer (https://it.mathworks.com/matlabcentral/answers/index) in cui e possibile porre una domandao rispondere ad una domanda fatta da qualcuno. Tale sito e molto utileper creare una rete di contatto tra diversi utenti di MATLAB sparsi peril mondo.

M. Scarpiniti Laboratorio di ProgrammazioneLezione 1 Introduzione al corso 14 / 19

IntroduzioneOttenere MATLAB

Download e installazioneRisorse

Risorse su MATLAB

MATLAB Answer e comunque parte di MATLAB Central (https://it.mathworks.com/matlabcentral/index.html), che rappresenta un portalein cui i diversi utenti possono condividere codice per diverse funzionalita, porrequestioni sull’utilizzo del codice ed ottenere risposte.

Inoltre, MATLAB mette a disposizione un sito in cui sono disponibili esempi diutilizzo avanzato (https://it.mathworks.com/examples/) e un sito chepresenta diversi tutorial sull’utilizzo di MATLAB (https://it.mathworks.com/support/learn-with-matlab-tutorials.html). Molti di questi tu-torial sono disponibili come video che spiegano passo-passo come procedereautonomamente.

Infine, si cita la pagina principale del supporto di MATLAB (https://it.mathworks.com/support/) da cui e possibile navigare alle varie sezioni perottenere aiuto e/o informazioni.

M. Scarpiniti Laboratorio di ProgrammazioneLezione 1 Introduzione al corso 15 / 19

IntroduzioneOttenere MATLAB

Download e installazioneRisorse

Alternative a MATLAB

Esistono molte alternative a MATLAB, alcune delle quali rilasciate con licenzapubblica e quindi liberamente scaricabili, mentre altre sono prodotti commerciali.Alcune di queste alternative sono parzialmente compatibili con MATLAB.In particolare, tra i software open-source, si citano:

Octave: e un linguaggio per l’analisi numerica molto simile a MATLAB.Condivide con esso moltissime funzioni e presenta la medesima sintassi. Epossibile scaricarlo dal link: https://www.gnu.org/software/octave/.

Scilab: presenta un’interfaccia molto simile a MATLAB. Anche la sintassie simile a quella di MATLAB, ma i due programmi non sono completamen-te compatibili. E possibile scaricarlo dal link: http://www.scilab.org/.Scilab e affiancato dal programma Scicos (http://www.scicos.org/) chefunziona in modo equivalente a Simulink.

Julia: e un linguaggio di programmazione e multi-paradigma ad alte prestazio-ni dedicato in maniera particolare al mondo della programmazione scientifica.E possibile scaricarlo dal seguenti link: https://julialang.org/.

M. Scarpiniti Laboratorio di ProgrammazioneLezione 1 Introduzione al corso 16 / 19

IntroduzioneOttenere MATLAB

Download e installazioneRisorse

Alternative a MATLAB

Maxima: e in grado di eseguire calcoli numerici, simbolici, grafici e altre ope-razioni correlate. Sviluppato negli anni sessanta da parte del MIT, e fonda-mentalmente orientato al calcolo simbolico. E possibile scaricarlo dal seguentilink: http://maxima.sourceforge.net/.

FreeMat: e un software di analisi numerica compatibile con MATLAB eOctave, supportandone molti comandi. Una caratteristica molto comoda diFreeMat e la capacita di importare e usare nativamente funzioni da libreriedinamiche esterne. E possibile scaricarlo dal seguenti link: http://freemat.sourceforge.net/.

Sage: e un software di analisi numerica, sbilanciato pero verso le applicazionidi algebra lineare e il disegno di grafici di funzioni. E possibile scaricarlo dalseguenti link: http://www.sagemath.org.

M. Scarpiniti Laboratorio di ProgrammazioneLezione 1 Introduzione al corso 17 / 19

IntroduzioneOttenere MATLAB

Download e installazioneRisorse

Alternative a MATLAB

Tra i software commerciali si citano:

Mathematica: e un ambiente di calcolo simbolico e numerico (https://www.wolfram.com/mathematica/). E abbastanza lontano da MATLAB,essendo orientato al solo calcolo simbolico.

Maple: e un software abbastanza generico e quindi simile a MATLAB per ipossibili ambiti di applicazione (http://www.maplesoft.com/).

Mathcad: e un software principalmente sviluppato per il calcolo, la veri-fica e la documentazione di calcoli ingegneristici (http://www.ptc.com/engineering-math-software/mathcad). E molto lontano dalla filosofiadi MATLAB.

Derive: e un software che consente di eseguire moltissime operazioni qualicalcoli simbolici, numerici, algebrici, analitici e trigonometrici anche con vet-tori e matrici (http://www.chartwellyorke.com/derive.html). Ha piuche altro una valenza didattica.

M. Scarpiniti Laboratorio di ProgrammazioneLezione 1 Introduzione al corso 18 / 19

IntroduzioneOttenere MATLAB

Download e installazioneRisorse

Alternative a MATLAB

Infine e doverosa una menzione al linguaggio Python, completamente open-source.Python e un linguaggio di programmazione ad alto livello, orientato agli oggetti eadatto, tra gli altri usi, a sviluppare applicazioni da distribuire a terze parti. Einoltre molto utile e potente nel campo della computazione numerica e simulazio-ne. Un punto di forza di tale linguaggio e la presenza di numerosissime librerieper gli scopi piu diversi, soprattutto nel mondo del Machine Learning (l’insiemedelle tecniche che consentono ai dispositivi di apprendere automaticamente daidati e dall’ambiente senza essere esplicitamente programmati) e dell’intelligenzacomputazionale.

Tra le varie librerie, NumPy (dedicata all’algebra lineare) e molto simile a MATLAB

e fa da base a tutte le librerie scientifiche di Python. Alcuni IDE (come Spyder)

sono a loro volta fatti per emulare MATLAB stesso e semplificare il passaggio a

tale linguaggio.

M. Scarpiniti Laboratorio di ProgrammazioneLezione 1 Introduzione al corso 19 / 19