problem z fft

edi_22
Użytkownik
Użytkownik
Posty: 1
Rejestracja: 5 sty 2006, o 19:54
Płeć: Mężczyzna
Lokalizacja: TriCity

problem z fft

Post autor: edi_22 »

Witam wszystkich,

mam nadzieję, że z moim pytaniem trafiłem w odpowiednie miejsce.
Mam problem z szybką transformatą fouriera.
W programie zadeklarowałem funkcję y = |x|, pobrałem 1024 próbki wartości tej funkcji z zakresu .
Te próbki poddałem działaniu transformty fouriera.
Otrzymałem taki oto wynik:



Pytanie - czy właśnie to powinienem uzyskać? Czy ni powinno to być przybliżenie funkcji f=|x| szeregiem sinusów i cosinusów o różnych częstotliwościach?
Co w takim razie powinienem zrobić by to przybliżenie uzyskać?

Wiem, że pytanie może dziwne, ale będę bardzo wdzięczny za jakieś wskazówki.

Dzięki.
Fibik
Użytkownik
Użytkownik
Posty: 971
Rejestracja: 27 wrz 2005, o 22:56
Płeć: Mężczyzna
Lokalizacja: Wrocław
Podziękował: 11 razy
Pomógł: 75 razy

problem z fft

Post autor: Fibik »

W wyniku FFT otrzymujesz współczynniki wielomianu fazowego:
\(\displaystyle{ \large c_k = \frac{1}{N}\bigsum_{n=0}^{N-1}{f_k\cdot e^{nw_k}},\ w_k = 2i\pi\frac{k}{N}}\)
Później można to przetworzyć na współczynniki szeregu trygonometrycznego (może ten algorytm to robi).
Tak czy inaczej nigdy nie będą to wartości interpolowanej funkcji, lecz jedynie współczynniki na podstawie,
których obliczamy wartości f (w oparciu o wartości funkcji, poprzez FFT otrzymujemy znowu wartości tej funkcji?! ).

Jak to obliczyć powinno być w opisie tego algorytmu.
Jest taki wzór, może on wystarczy:
\(\displaystyle{ t(x) = \bigsum_{k=1}^{n}{(a_k\cos(kx) + b_k\sin(kx))} + 0.5(a_0 + a_n\cos(nx))\ , \ n = N/2-1}\)
ODPOWIEDZ