Vous êtes sur la page 1sur 10

UNIVERSIDAD NACIONAL DE LOJA

CARRERA DE ELECTRÒNICA Y TELECOMUNICACIONES

Nombre: Juan Jiménez Merino


Docente: Ing. Diego Orellana Paralelo: sexto “A”
Laboratorio de Procesamiento Digital de Señales
Practica 1

1 Tema.- Introducción a Matlab

2.- Objetivos.-
 Que el alumno se familiarice con el entorno de trabajo de Matlab
 Que el estudiante realice operaciones básicas con Matlab
 Que el alumno genere y grafique señales en tiempo continuo y discreto
 Brindar al estudiante una breve idea de las aplicaciones de DSP

3.- Materiales y Reactivos


 Texto Guía de la asignatura

4.- Equipos y Herramientas


 Computador con Paquete informático Matlab

5.- Instrucciones

 Colocar las mochilas en los casilleros
 Prohibido consumo de alimentos
 Prohibido equipo de diversión, celulares etc.
 Prohibido jugar
 Prohibido mover o intercambiar los equipos de los bancos de trabajo
 Uso adecuado de equipos

6.- Actividades a Desarrollar

 Generar en Matlab escalares, vectores y matrices


 Generar la siguiente función senoidal utilizando tres métodos diferentes.

 Realizar el apartado anterior en un script y como una función (m-file)


 Graficar la señal senoidal generada como una señal continua y como una señal en tiempo
discreto
 Generar una señal de eco a un archivo de audio
 Eliminar la señal de eco utilizando filtrado digital

7.- Fundamentos Teóricos

MATLAB es un paquete de software que proporciona un entorno potente y amigable para cálculo
y simulación. El entorno de programación ofrece operaciones matemáticas básicas más una serie
de procedimientos operacionales (conocidos como funciones). La programación en MATLAB
permite realizar de forma directa diversas tareas que requieren cierta complejidad
computacional. Las herramientas de programación abarcan operaciones matemáticas básicas y
también un gran conjunto de procedimientos computacionales que se diseñan para tareas
específicas. Así, el usuario tiene la opción de desarrollar un programa a medida o de llamar a
cualquiera de las funciones de propósito especial que residen en los ficheros de MATLAB.
Además, un potente procesador gráfico permite visualizaciones de alta calidad de las variables
en diversos formatos. Programando en MATLAB, cada variable se supone que es una matriz y no
existe ningún requisito para el dimensionamiento y declaración de variables. Las dimensiones de
la matriz se definen mediante una lista explícita de elementos o por reglas que se aplican a las
operaciones matemáticas.
Ayuda de Matlab. Básicamente, existen dos formas de utilizar la ayuda de Matlab: a través de la
ayuda en línea; o bien, a través del navegador de ayuda. Para acceder a la ayuda en línea basta
con teclear en la línea de comandos: >> help función donde “función” sería el nombre de la
función sobre la que necesitamos la ayuda. Por otro lado, para acceder a la ayuda a través del
navegador, es necesario seleccionar la opción “Matlab help” (Figura 1). Este segundo modo de
ayuda resulta bastante más potente y eficaz que la primera añadiendo en muchos casos ejemplos
de utilización.

Fig1.Interfaz gráfica de Matlab

Variables y matrices. Matlab no requiere ningún tipo de declaración de variables sino que, una vez
que se utiliza una variable, Matlab crea la respectiva variable reservando el espacio de memoria
necesario. Por tanto, si la variable ya existe, Matlab únicamente cambia su contenido. En lo que
se refiere a la nomenclatura de las variables. Matlab distingue entre mayúsculas y minúsculas
(“Variable” es distinto de “variable”) permitiendo nombres de variables que contengan al menos
una letra. En Matlab, una variable consiste en una matriz de las dimensiones correspondientes.
En cuanto al tipo de variables a utilizar puede ser: entero, real, complejo, carácter, etc., y al igual
que en la definición, Matlab lo asigna de forma automática.
Los operadores aritméticos básicos son:

Funciones especiales. Matlab proporciona una serie de funciones matemáticas básicas además
de funciones más complejas. Como ejemplo de funciones aritméticas básicas tenemos:
• abs() % proporciona el valor absoluto de un número.
• cos() % coseno.
• sin() % seno.
• sqrt() % cálculo de la raíz cuadrada.
• inv () % calcula la inversa de una matriz.
Y como ejemplo de otras funciones tenemos:
• clock %Muestra, en un vector de seis componentes, la fecha y hora completa.
• display (‘ ‘) %Muestra el texto introducido por pantalla.

8.- Resultados Obtenidos


 Generar en Matlab escalares, vectores y matrices.
%Generar escalares, vectores, matrices
a = [3] %un escalar,
x = [1,2,3]% vector fila,
y = [1;2;3] %vector columna
A = [1,2,3;4,5,6]% una matriz.

a =
3
x =
1 2 3
y =
1
2
3
A =
1 2 3
4 5 6
 Generar la siguiente función senoidal utilizando tres métodos diferentes.

%Primer método.Aquí vamos a considerar un típico enfoque, es decir, vamos a utilizar dos for para los lazos
del extremo, uno cada uno en t y k. Este es el enfoque más ineficiente MATLAB.

clc
clear
t = 0:0.01:1; N = length(t); xt = zeros(1,N);
for n = 1:N
temp = 0;
for k = 1:3
temp = temp + (1/k)*sin(2*pi*k*t(n));
end
xt(n) = temp;
end
plot(t,xt)

% Segundo método. En este enfoque, vamos a calcular cada componente sinusoidal en un paso como
un Vector, usando el vector de tiempo t = 0: 0,01: 1 y luego agregue todos los componentes usando Uno
para el bucle del final.

t = 0:0.01:1; xt = zeros(1,length(t));
for k = 1:3
xt = xt + (1/k)*sin(2*pi*k*t);
end
figure
plot(t,xt)

% Tercer método. En este enfoque, utilizaremos la multiplicación vector-matriz, en la que MATLAB


Es muy eficiente. Para fines de demostración, considere sólo cuatro valores para
T = [t1, t2, t3, t4]. Entonces
Y Matlab lo resolverá de la siguiente manera:
t = 0:0.01:1;
k = 1:3;
xt = (1./k)*sin(2*pi*k'*t);
plot(t,xt)

 Realizar el apartado anterior en un script y como una función (m-file)

 Como Script

%Considere la siguiente suma de funciones sinusoidales

Clc;clear
t = 0:0.01:1; N = length(t); xt = zeros(1,N);
for n = 1:N
temp = 0;
for k = 1:3
temp = temp + (1/k)*sin(2*pi*k*t(n));
end
xt(n) = temp;
end
figure(1);plot(t,xt);grid;xlabel('TIEMPO(t)'); ylabel('Amplitud');
title('Grafica en funcion del tiempo(1 forma)')
%%
t = 0:0.01:1; xt = zeros(1,length(t));
for k = 1:3
xt = xt + (1/k)*sin(2*pi*k*t);
end
figure(2);plot(t,xt);grid;xlabel('TIEMPO(t)'); ylabel('Amplitud');
title('Grafica en funcion del tiempo(2 forma)')
%%
t = 0:0.01:1; k = 1:3;
xt = (1./k)*sin(2*pi*k'*t);
figure(3); plot(t,xt);grid %Graficar en tiempo continuo en cuadricula
title('Grafica en funcion del tiempo(3 forma)')
xlabel('TIEMPO(t)'); ylabel('Amplitud');
x = (1./k)*sin(2*pi*k'*t); % Evaluado en (2pi n)
figure(4);Hs = stem(t,x,'b','filled');%Graficar en tiempo discreto
set(Hs,'markersize',4); % Cambiar el tamaño del círculo
xlabel('n'); ylabel('x(n)');
title('Grafica en tiempo discreto sin( 2pi n)'); % título de la grafica

 Como función (m_file)

function xt = sinsum(t,ck)
% Computes sum of sinusoidal terms of the form in (1.1)
% x = sinsum(t,ck)
%
K = length(ck); k = 1:K;
ck = ck(:)'; t = t(:)';
xt = ck * sin(2*pi*k'*t);
end

script

t=0:0.01:1;k = 1:3; ck = 1./k;


xtt= sinsum(t,ck);figure(5);
plot(t,xtt)

 Graficar la señal senoidal generada como una señal continua y como una señal en
tiempo discreto.
 Tiempo continuo.
t = 0:0.01:1; k = 1:3;
xt = (1./k)*sin(2*pi*k'*t);
figure(1); plot(t,xt);grid %Graficar en tiempo continuo en cuadricula
title('Grafica en funcion del tiempo')
xlabel('TIEMPO(t)'); ylabel('Amplitud');

Fig2.Grafica en función en tiempo continúo


 Tiempo discreto

n= 0:0.01:1;
x = (1./k)*sin(2*pi*k'*n); % Evaluado en (2pi n)
figure(2);Hs = stem(t,x,'b','filled');%Graficar en tiempo discreto
set(Hs,'markersize',4); % Cambiar el tamaño del círculo
xlabel('n'); ylabel('x(n)');
title('Grafica en tiempo discreto sin( 2pi n)'); % título de la grafica

Fig3.Grafica en tiempo discreto

 Generar una señal de eco a un archivo de audio

%generacion de eco
clear ;clc
[y Fs]=wavread('misegundavoz');% cargando la senal de entrada Fs
figure;plot (y);title('senal original');
xlabel('frecuencia(Hz)');ylabel('amplitud');
sound(y,Fs); %reproduciendo senal de audio
pause(2); %intervalo de tiempo antes q reproduzca el audio con eco
alpha = 0.9; D = 4196; % parametros del eco
b = [1,zeros(1,D),alpha];% Filtro de los parametos
x = filter(b,1,y); %generacion del audio con los parametros
sound(x,Fs); %repodrucion del audio con eco
wavwrite(x, Fs,16,'nuevavozeco.wav');
figure;plot(x);title('senal filtrada con generacion de eco');
xlabel('frecuencia(Hz)');ylabel('amplitud');
Fig4.Señal original del audio

Fig5.señal de audio generado el eco

 Eliminar la señal de eco utilizando filtrado digital

w = filter(1,b,x);%eliminacion de eco
sound(w,Fs);
figure;plot(w);title('senal filtrada quitandole el eco');
xlabel('frecuencia(Hz)');ylabel('amplitud');
Fig6.señal de audio haciendo el proceso de eliminar el eco

9.- Discusión

 La elaboración de esta práctica que se enfoca a la introducción del software Matlab nos
sirve de gran manera entender de qué se trata este programa y la clase de herramientas
que tiene para analizar sistemas que se nos presentan en el comportamiento de señales
en tiempo discreto, que es lo mas no interesa.
Al elaborar este respectivo informe pudimos introducirnos al campo de los sistemas en
tiempo discreto dándonos cuenta el inmenso mundo que viene tras de estas clases de
sistemas y que con ello la variedad de aplicaciones que los utilizan.
El campo de las señales y sistemas discretos ha madurado considerablemente durante las
últimas décadas. Y ahora está en el núcleo de muchas aplicaciones y productos diversos.
Estas incluyen, voz / audio (reconocimiento / síntesis de voz, audio digital, ecualización,
etc.), imagen / vídeo (mejoramiento, codificación para almacenamiento y transmisión,
Visión robótica, animación, etc.), militar / espacio (procesamiento de radar, comunicación
segura, guía de misiles, etc.), atención biomédica / sanitaria (escáneres, análisis de ECG,
análisis de rayos X, etc.).
Esta práctica fue de gran ayuda para entender los conceptos de estas tipos de señales.

10.- Conclusiones

 MATLAB, es un programa que podemos crear o definir un sistema si tenemos su


representación en términos de su función o su representación en variables de estado.
Esto lo realizamos mediante las Herramientas de Control y
sus comandos respectivamente. De igual forma podemos realizar transformaciones
entre estas representaciones mediante el uso de los mismos comandos y también
podemos visualizar el sistema creado o modificado.
 Utilizando los comandos adecuados, pudimos aprender a modelar de una manera
práctica y clara la función de cualquier sistema.
 Algunas herramientas en Matlab son utilizadas en la reducción de diagramas de bloques.

11.- Recomendaciones

 Todo archivo .m que vayan a crear documéntenlo bien para luego recuerden lo que es.
 El símbolo para hacer comentarios en una línea es el porcentaje (%). Documenten entre
otras cosas lo que hace el código, los parámetros y variables de retorno, y las variables
intermedias más importantes.
 Intentar nos usar las mismas variables para diferentes procesos que vayan a realizar en
un código amplio de líneas.

12.- Bibliografía

[1]Morales, D. L. (2011, marzo 24). senales en tiempo discreto. Retrieved from practicas senales en
matlab: http://arantxa.ii.uam.es/~jbescos/Docencia/SLI/Practicas/Guion_1.pdf

[2]Oppenheim, A. V. (2011). Tratamiento de Senales en tiempo discreto. Madrid Espana: PEARSON.

[3]Proakis, J. G. (2007). Digital Signal Processing using Matlab. Stamford USA: Northeastern University.

Vous aimerez peut-être aussi