KATEDRA SYSTEMÓW MULTIMEDIALNYCH
Akustyka Muzyczna
Ćwiczenie nr 3:
Detekcja częstotliwości podstawowej dźwięków instrumentów muzycznych
Opracowanie:Kuba Łopatka
1. Wprowadzenie teoretyczne.
W instrumencie muzycznym, dla dowolnie dobranej długości struny czy długości kolumny drgającego powietrza istnieje naturalny dźwięk odpowiadający tej długości, złożony z szeregu tonów prostych. Najniższy ton występujący w takim dźwięku nazywany jest główną składową harmoniczną, a odpowiadająca mu częstotliwość –
częstotliwością podstawową lub wysokością dźwięku. Amplituda głównej składowej
harmonicznej nie musi być największą spośród wszystkich harmonicznych. Na barwę dźwięku instrumentu muzycznego decydujący wpływ mają wzajemne relacje między kolejnymi składowymi harmonicznymi.
Algorytmy śledzenia częstotliwości podstawowej sygnału posiadają bardzo szerokie zastosowania. Mogą być używane w technice studyjnej do konwersji sygnału akustycznego do kodu MIDI, do sterowania urządzeń dźwiękiem instrumentów akustycznych, jak również m.in. do parametryzacji sygnałów itp. Istnieje wiele algorytmów śledzenia częstotliwości podstawowej sygnałów. W ćwiczeniu wykorzystane zostaną następujące algorytmy:
metoda autokorelacji
Funkcja autokorelacji sygnału dyskretnego dana jest wzorem:
Jedną z właściwości funkcji autokorelacji jest fakt, że funkcja autokorelacji przebiegu okresowego wykazuje również właściwości okresowe (jej maksima rozmieszczone są w odległości okresu sygnału. Położenie pierwszego maksimum tej funkcji dla argumentu różnego od zera wyznacza okres sygnału w próbkach. Długość ramki sygnału musi wynosić co najmniej kilka okresów.
metoda AMDF
m n m x m x n r ][polega na badaniu relacji między sygnałem oryginalnym i opóźnionym
Okres podstawowy sygnału w próbkach określa położenie pierwszego minimum lokalnego funkcji AMDF (dla n 0).
metoda cepstralna
Korzysta z cepstrum sygnału obliczonego jako transformata kosinusowa logarytmu widma sygnału:
Położenie maksimum w cepstrum sygnału wyznacza okres podstawowy w próbkach.
metoda wokodera
Metoda wokodera polega na śledzeniu fazy prążków w widmie sygnału. Różnica faz prążków widmowych pomiędzy kolejnymi ramkami sygnału dana jest wzorem:
)
(
)
,
(
)
,
(
t
su kY
t
su 1 kh
s kt
auY
gdzie Y(tus,k)to widmo STFT zmodyfikowanego sygnału, a k(tau)to wektor chwilowych częstotliwości sygnału w k-tym paśmie, obliczonych na podstawie różnicy faz między kolejnymi ramkami sygnału. Na podstawie różnicy faz można estymować chwilową pulsację prążka w widmie. Te współczynniki DFT, które wykazują najmniejszą zmienność chwilowej pulsacji są zakwalifikowane jako elementy tonalne i najniższy z nich związany jest z
częstotliwością podstawową.
2. Interfejs ćwiczenia
Interfejs ćwiczenia uruchamia się, wpisując w konsoli Matlaba lab_f0. Na rysunku 1 przedstawione zostały poszczególne elementy interfejsu.
, 1 1
k n m x m x n AMDF M m k
m n n r m n r X C 1 cos ln Rys. 1 Interfejs ćwiczenia 1 – Wybór pliku do analizy.
2 – Odtworzenie pliku dźwiękowego.
3 – Wybór algorytmu detekcji częstotliwości podstawowej. 4 – Obliczanie częstotliwości podstawowej dla wybranej ramki.
5 – Obliczanie konturu częstotliwości podstawowej dla całego sygnału. 6 – Wykres postaci czasowej całego sygnału.
7 – Położenie wybranej ramki do analizy 8 – Suwak zmiany początku ramki. 9 – Suwak zmiany długości ramki. 10 – Wykres czasowy ramki sygnału. 11 – Wykres prezentujący wynik analizy.
12 – Oznaczenie znalezionego maksimum/minimum.
13 – Przybliżenie wykresu (dla konturu częstotliwości podstawowej).
3. Zadania
1. Dla dostępnych dźwięków instrumentów muzycznych stwórz tabelę zawierającą dane referencyjne w postaci:
Instrument wysokość dźwięku częstotliwość [Hz]
skrzypce a1 440Hz
Wysokości granych dźwięków (wg notacji MIDI) podane są w nazwach plików. Należy przeliczyć dane dźwięki na Hz.
2. Dokonaj analizy każdego z dźwięków (bez szumu) i uzupełnij tabelę o najlepsze wyniki, jakie udało się uzyskać (wg wzoru).
Instrument wysokość dźwięku częstotliwość [Hz] metoda 1 metoda 2 ... skrzypce a1 440Hz 438,7Hz 442,1Hz ... .. .. ..
Dla jakiej długości i położenia ramki uzyskano ten wynik? (załączyć wykres z zaznaczoną ramką) Jak kształtuje się dokładność poszczególnych algorytmów? Który z dźwięków jest łatwiejszy, a który trudniejszy do analizy.
3. Wykreśl kontur częstotliwości podstawowej dźwięków bez szumu metodami autokorelacyjną, AMDF i cepstralną. Dobierz długość ramki tak, aby otrzymać dobre, ale wolne od błędów odwzorowanie konturu częstotliwości podstawowej. Porównaj wyniki poszczególnych metod pod względem występowania błędów oktawowych. Znajdź ramkę sygnału, dla której wystąpił błąd i pokaż wynik analizy tej ramki. Dla jakich dźwięków można zaobserwować efekt vibrato? Na czym on polega?
4. Przeanalizuj, podobnie jak w punktach 2 i 3, zaszumione próbki. Jakie niedokładności zauważasz? Które z algorytmów są bardziej, a które mniej podatne na szum? Zilustruj przykładami ukazującymi błędy w detekcji częstotliwości podstawowej.
5. Stwórz własną funkcję dokonującą detekcji częstotliwości podstawowej za pomocą poszukiwania globalnego maksimum w widmie sygnału. Wykorzystaj szablon (moja_metoda.m). Porównaj wyniki uzyskane tą metodą z wcześniej otrzymanymi. Czy uważasz, że ta metoda jest słuszna? Dlaczego?