Szereg Fouriera

rozkład funkcji okresowej na trygonometryczne

Szereg Fourieraszereg 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

edytuj

Definicja za pomocą funkcji sin i cos[1]

edytuj

Niech 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)

Definicja za pomocą funkcji zespolonych[5]

edytuj

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

edytuj
 

Obliczanie szeregu Fouriera funkcji nieciągłej. Twierdzenie Dirichleta

edytuj
 
Wykres funkcji piłokształtnej, która składa się z powtórzeń funkcji   określonej na przedziale  .
 
Animacja pięciu kolejnych wyrazów szeregu Fouriera aproksymującego funkcję piłokształtną

Rozważ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.

 
Wykres funkcji signum, w punkcie x=0 nieciągłej[6] w sposób odosobniony, nieusuwalny i pierwszego rodzaju (zwyczajny).
 

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.

 
Funkcja nieokresowa   o dziedzinie   i generowany przez nią szereg Fouriera  

Szereg Fouriera funkcji nieokresowej

edytuj

Funkcję 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

edytuj

Twierdzenie nt. dokładności aproksymacji

edytuj

Tw. 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

edytuj
 
Zależność   położenia kątowego wahadła od czasu (drgania silnie nieliniowe; amplituda 179.98°; niebieski) oraz przybliżenie sumą częściową szeregu Fouriera (niebieski przerywany) i rozwiązaniem  , w którym człon nieliniowy   równania wahadła przybliżono do trzeciego wyrazu szeregu Maclaurina.

Powyż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.

 
Efekt Gibbsa tj. powstawanie oscylacji o dużych amplitudach sum Fouriera w punktach nieciągłości funkcji aproksymowanej (pionowe odcinki wykresu).

Zależność aproksymacji od liczby wyrazów sumy aproksymującej

edytuj

Dokł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

edytuj

Dla 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.

 
Funkcja   (czerwona) to suma 6 funkcji sinus (niebieskie) i funkcja   ich amplitud  .

Widmo czyli amplitudy składowych harmonicznych

edytuj

Współ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.

 
Funkcja  , jej funkcja aproksymująca - suma   wyrazów szeregu Fouriera oraz widmo czyli zestaw współczynników  

Obliczenia numeryczne szeregu Fouriera

edytuj

Poniż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ć:

  1. Parametr   określający zakres  , na którym jest zdefiniowana funkcja, taki że   (linia 9 kodu)
  2. Liczbę   wyrazów funkcji aproksymującej (linia nr 10)
  3. Definicję funkcji   (linia nr 14)
  4. 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

edytuj
 
Aproksymacja funkcji prostokątnej szeregiem Fouriera; N=50. Widoczny efekt Gibbsa w punktach skoków funkcji
 
Aproksymacja funkcji piłokształtnej szeregiem Fouriera; N=50. Widoczny efekt Gibbsa w punktach skoków funkcji
 
Aproksymacja funkcji trójkątnej szeregiem Fouriera; N=25. Tu brak efektu Gibbsa, gdyż funkcja nie ma punktów nieciągłości.

Podane 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.

Lemat I (całki pomocnicze)

edytuj
  •   jest liczbą całkowitą
 
 
  •   są liczbami naturalnymi
 
 
 

Lemat II

edytuj
 

Dowód

edytuj
 

więc mamy (biorąc cześć rzeczywistą i stosując podstawowe wzory trygonometryczne):

 

q. e. d.

Lemat III

edytuj

Jeż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)

edytuj

Jeż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

edytuj
 

Mnożą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)

edytuj

Jeż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

edytuj

Niech   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

edytuj

Baza zespolona szeregu Fouriera

edytuj

Uwaga: 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

edytuj
 
Funkcje      wraz z funkcją stałą   tworzą bazę ortogonalną przestrzeni Hilberta, gdyż: (1) całki z iloczynów  zawsze są równe zero (obszary zielone i czerwone są równe i znoszą się), (2) całki z iloczynów   oraz   są niezerowe, równe  , tylko gdy  . Funkcje te tworzyłyby układ ortonormalny, gdyby całki te były równe 1, co można uzyskać mnożąc każdą funkcję sin i cos przez  .

Jako 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

edytuj

W 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

edytuj

Tabela 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

edytuj

Szereg 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
  1. a b c Bronsztejn ↓, s. 637.
  2. Bronsztejn ↓, s. 640.
  3. Transformata Fouriera – prezentacja. [dostęp 2009-12-22].
  4. Szereg Fouriera, [w:] Encyklopedia PWN [online], Wydawnictwo Naukowe PWN [dostęp 2021-07-29].
  5. a b c Bronsztejn ↓, s. 638.
  6. 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ż

edytuj

Inne:

Linki zewnętrzne

edytuj
Polskojęzyczne
Anglojęzyczne