Você está na página 1de 8

ESCUELA POLITCNICA DEL EJRCITO

PROYECTO 3

PROCESAMIENTO DIGITAL DE SEALES


MAYRA SANGUCHO 2012-2013

TRANSFORMADA DISCRETA EN MATLAB


MAYRA ELIZABETH SANGUCHO VELASCO d_mryis20@hotmail.com

RESUMEN La transformada de Fourier se aplica a funciones continuas en el tiempo. Adems, implica el clculo de una integracin con extremos infinitos que no en todos los resulta fcil de resolver. Dado que a travs de las computadoras digitales, que abundan como herramienta de proceso acadmico, se puede abordar esta temtica con muy buenos resultados, es que se utiliza una variante que es la transformada Discreta de Fourier.
Tratamiento de imagen (JPEG) y audio (MP3) Reduccin de ruido en seales, como el ruido blanco Anlisis en frecuencia de cualquier seal discreta Anlisis de materiales y estadstica Sntesis, mediante la transformada inversa IFFT

DFT: es un mtodo muy eficiente para determinar el espectro en frecuencia de una seal. Permite convertir una secuencia de valores en el dominio del tiempo a una secuencia de valores equivalente en el dominio de la frecuencia. OBJETIVOS 1- Representar cualquier seal en el dominio de la frecuencia. 2- Generar la transformada discreta en MATLAB. 3.- Generalizar los conceptos anteriores para la resolucin de problemas de anlisis. 1.- INTRODUCCION En este trabajo presentamos la solucin de problemas comunes de ingeniera en Matlab. Los ingenieros y cientficos se valen de la computadora para resolver diversos problemas, desde la evaluacin de una funcin sencilla hasta la resolucin de un sistema de ecuaciones. Matlab se ha convertido en el entorno de computacin tcnica preferido de muchos ingenieros y cientficos porque es un sistema interactivo nico que incluye cmputo numrico, cmputo simblico y visualizacin cientfica. 2.- FUNDAMENTO TERICO La Transformada Discreta de Fourier es un mtodo muy eficiente para determinar el espectro en frecuencia de una seal. Permite convertir una secuencia de valores en el dominio del tiempo a una secuencia de valores equivalente en el dominio de la frecuencia. La Inversa de la Transformada

PALABRAS CLAVES CONVOLUCIN: es un operador matemtico que transforma dos funciones f y g en una tercera funcin que en cierto sentido representa la magnitud en la que se superponen f y una versin trasladada e invertida de g. FFT: es la abreviatura usual (del ingls Fast Fourier Transform) de un eficiente algoritmo que permite calcular la transformada de Fourier discreta (DFT) y su inversa.

Discreta de Fourier (IDFT) realiza el proceso contrario. Recordemos el par de ecuaciones de la DFT:

Se requiere realizar una operacin de trabajo utilizando Matlab. Se va a utilizar en comando conv entre dos secuencias: x(n) y h(n)
x = ones(1,10); h = [1 2 3 4 5 6 7 8 9 10];

Donde las constantes W son conocidas como factores twiddle y definidas como:
Sean x0, ...., xn-1 nmeros complejos. La transformada discreta de Fourier (DFT, por sus siglas en ingls) se define como

y1 = conv(x,h); cuya entrada de

argumentos pueden ser cambiados, ya que la operacin de convolucin puede ser simtrica. Si se quiere determinar todas las muestras de nulas de y(n), se debe forzar a x(n) para tener la longitud deseada por medio de rellena de la entrada original con el nmero apropiado de ceros:
xaux = [x zeros(1,length(h)-1)]; y3 = filter(h,1,xaux);

La evaluacin directa de esa frmula requiere O(n) operaciones aritmticas. Mediante un algoritmo FFT se puede obtener el mismo resultado con slo O(n log n) operaciones. En general, dichos algoritmos dependen de la factorizacin de n pero, al contrario de lo que frecuentemente se cree, existen FFTs para cualquier n, incluso con n primo. La idea que permite esta optimizacin es la descomposicin de la transformada a tratar en otras ms simples y stas a su vez hasta llegar a transformadas de 2 elementos donde k puede tomar los valores 0 y 1. Una vez resueltas las transformadas ms simples hay que agruparlas en otras de nivel superior que deben resolverse de nuevo y as sucesivamente hasta llegar al nivel ms alto. Al final de este proceso, los resultados obtenidos deben reordenarse. 3.- DESARROLLO DE CONTENIDOS 3.1.- REALIZAR LOS EXPERIMENTOS 3.1 Y 3.2 DE LA SECCIN DO-IT-YOURSELF DEL LIBRO TEXTO. EXPERIMENTO 3.1

La longitud de la seal de salida deseada debe ser la longitud de la convolucin lineal de x(n) y h(n), es decir:
length(y) = length(x) + length(h) 1.

Por lo tanto, se debe garantizar que las FFt de x(n) y h(n) se determinan con esa longitud.
length_y = length(x) + length(h) - 1; X = fft(x,length_y); H = fft(h,length_y); Y4 = X.*H; y4 = ifft(Y4); steam(y4);

Al ejecutar el cdigo anterior se obtuvo como resultados la siguiente grfica:

En el caso en el que slo una de las seales tenga una larga duracin, el mtodo de solapamiento y suma puede ser implementados como:
y5 = fftfilt(h,xaux);

Si k=2

Donde fftfilt es una funcin de filtro. - En este experimento se verifico como el dominio de la frecuencia se convierte en una herramienta importante en varias situaciones prcticas. - La manera ms simple y rpida para realizar el filtrado digital es el comando conv. EXPERIMENTO 3.2

K=8

Dado el cdigo:
fs = 200; f = 10; time = 0:1/fs:(1-1/fs); k = 0; x = sin(2*pi*f.*time) + k*randn(1,fs); figure(1); plot(time,x);

Donde fs=200muestras/s para un intervalo de 1s Y k es el parmetro que controla la cantidad de ruido presente en x(n) k=0;

Si el valor de k va aumentando se puede notar que: La sinusoide ya no se puede visualizar a simple vista por la presencia de ruido. - para cantidades mayores de ruido, el dominio de la frecuencia se puede detectar para la componente sinusoidal.

3.2.- RESOLVER LOS EJERCICIOS 3.32, 3.33 Y 3.34 DEL LIBRO TEXTO USANDO MATLAB. EJERCICIO 3.32 a.- Utilizar la FFT para obtener la convolucin de 2 seales. Dado el cdigo: x = [5 6 7 8 9 10]; h = [2 4 6 8 10 12 ]; X = fft(x,20); H = fft(h,20); Y = X.*H; y = ifft(Y); stem(y); Se obtiene la siguiente grfica:

La convolucin es una potente herramienta matemtica utilizada en el procesado de seales. Aunque en general se define como un operador que permite determinar la respuesta de un sistema lineal, invariante en el tiempo ante una determinada entrada, tambin se puede aplicar a dos seales arbitrarias. La convolucin de f y g se denota por f*g y se define como la integral del producto de ambas funciones despus de que una sea invertida y desplazada. En MATLAB contamos con la funcin conv() que realiza la convolucin de los vectores x y h. El vector resultante tiene un tamao igual a length(x)+length(h)-1.
>> y=conv(x,h);

c.- Verificar experimentalmente los resultados con el valor de longitud de 20 en la funcin filter para ver qu ocurre. b.- Utilice los comandos conv y filter para obtener la convolucin de las seales anteriores. y1 = conv(x,h); Usando el siguiente cdigo:
y2 = filter([h zeros(1,10)],1,[x zeros(1,10)]);

y2 = filter(h,1,x);

EJERCICIO 3.33
Sea:

a.- Para l = 100, calcular la DFT de x (n) utilizando 64 muestras. Se puede observar el presencia de las dos sinusoides? n = 64; ws = 200; l = 100; for i=1:1:n; x1(i) = sin((ws/10)*i) + sin(((ws/10)+(ws/l))*i); end y = real(fft(x1)); y1 = imag(fft(x1)); c.- Calcular la DFT de x (n) con 128 muestras. Puede usted ahora observar la presencia de dos sinusoides? for k=1:1:128; x3(k) = sin((ws/10)*k) + sin(((ws/10)+(ws/l))*k); end y4 = real(fft(x3)); y5 = imag(fft(x3)); parte real:

b.- Aumentar la longitud de la DFT a 128 muestras por relleno 64 ceros para las muestras originales de x (n). Opina sobre los resultados. for j=1:1:64; x(j) = 0; end x2 = [x1 x]; y2 = real(fft(x2)); y3 = imag(fft(x2)); Parte imaginaria:

d.- Aumento de la longitud de la DFT de x (n) de 128 muestras de relleno de 128 ceros a las muestras de x (n). Repita para un relleno de 384 ceros. Opina sobre los resultados. for l=1:1:128; x10(l) = 0; end x4 = [x3 x10]; y6 = real(fft(x4)); y7 = imag(fft(x4)); for m=1:1:384; x11(m) = 0; end x5 = [x3 x11]; y8 = real(fft(x5)); y9 = imag(fft(x5)); Parte real:

k = 75; X(1) = x(1)+x(2)+x(3); for i = 1:1:k; x(i+1) = x(1) + x(2)*exp((j*2*pi*k)/N) + x(3)*exp((j*4*pi*k)/N); end xreal=real(X); ximag=imag(X); stem(xreal);

EJERCICIO 1.26 Ahora que el usuario conoce y maneja los principales conceptos que hacen de MatLab una de las herramientas ms tiles en el desarrollo de programas y funciones matemticas a la hora de resolver ejemplos ms concretos en los que se puede desarrollar sus conocimientos recin adquiridos. 4.- CONCLUSIONES GENERALES Es claro ahora que para el usuario que MatLab abarca un gran nmero de funciones que a su vez han sido diseadas para satisfacer las necesidades de la gran mayora de ciencias exactas conocidas. Sin embargo quizs an nos quede curiosidad de saber hasta dnde pueden llegar las aplicaciones que puede desarrollar.

Parte imaginaria:

EJERCICIO 3.34 stem(xreal); >> x = [2 5 9]; N = 15;

La ingeniera Electrnica es una de las ramas ms importantes de la ingeniera por el gran nmero de especializaciones que de ella emanan. MATLAB se ha convertido en el ambiente preferido para estudiantes, profesores e investigadores de las reas de ciencias, ingeniera y finanzas. MATLAB es un sistema interactivo nico que integra cmputo numrico, matemticas simblicas y visualizacin grfica en 2 y 3 dimensiones. Usuarios sin conocimientos de MATLAB, que requieran aprender los conceptos bsicos del paquete, as como los que deseen realizar desde operaciones sencillas hasta resolver sistemas de ecuaciones simultneas, ecuaciones de orden mayor,- ecuaciones matriciales, ecuaciones diferenciales, grficas de 2 y 3 dimensiones, etc. REFERENCIAS
[1] G. Obregn-Pulido, B. Castillo-Toledo and A. Loukianov, A globally convergent estimator for n frequencies, IEEE Trans. On Aut. Control. Vol. 47. No 5. pp 857-863. May 2002. [2] H. Khalil, Nonlinear Systems, 2nd. ed., Prentice Hall, NJ, pp. 50-56, 1996. [3] Francis. B. A. and W. M. Wonham, MatLab , Automatica. Vol. 12. pp. 457-465. 1976. [5] Control Toolbox (6.0), Users Guide, The Math Works, 2001, pp. 2-10-2-35.

Você também pode gostar