Przekształcanie fali w sumę okręgów
W 1822 roku Józef Fourier postawił twierdzenie, które wywołało skandal wśród matematyków jego czasului: każda funkcja okresowa, niezależnie od tego, jak nieregularna, może być zapisana jako suma prostych cosinusów i sinusów. Fala kwadratowa, fala trójkątna, wykres ciśnienia struny gitarowej poddanej uderzeniu – wszystkie one rozkładają się na częstotliwość podstawową plus drabinkę harmonicznych o całkowitych mnożnikach tej częstotliwości. Najczystszym sposobem na zrozumienie tego jest zaprzestanie myślenia o sinusach i cosinusach oddzielnie i zamiast tego przedstawianie każdej harmonicznej jako małego strzałka – fazora – obracającego się z pewną prędkością wokół początku płaszczyzny zespolonej. Zsumowanie końców wystarczającej liczby wirujących strzałek, ułożonych jeden na drugim, rysuje pierwotną krzywą w czasie.
Współczynniki: jak dużą część każdej harmonicznego ma każdy współczynnik
Dla funkcji f(t) o okresie T, amplituda każdej harmonicznej jest obliczana poprzez projekcję f na jej funkcję sinus lub cosinus — iloczyn skalarny mierzący stopień nakładania się dwóch kształtów. Korzystając z tożsamości Eulera e^{iθ} = cos θ + i sin θ, cała seria sprowadza się do jednej kompaktowej postaci wykładniczej zespolonej, gdzie pojedyncza liczba zespolona cₙ przenosi zarówno amplitudę, jak i fazę harmonicznego n:
f(t) = Σ_{n=-∞}^{∞} c_n · e^{i·2πnt/T} c_n = (1/T) ∫₀ᵀ f(t) · e^{-i·2πnt/T} dt // projekcja f na harmoniczny n |c_n| = amplituda n-tego wektora fazowego arg(c_n) = jego kąt początkowy (faza) Każdy wyraz c_n·e^{i2πnt/T} jest wektorem fazowym obracającym się n razy szybciej niż fundamentalny. Łącz je końcówki do końca — środek drugiego wektora oparty na szczycie pierwszego, środek trzeciego na szczycie drugiego i tak dalej — a w każdym momencie t położenie końcówki ostatniej strzałki jest dokładnie f(t). Jest to dokładnie to, jak działają klasyczne rysunki „epicykli Fouriera”: wystarczająca liczba wklęsłych okręgów może narysować falę prostokątną, gwiazdę lub portret.
f(t) = Σ_{n=-∞}^{∞} c_n · e^{i·2πnt/T}
c_n = (1/T) ∫₀ᵀ f(t) · e^{-i·2πnt/T} dt // project f onto harmonic n
|c_n| = amplitude of the n-th phasor
arg(c_n) = its starting angle (phase)
Budowanie fali kwadratowej, krok po kroku harmonicznie
Fala kwadratowa zawiera tylko harmoniczne nieparzyste, każda z nich maleje o 1/n amplitudy fundamentalnej: dodając sin(t), następnie sin(3t)/3, a potem sin(5t)/5 i tak dalej, stopniowo wyostrza zaokrąglony pojedynczy sinus, tworząc bardziej płaskie szczyty i ostřejze krawędzie. Fala trójkątna wykorzystuje wszystkie harmoniczne (parzyste i nieparzyste) z amplitudą 1/n i zmieniającym się znakiem, podczas gdy fala sawowy używa tylko harmonicznych nieparzystych, które szybko zanikają, czyli 1/n², co sprawia, że fale trójkątne brzmią "czystej" niż fale kwadratowe lub sawowe – ich wyższe harmoniczne są znacznie cichsze.
Zjawisko Gibbsa: overshoot, który nigdy nie umiera
Oglądaj uważnie rekonstrukcję fali kwadratowej w pobliżu skoku pionowego i zdarza się coś dziwnego: suma częściowa nie tylko zbliża się do skoku, ale go przesuwa powyżej, a następnie poniżej, generując rezonans przed ustabilizowaniem się gdzie indziej. Dodawanie kolejnych harmonicznych ściska tę falę bliżej dyscontinuity – ale wysokość pierwszego overshootu pozostaje niezmiennie na poziomie około 9% wielkości skoku, niezależnie od liczby dodanych wyrazów. Jest to zjawisko Gibbsa, dokładnie wyjaśnione przez Josiaha Willarda Gibbsa w 1899 roku: ciągła suma sinusoid może dowolnie dobrze przybliżać skok w sensie uśrednionym (najmniej kwadratowym), ale nigdy nie eliminuje rezonansu tuż przy krawędzi. Jest to matematyczne źródło artefaktów "rezonansowych", które obserwuje się wokół ostrych krawędzi w obrazach JPEG oraz słychać jako pre-echo w agresywnie skompresowanym audio.
Od serii do transformacji: rozszerzanie okresu w nieskończoność
Seria Fouriera ma sens tylko dla sygnału okresowego – takiego, który powtarza się bez końca o okresie T. Najbardziej interesujące sygnały (np. pojedynczy gwizd, zdjęcie, cena akcji) nigdy nie powtarzają się. Aby z nimi sobie poradzić, wyobraźmy sobie rozciągnięcie T w kierunku nieskończoności: odstęp między sąsiednimi harmonicznymi, 1/T, dąży do zera, a dyskretna drabina współczynników c_n przechodzi w ciągłą krzywą. Suma staje się całką, a dyskretne współczynniki c_n stają się funkcją ciągłą F(ω) – transformata Fouriera:
F(ω) = ∫_{-∞}^{∞} f(t) · e^{-iωt} dt // transformacja wsteczna (T → ∞) f(t) = (1/2π) ∫_{-∞}^{∞} F(ω) · e^{iωt} dω // transformacja odwrotna Seria Fouriera daje spektra zbudowane z dyskretnych wyżłobień w 0, ±1/T, ±2/T…, a transformata Fouriera daje ciągłą gęstość spektralną – każda częstotliwość może występować, z nieskończenie małą ilością energii w każdym punkcie. W praktyce komputery mogą przechowywać tylko skończoną liczbę próbek, więc oprogramowanie wykorzystuje Transformatę Fouriera Dyskretyzującą (DFT) i jej szybką implementację, FFT – kuzyna zbudowanego od podstaw, okresowego, który wprowadza tę samą ideę fazora do tablic liczb w czasie O(N log N).
F(ω) = ∫_{-∞}^{∞} f(t) · e^{-iωt} dt // forward transform (T → ∞)
f(t) = (1/2π) ∫_{-∞}^{∞} F(ω) · e^{iωt} dω // inverse transform
Frequently asked questions
Co to jest zjawisko Gibbsa i dlaczego nie znika?
W pobliżu skoku dyscontinuity szereg Truncated Fourier'a przesuwa się o około 9% powyżej rzeczywistej wartości, niezależnie od liczby dodanych harmonicznych. Dodawanie kolejnych wyrazów zmniejsza przesunięcie w kierunku skoku, ale nigdy nie zmniejsza jego wysokości – jest to trwały artefakt wynikający z przybliżania funkcji dyskretnej za pomocą sinusoid, który został rygorystycznie wyjaśniony przez Josiaha Willarda Gibbsa w 1899 roku.
Jakie jest różnice między szeregiem Fouriera a transformatą Fouriera?
Szereg Fouriera stosuje się do sygnałów okresowych i generuje dyskretny zestaw współczynników harmonicznych rozmieszczonych w wielokrotnościach częstotliwości podstawowej 1/T. Transformata Fouriera stosuje się do sygnałów nieregularnych (niepowtarzalnych) i generuje ciągły spektrum, uzyskanego formalnie poprzez ustawienie okresu T na nieskończoność, co powoduje skrócenie odstępów harmonicznych do zera i przekształcenie sumy w całkę.
Dlaczego używamy liczb zespolonych zamiast tylko funkcji sinus i cosinus?
Wzór Eulera e^{iθ} = cos θ + i sin θ pozwala na kodowanie pojedynczego wirującego wektora przesłania zarówno amplitudy, jak i fazy harmonicznej, zastępując parę współczynników sinus i cosinusa jednym liczbą zespoloną. Ten zwięzły format ułatwia również takie właściwości jak twierdzenie o konwolucji i przesuwie częstotliwości, które są prostymi równaniami algebraicznie zamiast tożsamości trygonometrycznych, dlatego w praktycznie wszystkich współczesnych wywodach z przetwarzania sygnałów używa się postaci zespolonej.
Wypróbuj na żywo
Wszystko powyżej działa bezpośrednio w Twojej przeglądarce — otwórz the simulation i zmieniaj parametry podczas działania. Nic nie jest instalowane ani przesyłane na serwer, cały model działa w jednej karcie.
▶ Otwórz symulację the simulation