Articulo de referencia

Algoritmo FFT de base vectorial

El algoritmo FFT de base vectorial es un algoritmo de transformada rápida de Fourier (FFT) multidimensional, que es una generalización del algoritmo FFT de Cooley-Tukey ordinari...

El algoritmo FFT de base vectorial es un algoritmo de transformada rápida de Fourier (FFT) multidimensional, que es una generalización del algoritmo FFT de Cooley-Tukey ordinario que divide las dimensiones de la transformada por bases arbitrarias. Descompone una transformada discreta de Fourier (DFT ) multidimensional (MD) en MD DFT sucesivamente más pequeñas hasta que, finalmente, solo es necesario evaluar MD DFT triviales. [ 1 ]

El algoritmo FFT multidimensional más común es el algoritmo de filas y columnas, que consiste en transformar la matriz primero en un índice y luego en otro (véase más información en FFT ). Posteriormente, se desarrolló un FFT bidimensional directo de base 2 [ 2 ] , que puede eliminar el 25 % de las multiplicaciones en comparación con el método convencional de filas y columnas. Este algoritmo se ha extendido a matrices rectangulares y bases arbitrarias [ 3 ] , dando lugar al algoritmo general de base vectorial.

El algoritmo FFT de base vectorial puede reducir significativamente el número de multiplicaciones complejas, en comparación con el algoritmo de vector fila. Por ejemplo, para unnorteMETRO{\displaystyle N^{M}}matriz de elementos (M dimensiones y tamaño N en cada dimensión), el número de múltiplos complejos del algoritmo FFT de raíz vectorial para base 2 es2METRO12METROnorteMETROregistro2norte{\displaystyle {\frac {2^{M}-1}{2^{M}}}N^{M}\log _{2}N}Mientras tanto, para el algoritmo de filas y columnas, esMETROnorteMETRO2registro2norte{\displaystyle {\frac {MN^{M}}{2}}\log _{2}N}. Y, en general, se obtienen ahorros aún mayores en multiplicaciones cuando este algoritmo se opera sobre bases más grandes y sobre matrices de mayor dimensión. [ 3 ]

En general, el algoritmo de base vectorial reduce significativamente la complejidad estructural de la DFT tradicional, al contar con un mejor esquema de indexación, a costa de un ligero aumento en las operaciones aritméticas. Por ello, este algoritmo se utiliza ampliamente en numerosas aplicaciones de ingeniería, ciencia y matemáticas, por ejemplo, en implementaciones de procesamiento de imágenes [ 4 ] y en el diseño de procesadores FFT de alta velocidad [ 5 ] .

Caso DIT 2D

Al igual que con el algoritmo FFT de Cooley-Tukey , la FFT de base vectorial bidimensional se obtiene descomponiendo la DFT bidimensional regular en sumas de DFT más pequeñas multiplicadas por factores de "redondeo".

Un algoritmo de decimación en el tiempo ( DIT ) significa que la descomposición se basa en el dominio del tiempo.incógnita{\displaystyle x}, ver más en el algoritmo FFT de Cooley-Tukey .

Suponemos que la DFT bidimensional está definida.

incógnita(k1,k2)=norte1=0norte11norte2=0norte21incógnita[norte1,norte2]Wnorte1k1norte1Wnorte2k2norte2,{\displaystyle X(k_{1},k_{2})=\sum _{n_{1}=0}^{N_{1}-1}\sum _{n_{2}=0}^{N_{2}-1}x[n_{1},n_{2}]\cdot W_{N_{1}}^{k_{1}n_{1}}W_{N_{2}}^{k_{2}n_{2}},}

dóndek1=0,,norte11{\displaystyle k_{1}=0,\dots ,N_{1}-1}, yk2=0,,norte21{\displaystyle k_{2}=0,\dots ,N_{2}-1}, yincógnita[norte1,norte2]{\displaystyle x[n_{1},n_{2}]}es unnorte1×norte2{\displaystyle N_{1}\times N_{2}}matriz yWnorte=exp(j2π/norte){\displaystyle W_{N}=\exp(-j2\pi /N)}.

Para simplificar, supongamos quenorte1=norte2=norte{\displaystyle N_{1}=N_{2}=N}y la raíz-(r×r){\displaystyle (r\times r)}es tal quenorte/r{\displaystyle N/r}es un número entero.

Utilizando el cambio de variables:

  • nortei=rpagi+qi{\displaystyle n_{i}=rp_{i}+q_{i}}, dóndepagi=0,,(norte/r)1;qi=0,,r1;{\displaystyle p_{i}=0,\ldots ,(N/r)-1;q_{i}=0,\ldots ,r-1;}
  • ki=i+vinorte/r{\displaystyle k_{i}=u_{i}+v_{i}N/r}, dóndei=0,,(norte/r)1;vi=0,,r1;{\displaystyle u_{i}=0,\ldots ,(N/r)-1;v_{i}=0,\ldots ,r-1;}

dóndei=1{\displaystyle i=1}o2{\displaystyle 2}, entonces la DFT bidimensional se puede escribir como: [ 6 ]

incógnita(1+v1norte/r,2+v2norte/r)=q1=0r1q2=0r1[pag1=0norte/r1pag2=0norte/r1incógnita[rpag1+q1,rpag2+q2]Wnorte/rpag11Wnorte/rpag22]Wnorteq11+q22Wrq1v1Wrq2v2,{\displaystyle X(u_{1}+v_{1}N/r,u_{2}+v_{2}N/r)=\sum _{q_{1}=0}^{r-1}\sum _{q_{2}=0}^{r-1}\left[\sum _{p_{1}=0}^{N/r-1}\sum _{p_{2}=0}^{N/r-1}x[rp_{1}+q_{1},rp_{2}+q_{2}]W_{N/r}^{p_{1}u_{1}}W_{N/r}^{p_{2}u_{2}}\right]\cdot W_{N}^{q_{1}u_{1}+q_{2}u_{2}}W_{r}^{q_{1}v_{1}}W_{r}^{q_{2}v_{2}},}
Una etapa de "mariposa" para FFT vectorial de base 2x2 de DIT

La ecuación anterior define la estructura básica de la raíz DIT 2-D.(r×r){\displaystyle (r\times r)}"mariposa". (Véase "mariposa" unidimensional en el algoritmo FFT de Cooley-Tukey ).

Cuandor=2{\displaystyle r=2}, la ecuación se puede dividir en cuatro sumatorias, y esto lleva a: [ 1 ]

incógnita(k1,k2)=S00(k1,k2)+S01(k1,k2)Wnortek2+S10(k1,k2)Wnortek1+S11(k1,k2)Wnortek1+k2{\displaystyle X(k_{1},k_{2})=S_{00}(k_{1},k_{2})+S_{01}(k_{1},k_{2})W_{N}^{k_{2}}+S_{10}(k_{1},k_{2})W_{N}^{k_{1}}+S_{11}(k_{1},k_{2})W_{N}^{k_{1}+k_{2}}}para0k1,k2<norte2{\displaystyle 0\leq k_{1},k_{2}<{\frac {N}{2}}},

dóndeSij(k1,k2)=norte1=0norte/21norte2=0norte/21incógnita[2norte1+i,2norte2+j]Wnorte/2norte1k1Wnorte/2norte2k2{\displaystyle S_{ij}(k_{1},k_{2})=\sum _{n_{1}=0}^{N/2-1}\sum _{n_{2}=0}^{N/2-1}x[2n_{1}+i,2n_{2}+j]\cdot W_{N/2}^{n_{1}k_{1}}W_{N/2}^{n_{2}k_{2}}}.

ElSij{\displaystyle S_{ij}}puede ser visto como elnorte/2{\displaystyle N/2}DFT de -dimensiones, cada una sobre un subconjunto de la muestra original:

  • S00{\displaystyle S_{00}}es la DFT sobre esas muestras deincógnita{\displaystyle x}para lo cual ambosnorte1{\displaystyle n_{1}}ynorte2{\displaystyle n_{2}}son pares;
  • S01{\displaystyle S_{01}}es la DFT sobre las muestras para las cualesnorte1{\displaystyle n_{1}}es par ynorte2{\displaystyle n_{2}}es extraño;
  • S10{\displaystyle S_{10}}es la DFT sobre las muestras para las cualesnorte1{\displaystyle n_{1}}es extraño ynorte2{\displaystyle n_{2}}es par;
  • S11{\displaystyle S_{11}}es la DFT sobre las muestras para las cuales ambasnorte1{\displaystyle n_{1}}ynorte2{\displaystyle n_{2}}son extraños.

Gracias a la periodicidad de la exponencial compleja , podemos obtener las siguientes identidades adicionales, válidas para0k1,k2<norte2{\displaystyle 0\leq k_{1},k_{2}<{\frac {N}{2}}}:

  • incógnita(k1+norte2,k2)=S00(k1,k2)+S01(k1,k2)Wnortek2S10(k1,k2)Wnortek1S11(k1,k2)Wnortek1+k2{\displaystyle X{\biggl (}k_{1}+{\frac {N}{2}},k_{2}{\biggr )}=S_{00}(k_{1},k_{2})+S_{01}(k_{1},k_{2})W_{N}^{k_{2}}-S_{10}(k_{1},k_{2})W_{N}^{k_{1}}-S_{11}(k_{1},k_{2})W_{N}^{k_{1}+k_{2}}};
  • incógnita(k1,k2+norte2)=S00(k1,k2)S01(k1,k2)Wnortek2+S10(k1,k2)Wnortek1S11(k1,k2)Wnortek1+k2{\displaystyle X{\biggl (}k_{1},k_{2}+{\frac {N}{2}}{\biggr )}=S_{00}(k_{1},k_{2})-S_{01}(k_{1},k_{2})W_{N}^{k_{2}}+S_{10}(k_{1},k_{2})W_{N}^{k_{1}}-S_{11}(k_{1},k_{2})W_{N}^{k_{1}+k_{2}}};
  • incógnita(k1+norte2,k2+norte2)=S00(k1,k2)S01(k1,k2)Wnortek2S10(k1,k2)Wnortek1+S11(k1,k2)Wnortek1+k2{\displaystyle X{\biggl (}k_{1}+{\frac {N}{2}},k_{2}+{\frac {N}{2}}{\biggr )}=S_{00}(k_{1},k_{2})-S_{01}(k_{1},k_{2})W_{N}^{k_{2}}-S_{10}(k_{1},k_{2})W_{N}^{k_{1}}+S_{11}(k_{1},k_{2})W_{N}^{k_{1}+k_{2}}}.

Caso DIF 2D

De manera similar, un algoritmo de decimación en frecuencia ( DIF , también llamado algoritmo de Sande-Tukey) significa que la descomposición se basa en el dominio de la frecuencia.incógnita{\displaystyle X}, ver más en el algoritmo FFT de Cooley-Tukey .

Utilizando el cambio de variables:

  • nortei=pagi+qinorte/r{\displaystyle n_{i}=p_{i}+q_{i}N/r}, dóndepagi=0,,(norte/r)1;qi=0,,r1;{\displaystyle p_{i}=0,\ldots ,(N/r)-1;q_{i}=0,\ldots ,r-1;}
  • ki=ri+vi{\displaystyle k_{i}=ru_{i}+v_{i}}, dóndei=0,,(norte/r)1;vi=0,,r1;{\displaystyle u_{i}=0,\ldots ,(N/r)-1;v_{i}=0,\ldots ,r-1;}

dóndei=1{\displaystyle i=1}o2{\displaystyle 2}y la ecuación DFT se puede escribir como: [ 6 ]

incógnita(r1+v1,r2+v2)=pag1=0norte/r1pag2=0norte/r1[q1=0r1q2=0r1incógnita[pag1+q1norte/r,pag2+q2norte/r]Wrq1v1Wrq2v2]Wnortepag1v1+pag2v2Wnorte/rpag11Wnorte/rpag22,{\displaystyle X(ru_{1}+v_{1},ru_{2}+v_{2})=\sum _{p_{1}=0}^{N/r-1}\sum _{p_{2}=0}^{N/r-1}\left[\sum _{q_{1}=0}^{r-1}\sum _{q_{2}=0}^{r-1}x[p_{1}+q_{1}N/r,p_{2}+q_{2}N/r]W_{r}^{q_{1}v_{1}}W_{r}^{q_{2}v_{2}}\right]\cdot W_{N}^{p_{1}v_{1}+p_{2}v_{2}}W_{N/r}^{p_{1}u_{1}}W_{N/r}^{p_{2}u_{2}},}

Otros enfoques

Se ha demostrado que el algoritmo FFT de base dividida es un método útil para la DFT unidimensional. Este método se ha aplicado a la FFT de base vectorial para obtener una FFT de base vectorial dividida. [ 6 ] [ 7 ]

En el algoritmo convencional de raíz vectorial 2D, descomponemos los índicesk1,k2{\displaystyle k_{1},k_{2}}en 4 grupos:

incógnita(2k1,2k2):incluso-inclusoincógnita(2k1,2k2+1):pares imparesincógnita(2k1+1,2k2):par-imparincógnita(2k1+1,2k2+1):impar-impar{\displaystyle {\begin{array}{lcl}X(2k_{1},2k_{2})&:&{\text{even-even}}\\X(2k_{1},2k_{2}+1)&:&{\text{even-odd}}\\X(2k_{1}+1,2k_{2})&:&{\text{odd-even}}\\X(2k_{1}+1,2k_{2}+1)&:&{\text{odd-odd}}\end{array}}}

Mediante el algoritmo de raíz vectorial dividida, los tres primeros grupos permanecen sin cambios, el cuarto grupo impar-impar se descompone aún más en otros cuatro subgrupos, y siete grupos en total:

incógnita(2k1,2k2):incluso-inclusoincógnita(2k1,2k2+1):pares imparesincógnita(2k1+1,2k2):par-imparincógnita(4k1+1,4k2+1):impar-imparincógnita(4k1+1,4k2+3):impar-imparincógnita(4k1+3,4k2+1):impar-imparincógnita(4k1+3,4k2+3):impar-impar{\displaystyle {\begin{array}{lcl}X(2k_{1},2k_{2})&:&{\text{even-even}}\\X(2k_{1},2k_{2}+1)&:&{\text{even-odd}}\\X(2k_{1}+1,2k_{2})&:&{\text{odd-even}}\\X(4k_{1}+1,4k_{2}+1)&:&{\text{odd-odd}}\\X(4k_{1}+1,4k_{2}+3)&:&{\text{odd-odd}}\\X(4k_{1}+3,4k_{2}+1)&:&{\text{odd-odd}}\\X(4k_{1}+3,4k_{2}+3)&:&{\text{odd-odd}}\end{array}}}

Eso significa que el cuarto término en la base DIT 2-D-(2×2){\displaystyle (2\times 2)}ecuación,S11(k1,k2)Wnortek1+k2{\displaystyle S_{11}(k_{1},k_{2})W_{N}^{k_{1}+k_{2}}}se convierte en: [ 8 ]

A11(k1,k2)Wnortek1+k2+A13(k1,k2)Wnortek1+3k2+A31(k1,k2)Wnorte3k1+k2+A33(k1,k2)Wnorte3(k1+k2),{\displaystyle A_{11}(k_{1},k_{2})W_{N}^{k_{1}+k_{2}}+A_{13}(k_{1},k_{2})W_{N}^{k_{1}+3k_{2}}+A_{31}(k_{1},k_{2})W_{N}^{3k_{1}+k_{2}}+A_{33}(k_{1},k_{2})W_{N}^{3(k_{1}+k_{2})},}

dóndeAij(k1,k2)=norte1=0norte/41norte2=0norte/41incógnita[4norte1+i,4norte2+j]Wnorte/4norte1k1Wnorte/4norte2k2{\displaystyle A_{ij}(k_{1},k_{2})=\sum _{n_{1}=0}^{N/4-1}\sum _{n_{2}=0}^{N/4-1}x[4n_{1}+i,4n_{2}+j]\cdot W_{N/4}^{n_{1}k_{1}}W_{N/4}^{n_{2}k_{2}}}

El 2-DN por N DFT se obtiene luego mediante el uso sucesivo de la descomposición anterior, hasta la última etapa.

Se ha demostrado que el algoritmo de raíz vectorial dividida ha ahorrado alrededor del 30% de las multiplicaciones complejas y aproximadamente la misma cantidad de sumas complejas para operaciones típicas.1024×1024{\displaystyle 1024\times 1024}matriz, en comparación con el algoritmo de raíz vectorial. [ 7 ]

Referencias

  1. 1 2 Dudgeon, Dan; Russell, Mersereau (septiembre de 1983). Procesamiento digital de señales multidimensionales . Prentice Hall. pág.  76. ISBN 0136049591.
  2. Rivard, G. (1977). "Transformada rápida de Fourier directa de funciones bivariadas". IEEE Transactions on Acoustics, Speech, and Signal Processing . 25 (3): 250– 252. doi : 10.1109/TASSP.1977.1162951 .
  3. 1 2 Harris, D.; McClellan, J.; Chan, D.; Schuessler, H. (1977). "Transformada rápida de Fourier de base vectorial". ICASSP '77. Conferencia Internacional IEEE sobre Acústica, Habla y Procesamiento de Señales . Vol. 2. pp. 548– 551. doi : 10.1109/ICASSP.1977.1170349 .  
  4. Buijs, H.; Pomerleau, A.; Fournier, M.; Tam, W. (dic. 1974). "Implementación de una transformada rápida de Fourier (FFT) para aplicaciones de procesamiento de imágenes". IEEE Transactions on Acoustics, Speech, and Signal Processing . 22 (6): 420– 424. doi : 10.1109/TASSP.1974.1162620 .
  5. Badar, S.; Dandekar, D. (2015). "Diseño de procesador FFT de alta velocidad utilizando arquitectura segmentada de base 4 ". Conferencia Internacional de Instrumentación y Control Industrial (ICIC) de 2015. pp. 1050–1055 . doi : 10.1109/IIC.2015.7150901 . ISBN  978-1-4799-7165-7. S2CID 11093545 . 
  6. 1 2 3 Chan, SC; Ho, KL (1992). "Transformada rápida de Fourier de base vectorial dividida". IEEE Transactions on Signal Processing . 40 (8): 2029– 2039. Bibcode : 1992ITSP...40.2029C . doi : 10.1109/78.150004 .
  7. 1 2 Pei, Soo-Chang; Wu, Ja-Lin (abril de 1987). "Transformada rápida de Fourier 2D de raíz vectorial dividida". ICASSP '87. Conferencia Internacional IEEE sobre Acústica, Habla y Procesamiento de Señales . Vol. 12. págs. 1987–1990 . doi : 10.1109/ICASSP.1987.1169345 . S2CID 118173900 .   
  8. Wu, H.; Paoloni, F. (agosto de 1989). "Sobre el algoritmo FFT de raíz dividida vectorial bidimensional". IEEE Transactions on Acoustics, Speech, and Signal Processing . 37 (8): 1302– 1304. doi : 10.1109/29.31283 .