Schemat motyla

Wykres przepływu sygnału łączący wejścia x (po lewej) z wyjściami y , które od nich zależą (po prawej) dla kroku „motylkowego” radix-2 Cooley – Tukey FFT. Diagram ten przypomina motyla (jak u pokazanego dla porównania motyla morpho ), stąd nazwa, chociaż w niektórych krajach nazywany jest również diagramem klepsydry.

W kontekście szybkich algorytmów transformaty Fouriera motyl jest częścią obliczeń, która łączy wyniki mniejszych dyskretnych transformat Fouriera (DFT) w większą DFT lub odwrotnie (podział większej DFT na podtransformacje). Nazwa „motyl” pochodzi od kształtu diagramu przepływu danych w przypadku radix-2, jak opisano poniżej. Uważa się, że najwcześniejsze wystąpienie tego terminu w druku pojawiło się w MIT Subhranila Majumdera z 1969 roku . Tę samą strukturę można znaleźć również w algorytmie Viterbiego , służącym do znajdowania najbardziej prawdopodobnej sekwencji stanów ukrytych.

Najczęściej termin „motyl” pojawia się w kontekście algorytmu Cooley-Tukey FFT , który rekurencyjnie rozkłada DFT o złożonym rozmiarze n = rm na r mniejszych transformat o rozmiarze m , gdzie r jest „podstawą” transformacji. Te mniejsze DFT są następnie łączone za pomocą motyli o rozmiarze r , które same są DFT o rozmiarze r (wykonywane m razy na odpowiednich wyjściach podprzekształceń) wstępnie pomnożone przez pierwiastki jedności (znane jako współczynniki twiddle ). (To jest przypadek „dziesiątkowania w czasie”; można również wykonać kroki w odwrotnej kolejności, znane jako „dziesiątkowanie częstotliwości”, w którym motyle są pierwsze i są mnożone przez współczynniki twiddle. Zobacz także artykuł Cooley – Tukey FFT .)

Schemat motyla Radix-2

00 W przypadku algorytmu radix-2 Cooley-Tukey motyl jest po prostu DFT o rozmiarze-2, który przyjmuje dwa wejścia ( x , x 1 ) (odpowiednie wyjścia dwóch podprzekształceń) i daje dwa wyjścia ( y , y 1 ) według wzoru (bez uwzględnienia współczynników twiddle ):

00 Jeśli narysujemy diagram przepływu danych dla tej pary operacji, linie ( x , x1 ) do ( y , y1 ) przecinają się i przypominają skrzydła motyla , stąd nazwa (patrz także ilustracja po prawej).

Decymacja w czasie radix-2 FFT dzieli długość- N DFT na dwie długości- N /2 DFT, po których następuje etap łączenia składający się z wielu operacji motylkowych.

  Dokładniej, algorytm FFT radix-2 z dziesiątkowaniem w czasie na wejściach n = 2   p w odniesieniu do prymitywnego n -tego pierwiastka jedności opiera się na O( n log 2 n ) motylach postaci:

gdzie k jest liczbą całkowitą zależną od obliczanej części transformacji. Podczas gdy odpowiednią transformację odwrotną można wykonać matematycznie, zastępując ω przez ω -1 (i ewentualnie mnożąc przez ogólny współczynnik skali, w zależności od konwencji normalizacji), można również bezpośrednio odwrócić motyle:

odpowiadający algorytmowi FFT z decymacją w częstotliwości.

Inne zastosowania

Motyl może być również użyty do poprawy losowości dużych tablic częściowo losowych liczb, poprzez doprowadzenie każdego 32- lub 64-bitowego słowa do kontaktu przyczynowego z każdym innym słowem za pomocą pożądanego algorytmu mieszającego, tak aby zmiana dowolnego bitu miała możliwość zmiany wszystkich bitów w dużej tablicy.

Zobacz też

  1. ^ Alan V. Oppenheim, Ronald W. Schafer i John R. Buck, Discrete-Time Signal Processing , wydanie 2 (Upper Saddle River, NJ: Prentice Hall, 1989)
  2. ^ CJ Weinstein (1969-11-21). Efekty kwantyzacji w filtrach cyfrowych (raport). Laboratorium Lincolna MIT . P. 42. Zarchiwizowane od oryginału w dniu 11 lutego 2015 r . Źródło 2015-02-10 . To obliczenie, określane jako „motyl”
  3. ^ Cipra, Barry A. (2012-06-04). „Schemat FFT i motyla” . mathoverflow.net . Źródło 2015-02-10 .
  4. ^ *   Naciśnij, WH; Teukolsky, SA; Vetterling, WT; Flannery, BP (2007), „Sekcja 7.2 Całkowite mieszanie dużej tablicy” , Przepisy numeryczne: The Art of Scientific Computing (wyd. 3), Nowy Jork: Cambridge University Press, ISBN 978-0-521-88068-8

Linki zewnętrzne