Professional Documents
Culture Documents
PRACTICA 1
Iniciacin a Matlab/Octave.
Objetivos.
Adquisicin de la habilidad mnima para la realizacin de prcticas de
procesamiento digital de seales mediante el programa matemtico
Matlab/Octave.
Informacin previa.
1. Matlab es un programa comercial muy difundido para su aplicacin en el
mbito de la ingeniera. No es un programa libre ni gratuito, pero hay
otros programas clnicos como Octave que son pueden ejecutar el
cdigo fuente de Matlab, si bien con algunas limitaciones. En su
utilizacin ms bsica, ambos programas son equivalentes; pero
teniendo en cuenta su gratuidad, las prcticas de la asignatura se
realizarn con la versin de Octave.
2. Matlab es un intrprete. Esto significa que ejecuta los comandos al
tiempo que se van introduciendo. Improvisar comandos sobre la marcha
no es la forma ms conveniente de hacer trabajos serios con Matlab
porque dificulta la correccin de errores y la depuracin del cdigo.
3. La forma acostumbrada de trabajar con Matlab es escribir las
secuencias de comandos que en conjunto constituyen un programa en
un fichero de texto plano, pudindose editar fcilmente. Para que estos
ficheros de comandos puedan ser ejecutados por el intrprete es
necesario que se encuentren en algn directorio especfico y que tengan
la extensin .m
4. Concretamente, los ficheros .m deben ser grabados en el directorio
octave_files que se encuentra en el directorio de instalacin de Octave.
5. Matlab solo tiene un tipo de datos que son los nmeros en coma flotante
y un conjunto bsico de comandos para realizar asignaciones,
estructuras de control y representaciones grficas. Aparte de este ncleo
bsico, Matlab se ha enriquecido con las aportaciones de muchos
usuarios que lo han utilizado en diversos campos de aplicacin y han
distribuido libremente su cdigo. Las distribuciones de Matlab y Octave
contienen libreras de DSP cuyas funciones se utilizarn en las
prcticas.
6. Norma general para la realizacin de las prcticas. En un editor de
texto plano (por ejemplo, notepad) cree un fichero de nombre prxx.m
donde xx es el nmero de la prctica y grbelo en el directorio
octave_files. Escriba los comandos correspondientes al primer apartado
y vuelva a grabar el fichero. Invoque el fichero desde el intrprete
tecleando prxx [ENTER]. Si el resultado no es el correcto, corrija los
errores en el editor y repita la operacin. Contine de forma similar con
el resto de los apartados. Los comandos cuya ejecucin quiera evitar en
las sucesivas repeticiones pueden ser desactivados escribiendo el
carcter # al principio de la lnea correspondiente.
7. Presentacin de resultados. En general, se guardarn en un directorio
los ficheros de cdigo fuente correspondientes a los ejercicios
propuestos en cada prctica.
Procedimiento.
1. Arranque el programa Octave y un editor de texto plano (Notepad). En lo
sucesivo, siga la norma indicada en el punto 6 anterior.
2. Se desea generar y representar grficamente una seal senoidal de
amplitud 1 y frecuencia 200 Hz, muestreada a 1 kHz en los ndices
comprendidos entre n=0 y n=9.
# PRACTICA 1
# Nombre y apellidos. Fecha.
# Seccin 2. Generacin de una senoide ---------------------# asignacion de valores a los parametros de la seal
a=1.0;
frq=200.0;
fs=1e3;
n=0:9;
#
#
#
#
#
# la seal es
amplitud
frecuencia
frecuencia de muestreo
n es un vector de nmeros entre 0 y 9.
n = 0 1 2 3 4 5 6 7 8 9
x[n]
# se selecciona el subgrafico 1.
clearplot;
# se borra el grafico
title('Grfica de una senoide');
# titulo del grafico
xlabel('n');
# titulo del eje x
ylabel('x[n]');
# titulo del eje y
plot(n,x,'^');
# traza el vector x frente a n
# ^ indica el tipo de grafico "stem"
1
0.8
0.6
0.4
0.2
0
-0.2
-0.4
-0.6
-0.8
-1
line 1
fs=1e3;
n=0:9;
# frecuencia de muestreo
# seal 1
#
2
# representacin grfica
subplot(111);
clearplot;
title('Aliasing');
xlabel('n');
ylabel('x1,x2');
plot(n,x1,'o',n,x2,'+');
a1
= 1.0;
frq1 = 200.0;
# Seal 2
a2
= 1.0;
frq2 = 1200.0;
fs=1e3;
# frecuencia de muestreo
xa1 = a1*cos(2*pi*frq1*t*(1.0/fs));
xa2 = a2*cos(2*pi*frq2*t*(1.0/fs));
# seal pseudocontinua 1
#
2
xd1 = a1*cos(2*pi*frq1*n*(1.0/fs));
xd2 = a2*cos(2*pi*frq2*n*(1.0/fs));
# seal discreta 1
#
2
# representacin grfica
subplot(111);
clearplot;
title('Aliasing');
xlabel('n');
ylabel('xa1,xa2,xd1,xd2');
plot(t,xa1,'k-',t,xa2,'k:',n,xd1,'ko',n,xd2,'k+');
Aliasing
xa1,xa2,xd1,xd2
line 1
line 2
line 3
line 4
0.5
0
-0.5
-1
endif
endfunction
entrada
nmero de bits
rango de la seal [-m +m]
(cuantificacin por redondeo)
Amplitud
1.0
0.6
0.3
Frecuencia
50
75
150
Genere tres seales discretas muestreando esta seal con una frecuencia
de 1kHz, un rango entre 2 y +2 y con una resolucin de 3, 4 y 8 bits.
o Represente grficamente la seal analgica
muestreada con una resolucin de 3 bits.
o Id. con una resolucin de 4 bits.
o Id. con una resolucin de 8 bits.
la
seal
Presentacin de resultados.
Segn las instrucciones generales.
.