Алгоритм Кулі — Тьюкі — найбільш поширений алгоритм швидкого перетворення Фур'є (ШПФ), запропонований та названий на честь американських математиків та Джона Тьюкі. Пізніше було з'ясовано, що алгоритм було винайдено Гаусом ще 160 років до цього. На відміну від дискретного перетворення Фур'є (ДПФ), у якому для обчислення потрібно O(N2) арифметичних операцій, алгоритм дозволяє обчислити той самий результат з невеликою похибкою за O(N log N) операцій, тому й отримав популярність в апаратній та програмній обробці сигналів.
Історія
Цей алгоритм, в тому числі і його рекурсивне застосування був винайдений німецьким математиком Карлом Фрідріхом Гаусом ще у 1805 році, який використовував його для інтерполяції астероїдів Паллади та Юнони. ШПФ став популярним після публікації наукової статті (IBM) та Джона Тьюкі (Принстонський університет) у 1965 році.
Опис
Алгоритм Radix-2 з прорідженням за часом
Алгоритм Radix-2 з прорідженням за часом може бути здійснений лише тоді, коли кількість точок є степенем двійки (, де — довільне число).
Дискретне перетворення Фур'є (ДПФ) визначається за формулою:
де є цілим числом від 0 до N-1, N — кількість вибірок
Алгоритм спочатку обчислює ДПФ для парних вибірок та непарних , а потім поєднує ці два результати для отримання дискретного перетворення Фур'є усієї послідовності. Обчислення продовжуються рекурсивно, щоб зменшити кількість обчислень до O(N log N).
Алгоритм перебудовує ДПФ функції на дві частини: сума по парних вибірках і сума по непарних вибірках :
Можна враховувати загальний множник з другої суми, як показано в рівнянні нижче. Тоді зрозуміло, що дві суми є ДПФ частини з парними виборками і ДПФ частини з непарними виборками функції . Позначимо DFT вхідних даних парних позицій як і ДПФ даних непарних позицій за , отримаємо:
Завдяки періодичності ДПФ, ми знаємо, що та
Таким чином, все перетворення можна розрахувати наступним чином:
Псевдокод
X0,...,N−1 ← ditfft2(x, N, s): DFT of (x0, xs, x2s, ..., x(N-1)s): if N = 1 then X0 ← x0trivial size-1 DFT base case else X0,...,N/2−1 ← ditfft2(x, N/2, 2s) DFT of (x0, x2s, x4s, ...) XN/2,...,N−1 ← ditfft2(x+s, N/2, 2s) DFT of (xs, xs+2s, xs+4s, ...) for k = 0 to N/2−1 combine DFTs of two halves into full DFT: t ← Xk Xk ← t + exp(−2πi k/N) Xk+N/2Xk+N/2 ← t − exp(−2πi k/N) Xk+N/2 endfor endif
Застосування
Які і усі інші алгоритми швидкого перетворення Фур'є, алгоритм Кулі-Тьюкі широко застосовується у приладах з цифровою обробкою сигналів (метрологічних, звукових, медичних тощо), комп'ютерній обробці фото та відео, комп'ютерному моделюванні технологічних та природних процесів.
Посилання
- Проста реалізація алгоритму Radix-2 на C++ [ 8 липня 2020 у Wayback Machine.]
- Реалізація алгоритму Кулі-Тьюкі на мові C [ 23 лютого 2015 у Wayback Machine.]
Джерела
- James W. Cooley, John W. Tukey: An algorithm for the machine calculation of complex Fourier series. In: Math. Comput. 19, 1965, S. 297—301.
- Heideman M. T., D. H. Johnson, and C. S. Burrus, "Gauss and the history of the fast Fourier transform, " IEEE ASSP Magazine, 1, (4), 14-21 (1984)
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Algoritm Kuli Tyuki najbilsh poshirenij algoritm shvidkogo peretvorennya Fur ye ShPF zaproponovanij ta nazvanij na chest amerikanskih matematikiv ta Dzhona Tyuki Piznishe bulo z yasovano sho algoritm bulo vinajdeno Gausom she 160 rokiv do cogo Na vidminu vid diskretnogo peretvorennya Fur ye DPF u yakomu dlya obchislennya potribno O N2 arifmetichnih operacij algoritm dozvolyaye obchisliti toj samij rezultat z nevelikoyu pohibkoyu za O N log N operacij tomu j otrimav populyarnist v aparatnij ta programnij obrobci signaliv IstoriyaCej algoritm v tomu chisli i jogo rekursivne zastosuvannya buv vinajdenij nimeckim matematikom Karlom Fridrihom Gausom she u 1805 roci yakij vikoristovuvav jogo dlya interpolyaciyi asteroyidiv Palladi ta Yunoni ShPF stav populyarnim pislya publikaciyi naukovoyi statti IBM ta Dzhona Tyuki Prinstonskij universitet u 1965 roci OpisAlgoritm Radix 2 z proridzhennyam za chasom Algoritm Radix 2 dlya 8 mi tochok Algoritm Radix 2 z proridzhennyam za chasom mozhe buti zdijsnenij lishe todi koli kilkist tochok N displaystyle N ye stepenem dvijki N 2m displaystyle N 2 m de m displaystyle m dovilne chislo Diskretne peretvorennya Fur ye DPF viznachayetsya za formuloyu Xk n 0N 1xne 2piNnk displaystyle X k sum n 0 N 1 x n e frac 2 pi i N nk de k displaystyle k ye cilim chislom vid 0 do N 1 N kilkist vibirok Algoritm spochatku obchislyuye DPF dlya parnih vibirok x2m x0 x2 xN 2 displaystyle x 2m x 0 x 2 ldots x N 2 ta neparnih x2m 1 x1 x3 xN 1 displaystyle x 2m 1 x 1 x 3 ldots x N 1 a potim poyednuye ci dva rezultati dlya otrimannya diskretnogo peretvorennya Fur ye usiyeyi poslidovnosti Obchislennya prodovzhuyutsya rekursivno shob zmenshiti kilkist obchislen do O N log N Algoritm perebudovuye DPF funkciyi xn displaystyle x n na dvi chastini suma po parnih vibirkah n 2m displaystyle n 2m i suma po neparnih vibirkah n 2m 1 displaystyle n 2m 1 Xk m 0N 2 1x2me 2piN 2m k m 0N 2 1x2m 1e 2piN 2m 1 k displaystyle begin matrix X k amp amp sum limits m 0 N 2 1 x 2m e frac 2 pi i N 2m k sum limits m 0 N 2 1 x 2m 1 e frac 2 pi i N 2m 1 k end matrix Mozhna vrahovuvati zagalnij mnozhnik e 2piNk displaystyle e frac 2 pi i N k z drugoyi sumi yak pokazano v rivnyanni nizhche Todi zrozumilo sho dvi sumi ye DPF chastini z parnimi viborkami x2m displaystyle x 2m i DPF chastini z neparnimi viborkami x2m 1 displaystyle x 2m 1 funkciyi xn displaystyle x n Poznachimo DFT vhidnih danih parnih pozicij x2m displaystyle x 2m yak Ek displaystyle E k i DPF danih neparnih pozicij x2m 1 displaystyle x 2m 1 za Ok displaystyle O k otrimayemo Xk m 0N 2 1x2me 2piN 2mk DFTofeven indexedpartofxm e 2piNk m 0N 2 1x2m 1e 2piN 2mk DFTofodd indexedpartofxm Ek e 2piNkOk displaystyle begin matrix X k underbrace sum limits m 0 N 2 1 x 2m e frac 2 pi i N 2 mk mathrm DFT of even indexed part of x m e frac 2 pi i N k underbrace sum limits m 0 N 2 1 x 2m 1 e frac 2 pi i N 2 mk mathrm DFT of odd indexed part of x m E k e frac 2 pi i N k O k end matrix Zavdyaki periodichnosti DPF mi znayemo sho Ek N 2 Ek displaystyle E k N 2 E k ta Ok N 2 Ok displaystyle O k N 2 O k Takim chinom vse peretvorennya mozhna rozrahuvati nastupnim chinom Xk Ek e 2piNkOkfor 0 k lt N 2Ek N 2 e 2piNkOk N 2for N 2 k lt N displaystyle begin matrix X k amp amp left begin matrix E k e frac 2 pi i N k O k amp mbox for 0 leq k lt N 2 E k N 2 e frac 2 pi i N k O k N 2 amp mbox for N 2 leq k lt N end matrix right end matrix Psevdokod X0 N 1 ditfft2 x N s DFT of x0 xs x2s x N 1 s if N 1 then X0 x0trivial size 1 DFT base case else X0 N 2 1 ditfft2 x N 2 2s DFT of x0 x2s x4s XN 2 N 1 ditfft2 x s N 2 2s DFT of xs xs 2s xs 4s for k 0 to N 2 1 combine DFTs of two halves into full DFT t Xk Xk t exp 2pi k N Xk N 2Xk N 2 t exp 2pi k N Xk N 2 endfor endifZastosuvannyaYaki i usi inshi algoritmi shvidkogo peretvorennya Fur ye algoritm Kuli Tyuki shiroko zastosovuyetsya u priladah z cifrovoyu obrobkoyu signaliv metrologichnih zvukovih medichnih tosho komp yuternij obrobci foto ta video komp yuternomu modelyuvanni tehnologichnih ta prirodnih procesiv PosilannyaProsta realizaciya algoritmu Radix 2 na C 8 lipnya 2020 u Wayback Machine Realizaciya algoritmu Kuli Tyuki na movi C 23 lyutogo 2015 u Wayback Machine DzherelaJames W Cooley John W Tukey An algorithm for the machine calculation of complex Fourier series In Math Comput 19 1965 S 297 301 Heideman M T D H Johnson and C S Burrus Gauss and the history of the fast Fourier transform IEEE ASSP Magazine 1 4 14 21 1984