\section{Fourierova transformácia}

Fourierova analýza je rodina matematických techník, založených na rozklade signálu na bázové signály (sínusoidy o rozličných frekvenciách). Poznáme štyri členy tejto rodiny:
\begin{enumerate}
  \item[-] Fourierova transformácia -- pre aperiodické spojité signály,
  \item[-] Fourierove rady -- pre periodické spojité signály,
  \item[-] DTFT (Discrete Time Fourier Transform) -- pre aperiodické diskrétne signály,
  \item[-] DFT (Discrete Fourier Transform) -- pre periodické diskrétne signály.
\end{enumerate}

Diskrétna Fourierova transformácia je jediná z transformácií, s ktorou vie pracovať číslicová technika.

DFT sa dá počítať viacerými spôsobmi, napr. riešením $N$ lineárnych rovníc, korelačnou metódou alebo pomocou rýchlej Fourierovej transformácie. Rýchla Fourierova transformácia (FFT -- Fast Fourier Transform) je oveľa rýchlejšia ako ostatné metódy a preto veľmi vhodná na implementáciu vo výpočtovej technike. V ďalšom texte si stručne priblížime spôsob jej fungovania.

\subsection{Rýchla Fourierova transformácia}
\label{FFT}

Prvým krokom FFT je dekompozícia signálu s $N$ vzorkami na $N$ signálov s jednou vzorkou. To je naznačené na obr. \ref{pic:FFT_dekompozicia}. V každom kroku je signál rozdelený na párne a nepárne číslované vzorky. Počet krokov potrebných na kompletnú dekompozíciu signálu je rovný $\log_2 N$, kde $N$ je počet vzoriek.

\begin{figure}[hbtp]
	\centering
		\includegraphics[width=\columnwidth]{obrazky/FFT_dekompozicia}
	\caption{FFT dekompozícia}
	\label{pic:FFT_dekompozicia}
\end{figure}

V dvojkovej sústave sa dekompozícia signálu dosiahne jednoduchou bitovou inverziou (na prvom mieste bude posledná číslica, na druhom predposledná, atď.). Napríklad, na mieste druhej vzorky podľa obr. \ref{pic:FFT_dekompozicia} (hodnota 1 = 0b0001) bude po dekompozícii 8 = 0b1000 a na mieste vzorky s hodnotou 10 = 0b1010 je po dekompozícii 5 = 0b0101.

V druhom kroku sa určí frekvenčné spektrum $N$ jednovzorkových signálov. To je vcelku jednoduché, pretože frekvenčné spektrum jednobodového signálu je rovné samo sebe. Od tohto bodu už nepracujeme so signálom v časovej oblasti, ale so signálom v oblasti frekvenčnej.

V poslednom kroku je potrebné $N$ jednovzorkových signálov zložiť späť do jedného signálu o $N$ bodoch. Keďže už pracujeme so signálom vo frekvenčnej oblasti, ne\-mô\-že\-me použiť postup, ktorý sme aplikovali na signál v časovej oblasti. V prvom kroku syntetizujeme 16 frekvenčných spektier (každý s veľkosťou jednej vzorky) do 8 frekvenčných spektier (každé s veľkosťou 2 vzorky). V druhom kroku spojíme 8 frekvenčných spektier do 4 frekvenčných spektier, a tak ďalej. V poslednom kroku získame jedno 16 vzorkové frekvenčné spektrum, ktoré je výstupom rýchlej Fourierovej transformácie vstupného 16 vzorkového signálu z časovej oblasti.

V procese syntézy frekvenčných spektier musíme postupovať proti zmenám, ktoré do frekvenčného spektra zaviedol rozklad signálu v časovej oblasti. Na obr. \ref{pic:FFT_synteza} je naznačené, čo sa deje so signálom vo frekvenčnej oblasti, keď ho meníme v časovej oblasti. Pri prekladaní signálu nulami na dvojnásobnú veľkosť sa spektrum signálu duplikuje. Posunutie signálu v časovej oblasti (konvolúcia s posunutou delta funkciou) je ekvivalentné násobeniu spektra signálu sínusoidou. Preto, keď chceme spojiť vzorky $abcd$ a $efgh$ do signálu $aebfcgdh$ (postupujeme proti smeru rozkladu signálu 0 2 4 6 8 10 12 14 na signály 0 4 8 12 a 2 6 10 14 z obr. \ref{pic:FFT_dekompozicia}), musíme spektrum vzoriek $abcd$ duplikovať a spektrum vzoriek $efgh$ vynásobiť sínusoidou a duplikovať.

\begin{figure}[hbtp]
	\centering
		\includegraphics[width=\columnwidth /3*2]{obrazky/FFT_synteza}
	\caption{FFT syntéza}
	\label{pic:FFT_synteza}
\end{figure}

V ďalšom kroku je potrebné obidve spektrá spojiť dohromady. Táto operácia je zachytená na obr. \ref{pic:FFT_diagram_syntezy}. Vidíme, že pri počítaní prvých štyroch vzoriek výsledného signálu sú vzorky nepárnej časti spektra ($EFGH$) násobené $-1$. To je dané jednou vlastnosťou Fourierovej transformácie -- pre reálny vstupný signál s párnym počtom prvkov je spektrum symetrické a komplexne združené okolo svojho stredu. Čiže jedna polovica spektra má zápornú imaginárnu časť.

\begin{figure}[hbtp]
	\centering
		\includegraphics[width=\columnwidth /3*2]{obrazky/FFT_diagram_syntezy}
	\caption{Diagram FFT syntézy}
	\label{pic:FFT_diagram_syntezy}
\end{figure}

Všimnime si, že diagram FFT syntézy (obr. \ref{pic:FFT_diagram_syntezy}) je zložený zo základného obrazca, tzv. motýlika. Motýlik je základný výpočtový prvok FFT, ktorý transformuje dva komplexné vzorky na iné, požadovaným spôsobom upravené komplexné vzorky (obr. \ref{pic:FFT_motylik}).

\begin{figure}[hbtp]
	\centering
		\includegraphics[width=\columnwidth /5*2]{obrazky/FFT_motylik}
	\caption{Motýlik -- základný prvok FFT}
	\label{pic:FFT_motylik}
\end{figure}

Keď je DFT počítaná pomocou korelácie, je rýchlosť výpočtu závislá na druhej mocnine počtu vzoriek ($N^2$). Naproti tomu FFT závisí na hodnote danej výrazom $N \log_2 N$. 1024 bodová FFT je asi 300 krát rýchlejšia, ako 1024 bodová DFT realizovaná pomocou korelácie. Nie len, že je hodnota výrazu $N \log_2 N$ menšia ako $N^2$, ide aj o to, že rastie s menšou strmosťou. Napríklad 32 bodová FFT je asi 10 krát rýchlejšia a 4096 bodová je už 1000 krát rýchlejšia ako rovnako dlhá DFT počítaná pomocou korelácie. \cite{dsp_guide}
