Sie sind auf Seite 1von 12

Edited by Foxit Reader Copyright(C) by Foxit Corporation,2005-2009 For Evaluation Only.

LABORATORIO DE SEALES DISCRETAS


RESUMEN

Una seal discreta viene representada matemticamente a travs de una funcin cuya variable n a e o independiente es de tipo discreto (slo toma valores enteros). De esta manera, podemos decir o que una seal discreta es una secuencia de nmeros. Si estos nmeros o amplitudes son tambin n u u e de tipo discreto, estaremos hablando de seales digitales. Las seales discretas pueden obtenern n se bien, a partir de un muestreo de una seal continua o bien, a partir de un procesado discreto. n Objetivo: En esta prctica nos centraremos en la generacin y visualizacin de secuencias a o o bsicas unidimensionales en el entorno Matlab as como en las operaciones elementales con sea cuencias. Duracin: o

Introduccin terica o o
Las seales discretas pueden proceder de estudios demogrcos, de datos econmicos o meteon a o rolgicos para los cuales, la variable independiente es inherentemente discreta. Otro tipo de o secuencias discretas son aqullas generadas a partir de un muestreo de seales cuya variable e n independiente es continua. Por ejemplo, para el procesado discreto de una seal de voz se nen cesita una secuencia discreta en donde estn almacenados los valores que toma la voz continua e en instantes temporales equiespaciados. El inters creciente del procesado discreto o digital de seales estriba en su versatilidad y e n eciencia para tratar seales bien diferentes y procesos complejos de gran carga computacional. n La implementacin de estos procesos puede llevarse a cabo con diferentes tecnolog que hoy o as, en d pueden considerarse como muy potentes y econmicas: microprocesadores de propsito a o o espec co, ordenadores de propsito general, dispositivos de onda acstica de supercie... o u En los siguientes apartados se presentan los conceptos fundamentales de las seales discretas. n

Secuencias y Vectores
Anal ticamente, las seales discretas, x[n], se consideran de longitud innita, abarcando un eje n de tiempos: n +.

17

Edited by Foxit Reader Copyright(C) by Foxit Corporation,2005-2009 For Evaluation Only.

Sin embargo, los elementos numricos empleados por Matlab son de tipo matricial M N e donde M y N son valores enteros nitos. Por tanto, un vector, x, de tipo columna N 1, o de tipo la 1 N nos sevir para representar un intervalo de longitud nita N de la secuencia a que deseamos generar. Adems es muy importante resaltar que la indexacin de un vector en Matlab comienza en a o el elemento 1. Por tanto, si nuestro vector x est representando los valores de la secuencia x[n] a desde n = 0 hasta n = N 1, el valor del vector x en el ndice 1 (x(1) se corresponder con el a valor de la secuencia x[n] en el instante temporal 0.

Secuencias Bsicas a
Las secuencias bsicas para el procesado discreto de seales son la secuencia impulso, la sea n cuencia escaln y las exponenciales reales y complejas. o

Secuencia Impulso Unidad


Es la secuencia ms sencilla y viene denida como: a 1, n = 0 0, n = 0

[n] =

(2.1)

1 0

Figura 2.1: Secuencia impulso unitario La propiedad ms importante de la secuencia impulso se debe a que cualquier secuencia a arbitraria x[n] puede expresarse como:

x[n] =
k=

x[k][n k]

(2.2)

donde los x[k] se consideran simplemente como constantes de amplitud. Este aspecto es de inters al considerar sistemas lineales discretos. e Si deseamos visualizar mediante Matlab un intervalo de la secuencia impulso unitario entre los instantes 0 n 39, la secuencia de comandos que introduciremos ser: a >> d = zeros(40,1); >> d(1) = 1; >> stem(d)

Edited by Foxit Reader Copyright(C) by Foxit Corporation,2005-2009 For Evaluation Only.

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 u a vector que contenga el intervalo de tiempos: >> >> >> >> n = 0:39; d = zeros(40,1); d(1) = 1; stem(n,d)

Si ahora desea poner t tulos a la grca y a los ejes: a >> title(delta(n)), xlabel(n) (Recuerde que en Octave tendr que introducir el comando replot) a Ejercicio 1 Genere y visualice en Matlab las siguientes secuencias impulso unitario en los intervalos temporales que se especican: d1 [n] = d2 [n] = d3 [n] = d4 [n] = 2[n], 20 n 20 3.5[n 115], 100 n 150 0.5[n], 1 n 20 [n + 110], 120 n < 100

Ejercicio 2 Genere (usando la funcin zeros() y el operador :) y visualice el tren peo ridico de impulsos: o

p[n] =
k=

[n k5]

0 n 39

2.3.2 Secuencia Escaln Unidad o


La secuencia escaln unidad viene denida como: o u[n] = 1, n 0 0, n < 0
u[n] ooo 0 n

(2.3)

Figura 2.2: Secuencia escaln unitario o Las relaciones ms interesantes entre la secuencia impulso y la secuencia escaln vienen dadas a o a travs de: e
n

u[n] =
k=

[k] =
k=0

[n k]

(2.4)

Edited by Foxit Reader Copyright(C) by Foxit Corporation,2005-2009 For Evaluation Only.

[n] = u[n] u[n 1]

(2.5)

Si deseamos visualizar mediante Matlab un intervalo de la secuencia escaln unitario entre los o instantes 50 n 49, una posible secuencia de comandos ser a: >> >> >> >> >> >> 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 correso , ponde con el valor u[0] de nuestra secuencia escaln anal o tica, mientras que el elemento x(1) se corresponde con el valor u[50].

Ejercicio 3 Genere y visualice las siguientes secuencias: u1 [n] = 2u[n], 10 n 30 u2 [n] = u[n 10], 0 n 50 u3 [n] = 0.5u[n + 100], 120 n < 20 Observacin de programacin: En general puede ser interesante sistematizar la generao o cin y visualizacin de secuencias de la siguiente manera: o o 1. Denir la variable de tiempo n segn los l u mites temporales impuestos para la secuencia truncada, as como un par de variables que indiquen el inicio y n del eje de tiempos truncado, es decir: ni=n(1) y nf=n(length(n)). 2. Rellenar la secuencia que se va a denir, s[n], con ceros mediante el comando s=zeros(n). 3. Colocar los valores de la secuencia deseada en las posiciones del eje adecuadas, para lo cual tendremos en cuenta los l mites temporales donde la secuencia deseada est denida, a 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 n izquierda como por la derecha.
1

La funcin clearplot slo es necesaria en Octave y libera los t o o tulos introducidos previamente.

Edited by Foxit Reader Copyright(C) by Foxit Corporation,2005-2009 For Evaluation Only.

Secuencias Exponenciales Reales


Dadas las constantes reales A y , denimos una secuencia exponencial como: x[n] = An (2.6)

La exponencial ser decreciente en amplitud a lo largo del tiempo siempre que || < 1, mientras a que ser creciente cuando || > 1. Para el caso en que = 1 tenemos una secuencia constante a n.
alfa < 1 8 6 4 2 0 20 8 6 4 2 0 20 alfa > 1

10

0 10 n 1 < alfa < 0

20

10

0 n alfa < 1

10

20

10 5 0 5 10 20

10 5 0 5 10 20

10

0 n

10

20

10

0 n

10

20

Figura 2.3: Secuencias exponenciales reales Con la siguiente secuencia de comandos, generamos y visualizamos un intervalo de una exponencial real decreciente: >> >> >> >> n = -9:40; e = 2 (0.9) . n; stem(n,e) title(e(n)), xlabel(n), (replot)

Observe el uso del operador . para efectuar la elevacin del valor 0.9 a cada uno de los o elementos del vector n que contiene el ndice de tiempos.

Cuestin 1 o presin: o

a) Siendo una constante compleja sin ninguna restriccin, evale la exo u


N 1

n
n=0

b) Considerando ahora || < 1,


n n=0 n n=k

Edited by Foxit Reader Copyright(C) by Foxit Corporation,2005-2009 For Evaluation Only.

b1) Evale: u b2) Evale: u

b3) Demuestre la siguiente igualdad:

nn =
n=0

(1 )2

Ejercicio 4 Genere y visualice en el intervalo de tiempos 10 < n 20, exponenciales reales considerando = 0.5; 0.8; 0.95; 1.4; 1.1; 1.05. Obtenga la suma de los elementos de la exponencial con = 0.95 empleando los resultados de la Cuestin 2.1. Compruebe el anterior resultado con el que se obtiene empleando la funcin o o sum.

2.3.4 Secuencias Sinusoidales


La expresin de una secuencia sinusoidal viene dada por: o x[n] = Acos(o n + ) (2.7)

siendo A, constante real, el valor de amplitud en las unidades correspondientes; o es el valor de la frecuencia en radianes y es la fase de la secuencia tambin en radianes. e Algunas observaciones respecto a las secuencias sinusoidales: No siempre son secuencias peridicas. La condicin de periodicidad para una secuencia o o x[n] es x[n] = x[n + N ] (siendo N una constante entera). Aplicada a nuestro caso, se traduce en: o N = 2k (2.8)

siendo k una constante entera. Slo en el caso en que la frecuencia o cumpla la anterior o condicin, nos encontraremos ante una secuencia sinusoidal peridica, de per o o odo N . Ntese que una secuencia sinusoidal discreta puede proceder del muestreo de una seal o n continua. Dependiendo de cmo se efecte este muestreo, los valores de las muestras o u seleccionadas en un per odo podrn coincidir (secuencia peridica) o no (secuencia no a o peridica) con los valores elegidos en el resto de los per o odos de la sinusoide continua. El conjunto de valores (o +2r), con r constante entera, generan todos la misma secuencia sinusoidal: x[n] = Acos(o n + 2rn + ) = Acos(o n + ) (2.9)

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

PR

Edited by Foxit Reader Copyright(C) by Foxit Corporation,2005-2009 For Evaluation Only. NALES DISCRETAS

2.3.

Visto lo anterior, para un valor de o cercano a 0, la sinusoide presentar pocas oscia laciones (frecuencia baja), mientras que para valores de o cercanos a la sinusoide correspondiente oscilar rpidamente (frecuencias altas). a a Como conclusin, dada una sinusoide peridica de per o o odo N , su frecuencia fundamental vendr dada por 2/N y slo existir un conjunto nito de N frecuencias armnicas, a a o a o saber: k = 2k/N, k = 1, 2, . . . , N .
Sinusoide periodica 1 0.5 0 0.5 1 20

15

10

0 5 n Sinusoide aperiodica

10

15

20

1 0.5 0 0.5 1 20

15

10

0 n

10

15

20

Figura 2.4: Secuencias sinusoidales reales Cuestin 2 Demuestre la condicin de periodicidad para las secuencias sinusoidales. o o Ejercicio 5 Genere y visualice las siguientes secuencias sinusoidales: s1 [n] = cos(n/15) 20 n 40 s2 [n] = 2sin(n/15 + /3) 20 n 50 s3 [n] = cos(n/2) 0 n 40 La sinusoide s1 [n] es peridica de per o odo N = 30 y frecuencia fundamental 1 = 2/30. Existe un conjunto de slo 30 secuencias que sean peridicas de per o o odo N = 30. Visualice de dicho conjunto de sinusoides, aqullas cuyas frecuencias fundamentales son 3 = 23/30, e 6 = 26/30, 10 = 210/30 y 15 = 215/30. A partir de las grcas, determine el perodo a fundamental de cada una de ellas. Qu ocurre con las oscilaciones de la sinusoide con 15 ? e Ejercicio 6 Empleando el editor xedit, programe una funcin para Matlab, gensin.m que o genere sinusoides reales. La cabecera de la funcin ser: o a function [s,n] = gensin(A,wo,fi,n0,n1);

Edited by Foxit Reader Copyright(C) by Foxit Corporation,2005-2009 For Evaluation Only.

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 o Salidas: s : la secuencia sinusoidal n : vector con los ndices temporales

Secuencias Exponenciales Complejas


Una secuencia exponcial compleja viene dada por la expresin x[n] = An , siendo A = |A|ej o jo y = ||e . De esta manera, podemos expresar x[n] como: x[n] = |A|||n ej(o n+) = |A|||n cos(o n + ) + j|A|||n sin(o n + ) (2.10)

Si || = 1, las partes real e imaginaria de x[n] sern secuencias sinusoidales que se van amora tiguando (|| < 1) o amplicando (|| > 1) con el tiempo. Para el caso || = 1, la secuencia resultante se denomina sinusoide compleja.
Coseno amortiguado 8 6 4 2 0 2 4 20 15 10 5 0 5 n Coseno creciente 10 15 20

8 6 4 2 0 2 4 20 15 10 5 0 n 5 10 15 20

Figura 2.5: Exponenciales moduladas por sinusoides Segn la expresin anterior, para visualizar una exponencial compleja, x, tendremos la opcin u o o de visualizar su parte real e imaginaria: >> subplot(211), stem(n,real(x)) >> subplot(212), stem(n,imag(x))

Edited by Foxit Reader Copyright(C) by Foxit Corporation,2005-2009 For Evaluation Only.

o bien, de visualizar su mdulo y fase: o >> subplot(211), stem(n,abs(x)) >> subplot(212), stem(n,angle(x)) (En Octave para recuperar el modo de dibujo de una grca por ventana deber teclear el a a comando oneplot.) Ejercicio 7 Empleando el editor xedit, programe una funcin para Matlab, genexp.m que o genere exponenciales complejas. La cabecera de la funcin ser: o a function [e,n] = genexp(modA,faseA,moda,fasea,n0,n1); Entradas: modA : |A| faseA: moda : || fasea: o no: ndice temporal de comienzo de la secuencia n1: ndice temporal de finalizacin de la secuencia o Salidas: e : la secuencia exponencial n : vector con los ndices temporales Ejercicio 8 Empleando la funcin anterior con los siguientes valores: |A| = 4, o = o /15, = /3, no = 9 y n1 = 40, 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. a

2.4 Operaciones Elementales con Secuencias


2.4.1 Suma y Producto entre dos Secuencias
La suma y producto entre dos secuencias x[n] e y[n] se dene como la suma y producto muestra a muestra para n +:

s[n] = x[n] + y[n] =

(x[k] + y[k])[n k]
k=

(2.11)

p[n] = x[n]y[n] =

(x[k]y[k])[n k]
k=

(2.12)

Operando con secuencias truncadas, aparece un problema cuando estn denidas en distintos a intervalos de tiempo. Una primera solucin consiste en aadir ceros, convenientemente, a las o n

Edited by Foxit Reader Copyright(C) by Foxit Corporation,2005-2009 For Evaluation Only.

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 o manera que el nuevo intervalo de tiempos sea el comn de las dos secuencias. u >> >> >> >> >> >> >> >> >> 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

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

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 amplicada de la original, mientras que si |A| < 1, y[n] es una versin o o atenuada. Adems, si A < 0 tambin se produce un cambio de polaridad. a e

Edited by Foxit Reader Copyright(C) by Foxit Corporation,2005-2009 For Evaluation Only.

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 hacia la izquierda a o o cuando no < 0. Al operar con secuencias truncadas, un desplazamiento origina la prdida de e un conjunto de valores por un extremo del vector; por el otro extremo, habr que aadir tantos a n ceros como valores hayamos perdido, tal como se muestra en el siguiente ejemplo. Considerando la secuencia exponencial truncada e del Ejercicio 8, el desplazamiento de 10 unidades hacia la derecha de dicho vector ser de esta manera: a >> >> >> >> >> n = -9:40; e 10 = zeros(50,1); e 10(11:50) = e(1:40); stem(n,e 10) title(Desplazamiento), xlabel( n ), (replot)

Desplazamiento circular: considerando la secuencia del anterior ejemplo, el desplazamiento circular de 10 unidades hacia la derecha ser a: >> >> >> >> >> >> n = -9:40; ec 10 = zeros(50,1); ec 10(1:10) = e(41:50); ec 10(11:50) = e(1:40); stem(n,ec 10) title(Despl. circular), xlabel( n ), (replot)

Reexin o
Partiendo de x[n], la secuencia reejada ser x[n]. Grcamente, la reexin consiste en a a o realizar un abatimiento de la seal respecto al eje de ordenadas. En Octave o MATLAB el n operador 2 puntos ayuda a reejar un vector. Adems, deber tenerse en cuenta el cambio a a del vector de ndices temporales. Continuando con la secuencia exponencial del Ejercicio 8, el proceso para reejarla ser: a >> >> >> >> n = -40:9; er = e(length(e):-1:1); stem(n,er) title(Reflexin), xlabel( n ), (replot) o

Ejercicio 10 Programe tres funciones cuyas cabeceras sean: function [y,ny] = desp lin(x,n,m);

Edited by Foxit Reader Copyright(C) by Foxit Corporation,2005-2009 For Evaluation Only.

32

Das könnte Ihnen auch gefallen