• Nie Znaleziono Wyników

Algorytmy ekstrakcji częstotliwości podstawowej

N/A
N/A
Protected

Academic year: 2021

Share "Algorytmy ekstrakcji częstotliwości podstawowej"

Copied!
60
0
0

Pełen tekst

(1)

Algorytmy detekcji

(2)

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

(3)

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.

(4)

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]

(5)

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

(6)

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

(7)

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] ampl it ud a

Zasady wyboru ramki sygnału do

analizy

(8)

 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.

(9)

 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.

(10)
(11)
(12)
(13)
(14)

 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.

(15)

c[n] n Środek ciężkości prążka Maksimum prążka Fragment przebiegu czasowego

(16)

Próbki reprezentujące pik widma

Estymowana współrzędna maksimum piku

Współrzędna maksimum piku Fragment widma sygnału

(17)

Podział metod detekcji f

0

Metody czasowe, analizujące bezpośrednio postać czasową

sygnału

Metody widmowe, wykorzystujące operacje w dziedzinie

(18)

Metody czasowe detekcji f

0

 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

(19)

Metody czasowe detekcji f

0

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 n m x m x n r ][

(20)

Metody czasowe detekcji f

0

Analiza funkcji autokorelacji

Funkcja autokorelacji sygnału dyskretnego:

  

   m n m x m x n r ][

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

 

 

IFFT FFT x FFT x r

 Alternatywny algorytm

 zwiększyć dwukrotnie długość sygnału x poprzez uzupełnienie

zerami

(21)
(22)
(23)
(24)

Metody czasowe detekcji f

0

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    

k n m x m x n AMDF M m k

(25)

Metody czasowe detekcji f

0

Metoda AMDF (Average Magnitude Differential

Function)

polega na badaniu relacji między sygnałem oryginalnym i opóźnionym

 

  

, 1 1    

k n m x m x n AMDF M 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

(26)

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

(27)

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.

(28)

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

(29)

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] a mp lit u d a [d B]

(30)

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 n r m n r X C 1 cos ln

(31)

Metoda cepstralna

Metoda cepstralna

Obliczana odwrotna transformata Fouriera logarytmu widma amplitudowego analizowanej ramki sygnału, wg wzoru:

 

          m n n r m n r X C 1 cos ln

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

(32)

Metody widmowe detekcji f

0

(33)
(34)
(35)
(36)

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))));

(37)
(38)
(39)
(40)
(41)

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ść

(42)

Algorytmy detekcji operujące w

przestrzeni czas-częstotliwość

(43)

Algorytmy detekcji operujące w

przestrzeni czas-częstotliwość

(44)

Algorytmy detekcji operujące w

przestrzeni czas-częstotliwość

(45)

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.

(46)

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

(47)

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.

(48)

Przykładowy algorytm detekcji f

0

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

(49)

Algorytm detekcji f

0

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 )

(50)

Algorytm detekcji f

0

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]

(51)

Algorytm detekcji f

0

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]

(52)

Algorytm detekcji f

0

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]

(53)

Algorytm detekcji f

0

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]

(54)

Algorytm detekcji f

0

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]

(55)

Algorytm detekcji f

0

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 4000 0 1 f [Hz]

(56)

Algorytm detekcji f

0

Różniczkowanie 0 500 1000 1500 2000 2500 3000 3500 4000 0 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

(57)

Algorytm detekcji f

0

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 6 0 100 200 300 400 500 600

(58)

Algorytm detekcji f

0

Obliczanie różnic między prążkami

1 2 3 4 5 6 0 100 200 300 400 500 600 0 5 10 15 20 25 30 0 100 200 300 400 500 600

(59)

Algorytm detekcji f

0

Określenie częstotliwości podstawowej

0 5 10 15 20 25 30 0 100 200 300 400 500 600 5 10 15 20 25 30 0 10 20 30 40 50 60 70 80 f0 = 450,85Hz A4+42

(60)

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

Cytaty

Powiązane dokumenty

Zaproponowana metoda analizy sygnału EKG umożliwia klasyfikację różnych typów ewolucji serca i chorób z dużą dokładnością i dobrą swoistością, która jest

W artykule przedstawiono algorytm estymacji parametrów składowych sinusoidalnych złożonego sygnału, na podstawie ograniczonej liczby losowo pobranych próbek tego

Ponadto, porównano błąd amplitudy wynikający z zastosowania klasycznego okna Dirichleta z błędem zastosowania symetrycznego okna Dirichleta

Narysować widmo amplitudowe i fazowe oraz obliczyć moc tego sygnału.. Wskazówka: skorzystać ze

W sprawozdaniu proszę odpowie- dzieć na pytanie: dlaczego wykresy nie pokrywają się dla każdego t i?. Czy jakość wygładzania zależy od ilości elementów w

Jeżeli pasmo sygnału modulującego mieści się w zakresie , a częstotliwość fali nośnej jest równa fn, to pasmo zajmowane przez zmodulowany sygnał obejmie

Rzadziej stosowane są ekstrapolatory pierwszego (First Order Hold FOH) i wyższych rzędów.. Uruchomić skrypt c3z1.m. Zaobserwować, jaki sygnał ciągły możemy odtworzyć na

przy rozważaniu widma sygnału AM w przypadku, gdy częstotliwość modulująca jest większa od częstotliwości