Algoritmus FFT Prime-factor - Prime-factor FFT algorithm

Prime-faktor algoritmus (PFA) , také volal algoritmus Good-Thomas (1958/1963), je rychlá Fourierova transformace (FFT) algoritmus, který re-vyjadřuje diskrétní Fourierova transformace (DFT) o velikosti N = N 1 N 2 jako dvourozměrný N 1 × N 2 DFT, ale pouze pro případ, kdy N 1 a N 2 jsou relativně primární . Tyto menší transformace velikosti N 1 a N 2 lze poté vyhodnotit rekurzivní aplikací PFA nebo použitím jiného algoritmu FFT.

PFA by neměla být zaměňována s generalizací smíšeného radixu populárního algoritmu Cooley – Tukey , který také rozděluje DFT velikosti N = N 1 N 2 na menší transformace velikosti N 1 a N 2 . Druhý algoritmus může používat jakékoli faktory (ne nutně relativně prime), ale má tu nevýhodu, že kromě menších transformací vyžaduje také další násobení kořeny jednoty zvané twiddle faktory . Na druhou stranu má PFA nevýhody v tom, že funguje pouze pro relativně hlavní faktory (např. Je zbytečné pro sílu dvou velikostí) a že vyžaduje složitější přeindexování dat na základě čínské věty o zbytku ( CRT). Všimněte si však, že PFA lze kombinovat s Cooley – Tukey se smíšeným radixem, přičemž první faktorizuje N do relativně hlavních složek a druhý zpracovává opakované faktory.

PFA je také úzce spojena s vnořené algoritmu FFT Winograd , pokud toto spojení provádí rozložené N 1 pomocí N 2 transformace pomocí sofistikovanějších dvourozměrných konvolučních techniky. Některé starší články proto také nazývají Winogradův algoritmus PFA FFT.

(Ačkoli PFA je odlišný od algoritmu Cooley-Tukey, Good ‚s 1958 práce na PFA byl citován jako inspirace Cooley a Tukey v jejich 1965 papíru, a tam byl zpočátku nějaký zmatek o tom, zda tyto dva algoritmy byly různé. Ve skutečnosti , byla to jediná předchozí práce FFT, kterou citovali, protože si tehdy nebyli vědomi dřívějšího výzkumu Gaussa a dalších.)

Algoritmus

Připomeňme, že DFT je definován vzorcem:

PFA zahrnuje opětovné indexování vstupního a výstupního pole, které při nahrazení do vzorce DFT transformuje na dva vnořené DFT (dvourozměrný DFT).

Opětovné indexování

Předpokládejme, že kde a jsou relativně prime, tj . Poté se provede opětovné indexování pomocí dvou bijektivních mapování mezi a .

První mapa

Je bijection nazývá ruritánského mapování (také Goodův mapping).

Ve skutečnosti jde o homomorfismus , protože a :

Proto, v souladu s prvním izomorfizmu teorém , je vstřikování do skupiny kvocient . Tady jádro , protože jinak by existoval pár a , které nejsou současně nulové, takové, že pro nenulovou . Protože jediná zbývající hodnota je 1. V tomto případě by bylo celé číslo, ze kterého je nemožné, protože aby zlomek poskytl celočíselnou hodnotu, musí být násobkem (od ). To by však bylo v rozporu . To je tedy injekce . Nyní, protože , je skutečně bijektivní, tj. Pro odlišné hodnoty páru produkuje odlišné hodnoty v celé sadě .

Druhá mapa

se nazývá CRT mapování. Název odkazuje na čínský zbytek věty, která poskytuje bijective mapování , ve kterém a jsou jakékoli řešení lineární rovnice diophantine rovnice (viz Bézout identitu ).

Aby bylo možné provést DFT, je třeba mapovat různé páry a na odlišné hodnoty a také páry a na . K tomu lze použít ruritánské mapování k vytvoření indexů ve vstupním vektoru a mapování CRT k vyhodnocení indexů výstupního vektoru nebo použít dvě mapování opačně.

Velká část výzkumu byla věnována schématům pro efektivní vyhodnocení této reindexace, ideálně na místě , při minimalizaci počtu nákladných operací modulo (zbytek) (Chan, 1991 a reference).

DFT re-výraz

Výše uvedená opětovná indexace se poté nahradí do vzorce pro DFT a zejména do produktu v exponentu. Protože tento exponent je vyhodnocován modulo . Podobně a jsou implicitně periodické , takže jejich dolní indexy jsou vyhodnocovány modulo .

Nejprve nahraďte ruritánské mapování do vzorce pro DFT:

.

Nyní nahradit mapování CRT namísto vyrábět

Podobně substituce mapování CRT namísto mapování Ruritanian namísto výnosů

.

V obou případech jsou vnitřní a vnější částky jsou jednoduše DFT velikosti a , v tomto pořadí.

Reference

  • Dobře, IJ (1958). "Algoritmus interakce a praktická Fourierova analýza". Journal of královské statistické společnosti, série B . 20 (2): 361–372. JSTOR  2983896 .Dodatek, tamtéž. 22 (2), 373-375 (1960) JSTOR  2984108 .
  • Thomas, LH (1963). "Použití počítače k ​​řešení problémů ve fyzice". Aplikace digitálních počítačů . Boston: Ginn.
  • Duhamel, P .; Vetterli, M. (1990). "Fast Fourier transforms: a tutorial review and a state of the art" . Zpracování signálu . 19 (4): 259–299. doi : 10.1016 / 0165-1684 (90) 90158-U .
  • Chan, SC; Ho, KL (1991). "Při indexování algoritmu rychlé Fourierovy transformace prime-factor". IEEE Trans. Obvody a systémy . 38 (8): 951–953. doi : 10,1109 / 31,85638 .

Viz také