1 Introducción/repaso a MATLAB Procesamiento de Señales 1 Germán Montoya, [email protected]@gmail.com Universidad Pontificia Bolivariana Medellín, Colombia 2010-II
2 Contacto Germán Montoya [email protected] [email protected] gmontoyao.260mb.com Germanmontoya.wordpress.com Bloque 9 Oficina 211 Horario de atención: lunes-viernes 10am-12m, 5-6pm
3 Evaluación Laboratorio: 20% de materia Informes: 6 50% Preinformes (quiz): 6 25% Posinformes (quiz): 6 25% Bonificaciones
4 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
5 Variable independiente
6
7 Series de Fourier
8 Transformada rápida de Fourier
9 Modulación
10 Í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
11 Interfaz General
12 Interfaz: workspace
13 Interfaz: command window
14 Interfaz: borrado de variables
15 Interfaz: “limpiar” command window
16 Interfaz: command history
17 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= .
18 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
19 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)=[]
20 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];
21 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??
22 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]
23 Gráficos: estructura plot >>Figure >>Plot(t,x) %primera gráfica >>Figure >>Plot(t,z) %segunda gráfica.
24 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')
25 Gráficos plot(t,x,'--ks', 'LineWidth',2,'MarkerEdgeColor','r','MarkerFaceColor','g');
26 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)
27 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.
28 Gráficos: estructura plot >>Figure >>hold on >>plot(t,x) >>plot(t,z). >>hold off
29 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]);
30 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]);
31 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);
32 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);
33 Gráficos: subplot >>subplot(1,2,1); >>plot(t,x); >>subplot(1,2,2); >>plot(t,x,'--ks', 'LineWidth',2,'MarkerEdgeColor','r','MarkerFaceColor','g');
34 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
35 Programación: if If condición Sentencia; End; If condición sentencia 1; Else sentencia 2; End;
36 Operaciones Lógicas >, =,0 tengo dinero en el cajero; end;
37 Programación: if…elseif…else if(fondos_banco1>0) sentencia1; elseif(fondos_banco2>0) sentencia2; elseif(fondos_banco3>0) sentencia3; else sentencia4; End;
38 Programación: for for variable = expresión sentencias End For bancos=1:3 cuota_manejo(bancos)=6000 end
39 Programación: while While expresión sentencias End While edad
40 Creación de Funciones M-file de la función “elevar al cuadrado”:
41 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: clc clear all; close all; m=6; a=g_potencia2(m);
42 Debugger
43
44 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.
45 Debugger
46 Ejemplo: contar cuantos ceros tiene la matriz a=[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;
47 Bonificación Dada la siguiente información de potencias de recepción (dBm) acerca de diferentes tecnologías en diferentes ambientes: WiFiGSMCDMAEDGE Outdoor2.14.36.14.5 Indoor3.23.84.54.6 Bosque1.62.93.72.8 Concreto0.52.02.83.0
48 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.