Transformada rápida de Fourier

Em matemática, engenharia e em áudio profissional, a Transformada rápida de Fourier (do inglês: Fast Fourier Transform, abreviado FFT) é um algoritmo que calcula a Transformada discreta de Fourier (DFT) e a sua inversa (Teorema inverso de Fourier), criado pelo estatístico estadunidense John Tukey. A análise de Fourier converte um sinal do domínio original para uma representação no domínio da frequência e vice-versa. De grande importância em uma vasta gama de aplicações, de Processamento digital de sinais para a resolução de equações diferenciais parciais a, algoritmos para multiplicação de grandes inteiros. A transformada é amplamente utilizadas na engenharia, ciência e matemática. As ideias básicas foram popularizadas em 1965, mas alguns algoritmos foram obtidos em 1805.[1]

Transformada rápida de Fourier
Fenômeno algoritmo, Transformada de Fourier
Homenageado Jean-Baptiste Joseph Fourier
Descobridor John Tukey
PortalPortal Ciência - WikidataEdite Wikidata - Commons Mídia Commons

Uma Transformada rápida de Fourier calcula rapidamente essas transformações fatorizando a matriz da Transformada discreta de Fourier em um produto de fatores esparsos (principalmente zero).[2] Como resultado, ele consegue reduzir a complexidade de calcular a Transformada discreta de Fourier de , ou seja na ordem de n elevado ao quadrado, que surge se alguém simplesmente aplica a definição de Transformada discreta de Fourier, a , onde é o tamanho dos dados.

Em 1994, Gilbert Strang descreveu a Transformada rápida de Fourier como "O algoritmo numérico mais importante da nossa vida",[3][4] e foi incluída no Top 10 Algorithms of 20th Century pela revista IEEE Computing in Science & Engineering.[5]

História

O desenvolvimento de algoritmos rápidos para Transformada discreta de Fourier pode ser rastreado até o trabalho não publicado de Gauss em 1805, quando ele precisou interpolar a órbita dos asteroides Pallas e Juno de observações de amostras.[6][7] Seu método foi muito semelhante ao publicado em 1965 por James William Cooley e John Wilder Tukey, que são geralmente creditados pela invenção do moderno algoritmo de Transformada rápida de Fourier genérico. Enquanto o trabalho de Gauss antecedeu os resultados de Fourier em 1822, ele não analisou o tempo de computação e eventualmente, usou outros métodos para atingir seu objetivo.

Entre 1805 e 1965, algumas versões da Transformada rápida de Fourier foram publicadas por outros autores. Frank Yates, em 1932, publicou sua versão chamada algoritmo de interação, que forneceu uma computação eficiente das transformadas de Hadamard e Walsh.[6] O algoritmo de Yates ainda é usado no campo do projeto estatístico e análise de experimentos. Em 1942, G. C. Danielson e Cornelius Lanczos publicaram sua versão para computar a Transformada discreta de Fourier para cristalografia de raios X, um campo onde o cálculo das transformadas de Fourier apresentava um formidável obstáculo.[8][9] Embora muitos métodos no passado tenham se concentrado em reduzir o fator constante para computação de aproveitando as "simetrias", Danielson e Lanczos perceberam que usando a "periodicidade" e aplicando um "truque de duplicação" poderiam obter o tempo de execução .[10]

James Cooley e John Tukey publicaram uma versão mais geral da Transformada rápida de Fourier em 1965 que é aplicável quando N é composto e não necessariamente uma potência de 2.[11] Tukey teve a ideia durante uma reunião do Comitê Consultivo Científico do presidente Kennedy, onde um tópico de discussão envolveu a detecção de testes nucleares pela União Soviética, através da instalação de sensores para cercar o país de fora. Para analisar a saída desses sensores, seria necessário um algoritmo de transformação rápida de Fourier. Em discussão com Tukey, Richard Garwin reconheceu a aplicabilidade geral do algoritmo não apenas a problemas de segurança nacional, mas também a uma ampla gama de problemas, incluindo um de interesse imediato para ele, determinar as periodicidades das orientações de spin em um cristal 3-D de hélio-3.[12] Garwin deu a ideia de Tukey para Cooley (ambos trabalharam nos laboratórios Watson da IBM) para implementação.[13] Cooley e Tukey publicaram o artigo em um período relativamente curto de seis meses.[14] Como Tukey não trabalhava na IBM, a patenteabilidade da ideia foi posta em dúvida e o algoritmo entrou no domínio público, o que, através da revolução da computação na próxima década, fez da FFT um dos algoritmos indispensáveis ​​no processamento digital de sinais.

Visão Geral

A Transformada discreta de Fourier é obtida pela decomposição de uma sequência de valores em componentes de diferentes frequências.[15] Esta operação é útil em muitos campos, entretanto calculá-la diretamente da definição é frequentemente lenta demais para ser prática. Uma Transformada rápida de Fourier é uma maneira de calcular o mesmo resultado mais rapidamente: calcular a Transformada discreta de Fourier de n pontos da maneira ingênua, usando a definição, leva operações aritméticas de , enquanto uma Transformada rápida de Fourier pode computar a mesma Transformada discreta de Fourier em apenas operações. A diferença de velocidade pode ser enorme, especialmente para conjuntos de dados longos em que N pode estar na casa dos milhares ou milhões. Na prática, o tempo de computação pode ser reduzido em várias ordens de magnitude em tais casos, e a melhoria é aproximadamente proporcional a N/log N. Essa grande melhoria tornou o cálculo da Transformada discreta de Fourier prático; As Transformadas rápidas de Fourier são de grande importância para uma ampla variedade de aplicações, desde processamento digital de sinais e resolução de equações diferenciais parciais até algoritmos para rápida multiplicação de inteiros grandes.

Algoritmo

O algoritmo baseia-se no chamado método de dobramentos sucessivos, onde podemos expressar a transformada de Fourier como sendo

onde

.

Assumimos que onde é um inteiro positivo.


Portanto, pode ser escrito como onde é um inteiro positivo.


Logo, a transformada de Fourier escrita inicialmente, pode ser reescrita como

A soma escrita acima pode ser separada em duas, da seguinte maneira

Considerando que , nomeamos a primeira soma por

para valores de , e

E a segunda soma por

para valores de

Podemos reescrever a transformada de Fourier como sendo


Uma vez que e .

A recombinação da equação com a última nos fornece



A observação dessas equações nos fornece suas propriedades. Dentre elas vemos:

  • Uma transformada de pontos pode ser computada pela divisão da expressão original em duas partes.

Aplicações

A importância da FFT deriva do fato de que, no processamento de sinais e no processamento de imagens, o trabalho no domínio da freqüência é igualmente viável computacionalmente como o trabalho no domínio temporal ou espacial. Algumas das aplicações importantes da FFT incluem[16][14]:

  • Multiplicação rápida de números inteiros e polinomiais
  • Multiplicação eficiente de vetores matriciais para Toeplitz, circulantes e outras matrizes estruturadas
  • Algoritmos de filtragem
  • Algoritmos rápidos para transformações discretas de cosseno ou seno (por exemplo, Fast DCT usado para codificação JPEG, MP3 / MPEG)
  • Aproximação rápida de Chebyshev
  • Transformada Hartley discreta rápida
  • Resolvendo Equações Diferenciais
  • Computação de distribuições isotópicas.[16]

Implementações computacionais

  • ALGLIB – C++ and C# library with real/complex FFT implementation.
  • FFTW "Fastest Fourier Transform in the West" – C library for the discrete Fourier transform (DFT) in one or more dimensions.
  • FFTS – The Fastest Fourier Transform in the South.
  • FFTPACK – another Fortran FFT library (public domain)
  • Math Kernel Library

Veja também

Referências

  1. Heideman, Michael T.; Johnson, Don H.; Burrus, C. Sidney (1985). «Gauss and the history of the fast Fourier transform». Archive for History of Exact Sciences. 34 (3): 265–277. ISSN 0003-9519. doi:10.1007/bf00348431
  2. Van Loan, Charles (janeiro de 1992). Computational Frameworks for the Fast Fourier Transform. [S.l.]: Society for Industrial and Applied Mathematics. ISBN 9780898712858
  3. D., Kent, Raymond (2002). The acoustic analysis of speech 2nd ed. Australia: Singular/Thomson Learning. ISBN 0769301126. OCLC 48024997
  4. Strang, Gilbert (abril de 1984). «Duality in the Classroom». The American Mathematical Monthly. 91 (4). 250 páginas. ISSN 0002-9890. doi:10.2307/2322961
  5. «Institute of Electrical and Electronics Engineers». Wikipedia (em inglês). 12 de julho de 2018
  6. Heideman, Michael T.; Johnson, Don H.; Burrus, C. Sidney (1985). «Gauss and the history of the fast Fourier transform». Archive for History of Exact Sciences. 34 (3): 265–277. ISSN 0003-9519. doi:10.1007/bf00348431
  7. Gauss, Carl Friedrich (1877). «Auszug aus dreijährigen täglichen Beobachtungen der magnetischen Declination zu Göttingen». Berlin, Heidelberg: Springer Berlin Heidelberg: 556–568. ISBN 9783642493201
  8. Michaelson, S.; Lanczos, Cornelius (fevereiro de 1960). «Applied Analysis». The Mathematical Gazette. 44 (347). 75 páginas. ISSN 0025-5572. doi:10.2307/3608551
  9. Danielson, G.C.; Lanczos, C. (abril de 1942). «Some improvements in practical Fourier analysis and their application to x-ray scattering from liquids». Journal of the Franklin Institute. 233 (4): 365–380. ISSN 0016-0032. doi:10.1016/s0016-0032(42)90767-1
  10. Cooley, J.; Lewis, P.; Welch, P. (junho de 1967). «Historical notes on the fast Fourier transform». IEEE Transactions on Audio and Electroacoustics. 15 (2): 76–79. ISSN 0018-9278. doi:10.1109/tau.1967.1161903
  11. Cooley, James W.; Tukey, John W. (abril de 1965). «An Algorithm for the Machine Calculation of Complex Fourier Series». Mathematics of Computation. 19 (90). 297 páginas. ISSN 0025-5718. doi:10.2307/2003354
  12. Cooley, James W. (janeiro de 1987). «The re-discovery of the fast Fourier transform algorithm». Mikrochimica Acta. 93 (1-6): 33–45. ISSN 0026-3672. doi:10.1007/bf01201681
  13. Cooley, J.; Garwin, R.; Rader, C.; Bogert, B.; Stockham, T. (junho de 1969). «The 1968 Arden house workshop on fast Fourier transform processing». IEEE Transactions on Audio and Electroacoustics. 17 (2): 66–76. ISSN 0018-9278. doi:10.1109/tau.1969.1162047
  14. Rockmore, D.N. (2000). «The FFT: an algorithm the whole family can use». Computing in Science & Engineering. 2 (1): 60–64. ISSN 1521-9615. doi:10.1109/5992.814659
  15. Heideman, M.; Johnson, D.; Burrus, C. (outubro de 1984). «Gauss and the history of the fast fourier transform». IEEE ASSP Magazine (em inglês). 1 (4): 14–21. ISSN 0740-7467. doi:10.1109/massp.1984.1162257
  16. 1950-, Chu, Eleanor Chin-hwa, (2000). Inside the FFT black box : serial and parallel fast Fourier transform algorithms. Boca Raton, Fla.: CRC Press. ISBN 0849302706. OCLC 51949140
  17. Van Loan, Charles (1992). Computational Frameworks for the Fast Fourier Transform. [S.l.]: SIAM
  18. Heideman, Michael T.; Johnson, Don H.; Burrus, Charles Sidney (1984). «Gauss and the history of the fast Fourier transform» (PDF). IEEE ASSP Magazine. 1 (4): 14–21. doi:10.1109/MASSP.1984.1162257
  19. Heideman, Michael T.; Burrus, Charles Sidney (1986). «On the number of multiplications necessary to compute a length-2n DFT». IEEE Transactions on Acoustics, Speech, and Signal Processing. 34 (1): 91–95. doi:10.1109/TASSP.1986.1164785
  20. Dongarra, Jack; Sullivan, Francis (January 2000). «Guest Editors Introduction to the top 10 algorithms». Computing in Science Engineering. 2 (1): 22–23. ISSN 1521-9615. doi:10.1109/MCISE.2000.814652 Verifique data em: |data= (ajuda)
  21. Brenner, Norman M.; Rader, Charles M. (1976). «A New Principle for Fast Fourier Transformation». IEEE Transactions on Acoustics, Speech, and Signal Processing. 24 (3): 264–266. doi:10.1109/TASSP.1976.1162805
  22. Kent, Ray D.; Read, Charles (2002). Acoustic Analysis of Speech. [S.l.: s.n.] ISBN 0-7693-0112-6
  23. Strang, Gilbert (May–June 1994). «Wavelets». American Scientist. 82 (3): 250–255. JSTOR 29775194 Verifique data em: |data= (ajuda)
  24. Ergün, Funda (1995). «Testing multivariate linear functions: Overcoming the generator bottleneck». Proceedings of the 27th ACM Symposium on the Theory of Computing: 407–416. doi:10.1145/225058.225167
  25. Frigo, Matteo; Johnson, Steven G. (2005). «The Design and Implementation of FFTW3» (PDF). Proceedings of the IEEE. 93: 216–231. doi:10.1109/jproc.2004.840301
  26. Frigo, Matteo; Johnson, Steven G. (January 2007) [2006-12-19]. «A Modified Split-Radix FFT With Fewer Arithmetic Operations». IEEE Transactions on Signal Processing. 55 (1): 111–119. doi:10.1109/tsp.2006.882087 Verifique data em: |data= (ajuda)
  27. Duhamel, Pierre (1990). «Algorithms meeting the lower bounds on the multiplicative complexity of length-2n DFTs and their connection with practical algorithms». IEEE Transactions on Acoustics, Speech, and Signal Processing. 38 (9): 1504–1511. doi:10.1109/29.60070
  28. Duhamel, Pierre; Vetterli, Martin (1990). «Fast Fourier transforms: a tutorial review and a state of the art». Signal Processing. 19: 259–299. doi:10.1016/0165-1684(90)90158-U
  29. Edelman, Alan; McCorquodale, Peter; Toledo, Sivan (1999). «The Future Fast Fourier Transform?» (PDF). SIAM Journal on Scientific Computing. 20: 1094–1114. doi:10.1137/S1064827597316266
  30. Guo, Haitao; Burrus, Charles Sidney (1996). «Fast approximate Fourier transform via wavelets transform». Proceedings of SPIE - The International Society for Optical Engineering. 2825: 250–259. CiteSeerX 10.1.1.54.3984Acessível livremente. doi:10.1117/12.255236
  31. Shentov, Ognjan V.; Mitra, Sanjit K.; Heute, Ulrich; Hossen, Abdul N. (1995). «Subband DFT. I. Definition, interpretations and extensions». Signal Processing. 41 (3): 261–277. doi:10.1016/0165-1684(94)00103-7
  32. Hassanieh, Haitham; Indyk, Piotr; Katabi, Dina; Price, Eric (January 2012). «Simple and Practical Algorithm for Sparse Fourier Transform» (PDF). Kyoto, Japan. ACM-SIAM Symposium On Discrete Algorithms (SODA) Verifique data em: |data= (ajuda) (NB. See also the sFFT Web Page.)
  33. Haynal, Steve; Haynal, Heidi (2011). «Generating and Searching Families of FFT Algorithms» (PDF). Journal on Satisfiability, Boolean Modeling and Computation. 7: 145–187. Consultado em 17 de julho de 2018. Arquivado do original (PDF) em 26 de abril de 2012 |archive-url= e |arquivourl= redundantes (ajuda)
  34. Lundy, Thomas J.; Van Buskirk, James (2007). «A new matrix approach to real FFTs and convolutions of length 2k». Computing. 80 (1): 23–45. doi:10.1007/s00607-007-0222-6
  35. Papadimitriou, Christos H. (1979). «Optimality of the fast Fourier transform». Journal of the ACM. 26: 95–102. doi:10.1145/322108.322118
  36. Sorensen, Henrik V.; Jones, Douglas L.; Heideman, Michael T.; Burrus, Charles Sidney (1987). «Real-valued fast Fourier transform algorithms». IEEE Transactions on Acoustics, Speech, and Signal Processing. 35 (6): 849–863. doi:10.1109/TASSP.1987.1165220
  37. Sorensen, Henrik V.; Jones, Douglas L.; Heideman, Michael T.; Burrus, Charles Sidney (1987). «Corrections to "Real-valued fast Fourier transform algorithms"». IEEE Transactions on Acoustics, Speech, and Signal Processing. 35 (9): 1353–1353. doi:10.1109/TASSP.1987.1165284
  38. Winograd, Shmuel (1978). «On computing the discrete Fourier transform». Mathematics of Computation. 32 (141): 175–199. JSTOR 2006266. PMC 430186Acessível livremente. PMID 16592303. doi:10.1090/S0025-5718-1978-0468306-4
  39. Winograd, Shmuel (1979). «On the multiplicative complexity of the discrete Fourier transform». Advances in Mathematics. 32: 83–117. doi:10.1016/0001-8708(79)90037-9
  40. Morgenstern, Jacques (1973). «Note on a lower bound of the linear complexity of the fast Fourier transform». Journal of the ACM. 20 (2): 305–306. doi:10.1145/321752.321761
  41. Mohlenkamp, Martin J. (1999). «A Fast Transform for Spherical Harmonics» (PDF). Journal of Fourier Analysis and Applications. 5 (2–3): 159–184. doi:10.1007/BF01261607. Consultado em 11 de janeiro de 2018
  42. Schatzman, James C. (1996). «Accuracy of the discrete Fourier transform and the fast Fourier transform». SIAM Journal on Scientific Computing. 17: 1150–1166. doi:10.1137/s1064827593247023
  43. Nussbaumer, Henri J. (1977). «Digital filtering using polynomial transforms». Electronics Letters. 13 (13): 386–387. doi:10.1049/el:19770280
  44. Pan, Victor Ya. (2 de janeiro de 1986). «The trade-off between the additive complexity and the asynchronicity of linear and bilinear algorithms». Information Processing Letters. 22 (1): 11–14. doi:10.1016/0020-0190(86)90035-9. Consultado em 31 de outubro de 2017
  45. Potts, Daniel; Steidl, Gabriele; Tasche, Manfred (2001). «Fast Fourier transforms for nonequispaced data: A tutorial». In: Benedetto, J. J.; Ferreira, P. Modern Sampling Theory: Mathematics and Applications (PDF). [S.l.]: Birkhäuser
  46. Rokhlin, Vladimir; Tygert, Mark (2006). «Fast Algorithms for Spherical Harmonic Expansions» (PDF). SIAM Journal on Scientific Computing. 27 (6): 1903–1928. doi:10.1137/050623073. Consultado em 18 de setembro de 2014
  47. Welch, Peter D. (1969). «A fixed-point fast Fourier transform error analysis». IEEE Transactions on Audio and Electroacoustics. 17 (2): 151–157. doi:10.1109/TAU.1969.1162035
  48. Gauss, Carl Friedrich (1866). «Theoria interpolationis methodo nova tractata» [Theory regarding a new method of interpolation]. Nachlass (Unpublished manuscript). Col: Werke (em Latin e German). 3. Göttingen, Germany: Königlichen Gesellschaft der Wissenschaften zu Göttingen. pp. 265–303
  49. Heideman, Michael T.; Johnson, Don H.; Burrus, Charles Sidney (1 de setembro de 1985). «Gauss and the history of the fast Fourier transform». Archive for History of Exact Sciences. 34 (3): 265–277. ISSN 0003-9519. doi:10.1007/BF00348431
  50. Yates, Frank (1937). «The design and analysis of factorial experiments». Technical Communication no. 35 of the Commonwealth Bureau of Soils
  51. Cooley, James W.; Lewis, Peter A. W.; Welch, Peter D. (June 1967). «Historical notes on the fast Fourier transform». IEEE Transactions on Audio and Electroacoustics. 15 (2): 76–79. ISSN 0018-9278. doi:10.1109/TAU.1967.1161903 Verifique data em: |data= (ajuda)
  52. Cooley, James W.; Tukey, John W. (1965). «An algorithm for the machine calculation of complex Fourier series». Mathematics of Computation. 19 (90): 297–301. ISSN 0025-5718. doi:10.1090/S0025-5718-1965-0178586-1
  53. Danielson, Gordon C.; Lanczos, Cornelius (1942). «Some improvements in practical Fourier analysis and their application to x-ray scattering from liquids». Journal of the Franklin Institute. 233 (4): 365–380. doi:10.1016/S0016-0032(42)90767-1
  54. Lanczos, Cornelius (1956). Applied Analysis. [S.l.]: Prentice–Hall
  55. Fernandez-de-Cossio Diaz, Jorge; Fernandez-de-Cossio, Jorge (8 de agosto de 2012). «Computation of Isotopic Peak Center-Mass Distribution by Fourier Transform». Analytical Chemistry. 84 (16): 7052–7056. ISSN 0003-2700. doi:10.1021/ac301296a
  56. Chu, Eleanor; George, Alan. «Chapter 16». Inside the FFT Black Box: Serial and Parallel Fast Fourier Transform Algorithms. [S.l.]: CRC Press. pp. 153–168. ISBN 978-1-42004996-1
  57. Rockmore, Daniel N. (January 2000). «The FFT: an algorithm the whole family can use». Computing in Science Engineering. 2 (1): 60–64. ISSN 1521-9615. doi:10.1109/5992.814659 Verifique data em: |data= (ajuda)
  58. Rockmore, Daniel N. (2004). Byrnes, Jim, ed. Recent Progress and Applications in Group FFTs. Computational Noncommutative Algebra and Applications. Col: NATO Science Series II: Mathematics, Physics and Chemistry. 136. [S.l.]: Springer Netherlands. pp. 227–254. ISBN 978-1-4020-1982-1. doi:10.1007/1-4020-2307-3_9
  59. Gentleman, W. Morven; Sande, G. (1966). «Fast Fourier transforms—for fun and profit». Proceedings of the AFIPS. 29: 563–578. doi:10.1145/1464291.1464352
  60. Gauss, Carl Friedrich (1866) [1805]. Theoria interpolationis methodo nova tractata. Col: Werke (em Latin e German). 3. Göttingen, Germany: Königliche Gesellschaft der Wissenschaften. pp. 265–327
  61. Cooley, James W. (1987). The Re-Discovery of the Fast Fourier Transform Algorithm (PDF). Mikrochimica Acta. III. Vienna, Austria: [s.n.] pp. 33–45
  62. Garwin, Richard (June 1969). «The Fast Fourier Transform As an Example of the Difficulty in Gaining Wide Use for a New Technique» (PDF). IEEE Transactions on Audio and Electroacoustics. AU-17 (2): 68–72 Verifique data em: |data= (ajuda)
  63. «libftsh library». Consultado em 17 de julho de 2018. Cópia arquivada em 23 de junho de 2010
  64. Cormen, Thomas H.; Nicol, David M. (1998). «Performing out-of-core FFTs on parallel disk systems» (PDF). Parallel Computing. 24 (1): 5–20. doi:10.1016/S0167-8191(97)00114-2
  65. Dutt, Alok; Rokhlin, Vladimir (1 de novembro de 1993). «Fast Fourier Transforms for Nonequispaced Data». SIAM Journal on Scientific Computing. 14 (6): 1368–1393. ISSN 1064-8275. doi:10.1137/0914081

Ligações externas

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.