A brief introduction to MATLAB (and Octave) for electrical communications (Part 2) Corso di Laboratorio Interdisciplinare II

Documenti analoghi
Introduzione a Matlab

MATLAB - Programmazione - 2. Antonino Polimeno

MATLAB parte II. Array

MATLAB:Condizionamento Sistemi Lineari.

Capitolo 6 - Array. Copyright by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved.

Introduzione all ambiente MATLAB. Richiami II. Calcolo Numerico - A.A. 2008/09

Prova di Laboratorio del [ Corso A-B di Programmazione (A.A. 2004/05) Esempio: Media Modalità di consegna:

Stringhe. Prof. Lorenzo Porcelli

Advanced level. Corso Matlab : Samuela Persia, Ing. PhD.

Italian Round WPF Sudoku Grand Prix 2013 at Logic Masters

UNIVERSITÀ DEGLI STUDI DI PAVIA FACOLTÀ DI INGEGNERIA. Introduzione a Matlab

Arrays. Vector array. Matrix array. Row vector. 2D matrix. 1 2 Column vector

Esercizi di MatLab. Sommario Esercizi di introduzione a MatLab per il corso di Calcolo Numerico e Laboratorio, A.A

Question 1: introduction to computer programming

Appunti sull uso di matlab - I

A.S. 2011/2012. Circuito semaforico da incrocio. Corso di Elettronica. Dipartimento di Elettrotecnica

8 Introduzione MATLAB

sensori per cilindri magnetic sensors for cylinders

Introduzione a Matlab Costruzione di Macchine 2 Prof. Sergio Baragetti

Fondamenti di Informatica

Cognome e Nome : Corso e Anno di Immatricolazione: Modalità di Laboratorio (Progetto/Prova) :

Appendice A. Conduttori elettrici, sezioni e diametri Appendix A. Wires, Sizes and AWG diameters

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

Prove d esame Esercizi con Matlab

Capitolo 5 - Funzioni

sensori per cilindri magnetic sensors for cylinders Schema di collegamento: 2 fili Wiring diagram: 2 wires RS2-A RS1-A RS3-A RS4-A RS5-C Modello Model

Laboratorio di Matlab

Laboratorio Algoritmi 2014 Secondo Semestre

CORSO DI LABORATORIO DI INFORMATICA

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

Scuola di Calcolo Scientifico con MATLAB (SCSM) 2017

MATLAB (1) Introduzione e Operazioni con array

Metodi numerici con elementi di Programmazione A.A

A.A. 2006/2007 Laurea di Ingegneria Informatica. Fondamenti di C++ Horstmann Capitolo 3: Oggetti Revisione Prof. M. Angelaccio

SRT064 BTH SRT051 BTH SRT052 BTH

Stored Procedures. Massimo Mecella Dipartimento di Ingegneria informatica automatica e gestionale Antonio Ruberti Sapienza Università di Roma

Combinazioni serie IL-MIL + MOT

Informatica B. Facoltà di Ingegneria Industriale Laurea in Ingegneria Energetica, Meccanica e dei Trasporti. Prof. Marco Masseroli

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

Scilab. Matrici Bidimensionali. Corso di Informatica CdL: Chimica. Claudia d'amato.

Si faccia riferimento all Allegato A - OPS 2016, problema ricorrente REGOLE E DEDUZIONI, pagina 2.

Fondamenti di Informatica

Corso di Matematica per la Chimica

variabili, vettori, matrici e indici a = 7; a a(1) a(1,1) a(3) = 2 a(2,2) = 1 a(2,2)

variabili, vettori, matrici e indici variabili, vettori, matrici e indici Tavola pitagorica (tabelline) Tavola pitagorica (tabelline)

A review of some Java basics. Java pass-by-value and List<> references

Fondamenti di informatica

Scuola Sec. Primo Grado FINALE IND. - 14/15 ESERCIZIO 1

Informatica Applicata al Suono Tutorial Matlab

Università degli studi di Bologna Facoltà di Economia. (a) 2 (b) E (c) 4 (d) 6. (c) solo i) (d) ii) e iii)

3. Matrici e algebra lineare in MATLAB

Introduzione a MATLAB

DOLFINI DILETTA MATRICOLA

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

Tipici tempi di esecuzione. Martedì 7 ottobre 2014

EDI Manuale Sistemista. EDI Manuale Sistemista

Rapida Introduzione all uso del Matlab Ottobre 2002

Inversa di una matrice quadrata. L operatore inv() inverte una matrice quadrata non singolare (cioè in cui il determinate è diverso da zero).

Informatica B

MATRIX collection maniglie per mobili.handles for furniture

Complementi di Matematica e Calcolo Numerico A.A Laboratorio 1 - Introduzione a MATLAB

Scuola di Calcolo Scientifico con MATLAB (SCSM) 2017 Palermo Luglio 2017

Reti e Protocolli rassegna (II)

Corso di Laurea in Matematica, Università di Roma La Sapienza Corso di ANALISI NUMERICA Esercitazioni in Laboratorio, 16 Maggio 2011

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

MATLAB - Introduzione Enrico Nobile. MATLAB - Introduzione. E. Nobile - DINMA - Sezione di Fisica Tecnica, Università di Trieste

/*dichiarazioni*/ // le frasi sono contenute in stringhe, cioè array di char char f1[max]; int i, giusto,len;

RENDICONTI LINCEI MATEMATICA E APPLICAZIONI

A NOVEL FEM METHOD FOR PREDICTING INSTABILITY

Le Basi di Dati Attive

Basi di Dati: Corso di laboratorio

Lo sniffer. questo sconosciuto! Corso di Reti di Calcolatori Architetture e Servizi A.A. 2010/11. Introduzione allo sniffing TCP

REGISTRATION GUIDE TO RESHELL SOFTWARE

IL TEOREMA DI BOEHM-JACOPINI

Informatica Avanzata per la Finanza

Introduzione. MATLAB è l acronimo di MATrix LABoratory

UNIVERSITÀ DEGLI STUDI DI PAVIA FACOLTÀ DI INGEGNERIA. Matlab: esempi ed esercizi

Write Event 10 in Metrology Event Log

Strutture di controllo del flusso di esecuzione in assembler. MC68000: Status Register

% Scrivere un programma che inizializza un vettore monodimensionale di interi a = [ ]

Portale Materiali Grafiche Tamburini. Grafiche Tamburini Materials Portal

INTECNO TRANSTECNO. MICRO Encoder ME22 ME22 MICRO Encoder. member of. group

Calcolo Numerico (A.A ) Lab n. 12 Approssimazione

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

VBA Principali Comandi

Programmazione I - Laboratorio

Fondamenti di Informatica T-1 Modulo 2

Capitolo 3 Sviluppo di Programmi Strutturati

Introduzione a MATLAB 23 febbraio 2009

Pentair ensures that all of its pumps (see Annex) affected by the above mentioned Regulation meet the 0,1 MEI rating.

Fisher Linear discriminant analysis (pag 228)

Corso di Laboratorio di Sistemi Operativi

EML-16 EML-16. Pulses concentrator. Concentratore impulsi MODBUS COMMUNICATION PROTOCOL PROTOCOLLO DI COMUNICAZIONE MODBUS

Esercitazioni di Fondamenti Informatica - Modulo A 1

ENGINE COMPONENT DESIGN Cap. 7 AIAA AIRCRAFT ENGINE DESIGN R03-23/10/2013

Measurement. Picture 1. Picture 2

Analisi dei segnali nel dominio delle frequenze 21/12/ /01/2007

Scrivere codice (in un linguaggio di alto livello) veloce

15 Riepilogo di esercizi in MATLAB

1 (7) 2 (6) 3 (6) 4 (7) 5 (6)

Transcript:

A brief introduction to MATLAB (and Octave) for electrical communications (Part 2) Corso di Laboratorio Interdisciplinare II 1

if, then and elseif The general form of the if statement is: if <expression> <statement>, <statement>, elseif <expression> <statement>, <statement>, else <statement>, <statement>, end Example a=3; b=floor(5*rand(1,1); if a>b fprintf('a=%d larger than b=%d/n',a,b); elseif a==b fprintf('a=%d equal to b=%d/n',a,b); else fprintf('a=%d smaller than b=%d/n',a,b); end 2

For and While for <variable=expression> <statement>, <statement>, end while <expression> <statement>, <statement>, end N=5; for i=1:n for j=1:n A(i,j)=1/(i+j-1); end end b=0; a=10; while (a>3) b=b+1; a=a-b; end 3

Function rand rand uniformly distributed random numbers. rand(n) is an N-by-N matrix with random entries, chosen from a uniform distribution on the interval (0.0,1.0). rand(m,n) is a M-by-N matrix with random entries on the same interval. octave-3.2.3:8> V=rand(3) V = 0.885006 0.985149 0.193368 0.060968 0.912635 0.719775 0.894609 0.040091 0.480421 octave-3.2.3:9> W=rand(1,3) W = 0.50589 0.70535 0.15719 4

Function zeros zeros zeros array. zeros(n) is an N-by-N matrix of zeros. zeros(m,n) is an M-by-N matrix of zeros. octave-3.2.3:8> V=zeros(4) V = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 octave-3.2.3:9> W=zeros(1,3) W = 0 0 0 5

Function ones ones Ones array. ones(n) is an N-by-N matrix of ones ones(m,n) is an M-by-N matrix of ones. octave-3.2.3:8> V=ones(4) V = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 octave-3.2.3:9> W=ones(1,3) W = 1 1 1 6

Function find find Finds indices of nonzero elements. I = find(x) returns the indices of the vector X that are non-zero. Note that X can be the result of the evaluation of an expression Example: octave-3.2.3:17> A=floor(200*rand(1,10)) A = 83 142 81 69 119 3 36 87 10 88 octave-3.2.3:18> X=A>100 X = 0 1 0 0 1 0 0 0 0 0 octave-3.2.3:19> I=find(X) I = 2 5 octave-3.2.3:20> 7

Function length, max e min length: Length of vector. For a vector, length(x) returns the number of elements in X. For a matrix NxM, length(x) returns the largest dimension between N and M. max: Largest component. For a vector, max(x) returns the largest element in X. For a matrix, max(x) returns a row vector containing the largest element of each column in X. min: Smallest component. For a vector, min(x) returns the smallest element in X. For a matrix, min(x) returns a row vector containing the smallest element of each column in X. 8

Function sort (1/2) sort: sorts the elements of a vector in ascending or descending order For a vector, sort(x) sorts the elements of X in ascending order. For a matrix, sort(x) sorts the elements of each column of X in ascending order. >> V=[7 5 9 2 4]; >> sort(v) 2 4 5 7 9 >> >> A=[7 5 2; 4 3 5; 9 8 3] A = 7 5 2 4 3 5 9 8 3 >> sort(a) 4 3 2 7 5 3 9 8 5 >> 9

Function sort (2/2) The default behavior of sort can be modified with additional inputs sort(a,dim) sorts the elements of a matrix A in ascending order by dimension dim (dim=1: columns (default), dim=2: rows). sort(a, descend ) sorts each column of a matrix A in descending order sort(a,2, descend ) sorts each row of a matrix A in descending order >> A=[0 23 12; 5 3 6] A = 0 23 12 5 3 6 >> sort(a,2) 0 12 23 3 5 6 >> >> A=[0 23 12; 5 3 6] A = 0 23 12 5 3 6 >> sort(a,2, descend ) 23 12 0 6 5 3 >> 10

Function round, ceil e floor round: Round towards nearest integer. floor: Round towards the integer immediately lower. ceil: Round towards plus the integer immediately higher. octave-3.2.3:30> test= [0.4 0.7] test = 0.40000 0.70000 octave-3.2.3:31> round(test) 0 1 octave-3.2.3:32> floor(test) 0 0 octave-3.2.3:33> ceil(test) 1 1 octave-3.2.3:34> 11

Function size size: Size of each dimension of a vector/matrix For vectors, same as length For matrices, different behavior >> A=[7 5 2; 4 3 5;] A = 7 5 2 4 3 5 >> size(a) 2 3 >> length(a) 3 >> size(a,1) 2 12

Function sum sum: Sum of elements of a vector/matrix For vectors, it returns the sum of all elements For matrices, it returns a row vector containing the sums of the elements of each row Behavior for matrices can be changed as seen for the sort command >> V=[1 2 3] V = 1 2 3 >> sum(v) 6 >> A=[1 2 3; 2 4 6] A = 1 2 3 2 4 6 >> sum(a) 3 6 9 >> sum(a,1) 3 6 9 >> sum(a,2) 6 12 >> 13

Function bar bar: Bar graph Typically used when the values are not samples of a function >> V=[8 9 10 6 4 3]; >> bar(v) >> title('bar graph title') >> xlabel('categories') >> ylabel('values') >> 14

Example of application of Matlab to electrical communications

Eye diagram The eye diagram is useful in analyzing the performance of a numerical link using a baseband impulsive modulation: The samples at the receiver (neglecting noise) can be written as follows: Leading to the Nyquist conditions in the time domain: Which translate in the following condition in the frequency domain: 16

Eye diagram Example of G(f) meeting the Nyquist condition: Example of G(f) NOT meeting the Nyquist condition: 17

Eye diagram A typical family of impulse responses that meet the Nyquist criterion is the raised cosine one: The shape of G(f) and g(t) as a function of the roll-off is the following: g(t) G(f) 18

Eye diagram The performance of such a system can be analyzed by drawing the eye diagram, which provides a measure of the robustness of the system to noise and timing errors at the receiver: 19

Eye diagram Implementation in Matlab: Main script eyediagram.m Function generatelevelsequence.m Function pulsegenerator.m Function noiseset.m Code available at: http://newyork.ing.uniroma1.it/~lucadn/courses/labint/20110112_li_matlab_code.zip 20

Esercizio (45 minuti circa) Si chiede di produrre uno script Matlab/Octave in grado di manipolare un numero num di sequenze di numeri interi positivi (incluso lo 0) come indicato nei seguenti quesiti: 1) Si costruisca una matrice A contenente le num sequenze, una per riga, sapendo che ogni sequenza deve avere lunghezza pari a lseq e può contenere valori compresi tra 0 e valmax. Si definisce come energia di una sequenza la somma dei quadrati degli elementi che compongono la sequenza. Sulla base di tale definizione, si stampi su schermo il valore di energia massimo tra quelli delle sequenze presenti nella matrice A e la sequenza a cui risulta associato (ad esempio: il valore di energia massimo è Emax e caratterizza la riga x della matrice ). N.B.: Si faccia uso a questo proposito di una funzione specifica che prenda in ingresso un vettore e restituisca il valore della sua energia. 2) Si crei un vettore contenente le energie delle lseq sequenze rappresentate dalle colonne di A e lo si ordini in senso crescente: se ne stampino infine su schermo i valori. 3) Si crei un grafico usando la funzione bar in modo da rappresentare un istogramma che rappresenti in ordinata le energie relative alle sequenze corrispondenti alle colonne di A (le stesse ricavate e ordinate al punto 2)) con il vincolo di rappresentare unicamente le energie con valore superiore alla media delle energie delle colonne di A. In ascissa è sufficiente inserire l indice del valore rappresentato all interno del vettore creato al punto 2) N.B.: si assumano i seguenti valori; num=3, lseq=10, valmax= 20 21

Script threshscript (Esercizio per casa) Si chiede di produrre uno script che generi 100 valori diversi tra 0 e 100 e calcoli le percentuali di superamento di due differenti soglie. Dati il valore minimo e quello massimo tra i 100 generati: la prima soglia supera il valore minimo di una quantità pari a 3/5 della differenza tra massimo e minimo la seconda soglia supera il valore minimo di una quantità pari a 4/5 della differenza suddetta. Le due soglie devono essere generate da una funzione che prenda in ingresso i valori minimo e massimo e restituisca le soglie stesse (una funzione che genera più di un output ha una dichiarazione del tipo : function [out1, out2] = func (a, b) Lo script deve utilizzare la funzione di cui al punto precedente e produrre un grafico che visualizzi i campioni in gioco e le due soglie generate. Si chiede di produrre lo script 2 volte: la prima usando cicli e if statements, la seconda utilizzando la funzione find 22

Reference material Slides available at: http://newyork.ing.uniroma1.it/~lucadn/teaching.html 23