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 wykonywana parę razy na sekunde

lgruszczyk 11 Cze 2010 10:53 1290 1
REKLAMA
  • #1 8178103
    lgruszczyk
    Poziom 1  
    Witam,

    mam napisaną 128 punktową FFT, która ma za zadanie analize częstotliwości do 100 Hz. Wszystko pracuje idealnie, tyle tylko, że wykonywany jest 1 pomiar na sekundę. Jak dokonać 3 pomiarów na sekunde i mieć analizę Hertz po Hertzu.

    Dodam od razu, że próbowałem już zczytywać mniej danych z określona czest. próbkowania a resztę uzupełniać zerami. Możliwe, że popełniłem błąd bo wyniki były złe.

    Pozdrawiam,
    Łukasz
  • REKLAMA
  • #2 8258438
    Akane
    Poziom 27  
    http://www.fftw.org/ - na tej stronie znajdziesz bibliotekę dopasowującą się do procesora. Biblioteka ma zestaw funkcji (a raczej są to 3 osobne bibtioteki) dla danych typu float, double i long double.

    Mając procesor z zestawem instrukcji SSE1, wybierz zestaw float (libfftw3f-3.dll) - w sumie wersja float jest najszybsza, bo obliczenia wykonują się na czterech liczbach jednocześnie. Mając SSE2 możesz obliczać na danych typu double, dokładność wzrośnie (mało istotne w skali decybelowej), a wydajność spadnie, bo równolegle obliczać można tylko dwie liczby.

    Typowe osiągi tej biblioteki (tylko FFT) razem z wyświetleniem widma na oknie (zwyczajne GDI w Windows XP), to 20 razy na sekundę dla 32768 próbek dźwięku, na mobilnym, jednordzeniowym procesorze centrino z zegarem 1.86GHz, bez zacinania, z ledwo zauważalnym wzrostem zajętości procesora.
REKLAMA