logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

FFT again. Co zrobić z próbkami żeby policzyć FFT?

zuiol 06 Maj 2008 18:21 5060 2
REKLAMA
  • #1 5112261
    zuiol
    Poziom 1  
    Hej wiem, że ten temat się tu powtarza nie raz i nie dwa, ale mam ogromny problem ze zrozumieniem tych tematów.. chcę napisać własną funckje liczącą FFT powiedzmy w C. Mam w tablicy wczytane próbki i jeżeli znajdzie się ktoś łaskawy niech mi wyjaśni co ja mam zrobic z tymi próbkami żeby policzyć to FFT. Ale nie tak mądrze jak w innych tematach tylko tak łopatologicznie krok po kroku.. Jak żądam za wiele to wywalcie poprostu ten temat.. Pozdrawiam
  • REKLAMA
  • #2 5123997
    shg
    Poziom 35  
    Liczy się DFT, FFT jest jednym ze sposobów liczenia DFT.
    Więc teraz zasadnicze pytanie, co chcesz policzyć i czy koniecznie musisz napisać własną funkcję. W wypadku bezpośredniej implementacji DFT jest to w miarę proste, niestety kod dla większej ilości próbek ma kiepską wydajność, a dla jeszcze większej ilości jest tragicznie.
    FFT natomiast już takim prostym algorytmem nie jest i mało kto pisze własne procedury. Raczej korzysta się z gotowców z racji takiej, że praktycznie i tak wszystkie stosowane powszechnie warianty algorytmu FFT zostały już przez kogoś kiedyś napisane i nie warto odkrywać Ameryki na nowo, bo dojdzie się do dokładnie takiego samego rezultatu.

    Lektura:
    Numerical Recipes in C, Second Edition (1992) - Opis FFT (rozdział 12), kod w C. Trzeba jakiś plugin do Acrobat Readera zainstalować żeby dało się otworzyć pliki (na górze strony link).
    The Scientist and Engineer's Guide to Digital Signal Processing - "Biblia", kilka rozdziałów na temat DFT i FFT

    Obie książki bardzo dobre, polecam zwłaszcza tą drugą, jeżeli przejawiasz jakieś zainteresowania w kierunku DSP, to najlepiej w całości.
  • #3 5141573
    Nabuhomodozor
    Poziom 10  
    Witam! Parę tygodni temu miałem ten sam problem ;) ale go rozwikłałem. Dobrą implementację znalazłem tu: linek. Kod jest zaczerpnięty z NR in C lecz trochę zmodyfikowany.
    Jednym z argumentów jakie funkcja przyjmuje jest wektor próbek badanego sygnału. Nie trzeba go modyfikować... a z resztą, co tu będę gadał ;) dokładna analiza tego przykładu pozwoli Ci lepiej działanie algorytmu FFT zrozumieć.
    Pozdrawiam
REKLAMA