Wykresy dwóch funkcji rzeczywistych oraz ich transformaty Fouriera. Drugi sygnał, przesunięty w czasie względem pierwszego, pomimo identycznej postaci, ma inną transformatę Fouriera
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.
Zastosowanie transformacji Fouriera do określenia składowych akorduC dur fortepianu. Pierwsze trzy piki od lewej odpowiadają podstawowym częstotliwościom C, E, G. Pozostałe są wyższymi harmonicznymi.
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).
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ł.
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
Transformatę funkcji rzeczywistej można zapisać następująco[3]:
Używa się następujących nazw:
- charakterystyka widmową (gęstością widma, krótko: widmo) funkcji
- charakterystyka amplitudowa (widmo amplitudowe) funkcji
- charakterystyka fazowa (widmo fazowe) funkcji
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:
Funkcję w płaszczyźnie zespolonej reprezentuje wektor o końcu w punkcie , który obraca się wokół początku układu współrzędnych przeciwnie do ruchu wskazówek zegara, gdy rośnie wartość zmiennej . Pokazano też rzut tego wektora na oś rzeczywistą, kreślącego cosinusoidę .
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.
Obracający się przeciwnie do ruchu wskazówek zegara wektor ma dodatnią częstotliwość rad/s. Nie pokazano wektora obracającego się zgodnie z ruchem wskazówek zegara, który ma ujemną częstotliwość rad/s. Końce obu wektorów obracają się po okręgu jednostkowym, ale w przeciwnych kierunkach.
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]
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.
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[2]
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. Używa się także symboliki na oznaczenie transformacji odwrotnej; wtedy mamy:
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ątny deff(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()
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:
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.
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.