[go: up one dir, main page]

Przejdź do zawartości

Szereg Fouriera

Z Wikipedii, wolnej encyklopedii

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 | edytuj kod]

Definicja za pomocą funkcji sin i cos[1]

[edytuj | edytuj kod]

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 | edytuj kod]

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 | edytuj kod]

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

[edytuj | edytuj kod]
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 | edytuj kod]

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 | edytuj kod]

Twierdzenie nt. dokładności aproksymacji

[edytuj | edytuj kod]

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 | edytuj kod]
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 | edytuj kod]

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 | edytuj kod]

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 | edytuj kod]

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 | edytuj kod]

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 | edytuj kod]
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 | edytuj kod]
  • jest liczbą całkowitą
  • są liczbami naturalnymi

Lemat II

[edytuj | edytuj kod]

Dowód

[edytuj | edytuj kod]

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

q. e. d.

Lemat III

[edytuj | edytuj kod]

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 | edytuj kod]

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 | edytuj kod]

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 | edytuj kod]

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 | edytuj kod]

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 | edytuj kod]

Baza zespolona szeregu Fouriera

[edytuj | edytuj kod]

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 | edytuj kod]
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 | edytuj kod]

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 | edytuj kod]

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 | edytuj kod]

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 | edytuj kod]
  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 | edytuj kod]
  • 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 | edytuj kod]

Inne:

Linki zewnętrzne

[edytuj | edytuj kod]
Polskojęzyczne
Anglojęzyczne