Professional Documents
Culture Documents
Algorytmy Detekcji Częstotliwości Podstawowej
Algorytmy Detekcji Częstotliwości Podstawowej
częstotliwości podstawowej
Plan
Definicja częstotliwości podstawowej
Wybór ramki sygnału do analizy
Błędy oktawowe i dokładnej estymacji
Metody detekcji częstotliwości podstawowej
czasowe
widmowe
Realizacja przykładowego algorytmu
Częstotliwość podstawowa
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.
Częstotliwość podstawowa
Postać czasowa
T0
0.05
0.04
0.03
0.02
0.01
y(t)
-0.01
f0[Hz]*T0[s]=1
-0.02
-0.03
f0[Hz]=f0[k]*fs[Hz]/N
-0.04
0 2 4 6 8 10 12 14 16 18 20
t [ms]
-4
10
-6
10
500 1000 1500 2000 2500 3000 3500 4000 4500 5000
f0
f [Hz]
Przykłady zastosowań detekcji
częstotliwości podstawowej
Określanie częstotliwości kolejnych składowych harmonicznych i
śledzenie ich zmian czasowych
Wyznaczanie parametrów widmowych dźwięku
Klasyfikacja instrumentów
Automatyczna transkrypcja linii melodycznej do kodu MIDI
Separacja dźwięków instrumentów muzycznych z nagrań
polifonicznych
Indeksacja i automatyczne wyszukiwanie nagrań
Zasady wyboru ramki sygnału do
analizy
Długość analizowanej ramki sygnału zależy od wybranej metody
detekcji częstotliwości podstawowej, od charakterystyki
analizowanego dźwięku oraz od oczekiwanej dokładności
wyników
W ogólności należy wybierać możliwie krótką ramkę sygnału, w
której analizowany sygnał jest niezmienny (np. faza „Sustain” w
modelu obwiedni dźwięku ADSR przy analizie dźwięków
pojedynczych, izolowanych instrumentów muzycznych)
Dla większości metod, analizowana ramka sygnału powinna
zawierać co najmniej kilka okresów sygnału
W celu poprawy rezultatów można analizować kilka różnych
ramek dla tego samego sygnału
Zasady wyboru ramki sygnału do
analizy
0.25
0.2
0.15
0.1
amplituda
0.05
-0.05
-0.1
-0.15
-0.2
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8
t [s]
Błędy oktawowe
Błędy oktawowe związane są z trudnością wyznaczenia okresu
sygnału (w analizie w dziedzinie czasu), bądź z problemami
związanymi z określeniem rzędu składowych harmonicznych
wykrytych w widmie.
Błędy dokładnej estymacji
Błędy te wynikają z dyskretnej postaci czasowej sygnałów oraz
szumu zakłócającego analizowane sygnały.
W przypadku reprezentacji czasowych nie zawsze próbka
reprezentująca maksimum wypada w rzeczywistym maksimum fali
przebiegu.
W przypadku analizy widmowej piki widma nie zawsze
reprezentują częstotliwość. Niedokładne wyznaczenie maksimum
składowych harmonicznych wpływa na błąd estymacji.
Błędy dokładnej estymacji
Błędy dokładnej estymacji
Błędy dokładnej estymacji
Błędy dokładnej estymacji
Błędy dokładnej estymacji
Błędy dokładnej estymacji można zminimalizować przy pomocy
technik interpolacyjnych
Ponieważ w analizie czasowej maksima przebiegów zazwyczaj są
reprezentowane przez wiele próbek, skuteczną metodą poprawy
estymacji jest obliczanie środka ciężkości analizowanego wycinka
sygnału
W analizie częstotliwościowej piki widma reprezentowane są
jedynie przez kilka próbek, przez co skuteczniejsze jest
wykorzystanie liniowych (wielomianowych, sklejanych
wielomianów), bądź nieliniowych (interpolacja przy pomocy sieci
neuronowych) metod interpolacyjnych.
Błędy dokładnej estymacji
n
Błędy dokładnej estymacji
Fragment widma sygnału
Próbki reprezentujące
pik widma
Alternatywny algorytm
zwiększyć dwukrotnie długość sygnału x poprzez uzupełnienie
zerami
r IFFT FFT x FFT x
Analiza funkcji autokorelacji
Analiza funkcji autokorelacji
Analiza funkcji autokorelacji
Metody czasowe detekcji f0
Metoda AMDF (Average Magnitude Differential
Function)
polega na badaniu relacji między sygnałem oryginalnym i
opóźnionym
M
AMDF n xm xm n , k 1
k
m 1
m 1
-20
-40
amplituda [dB]
-60
-80
-100
-120
0 2 4 6 8 10
f [kHz]
Metoda cepstralna
Metoda cepstralna
Obliczana odwrotna transformata Fouriera logarytmu widma
amplitudowego analizowanej ramki sygnału, wg wzoru:
m
r n
C r ln X n cos
n 1 m
Częstotliwość podstawowa sygnału w ramce estymowana jest na
podstawie położenia maksimum w dziedzinie cepstrum
Algorytm oparty o analizę cepstralną jest relatywnie niewrażliwy
na szum, ale występuje problem pojawiania się błędów
oktawowych
Metoda cepstralna
Metoda cepstralna
Obliczana odwrotna transformata Fouriera logarytmu widma
amplitudowego analizowanej ramki sygnału, wg wzoru:
m
r n
C r ln X n cos
n 1 m
Matlab
ACOLS=xcorr(log(abs(fft(s))));
Analiza ACOLS
Analiza ACOLS
Analiza ACOLS
Analiza ACOLS
Algorytmy detekcji operujące w
przestrzeni czas-częstotliwość
Aby zwiększyć prawdopodobieństwo poprawnej detekcji
częstotliwości podstawowej, możliwe jest wykorzystanie informacji
zgromadzonych na podstawie analizy przebiegu czasowego oraz
reprezentacji widmowej sygnału
Ponadto część algorytmów bada trajektorie wykryte podczas
analizy sonograficznej, reprezentujące przebiegi składowych
sinusoidalnych w celu ekstrakcji częstotliwości podstawowej
Filtracja grzebieniowa
Polega na obliczaniu iloczynów widma sygnału oraz funkcji
grzebieniowej o przestrajanej częstotliwości, określającej
odległość pomiędzy kolejnymi maksimami lokalnymi funkcji
grzebieniowej. Następnie sumuje się wartości prążków po
filtracji przez funkcję grzebieniową i przyporządkowuje
otrzymane wyniki częstotliwości charakteryzującej funkcję
grzebieniową. Położenie maksimum globalnego utworzonej w
ten sposób funkcji określa częstotliwość podstawową dźwięku.
Inne metody widmowe
Histogram Schroedera
Metoda statystyczna polegająca na analizie z osobna
częstotliwości każdego prążka.
Na podstawie rozkładu częstotliwości prążków widma
generowany jest histogram częstotliwości. Jeśli wielokrotność
częstotliwości analizowanego prążka pokrywa się z
częstotliwością innego, to powiększana jest wartość
histogramu dla tej właśnie częstotliwości. Częstotliwość
podstawowa dźwięku jest wtedy równa częstotliwości, dla
której wartość histogramu jest największa.
duża dokładność
odporność na występowanie błędów oktawowych
algorytm skuteczny dla sygnałów zaszumionych
Inne metody widmowe
Kombinacja transformacji Fouriera
Obliczanie różnic
Wybór ramki sygnału Próg
między prążkami
P1
Próg
P2
Obliczanie widma FFT Kwantyzacja 1-bitowa
Wyznaczanie zbioru
najmniejszych różnic
Filtracja
dolnoprzepustowa
Różniczkowanie Obliczanie wartości
Logarytmowanie średniej zbioru
widma
Określenie
Określenie położenia częstotliwości
Usuwanie trendu
prążków podstawowej
f0
0.25
0.2
0.2
0.15
0.15
0.1
0.1
0.05
0.05
x(t)
x(t)
0
0
-0.05
-0.05
-0.1
-0.1
-0.15
-0.15
-0.2
0 0.2 0.4 0.6 0.8 0.14
1 0.161.2 0.18 1.4 0.2 1.60.22 0.24
1.8 0.26 0.28 0.3 0.32
t [s]
t [s]
Algorytm detekcji f0
Filtracja dolnoprzepustowa
0 0
-1 -1
-2 -2
-3 -3
-4 -4
-5 -5
-6 -6
0 5000 10000 15000 20000 0 5000 10000 15000 20000
f [Hz] f [Hz]
Algorytm detekcji f0
Filtracja dolnoprzepustowa
0 0
-1 -1
-2 -2
-3 -3
-4 -4
-5 -5
-6 -6
0 200 400 600 800 1000 1200 1400 1600 1800 2000 0 200 400 600 800 1000 1200 1400 1600 1800 2000
f [Hz] f [Hz]
Algorytm detekcji f0
Usuwanie trendu
0 0
-1 -1
-2 -2
-3 -3
-4 -4
-5
-5
-6
0 5000 10000 15000 20000 -6
0 5000 10000 15000 20000
f [Hz]
f [Hz]
Algorytm detekcji f0
Usuwanie trendu
0 0
-1 -1
-2 -2
-3 -3
-4
-4
-5
-5
-6
0 5000 10000 15000 20000 -6
f [Hz] 0 5000 10000 15000 20000
f [Hz]
Algorytm detekcji f0
Kwantyzacja 1-bitowa
0 0
-1 -1
-2 -2
-3 -3
-4 -4
-5 -5
-6 -6
0 5000 10000 0 15000 5000 10000
20000 15000 20000
f [Hz] f [Hz]
Algorytm detekcji f0
Kwantyzacja 1-bitowa
-1
1
-2
-3
-4
-5
-6
0 5000 10000 15000 20000
f [Hz]
-1
-2
-3
-4
-5
0
-6
0 5000 10000 15000 20000
0 500 1000 1500 2000 2500 3000 3500 4000
f [Hz] f [Hz]
Algorytm detekcji f0
Różniczkowanie
1
1
0.8
0.6
0.4
0.2
-0.2
-0.4
-0.6
-0.8
-1
0 0 500 1000 1500 2000 2500 3000 3500 4000 f [Hz]
0 500 1000 1500 2000 2500 3000 3500 4000
n
f [Hz] 1 100 200 300 400 500 600 700
Algorytm detekcji f0
Określenie położenia prążków
1 600
0.8
500
0.6
0.4
400
0.2
0 300
-0.2
200
-0.4
-0.6
100
-0.8
-1 0
0 500 1000 1500 2000 2500 3000 3500 4000 f [Hz] 1 2 3 4 5 6
n
1 100 200 300 400 500 600 700
Algorytm detekcji f0
Obliczanie różnic między prążkami
600 600
500 500
400 400
300 300
200 200
100 100
0 0
1 2 3 4 5 6 0 5 10 15 20 25 30
Algorytm detekcji f0
Określenie częstotliwości podstawowej
600
80
500 70
60
400
50
300
40
200 30
20
100
10
0
0 5 10 15 20 25 30 0
5 10 15 20 25 30
f0 = 450,85Hz A4+42
Podsumowanie
Detekcja częstotliwości podstawowej jest złożonym
zagadnieniem i wykorzystanie odpowiedniego algorytmu
uzależnione jest od celu przetwarzania i wymagań stawianych
danej metodzie
Przedstawione algorytmy znacząco różnią się pod względem
złożoności obliczeniowej, opóźnienia związanego z rozmiarem
przetwarzanych ramek oraz z dokładnością generowanych
wyników, która w wielu przypadkach zależna jest od rodzaju
analizowanych przebiegów oraz od poziomu szumu w nagraniu