Informatica Applicata al Suono Tutorial Matlab

Похожие документы
Introduzione all ambiente MATLAB. Richiami II. Calcolo Numerico - A.A. 2008/09

Introduzione al MATLAB c Parte 3 Script e function

Metodi di Analisi dei Dati Sperimentali. AA 2009/2010 Pier Luca Maffettone. Elementi di Matlab

Introduzione a Matlab

MATLAB c. Lucia Gastaldi Dipartimento di Matematica Lezione 4 (15 ottobre 2003)

Esercitazione 1: Introduzione a MATLAB

1) Matlab e simulazione. 2) Esempi di utilizzo. Mauro De Sanctis corso di Informazione e Codifica Università di Roma Tor Vergata

MATLAB Elementi di grafica Costrutti di programmazione

Le basi del linguaggio Java

Introduzione allo Scilab Parte 1: numeri, variabili ed operatori elementari

CORSO DI LABORATORIO DI INFORMATICA

MATLAB I/O. Informatica B - A.A. 2012/2013 ACQUISIZIONE DI INPUT DA TASTIERA

Prove d esame Esercizi con Matlab

Fondamenti di Informatica

UD4 - MATLAB. M-file. Efficienza degli algoritmi. Formati d uscita

CORSO DI LABORATORIO DI INFORMATICA

Matlab 5. Funzioni. Slide basate sul corso di C. Blundo. A.A. 2010/ GPersiano. Laboratorio di Informatica per Fisici 1

Introduzione a Matlab. Renato Mainetti

Matlab. Istruzioni condizionali, cicli for e cicli while.

Introduzione al MATLAB c Parte 1

Matlab. Ing. Francesco Licandro. Corso Fondamenti di Telecomunicazioni A.A

SISTEMI DI CONTROLLO Ingegneria Meccanica e Ingegneria del Veicolo

Fondamenti di Informatica 6. Algoritmi e pseudocodifica

Introduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software

Scilab. Introduzione a Scilab - Vettori. Corso di Informatica CdL: Chimica. Claudia d'amato.

Lab 01 Introduzione a Codelite

ESERCITAZIONE MATLAB

Algoritmi, Strutture Dati e Programmi. UD 2.b: Programmazione in Pascal

Il computer. Il case e l'unità di elaborazione. Il computer, una macchina aggiornabile.

Il programma OCTAVE per l insegnamento dell algebra lineare nella Scuola Secondaria p. 1

LabVIEW (Laboratory Virtual Instrument Engineering Workbench)

Lezione 5: Controllo del flusso e costrutti avanzati

MATLAB (II parte) Commenti. Input/Output (I/O) Istruzioni di Input/Output (I/O)

Calcolo Numerico I - a.a Laboratorio 1 - Introduzione a MATLAB

Debugger. Marco Alberti Programmazione e Laboratorio, A.A

Funzioni, Stack e Visibilità delle Variabili in C

Corso di Informatica di Base

Università degli studi di Roma Tor Vergata Ingegneria Medica Informatica I Programma del Corso

Algoritmi e basi del C Struttura di un programma

Laboratorio di Matlab

Laboratorio Algoritmi 2014 Secondo Semestre

Appunti di Laboratorio di Calcolo Numerico con Matlab

STRUTTURE DI CONTROLLO DEL C++

Breve Manuale di Riferimento sulla Sintassi Linguaggi C++ e FORTRAN

Programmazione a blocchi. Algobuild Prof. Sergio Roselli

Mini-Corso di Informatica

Matlab : le basi. Vediamo ora un esercizio di calcolo: Il volume di una sfera è dato da V=4*π*r 3 /3 dove r è il raggio.

Matlab. Vettori, funzioni matematiche e grafici.

Introduzione a Matlab (e al Calcolo Numerico)

FREEFEM++ Marcello Bellomi. 18 Aprile Università di Verona FREEFEM++

Introduzione a Matlab Costruzione di Macchine 2 Prof. Sergio Baragetti

Costrutti condizionali e iterativi

Perché il linguaggio C?

RELAZIONE DELLA PROVA DI LABORATORIO DI INFORMATICA

PON Liceo Scientifico Leonardo da Vinci. Vallo della Lucania

Tutorial di Matlab. Davide Manca Calcoli di Processo dell Ingegneria Chimica Politecnico di Milano

Scuola di Calcolo Scientifico con MATLAB (SCSM) 2017

Introduzione al linguaggio Matlab - 1. A) Command Window: é la nestra in cui si eseguono in comandi.

Unità Didattica 4 Linguaggio C. Vettori. Puntatori. Funzioni: passaggio di parametri per indirizzo.

Corso di Visione Artificiale. Matlab per Visione. Samuel Rota Bulò

VBA Principali Comandi

Javascript. - Corso Web Design - Media Dream Academy. Stefano Gaborin

Corso di Matematica per la Chimica

Laboratorio di MatLab

Fondamenti di Informatica

Esercizi d esame. Elena Tundo

Fondamenti di Informatica

Транскрипт:

Prof. Mario Malcangi malcangi@di.unimi.it

MATLAB è un linguaggio di alto livello e un ambiente interattivo per il calcolo numerico, l'analisi e la visualizzazione dei dati e la programmazione. MATLAB consente di modellare applicazioni di elaborazione numerica del segnale (audio digitale) e di esportarle su piattaforme di computing target. MATLAB è basato su un interfaccia grafica che si presenta alla sua attivazione e che consente allo sviluppatore di interagire in maniera completa. Informatica Applicata al Suono Cosa è MATLAB

L interfaccia grafica di Matlab consiste principalmente di tre finestre: Interfaccia grafica Workspace Command History Command Window Il Workspace visualizza tutto lo stato di allocazione dei dati. Questi compaiono in questa finestra appena creati, sono visualizzabili e modificabili relativamente al contenuto. La Command Window consente di inserire comandi (sia di sistema, sia di linguaggio) eseguibili da Matlab. Questa consente anche di visualizzare messaggi di sistema e risultati dell esecuzione delle istruzioni del linguaggio (è l equivalente del I/O standard). La Command History visualizza la sequenza di comandi immessi nella Command Window(log).

Come funziona Un programma Matlab (detto anche Script), è una sequenza mista di istruzioni di programmazione e di comandi di sistema. Le istruzioni di programmazione sono simil-c. E bene tenere presente comunque che Matlab è un linguaggio di programmazione matriciale e non scalare, quindi la sua variabile tipica è la matrice. Lo scalare è considerato una matrice 1x1. Un altra particolarità di Matlab è che gli array sono indicizzati a partire da 1 (e non d 0 come nel linguaggio C). Questo, soprattutto per il trattamento dei segnali non è naturale e porta a possibili errori di indicizzazione (per esempio, al tempo t=0 corrisponde un indice n=1). I commenti in Matlab sono preceduti dal simbolo%, quindi, qualsiasi linea di testo preceduta da tale simbolo viene ignorata durante l esecuzione. Matlab è un linguaggio interpretato e valuta le istruzioni al momento dell esecuzione.

Matlab fa riferimento per default alla Current Directory che considera directory di lavoro. In questa directory devono essere presenti tutti i files cui fa riferimento il programma. I programmi eseguibili di Matlab hanno stensione.m Anche se la linea di comando della Command Window consente di eseguire qulasiasi istruzione del linguaggio di modellazione Matlab, la sequenza di programmazione va editatainunfileditesto.m I file di testo.m permettono di scrivere la sequenza di programmazione in modo che questa possa essere eseguita in free-running mode oppure in debug mode. In debug mode i principali strumenti di controllo dell esecuzione sono i breakpoint (attivabili o disattivabili a fianco della linea di istruzione) e gli step. La visualizzazione del valore delle variabili è possibile o tramite il workspace o posizionando il cursore sulla variabile. Il programma editato e salvato con un nome (nome.m) può contenere sia istruzioni di calcolo e controllo del flusso di programma, sia script, cioè sequenze di comandi dell ambiente MATLAB. Il nome del file serva a referenziare il programma per la sua esecuzione tramite la command window, oppure all interno di altri programmi Editing dei programmi

Particolarità del linguaggio Matlab è un linguaggi di programmazione simile al linguaggio «C» con alcune differenze formali ed alcune sostanziali. Utilizza un linguaggio di programmazione interpretato Le variabili sono fondamentalmente di tipo vettoriale multidimensionale (matrici) Gli indici delle matrici hanno come minimo valore «1» Le variabili scalari sono trattate come caso particolare di matrici con un solo elemento I calcoli e le variabili sono in doppia precisione Le variabili vengono create al momento in cui sono referenziate nel programma e il relativo spazio di memoria è statico (fino alla cacellazione fisica con il comando «clear») E un linguaggio di programmazione vettoriale, quindi consente di trattare dati vettoriali con operazioni scalari Utilizza operatori utili al trattamento di dati vettoriali, per esempio «:». >> A = [10, 20, 30; 100, 200, 300] A = 10 20 30 100 200 300 >> size(a) >> 2 3

Principali comandi «help» consente di avere in linea le spiegazioni su una istruzione/comando «clear» - consente rimovere le variabili allocate in memoria «;» - chiude una linea di istruzione/comando e inibisce l output sulla command window «:» - definisce una gamma di valori da.. a. «%» - commenta l intera riga «plot» visualizza graficamente i dati «play» - consente di riprodurre in forma audio i dati «size» fornisce le dimensioni di un dato multidimensionale (matrice) «length» fornisce le dimensioni di un dato monodimensionale (vettore) >> B = 1:10 1 2 3 4 5 6 7 8 9 10 >> length(b) % numero degli elementi di B 10 >> size(b) % dimensioni di B 1 10 >> B=B+3; >>

Variabili e funzioni predefinite Alcune variabili e funzioni ricorrenti sono predefinite come elementi del linguaggio: >> pi «pi» - costante pigreco: 3.14... radianti «Inf» qualsiasi numero diviso 0 «NaN» - not a number: qualsasi numero indeterminato «sin, cos, tan asin, acos» - funzioni trigonometriche «sinh, cosh, asinh, acosh» funzioni iperboliche «sqrt, log, log10, exp» - funzioni non lineari «mod» resto divisione intera (modulo) 3.1416 >> sin (pi/4) 0.7071 >> rem(7, 4) 3 >>

I principali cicli iterativi sono: Ciclo «for» Informatica Applicata al Suono Controllo del flusso di programma (cicli iterativi) Step default : (Es: n=1:10 incrementa di +1) Step qualsiasi (Es.n=1:2:10 incrementa di 2) a=0; for n=1:10 a=a+b(n); end Ciclo «while» Step default : (Es: n=1:10 incrementa di +1) Step qualsiasi (Es.n=1:2:10 incrementa di 2) n=1; a=0; while (x <11) a=a+b(n); end

I principali cicli iterativi sono: Informatica Applicata al Suono Controllo del flusso di programma (istruzioni condizionali) Condizione semplice «if» If x = = 0 x=inf; Operatori: < > <= >= == = elseif end x=y/x; «NOT» &&«AND» «OR» Condizione multipla «switch» switch x end case 1 disp ( massimo ); case 0 disp ( neutro ); case -1 disp ( neutro );

Visualizzazione e riproduzione audio Output grafico «plot» Output audio «wavplay» Fs = 44100; Ts=1/Fs; for n=0:fs x(n+1) = sin(2*pi*440*n*ts); end plot (x); wavplay(x, Fs);