Diskrétní Fourierova transformace (DFT)

Definice

kde je primitivní -tá odmocnina z jedné.


Fourierova báze a ortonormalita

Vektory tvoří ortonormální bázi prostoru vzhledem ke skalárnímu součinu:

Intuice:

  • Fourierova báze rozkládá signál do harmonických složek (sinusy a cosiny).
  • DFT převádí signál z časové domény do frekvenční.

Lemma R (DFT reálného vektoru)

Pokud je , pak platí:

Důkaz: Použijeme definici a vlastnosti komplexních exponentů a sdružení:


Spektrální rozklad

Každý reálný signál lze vyjádřit jako:

kde a jsou vzory funkcí a .

Výpočet koeficientů:

Z Fourierova obrazu spočteme:


FFT – Rychlý výpočet DFT

DFT v naivním tvaru má časovou složitost . FFT ji snižuje na:

Idea:

  • Rekurzivně rozdělit signál na sudé a liché indexy.
  • DFT délky rozložíme na dvě DFT délky .

Algoritmus FFT (rekurzivní)


Nerekurzivní FFT (FFT2)

Komplexita:

  • Čas:
  • Paměť:

Aplikace DFT a FFT

  • Zpracování signálu: Rozklad na tóny, redukce šumu, dolní propust
  • Násobení polynomů: DFT transformuje součin na součin po složkách
  • Kompresní algoritmy: JPEG využívá variantu DFT (DCT)

Konvoluce a spektrální vlastnosti

Konvoluce odpovídá skalárnímu součinu “posunutých” vektorů. Platí:

využívá se v efektivním výpočtu konvoluce.


FFT v konečných tělesech

Fourierovu transformaci lze definovat nejen nad , ale i nad konečnými tělesy, pokud v nich existuje primitivní -tá odmocnina z jedničky.

Příklad:

V tělese , kde je prvočíslo tvaru , platí:

a tedy je primitivní -tá odmocnina z jedničky. Ale problém:

  • zřídkakdy mocnina dvou nepoužitelné přímo ve FFT.

Řešení:

Využijeme algebraickou větu:

Multiplikativní grupa je cyklická: takové, že každé nenulové lze zapsat jako .

Tedy je generátor grupy a:

  • je primitivní -ní odmocnina z jedničky.

Praktické příklady:

Prvočíslo Generátor

FFT mimo tělesa

Není třeba pracovat pouze v tělese. Stačí:

  • komutativní okruh s jednotkou,
  • ve kterém existuje:
    • primitivní -tá odmocnina z jedničky ,
    • její inverze (vždy existuje: ),
    • multiplikativní inverze čísla . Takové okruhy umožňují další varianty FFT (např. při násobení velkých čísel) — bez zaokrouhlovacích chyb jako v .

Na rozdíl od klasické komplexní FFT, kde má iracionální složky numerické chyby,

  • FFT v (či vhodném okruhu) je zcela přesná.
  • To se využívá v násobení velkých čísel (např. Karatsuba, Schönhage-Strassen).

Násobení polynomů pomocí FFT

Chceme efektivně spočítat součin dvou polynomů a stupně :

Výsledkem je polynom stupně .

Postup (FFT-based násobení)

  1. Doplnění nulami: Zvolíme , doplníme , nulami na délku .

  2. DFT obou polynomů: Použijeme FFT k výpočtu hodnot , pro , kde je primitivní -tá odmocnina z jedničky.

  3. Bodové násobení:

  1. Inverzní DFT: Získáme zpět koeficienty pomocí inverzní FFT (iDFT), tj.

Složitost

(pro -složkové polynomy po doplnění na )

Intuice

  • DFT převede polynom z koeficientové formy do bodové reprezentace.
  • V bodové formě lze snadno násobit: hodnoty v odpovídajících bodech se jen vynásobí.
  • iDFT převede výsledek zpět do koeficientové reprezentace.