|
Serwis Edukacyjny w I-LO w Tarnowie
Materiały dla uczniów liceum |
Wyjście Spis treści Wstecz Dalej
Autor artykułu: mgr Jerzy Wałaszek |
©2026 mgr Jerzy Wałaszek
|
| SPIS TREŚCI |
| Podrozdziały |
Transformacja Fouriera (ang. Fourier Transformation, FT) jest narzędziem analitycznym, które pozwala rozłożyć skomplikowane "obiekty" na proste elementy składowe. Jako przykład, wyobraź sobie, że w kuchni w naczyniu znajduje się pyszny sok. Gdy poddasz go analizie, to otrzymasz informację z czego ten sok się składa oraz w jakiej ilości zawiera swoje składniki: np. 25% borówek, 40% bananów i 35% mleka. Coś podobnego robi transformacja Fouriera z sygnałami: bierze skomplikowany sygnał, np. dźwięk z mikrofonu, i rozbija go na pojedyncze fale sinusoidalne, z których ten dźwięk jest złożony:

Mówiąc językiem fizyki i matematyki: FT to narzędzie, które bierze skomplikowany, „poszarpany” sygnał (np. dźwięk) i rozbija go na pojedyncze fale sinusoidalne, z których ten sygnał został złożony. Przenosi nas z dziedziny czasu \(t\) (gdzie widzimy tylko sumaryczny hałas) do dziedziny częstotliwości \(f\) (gdzie widzimy konkretne nuty/składniki):

W dziedzinie czasu \(t\) (na zwykłym wykresie fali dźwiękowej) sygnały są nieczytelne. Jeśli w tym samym momencie gra gitara, perkusja i ktoś krzyczy, mikrofon rejestruje jedną, chaotyczną, falującą linię.
FT rozwiązuje problem izolacji i analizy danych:
Transformacja Fouriera zyskała na znaczeniu po opracowaniu szybkiego algorytmu dokonującego tej transformacji, tzw. FFT (ang. Fast Fourier Transformation). Tym zajmiemy się w dalszej części rozdziału. Transformację Fouriera będziemy oznaczać skrótem FT.
Wielu uważa, że szybki algorytm obliczania transformacji Fouriera (FFT) powstał w latach 60. XX wieku. W rzeczywistości Carl Friedrich Gauss obliczył go jako pierwszy w 1805 roku, próbując wyznaczyć orbity asteroid Pallas i Juno.
Francuski matematyk Joseph Fourier przedstawia przed Instytutem Francuskim swoją przełomową pracę dotyczącą rozchodzenia się ciepła w ciałach stałych.
Po 15 latach walki z recenzentami i dopracowywania teorii, Fourier publikuje swoje opus magnum: Théorie analytique de la chaleur.
Fourier działał intuicyjnie, co dawało pole do krytyki. Niemiecki matematyk Dirichlet jako pierwszy podaje ścisły dowód matematyczny zbieżności szeregów Fouriera.
Wraz z pojawieniem się pierwszych komputerów, klasyczna Dyskretna Transformacja Fouriera (DFT) okazała się zbyt ciężka obliczeniowo – dla \(N\) próbek wymagała \(N^{2}\) operacji.
Dopiero po publikacji odkryto, że powtórzyli oni schemat Gaussa z 1805 roku.
Klasyczna FT ma jedną wadę: pokazuje jakie częstotliwości są w sygnale, ale nie pokazuje, kiedy wystąpiły. W odpowiedzi na to ograniczenie matematycy rozwinęli transformację:
Wyobraźmy sobie, że mamy gotowe ciasto. Transformacja Fouriera to algorytm, który działa jak wykrywacz składników – mówi nam dokładnie, ile gramów mąki, cukru i jajek użyto do wypieku tego ciasta.
W świecie inżynierii i kodu dostajemy poszarpany, trudny do zanalizowania wykres funkcji w dziedzinie czasu \(f(t)\). Transformacja Fouriera przekształca go na wykres częstotliwości \(F(\omega)\), dając jasną informację: „Ten sygnał składa się w 70% z fali o częstotliwości 50 Hz i w 30% z szumu o częstotliwości 120 Hz”.
Aby sprawdzić, czy w nieznanym sygnale ukrywa się fala o konkretnej częstotliwości (np. 100 Hz), matematyka wykonuje prosty test dopasowania:
Co z tego wynika?
Zamiast mnożyć sygnał osobno przez sinusy (odpowiedzialne za przesunięcie w fazie) i kosinusy (odpowiedzialne za amplitudę), matematycy używają liczb urojonych. Słynny wzór Eulera wiąże funkcje trygonometryczne z funkcją wykładniczą:
Zapis \(e^{-i\omega t}\) w transformacji Fouriera nie powinien przerażać. W interpretacji geometrycznej to po prostu "wskazówka zegara", która kręci się po okręgu płaszczyzny zespolonej w lewą stronę z określoną prędkością (częstotliwością kołową) \(\omega \).
Oto pełne, ciągłe równanie transformacji Fouriera:
Rozbijmy je na czynniki pierwsze:
W świecie cyfrowym (np. przy obróbce dźwięku w formacie MP3 lub filtrowaniu obrazu) całkę zastępuje się zwykłą pętlą for, która sumuje dyskretne próbki – jest to tzw. Dyskretna Transformacja Fouriera (DFT), najczęściej optymalizowana algorytmem FFT.
Wartość \(\omega \) (czyli badaną częstotliwość) bierzemy bezpośrednio z sufitu – to my, jako programiści lub badacze, decydujemy, jaką częstotliwość chcemy w danym momencie sprawdzić.
Transformacja Fouriera działa jak "radiowy odbiornik analogowy" z pokrętłem strojenia. Sygnał \(f(t)\) to całe pasmo elektromagnetyczne docierające do anteny. My kręcimy pokrętłem i ustawiamy je na konkretną wartość \(\omega \) (np. 100 MHz), aby sprawdzić, czy na tej fali nadaje jakaś stacja.
Z punktu widzenia kodu i algorytmu sprawa wygląda następująco:
W wersji ciągłej (Teoria matematyczna)
Matematyczna całka sprawdza po kolei wszystkie możliwe częstotliwości od minus do plus nieskończoności. Tworzy z tego nową, ciągłą funkcję \(F(\omega)\), gdzie osią poziomą wykresu staje się częstotliwość \(\omega\).
W wersji cyfrowej / kodzie (Praktyka programistyczna)
Gdy mamy ponumerowane próbki sygnału (np. tablicę wartości kolejnych próbek), nie możemy sprawdzić nieskończonej liczby częstotliwości. Wtedy \(\omega \) generuje się automatycznie w pętli for.
Jeśli mamy \(N\) próbek sygnału, to sprawdzamy dokładnie \(N\) różnych częstotliwości, krok po kroku:
Mówiąc krótko: \(\omega\) to parametr wejściowy pętli. Pętla zewnętrzna wybiera kolejną częstotliwość testową \(\omega \), a pętla wewnętrzna „nawija” na nią cały sygnał czasu, żeby sprawdzić, co z tego wyjdzie.
Ponieważ dla każdej z \(N\) częstotliwości badamy \(N\) próbek, procesor komputera musi wykonać \({N \times N = N^2}\) operacji mnożenia i dodawania.
Aby uniknąć tego potężnego \(N^{2}\) sprawdzania, w latach 60. XX wieku
matematycy Cooley i Tukey wymyślili genialny algorytm FFT (ang. Fast Fourier Transform).
Wykorzystuje on fakt, że "wskazówka zegara" w ułamkach zespolonych kręci się w
kółko i jej wartości cyklicznie się powtarzają. Algorytm FFT dzieli całą tablicę
\(N\) próbek na pół (na próbki parzyste i nieparzyste), przelicza je osobno, a
potem sprytnie składa wyniki.
Dzięki temu zamiast sprawdzać wszystko \({N\times N}\) razy, liczba operacji spada do \({N \log_2 N}\).
Dla wspomnianego miliona próbek zamiast biliona operacji, FFT wykonuje ich tylko około 20 milionów – to dlatego np. telefon potrafi w ułamku sekundy narysować skaczące słupki korektora graficznego podczas odtwarzania muzyki.
xxx
xxx
xxx
xxx
xxx
![]() |
Zespół Przedmiotowy Chemii-Fizyki-Informatyki w I Liceum Ogólnokształcącym im. Kazimierza Brodzińskiego w Tarnowie ul. Piłsudskiego 4 ©2026 mgr Jerzy Wałaszek |
Materiały tylko do użytku dydaktycznego. Ich kopiowanie i powielanie jest dozwolone pod warunkiem podania źródła oraz niepobierania za to pieniędzy.
Pytania proszę przesyłać na adres email:
Serwis wykorzystuje pliki cookies. Jeśli nie chcesz ich otrzymywać, zablokuj je w swojej przeglądarce.
Informacje dodatkowe.