SlideShare a Scribd company logo
1 of 5
Download to read offline
Transformada r´apida de Fourier
Conchari Cabrera Christian Ricardo
Quenta Alvarez Hamed Emmerson
30 de Mayo 2020
1. C´alculo eficiente de la DFT
Como en m´ultiples problemas de programaci´on. muchas veces la divisi´on del problema en peque˜nos sub-
problemas es el camino m´as f´acil hacia una soluci´on eficiente. Ocurre de igual manera con la transformada
discreta de Fourier. El m´etodo consiste en la descomposici´on de una DFT de N puntos en transformadas
DFT sucesivamente m´as peque˜nas.
Para ilustrar las ideas b´asicas, consideremos el c´alculo de una DFT de N puntos, donde N puede descompo-
nerse en factores como un producto de dos enteros, es decir:
N = LM (1)
Esto se puede ilustrar de mejor forma con la siguiente imagen extra´ıda del texto de Tratamiento digital de
se˜nales de Proakis y Manolakis.
Figura 1: Matriz de datos bidimensional para almacenar una secuencia x(n)[1]
Obs´ervese en la figura 1 que l es el´ındice para las filas y m es el´ındice para las columnas. As´ı, la secuencia
x(n) puede almacenarse en un matriz rectangular de diferentes maneras, dependiendo cada una de ellas de
la correspondencia existente entre el ´ındice n y los ´ındices (l,m).
Teniendo la siguiente correspondencia:
n = Ml + m (2)
Esto nos lleva a un arreglo donde la primera fila consta de los primeros M elementos de x(n), la segunda fila
est´a formada por los M elementos siguientes de x(n), y as´ı sucesivamente como se muestra en la figura 2.
1
Figura 2: Disposici´on por filas [1]
Tomando como ejemplo el caso donde N = 10, podemos tomar dos factores primos como 2 y 5. Entonces
tendremos.
x(0) = x(4 ∗ 0 + 0)
x(1) = x(4 ∗ 0 + 1)
x(2) = x(4 ∗ 0 + 2)
x(3) = x(4 ∗ 0 + 3)
x(4) = x(4 ∗ 0 + 1) = x(5 − 1)
x(5) = x(4 ∗ 1 + 1) = x[(2 − 1) ∗ 4]
x(6) = x(4 ∗ 1 + 2)
x(7) = x(4 ∗ 1 + 3)
x(8) = x(4 ∗ 1 + 4)
x(9) = x(4 ∗ 1 + 5) = x(2 ∗ 5 − 1)
Cuadro 1: Arreglo bidimensional para una disposici´on por filas.
.
x(0) x(1) x(2) x(3) x(4)
x(5) x(6) x(7) x(8) x(9)
Tambi´en se puede utilizar la correspondencia siguiente para una disposici´on por columnas.
n = l + mL (3)
En este caso se almacenan los L primeros elementos de x(n) en la primera columna, los siguientes L elementos
en la segunda columna, y as´ı sucesivamente como se ilustra en la figura 3
2
Figura 3: Disposici´on por columnas [1]
Volviendo al ejemplo anterior.
x(0) = x(0 + 0 ∗ 1)
x(1) = x(1 + 0 ∗ 1) = x(2 − 1)
x(2) = x(2 + 0 ∗ 1) = x(2)
x(3) = x(3 + 0 ∗ 1) = x(2 + 1)
x(4) = x(4 ∗ 0 + 1) = x(2 ∗ 2)
x(5) = x(4 ∗ 1 + 1) = x[(2 ∗ 2) + 1]
x(6) = x(4 ∗ 1 + 2) = x(2 ∗ 3)
x(7) = x(4 ∗ 1 + 3) = x[(2 ∗ 3) + 1]
x(8) = x(4 ∗ 1 + 4) = x[(5 − 1) + 2]
x(9) = x(4 ∗ 1 + 5) = x(2 ∗ 5 − 1)
Cuadro 2: Arreglo bidimensional para una disposici´on por columnas.
.
x(0) x(2) x(4) x(6) x(8)
x(1) x(3) x(5) x(7) x(9)
Se puede utilizar una disposici´on similar para almacenar los valores calculados de la DFT. En esto caso,
la correspondencia se establece entre el ´ındice k y la pareja de ´ındices (p,q), donde 0 ≤ p ≤ L − 1 y
0 ≤ q ≤ M − 1. Si seleccionamos la correspondencia
k = Mp + q (4)
la DFT se almacena por filas, donde la primera fila contiene los M primeros elementos de la DFT X(k),
la segunda fila contiene el siguiente conjunto de M elementos, y as´ı sucesivamente. Por el contrario, la
correspondencia
k = qL + p (5)
da como resultado un almacenamiento por columnas de X(k), donde los L primeros elementos se almacenan
en la primera columna, el segundo conjunto de L elementos se almacena en la segunda columna, y as´ı
sucesivamente.
3
Suponiendo que x(n) se hace corresponder con una matriz rectangular x(l, m) y X(k) con la correspondiente
matriz rectangular X(p, q)
La DFT se pueden expresar como una suma doble sobre los elementos de la matriz rectangular multiplicada
por los correspondientes factores de fase. M´as espec´ıficamente, adoptamos la correspondencia por columnas
y filas para x(n).
X(p, q) =
M−1
m=0
N−1
n=0
x(l, m)W
(Mp+q)(mL+l)
N (6)
Mediante las propiedades de exponentes.
W
(Mp+q)(mL+I)
N = WMLmp
N ∗ WmLq
N ∗ WMpl
N ∗ Wlq
N (7)
Aprovechando las propiedades de simetr´ıa y periodicidad del factor de fase WN .
Propiedad de simetr´ıa: W
k+N/2
N = −Wk
N
Propiedad de periodicidad: Wk+N
N = Wk
N
Se puede lograr una mayor eficiencia en la FFT sobre la DFT:
WNmp
N = 1, WmqL
N = Wmq
N/L = Wmq
M , WMpl
N = Wpl
N/M = Wpl
L (8)
Lo cual da lugar a
X(p, q) =
L−1
l=1
Wlq
N
M−1
m=0
x(l, m)Wmq
M Wlp
L (9)
La expresi´on (9) implica el c´alculo de las transformadas DFT de longitud M y longitud L. Dividiendo el
problema por partes como se plantea inicialmente. Para calcular esta ´ultima expresi´on se puede desarrollar
un procedimiento de tres pasos:
1. Para comenzar se calculan las DFT de M puntos llamando F(l, q) al factor de la sumatoria central.
F(l, q) =
M−1
m=0
x(l, m)Wmq
M , 0 ≤ q ≤ M − 1 (10)
Para cada una de las filas, l = 0, 1, ..., L − 1
2. En segundo lugar, calculamos una nueva matriz rectangular G(l,q) definida como:
G(l, q) = Wlq
N F(l, q), 0 ≤ l ≤ L − 1, 0 ≤ q ≤ M − 1 (11)
3. Por ´ultimo, calculamos las DFT de L puntos
X(p, q) =
L−1
l=0
G(l, q)Wlp
L (12)
para cada columna q = 0, 1, ... , M − 1, de la matriz G(l,q).
Aunque pueda parecer que el procedimiento es m´as complicado que utilizando el procedimiento tradicional.
Si evaluamos la complejidad de c´alculo (9). El primer paso implica el c´alculo de L transformadas DFT,
cada una de M puntos. Luego este paso requiere LM2
multiplicaciones complejas y LM(M − 1) sumas
complejas. El segundo paso requiere LM multiplicaciones complejas. Por ´ultimo, el tercer paso requiere ML2
multiplicaciones complejas y ML(L − 1) sumas complejas. El segundo paso requiere LM multiplicaciones
complejas. Por ´ultima, el tercer paso requiere ML2
multiplicaciones complejas y ML(L−1) sumas complejas.
Entonces, la complejidad de c´alculo ser´a:
Multiplicaciones complejas: N(M + L + 1)
Sumas complejas: N(M + L − 2)
4
En ambos casos podemos observar que el n´umero de operaciones se ha visto reducido. Tomando como ejemplo
el caso de N=10. Podemos seleccionar L=2 y M=5. Lo cual nos llevar´a a hacer 100 multiplicaciones complejas
a trav´es del c´alculo tradicional de la DFT, por otra parte a trav´es de la FFT nos llevar´a a 80 multiplicaciones
complejas y 50 sumas complejas. Lo cual significa una reducci´on considerable. De igual forma ocurrir´a con el
n´umero de sumas. Se puede observar que el n´umero de multiplicaciones se ha reducido de N2
a N(M +L+1)
y el n´umero de sumas se ha reducido de N(N − 1) a N(M + L − 2).
Ampliando el panorama, cuando N es un n´umero compuesto muy alto, este puede ser descompuesto en
factores para definir un producto de n´umeros primos de la forma
N = r1, r2, ..., rn (13)
Este procedimiento dar´a como resultado transformadas DFT m´as peque˜nas, lo que, a su vez lleva a un
algoritmo m´as eficiente. La primera segmentaci´on de la secuencia x(n) es una matriz rectangular de M
columnas con L filas. La descomposici´on de los datos implicar´a la segmentaci´on de cada fila (o columna) en
matrices rectangulares m´as peque˜nas que dar´an lugar a la transformadas DFT m´as peque˜nas.
Para ilustrar mejor el procedimiento antes mencionado, podemos utilizar una vez m´as el ejemplo antes
mencionado del c´alculo de una DFT de N = 10 puntos, descompuesto en sus factores primos N = 2∗5 = 10.
Descomponiendo por columnas:
Fila 1: x(0, 0) = x(0) x(0, 1) = x(2) x(0, 2) = x(4) x(0, 3) = x(6) x(0, 3) = x(8)
Fila 2: x(1, 0) = x(1) x(1, 1) = x(3) x(1, 2) = x(5) x(1, 3) = x(7) x(1, 3) = x(9)
Por el procedimiento antes mencionado obtendremos la siguiente matriz 2X5 utilizando la ecuaci´on (10):
F(l, q) =
M−1
m=0
x(l, m)Wmq
M , 0 ≤ q ≤ M − 1
F(0, 0) F(0, 1) F(0, 2) F(0, 3) F(0, 4)
F(1, 0) F(1, 1) F(1, 2) F(1, 3) F(1, 4)
Ahora debemos multiplicar cada uno de los t´erminos F(l,q) por los factores de fase Wlq
N = Wlq
10, 0 ≤ q ≤ 4
y 0 ≤ q ≤ 1. Obtendremos una matriz 2X3, utilizando la ecuaci´on (11):
G(l, q) = Wlq
N F(l, q), 0 ≤ l ≤ L − 1, 0 ≤ q ≤ M − 1
G(0, 0) G(0, 1) G(0, 2) G(0, 3) G(0, 4)
G(1, 0) G(1, 1) G(1, 2) G(1, 3) G(1, 4)
El paso final consistir´a en calcular las DFT de dos puntos para cada una de las cinco columnas, utilizando
la ecuaci´on (12):
X(p, q) =
L−1
l=0
G(l, q)Wlp
L
X(0, 0) = X(0) X(0, 1) = X(1) X(0, 2) = X(2) X(0, 3) = X(3) X(0, 4) = X(4)
X(1, 0) = X(5) X(1, 1) = X(6) X(1, 2) = X(7) X(1, 3) = X(8) X(1, 4) = X(9)
En resumen, el algoritmo desarrollado implica los siguientes pasos:
Algoritmo utilizando la disposici´on por columnas.
1. Almacenar la se˜nal por columnas.
2. Calcular la DFT de M puntos de cada fila.
1. Multiplicar la matriz resultante por los factores de fase Wlq
N .
1. Calcular la DFT de L puntos de cada columna.
1. Leer la matriz resultante por filas.
Referencias
[1] J. G. Proakis and D. G. Manolakis, Tratamiento digital de se˜nales. Pearson Prentice-Hall, 2007.
5

More Related Content

What's hot

6.metodo de newton
6.metodo de newton6.metodo de newton
6.metodo de newton
rjvillon
 
Resolver ecuaciones lineales y no lineales bueno
Resolver ecuaciones lineales y no lineales buenoResolver ecuaciones lineales y no lineales bueno
Resolver ecuaciones lineales y no lineales bueno
frankkqqzz
 
Analisis numericoi tema4_matlab
Analisis numericoi tema4_matlabAnalisis numericoi tema4_matlab
Analisis numericoi tema4_matlab
Divum Tyhuj
 
7.metodo de newton2
7.metodo de newton27.metodo de newton2
7.metodo de newton2
rjvillon
 
Talle respacios vectom subespaciom bases, dimension, ld, li
Talle respacios vectom subespaciom bases, dimension, ld, liTalle respacios vectom subespaciom bases, dimension, ld, li
Talle respacios vectom subespaciom bases, dimension, ld, li
YOLVI ADRIANA CORDOBA BUITRAGO
 

What's hot (20)

Espacios metricos
Espacios metricosEspacios metricos
Espacios metricos
 
Espacios vectoriales euclideos
Espacios vectoriales euclideosEspacios vectoriales euclideos
Espacios vectoriales euclideos
 
6.metodo de newton
6.metodo de newton6.metodo de newton
6.metodo de newton
 
Integraciondefunciones
IntegraciondefuncionesIntegraciondefunciones
Integraciondefunciones
 
Integraciondefunciones3
Integraciondefunciones3Integraciondefunciones3
Integraciondefunciones3
 
Rel2
Rel2Rel2
Rel2
 
Transformada fourier almira
Transformada fourier almiraTransformada fourier almira
Transformada fourier almira
 
Tema 4 integración numérica
Tema 4 integración numéricaTema 4 integración numérica
Tema 4 integración numérica
 
Problemas tema1 sy_c
Problemas tema1 sy_cProblemas tema1 sy_c
Problemas tema1 sy_c
 
Resolver ecuaciones lineales y no lineales bueno
Resolver ecuaciones lineales y no lineales buenoResolver ecuaciones lineales y no lineales bueno
Resolver ecuaciones lineales y no lineales bueno
 
Integración numérica
Integración numéricaIntegración numérica
Integración numérica
 
Analisis numericoi tema4_matlab
Analisis numericoi tema4_matlabAnalisis numericoi tema4_matlab
Analisis numericoi tema4_matlab
 
Antiderivada
AntiderivadaAntiderivada
Antiderivada
 
MA185 MATEMÁTICA V 3era Práctica Calificada
MA185 MATEMÁTICA V 3era Práctica CalificadaMA185 MATEMÁTICA V 3era Práctica Calificada
MA185 MATEMÁTICA V 3era Práctica Calificada
 
7.metodo de newton2
7.metodo de newton27.metodo de newton2
7.metodo de newton2
 
Teoria y problemas de calculo integral ccesa007
Teoria y  problemas  de calculo integral   ccesa007Teoria y  problemas  de calculo integral   ccesa007
Teoria y problemas de calculo integral ccesa007
 
Practica4 newton-raph-resuelta
Practica4 newton-raph-resueltaPractica4 newton-raph-resuelta
Practica4 newton-raph-resuelta
 
Guía de Cálculo (Microeconomía UNAB)
Guía de Cálculo (Microeconomía UNAB)Guía de Cálculo (Microeconomía UNAB)
Guía de Cálculo (Microeconomía UNAB)
 
Talle respacios vectom subespaciom bases, dimension, ld, li
Talle respacios vectom subespaciom bases, dimension, ld, liTalle respacios vectom subespaciom bases, dimension, ld, li
Talle respacios vectom subespaciom bases, dimension, ld, li
 
Apuntes y ejercicios Señales y sistemas (Borrador)
Apuntes y ejercicios Señales y sistemas (Borrador)Apuntes y ejercicios Señales y sistemas (Borrador)
Apuntes y ejercicios Señales y sistemas (Borrador)
 

Similar to Transformada rápida de Fourier

Método de Newton
Método de NewtonMétodo de Newton
Método de Newton
Kike Prieto
 
Clasificación de funciones reales
Clasificación de funciones realesClasificación de funciones reales
Clasificación de funciones reales
angiegutierrez11
 
Elba Alcala - Algebra lineal
Elba Alcala - Algebra linealElba Alcala - Algebra lineal
Elba Alcala - Algebra lineal
Elba Alcala
 

Similar to Transformada rápida de Fourier (20)

Practica9
Practica9Practica9
Practica9
 
Taller de tratamiento de señales, Ingenieria
Taller de tratamiento de señales, IngenieriaTaller de tratamiento de señales, Ingenieria
Taller de tratamiento de señales, Ingenieria
 
Algebra
AlgebraAlgebra
Algebra
 
Separacion de variables
Separacion de variablesSeparacion de variables
Separacion de variables
 
Articulo
ArticuloArticulo
Articulo
 
Taller 10-14-ii
Taller 10-14-iiTaller 10-14-ii
Taller 10-14-ii
 
Método de Newton
Método de NewtonMétodo de Newton
Método de Newton
 
Oviedo mco nolineales
Oviedo mco nolinealesOviedo mco nolineales
Oviedo mco nolineales
 
Quadratic Sieve, algoritmos y ejemplos
Quadratic Sieve, algoritmos y ejemplosQuadratic Sieve, algoritmos y ejemplos
Quadratic Sieve, algoritmos y ejemplos
 
El abc de la conjetura
El abc de la conjeturaEl abc de la conjetura
El abc de la conjetura
 
147994600 transformada-de-fourier
147994600 transformada-de-fourier147994600 transformada-de-fourier
147994600 transformada-de-fourier
 
Metodos de eliminacion gaussiana
Metodos de eliminacion gaussianaMetodos de eliminacion gaussiana
Metodos de eliminacion gaussiana
 
Interpolacion 1
Interpolacion 1Interpolacion 1
Interpolacion 1
 
La Transformada de Fourier
La Transformada de FourierLa Transformada de Fourier
La Transformada de Fourier
 
Diego Leal Análisis Numérico SAIA A
Diego Leal Análisis Numérico SAIA ADiego Leal Análisis Numérico SAIA A
Diego Leal Análisis Numérico SAIA A
 
PRESENTACION_SISTEMAS_ECUACIONES_NO_LINEALES.pdf
PRESENTACION_SISTEMAS_ECUACIONES_NO_LINEALES.pdfPRESENTACION_SISTEMAS_ECUACIONES_NO_LINEALES.pdf
PRESENTACION_SISTEMAS_ECUACIONES_NO_LINEALES.pdf
 
Clasificación de funciones reales
Clasificación de funciones realesClasificación de funciones reales
Clasificación de funciones reales
 
ANALISIS NUMERICO UNIDAD III
ANALISIS NUMERICO UNIDAD IIIANALISIS NUMERICO UNIDAD III
ANALISIS NUMERICO UNIDAD III
 
Elba Alcala - Algebra lineal
Elba Alcala - Algebra linealElba Alcala - Algebra lineal
Elba Alcala - Algebra lineal
 
tema6.
tema6.tema6.
tema6.
 

Recently uploaded

S3-OXIDOS-HIDROXIDOS-CARBONATOS (mineralogia)
S3-OXIDOS-HIDROXIDOS-CARBONATOS (mineralogia)S3-OXIDOS-HIDROXIDOS-CARBONATOS (mineralogia)
S3-OXIDOS-HIDROXIDOS-CARBONATOS (mineralogia)
samuelsan933
 

Recently uploaded (20)

Aportes a la Arquitectura de Le Corbusier y Mies Van der Rohe
Aportes a la Arquitectura de Le Corbusier y Mies Van der RoheAportes a la Arquitectura de Le Corbusier y Mies Van der Rohe
Aportes a la Arquitectura de Le Corbusier y Mies Van der Rohe
 
docsity-manzaneo-y-lotizacion para habilitacopm urbana
docsity-manzaneo-y-lotizacion para habilitacopm urbanadocsity-manzaneo-y-lotizacion para habilitacopm urbana
docsity-manzaneo-y-lotizacion para habilitacopm urbana
 
Video sustentación GA2- 240201528-AA3-EV01.pptx
Video sustentación GA2- 240201528-AA3-EV01.pptxVideo sustentación GA2- 240201528-AA3-EV01.pptx
Video sustentación GA2- 240201528-AA3-EV01.pptx
 
ELASTICIDAD PRECIO DE LA DEMaaanANDA.ppt
ELASTICIDAD PRECIO DE LA DEMaaanANDA.pptELASTICIDAD PRECIO DE LA DEMaaanANDA.ppt
ELASTICIDAD PRECIO DE LA DEMaaanANDA.ppt
 
Cereales tecnología de los alimentos. Cereales
Cereales tecnología de los alimentos. CerealesCereales tecnología de los alimentos. Cereales
Cereales tecnología de los alimentos. Cereales
 
Six Sigma Process and the dmaic metodo process
Six Sigma Process and the dmaic metodo processSix Sigma Process and the dmaic metodo process
Six Sigma Process and the dmaic metodo process
 
libro de ingeniería de petróleos y operaciones
libro de ingeniería de petróleos y operacioneslibro de ingeniería de petróleos y operaciones
libro de ingeniería de petróleos y operaciones
 
Tippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.ppt
Tippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.pptTippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.ppt
Tippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.ppt
 
EFICIENCIA ENERGETICA-ISO50001_INTEC_2.pptx
EFICIENCIA ENERGETICA-ISO50001_INTEC_2.pptxEFICIENCIA ENERGETICA-ISO50001_INTEC_2.pptx
EFICIENCIA ENERGETICA-ISO50001_INTEC_2.pptx
 
G4 - CASO DE ESTUDIO - VOLUMEN DE UN RESERVORIO (1).pptx
G4 - CASO DE ESTUDIO - VOLUMEN DE UN RESERVORIO (1).pptxG4 - CASO DE ESTUDIO - VOLUMEN DE UN RESERVORIO (1).pptx
G4 - CASO DE ESTUDIO - VOLUMEN DE UN RESERVORIO (1).pptx
 
ARMADURAS METODO NODOS.pptx......................
ARMADURAS METODO NODOS.pptx......................ARMADURAS METODO NODOS.pptx......................
ARMADURAS METODO NODOS.pptx......................
 
CAPACITACIÓN EN AGUA Y SANEAMIENTO EN ZONAS RURALES
CAPACITACIÓN EN AGUA Y SANEAMIENTO EN ZONAS RURALESCAPACITACIÓN EN AGUA Y SANEAMIENTO EN ZONAS RURALES
CAPACITACIÓN EN AGUA Y SANEAMIENTO EN ZONAS RURALES
 
3er Informe Laboratorio Quimica General (2) (1).pdf
3er Informe Laboratorio Quimica General  (2) (1).pdf3er Informe Laboratorio Quimica General  (2) (1).pdf
3er Informe Laboratorio Quimica General (2) (1).pdf
 
DIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJO
DIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJODIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJO
DIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJO
 
GUIA DE SEGURIDAD PARA VENTILACION DE MINAS-POSITIVA.pdf
GUIA DE SEGURIDAD PARA VENTILACION DE MINAS-POSITIVA.pdfGUIA DE SEGURIDAD PARA VENTILACION DE MINAS-POSITIVA.pdf
GUIA DE SEGURIDAD PARA VENTILACION DE MINAS-POSITIVA.pdf
 
Clasificación de Equipos e Instrumentos en Electricidad.docx
Clasificación de Equipos e Instrumentos en Electricidad.docxClasificación de Equipos e Instrumentos en Electricidad.docx
Clasificación de Equipos e Instrumentos en Electricidad.docx
 
ingenieria grafica para la carrera de ingeniera .pptx
ingenieria grafica para la carrera de ingeniera .pptxingenieria grafica para la carrera de ingeniera .pptx
ingenieria grafica para la carrera de ingeniera .pptx
 
S3-OXIDOS-HIDROXIDOS-CARBONATOS (mineralogia)
S3-OXIDOS-HIDROXIDOS-CARBONATOS (mineralogia)S3-OXIDOS-HIDROXIDOS-CARBONATOS (mineralogia)
S3-OXIDOS-HIDROXIDOS-CARBONATOS (mineralogia)
 
“Análisis comparativo de viscosidad entre los fluidos de yogurt natural, acei...
“Análisis comparativo de viscosidad entre los fluidos de yogurt natural, acei...“Análisis comparativo de viscosidad entre los fluidos de yogurt natural, acei...
“Análisis comparativo de viscosidad entre los fluidos de yogurt natural, acei...
 
TAIICHI OHNO, historia, obras, reconocimientos
TAIICHI OHNO, historia, obras, reconocimientosTAIICHI OHNO, historia, obras, reconocimientos
TAIICHI OHNO, historia, obras, reconocimientos
 

Transformada rápida de Fourier

  • 1. Transformada r´apida de Fourier Conchari Cabrera Christian Ricardo Quenta Alvarez Hamed Emmerson 30 de Mayo 2020 1. C´alculo eficiente de la DFT Como en m´ultiples problemas de programaci´on. muchas veces la divisi´on del problema en peque˜nos sub- problemas es el camino m´as f´acil hacia una soluci´on eficiente. Ocurre de igual manera con la transformada discreta de Fourier. El m´etodo consiste en la descomposici´on de una DFT de N puntos en transformadas DFT sucesivamente m´as peque˜nas. Para ilustrar las ideas b´asicas, consideremos el c´alculo de una DFT de N puntos, donde N puede descompo- nerse en factores como un producto de dos enteros, es decir: N = LM (1) Esto se puede ilustrar de mejor forma con la siguiente imagen extra´ıda del texto de Tratamiento digital de se˜nales de Proakis y Manolakis. Figura 1: Matriz de datos bidimensional para almacenar una secuencia x(n)[1] Obs´ervese en la figura 1 que l es el´ındice para las filas y m es el´ındice para las columnas. As´ı, la secuencia x(n) puede almacenarse en un matriz rectangular de diferentes maneras, dependiendo cada una de ellas de la correspondencia existente entre el ´ındice n y los ´ındices (l,m). Teniendo la siguiente correspondencia: n = Ml + m (2) Esto nos lleva a un arreglo donde la primera fila consta de los primeros M elementos de x(n), la segunda fila est´a formada por los M elementos siguientes de x(n), y as´ı sucesivamente como se muestra en la figura 2. 1
  • 2. Figura 2: Disposici´on por filas [1] Tomando como ejemplo el caso donde N = 10, podemos tomar dos factores primos como 2 y 5. Entonces tendremos. x(0) = x(4 ∗ 0 + 0) x(1) = x(4 ∗ 0 + 1) x(2) = x(4 ∗ 0 + 2) x(3) = x(4 ∗ 0 + 3) x(4) = x(4 ∗ 0 + 1) = x(5 − 1) x(5) = x(4 ∗ 1 + 1) = x[(2 − 1) ∗ 4] x(6) = x(4 ∗ 1 + 2) x(7) = x(4 ∗ 1 + 3) x(8) = x(4 ∗ 1 + 4) x(9) = x(4 ∗ 1 + 5) = x(2 ∗ 5 − 1) Cuadro 1: Arreglo bidimensional para una disposici´on por filas. . x(0) x(1) x(2) x(3) x(4) x(5) x(6) x(7) x(8) x(9) Tambi´en se puede utilizar la correspondencia siguiente para una disposici´on por columnas. n = l + mL (3) En este caso se almacenan los L primeros elementos de x(n) en la primera columna, los siguientes L elementos en la segunda columna, y as´ı sucesivamente como se ilustra en la figura 3 2
  • 3. Figura 3: Disposici´on por columnas [1] Volviendo al ejemplo anterior. x(0) = x(0 + 0 ∗ 1) x(1) = x(1 + 0 ∗ 1) = x(2 − 1) x(2) = x(2 + 0 ∗ 1) = x(2) x(3) = x(3 + 0 ∗ 1) = x(2 + 1) x(4) = x(4 ∗ 0 + 1) = x(2 ∗ 2) x(5) = x(4 ∗ 1 + 1) = x[(2 ∗ 2) + 1] x(6) = x(4 ∗ 1 + 2) = x(2 ∗ 3) x(7) = x(4 ∗ 1 + 3) = x[(2 ∗ 3) + 1] x(8) = x(4 ∗ 1 + 4) = x[(5 − 1) + 2] x(9) = x(4 ∗ 1 + 5) = x(2 ∗ 5 − 1) Cuadro 2: Arreglo bidimensional para una disposici´on por columnas. . x(0) x(2) x(4) x(6) x(8) x(1) x(3) x(5) x(7) x(9) Se puede utilizar una disposici´on similar para almacenar los valores calculados de la DFT. En esto caso, la correspondencia se establece entre el ´ındice k y la pareja de ´ındices (p,q), donde 0 ≤ p ≤ L − 1 y 0 ≤ q ≤ M − 1. Si seleccionamos la correspondencia k = Mp + q (4) la DFT se almacena por filas, donde la primera fila contiene los M primeros elementos de la DFT X(k), la segunda fila contiene el siguiente conjunto de M elementos, y as´ı sucesivamente. Por el contrario, la correspondencia k = qL + p (5) da como resultado un almacenamiento por columnas de X(k), donde los L primeros elementos se almacenan en la primera columna, el segundo conjunto de L elementos se almacena en la segunda columna, y as´ı sucesivamente. 3
  • 4. Suponiendo que x(n) se hace corresponder con una matriz rectangular x(l, m) y X(k) con la correspondiente matriz rectangular X(p, q) La DFT se pueden expresar como una suma doble sobre los elementos de la matriz rectangular multiplicada por los correspondientes factores de fase. M´as espec´ıficamente, adoptamos la correspondencia por columnas y filas para x(n). X(p, q) = M−1 m=0 N−1 n=0 x(l, m)W (Mp+q)(mL+l) N (6) Mediante las propiedades de exponentes. W (Mp+q)(mL+I) N = WMLmp N ∗ WmLq N ∗ WMpl N ∗ Wlq N (7) Aprovechando las propiedades de simetr´ıa y periodicidad del factor de fase WN . Propiedad de simetr´ıa: W k+N/2 N = −Wk N Propiedad de periodicidad: Wk+N N = Wk N Se puede lograr una mayor eficiencia en la FFT sobre la DFT: WNmp N = 1, WmqL N = Wmq N/L = Wmq M , WMpl N = Wpl N/M = Wpl L (8) Lo cual da lugar a X(p, q) = L−1 l=1 Wlq N M−1 m=0 x(l, m)Wmq M Wlp L (9) La expresi´on (9) implica el c´alculo de las transformadas DFT de longitud M y longitud L. Dividiendo el problema por partes como se plantea inicialmente. Para calcular esta ´ultima expresi´on se puede desarrollar un procedimiento de tres pasos: 1. Para comenzar se calculan las DFT de M puntos llamando F(l, q) al factor de la sumatoria central. F(l, q) = M−1 m=0 x(l, m)Wmq M , 0 ≤ q ≤ M − 1 (10) Para cada una de las filas, l = 0, 1, ..., L − 1 2. En segundo lugar, calculamos una nueva matriz rectangular G(l,q) definida como: G(l, q) = Wlq N F(l, q), 0 ≤ l ≤ L − 1, 0 ≤ q ≤ M − 1 (11) 3. Por ´ultimo, calculamos las DFT de L puntos X(p, q) = L−1 l=0 G(l, q)Wlp L (12) para cada columna q = 0, 1, ... , M − 1, de la matriz G(l,q). Aunque pueda parecer que el procedimiento es m´as complicado que utilizando el procedimiento tradicional. Si evaluamos la complejidad de c´alculo (9). El primer paso implica el c´alculo de L transformadas DFT, cada una de M puntos. Luego este paso requiere LM2 multiplicaciones complejas y LM(M − 1) sumas complejas. El segundo paso requiere LM multiplicaciones complejas. Por ´ultimo, el tercer paso requiere ML2 multiplicaciones complejas y ML(L − 1) sumas complejas. El segundo paso requiere LM multiplicaciones complejas. Por ´ultima, el tercer paso requiere ML2 multiplicaciones complejas y ML(L−1) sumas complejas. Entonces, la complejidad de c´alculo ser´a: Multiplicaciones complejas: N(M + L + 1) Sumas complejas: N(M + L − 2) 4
  • 5. En ambos casos podemos observar que el n´umero de operaciones se ha visto reducido. Tomando como ejemplo el caso de N=10. Podemos seleccionar L=2 y M=5. Lo cual nos llevar´a a hacer 100 multiplicaciones complejas a trav´es del c´alculo tradicional de la DFT, por otra parte a trav´es de la FFT nos llevar´a a 80 multiplicaciones complejas y 50 sumas complejas. Lo cual significa una reducci´on considerable. De igual forma ocurrir´a con el n´umero de sumas. Se puede observar que el n´umero de multiplicaciones se ha reducido de N2 a N(M +L+1) y el n´umero de sumas se ha reducido de N(N − 1) a N(M + L − 2). Ampliando el panorama, cuando N es un n´umero compuesto muy alto, este puede ser descompuesto en factores para definir un producto de n´umeros primos de la forma N = r1, r2, ..., rn (13) Este procedimiento dar´a como resultado transformadas DFT m´as peque˜nas, lo que, a su vez lleva a un algoritmo m´as eficiente. La primera segmentaci´on de la secuencia x(n) es una matriz rectangular de M columnas con L filas. La descomposici´on de los datos implicar´a la segmentaci´on de cada fila (o columna) en matrices rectangulares m´as peque˜nas que dar´an lugar a la transformadas DFT m´as peque˜nas. Para ilustrar mejor el procedimiento antes mencionado, podemos utilizar una vez m´as el ejemplo antes mencionado del c´alculo de una DFT de N = 10 puntos, descompuesto en sus factores primos N = 2∗5 = 10. Descomponiendo por columnas: Fila 1: x(0, 0) = x(0) x(0, 1) = x(2) x(0, 2) = x(4) x(0, 3) = x(6) x(0, 3) = x(8) Fila 2: x(1, 0) = x(1) x(1, 1) = x(3) x(1, 2) = x(5) x(1, 3) = x(7) x(1, 3) = x(9) Por el procedimiento antes mencionado obtendremos la siguiente matriz 2X5 utilizando la ecuaci´on (10): F(l, q) = M−1 m=0 x(l, m)Wmq M , 0 ≤ q ≤ M − 1 F(0, 0) F(0, 1) F(0, 2) F(0, 3) F(0, 4) F(1, 0) F(1, 1) F(1, 2) F(1, 3) F(1, 4) Ahora debemos multiplicar cada uno de los t´erminos F(l,q) por los factores de fase Wlq N = Wlq 10, 0 ≤ q ≤ 4 y 0 ≤ q ≤ 1. Obtendremos una matriz 2X3, utilizando la ecuaci´on (11): G(l, q) = Wlq N F(l, q), 0 ≤ l ≤ L − 1, 0 ≤ q ≤ M − 1 G(0, 0) G(0, 1) G(0, 2) G(0, 3) G(0, 4) G(1, 0) G(1, 1) G(1, 2) G(1, 3) G(1, 4) El paso final consistir´a en calcular las DFT de dos puntos para cada una de las cinco columnas, utilizando la ecuaci´on (12): X(p, q) = L−1 l=0 G(l, q)Wlp L X(0, 0) = X(0) X(0, 1) = X(1) X(0, 2) = X(2) X(0, 3) = X(3) X(0, 4) = X(4) X(1, 0) = X(5) X(1, 1) = X(6) X(1, 2) = X(7) X(1, 3) = X(8) X(1, 4) = X(9) En resumen, el algoritmo desarrollado implica los siguientes pasos: Algoritmo utilizando la disposici´on por columnas. 1. Almacenar la se˜nal por columnas. 2. Calcular la DFT de M puntos de cada fila. 1. Multiplicar la matriz resultante por los factores de fase Wlq N . 1. Calcular la DFT de L puntos de cada columna. 1. Leer la matriz resultante por filas. Referencias [1] J. G. Proakis and D. G. Manolakis, Tratamiento digital de se˜nales. Pearson Prentice-Hall, 2007. 5