Post
autor: MB » wtorek 27 cze 2006, 00:26
...Nie robilem przeplotu bez powodu... po prostu sądziłem, że tak działa funkcja FFT, że zwraca składowe w tym a nie innym porządku, i że wykonanie przeplotu będzie przywróceniem naturalnej kolejności składowych (tak to jest jak sie nie czyta odpowiedniej literatury...).
**********************
I tak i nie. Dla sygnałów wejściowych o wartościach rzeczywistych transformata ma wspomnianą symetrię, co oznacza, że połowa współczynników jest nadmiarowa (nie niesie żadnej dodatkowej informacji), choć jest niezbędna dla prawidłowego odtworzenia sygnału w przekształceniu odwrotnym. W tym kontekście ten "przeplot" jest bezcelowy bo dubluje się te same wartości. Dla sygnału o wartościach zespolonych sprawa jest bardziej skomplikowana, ale zostawmy to na inną dyskusję.
Czyli F[0] odpowiada za składową stałą...
***********************
Wiele nieporozumień związanych z interpretacją wyniku FFT bierze się z nieznajomości założeń przy jakich zdefiniowano to przekształcenie. Ponieważ operujemy na skończonym bloku próbek wejściowych, FFT nie wie nic o tym, co jest poza tym blokiem. Założenie jest takie, że sygnał jest okresowy, a jego okres wygląda dokładnie tak, jak ów blok. F[0] to nic innego jak wartość średnia ze wszystkich próbek w bloku. Gdyby sygnał istotnie był okresowy, wtedy byłaby to też jego składowa stała, ponieważ najczęściej tak nie jest, zatem to tylko lokalne przybliżenie składowej stałej, które może być bardzo niedokładne.
Czy będę wielkim ignorantem pytając, co w związku z tym oznaczają współczynniki po prawej stronie osi symetrii? W jaki sposób są one związane z ich symetrycznymi odpowiednikami po lewej stronie?
***********************
Zacznijmy od tego, że FFT jest operacją dla sygnału dyskretnego, którego widmo jest okresowe (powielone dla każdej wielokrotności fs). O dziwo wynik FFT też jest okresowy z okresem N. Współczynniki na prawo od N/2 to te same współczynniki, które są na lewo od zera, a dokładnie F[N-i]=F[-i]. Zamiast używać współczynników F[0]...F[N-1] równie dobrze można by używać F[-n/2+1]...F[n/2] (z identycznym skutkiem). Zatem pytanie o to, co reprezentują współczynniki dla i>N/2 jest również pytaniem o to, co reprezentują współczynniki dla i<0. Odpowiedź wymaga znajomości wzorów Eulera, które wyrażają funkcje trygonometryczne sin i cos za pomocą exp z urojonym wykładnikiem (tak tak, tego samego exp(-jkn2pi/N), które występuje we wzorze na DFT/FFT). Jeśli sygnał ma się składać z rzeczywistych sinusoid i kosinusoid, to potrzebujemy pary funkcji exp z przeciwnymi wykładnikami, np. 0.5exp(jx)+0.5exp(-jx)=cos(x). Zatem potrzebujemy 2 współczynników o indeksie k i -k, aby złożyć z tego rzeczywisty kosinus.
Na matematyce mnie uczono, iż Transformata Fouriera jest funkcją rozkładającą dowolną funkcję na nieskończoną ilość składowych harmonicznych; innymi słowy podstawiając je jako iloczyny funkcji sin i cos w szeregu Fouriera w wyniku otrzymamy oryginalny przebieg. Tak to sobie tłumaczyłem i wydawało mi się to jasne. Ale teraz chyba coś mi sie ta wizja wali... A może za bardzo sobie to uprościłem?...
***************************
Transformacja Fouriera jest operacją przekształcającą funkcję w jej transformatę. Stwierdzenie o nieskończonej ilości składowych jest prawdziwe dla całkowej transformacji z sygnału ciągłego, nieokresowego. Tymczasem DFT (i jego szybka implementacja - FFT) dotyczy sygnałów dyskretnych (a więc ograniczonych pasmowo, by nie było aliasingu), oraz o ograniczonym czasie trwania (interpretowanym jako skończony okres, o czym wspomniałem wyżej). Nie mamy już więc żadnej nieskończoności - widmo jest ograniczone i dyskretne (bo sygnał okresowy ma tylko przeliczalną liczbę prążków harmonicznych), zatem składa się z dokładnie skończonej liczby drgań. Patrząc na FFT/iFFT jak na zwykłe przekształcenie algebraiczne widzimy wynik FFT będący kombinacją liniową elementów skończonego wektora próbek sygnału, to samo z przekształceniem odwrotnym. Skoro mamy N próbek sygnału, to jest N punktów swobody, zatem zgodnie z zasadami algebry możemy wyliczyć tylko N innych niezależnych zmiennych. Zatem liczba składowych sygnału jest ograniczona dokładnie do N. Co to są za składowe? No cóż, jak już wspominałem, nie są to sinusy ani kosinusy tylko funkcje zespolone typu exp(jkn2pi/N). Dopiero para takich funkcji o przeciwnych k daje pojedyncze drganie harmoniczne o rzeczywistych wartościach.