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

Wyświetlanie FFT i spektrogramu.

DirtySoul 20 Wrz 2006 18:50 5563 6
REKLAMA
  • #1 3039801
    DirtySoul
    Poziom 2  
    Witam wszystkich.
    Mam pewien problem. Do mojej pracy magisterskiej moja "kochana" pani promotor w ostatniej chwili zapragnęła dodania analizy widmowej i spektrogramu. Powiem krotko - nie bawilem sie w pisanie FFT, sciagnalem gotowe procedury. FFT dziala poprawnie. Wprowadzam iles tam probek sygnalu i dostaje w tablicach części rzeczywiste i urojone.

    Użytkownik może wybrac wielkość FFT 512/1024/2048/4096. I tu chciałbym wyjaśnić moje watpliwości. Jest tak - ładuje do jednej tablicy wave'a. Mam np. 90.000 probek. I jak policzyć FFT dla całego pliku? Mam brac np 512 pierwszych probek, policzyc FFT, wyswietlić, później wziąć kolejne 512 probek, policzyć FFT, wyświetlić itd. :?: Wlasnie tego nie rozumiem i prosze o pomoc.

    Druga sprawa wiąże się ze spektrogramem. Tutaj, z tego co wyczytalem, na osi X mamy czas, na osi Y częstotliwość a kolory to amplituda, tak? I co dalej wlasnie?

    Prosze o jak najszybszą odpowiedź. Dzieki.
  • REKLAMA
  • REKLAMA
  • #3 3041602
    DirtySoul
    Poziom 2  
    Tak mos5, akustyczny. Dzwiek 16 bit wav mono. A chodzi mi o to czy w sprawie wyswietlania FFT dobrze rozumuje czy robi sie to jakos inaczej i wogole nie mam pojecia jak wziac sie za spektrogram.
  • REKLAMA
  • #4 3043726
    And!
    Admin grupy Projektowanie
    Aby nie walczyć z FFT od podstaw możesz spróbować wykorzystać gotowe źródła, lub gotową dll ( np. bass.dll http://www.un4seen.com/ )
    Wtedy podajesz na wejście algorytmu tablicę próbek, a otrzymujesz tablicę z wartościami na kolejnych prążkach FFT (których odpowiedniki częstotliwościowe zależą od próbkowania i ilości punktów FFT)

    Z tablicy wyników możesz uzyskać spektrum próbki, czyli na X mamy częstotliwość a na Y mamy moc na częstotliwości.

    Aby narysować spektrogram, nakładasz kolejne spektra pionowo z tym że wartości amlitud zastępujesz kolorem (jasnością jednego, albo np, widmo słoneczne).

    Czyli na X mamy kolejne próbki, na Y mamy częstotliwość, z tym że wykres nie jest linią tylko mapą, w której kolor oznacza moc na danej częstotliwości w danej próbce.

    Można też narysować bez kolorów w 3D czyli taka poodkształcana płaszczyzna, też fajnie to wygląda, z tym że może być mniej czytelne.
  • REKLAMA
  • #5 3047677
    mos5
    Poziom 24  
    AND spektrogram to wynik analizy spektrograficznej(świetna wizualizacja dzwięku) która umożliwia rejestrację sygnału np.:akustycznego w trzech wymiarach czas- częstotliwośc-amplituda.Zapomniałeś o czasie na osi X.
    Na Y częstotliwość ,amplituda to intensywność zaczernienia lub kolory(słoneczko).
  • #6 3047884
    qrdel
    Poziom 28  
    Poprzednicy w zasadzie opowiedzieli czym jest spektrogram, to ja spróbuję dodać co dalej.
    Otrzymana mapa pokazująca amplitudy czestotliwości składowych na płaszczyźnie t,f może służyc do wzrokowej analizy badanego procesu.
    Można się też pokusić o przeniesienie własnych wzrokowych intuicji do jakiegoś algorytmu, żeby analizować automatycznie.
    Na obrazku może być widać: "pagórki" - dobrze umiejscowione w czasie i częstotliwości - to krótkie paczki dźwięku o pewnej częstotliwości, długie poziome "grzbiety" to sygnały sinusoidalne, a "grzbiety" pionowe to dźwięki "wybuchowe" (zbliżone do delty Diraca).
    W muzyce lub mowie łatwo można zaobserwować ton podstawowy i alikwoty, szczególnej piękności jest spektrogram dużego dzwonu z całym szeregiem harmonicznych i ich zmianami amplitudy.
    Można określić moment wystąpienia zdarzenia i czas trwania, częstotliwość dźwięku i jej ewentualne zmiany - przydatne w diagnostyce różnych rzeczy od rzężeń w płucach (rales, crackles, whizes) do diagnostyki urządzeń mechanicznych.

    Dla uzyskania ładnych wyników zalecam:
    1. stosowanie okien (Hamming, Hanning, Bartlett etc.)
    2. wybieranie rekordów przekrywających się (overlap), czyli np. rekordy po 1024 kolejne próbki startując od 0, 128, 256 ...
    3. zwiększanie rozdzielczości częstotliwościowej przez wydłużanie rekordów (zero stuffing) czyli np. bierzemy 1024 próbki, mnożymy przez okno, dopisujemy ciąg zer aby otrzymać 8192 próbki liczymy FFT i pomijamy wyniki dla zbyt małych częstotliwości (okres dłuższy niż oryginalne 1024 próbki).

    Dugođci rekordow, stopien przekrywania, zakres zwielokrotnienia rozdzielczosci nalezy dobrac do problemu.

    sorry zdechlo mi kodowanie klawiatury
  • #7 3071743
    DirtySoul
    Poziom 2  
    Dziekuje wam wszystkim, nie wszystko zrozumialem, ale wylapalem co mi bylo potrzeba i pieknie to gra mi teraz :D Ponizej dodaje kilka bitmap na dowod ze mi sie udalo :smoke:

    Tak wyglada spektrogram dzwieku:
    Wyświetlanie FFT i spektrogramu.

    A tak wyglada spektrogram tego samego dzwieku po zastosowaniu algorytmu filtracji:
    Wyświetlanie FFT i spektrogramu.

    Takze dla wszystkich, ktorzy odpowiedzieli na moj post - WIELKIE DZIEKI[/quote]
REKLAMA