[Algorytm] Wykrywanie wysokości dźwięku

0

Witam,

Piszę sobie programik, dzięki któremu poćwiczę sobie robienie podciągów na harmonijce ustnej :P
Nie mogłem znaleźć nic pod systemy uniksowe (gtkguituner może sprawdza się dla gitary, ale przy harmonijce wysiada).

Zaimplementowałem algorytm autocorrelation jak opisano tutaj, jednak czasem robi przekłamania (wyczytałem, że to charakterystyczne dla tego algorytmu).

Teraz zabieram się za YIN, ale wygląda na bardziej skomplikowany i nie wiem, czy też poradzi sobie.

Stąd pytanie: jaki algorytm zastosować do wykrycia częstotliwości podstawowej dźwięku wydobywanego z mojej harmonijki :)
Zakres częstotliwości to od ok: 200 Hz (teoretycznie 261, ale lepiej z zapasem) do 3000 Hz (teoretycznie 2093).

0

Dyskretna transformata Fouriera (DFT z ang. discrete Fourier transformation)

<url>http://pl.wikipedia.org/wiki/Dyskretna_transformata_Fouriera
</url>

0

ja bym uzyl FFT i okno prostakatne, wtedy dostaniesz pelne widmo tego co wyplywa z harmonijki (natezenie X czestotliwosc)

0

Z tego co czytałem, to za wolne to będzie. Jak coś z tego typu przekształceniami to HPS, wykorzystuje Short-Time Fourier Transform, ale to też nie bardzo radzi sobie z błędami :/

Na razie pokombinowałem według tego co w jednym z dokumentów wyczytałem i połączyłem ACF (autocorrelation function) z AMDF (Average Magnitude Difference Function). Po ograniczeniu zakresu częstotliwości, daje całkiem przyzwoite wartości. Ale czasem myli się (zwłaszcza, jak są większe przeskoki). Przydałoby mi się dodać jakąś "bezwładność"...

0
Dryobates napisał(a)

Z tego co czytałem, to za wolne to będzie. Jak coś z tego typu przekształceniami to HPS, wykorzystuje Short-Time Fourier Transform, ale to też nie bardzo radzi sobie z błędami...

By uzyskać odpowiednią rozdzielczość, należy wykonać długie FFT? Dla tego piszesz ?wolne?? Jeżeli tak to jest pewien sposób. Można zrobić ?lupę? - CHIRP FFT, domyślam się, że istotne są tylko pewne częstotliwości, - ?czyste nuty?, na jedną realizację można spojrzeć przez kilka ?lup? rozmieszczonych w różnych miejscach.
</quote>

1 użytkowników online, w tym zalogowanych: 0, gości: 1