Transformacja Fouriera – transformacja całkowa, która przyjmuje funkcję rzeczywistą jako daną wejściową i wyprowadza funkcję o wartościach zespolonych, która opisuje stopień, w jakim w funkcji wejściowej występują funkcje zespolone Transformatą Fouriera nazywa się funkcję, która powstaje w wyniku działania transformacji Fouriera.
Przykładowo, obliczanie transformaty Fouriera trwającego jakiś czas sygnału akustycznego oznacza obliczanie amplitud składowych zespolonych tego dźwięku (por. wykresy transformaty obok dla funkcji schodkowych).
Definicja transformacji Fouriera w postaci zespolonej dla funkcji jednej zmiennej
Podana tu zostanie definicja transformacji Fouriera w postaci zespolonej. Obok tej postaci występują także postacie całkowe transformaty Fouriera, wyrażone przez funkcje rzeczywiste sinus i cosinus, bez użycia jednostki urojonej; postacie te można otrzymać z transformaty Fouriera w postaci zespolonej; nie omawia jednak tego zagadnienia ten artykuł.
Założenia – warunki Dirichleta
Zakładamy, że funkcja spełnia pierwszy i drugi warunek Dirichleta, tj. jest to funkcja rzeczywista określona na skończonym przedziale oraz[1]
jest przedziałami monotoniczna w przedziale – tzn. jest w nim ograniczona i można podzielić ten przedział na skończoną liczbę podprzedziałów, wewnątrz których funkcja jest monotoniczna (czyli funkcja ta ma skończoną liczbę maksimów lokalnych i minimów lokalnych),
jest ciągła w przedziale z wyjątkiem co najwyżej skończonej liczby punktów nieciągłości pierwszego rodzaju, przy czym w każdym punkcie nieciągłości spełniony jest warunek
Uwagi:
Całkowalność funkcji, gwarantowana przez spełnienie warunków Dirichleta, jest istotnym wymogiem w obliczaniu transformaty Fouriera, która opiera się na obliczaniu całek. (Ten sam wymóg dotyczy szeregów Fouriera, bowiem współczynniki rozwinięcia w szereg Fouriera są wyrażone za pomocą całek.)
Dla funkcji okresowej warunki Dirichleta wystarczy zbadać na dowolnym przedziale o długości równej okresowi funkcji
Warunki Dirichleta są to warunki wystarczające do tego, by dla funkcji, która je spełnia, istniała całka Fouriera i szereg Fouriera. Jednak nie są to warunki konieczne – istnieje klasa funkcji, które nie spełniają warunków Dirichleta, a mimo to mają całkę i szereg Fouriera. Także dla funkcji uogólnionych, tzw. dystrybucji (np. delta Diraca), które mają istotne znaczenie w obliczeniach fizyki cząstek elementarnych, definiuje się transformaty Fouriera.
Transformacja z dziedziny czasu w dziedzinę pulsacji
Widmo amplitudowe jest funkcją rzeczywistą; można je obliczyć ze wzoru:
Widmo fazowe jest funkcją rzeczywistą; można je obliczyć ze wzorów
Stąd:
Sens transformaty Fouriera jest następujący:
Transformata jest liczbą zespoloną, której moduł i faza określają amplitudę i fazę składowej o pulsacji wchodzącej w skład sygnału Obliczenie transformaty Fouriera pozwala więc znaleźć amplitudy i fazy wszystkich takich składowych w sygnale.
Przykład obliczeń wraz w wykresami funkcji, opisujących charakterystyki widmową, amplitudową i fazową podano dalej.
Transformacja unitarna Fouriera
Unitarną transformacją Fouriera z dziedziny czasu w dziedzinę pulsacji (częstości kołowej) nazywa się transformacją zadaną wzorem, który różni się od wzoru wyżej podanego jedynie stałą, stojącą przed znakiem całki, tj.[4]
Transformacja odwrotna unitarna
Komentarz
Czynnik przed transformatą i transformatą odwrotną występuje umownie; zamiast takiej postaci może występować czynnik przed transformatą prostą, albo (częściej) przed transformacją odwrotną.
Jeżeli jednak czynnik wynosi wtedy transformacja i transformacja odwrotna są izometriami przestrzeni
Pierwsza z dwu powyższych definicji jest popularniejsza, nie posiada jednak własności unitarności.
Interpretacja ujemnych częstotliwości
W definicji transformaty Fouriera w postaci zespolonej mamy częstotliwości w zakresie od do występujące w funkcji W klasycznym rozumieniu teorii dotyczącej drgań i fal częstości kołowe są wielkościami dodatnimi. Co oznaczają więc ujemne wartości częstotliwości? Sytuacja jest tu nieco inna niż w opisie zjawisk drgań i fal za pomocą liczb rzeczywistych, gdzie definiuje się pojęcie częstotliwości. Tu mamy do czynienia z funkcjami zespolonymi o częstotliwościach z zakresu liczb rzeczywistych. Każda funkcja może być przedstawiona jako obracający się w płaszczyźnie zespolonej wektor (wielkość obrotu zależy od czasu występującego w każdej takiej funkcji), którego koniec porusza się po okręgu o promieniu równym 1 (tzw. okrąg jednostkowy).
Dla dodatnich wartości wektory obracają się przeciwnie do wskazówek zegara, dla ujemnych wartości wektory obracają się zgodnie ze wskazówkami zegara.
Transformatę Fouriera oznacza się także symbolem[5]
gdzie – jednostka urojona (oznaczenie stosowane często w elektrotechnice, teorii przetwarzania sygnałów).
Oznaczenie to podkreśla, iż mamy do czynienia z transformatą Fouriera w postaci zespolonej, by odróżnić ją od transformat Fouriera kosinusowej i sinusowej. Używa się także symboliki na oznaczenie transformacji odwrotnej; wtedy mamy:
Przykład obliczania transformaty Fouriera
Mamy daną funkcję
Obliczamy
czyli
Część rzeczywista obliczanej transformaty jest równa zeru z uwagi na nieparzystość funkcji , natomiast część zespolona ma wartość
Stąd
Widmo amplitudowe czyli moduł transformaty :
Wyniki obliczeń pokazano na wykresach.
Obliczanie numeryczne transformaty Fouriera
Obliczanie transformaty Fouriera w ogólnym przypadku nie jest proste i wymaga na ogół całkowania numerycznego. Poniżej podano kod programu w języku Python, który liczy zespoloną transformatę Fouriera wg wzoru całkowego i rysuje wykresy jej części rzeczywistej, urojonej oraz modułu.
Użytkownik może ustalić:
Definicję funkcji (linia nr 15).
Liczbę określającą zakres częstotliwości (linia nr 32).
Program można testować, korzystając np. z darmowego notatnikacolab google online.
importnumpyasnpfromscipy.integrateimportquadimportmatplotlib.pyplotasplt''' Definicja funkcji f(t)=tdef f(t): if np.abs(t) < 1: return t elif np.abs(t) == 1: return 0.5 * np.sign(t) else: return 0'''# Definicja funkcji f(t) - impuls prostokątnydeff(t):ifabs(t-a)<1:return1elifabs(t-a)==1:return0.5*np.sign(t)else:return0# Definicja transformacji Fourieradeffourier_transform(omega):integrand=lambdat:f(t)*np.exp(-1j*omega*t)real_part=quad(lambdat:np.real(integrand(t)),-np.inf,np.inf)[0]imag_part=quad(lambdat:np.imag(integrand(t)),-np.inf,np.inf)[0]returnreal_part+1j*imag_part# Zakres częstotliwości omegaN=10omega_values=np.linspace(-N,N,500)fourier_values=np.array([fourier_transform(omega)foromegainomega_values])# Wykresy: Re, Im oraz |F(ω)|plt.figure(figsize=(14,20))# Wykres części rzeczywistejplt.subplot(3,1,1)plt.plot(omega_values,fourier_values.real,label=r"Re$\{\hat{f}(\omega)\}$",color='blue')plt.title("Część rzeczywista transformaty Fouriera",fontsize=30)plt.xlabel(r"$\omega$",fontsize=20)plt.ylabel(r"Re$\{\hat{f}(\omega)\}$",fontsize=14)plt.grid(True)plt.legend(fontsize=20)# Wykres części urojonejplt.subplot(3,1,2)plt.plot(omega_values,fourier_values.imag,label=r"Im$\{\hat{f}(\omega)\}$",color='red')plt.title("Część urojona transformaty Fouriera",fontsize=30)plt.xlabel(r"$\omega$",fontsize=20)plt.ylabel(r"Im$\{\hat{f}(\omega)\}$",fontsize=14)plt.grid(True)plt.legend(fontsize=20)# Wykres modułu |F(ω)|plt.subplot(3,1,3)plt.plot(omega_values,np.abs(fourier_values),label=r"$|\hat{f}(\omega)|$",color='green')plt.title("Moduł transformaty Fouriera",fontsize=30)plt.xlabel(r"$\omega$",fontsize=20)plt.ylabel(r"$|\hat{f}(\omega)|$",fontsize=14)plt.grid(True)plt.legend(fontsize=20)plt.tight_layout()plt.show()
Całki Fouriera jako całki niewłaściwe
Obliczanie transformaty Fouriera zadane jest de facto poprzez całki niewłaściwe, gdyż zmienna jest określona w granicach od do Obliczanie takich całek sprowadza się do liczenia tzw. wartości głównejcałki (wg definicji podanej przez Cauchy’ego)[2], tj. do liczenia jej jako granicy z całek obliczonych na skończonym przedziale całkowania:
Rzeczywiste sygnały zawsze mają skończony czas trwania. Natomiast można je teoretycznie przedłużać do nieskończoności – wtedy ma zastosowanie powyższy wzór.
Także funkcja pierwotna rekonstruowana z jej transformaty poprzez transformację odwrotną jest zadana przez całkę niewłaściwą, gdyż zmienna jest określona w granicach od do I także obliczanie tej całki sprowadza się do liczenia wartości głównej całki[2], tj. do liczenia jej jako granicy z całek obliczonych na skończonym przedziale całkowania wg wzoru:
Interpretacja i związek z transformatą Laplace’a
W całce Fouriera funkcje harmoniczne mnożone są przez sygnał wynikowa całka dostarcza informacji nt. zawartości poszczególnych harmonicznych, wchodzących w skład sygnału (dokonuje rozkładu sygnału na jego widmo).
Transformacja Laplace’awykonuje podobne działanie, ale o bardziej ogólnym charakterze: Za pomocą całki Laplace’a funkcja rzeczywista reprezentująca zmieniający się w czasie sygnał (np. pole elektryczne fali, przychodzącej do odbiornika), jest transformowana na płaszczyznę S (płaszczyznę zespoloną); dokonuje się to poprzez scałkowanie iloczynu funkcji z wyrażeniami typu dla czasu od do
przy tym jest liczbą zespoloną, stałą w procesie obliczania całki.
Funkcje w całce Laplace’a de facto mają postać Dzięki temu pozwalają dokonać nie tylko analizy zawartości harmonicznych w sygnale ale również efektów zaniku sygnału lub jego wzrastania w czasie, poprzez funkcję Na przykład krzywa sinusoidalna tłumiona może być modelowana za pomocą transformacji Laplace’a. Transformacja Fouriera stanowi więc szczególny przypadek przekształcenia Laplace’a dla
W przestrzeniach funkcji dobrze określonych, takich jak lub przestrzeń funkcji szybko malejących w nieskończoności transformacja Fouriera przyporządkowuje wzajemnie jednoznacznie funkcji (oryginałowi) jej transformatę. Oryginał i jego transformata określana są wtedy jako para fourierowska.
Funkcje całkowalne z kwadratem
W tabeli zestawiony jest oryginał oraz jego transformaty w dziedzinie częstotliwości i pulsacji[6].
Uwaga: Tu oznacza zmienną funkcji pierwotnej zamiast oznaczenia
Dystrybucje, określane też jako funkcje uogólnione nie posiadają transformat w sensie określonym przez powyższe definicje. Możliwe jest jednak uogólnienie pojęcia transformaty i przyjęcie, że uzyskujemy w wyniku przejścia do granicy ciągu transformat lub wychodząc od szeregu Fouriera funkcji okresowej.
Co wynika ze 101 i 303 przy zastosowaniu wzoru Eulera:
305
Co wynika ze 101 i 303, przy zastosowaniu
306
307
308
Gdzie jest liczbą naturalną a jest -tą pochodną delty Diraca. Wynika to ze 107 i 301. Stosując tę formułę z 101, można transformować dowolne wielomiany.
309
Gdzie to funkcja znaku. Zauważmy, że nie jest dystrybucją. Własność przydatna w odniesieniu do transformaty Hilberta.
310
Uogólnienie 309.
311
312
Dualne do 309.
313
Funkcja jest funkcją Heaviside’a; to wynika ze 101, 301 i 312.
314
Funkcja grzebieniowa. Do wyznaczenia z 302 i 102, wraz z faktem, że jako dystrybucje.
Warto zwrócić uwagę na fakt, że częstotliwość pozostała taka sama, jedynie amplituda i faza sygnału uległy zmianie w układzie. Transmitancja opisuje charakter tych zmian w całym spektrum częstotliwości (tj. dla każdej częstotliwości ). Moduł transmitancji opisuje wzmocnienie układu:
a argument tej transmitancji opisuje przesunięcie fazowe wprowadzane przez układ:
Tw. 2. W przypadku gdy funkcja jest ponadto całkowalna z kwadratem (czyli ), transformata jest również całkowalna z kwadratem. Innymi słowy, transformacja Fouriera jest odwzorowaniem przestrzeni:
↑David W.D.W.KammlerDavid W.D.W., A First Course in Fourier Analysis, Upper Saddle River, NJ: Prentice Hall, 2000, ISBN 0-13-578782-3, OCLC43118245. Brak numerów stron w książce
↑Hanna Marcinkowska: Dystrybucje, przestrzenie Sobolewa, równania różniczkowe. PWN, 1993, s. 56–60. ISBN 83-01-10864-9.