Вы находитесь на странице: 1из 13

PRIMERA PRCTICA DE LABORATORIO:

FUNDAMENTOS DEL MANEJO DE SEALES DISCRETAS




I. OBJETIVOS

a) Definir los fundamentos del manejo de seales discretas en el tiempo

II. TEMAS A TRATAR

1. Secuencias y seales discretas
2. Operaciones sobre seales discretas

III MARCO TEORICO

Una seal discreta viene representada matemticamente a travs de una funcin cuya
variable independiente es de tipo discreto (solo toma valores enteros). De esta manera,
podemos decir que una seal discreta es una secuencia de nmeros. Si estos nmeros o
amplitudes son tambin de tipo discreto, estaremos hablando de seales digitales. Las
seales discretas pueden obtenerse bien, a partir de un muestreo de una seal continua o
bien, a partir de un procesado discreto.

Las secuencias discretas son aquellas generadas a partir de un muestreo de seales cuya
variable independiente es continua. Por ejemplo, para el procesado discreto de una seal de
voz se necesita una secuencia discreta en donde estn almacenados los valores que toma la
voz continua en instantes temporales equiespaciados.

El inters creciente del procesado discreto o digital de seales estriba en su versatilidad y
eficiencia para tratar seales diferentes y procesos complejos de gran carga computacional.


1. Secuencias y Vectores

Analticamente, las seales discretas, x[n], se consideran de longitud infinita, abarcando un
eje de tiempos: n

Sin embargo, los elementos numricos empleados por Matlab son de tipo matricial M N
donde M y N son valores enteros finitos. Por tanto, un vector, x, de tipo columna N 1, o
de tipo fila 1 N nos servira para representar un intervalo de longitud finita N de la
secuencia que deseamos generar.

Adems es muy importante resaltar que la indexacin de un vector en Matlab comienza en
el elemento 1. Por tanto, si nuestro vector x est representando los valores de la secuencia
x[n]
desde n = 0 hasta n = N 1, el valor del vector x en el ndice 1 (x(1) se corresponder con el
valor de la secuencia x[n] en el instante temporal 0.


2 Secuencias Bsicas

Las secuencias bsicas para el procesado discreto de seales son la secuencia impulso, la
secuencia escaln y las exponenciales reales y complejas.


2.1 Secuencia Impulso Unidad

Es la secuencia ms sencilla y viene definida como:


Secuencia impulso unitario

La propiedad mas importante de la secuencia impulso se debe a que cualquier secuencia
arbitraria x[n] puede expresarse como:



donde los x[k] se consideran simplemente como constantes de amplitud. Este aspecto es de
inters al considerar sistemas lineales discretos.

Si deseamos visualizar mediante Matlab un intervalo de la secuencia impulso unitario entre
los instantes 0 n39, la secuencia de comandos que introduciremos ser:

>> d = zeros(40,1);
>> d(1) = 1;
>> stem(d)

Observe, que de esta manera, el valor de amplitud unitario en lugar de situarse en el
instante 0 se sita en el instante 1. Para etiquetar correctamente el eje horizontal, deber
crearse un vector que contenga el intervalo de tiempos:

>> n = 0:39;
>> d = zeros(40,1);
>> d(1) = 1;
>> stem(n,d)

Si ahora desea poner ttulos a la grfica y a los ejes:

>> title(delta(n)), xlabel(n)


2.2 Secuencia escaln Unidad

La secuencia escaln unidad viene definida como:





Secuencia escaln unitario

Las relaciones mas interesantes entre la secuencia impulso y la secuencia escaln vienen
dadas a travs de:





Si deseamos visualizar mediante Matlab un intervalo de la secuencia escaln unitario entre
los instantes 50n49, una posible secuencia de comandos seria:

>> n = -50:49;
>> x = zeros(100,1);
>> x(51:100) = ones(50,1);
>> clearplot 1
>> stem(n,x)
>> title(u(n)), xlabel(n), (replot)

Observe que la indexacin en Matlab comienza siempre en 1. As, el elemento x(51) se
corresponde con el valor u[0] de nuestra secuencia escaln analtica, mientras que el
elemento x(1) se corresponde con el valor u[50].


2.3 Secuencias Exponenciales Reales

Dadas las constantes reales A y _, definimos una secuencia exponencial como:



La exponencial ser decreciente en amplitud a lo largo del tiempo siempre que | | < 1,
mientras que ser creciente cuando | | > 1. Para el caso en que | | = 1 tenemos una
secuencia constante


Secuencias exponenciales reales

Con la siguiente secuencia de comandos, generamos y visualizamos un intervalo de una
exponencial real decreciente:





2.4 Secuencias Sinusoidales

La expresin de una secuencia sinusoidal viene dada por:




siendo A, constante real, el valor de amplitud en las unidades correspondientes; wo es el
valor de la frecuencia en radianes y _ es la fase de la secuencia tambin en radianes.

Algunas observaciones respecto a las secuencias sinusoidales:

No siempre son secuencias peridicas. La condicin de periodicidad para una secuencia
x[n] es x[n] = x[n + N] (siendo N una constante entera). Aplicada a nuestro caso, se
traduce en:


siendo k una constante entera. Slo en el caso en que la frecuencia wo cumpla la
anterior condicin, nos encontraremos ante una secuencia sinusoidal peridica, de
perodo N. Ntese que una secuencia sinusoidal discreta puede proceder del muestreo
de una seal continua. Dependiendo de como se efectu este muestreo, los valores de
las muestras seleccionadas en un perodo podrn coincidir (secuencia peridica) o no
(secuencia no peridica) con los valores elegidos en el resto de los perodos de la
sinusoide continua.

El conjunto de valores (wo+2 r), con r constante entera, generan todos la misma
secuencia sinusoidal:



Por tanto, a la hora de realizar un anlisis frecuencial de la secuencia x[n] = Acos(wo+2
r) slo necesitamos considerar el intervalo de frecuencias < wo<

Visto lo anterior, para un valor de !o cercano a 0, la sinusoide presentara pocas
oscilaciones (frecuencia baja), mientras que para valores de !o cercanos a _ la
sinusoide correspondiente oscilara rpidamente (frecuencias altas).

Como conclusin, dada una sinusoide peridica de perodo N, su frecuencia
fundamental vendra dada por 2_/N y slo existira un conjunto finito de N frecuencias
armnicas, a saber: Wk = 2 k/N, k = 1, 2, . . . ,N.



Secuencias sinusoidales reales


2.5 Secuencias Exponenciales Complejas

Una secuencia exponencial compleja viene dada por la expresin x[n] = A
n
, siendo A =
|A|e
j
y = | |e
jwo
.

De esta manera, podemos expresar x[n] como:



Si | | <> 1, las partes real e imaginaria de x[n] sern secuencias sinusoidales que se van
amortiguando (| | < 1) o amplificando (| | > 1) con el tiempo. Para el caso | | = 1, la
secuencia resultante se denomina sinusoide compleja.



Exponenciales moduladas por sinusoides


segn la expresin anterior, para visualizar una exponencial compleja, x, tendremos la
opcin de visualizar su parte real e imaginaria:

>> subplot(211), stem(n,real(x))
>> subplot(212), stem(n,imag(x))


o bien, de visualizar su modulo y fase:

>> subplot(211), stem(n,abs(x))
>> subplot(212), stem(n,angle(x))




3 Operaciones Elementales con Secuencias

3.1 Suma y Producto entre dos Secuencias

La suma y producto entre dos secuencias x[n] e y[n] se define como la suma y producto
muestra a muestra para 1 n +1:



Operando con secuencias truncadas, aparece un problema cuando estn definidas en
distintos intervalos de tiempo. Una primera solucin consiste en aadir ceros,
convenientemente, a las secuencias truncadas tal como se muestra en el siguiente ejemplo.
Si deseamos sumar las secuencias u1[n] y u2[n], generadas en el Ejercicio 3, podemos
proceder de la siguiente manera:


>> n = -10:50;
>> x1 = [u1 ; zeros(20,1)];
>> x2 = [zeros(10,1) ; u2];
>> x3 = x1 + x2;
>> x4 = x1 .* x2;
>> stem(n,x3)
>> title(Suma), xlabel(n), (replot)
>> stem(n,x4)
>> title(Producto), xlabel(n), (replot)

La otra solucin, consiste en un nuevo truncamiento de las dos secuencias a operar, de tal
manera que el nuevo intervalo de tiempos sea el comn de las dos secuencias.


>> n = 0:30;
>> x5 = u1(11:41);
>> x6 = u2(1:31);
>> x7 = x5 + x6;
>> x8 = x5 .* x6;
>> stem(n,x7)
>> title(Suma ), xlabel( n ), replot
>> stem(n,x8)
>> title(Producto ), xlabel( n ), replot


3.2 Cambio de Amplitud

Dada x[n] y la constante real A, obtenemos una nueva secuencia y[n] = Ax[n], donde cada
muestra de x[n] queda multiplicada por la constante A. Cuando |A| > 1, la secuencia
resultante y[n] es una versin amplificada de la original, mientras que si |A| < 1, y[n] es una
versin atenuada. Adems, si A < 0 tambin se produce un cambio de polaridad.


3.3 Desplazamiento

Desplazamiento lineal: Dada x[n] y la constante entera no, la secuencia desplazada y[n] =
x[n no] ser una traslacin de no unidades hacia la derecha si no > 0 o hacia la izquierda
cuando no < 0. Al operar con secuencias truncadas, un desplazamiento origina la prdida de
un conjunto de valores por un extremo del vector; por el otro extremo, habra que aadir
tantos ceros como valores hayamos perdido, tal como se muestra en el siguiente ejemplo.

Considerando la secuencia exponencial truncada e del inciso 2.3, el desplazamiento de 10
unidades hacia la derecha de dicho vector ser de esta manera:




Desplazamiento circular: considerando la secuencia del anterior ejemplo, el desplazamiento
circular de 10 unidades hacia la derecha seria:





3.4 Reflexin

Partiendo de x[n], la secuencia reflejada ser x[n]. Grficamente, la reflexin consiste en
realizar un abatimiento de la seal respecto al eje de ordenadas. En MATLAB el operador
2 puntos ayuda a reflejar un vector. Adems, deber tenerse en cuenta el cambio del vector
de ndices temporales. Continuando con la secuencia exponencial del Ejercicio 8, el
proceso para reflejarla ser:

>> n = -40:9;
>> er = e(length(e):-1:1);
>> stem(n,er)
>> title(Reflexion), xlabel( n ), (replot)



IV ACTIVIDADES

En base al marco terico:
Consigne la solucin obtenida en matlab
Consigne el help de los comandos utilizados

Observacin Para generar y visualizar secuencias se debe:

a) Definir la variable de tiempo n segn los lmites temporales impuestos para la
secuencia truncada, as como un par de variables que indiquen el inicio y fin del
eje de tiempos truncado, es decir: ni=n(1) y nf=n(length(n)).
b) Rellenar la secuencia que se va a definir, s[n], con ceros mediante el comando
s=zeros(n).
c) Colocar los valores de la secuencia deseada en las posiciones del eje adecuadas,
para lo cual tendremos en cuenta los lmites temporales donde la secuencia
deseada est definida, li y lf:
>> si=max(li-ni+1,1);
>> sf=min(length(n),lf-ni+1);
>> s(si:sf)=secuencia deseada;

Con esta regla general se tiene en cuenta los posibles truncamientos de seales
tanto por la izquierda como por la derecha.

1. Genere y visualice en Matlab las siguientes secuencias impulso unitario en los
intervalos temporales que se especifican:

[] []
[] [ ] [ ]
[] [ ]

2. Genere (usando la funcin zeros y el operador :) y visualice el tren peridico de
impulsos:
[] [ ]



3. Genere y visualice las siguientes secuencias:

[] []
[] [ ] [ ]
[] [ ]

4. Genere y visualice en el intervalo de tiempos 30n23, exponenciales reales
considerando = 0.4;0.8;1;1.5;2

5. Genere y visualice las siguientes secuencias sinusoidales:

[] []
[] (

)
[] (

)

6. Empleando el editor xedit, programe una funcin para Matlab, gencos.m que genere
sinusoides reales. La cabecera de la funcin ser:

function [s,n] = gencos(A,wo,fi,n0,n1);
% Entradas:
% A : amplitud
% wo: frecuencia en radianes
% fi: fase en radianes
% no: ndice temporal de comienzo de la secuencia
% n1: ndice temporal de finalizacin de la secuencia
% Salidas:
% s : la secuencia sinusoidal
% n : vector con los ndices temporales

7. Empleando el editor xedit, programe una funcin para Matlab, genexp.m que genere
exponenciales complejas. La cabecera de la funcin ser:

function [e,n] = genexp(absA,fasA,absa,fasa,n0,n1);
% Entradas:
% absA : valor absoluto de amplitudi
% fasA: fase de amplitud
% absa: valor absoluto del exponente
% fasa: fase del exponente
% n0: ndice temporal de comienzo de la secuencia
% n1: ndice temporal de finalizacin de la secuencia
% Salidas:
% e : la secuencia sinusoidal
% n : vector con los ndices temporales
8. Empleando la funcin anterior con los siguientes valores: A = 2

, wo = /5, no = 5
y n1 = 50, represente dos exponenciales complejas, una creciente y otra decreciente y
una sinusoide compleja. Salve en el workspace la exponencial decreciente con el
nombre e para utilizar ms adelante.

9.
a) Represente la secuencia resultante de sumar las secuencias u2[n] y x1[n] de los
ejercicios anteriores.
b) Represente la secuencia resultante de efectuar el producto entre d2[n] y u3[n].


10. Programe tres funciones cuyas cabeceras sean:

function [y,ny] = desp lin(x,n,m);
% Entradas:
% x : vector de entrada
% n : vector de ndices temporales de la entrada
% m : valor entero del desplazamiento
% Salidas:
% y : vector desplazado linealmente
% ny : vector de ndices temporales de la salida

function [y,ny] = desp circ(x,n,m);
% Entradas:
% x : vector de entrada
% n : vector de ndices temporales de la entrada
% m : valor entero del desplazamiento circular
% Salidas:
% y : vector desplazado circularmente
% ny : vector de ndices temporales de la salida

function [y,ny] = ref(x,n);
% Entradas:
% x : vector de entrada
% n : vector de ndices temporales de la entrada
% Salidas:
% y : vector reflejado circularmente
% ny : vector de ndices temporales de la salida

En las funciones de desplazamiento, tenga en cuenta que el valor m puede ser mayor
que la longitud de la secuencia de entrada.

11. Para comprobar las funciones que acaba de programar, considere la secuencia:

a) efectu un desplazamiento lineal de 5 unidades a la derecha de dicha secuencia.
b) efectu un desplazamiento circular de 5 unidades a la izquierda de dicha secuencia.
c) Represente la secuencia reflejada.

12. Para la secuencia d3[n] anterior, calcule los siguientes valores:
a) El valor de d3[n] en el instante n = 10.
b) El valor mximo de la secuencia d3[n] y el instante en el que est situado dicho
mximo (la funcin max le ser de utilidad).


V CONCLUSIONES

Emita al menos cinco conclusiones alrededor del manejo de seales discretas.

VI CUESTIONARIO/EJERCICIOS

1. Siendo una constante compleja sin ninguna restriccin,
a) evalu la expresin:

b) Considerando ahora | |< 1 evale , demuestre
que




2. Consigne un formulario con las principales series