LA TRANSFORMADA DE FOURIER Y SU APLICACIÓN EN EL PROCESAMIENTO DE IMÁGENES PROYECTO INTERNO DE INVESTIGACIÓN CIENTÍFICA
Informe
( ) ∑∑() Mauricio García Gabriel Pazmiño
Quito, Diciembre 2008
LA TRANSFORMADA DE FOURIER Y SU APLICACIÓN EN EL PROCESAMIENTO DE IMÁGENES Informe Mauricio García Gabriel Pazmiño
Resumen El presente proyecto comprende la investigación sobre los fundamentos matemáticos, algoritmos y aplicación práctica en el procesamiento de imágenes de la Transformada de Fourier, y la difusión a través de la elaboración de un texto orientado a los estudiantes de Informática, Sistemas o ramas afines, ya que la implementación de la Transformada Rápida de Fourier (más conocida como FFT por sus siglas en inglés) aplicada al procesamiento de imágenes, en la bibliografía especializada, no se encuentra explícitamente bien documentada.
Introducción La Transformada de Fourier es una herramienta matemática que tiene un uso muy amplio en lo referente al tratamiento digital de señales, se encuentra implementada bajo la forma de dispositivos electrónicos de reconocimiento de voz e imagen; puede ser aplicada a varios campos como análisis espectral, ecuaciones diferenciales, resolución de problemas elásticos estacionarios y dinámicos, etc. El presente trabajo, enlaza los aspectos teóricos con la aplicación práctica de la Transformada de Fourier en el procesamiento digital de imágenes mediante el desarrollo de aplicaciones que implementan los algoritmos de la Transformada Rápida de Fourier, los mismos que son explicados y analizados de una manera clara y didáctica, en un texto de nivel superior orientado a los estudiantes de Informática, Sistemas y Ciencias de la Computación el cual se encuentra en construcción.
Importancia El desarrollo matemático de la transformada de Fourier fue explicado por
Jean Baptiste
Joseph Fourier, en su libro la Teoría Analítica del Calor, publicado en 1822; posteriormente, en 1965 Cooley y Tukey publicaron su artículo “Un algoritmo para calcular las Series de Fourier Complejas”, el cual es conocido como algoritmo FFT (Fast Fourier Transform) y que con el
Pág. 1
desarrollo acelerado de las computadoras digitales ha permitido la aplicación de la FFT a diferentes campos. Su aplicación al procesamiento de imágenes se encuentra documentado en los libros específicos sobre la materia a un nivel teórico, en los que no se expone directamente, la forma de implementación de los diferentes algoritmos, y en el mejor de los casos presentan una descripción narrativa del algoritmo, como ejemplo se puede revisar el libro Digital Image Processing de González y Woods. Por otra parte, los libros específicos sobre la Transformada Rápida de Fourier, se centran su aplicación mayormente a la fundamentación matemática y explicación de los algoritmos, presentando aplicaciones más orientadas al Procesamiento Digital de Señales, que corresponde al c ampo de la Electrónica.
Objetivo del estudio Con las consideraciones anteriores, el presente proyecto, reúne en un documento la fundamentación matemática, los algoritmos de la transformada Rápida de Fourier, y la aplicación de los mismos al procesamiento de imágenes mediante el desarrollo de software que muestra como se implementan dichos algoritmos.
Materiales, Métodos y Procedimientos Diseño de Investigación Para el desarrollo de la investigación se aplicó el método lógico deductivo, el cual permitió desarrollar y explicar los fundamentos matemáticos de la FFT, también se utilizó el método do experimental, para comprobar los resultados arrojados por los algoritmos implementados al aplicarlos en las imágenes digitales. Para la realización del proyecto fue necesario identificar la bibliografía especializada en dos áreas: transformada Rápida de Fourier y Procesamiento Digital de Imágenes, la misma que se anexa. La investigación se dividió en tres fases:
Fundamentos matemáticos de la Transformada de Fourier
Análisis de los algoritmos de la Transformada Rápida de Fourier
Análisis, desarrollo e implementación de Aplicaciones utilizando la transformada de Fourier.
Fundamentos matemáticos: En esta fase se estudió y analizó los fundamentos matemáticos de la Transformada de Fourier, para lo cual se partió de las series de Fourier, llegando hasta la Integral de Fourier; y de acuerdo con los objetivos del proyecto, se desarrolló en MatLab la aplicación que permite
Pág. 2
mostrar en forma didáctica el cálculo de los coeficientes de Fourier para series periódicas, así como su transformada. Para el desarrollo de esta aplicación fue necesario estudiar el desarrollo de interfases gráficas con el objeto de visualizar los resultados de la implementación algorítmica de la serie de Fourier, el siguiente gráfico muestra la pantalla principal de la aplicación, y cuyo código fue nte, debidamente explicado forma parte del documento de la investigación.
Algoritmos de la Transformada Rápida de Fourier La transformada discreta de Fourier e n una dimensión está dada por:
() ∑ ()
Donde
x(n) es el conjunto de datos original X(u) es la transformada de x(n) N es el número de elementos u representa la variable en el dominio de la frecuencia
Y su extensión a dos dimensiones está definida por
() ∑ ∑ ()
Pág. 3
Partiendo de estas definiciones se analizaron los algoritmos en diferentes fuentes bibliográficas y se implementaron en Visual Basic.Net los siguientes: Para una dimensión
Método directo: el cual implementa directamente la definición de la transformada discreta en una dimensión.
Método recursivo: el cual está basado en el algoritmo FFT propuesto por Cooley y Tukey.
Método iterativo, también basado en el algoritmo anterior, y que presenta una mayor complejidad, puesto que requiere de la implementación del algoritmo de reversión de bits de un arreglo.
El prototipo de esta implementación se muestra a continuación.
Para la creación de los prototipos, además de los algoritmos implementados fue necesario crear el conjunto de funciones y procedimientos que trabajan con números complejos. Para la comprobación de los resultados, se realizaron varias corridas con diferentes tamaños de arreglos, las cuales fueron contrastadas con los datos arrojados por la herramienta Análisis de Fourier que implementa Excel. La implementación de la Transformada discreta bidimensional necesitó el análisis y programación de los siguientes procedimientos: Transformada directa bidimensional, la cual utiliza la fórmula de la transformada discreta bidimensional de Fourier, y cuyos resultados sirvieron para contrastar los datos devueltos por otros métodos. Pág. 4
FFT-2D, el mismo que implementa la transformada rápida de Fourier en dos dimensiones, utilizando como base la implementación en una dimensión. El prototipo de esta implementación se muestra a c ontinuación:
Implementación de las aplicaciones de la FFT En el estado actual del proyecto, se está analizando las aplicaciones de la FFT en el procesamiento digital de imágenes previo a la construcción del software correspondiente, así como la respectiva documentación explicativa que se integrará al texto.
Discusión de Resultados Los principales logros alcanzados en la realización del proyecto hasta e l momento, son: a) Unificar en un documento la fundamentación matemática de la Transformada de Fourier, la comprensión de los algoritmos que permiten su implementación tanto en una como en dos dimensiones mediante software cuyo código fuente es parte del presente trabajo. b) Contar con bibliografía avanzada en el tema de la investigación. Mediante este proyecto fue posible realizar la importación de libros de reciente publicación y de diferentes niveles de complejidad en las áreas de tratamiento de imágenes y de la Transformada de Fourier, los cuales sirven para el desarrollo de futuros proyectos en diferentes áreas como sería la del tratamiento de imágenes médicas; en anexo se adjunta el detalle de la bibliografía adquirida. Cabe destacar los siguientes aspectos que durante el desarrollo del proyecto constituyen elementos de interés: a) El desarrollo de la fundamentación matemática de la Transformada de Fourier requiere conocimientos de cálculo integral y números complejos. Pág. 5
b) La comprensión de los algoritmos involucrados para la implementación de la Transformada Rápida de Fourier, requiere conocer las herramientas matemáticas que subyacen detrás de los mismos, y un buen nivel de programación en algún lenguaje. c)
Es importante que quienes estudian la FFT, a efectos de poder realizar diferentes simulaciones tengan conocimiento de MatLab para poder visulizar gráficamente
los
resultados. d) La revisión de la bibliografía adquirida permitió ver las tendencias actuales en cuanto al procesamiento digital de imágenes, y demuestra que en los libros especializados de procesamiento de imágenes no se encuentra implementaciones prácticas que de carácter didáctico demuestren el uso de la FFT, por lo que es necesario recurrir a la bibliografía especializada sobre FFT, en los que si se encuentra la forma de implementar la FFT en lenguajes de programación como FORTRAN, C o BASIC, pero mencionan muy brevemente o casi nada su aplicación al procesamiento de imágenes. Específicamente, mediante el desarrollo de los prototipos antes señalados, se demostró, como lo señalan varios autores, que la implementación directa de la Transformada Discreta de Fourier para 2
un conjunto de N elementos, es de orden N , lo que la hace impracticable para el manejo de imágenes mayores a 100 x 100 pixeles, y que la mejor alternativa de implementación constituyen los algoritmos de FFT, los cuales están basados en el de Cooley y Tukey y cuyo orden es de Nlog2N y que reducen significativamente el tiempo de uso del procesador. Los algoritmos que implementan la FFT, y que se encuentran en la bibliografía especializada, tienen un alto nivel de optimización, y son el resultado de los esfuerzos de muchos investigadores durante las últimas décadas, lo que ha permitido el uso práctico de la Transformada de Fourier en diferentes áreas.
Bibliografía Gonzalez, C., Woods, R. (2008). Digital Image Processing (3ra. Ed). New Jersey. EE.UU: Prentice Hall Russ, J. (2006). The Image Processing Handbook , (5ta. Ed). EE.UU. CRC Press Burger, W., James,M. (2007). Digital Image Processing: An Algorithmic Introduction using Java. EE.UU.: Springer James , J. (2003). Student's Guide to Fourier Transforms. EE.UU. Cambridge Universty Press Brigham, E. (1988). Fast Fourier Transform and Its Applications. New York. Prentice Hall
James, G. (2002). Matemáticas avanzadas para ingeniería. EE.UU.. Prentice Hall
Pág. 6
Anexos Detalle de bibliografía adquirida TITULO
AUTOR
AREA
Digital Image Processing (3rd Edition)
Rafael C. Gonzalez (Author), Richard E. Woods (Author)
PDI
Algorithms for Image Processing and Computer Vision Practical Algorithms for Image Analysis with CD-ROM
J. R. Parker (Author)
PDI
The Pocket Handbook of Image Processing Algorithms In C The Image Processing Handbook, Fifth Edition (Image Processing Handbook) Foundations of Image Science (Hardcover) Digital Image Processing: An Algorithmic Introduction using Java (Hardcover) Introduction to Image Processing and Analysis (Hardcover) Computer Vision: A Modern Approach (Hardcover) A Student's Guide to Fourier Transforms (Paperback) Fast Fourier Transform and Its Applications Machine Vision : Theory, Algorithms, Practicalities Understanding the FFT, Second Edition, Revised (Paperback) Fourier Transform and Its Applications (Paperback) Digital Signal Processing Algorithms: Number Theory, Convolution, Fast Fourier Transforms, and Applications (Crc Press Computer Engineering Series) (Hardcover) Fast Fourier Transforms: Second Edition (Studies in Advanced Mathematics) (Hardcover) Handbook of Image and Video Processing
Harley R. Myler and Arthur R. Weeks
PDI
John C. Russ
PDI
Harrison H. Barrett (Author), Kyle Myers (Author)
PDI
Wilhelm Burger (Author), Mark James Burge (Author)
PDI
John C. Russ (Author), J. Christian Russ (Author)
PDI
David A. Forsyth (Author), Jean Ponce (Author)
PDI
J. F. James (Author)
Transformada de Fourier
E. Brigham (Author)
Transformada de Fourier
E. R. Davies (Author)
PDI
Lawrence O'Gorman (Author), PDI Michael J. Sammon (Author), Michael Seul (Author)
Anders E. Zonst (Author)
Transformada de Fourier
Ronald Bracewell
Transformada de Fourier
Hari Krishna (Author)
Tratamiento de señales
James S. Walker
Transformada de Fourier
by Alan C. Bovik (Author)
PDI
Pág. 7
Transformada rápida de Fourier Para otros usos de este término, véase Transformación (desambiguación).
FFT es la abreviatura usual (del inglés Fast Fourier Transform) de un eficiente algoritmo que permite calcular la transformada de Fourier discreta (DFT) y su inversa. La FFT es de gran importancia en una amplia variedad de aplicaciones, desde el tratamiento digital de señales y filtrado digital en general a la resolución de ecuaciones en derivadas parciales o los algoritmos de multiplicación rápida de grandes enteros. El algoritmo pone algunas limitaciones en la señal y en el espectro resultante. Por ejemplo: la señal de la que se tomaron muestras y que se va a transformar debe consistir de un número de muestras igual a una potencia de dos. La mayoría de los analizadores TRF permiten la transformación de 512, 1024, 2048 o 4096 muestras. El rango de frecuencias cubierto por el análisis TRF depende de la cantidad de muestras recogidas y de la proporción de muestreo. Uno de los algoritmos aritméticos más ampliamente utilizados es la transformada rápida de Fourier, un medio eficaz de ejecutar un cálculo matemático básico y de frecuente empleo. La transformada rápida de Fourier es de importancia f undamental en el análisis matemático y ha sido objeto de numerosos estudios. La aparición de un algoritmo eficaz para esta operación fue una piedra angular en la historia de la informática. Las aplicaciones de la transformada rápida de Fourier son múltiples. Es la base de muchas operaciones fundamentales del procesamiento de señales, donde tiene amplia utilización. Además, proporciona un medio oportuno para mejorar el rendimiento de los algoritmos para un conjunto de problemas aritméticos comunes.
Contenido
[ocultar]
1 Definición 2 Algoritmo de diezmado en el tiempo 3 Aplicaciones 4 Enlaces externos
[editar ]Definición Sean x 0, ...., x n- 1 números complejos. La transformada discreta de Fourier (DFT, por sus siglas en inglés) se define como
Pág. 8
La evaluación directa de esa f órmula requiere O(n ²) operaciones aritméticas. Mediante un algoritmo FFT se puede obtener el mismo resultado con sólo O(n log n ) operaciones. En general, dichos algoritmos dependen de la factorización 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 optimización es la descomposición de la transformada a tratar en otras más 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 más simples hay que agruparlas en otras de nivel superior que deben resolverse de nuevo y así sucesivamente hasta llegar al nivel más alto. Al final de este proceso, los resultados obtenidos deben reordenarse. Dado que la transformada discreta de Fourier inversa es análoga a la transformada discreta de Fourier, con distinto signo en el exponente y un factor 1/n , cualquier algoritmo FFT puede ser fácilmente adaptado para el cálculo de la transformada inversa. Por lo general, tenemos que:
Un algoritmo que es mucho más eficiente en cuanto al tiempo de cómputo para grandes arreglos de entrada cuya longitud es una potencia entera de dos, recibe el nombre de Transformada de Fourier Rápida (TFR), y dicho algoritmo fue popularizado por Cooley y Tukey en 1965. Se puede ilustrar mediante el siguiente ejemplo, calculando la TFR de un conjunto de cuatro muestras de datos utilizando el algoritmo. Defina el conjunto de muestras de una señal
₀
como la señal X [n] en TD de forma que los datos de entrada para el algoritmo sea
₀
₀
₀
₀
{X [0],X [1],X [2],X [3]}. La fórmula de la TFD es la siguiente:
Se recomienda usar la notación:
-j(2π/N ) F
W=e
Para este caso de 4 puntos de datos, es posible escribir la TFR en forma de matriz como:
Pág. 9
Efectuar la multiplicación usual de matrices directa r equeriría N² multiplicaciones complejas y N(N-1) adiciones complejas. Por lo tanto puedes escribirse de la siguiente manera:
n
n+mN
Debido a que W =W
F
, donde m es un entero, es posible factorizar la matriz en el
producto de dos matrices;
Los elementos “1” y “2” han cambiado de lugar en el vector que se encuentra del lado izquierdo. Cuando se multipliquen las matrices, los renglones 1 y 2, también se intercambiarán. Después se calcula el número de multiplicaciones y adiciones que se requieren. Primero se identifica el res ultado de multiplicar la segunda matriz cuadrada por el conjunto de datos de entrada como:
Pág. 10
El primer elemento es: 0
X1[0]=X0[0]+W X0[2] Como una multiplicación para llegar a una conclusión general.De manera s imilar X1[1] requiere una multiplicación y una adición. Sin embargo,X 1[2] requiere sólo una adición 0
debido a que Este cálculo requiere una multiplicación y una adición.Aunque W es uno, se 0
2
dejará esto W =-W y el producto ya se ha obtenido en el cálculo del primer elemento y puede, en consecuencia, sólo almacenarse hasta que se necesite y luego restarse en vez de sumarse. De manera similar,X 1[3] sólo requiere una adición más. Hasta ahora se tienen dos multiplicaciones y cuatro sumas. Apelando a c ondiciones de simetrías similares en la segunda multiplicación de matrices se encuentra que s e requieren dos multiplicaciones y cuatro sumas más. Así, en total, se necesitan cuatro multiplicaciones y ocho adiciones. Puesto que, computacionalmente, las multiplicaciones requieren por lo general mucho más tiempo de cómputo que las adiciones, el algoritmo de TFR para cuatro puntos es alrededor de cuatro veces más rápido que la TDF directa.
Pág. 11
[editar Algoritmo ]
de diezmado en el tiempo
Es el algoritmo más famoso para el cálculo de una FFT, diseñado por J.W. Cooley y John Tukey en 1965. Tomando como entrada una señal discreta x[n] con N muestras, se basa en dividir la señal de entrada en otras dos señales de N/2 muestras (por un lado los coeficientes pares y por otro los impares), y se envían cada una de estas subseñales a una FFT de tamaño N/2 puntos. Cada uno de los coeficientes de salida de la FFT de las muestras impares se multiplica por
, donde k es la posición del vector
salida, y se suma a las muestras pares. A su vez, las FFT de N/2 puntos se pueden resolver de esta misma manera, realizando esta operación de manera recursiva hasta obtener una FFT de una señal de tamaño 2, cuyo resultado es:
[editar Aplicaciones ]
Tratamiento de imagen (JPEG) y audio (MP3)
Pág. 12
Reducción de ruido en señales, como el ruido blanco
Análisis en frecuencia de cualquier señal discreta
Análisis de materiales y estadística
Síntesis, mediante la transformada inversa IFFT
[editar ]Enlaces
externos
Algoritmo FFT de Cooley –Tukey en Wikipedia Inglesa.
Fast Fourier Transform en inglés.
"The Scientist and Engineer's Guide to Digital Signal Processing" : se encuentra numerosa información relacionada con el t ema, concretamente en los capítulos 10, 11, 12 y 31.
Ver las calificaciones de la página
Evalúa este artículo ¿Qué es esto? Confiable Objetivo Completo Bien escrito Estoy muy bien informado sobre este tema (opcional) Enviar calificaciones Categorías:
Transformaciones
Procesamiento de señales
Crear una cuenta
Ingresar
Artículo Discusión Leer Editar Ver historial
Pág. 13
Portada
Portal de la comunidad
Actualidad
Cambios recientes
Páginas nuevas
Página aleatoria
Ayuda Donaciones Notificar un error Imprimir/exportar
Crear un libro
Descargar como PDF
Versión para imprimir Herramientas En otros idiomas
Català
Česky
Dansk
Deutsch
English
Français
िहनदी
Bahasa Indonesia
Italiano
日本語
한국어
Nederlands
Polski
Português
Русский Српски / srpski
Svenska
தமழ
Türkçe
Українська Tiếng Việt
中文
Esta página fue modificada por última vez el 8 ene 2012, a las 17:12.
El texto está disponible bajo la Licencia Creative Commons Atribución Compartir Igual 3.0 ;
podrían ser aplicables cláusulas adicionales. Léanse los términos de uso para más información. Wikipedia® es una marca registrada de la Fundación Wikimedia, Inc., una organización sin ánimo de lucro.
Contacto
Pág. 14
Pág. 15