Você está na página 1de 5

Procesamiento Digital de Seales 2017

Fecha de realizacin: 14/03/17 Fecha de presentacin: 28/03/17

Laboratorio N 1:
Contenidos:
Introduccin a la graficacin en MATLAB.
Grfica de Funciones de Tiempo Discreto (DT).
Periodicidad de Seales DT.
Operaciones bsicas sobre seales DT

1) Introduccin a la graficacin en MATLAB.

Graficar una funcin discreta x(n) requiere valores numricos de x(n).

Es comn elegir valores de x(n) a intervalos uniformes. Para ver las caractersticas de x(n) se bebe seleccionar
cuidadosamente el rango del grfico. Esto requiere tener algn grado de conocimiento de cmo se comporta x(n)
en el tiempo.

Es necesario definir tambin la base de tiempo n sobre la cual se desea graficar la funcin. Ambos vectores, n y
x(n), deben tener la misma longitud (mismo nmero de elementos) para que Matlab pueda graficarlo. En el caso
de que no coincidan se deber limitar el nmero de pares de puntos a graficar o completar el nmero de
componentes del vector ms corto (generalmente con ceros, lo que se conoce como zeropadded).

En el entorno digital de una computadora, toda la informacin que se maneja es discreta tanto en su magnitud
como en su duracin. Slo existen determinados valores de amplitud y determinados instantes en donde estos
ocurren. Ambos estn determinados por la resolucin del procesador y la velocidad de procesamiento del mismo.
Sin embargo es posible representar seales como si fuese seales continuas empleando comandos que
interpolan los valores de magnitud entre dos instantes consecutivos. As por ejemplo una misma seal podra
visualizarse en el dominio de tiempo discreto empleando el comando dtplot o stem, o en el dominio de tiempo
continuo empleando el comando plot.

Existen diversos comandos para realizar la graficacin de funciones. Algunas estn destinadas a definiciones
simblicas y otras a funciones definidas explcitamente por sus valores. En el ejemplo que se muestra a
continuacin se presentan algunos de ellos:
Considere la funcin x(n) 3n sen(2n) u(n) . Graficar x(n) en el intervalo 0n10. Considere un intervalo
entre muestras de 0.5 segundos.

% Mtodo 1: (El ms usado)


n = 0:0.5:10; % Arreglo temporal a intervalos de 0.5s
y = -3*n.*sin(2*n) % Valores de la Funcin
dtplot(n,y) % Grfica
grid, title('Funcin Seno') % Grilla y ttulos

% Mtodo 2: (Muestra cmo usar el comando eval para evaluar string)


n = 0:0.5:10; % Arreglo temporal a intervalos de 0.5s
x = '-3*n.*sin(2*n)' % Definicin de la funcin
y = eval(x); % Evala la funcin en los instantes t.
figure; dtplot(n,y) % Grfica

% Mtodo 3: (Muestra el uso de .* para multiplicacin de arreglos y la


superposicin de grficos)
n = 0:0.5:10; % Arreglo temporal a intervalos de 0.5s
x1 = -3*n; % Definicin de exponencial
x2 = sin(2*n); % Definicin del seno.
y = x1.*x2; % Producto componente a componente.

% Grfica de las tres funciones.


figure; % Abre una nueva ventana
subplot(3,1,1); dtplot(n,y) % Subdivisin de pantalla en 3x1 - 1 Figura
subplot(3,1,2); dtplot(n,x1) % Subdivisin de pantalla en 3x1 - 2 Figura
subplot(3,1,3); dtplot(n,x2) % Subdivisin de pantalla en 3x1 - 3 Figura
Procesamiento Digital de Seales Ingeniera Electrnica - Ao 2017 Laboratorio 1

2) Graficacin de Funciones de Tiempo Discreto.

Para la generacin de funciones tipo de tiempo discreto, emplearemos los comandos udelta, ustep, uramp, y tri del
tool ADSP. Emplee el comando help para obtener la manera de pasarle los argumentos a dichas funciones

3) Periodicidad de seales DT.


Cuando una seal peridica pasa del dominio de tiempo continuo al dominio de tiempo discreto mediante el
proceso de muestreo, puede ocurrir que la seal resultante de la transformacin de dominio deje de ser peridica.
Para poder evaluar esto, debemos tener presente la relacin que existe entre la frecuencia analgica de la seal
(f) y la frecuencia de muestreo (Sf). Esta relacin se denomina frecuencia digital y se la representa con F=f/Sf.
Esta frecuencia digital tambin nos puede dar informacin sobre la periodicidad o no de la seal discreta.
Lo primero a determinar es si F es un nmero racional, condicin necesaria y suficiente para que la seal bajo
anlisis sea peridica. Luego, si F se encuentra en su mnima expresin, podemos interpretar a F=k/N, siendo k el
nmero de ciclos de la seal analgica en el que est contenido un ciclo de la seal discreta, y N el nmero de
muestras de un ciclo de la seal discreta. Este valor N se interpreta como el perodo de la seal discreta, y se
expresa en nmero de muestras.

4) Decimacin e interpolacin
En seales de tiempo discreto el escalamiento de tiempo es equivalente a reducir o incrementar la longitud de la
seal. Suponiendo que x[n] corresponde a una seal analgica x(t) muestreada a intervalos ts, la seal y[n]=x[2n]
se corresponder con la seal comprimida x(2t) muestreada a intervalos ts y contendr slo valores alternos de
x[n] (correspondientes a x[0], x[2], x[4],).

La decimacin o submuestreo por un factor de N es equivalente a muestrear x(t) a intervalos Nts e implica una
reduccin de N particiones en la tasa de muestreo. La seal decimada x[Nn] se generar a partir de x[n]
reteniendo toda muestra N-sima correspondiente a los ndices k=Nn y descartando todas las dems. Esto lleva a
prdidas potenciales de la informacin.

Para el caso de la interpolacin o sobremuestreo, y[n]=x[n/2] se corresponde con la seal x(t) muestreada a t s/2 y
tiene dos veces la longitud de x[n], con una nueva muestra entre muestras adyacentes de x[n]. El valor que tome
la muestra intermedia depender del tipo de interpolacin que se elija. Podr valer cero (interpolacin cero),
mantener el ltimo valor de muestra (interpolacin constante), entre otras. La interpolacin por un factor de N es
equivalente a muestrear x(t) a intervalos ts /N e implica un incremento de particin N tanto en la velocidad de
muestreo como en la longitud de la seal.

5) Desplazamiento de tiempo y reflexin


La seal y[n] = x[n-] describe una versin retrasada de x[n] para >0. Es decir que si x[n] empieza en n=N,
entonces su versin desplazada y[n] = x[n-] empieza en n = N+. Un prueba para verificar el trazado de
seales desplazadas puede realizarse comprobando que si y[n] = x[n-], una muestra de x[n] en el ndice original
n se podr relocalizar en el nuevo ndice nN considerando n = nN -.

La seal y[n] = x[-n] representa una versin reflejada de x[n], una imagen de espejo de la seal x[n] alrededor del
origen n=0. Una muestra de x[n] en el ndice original n se graficar en un nuevo ndice nN dado por n = -nN -.

2
Procesamiento Digital de Seales Ingeniera Electrnica - Ao 2017 Laboratorio 1

EJERCITACIN.

Nota: Los siguientes ejercicios debern resolverse de acuerdo a las consignas detalladas. Con los resultados que
obtenga deber redactar un informe, incluyendo en el mismo los cdigos empleados para la resolucin de los
ejercicios, las grficas obtenidas, e incluir las conclusiones a las que arribe en cada caso.

1. Dada las siguientes seales de tiempo continuo, representarlas en el dominio continuo (CT) y en el dominio
discreto (DT), empleando los comandos correspondientes. Tener en cuenta que el intervalo de tiempo
seleccionado sea el apropiado. En el caso de las representaciones DT, el paso entre muestras debe ser 0.5.
Paras las grficas CT, emplear un paso entre datos igual o inferior a 0.1
a) x1(t)=2sen(5)
b) x2(t)=u(t+2)
c) x3(t)= 4tri[(t-4)/4]
d) x4(t)= x1(t)+ x2(t)+ x3(t)
Encontrar el mximo y el tiempo del mximo de x4(n) y de x4(t). Compare los resultados obtenidos y saque
conclusiones.
Para el clculo del valor mximo y del tiempo de ocurrencia puede guiarse con el siguiente cdigo:

>> xmax = max(x) % Encontrar el valor mximo


>> i = find(x==xmax) % ndice del mximo
>> nmax = n(i) % Uso el ndice para encontrar el tiempo del mximo

2. Use la funcin dtplot o stem para graficar las siguientes funciones en el rango 30 n 30 con paso
unitario. Empleando el comando hold, grafique de manera superpuesta la envolvente continua de la seal
usando el comando plot. Para la graficacin de la envolvente, genere una nueva base de tiempo con paso
t=0.01.

a) 1 = 2 cos 3 sen c) 3 = 5 sen 8 + 4 + 5 cos
4 5 4
b) 2 = 2 cos 2 + 5 sen

d) 4 = cos 0.5
3

Cules de las secuencias anteriores son peridicas y cules no? Confirme los resultados obtenidos en las
grficas de calculando la periodicidad de las seales propuestas de manera analtica. Justifique.

3. Implemente el cdigo que se le propone a continuacin como gua, en el cual se realizan operaciones bsicas
sobre una seal de audio. Usted podr adquirir una seal de audio a travs de un micrfono o importar un
archivo de audio usted mismo. En este ltimo caso deber verificar que el formato a importar sea el adecuado
para su tratamiento bajo el entorno de Matlab.
Puede introducir cambios en los valores del cdigo a fin de experimentar. Para poder verificar las operaciones
realizadas, conecte unos auriculares a la salida de audio de su computadora.

%Laboratorio N 1 - Ejercicio 3
%Operaciones Bsicas con Seales Discretas
%---------------------------------------------------------------
% Inicializacin
clear all;
close all;

% Generacin de audio con Fs


Fs=11025; % Este valor puede ser modificado para experimentar
x=wavrecord(5*Fs, Fs, 'double');
soundsc(x, Fs);
N = length(x);

%---------------------------------------------------------------
% Generacin de eco mediante la suma de la versin retrasada de la seal.
delay = 0.4 % Este valor puede ser modificado para experimentar

3
Procesamiento Digital de Seales Ingeniera Electrnica - Ao 2017 Laboratorio 1
atten = 0.5 % Este valor puede ser modificado para experimentar
n0 = round(delay.*Fs)
n_ext = 1:1:N+n0;
x_delay(n0+1:N+n0) = x(n_ext(n0+1:N+n0)-n0);
x_extend = x;
x_extend(N+1:N+n0) = zeros(1,n0);
y = x_extend + atten.*x_delay;
t_extend = (n_ext-1)./Fs;
subplot(2,1,1), plot(t_extend,x_extend);
xlabel('t seg');
title('Sonido Original');
input('Sonido Original')
soundsc(x,Fs);

subplot(2,1,2), plot(t_extend,y);
xlabel('t seg');
title('Sonido con Eco');
input('Sonido con Eco')
soundsc(y,Fs);
%---------------------------------------------------------------
% Reflexin
n = 1:1:N;
minus_n = N+1 - n;
z = x(minus_n);
t = (n-1)./Fs;
figure;
subplot(2,1,1), plot(t, x);
xlabel('t seg');
title('Sonido Original');
input('Sonido Original')
soundsc(x,Fs);

subplot(2,1,2), plot(t, z);


xlabel('t seg');
title('Sonido Reflejado');
input('Sonido Reflejado')
soundsc(z,Fs);
%---------------------------------------------------------------
% Submuestreo por 2 - Decimacin
z = zeros(1,N);
z(1:ceil(N/2)) = x(1:2:N);
z(ceil(N/2)+1:N) = zeros(1,N-ceil(N/2));
figure;
subplot(2,1,1), plot(t,x);
xlabel('t seg');
title('Sonido Original');
input('Sonido Original')
soundsc(x,Fs);

subplot(2,1,2), plot(t,z);
xlabel('t sec');
title('Sonido Submuestreado por 2');
input('Sonido Submuestreado por 2')
soundsc (z,Fs);
%---------------------------------------------------------------
% Sobremuestreo por 2
z = zeros(1,2.*N);
z(1:2:2.*N) = x(1:N);
x_extend(N+1:2.*N) = zeros(1,N);
n_extend = 1:1:2.*N;
t_extend = n_extend./Fs;
figure;
subplot(2,1,1), plot(t_extend,x_extend);
xlabel('t seg');
title('Sonido Original');
4
Procesamiento Digital de Seales Ingeniera Electrnica - Ao 2017 Laboratorio 1
input('Sonido Original')
soundsc(x,Fs);

subplot(2,1,2), plot(t_extend,z);
xlabel('t seg');
title('Sonido Sobremuestreado por 2');
input('Sonido Sobremuestreado por 2')
soundsc(z,Fs);

Você também pode gostar