Académique Documents
Professionnel Documents
Culture Documents
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
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
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.
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.
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)
Como Script
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
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
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');
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
%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
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
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
[3]Proakis, J. G. (2007). Digital Signal Processing using Matlab. Stamford USA: Northeastern University.