FourierLab z čeho se to skládá

Tohle je statická kopie kapitoly pro vyhledávače. Interaktivní verze má animované obrázky, kontrolní otázky a tlačítka, která příklad načtou do kalkulačky.

Transformace: násob a sečti

Fourierova řada platí pro periodické signály. Reálná měření periodická nejsou — a přesto se o nich chce vědět, jaké frekvence obsahují. Přechod k transformaci je jen zobecnění, ale mechanismus je stejný a je pozoruhodně prostý.

signál (zlatě) a zkušební sinusovka (modře)jejich součinzkušební frekvencef8 Hzsoučet součinů0,00000signál obsahuje8 Hz · 1,020 Hz · 0,6mimo — příspěvky se vyruší
  1. x(t) a sin(2π·8·t)

    Chceme vědět, kolik je v signálu té jedné frekvence. Nasadíme na něj zkušební sinusovku.

  2. x(t) · sin(2πft)

    Bod po bodu. Když se ty dvě shodují, součin je většinou kladný. Když se neshodují, střídá znaménko.

  3. Σ x(t)·sin = 0,0000

    Součet je velký, jen když se ty dvě trefily. Jinak se kladné a záporné příspěvky vyruší — a to je celý mechanismus.

  4. X(f) = Σ x(t)·e^(−i2πft)

    Sinus i kosinus naráz — protože fázi neznáme a e^(−iωt) je obojí v jednom komplexním čísle. To je celý ComplexLab, kapitola 4.

  5. X(f) = velikost a fáze té frekvence v signálu

    Velikost říká „kolik toho tam je“, argument „v jaké fázi“. Transformace není nic záhadného — je to skalární součin signálu se sinusovkou, provedený pro každou frekvenci zvlášť.

Posuň zkušební frekvenci na 8 nebo 20 a sleduj plochu pod součinem. Když se trefí, plocha je celá na jedné straně; jinak se vyruší.
X(f) = ∫ x(t)·e^(−i2πft) dtFourierova transformace
X[k] = Σₙ x[n]·e^(−i2πkn/N)a její diskrétní verze, DFT

Je to skalární součin. Vynásobit signál sinusovkou a sečíst je přesně to, co dělá skalární součin ve VectorLabu — jen se sčítá přes vzorky místo přes složky. Transformace tedy měří, jak moc je signál rovnoběžný s každou sinusovkou. Když je kolmý, vyjde nula.

Proč komplexní exponenciála a ne sinus

Kdyby se zkoušel jen sinus, signál posunutý o čtvrt periody by vyšel jako nula — přestože tu frekvenci obsahuje. Bylo by tedy nutné zkoušet zvlášť sinus a zvlášť kosinus a výsledky pak skládat. e^(−iωt) je obojí naráz, uložené do jednoho komplexního čísla:

část výsledkuco znamená
|X(f)|kolik té frekvence v signálu je
arg X(f)v jaké fázi

To je přesně důvod, proč ComplexLab existuje a proč se má číst první.

Ortogonalita dělá tu práci

Mechanismus stojí a padá s tím, že se nesprávné frekvence vyruší. Vynásobí-li se signál sinusovkou, kterou neobsahuje, součin střídá znaménko a součet vyjde nula. Vynásobí-li se tou, kterou obsahuje, součin je většinou téhož znaménka a součet je velký.

Kdy se to vyruší jen skoro. „Vyjde nula“ platí přesně jen tehdy, když se do okna vejde celý počet period. Když ne, zbude zbytek — a to je prosakování z kapitoly 6, jedna z nejčastějších příčin, proč naměřené spektrum vypadá jinak, než čtenář čekal. Testy v repu to měří: tón přesně na koši dá ve všech ostatních koších 1,6·10⁻¹⁵ (tedy nulu), tón o půl koše vedle dá až 0,083.

Vzorce v této kapitole

X(f) — Fourierova transformace
X(f) = ∫ x(t)·e^(−i2πft) dt [—] kap. 3
X[k] — DFT
X[k] = Σ x[n]·e^(−i2πkn/N) [—] kap. 3