Vous êtes sur la page 1sur 11

PRACTICA # 1

ASIGNATURA: PROCESAMIENTO DIGITAL DE SEALES


TIEMPO PLANIFICADO EN EL SILABO: 6 HORAS
TIEMPO DE LA PRCTICA : 4 horas
NUMERO DE ESTUDIANTES POR GRUPO: Practica individual
De:

Para:
* Ing. Diego orellana

DANNY ARMIJOS

1. TEMA:
INTRODUCCION A MATLAB

2. OBJETIVOS:

Familiarizarse con los comando de matlab

Aprender a realizar opciones de suma resta multiplicacin elevacin y funciones


exponenciales tanto con nmeros escales y vectores

Aprender a generar eco a una seal y filtrar el eco a la misma

seal para

recuperar la seal original


3. Materiales, Herramientas, Equipos y reactivos.
Materiales , Reactivos y Sofware

Programa Matlab 2014

4. Equipos y Reactivos
Equipos y herramientas
Una Computadora con capacidad de corer Matlab
5. IMARCO TERICO:
5.1 Qu es Matlab?
La primera versin de matlab data de los aos 70, y fue diseada como herramienta
de apoyo para los cursos de Teora de Matrices, lgebra Lineal y Anlisis Numrico.
El nombre matlab es un acrnimo: MATrix LABoratory. Hoy en da, matlab es un
programa muy potente, con un entorno agradable, que incluye herramientas de
clculo cientfico y tcnico y de visualizacin grfica, as como un lenguaje de
programacin de alto nivel.
pg. 1

5.2 Descripcin de MATLAB


MATLAB es un entorno de clculo tcnico de altas prestaciones para clculo
numrico y visualizacin. Integra:

Anlisis numrico

Clculo matricial

Procesamiento de seales

Grficos

En un entorno fcil de usar, donde los problemas y las soluciones son expresados como
se

escriben

matemticamente,

nombre MATLAB proviene

de

sin
``MATrix

la

programacin
LABoratory''

tradicional.
(Laboratorio

El
de

Matrices). MATLAB fue escrito originalmente para proporcionar un acceso sencillo al


software matricial desarrollado por los proyectos LINPACK y EISPACK, que juntos
representan lo ms avanzado en programas de clculo matricial. MATLAB es un sistema
interactivo cuyo elemento bsico de datos es una matriz que no requiere
dimensionamiento. Esto permite resolver muchos problemas numricos en una fraccin
del tiempo que llevara hacerlo en lenguajes como C, BASIC o FORTRAN. MATLAB ha
evolucionado en los ltimos aos a partir de la colaboracin de muchos usuarios. En
entornos universitarios se ha convertido en la herramienta de enseanza estndar para
cursos de introduccin en lgebra lineal aplicada, as como cursos avanzados en otras
reas. En la industria, MATLAB se utiliza para investigacin y para resolver problemas
prcticos de ingeniera y matemticas, con un gran nfasis en aplicaciones de control y
procesamiento de seales. MATLAB tambin proporciona una serie de soluciones
especficas denominadas TOOLBOXES. Estas son muy importantes para la mayora de
los usuarios de MATLAB y son conjuntos de funciones MATLAB que extienden el
entorno MATLAB para resolver clases particulares de problemas como:

Procesamiento de seales

Diseo de sistemas de control

Simulacin de sistemas dinmicos

Identificacin de sistemas

pg. 2

Redes neuronales y otros.

Probablemente la caracterstica ms importante de MATLAB es su capacidad de


crecimiento. Esto permite convertir al usuario en un autor contribuyente, creando sus
propias aplicaciones. En resumen, las prestaciones ms importantes de MATLAB son:

Escritura del programa en lenguaje matemtico.

Implementacin de las matrices como elemento bsico del lenguaje, lo que


permite una gran reduccin del cdigo, al no necesitar implementar el clculo
matricial.

Implementacin de aritmtica compleja.

Un gran contenido de rdenes especficas, agrupadas en TOOLBOXES.

Posibilidad de ampliar y adaptar el lenguaje, mediantes ficheros de script y


funciones .m.

6.

ACTIVIDADES DESARROLLAS:

1.2.1 PRIMEROS PASOS


La interaccin con MATLAB es a travs de la ventana de comandos de su interfaz grfica
de usuario (GUI). En la ventana de comandos, el usuario escribe instrucciones de
MATLAB, que se ejecutan instantneamente, y los resultados se muestran en la ventana.
En la ventana de comandos de MATLAB, los caracteres ">>" indican el indicador que est
esperando que el usuario escriba un comando que se va a ejecutar. Como se observa en
la figura 1

Figura. 1 imagen del la ventana de comando de Matlab

Si se coloca un punto y coma (;) al final de un comando, se suprime toda la salida de ese
comando. Pueden colocarse varios comandos en la misma lnea, separados por punto y
coma;. Los comentarios estn marcados por el signo de porcentaje (%), en cuyo caso
MATLAB ignora cualquier cosa a la derecha del signo. Los comentarios permiten al lector
pg. 3

seguir cdigo ms fcilmente. El manual de ayuda integrado proporciona ayuda para


cada comando a travs del comando help command; que se observa en la figura 2

Figura. 2 el comando help command permite ingresar a las funciones que tiene
matlab

Control-Flow
MATLAB proporciona una variedad de comandos que nos permiten controlar el flujo de
comandos en un programa. El constructo ms comn es la estructura if-elseif-else. Con
estos comandos, podemos permitir que se ejecuten diferentes bloques de cdigo
dependiendo de alguna condicin. El formato de este constructo es el que se observa en
el cuadro 1
if condition1 % si la condicin 1 se cumple
command1 % ejecuto el comando 1
elseif condition2 %% sino ejecuto condicin 2
command2 % ejecuto el comando 2
else % de otra manera
command3 % ejecuto comando 3
end %fin

Cuadro. 1 Control de flujo con if, elseif y else

Ejemplo
1.1 Considere
la siguiente suma de funciones sinusoidales.
% Ejemplo
1.1

%enfoque 1
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));
Para
end realizar este ejercicio en matlab se lo puede hacer de diversas manera como se
xt(n) = temp;
observa
en los cdigos del cuadro 2 con diversos enfoques.
end
disp('Presentos xt a1')
xt
pause;
%enfoque 2
t = 0:0.01:1; xt = zeros(1,length(t));
for k = 1:3
xt = xt + (1/k)*sin(2*pi*k*t);
end
disp('Presentos xt a2')
xt
pause;
%Enfoque 3
pg. 4
t = 0:0.01:1; k = 1:3;
xt = (1./k)*sin(2*pi*k'*t);
disp('Presentos xt a3')
xt

Cuadro. 2 suma de la funcin x(t de diversos enfoques)

Scripts
El primer constructo se puede lograr utilizando el denominado modo de bloque de
operacin. En MATLAB, este modo se implementa utilizando un archivo de comandos
llamado m-file (con una extensin .m), que es slo un archivo de texto que contiene cada
lnea del archivo como si los hubiera escrito en el smbolo del sistema. Estos scripts se
crean utilizando el editor incorporado de MATLAB, que tambin proporciona colores
sensibles al contexto y sangras para hacer menos errores y para una lectura fcil. El
script se ejecuta escribiendo el nombre del script en el smbolo del sistema. El archivo de
script debe estar en el directorio actual en el directorio del entorno de ruta.
Si queremos experimentar con diferentes valores de los coeficientes ck y / o el nmero de
trminos K, entonces deberamos crear un archivo de script. Para implementar el tercer
enfoque en el Ejemplo 1.1, podemos escribir un archivo de script como se observa en el
cuadro 3.
% Archivo de escript a incrementar en el ejemplo (1.1)
t = 0:0.01:1; k = 1:2:5; ck = 1./k;
xt = ck * sin(2*pi*k'*t);
disp('presento xt')
xt

Cuadro. 3script del ejemplo 1.1


Funciones
La segunda construccin de crear un bloque de cdigo es a travs de subrutinas. Estas
son llamadas funciones, que tambin nos permiten ampliar las capacidades de MATLAB.
De hecho una gran parte de MATLAB se ensambla utilizando archivos de funcin en
varias categoras y utilizando colecciones especiales llamadas cajas de herramientas.
Las funciones tambin son m-files (con extensin .m). Una diferencia importante entre los
archivos de script y de funcin es que la primera lnea ejecutable en un archivo de funcin
comienza con la funcin de palabra clave seguida de una declaracin de variable de
entrada de salida. Como ejemplo, considere el clculo de la funcin x (t) en el ejemplo 1.1
pg. 5

con un nmero arbitrario de trminos sinusoidales, que implementaremos como una


funcin almacenada como m-file sinsum.m como se observa en el cuadro 4.
function xt = sinsum(t,ck)
% Calcula la suma de los trminos sinusoidales de la forma en (1.1)
% x = sinsum(t,ck)
%
K = length(ck);
k = 1:K;
ck = ck(:)';
t = t(:)';
xt = ck * sin(2*pi*k'*t);

Cuadro. 4 Creacin de una funcin. Lo que hace es crear un cdigo a


1.2.4 PLOTTING
travs de subrutinas
El comando de trazado bsico es el comando plot (t, x) Que genera un grfico de valores
x frente a valores t en una figura separada Ventana. A continuacin desde el cuadro 5 al
cuadro 8 se podr observar el resultado respectivo representado en las figuras que van
desde la 3 a la 6

figure (1)
t = 0:0.01:2; % puntos de muestra de 0 a 2 en muestras de
0,01
x = sin(2*pi*t); % Evala el sin(2*pi*t)
plot(t,x,'b'); % grafica la seal x con color azul
xlabel('t in sec'); % etiqueta el eje x con lo que se
encuentra entre comillas
ylabel('x(t)'); % etiqueta el eje y con lo que se encuentra
entre comillas
title('grafica de la funcin x'); % la funcin title asigna
el nombre de ttulo a la grafica
pause; % determina una pausa que al hacer clic continua con
la siguiente figura
Cuadro. 5. Ensea a cmo utilizar la funcin plot, yxlabel y ylabel
Figura. 3 Grafica que representa la funcin x= sin(2*pi*t

figure (2)
n = 0:1:40; % muestra de un intervalo de cero a cuarenta de uno
en uno
x = sin(0.1*pi*n); % evalua el sin(0.2*pi*n)
Hs = stem(n,x,'b','filled'); %la funcion stem permite graficar un
conjunto de numeros discretos
set(Hs,'markersize',4); % la funcion set cambia el tamao del
circulo
xlabel('n'); ylabel('x(n)'); % etiqueta eje x e y
title('funcion discreta de la funcion sin(0.2 pi n)'); % titulo de
la grafica
pause;
pg. 6

Cuadro. 6 Este cdigo permite graficar en la figura 4 el comportamiento


de la funcin stem

Figura. 4 Representacin del cdigo del cuadro numero 6 utilizando la


funcin stem
figure(3)
t = 0:1:40; % puntos de muestra de 0 a 40 en pasos de 1
t=n; % determina que la varible t=n
xt = sin(0.1*pi*t); % Evalua el sin(2*pi*t)
xn= xt; % determina igualda de variables
plot(t,xt,'b'); hold on; %crea la grafica con la funcion con linea
azul
Hs = stem(n,xn,'b','filled'); % permite graficar un conjunto de
numeros discretos
xlabel('n & t'); ylabel('x(n) & x(t)'); % etiqueta eje x e y
title('funcion discreta de la funcion sin(0.1 pi n) y tambien
continua con sin(0.1 pi t) '); % titulo de la grafica
set(Hs,'markersize',2); % elige el tamao del circulo
hold off;
pause;
Cuadro. 7 Ensea a cmo utilizar la funcin set . La cual hace es cambiar
el tamao del crculo que representa la seal discreta

pg. 7

Figura. 5 Representacin del cdigo del cuadro numero 7 utilizando la


funcin stem y set
figure (4)
subplot(2,1,1); % grafica dos filas, una columna. Ubica la 1
grafica en la 1 fila
x = sin(0.1*pi*n); % evalua el sin(0.2*pi*n)
plot(t,x,'g'); % dibuja la grafica con una linea azul
xlabel('t'); ylabel('x(t)'); % etiqueta eje x e y
title('Funcin continua de sin(0.1 pi t) ')
subplot(2,1,2);% grafica dos filas, una columna. Ubica la 2
grafica en la 2 fila
Hs = stem(n,x,'b','filled'); % permite graficar un conjunto de
numeros discretos
xlabel('n'); ylabel('x(n)'); % etiqueta eje x e y
title('Funcin discreta de sin(0.1 pi n) ')
hold off;
Cuadro. 8 Ensea a utilizar la funcin subplot esto se refleja en la figura
6

pg. 8

% Los ecos son seales retardadas, y como tales se generan usando


retardo unidades. Por ejemplo, la combinacin del sonido directo
Figura. 6 Representacin
del cdigo del cuadro numero 8 utilizando la
representado
por
funcin
subplot
que
lo
que
hace
es que
representar
graficas en
%Discreta y [n] y un solo
eco
aparecevarias
D muestras
msuna
tarde
misma
figura.
(que es
%Relacionados
conSEALES
la demora
en segundos) pueden ser generados por
1.3 APLICACIN DE
DIGITALES
la ecuacin de la forma
El campo de DSPecuacin
ha madurado
%(Denominada
deconsiderablemente
diferencia) durante las ltimas dcadas y ahora
% est enx[n]
= y[n]
+ ?y[n
? D], y |?|
< 1 diversos. stas incluyen
el ncleo
de muchas
aplicaciones
productos
Voz / audio (reconocimiento / sntesis de voz, audio digital, ecualizacin, etc.),

%%%%%%%%%%GENERACION DE ECO%%
Imagen
/ vdeo
para archivo
almacenamiento
y transmisin,
visin
load
handel;
% (mejora,
funcioncodificacin
que carga
de sonido
en este
caso
esrobtica,
una cancion
('Aleluya')
animacin,sonora
etc.),
sound(y,Fs); % funcion que reproduce sonido en este caso el
original La seal est en (y) y la Frecuencia de muestreo en Fs
pause(10); %esta funcion permite hacer una pausa determinada para
continuar con el proceso
alpha = 0.9; % Parameto del eco que modela la atenuacin de la
seal directa del sonar
D = 10000; % Parameto del eco
b = [1,zeros(1,D),alpha]; % Parametros del filtro
x = filter(b,1,y); % Genera el sonido mas su eco
sound(x,Fs); % funcion que reproduce sonido en este caso CON ECO
pause(10);
%%% Eliminacin de eco Despus de ejecutar esta simulacin,
puede experimentar Que el eco es una interferencia objetable
%%%%%ELIMINACION DE ECO
w = filter(1,b,x);%filtra los datos de entrada x utilizando una
funcin de transferencia racional definido por el numerador y el
denominador coeficientes b y a.
sound(w,Fs)%funcion que reproduce sonido de la seal w que esta
sieno filtrada para quitar el eco
pause (1);

pg. 9

Cuadro. 9 Cdigo que ensea en funcionamiento de diversos comandos para


editar audio como es el caso de aumentar o quitar eco a una grabacin de
audio cargada con la funcin load como se puedo ver en los comentarios del
cdigo

militar / espacial (procesamiento de radar, comunicacin segura, gua de misiles,


procesamiento de sonar, etc.),
Atencin biomdica / sanitaria (escneres, anlisis de ECG, anlisis de rayos X,
cartografa cerebral de EEG, etc.)
El cdigo que se puede observar en el cuadro 9 permite en primera instancia cargar un
audio luego reproducirlo con la funcin (sound), luego

modificndolo aadindole

parmetros de eco y finalmente con la funcin ( filter) se quita el eco aadido


anteriormente.
7. DISCUSIN:
En la presente prctica se aprendi sobre el funcionamiento de algunas funciones de
Matlab

como es el caso de realizar operaciones de suma resta, multiplicacin,

divisin y exponenciacin tanto con unidades escalares y unidades vectoriales, la cual


permite ahorrarse de realizar estos clculos a mano ya que son muy tediosos de all
la gran ventaja de utilizar el programa que nos ahorra el tiempo de anlisis.
Tambin se analiz la generacin de funciones que nos permitir en otros programas
realizar operaciones matemticas simplemente aplicando esta funcin.
Se apreci a graficar funciones con el comando plot y asignarle nombres a la grfica
y sus ejes, la cual nos permite observa el comportamiento de la funcin dada a travs
del tiempo tanto en anlisis continuo como discreto dependiendo de la funcin que se
utilize.
Por otro lado se aprendi sobre el anlisis del sonido a como aadirle y quitarle
informacin con la funcin filter.
pg. 10

8. CONCLUSIN:
Matlab es una herramienta que permite realizar operaciones de anlisis tanto
matemtico como grafico que permite trabajar con funciones prescritas o generar
nuevas funciones la cual nos ahorra bastante tiempo ya que este anlisis hecho a
mano demorara muchsimo tiempo y con posibles erros humanos que no ocurre con
este software.
9. RECOMENDACIONES:

Al momento de usar el software cerciorarse de las variables a utilizar ya que


matlab reconoce tanto maysculas como minsculas

Al momento de trabajar con vectores se debe colocar un punto previo a la


operacin a utilizar ya que caso contrario el software piensa que son unidades
escales y reproducir error

Si se desea graficar ms de una figura en un mismo programa por separado


utilizar la funcin figure(n) y al final de cada programa la funcin pause; la cual
al momento de dar enter correr con creacin de otra figura y si se desea
graficar dos funciones o ms en una figura utilizar la funcin subpot.

Es recomendable colocar al lado de cada funcin %%% un comentario de que


realiza esta parte del codigo para llevar mas claro el funcionamiento de cada
programa generado en matlab.

10. BIBLIOGRAFA
[1] J. W. Cooley and J. W. Tukey. An algorithm for the machine computation of complex
Fourier series. Mathematical Computations, 19:297301, April 1965.
[2] Vinay K. Incle & Jhon G. Proakis. Digital Signal Progrssing Using Matlab.
Northeastern University. Third edition
[3] D. Hanselman and B. Littlefield. Mastering MATLAB 7. Pearson/Prentice Hall,
Englewood Cliffs, NJ, 2005.
[4]J. G. Proakis and D. G. Manolakis. Digital Signal Processing:Principles, Algorithms and
Applications. Prentice Hall, Upper Saddle River, NJ, fourth edition, 2006.

pg. 11

Vous aimerez peut-être aussi