detekcja częstotliwości podstawowej
TRANSCRIPT
![Page 1: Detekcja częstotliwości podstawowej](https://reader034.vdocuments.net/reader034/viewer/2022042800/58760c8d1a28abb06f8b8181/html5/thumbnails/1.jpg)
Algorytmy detekcji częstotliwości podstawowej
![Page 2: Detekcja częstotliwości podstawowej](https://reader034.vdocuments.net/reader034/viewer/2022042800/58760c8d1a28abb06f8b8181/html5/thumbnails/2.jpg)
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
![Page 3: Detekcja częstotliwości podstawowej](https://reader034.vdocuments.net/reader034/viewer/2022042800/58760c8d1a28abb06f8b8181/html5/thumbnails/3.jpg)
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.
![Page 4: Detekcja częstotliwości podstawowej](https://reader034.vdocuments.net/reader034/viewer/2022042800/58760c8d1a28abb06f8b8181/html5/thumbnails/4.jpg)
Częstotliwość podstawowa
Postać czasowa
Widmo
0 2 4 6 8 10 12 14 16 18 20-0.04
-0.03
-0.02
-0.01
0
0.01
0.02
0.03
0.04
0.05
t [ms]
y(t)
T0
500 1000 1500 2000 2500 3000 3500 4000 4500 5000
10-6
10-4
10-2
f [Hz]
P(f)
f0
f0
f0[Hz]*T0[s]=1
f0[Hz]=f0[k]*fs[Hz]/N
(k – indeks DFT, N – długość DFT)
T0[s]=T0[smpl]/fs[Hz]
![Page 5: Detekcja częstotliwości podstawowej](https://reader034.vdocuments.net/reader034/viewer/2022042800/58760c8d1a28abb06f8b8181/html5/thumbnails/5.jpg)
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ń
![Page 6: Detekcja częstotliwości podstawowej](https://reader034.vdocuments.net/reader034/viewer/2022042800/58760c8d1a28abb06f8b8181/html5/thumbnails/6.jpg)
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
![Page 7: Detekcja częstotliwości podstawowej](https://reader034.vdocuments.net/reader034/viewer/2022042800/58760c8d1a28abb06f8b8181/html5/thumbnails/7.jpg)
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 -0.2
-0.15
-0.1
-0.05
0
0.05
0.1
0.15
0.2
0.25
t [s]
am
plit
uda
Zasady wyboru ramki sygnału do analizy
![Page 8: Detekcja częstotliwości podstawowej](https://reader034.vdocuments.net/reader034/viewer/2022042800/58760c8d1a28abb06f8b8181/html5/thumbnails/8.jpg)
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 oktawowe
![Page 9: Detekcja częstotliwości podstawowej](https://reader034.vdocuments.net/reader034/viewer/2022042800/58760c8d1a28abb06f8b8181/html5/thumbnails/9.jpg)
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
![Page 10: Detekcja częstotliwości podstawowej](https://reader034.vdocuments.net/reader034/viewer/2022042800/58760c8d1a28abb06f8b8181/html5/thumbnails/10.jpg)
Błędy dokładnej estymacji
![Page 11: Detekcja częstotliwości podstawowej](https://reader034.vdocuments.net/reader034/viewer/2022042800/58760c8d1a28abb06f8b8181/html5/thumbnails/11.jpg)
Błędy dokładnej estymacji
![Page 12: Detekcja częstotliwości podstawowej](https://reader034.vdocuments.net/reader034/viewer/2022042800/58760c8d1a28abb06f8b8181/html5/thumbnails/12.jpg)
Błędy dokładnej estymacji
![Page 13: Detekcja częstotliwości podstawowej](https://reader034.vdocuments.net/reader034/viewer/2022042800/58760c8d1a28abb06f8b8181/html5/thumbnails/13.jpg)
Błędy dokładnej estymacji
![Page 14: Detekcja częstotliwości podstawowej](https://reader034.vdocuments.net/reader034/viewer/2022042800/58760c8d1a28abb06f8b8181/html5/thumbnails/14.jpg)
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
![Page 15: Detekcja częstotliwości podstawowej](https://reader034.vdocuments.net/reader034/viewer/2022042800/58760c8d1a28abb06f8b8181/html5/thumbnails/15.jpg)
c[n]
n
Środek ciężkości
prążka
Maksimum
prążka
Fragment przebiegu czasowego
Błędy dokładnej estymacji
![Page 16: Detekcja częstotliwości podstawowej](https://reader034.vdocuments.net/reader034/viewer/2022042800/58760c8d1a28abb06f8b8181/html5/thumbnails/16.jpg)
Próbki reprezentujące
pik widma
Estymowana współrzędna
maksimum piku
Współrzędna maksimum piku
Fragment widma sygnału
Błędy dokładnej estymacji
![Page 17: Detekcja częstotliwości podstawowej](https://reader034.vdocuments.net/reader034/viewer/2022042800/58760c8d1a28abb06f8b8181/html5/thumbnails/17.jpg)
Podział metod detekcji f0
Metody czasowe, analizujące bezpośrednio postać czasową
sygnału
Metody widmowe, wykorzystujące operacje w dziedzinie
częstotliwości
![Page 18: Detekcja częstotliwości podstawowej](https://reader034.vdocuments.net/reader034/viewer/2022042800/58760c8d1a28abb06f8b8181/html5/thumbnails/18.jpg)
Metody czasowe detekcji f0
Najpopularniejsze algorytmy działające w oparciu o reprezentację
czasową sygnału to:
Analiza sygnału autokorelacji,
Analiza sygnału wygenerowanego przy pomocy metody AMDF
(ang. Average Magnitude Difference Function)
Wykorzystanie powyższych metod dla liniowo i nieliniowo
zmodyfikowanego sygnału wejściowego
![Page 19: Detekcja częstotliwości podstawowej](https://reader034.vdocuments.net/reader034/viewer/2022042800/58760c8d1a28abb06f8b8181/html5/thumbnails/19.jpg)
Metody czasowe detekcji f0
Analiza funkcji autokorelacji
Funkcja autokorelacji sygnału dyskretnego:
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.
Bardzo dobra rozdzielczość.
Możliwe błędy oktawowe, metoda mało odporna na szum i
zakłócenia
Trudności w analizie sygnału pozbawionego pierwszej
harmonicznej
m
nmxmxnr ][
![Page 20: Detekcja częstotliwości podstawowej](https://reader034.vdocuments.net/reader034/viewer/2022042800/58760c8d1a28abb06f8b8181/html5/thumbnails/20.jpg)
Metody czasowe detekcji f0
Analiza funkcji autokorelacji
Funkcja autokorelacji sygnału dyskretnego:
m
nmxmxnr ][
Przydatne funkcje Matlaba
y=x(K:L); %Pobieranie wycinka sygnału x (od próbki K do L)
xs=xcorr(s); % obliczanie sygnału autokorelacji sygnału s
xs2=xs(length(s):end); % Pobieranie połowy sygnału autokorelacji
xFFTxFFTIFFTr
Alternatywny algorytm
zwiększyć dwukrotnie długość sygnału x poprzez uzupełnienie zerami
![Page 21: Detekcja częstotliwości podstawowej](https://reader034.vdocuments.net/reader034/viewer/2022042800/58760c8d1a28abb06f8b8181/html5/thumbnails/21.jpg)
Analiza funkcji autokorelacji
![Page 22: Detekcja częstotliwości podstawowej](https://reader034.vdocuments.net/reader034/viewer/2022042800/58760c8d1a28abb06f8b8181/html5/thumbnails/22.jpg)
Analiza funkcji autokorelacji
![Page 23: Detekcja częstotliwości podstawowej](https://reader034.vdocuments.net/reader034/viewer/2022042800/58760c8d1a28abb06f8b8181/html5/thumbnails/23.jpg)
Analiza funkcji autokorelacji
![Page 24: Detekcja częstotliwości podstawowej](https://reader034.vdocuments.net/reader034/viewer/2022042800/58760c8d1a28abb06f8b8181/html5/thumbnails/24.jpg)
Metody czasowe detekcji f0
Metoda AMDF (Average Magnitude Differential
Function)
polega na badaniu relacji między sygnałem oryginalnym i
opóźnionym
Częstotliwość podstawową sygnału określone jest przez
położenie pierwszego minimum lokalnego funkcji AMDF
(dla n 0). Bardzo mała złożoność obliczeniowa, jednak
pojawiają się błędy w przypadku, gdy okres sygnału nie jest
całkowitą wielokrotnością okresu próbkowania.
1 ,1
knmxmxnAMDFM
m
k
![Page 25: Detekcja częstotliwości podstawowej](https://reader034.vdocuments.net/reader034/viewer/2022042800/58760c8d1a28abb06f8b8181/html5/thumbnails/25.jpg)
Metody czasowe detekcji f0
Metoda AMDF (Average Magnitude Differential
Function)
polega na badaniu relacji między sygnałem oryginalnym i
opóźnionym
1 ,1
knmxmxnAMDFM
m
k
Przydatne funkcje Matlaba
z=x-y; % Odejmowanie (próbka, po próbce) sygnałów
z=sum(abs(x-y)); % Suma wartości bezwzględnych różnicy sygnałów
z=x.*y; % Mnożenie próbka po próbce sygnałów
z=x*y; % Mnożenie sygnałów (wektorów)
![Page 26: Detekcja częstotliwości podstawowej](https://reader034.vdocuments.net/reader034/viewer/2022042800/58760c8d1a28abb06f8b8181/html5/thumbnails/26.jpg)
Aby zwiększyć energię poszczególnych harmonicznych sygnału
trafiającego do detektora częstotliwości podstawowej i tym samym
poprawić skuteczność działania algorytmu detekcji (w kontekście
minimalizacji błędów oktawowych) często dokonuje się liniowych
(filtracja dolno- i górno-przepustowa, splatanie sąsiednich ramek,
itp.) bądź nieliniowych (podnoszenie próbek sygnału do potęgi,
generowanie przebiegów fazowych) operacji na sygnale
Liniowe i nieliniowe przekształcenia sygnału
![Page 27: Detekcja częstotliwości podstawowej](https://reader034.vdocuments.net/reader034/viewer/2022042800/58760c8d1a28abb06f8b8181/html5/thumbnails/27.jpg)
Inne metody czasowe
Metody progowe – polegają na analizie przejść przebiegu
czasowego przez wybraną wartość progową. Wyróżnia się:
Analizę przejść przez zero ZXABE (ang. zero crossing analysis
basic extractor)
Analizę przejść przez wartość progową TABE (ang. threshold
analysis basic extractor)
Zaletą metod progowych jest możliwość działania niemal w czasie
rzeczywistym (z minimalnym opóźnieniem), ponieważ nie
wymagają pełnego zestawu danych. Może to jednak skutkować
błędami detekcji.
Metody posiadają bardzo dobrą rozdzielczość, lecz są mało
odporne na addytywny szum zakłócający.
![Page 28: Detekcja częstotliwości podstawowej](https://reader034.vdocuments.net/reader034/viewer/2022042800/58760c8d1a28abb06f8b8181/html5/thumbnails/28.jpg)
Algorytmy bazujące na reprezentacji widmowej sygnału oraz
algorytm pochodne, bazujące na przekształconej reprezentacji
widmowej (cepstrum, autokorelacja zlogarytmowanego widma)
opierają swoje działanie na detekcji pików reprezentujących
składowe harmoniczne sygnału.
Przydatne funkcje Matlaba
[v, ind]=max(s); % Wartość maksymalna i jej indeks (sygnału s)
y=filter(ones(1,K)/K, 1,s); % średnia ruchoma rzędu K sygnału s
y=fft(s); % obliczanie widma zespolonego
y2=abs(y); % obliczanie wartości bezwzględnej sygnału zespolonego y
y3=log10(y2); % obliczanie logarytmu dla wszystkich próbek sygnału y2
plot(20*log10(abs(fft(s)))); % rysowanie widma mocy sygnału s
Algorytmy detekcji operujące w dziedzinie widma
![Page 29: Detekcja częstotliwości podstawowej](https://reader034.vdocuments.net/reader034/viewer/2022042800/58760c8d1a28abb06f8b8181/html5/thumbnails/29.jpg)
Na podstawie odległości pomiędzy składowymi harmonicznymi
widma sygnału można określić częstotliwość podstawową sygnału
Analiza położenia składowych harmonicznych
0 2 4 6 8 10
-120
-100
-80
-60
-40
-20
0
Widmo amplitudowe
początek ramki: 6656 (0.151s) długość: 8192 (0.186s)
f [kHz]
am
plitu
da
[d
B]
![Page 30: Detekcja częstotliwości podstawowej](https://reader034.vdocuments.net/reader034/viewer/2022042800/58760c8d1a28abb06f8b8181/html5/thumbnails/30.jpg)
Metoda cepstralna
Metoda cepstralna
Obliczana odwrotna transformata Fouriera logarytmu widma
amplitudowego analizowanej ramki sygnału, wg wzoru:
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
m
n
nrm
nrXC
1
cosln
![Page 31: Detekcja częstotliwości podstawowej](https://reader034.vdocuments.net/reader034/viewer/2022042800/58760c8d1a28abb06f8b8181/html5/thumbnails/31.jpg)
Metoda cepstralna
Metoda cepstralna
Obliczana odwrotna transformata Fouriera logarytmu widma
amplitudowego analizowanej ramki sygnału, wg wzoru:
m
n
nrm
nrXC
1
cosln
Przydatne funkcje Matlaba
z_re=real(z); % Część rzeczywista sygnału zespolonego
z_im=imag(z); % Część urojona sygnału zespolonego
z_an=phase(z); % Faza sygnału zespolonego
x_d=cceps(x); % Obliczanie cepstrum zespolonego sygnału x
x_d=rceps(x); % Obliczanie cepstrum rzeczywistego sygnału x
![Page 32: Detekcja częstotliwości podstawowej](https://reader034.vdocuments.net/reader034/viewer/2022042800/58760c8d1a28abb06f8b8181/html5/thumbnails/32.jpg)
Metody widmowe detekcji f0
Metoda cepstralna
![Page 33: Detekcja częstotliwości podstawowej](https://reader034.vdocuments.net/reader034/viewer/2022042800/58760c8d1a28abb06f8b8181/html5/thumbnails/33.jpg)
Metoda cepstralna
![Page 34: Detekcja częstotliwości podstawowej](https://reader034.vdocuments.net/reader034/viewer/2022042800/58760c8d1a28abb06f8b8181/html5/thumbnails/34.jpg)
Metoda cepstralna
![Page 35: Detekcja częstotliwości podstawowej](https://reader034.vdocuments.net/reader034/viewer/2022042800/58760c8d1a28abb06f8b8181/html5/thumbnails/35.jpg)
Metoda cepstralna
![Page 36: Detekcja częstotliwości podstawowej](https://reader034.vdocuments.net/reader034/viewer/2022042800/58760c8d1a28abb06f8b8181/html5/thumbnails/36.jpg)
Metoda ACOLS (ang. Autocorrelation Of Log Spectrum) oparta jest
na analizie sygnału autokorelacji obliczonego na podstawie
zlogarytmowanego widma sygnału wejściowego, przy czym
współrzędna piku reprezentującego częstotliwość podstawową
zlokalizowana jest w dziedzinie częstotliwości.
Matlab
ACOLS=xcorr(log(abs(fft(s))));
Analiza ACOLS
![Page 37: Detekcja częstotliwości podstawowej](https://reader034.vdocuments.net/reader034/viewer/2022042800/58760c8d1a28abb06f8b8181/html5/thumbnails/37.jpg)
Analiza ACOLS
![Page 38: Detekcja częstotliwości podstawowej](https://reader034.vdocuments.net/reader034/viewer/2022042800/58760c8d1a28abb06f8b8181/html5/thumbnails/38.jpg)
Analiza ACOLS
![Page 39: Detekcja częstotliwości podstawowej](https://reader034.vdocuments.net/reader034/viewer/2022042800/58760c8d1a28abb06f8b8181/html5/thumbnails/39.jpg)
Analiza ACOLS
![Page 40: Detekcja częstotliwości podstawowej](https://reader034.vdocuments.net/reader034/viewer/2022042800/58760c8d1a28abb06f8b8181/html5/thumbnails/40.jpg)
Analiza ACOLS
![Page 41: Detekcja częstotliwości podstawowej](https://reader034.vdocuments.net/reader034/viewer/2022042800/58760c8d1a28abb06f8b8181/html5/thumbnails/41.jpg)
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
Przydatne funkcje Matlaba
S = specgram(s, nFFT, Fs, winType, nOVERLAP); % Obliczanie sonogramu
Algorytmy detekcji operujące w przestrzeni czas-częstotliwość
![Page 42: Detekcja częstotliwości podstawowej](https://reader034.vdocuments.net/reader034/viewer/2022042800/58760c8d1a28abb06f8b8181/html5/thumbnails/42.jpg)
Algorytmy detekcji operujące w przestrzeni czas-częstotliwość
![Page 43: Detekcja częstotliwości podstawowej](https://reader034.vdocuments.net/reader034/viewer/2022042800/58760c8d1a28abb06f8b8181/html5/thumbnails/43.jpg)
Algorytmy detekcji operujące w przestrzeni czas-częstotliwość
![Page 44: Detekcja częstotliwości podstawowej](https://reader034.vdocuments.net/reader034/viewer/2022042800/58760c8d1a28abb06f8b8181/html5/thumbnails/44.jpg)
Algorytmy detekcji operujące w przestrzeni czas-częstotliwość
![Page 45: Detekcja częstotliwości podstawowej](https://reader034.vdocuments.net/reader034/viewer/2022042800/58760c8d1a28abb06f8b8181/html5/thumbnails/45.jpg)
Inne metody widmowe
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.
![Page 46: Detekcja częstotliwości podstawowej](https://reader034.vdocuments.net/reader034/viewer/2022042800/58760c8d1a28abb06f8b8181/html5/thumbnails/46.jpg)
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
![Page 47: Detekcja częstotliwości podstawowej](https://reader034.vdocuments.net/reader034/viewer/2022042800/58760c8d1a28abb06f8b8181/html5/thumbnails/47.jpg)
Inne metody widmowe
Kombinacja transformacji Fouriera
Obliczana jest transformata Fouriera
widma amplitudowego sygnału.
Częstotliwość podstawowa odpowiada
odległości między prążkami w widmie
sygnału, a tym samym największemu
maksimum lokalnemu w drugim widmie.
Algorytm ten jest skuteczny w
przypadku, gdy w widmie sygnału brak
jest prążka o częstotliwości
odpowiadającej częstotliwości
podstawowej.
![Page 48: Detekcja częstotliwości podstawowej](https://reader034.vdocuments.net/reader034/viewer/2022042800/58760c8d1a28abb06f8b8181/html5/thumbnails/48.jpg)
Przykładowy algorytm detekcji f0
Wybór ramki sygnału
Obliczanie widma FFT
Filtracja dolnoprzepustowa
Logarytmowanie widma
Usuwanie trendu
Kwantyzacja 1-bitowa
Różniczkowanie
Określenie położenia prążków
Obliczanie różnic między prążkami
Wyznaczanie zbioru najmniejszych różnic
Obliczanie wartości średniej zbioru
Określenie częstotliwości podstawowej
Przygotowanie widma Wyznaczenie częstotliwości podstawowej
Wyznaczenie prążków
Próg P1
Próg P2
Sygnał dźwiękowy
f0
![Page 49: Detekcja częstotliwości podstawowej](https://reader034.vdocuments.net/reader034/viewer/2022042800/58760c8d1a28abb06f8b8181/html5/thumbnails/49.jpg)
Algorytm detekcji f0 Rożek angielski, dźwięk A4, mezzoforte
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8-0.2
-0.15
-0.1
-0.05
0
0.05
0.1
0.15
0.2
0.25
t [s]
x(t
)
0.14 0.16 0.18 0.2 0.22 0.24 0.26 0.28 0.3 0.32
-0.15
-0.1
-0.05
0
0.05
0.1
0.15
0.2
t [s]
x(t
)
![Page 50: Detekcja częstotliwości podstawowej](https://reader034.vdocuments.net/reader034/viewer/2022042800/58760c8d1a28abb06f8b8181/html5/thumbnails/50.jpg)
Algorytm detekcji f0 Filtracja dolnoprzepustowa
0 5000 10000 15000 20000-6
-5
-4
-3
-2
-1
0
f [Hz]
0 5000 10000 15000 20000 -6
-5
-4
-3
-2
-1
0
f [Hz]
![Page 51: Detekcja częstotliwości podstawowej](https://reader034.vdocuments.net/reader034/viewer/2022042800/58760c8d1a28abb06f8b8181/html5/thumbnails/51.jpg)
Algorytm detekcji f0 Filtracja dolnoprzepustowa
0 200 400 600 800 1000 1200 1400 1600 1800 2000-6
-5
-4
-3
-2
-1
0
f [Hz]0 200 400 600 800 1000 1200 1400 1600 1800 2000
-6
-5
-4
-3
-2
-1
0
f [Hz]
![Page 52: Detekcja częstotliwości podstawowej](https://reader034.vdocuments.net/reader034/viewer/2022042800/58760c8d1a28abb06f8b8181/html5/thumbnails/52.jpg)
Algorytm detekcji f0 Usuwanie trendu
0 5000 10000 15000 20000 -6
-5
-4
-3
-2
-1
0
f [Hz]0 5000 10000 15000 20000
-6
-5
-4
-3
-2
-1
0
f [Hz]
![Page 53: Detekcja częstotliwości podstawowej](https://reader034.vdocuments.net/reader034/viewer/2022042800/58760c8d1a28abb06f8b8181/html5/thumbnails/53.jpg)
Algorytm detekcji f0 Usuwanie trendu
0 5000 10000 15000 20000 -6
-5
-4
-3
-2
-1
0
f [Hz] 0 5000 10000 15000 20000-6
-5
-4
-3
-2
-1
0
f [Hz]
![Page 54: Detekcja częstotliwości podstawowej](https://reader034.vdocuments.net/reader034/viewer/2022042800/58760c8d1a28abb06f8b8181/html5/thumbnails/54.jpg)
Algorytm detekcji f0 Kwantyzacja 1-bitowa
0 5000 10000 15000 20000-6
-5
-4
-3
-2
-1
0
f [Hz]
0 5000 10000 15000 20000-6
-5
-4
-3
-2
-1
0
f [Hz]
![Page 55: Detekcja częstotliwości podstawowej](https://reader034.vdocuments.net/reader034/viewer/2022042800/58760c8d1a28abb06f8b8181/html5/thumbnails/55.jpg)
Algorytm detekcji f0 Kwantyzacja 1-bitowa
0 5000 10000 15000 20000-6
-5
-4
-3
-2
-1
0
f [Hz]
0 5000 10000 15000 20000-6
-5
-4
-3
-2
-1
0
f [Hz]
0 500 1000 1500 2000 2500 3000 3500 40000
1
f [Hz]
![Page 56: Detekcja częstotliwości podstawowej](https://reader034.vdocuments.net/reader034/viewer/2022042800/58760c8d1a28abb06f8b8181/html5/thumbnails/56.jpg)
Algorytm detekcji f0 Różniczkowanie
0 500 1000 1500 2000 2500 3000 3500 40000
1
f [Hz]
0 500 1000 1500 2000 2500 3000 3500 4000-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
1 100 200 300 400 500 600 700
f [Hz]
n
![Page 57: Detekcja częstotliwości podstawowej](https://reader034.vdocuments.net/reader034/viewer/2022042800/58760c8d1a28abb06f8b8181/html5/thumbnails/57.jpg)
Algorytm detekcji f0 Określenie położenia prążków
0 500 1000 1500 2000 2500 3000 3500 4000-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
1 100 200 300 400 500 600 700
f [Hz]
n
1 2 3 4 5 60
100
200
300
400
500
600
![Page 58: Detekcja częstotliwości podstawowej](https://reader034.vdocuments.net/reader034/viewer/2022042800/58760c8d1a28abb06f8b8181/html5/thumbnails/58.jpg)
Algorytm detekcji f0 Obliczanie różnic między prążkami
1 2 3 4 5 60
100
200
300
400
500
600
0 5 10 15 20 25 300
100
200
300
400
500
600
![Page 59: Detekcja częstotliwości podstawowej](https://reader034.vdocuments.net/reader034/viewer/2022042800/58760c8d1a28abb06f8b8181/html5/thumbnails/59.jpg)
Algorytm detekcji f0 Określenie częstotliwości podstawowej
0 5 10 15 20 25 300
100
200
300
400
500
600
5 10 15 20 25 300
10
20
30
40
50
60
70
80
f0 = 450,85Hz A4+42
![Page 60: Detekcja częstotliwości podstawowej](https://reader034.vdocuments.net/reader034/viewer/2022042800/58760c8d1a28abb06f8b8181/html5/thumbnails/60.jpg)
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