Szereg Fouriera
Szereg Fouriera – szereg pozwalający rozłożyć funkcję okresową[1] lub nieokresową[2], spełniającą warunki Dirichleta, na sumę funkcji trygonometrycznych. Szeregi Fouriera zostały wprowadzone w 1807 roku przez Josepha Fouriera w celu rozwiązania równania przewodnictwa ciepła dla metalowej płyty. Równanie to jest równaniem różniczkowym cząstkowym i nie da się go rozwiązać bezpośrednio dla większości funkcji; jednak rozkładając funkcję początkową na szereg Fourier łatwo znalazł rozwiązania równania przewodnictwa dla poszczególnych składowych harmonicznych, ponieważ pochodne funkcji trygonometrycznych dają proste wzory, a następnie obliczył rozwiązanie dla funkcji wejściowej, sumując rozwiązania dla jej składowych harmonicznych. W 1829 r. Dirichlet określił ściśle warunki, jakie muszą spełniać funkcje, by szereg Fouriera był do nich zbieżny.
Szeregi Fouriera są np. ściśle powiązane z transformatą Fouriera, odkrytą przez Fouriera, którą można wykorzystać do znalezienia informacji o częstotliwościach składowych funkcji nieokresowych.
Od czasów Fouriera odkryto wiele różnych podejść do definiowania i rozumienia szeregu Fouriera. Niektóre z bardziej wydajnych i eleganckich podejść opierają się na pomysłach i narzędziach matematycznych, które nie były dostępne w czasach Fouriera. Fourier pierwotnie zdefiniował szereg Fouriera dla funkcji argumentów rzeczywistych o wartościach rzeczywistych i użył funkcji sinus i cosinus w dekompozycji. Od tego czasu zdefiniowano wiele innych transformacji, rozszerzając jego początkowy pomysł na wiele zastosowań i tworząc dział matematyki zwany analizą Fourierowską.
Metoda Fouriera doprowadziła do przewrotu w matematyce i zainicjowała powstanie wielu nowych teorii. Dziś szeregi Fouriera mają wielkie znaczenie między innymi w fizyce, teorii drgań oraz przetwarzaniu sygnałów obrazu (kompresja jpeg) i dźwięku (kompresja mp3)[3].
Definicje szeregu Fouriera
edytujNiech dana będzie funkcja okresowa o okresie bezwzględnie całkowalna w przedziale . Trygonometrycznym szeregiem Fouriera funkcji nazywamy szereg funkcyjny postaci
(1.1) |
o współczynnikach określonych wzorami:
(1.2) |
(1.3) |
Powyższe wzory po raz pierwszy opublikował Jeana-Baptiste Joseph Fourier. Niemniej jednak po raz pierwszy wyprowadził je Leonhard Euler (prac na ten temat nie opublikował). Wzory te noszą nazwę wzorów Eulera-Fouriera[4].
Wprowadzając dla uproszczenia oznaczenie w powyższych wzorach, gdzie to tzw. pulsacja lub częstość kołowa, otrzymamy:
(1.1a) |
(1.2a) |
(1.3a) |
Niech dana będzie funkcja okresowa o okresie bezwzględnie całkowalna w przedziale . Zespolonym szeregiem Fouriera funkcji nazywamy szereg funkcyjny
gdzie
Związek między współczynnikami rozwinięcia trygonometrycznego i zespolonego
edytujObliczanie szeregu Fouriera funkcji nieciągłej. Twierdzenie Dirichleta
edytujRozważmy funkcję piłokształtną:
Obliczając jej współczynniki szeregu Fouriera otrzymamy:
i ostatecznie
Można pokazać, że szereg Fouriera zbiega do funkcji we wszystkich punktach , w których funkcja jest ciągła, tj.
Dla (i ogólnie dla ) szereg Fouriera zbiega do wartości 0. Wartość ta jest równa połowie sumy wartości granic lewo- i prawostronnych funkcji w punkcie . W punkcie funkcja nie została zdefiniowana. Jeżeli więc chcielibyśmy, by szereg był zbieżny do funkcji w tym punkcie (i ogólnie dla ), to należałoby uzupełnić jej definicję przyjmując:
Wniosek ten jest zawarty w twierdzeniu Dirichleta, które orzeka, iż[5]
Jeżeli funkcja jest w przedziale ograniczona i ciągła lub posiada nieciągłości najwyższej 1-go rodzaju (tj. spełniające warunek: w punkcie nieciągłości istnieją granice funkcji lewo- i prawostronna) i w skończonej liczbie, to (1) szereg Fouriera zbiega do funkcji w punktach ciągłości (2) w punktach nieciągłości szereg zbiega do wartości równej połowie sumy granic lewo- i prawostronnej funkcji w tych punktach.
Uwaga 1: Z powyższego przykładu widać, że funkcja rozwijana w szereg Fouriera może nie być zdefiniowana w punktach nieciągłości 1-go rodzaju - brak wartości funkcji w tych punktach nie przeszkadza w obliczaniu współczynników Fouriera ani nie ma wpływu na ich wartość (bowiem wartości całek nie zależą od wartości funkcji na zbiorze miary zero, a takiej miary jest zbiór punktów nieciągłości funkcji).
Uwaga 2: Powyższy przykład prowadzi do rozwiązania tzw. problemu bazylejskiego.
Szereg Fouriera funkcji nieokresowej
edytujFunkcję nieokresową , określoną dla można rozwinąć w szereg Fouriera, obliczając współczynnika Fouriera jak dla funkcji okresowej o okresie . Szereg Fouriera jest zawsze funkcją okresową, nawet jeśli oryginalna funkcja nią nie jest. Jednak ograniczając się do wartości szeregu dla otrzymamy rozkład oryginalnej funkcji na szereg Fouriera.
Funkcja musi przy tym spełniać na przedziale zmienności te same warunki ograniczoności i ciągłości, co funkcja okresowa na przedziale .
Uwaga:
Jeżeli funkcja jest okresowa, to rozwinięcia w szereg Fouriera można dokonać na dowolnym przedziale , gdzie - dowolne przesunięcie powyższego zakresu; np. dla . Wtedy wystarczy obliczać całki na współczynniki rozwinięcia w innym zakresie.[1] Analogicznie dotyczy to rozwinięć funkcji nieokresowych na innych przedziałach zmienności zmiennej
Dokładność aproksymacji funkcji szeregiem Fouriera. Efekt Gibbsa
edytujTwierdzenie nt. dokładności aproksymacji
edytujTw. Przy zastąpieniu funkcji przybliżoną sumą trygonometryczną
średni błąd kwadratowy
jest najmniejszy, jeżeli za współczynniki przyjmie się współczynniki Fouriera funkcji [5].
Przykład
edytujPowyższe twierdzenie orzeka, iż spośród wszystkich funkcji, przybliżających daną funkcję za pomocą skończonej kombinacji liniowej funkcji sinusoidalnych i kosinusoidalnych najmniejszy średni błąd kwadratowy uzyska się dla współczynników będących współczynnikami rozwinięcia danej funkcji w szereg Fouriera. Dla ilustracji pokazano tu przybliżenia funkcji (opisującej kat odchylania wahadła matematycznego od pionu) za pomocą dwóch funkcji o identycznych składowych harmonicznych, ale o różnych współczynnikach
(a) przybliżenie sumą częściową szeregu Fouriera funkcji
- ,
(b) przybliżenie funkcją , która jest rozwiązaniem przybliżenia równania nieliniowego ruchu wahadła za pomocą rozwinięcia w szereg Maclaurina członu nieliniowego tego równania:
gdzie:
- - amplituda drgań wahadła,
- , gdzie - okres drgań wahadła, słuszny dla dowolnych amplitud,
- - całka eliptyczna zupełna pierwszego rodzaju
Z obliczeń średniego błędu kwadratowego otrzymano:
(a) dla :
(a) dla :
Zwiększenie liczby wyrazów w liczeniu sumy częściowej Fouriera zmniejsza średni błąd kwadratowy; dla otrzymuje się . Widać stąd, iż analiza Fouriera stanowi skuteczne narzędzie znajdowania znakomitych aproksymacji rozwiązań równań różniczkowych.
-
Cztery sumy częściowe szeregu Fouriera zawierające 1, 2, 3 i 4 wyrazy, pokazujące, jak poprawia się przybliżenie funkcji prostokątnej ze wzrostem liczby wyrazów (tu dokładna animacja)
-
Cztery sumy częściowe szeregu Fouriera zawierające 1, 2, 3 i 4 wyrazy, pokazujące, jak poprawia się przybliżenie funkcji piłokształtnej ze wzrostem liczby wyrazów (tu dokładna animacja)
Zależność aproksymacji od liczby wyrazów sumy aproksymującej
edytujDokładność aproksymacji danej funkcji za pomocą szeregu Fouriera zależy od liczby wyrazów N szeregu - im więcej wyrazów sumy częściowej, tym mniejszy jest średni błąd kwadratowy. Pokazują to poniższe animacje.
Efekt Gibbsa
edytujDla funkcji nieciągłych pojawia się tzw. efekt Gibbsa w aproksymacji - w punktach nieciągłości (odcinki skoków pionowych) następują silne odchylenia funkcji aproksymującej od wartości średniej, pomimo że maleje średni błąd kwadratowy aproksymacji danej funkcji za pomocą sum częściowych szeregu Fouriera wraz ze wzrostem liczby wyrazów sumy aproksymującej. W związku z tym stosuje się różne techniki wygładzania lokalnego funkcji aproksymującej w pobliży punktów nieciągłości.
Widmo czyli amplitudy składowych harmonicznych
edytujWspółczynniki szeregu Fouriera reprezentują amplitudy składowych harmonicznych , jakie zawiera dany sygnał. Zbiór tych współczynników nazywa się widmem danej funkcji.
Animacja obok pokazuje widmo funkcji, która ma jedynie składowe sinusoidalne widma.
Dalej pokazano widmo dla ogólnego przypadku.
Obliczenia numeryczne szeregu Fouriera
edytujPoniżej podano kod programu w języku Python, który dla danej funkcji liczy współczynniki szeregu Fouriera , oblicza funkcję aproksymującą funkcję wyjściową, rysuje funkcję daną i aproksymującą oraz rysuje widmo składowych harmonicznych, którego wartości są równe wartościom składowych szeregu Fouriera.
Użytkownik może ustalić:
- Parametr określający zakres , na którym jest zdefiniowana funkcja, taki że (linia 9 kodu)
- Liczbę wyrazów funkcji aproksymującej (linia nr 10)
- Definicję funkcji (linia nr 14)
- Program można testować, korzystając np. z darmowego notatnika colab google online.
# JK 2024.08.16 v.1 Program oblicza współczynniki szeregu Fouriera danej funkcji,
# rysuje wykres funkcji i funkcji aproksymujacej, rysuje wykres widma
import numpy as np
import matplotlib.pyplot as plt
from scipy.integrate import quad
# Parametry
L = np.pi # Okres (od -L do L)
N = 10 # Liczba wyrazów w szeregu Fouriera
# Definicja funkcji f(x) = x
def f(x):
return x*x-0.5*x**3
# Współczynniki a_n i b_n
a0 = (1 / L) * quad(f, -L, L)[0]
def a_n(n):
integrand = lambda x: f(x) * np.cos(n * np.pi * x / L)
result, _ = quad(integrand, -L, L)
return result / L
def b_n(n):
integrand = lambda x: f(x) * np.sin(n * np.pi * x / L)
result, _ = quad(integrand, -L, L)
return result / L
# Funkcja rekonstrukcji z szeregu Fouriera
def fourier_series(x, N):
a0_term = a0 / 2
sum_terms = sum(a_n(n) * np.cos(n * np.pi * x / L) + b_n(n) * np.sin(n * np.pi * x / L) for n in range(1, N + 1))
return a0_term + sum_terms
# Zakres x dla wykresu
x_values = np.linspace(-L, L, 500)
f_values = f(x_values)
fs_values = [fourier_series(x, N) for x in x_values]
# Obliczanie współczynników dla widma
n_values = np.arange(1, N + 1)
a_n_values = np.array([a_n(n) for n in n_values])
b_n_values = np.array([b_n(n) for n in n_values])
# Wykres funkcji i szeregu Fouriera
plt.figure(figsize=(14, 6))
# Wykres funkcji i szeregu Fouriera
plt.subplot(1, 2, 1)
plt.plot(x_values, f_values, label="f(x) = x*x-0.5*x**3", color="blue")
plt.plot(x_values, fs_values, label=f"Szereg Fouriera, N = {N}", color="red", linestyle="--")
plt.title("Funkcja f(x) i jej szereg Fouriera")
plt.xlabel("x")
plt.ylabel("f(x)")
plt.legend()
plt.grid(True)
# Wykres widma Fouriera
plt.subplot(1, 2, 2)
plt.stem(n_values, np.abs(a_n_values), linefmt='b-', markerfmt='bo', basefmt='b-', label='a_n')
plt.stem(n_values, np.abs(b_n_values), linefmt='r-', markerfmt='ro', basefmt='r-', label='b_n')
plt.title("Widmo Fouriera")
plt.xlabel("n")
plt.ylabel("Amplituda")
plt.legend()
plt.grid(True)
plt.tight_layout()
plt.show()
Twierdzenia o rozwinięciu funkcji w szereg Fouriera
edytujPodane tu dwa zasadnicze twierdzenia dotyczą warunków rozwinięcia za pomocą szeregu Fouriera funkcji okresowej. Zakładamy, że funkcja ma okres i pulsację Twierdzenia poprzedzone są lematami, potrzebnymi do ich dowodów.
- jest liczbą całkowitą
- są liczbami naturalnymi
Lemat II
edytujDowód
edytujwięc mamy (biorąc cześć rzeczywistą i stosując podstawowe wzory trygonometryczne):
q. e. d.
Lemat III
edytujJeżeli jest funkcją ciągłą w przedziale z wyjątkiem co najwyżej skończonej ilości punktów i bezwzględnie całkowalną w tym przedziale to
Twierdzenie (Eulera–Fouriera)
edytujJeżeli szereg o postaci (1.1) jest jednostajnie zbieżny do funkcji to współczynniki wyrażają się wzorami (1.2), (1.3).
Dowód
edytujMnożąc powyższą równość przez całkując szereg w granicach od do (uwzględniając zbieżność jednostajną szeregu stosujemy twierdzenie o całkowaniu szeregu wyraz po wyrazie) otrzymujemy:
Na mocy lematu I zerują się wszystkie całki po prawej stronie takie że (gdy zeruje się cała suma uogólniona). W związku z tym mamy:
Stąd otrzymujemy wzór (1.2).
Dowód wzoru (1.3) przebiega analogicznie (tym razem mnożymy przez )
Twierdzenie (o rozwijalności funkcji w szereg Fouriera)
edytujJeżeli funkcja jest różniczkowalna w punkcie to jej szereg Fouriera jest zbieżny do wartości funkcji w tym punkcie.
Innymi słowy: W punktach różniczkowalności funkcję da się rozwinąć w szereg Fouriera.
Dowód
edytujNiech będzie punktem, w którym funkcja jest różniczkowalna; mamy:
Suma cząstkowa szeregu Fouriera przedstawia się w następujący sposób:
Stosując do tego wyrażenia lemat II, otrzymujemy następujący wzór:
Funkcja podcałkowa w powyższym wzorze jest funkcją o okresie T, możemy więc dokonać przesunięcia w dziedzinie i otrzymujemy:
Funkcja tożsamościowo równa 1 na całym zbiorze liczb rzeczywistych jest rozwijalna w szereg Fouriera w każdym punkcie, kładąc mamy:
Mnożąc powyższą równość przez i odejmując obustronnie od równania przedstawiającego sumę cząstkową szeregu, otrzymujemy:
(2) |
Rozważmy następującą granicę:
przy obliczaniu której korzystamy z różniczkowalności funkcji f(x) w punkcie
Możemy określić następującą funkcję:
Mając na uwadze fakt, iż zmiana skończonej ilości wartości funkcji podcałkowej nie wpływa na wartość całki, wzór (2) możemy zapisać w postaci:
Funkcja podcałkowa spełnia założenia lematu Riemanna, tak więc:
czyli:
q. e. d.
Przestrzeń Hilberta a szereg Fouriera
edytujBaza zespolona szeregu Fouriera
edytujUwaga: W poniższych rozważaniach przyjęto, iż szereg Fouriera jest funkcją o okresie . W przypadku wszystkie własności pozostają nadal prawdziwe, gdyż wystarczy przeskalować daną funkcję do funkcji o okresie .
Zbiór funkcji tworzy bazę ortonormalną przestrzeni funkcji całkowalnych w kwadracie na przedziale , w której iloczyn skalarny dwóch jej elementów oraz ma postać całkową:
gdzie oznacza sprzężenie zespolone funkcji gdyż
Przestrzeń funkcyjna z tak zdefiniowanym iloczynem skalarnym jest nazywana przestrzenią Hilberta. Każdą funkcję tej przestrzeni można rozłożyć w jej bazie ortonormalnej w postaci szeregu
Powyższy szereg przedstawia de facto szereg Fouriera funkcji w jego zespolonym sformułowaniu, gdzie zamiast funkcji bazowych oraz mamy funkcje zespolone .
Baza ortogonalna z funkcji sin i cos szeregu Fouriera
edytujJako bazę ortogonalną w przestrzeni funkcji całkowalnych w kwadracie na przedziale można także wybrać funkcję stałą oraz funkcje , dla Analogicznie więc, jak dla bazy zespolonej, także szereg Fouriera z funkcjami sinus oraz cosinus przedstawia rozkład danej funkcji w bazie przestrzeni Hilberta.
Ortogonalność funkcji oraz wraz z funkcją stałą wynika z poniższych całek:
gdzie gdy , gdy (tj. oznacza symbol Kroneckera)
Tabela popularnych szeregów Fouriera
edytujW tabeli zestawiono popularne funkcje okresowe i ich współczynniki szeregu Fouriera
- oznacza funkcję okresową o okresie
- oznaczają współczynniki szeregu Fouriera w formie trygonometrycznej (sin-cos) dla funkcji okresowych .
Funkcja oryginalna
|
Wykres funkcji | Współczynniki szeregu Fouriera w postaci trygonometrycznej
|
Uwagi |
---|---|---|---|
wartość bezwzględna funkcji sinus | |||
Funkcja sinus połówkowo filtrowana | |||
Tabela podstawowych własności
edytujTabela zestawia operacje matematyczne wykonywane na danych funkcjach i wpływ tych operacji na współczynniki szeregów Fouriera oraz wpływ operacji wykonywanych na współczynnikach Fouriera i ich wpływ na dane funkcje. Notacja:
- Sprzężenie zespolone jest oznaczane gwiazdką.
- oznaczają -okresowe funkcje lub funkcje nieokresowe, zdefiniowane tylko dla
- oznaczają współczynniki szeregów Fouriera w postaci zespolonej odpowiednio dla funkcji oraz
Własności | Dziedzina funkcji | Dziedzina częstotliwości (dla postaci zespolonej szeregu) | Uwagi |
---|---|---|---|
Liniowość | |||
Odwrócenie czasu / Odwrócenie częstotliwości | |||
Sprzężenie w dziedzinie czasu | |||
Odwrócenie w dziedzinie czasu i sprzężenie | |||
Obliczanie części rzeczywistej funkcji | |||
Obliczanie części urojonej funkcji | |||
Obliczanie części rzeczywistej współczynnika częstotliwości | |||
Obliczanie części urojonej współczynnika częstotliwości | |||
Przesunięcie w czasie w danej funkcji / modulacja współczynników częstotliwości | |||
Przesunięcie współczynników częstotliwości / modulacja danej funkcji |
Szereg Fouriera funkcji 2 zmiennych
edytujSzereg Fouriera dla funkcji dwóch zmiennych oraz określonych w dziedzinie w formie zespolonej ma postać:
gdzie współczynniki rozwinięcia dane są wzorem
Przypisy
edytuj- ↑ a b c Bronsztejn ↓, s. 637.
- ↑ Bronsztejn ↓, s. 640.
- ↑ Transformata Fouriera – prezentacja. [dostęp 2009-12-22].
- ↑ Szereg Fouriera, [w:] Encyklopedia PWN [online], Wydawnictwo Naukowe PWN [dostęp 2021-07-29] .
- ↑ a b c Bronsztejn ↓, s. 638.
- ↑ funkcja nieciągła, [w:] Encyklopedia PWN [online], Wydawnictwo Naukowe PWN [dostęp 2022-10-04] .
Bibliografia
edytuj- I. N. Bronsztejn, K. A. Siemiendiajew, Poradnik encyklopedyczny Matematyka, PWN, Warszawa 2019, str. 637-647.
- Barbara Piłat, Mariusz. J. Wasilewski, Tablice całek, Wydawnictwo Naukowo-Techniczne, Warszawa 1985, s. 83-89 Współczynniki szeregów Fouriera wybranych funkcji. ISBN ISBN 978-83-20-40-525-5
- Tadeusz Trajdos, Matematyka dla inżynierów, PWN, Warszawa 1974, str. 534-544.
- Hans Niels Jahnke: A history of analysis. Providence, RI: American Mathematical Society, 2003. ISBN 0-8218-2623-9. OCLC 51607350.
Zobacz też
edytujInne:
Linki zewnętrzne
edytuj- Polskojęzyczne
- Materiały dydaktyczne DSP AGH. dsp.agh.edu.pl. [zarchiwizowane z tego adresu (2013-12-17)].
- Anglojęzyczne
- Eric W. Weisstein , Fourier Series, [w:] MathWorld, Wolfram Research [dostęp 2020-12-12] (ang.).
- Aplet Java obrazujący idee szeregu Fouriera
- Grant Sanderson, But what is a Fourier series? From heat flow to circle drawings, kanał 3blue1brown na YouTube, 30 czerwca 2019 [dostęp 2021-03-15].