introducción/repaso a matlab procesamiento de señales 2 germán montoya,...

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

Upload: berenguer-mazariegos

Post on 21-Jan-2015

18 views

Category:

Documents


0 download

TRANSCRIPT

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

Introducción/repaso a MATLAB

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

Universidad Pontificia BolivarianaMedellín, Colombia

2010-II

Page 2: Introducción/repaso a MATLAB Procesamiento de Señales 2 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 2 Germán Montoya, jermaintz@gmail.comjermaintz@gmail.com Universidad Pontificia Bolivariana Medellín,

Evaluación

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

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

Contenido del laboratorio

• Transformada de Laplace• Transformada Z• Transformada Discreta del

coseno y espectrogramas• Transformada de Hilbert• Filtros analógicos• Compresión de Datos

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

Transformada Discreta del coseno

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

Espectrogramas

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

Filtros analógicos

Page 8: Introducción/repaso a MATLAB Procesamiento de Señales 2 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 9: Introducción/repaso a MATLAB Procesamiento de Señales 2 Germán Montoya, jermaintz@gmail.comjermaintz@gmail.com Universidad Pontificia Bolivariana Medellín,

Interfaz General

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

Interfaz: workspace

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

Interfaz: command window

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

Interfaz: borrado de variables

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

Interfaz: “limpiar” command window

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

Interfaz: command history

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

Números

• No hace falta definir variables enteras, reales, etc. como en otros lenguajes– 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 16: Introducción/repaso a MATLAB Procesamiento de Señales 2 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:– Especificando el incremento h de sus

componentes v=a:h:b• T=0:0.1:1

– Especificando su dimensión n: linspace(a,b,n) (por defecto n=100) • T=linspace(0,1,11)

Page 17: Introducción/repaso a MATLAB Procesamiento de Señales 2 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 18: Introducción/repaso a MATLAB Procesamiento de Señales 2 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; A/B= 0.6364 porque??

Page 19: Introducción/repaso a MATLAB Procesamiento de Señales 2 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 20: Introducción/repaso a MATLAB Procesamiento de Señales 2 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 21: Introducción/repaso a MATLAB Procesamiento de Señales 2 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 22: Introducción/repaso a MATLAB Procesamiento de Señales 2 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 23: Introducción/repaso a MATLAB Procesamiento de Señales 2 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 24: Introducción/repaso a MATLAB Procesamiento de Señales 2 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)

Page 25: Introducción/repaso a MATLAB Procesamiento de Señales 2 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 26: Introducción/repaso a MATLAB Procesamiento de Señales 2 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 27: Introducción/repaso a MATLAB Procesamiento de Señales 2 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 28: Introducción/repaso a MATLAB Procesamiento de Señales 2 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 29: Introducción/repaso a MATLAB Procesamiento de Señales 2 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 30: Introducción/repaso a MATLAB Procesamiento de Señales 2 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 31: Introducción/repaso a MATLAB Procesamiento de Señales 2 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 32: Introducción/repaso a MATLAB Procesamiento de Señales 2 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 33: Introducción/repaso a MATLAB Procesamiento de Señales 2 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 34: Introducción/repaso a MATLAB Procesamiento de Señales 2 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 35: Introducción/repaso a MATLAB Procesamiento de Señales 2 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 36: Introducción/repaso a MATLAB Procesamiento de Señales 2 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 37: Introducción/repaso a MATLAB Procesamiento de Señales 2 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 38: Introducción/repaso a MATLAB Procesamiento de Señales 2 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 39: Introducción/repaso a MATLAB Procesamiento de Señales 2 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 40: Introducción/repaso a MATLAB Procesamiento de Señales 2 Germán Montoya, jermaintz@gmail.comjermaintz@gmail.com Universidad Pontificia Bolivariana Medellín,

Debugger

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

Debugger

Page 42: Introducción/repaso a MATLAB Procesamiento de Señales 2 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 43: Introducción/repaso a MATLAB Procesamiento de Señales 2 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 2 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 45: Introducción/repaso a MATLAB Procesamiento de Señales 2 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 46: Introducción/repaso a MATLAB Procesamiento de Señales 2 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.