Introducción/repaso a MATLAB Procesamiento de Señales 1 Germán Montoya,...

48
Introducción/repaso a MATLAB Procesamiento de Señales 1 Germán Montoya, [email protected] Universidad Pontificia Bolivariana Medellín, Colombia 2010-II

Transcript of Introducción/repaso a MATLAB Procesamiento de Señales 1 Germán Montoya,...

Page 1: Introducción/repaso a MATLAB Procesamiento de Señales 1 Germán Montoya, jermaintz@gmail.comjermaintz@gmail.com Universidad Pontificia Bolivariana Medellín,

Introducción/repaso a MATLAB

Procesamiento de Señales 1Germán Montoya, [email protected]

Universidad Pontificia BolivarianaMedellín, Colombia

2010-II

Page 2: Introducción/repaso a MATLAB Procesamiento de Señales 1 Germán Montoya, jermaintz@gmail.comjermaintz@gmail.com Universidad Pontificia Bolivariana Medellín,

Contacto

• Germán [email protected]@upb.edu.cogmontoyao.260mb.comGermanmontoya.wordpress.com• Bloque 9 Oficina 211• Horario de atención:

lunes-viernes 10am-12m, 5-6pm

Page 3: Introducción/repaso a MATLAB Procesamiento de Señales 1 Germán Montoya, jermaintz@gmail.comjermaintz@gmail.com Universidad Pontificia Bolivariana Medellín,

Evaluación

• Laboratorio: 20% de materia• Informes: 6 50%• Preinformes (quiz): 6 25%• Posinformes (quiz): 6 25%• Bonificaciones

Page 4: Introducción/repaso a MATLAB Procesamiento de Señales 1 Germán Montoya, jermaintz@gmail.comjermaintz@gmail.com Universidad Pontificia Bolivariana Medellín,

Contenido del laboratorio

• Variable independiente• Convolución• Serie continua y discreta de Fourier• Transformada continua y discreta de

Fourier• Transformada rápida de Fourier• Modulación

Page 5: Introducción/repaso a MATLAB Procesamiento de Señales 1 Germán Montoya, jermaintz@gmail.comjermaintz@gmail.com Universidad Pontificia Bolivariana Medellín,

Variable independiente

Page 6: Introducción/repaso a MATLAB Procesamiento de Señales 1 Germán Montoya, jermaintz@gmail.comjermaintz@gmail.com Universidad Pontificia Bolivariana Medellín,

Variable independiente

Page 7: Introducción/repaso a MATLAB Procesamiento de Señales 1 Germán Montoya, jermaintz@gmail.comjermaintz@gmail.com Universidad Pontificia Bolivariana Medellín,

Series de Fourier

1

00

1

0

1

1

N

n

njkN

nk

nxN

a

enxN

a o

N

eanx

o

N

n

njkk

o

2

1

0

Page 8: Introducción/repaso a MATLAB Procesamiento de Señales 1 Germán Montoya, jermaintz@gmail.comjermaintz@gmail.com Universidad Pontificia Bolivariana Medellín,

Transformada rápida de Fourier

Page 9: Introducción/repaso a MATLAB Procesamiento de Señales 1 Germán Montoya, jermaintz@gmail.comjermaintz@gmail.com Universidad Pontificia Bolivariana Medellín,

Modulación

Page 10: Introducción/repaso a MATLAB Procesamiento de Señales 1 Germán Montoya, jermaintz@gmail.comjermaintz@gmail.com Universidad Pontificia Bolivariana Medellín,

Índice

• Interfaz• Números y Operaciones• Vectores y Matrices• Operaciones con Vectores y Matrices• Funciones para Vectores y Matrices• Sistemas de Ecuaciones• Gráficos 2D y 3D• Programación• Debugger

Page 11: Introducción/repaso a MATLAB Procesamiento de Señales 1 Germán Montoya, jermaintz@gmail.comjermaintz@gmail.com Universidad Pontificia Bolivariana Medellín,

Interfaz General

Page 12: Introducción/repaso a MATLAB Procesamiento de Señales 1 Germán Montoya, jermaintz@gmail.comjermaintz@gmail.com Universidad Pontificia Bolivariana Medellín,

Interfaz: workspace

Page 13: Introducción/repaso a MATLAB Procesamiento de Señales 1 Germán Montoya, jermaintz@gmail.comjermaintz@gmail.com Universidad Pontificia Bolivariana Medellín,

Interfaz: command window

Page 14: Introducción/repaso a MATLAB Procesamiento de Señales 1 Germán Montoya, jermaintz@gmail.comjermaintz@gmail.com Universidad Pontificia Bolivariana Medellín,

Interfaz: borrado de variables

Page 15: Introducción/repaso a MATLAB Procesamiento de Señales 1 Germán Montoya, jermaintz@gmail.comjermaintz@gmail.com Universidad Pontificia Bolivariana Medellín,

Interfaz: “limpiar” command window

Page 16: Introducción/repaso a MATLAB Procesamiento de Señales 1 Germán Montoya, jermaintz@gmail.comjermaintz@gmail.com Universidad Pontificia Bolivariana Medellín,

Interfaz: command history

Page 17: Introducción/repaso a MATLAB Procesamiento de Señales 1 Germán Montoya, jermaintz@gmail.comjermaintz@gmail.com Universidad Pontificia Bolivariana Medellín,

Números

– Números enteros: a=2– Números reales: x=-35.2 – Números potencias de 10: x=3e5 =

300000 ó 3*10^5 = 300000– Números Imaginarios: x= 1 + 2i =

1.0000 + 2.0000i– Euler: exp(1) = 2.7182– π: pi = 3.1416– Infinito: Inf=.

Page 18: Introducción/repaso a MATLAB Procesamiento de Señales 1 Germán Montoya, jermaintz@gmail.comjermaintz@gmail.com Universidad Pontificia Bolivariana Medellín,

Matrices

• Vector fila; elementos separados por espacios en blanco o comas >> v =[2 3 4]

• Vector columna: elementos separados por punto y coma (;)>> w =[2;3;4;7;9;8]

• Generación de vectores fila:• T=0:0.1:1

Page 19: Introducción/repaso a MATLAB Procesamiento de Señales 1 Germán Montoya, jermaintz@gmail.comjermaintz@gmail.com Universidad Pontificia Bolivariana Medellín,

Matrices

• Matrices n x m:– A=[1 2 3; 4 5 6; 7 8 9]– Información: • De un elemento: A(2,3)=6• De una fila: A(1,:)= 1 2 3• De una columna: A(:,2)= 2 5 8

–Matriz vacía: A=[]• Eliminación de una fila: A(1,:)=[]• Eliminación de una columna: A(:,2)=[]

Page 20: Introducción/repaso a MATLAB Procesamiento de Señales 1 Germán Montoya, jermaintz@gmail.comjermaintz@gmail.com Universidad Pontificia Bolivariana Medellín,

Matrices: Operadores

• Básicas: +, -, *, / A=[1 2 3 4 5]; k=2; B=[5 4 3 2 1] A/2= [0.5 1 1.5 2 2.5]; 2./A= [2 1 0.6667 0.5 0.4]; A./B= [0.2 0.5 1 2 5];

Page 21: Introducción/repaso a MATLAB Procesamiento de Señales 1 Germán Montoya, jermaintz@gmail.comjermaintz@gmail.com Universidad Pontificia Bolivariana Medellín,

Matrices

• Almacenamiento en vectores:>>a=[]

>>a=[a 1] >>a=[a 2]• Supresión en vectores:

>>a=[1 2 3 4 5]>>a=a(2:length(a)); %recorto el primer elemento del vector.Como recorto el último??

Page 22: Introducción/repaso a MATLAB Procesamiento de Señales 1 Germán Montoya, jermaintz@gmail.comjermaintz@gmail.com Universidad Pontificia Bolivariana Medellín,

Funciones

• A=[1 2 3 4 5]; B=[1 2 3;4 5 6]; Length(A)=5 [n,m]=size(B) n=2 y m=3 sum(A)=15; prod(A)=120 Max(A)=5; min(A)=1 A’=[1;2;3;4;5] Zeros(n,m); zeros(1,2)=[0 0] Ones(n,m); ones(1,2)=[1 1]

Page 23: Introducción/repaso a MATLAB Procesamiento de Señales 1 Germán Montoya, jermaintz@gmail.comjermaintz@gmail.com Universidad Pontificia Bolivariana Medellín,

Gráficos: estructura plot

>>Figure>>Plot(t,x) %primera gráfica>>Figure>>Plot(t,z) %segunda gráfica . . .

Page 24: Introducción/repaso a MATLAB Procesamiento de Señales 1 Germán Montoya, jermaintz@gmail.comjermaintz@gmail.com Universidad Pontificia Bolivariana Medellín,

Gráficos

• X=sin(2*pi*f*t); %señal senoidal• Plot(t,x); %curva azul (por defecto)• plot(t,x,'k'); %curva negra• plot(t,x,‘--k'); %curva líneas espaciadas• plot(t,x,'--ks‘); %figura en el valor grafico.

Otras figuras: d,h,o,p,s,x.• plot(t,x,'--ks','LineWidth',2); %ancho de la

linea• plot(t,x,'--ks', 'MarkerEdgeColor','r', …

'MarkerFaceColor','g')

Page 25: Introducción/repaso a MATLAB Procesamiento de Señales 1 Germán Montoya, jermaintz@gmail.comjermaintz@gmail.com Universidad Pontificia Bolivariana Medellín,

Gráficos

• plot(t,x,'--ks', 'LineWidth',2,'MarkerEdgeColor','r','MarkerFaceColor','g');

Page 26: Introducción/repaso a MATLAB Procesamiento de Señales 1 Germán Montoya, jermaintz@gmail.comjermaintz@gmail.com Universidad Pontificia Bolivariana Medellín,

Gráficos: error común

• Hacer 2 graficas en una misma figura:>> figure>> plot(t,x) >> plot(t,z) %sobrescribe al anterior plot

• Solución 1:>> figure>> hold on>> plot(t,x)>> plot(t,z)

Page 27: Introducción/repaso a MATLAB Procesamiento de Señales 1 Germán Montoya, jermaintz@gmail.comjermaintz@gmail.com Universidad Pontificia Bolivariana Medellín,

Gráficos: error común

• Solución 2:>> figure>> plot(t,x,t,z)ó>> plot(t,x,'--ks',t,z,'o','LineWidth',2)

%si quiero agregar atributos.

Page 28: Introducción/repaso a MATLAB Procesamiento de Señales 1 Germán Montoya, jermaintz@gmail.comjermaintz@gmail.com Universidad Pontificia Bolivariana Medellín,

Gráficos: estructura plot

>>Figure>>hold on>>plot(t,x)>>plot(t,z) . . .>>hold off

Page 29: Introducción/repaso a MATLAB Procesamiento de Señales 1 Germán Montoya, jermaintz@gmail.comjermaintz@gmail.com Universidad Pontificia Bolivariana Medellín,

Gráficos: ejes, abscisa y ordenada>>figure;>>plot(t,x);>>title(‘Señal');>>xlabel('Tiempo');>>ylabel(‘Señal x');>>ylim([-2 5]);>>xlim([-1 10]);

Page 30: Introducción/repaso a MATLAB Procesamiento de Señales 1 Germán Montoya, jermaintz@gmail.comjermaintz@gmail.com Universidad Pontificia Bolivariana Medellín,

Gráficos: ejes, abscisa(x) y ordenada(y)>>figure;>>plot(t,x);>>title(‘Señal');>>xlabel('Tiempo');>>ylabel(‘Señal x');>>axis([-2 2 -2 3]);

Page 31: Introducción/repaso a MATLAB Procesamiento de Señales 1 Germán Montoya, jermaintz@gmail.comjermaintz@gmail.com Universidad Pontificia Bolivariana Medellín,

Gráficos: texto dentro de la figura>>figure;>>plot(t,x);>>xlabel('tiempo');>>ylabel('señal');>>axis([-2 2 -2 3]);>>text(-0.9,0.5,'señal senoidal \

rightarrow','FontSize',10);

Page 32: Introducción/repaso a MATLAB Procesamiento de Señales 1 Germán Montoya, jermaintz@gmail.comjermaintz@gmail.com Universidad Pontificia Bolivariana Medellín,

Gráficos: etiquetas

>>figure;>>hold on;>>plot(t,x,'b');>>title('Señal X');>>xlabel('tiempo');>>ylabel('señal');>>axis([-0.5 1.5 -1.5 1.5]);

>>plot(t,z,'k');

>>h = legend('señal x','señal z',1);

Page 33: Introducción/repaso a MATLAB Procesamiento de Señales 1 Germán Montoya, jermaintz@gmail.comjermaintz@gmail.com Universidad Pontificia Bolivariana Medellín,

Gráficos: subplot

>>subplot(1,2,1);>>plot(t,x);>>subplot(1,2,2);>>plot(t,x,'--ks',

'LineWidth',2,'MarkerEdgeColor','r','MarkerFaceColor','g');

Page 34: Introducción/repaso a MATLAB Procesamiento de Señales 1 Germán Montoya, jermaintz@gmail.comjermaintz@gmail.com Universidad Pontificia Bolivariana Medellín,

Gráficos: estructura de subplot>>Figure;>>Subplot(n,m,i)>>Plot(t,x)>>Subplot(n,m,j)>>Plot(t,z)

.

.

>>Figure;>>Subplot(p,q,i) . .

Primera ventana

Segunda ventana

Page 35: Introducción/repaso a MATLAB Procesamiento de Señales 1 Germán Montoya, jermaintz@gmail.comjermaintz@gmail.com Universidad Pontificia Bolivariana Medellín,

Programación: if

• If condición Sentencia; End;• If condición

sentencia 1; Else sentencia 2; End;

Page 36: Introducción/repaso a MATLAB Procesamiento de Señales 1 Germán Montoya, jermaintz@gmail.comjermaintz@gmail.com Universidad Pontificia Bolivariana Medellín,

Operaciones Lógicas

• >, <, >=,<=,== (igual) • | (or), &(and) • ~= (no igual)• If fondos>0 tengo dinero en el cajero; end;

Page 37: Introducción/repaso a MATLAB Procesamiento de Señales 1 Germán Montoya, jermaintz@gmail.comjermaintz@gmail.com Universidad Pontificia Bolivariana Medellín,

Programación: if…elseif…elseif(fondos_banco1>0) sentencia1; elseif(fondos_banco2>0) sentencia2; elseif(fondos_banco3>0) sentencia3; else sentencia4;End;

Page 38: Introducción/repaso a MATLAB Procesamiento de Señales 1 Germán Montoya, jermaintz@gmail.comjermaintz@gmail.com Universidad Pontificia Bolivariana Medellín,

Programación: for

• for variable = expresión sentencias End• For bancos=1:3 cuota_manejo(bancos)=6000 end

Page 39: Introducción/repaso a MATLAB Procesamiento de Señales 1 Germán Montoya, jermaintz@gmail.comjermaintz@gmail.com Universidad Pontificia Bolivariana Medellín,

Programación: while

• While expresión sentencias End• While edad<60 Pensión=0 end

Page 40: Introducción/repaso a MATLAB Procesamiento de Señales 1 Germán Montoya, jermaintz@gmail.comjermaintz@gmail.com Universidad Pontificia Bolivariana Medellín,

Creación de Funciones

• M-file de la función “elevar al cuadrado”:

Page 41: Introducción/repaso a MATLAB Procesamiento de Señales 1 Germán Montoya, jermaintz@gmail.comjermaintz@gmail.com Universidad Pontificia Bolivariana Medellín,

Creación de Funciones

• M-file de la función:function [num_2] = g_potencia2(n)num_2=n*n;

• M-file que usa la función:clcclear all;close all;m=6;a=g_potencia2(m);

Page 42: Introducción/repaso a MATLAB Procesamiento de Señales 1 Germán Montoya, jermaintz@gmail.comjermaintz@gmail.com Universidad Pontificia Bolivariana Medellín,

Debugger

Page 43: Introducción/repaso a MATLAB Procesamiento de Señales 1 Germán Montoya, jermaintz@gmail.comjermaintz@gmail.com Universidad Pontificia Bolivariana Medellín,

Debugger

Page 44: Introducción/repaso a MATLAB Procesamiento de Señales 1 Germán Montoya, jermaintz@gmail.comjermaintz@gmail.com Universidad Pontificia Bolivariana Medellín,

Debugger

• Step: simulación paso a paso.• Step In: simulación paso a paso

pero entra a funciones.• Step Out: sirve para salir de una

función.

Page 45: Introducción/repaso a MATLAB Procesamiento de Señales 1 Germán Montoya, jermaintz@gmail.comjermaintz@gmail.com Universidad Pontificia Bolivariana Medellín,

Debugger

Page 46: Introducción/repaso a MATLAB Procesamiento de Señales 1 Germán Montoya, jermaintz@gmail.comjermaintz@gmail.com Universidad Pontificia Bolivariana Medellín,

Ejemplo: contar cuantos ceros tiene la matriza=[1 2 3;4 0 6;7 0 9];[n,m]=size(a);

Cont=0;for i=1:n for j=1:m if a(i,j)==0 cont=cont+1; end; end;end;

Page 47: Introducción/repaso a MATLAB Procesamiento de Señales 1 Germán Montoya, jermaintz@gmail.comjermaintz@gmail.com Universidad Pontificia Bolivariana Medellín,

Bonificación

• Dada la siguiente información de potencias de recepción (dBm) acerca de diferentes tecnologías en diferentes ambientes:

WiFi GSM CDMA EDGE

Outdoor 2.1 4.3 6.1 4.5

Indoor 3.2 3.8 4.5 4.6

Bosque 1.6 2.9 3.7 2.8

Concreto 0.5 2.0 2.8 3.0

Page 48: Introducción/repaso a MATLAB Procesamiento de Señales 1 Germán Montoya, jermaintz@gmail.comjermaintz@gmail.com Universidad Pontificia Bolivariana Medellín,

Bonificación

• Realice un programa en Matlab que calcule lo siguiente:– Promedio de potencias por cada ambiente.– Mejor tecnología por cada ambiente.– Para cada tecnología, definir el ambiente donde

mejor se desempeña.

• Nota: necesariamente debe inicializarse la matriz (4x4) de datos, y partir de allí desarrollar el programa.

• Valor de la Bonificación: 0.3 adicional a cualquier informe.