P4 - Operaciones Con Secuencias

Procesamiento Digital de Señales Universidad de Sonora Departamento de Investigación en Física Ingeniería en Tecnología

Views 32 Downloads 0 File size 859KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Procesamiento Digital de Señales Universidad de Sonora Departamento de Investigación en Física Ingeniería en Tecnología Electrónica

P4 - Operaciones con secuencias Mízquez Corona Luis Antonio, Grijalva Ruiz Jesús Francisco, Arizaga León Jorge Manuel

Introducción En el siguiente texto se aborda el procedimiento y resultados obtenidos al realizar distintas operaciones con secuencias en Matlab. Así mismo es continuación de la tercera práctica.

Objetivos -

Entender las operaciones con secuencias. Analizar señales con ayuda de Matlab. Adquirir experiencia en el manejo de señales discretas.

Fundamentos teóricos Otras operaciones sobre señales:

Corrimiento temporal: A menudo es necesario recorrer una secuencia x[n] un número k de instantes, de manera que se obtenga una nueva secuencia recorrida en el tiempo* x1[n] = x[n - k] Si definimos una variable m = n - k, la operación antes descrita se convierte en x1[m + k] = x[n]

De esta manera, la operación no tiene efecto sobre el vector x, pero el vector índice n ha cambiado al agregársele una cantidad k a cada elemento. Esto se muestra en la función corrsegnal. * Si bien hablamos de tiempo, las secuencias están referidas a un índice, no a un instante de tiempo dado.

Pliegue (reflejo) de una secuencia: En esta operación, cada elemento de la secuencia x[n] se refleja respecto de n = 0, es decir y[n] = x[-n] Esto se muestra en la función plieguesegnal.

Suma de secuencias: Esta es la adición elemento por elemento de cada secuencia. Sin embargo, a menudo las secuencias y sus índices asociados, no son de la misma longitud y/o rango de soporte motivos por los cuales no se pueden sumar tan solo con decir: x1 + x2. Lo que se debe hacer primero es aumentar (si fuera necesario) los índices de las secuencias originales para que ambos sean de la misma longitud. Posteriormente, alinear los vectores x1 y x2 de acuerdo a su posición original, dentro del rango de soporte definido en el paso anterior. Finalmente, realizar la adición de ambas secuencias. Esto se muestra en la función sumsegnal.

Multiplicación de secuencias: Este es el producto elemento por elemento de cada secuencia. Se aplican las mismas consideraciones que definimos arriba para la adición de secuencias. Esto se muestra en la función multsegnal.

Materiales -

Computadora con Matlab

Procedimiento y resultados Dada la secuencia x[n] = {1 2 3 4 5 6 7 6 5 4 3 2 1}, y haciendo uso de las funciones mostradas en esta práctica y en la anterior, determine y grafique las siguientes secuencias a) x1[n] = 2x[n-5] - 3x[n+4] b) x2[n] = x[3-n] + x[n]x[n-2]

1.- Se definió la secuencia indicada como x[n] = {1 2 3 4 5 6 7 6 5 4 3 2 1} con n=13 elementos que van desde [0 : 12] Se graficó para observar el resultado.

La gráfica anterior corresponde a la señal original sobre la cual se trabajó, posteriormente se realizaron más operaciones, detalladas a continuación. 2.- Para realizar la siguiente función, con su correspondiente gráfica: x1[n] = 2x[n-5] - 3x[n+4] es necesario hacer las operaciones individualmente. En este punto se aplica la función corrsegnal, que sirve para hacer un corrimiento en el tiempo de la señal original. Se realizó de la siguiente manera: [Xa, na]= corrsegnal(Xn, n, 5)

Se graficó el resultado

Se observa una gráfica de la misma amplitud, pero atrasada 5 instantes en el tiempo.

3.- De igual manera se define la segunda parte de lo que será nuestra señal del inciso a) [Xb, nb]= corrsegnal(Xn, n, -4)

Se grafica el resultado

Se observa la gráfica adelantada en el tiempo en 4 instantes T. 3.- Ahora bien, se requiere que estas dos señales obtenidas mediante la función corrsegnal sean sumadas, para ello se utilizará la función sumsegnal. La forma de hacerlo es la siguiente. x1[n] = 2x[n-5] - 3x[n+4]

[x1,n1]=sumsegnal(2*Xa,na,-3*Xb,nb);

Se obtiene la gráfica

Se cumple con el inciso A.

4.- Para realizar la siguiente función x2[n] = x[3-n] + x[n]x[n-2] es necesario aplicar las funciones vistas anteriormente, de manera individual, como con el inciso A. Primero se define x[3-n] de la siguiente forma a) Adelantando la señal 3 instantes b) Aplicando un “espejo”.

Adelantando la señal 3 instantes

Aplicando el “Espejo” [Xb,nb]=plieguesegnal(Xa,na)

Graficando

Con esto ya obtenemos nuestra señal x[3-n] 5.- Ahora, aplicamos corrsegnal nuevamente para obtener x[n-2] [Xc,nc]=corrsegnal(Xa,na,2)

Teniendo esta señal, tenemos que multiplicarla por la señal original haciendo uso de multsegnal de esta forma [Xd,nd]=multsegnal(Xc,nc,Xn,n)

Se obtiene la gráfica

6.- Solamente hace falta sumar estas señales para obtener lo requerido en el inciso b x2[n] = x[3-n] + x[n]x[n-2]

Se hace de la siguiente forma. [x2,n2]=sumsegnal(Xb,nb,Xd,nd) Obteniendo

Análisis de Resultados Observando las gráficas se puede notar que efectivamente se cumplen los puntos requeridos, haciendo uso de las funciones otorgadas por el profesor.

Conclusiones Es relativamente sencillo graficar estas señales discretas, lo único que hay que hacer, es hacer y practicar, para poder dominar el manejo de señales discretas en Matlab, y con ello poder diseñar filtros digitales.

Referencias http://posgrado.cifus.uson.mx/moodle/mod/resource/view.php?id=513

Material Adicional

Funciones utilizadas

function [y,n] = corrsegnal(x,m,n0) % Implements y[n] = x[n-n0] % ------------------------------% [y,n] = corrsegnal(x,m,n0) % n = m + n0; y = x;

function [y,n] = plieguesegnal(x,n) % Implements y(n) = x(-n) % --------------------------% [y,n] = plieguesegnal(x,n) % y = fliplr(x); n = -fliplr(n);

function [y,n] = sumsegnal(x1,n1,x2,n2) % Implementa y[n] = x1[n] + x2[n] % ------------------------------% [y,n] = sumsegnal(x1,n1,x2,n2) % y = secuencia resultante sobre el indice n, el cual incluye a n1 y n2 % x1= primera secuencia sobre el �ndice n1 % x2= segunda secuencia sobre el �ndice n2 (n2 puede ser diferente de n1) % n = min(min(n1),min(n2)): max(max(n1),max(n2)); % duraci�n de y[n] y1= zeros(1,length(n)); y2 = y1; % inicializaci�n y1(find((n>=min(n1))&(n=min(n2))&(n=min(n1))&(n=min(n2))&(n