Efekty uśredniania
Zastosowanie filtra średniej ruchomej wygładzi nieregularności w sygnale. Szum staje się E / N, gdzie N jest długością filtra średniej ruchomej. Efektem ubocznym zastosowania MA jest to, że piki sygnału stają się szersze i płytsze.
Ponadto zawartość częstotliwości sygnału ulegnie zmianie. Filtr średniej ruchomej w dziedzinie czasu jest tym samym, co splatanie sygnału w dziedzinie częstotliwości za pomocą funkcji sinus, wszystko zostaje rozmazane.
Algorytm detekcji pików Detekcja pików
jest częstym problemem w problemach technicznych 9/10. (nie do końca, ale ton zależy od nich)
Zazwyczaj tak się dzieje:
Próg progowy
1) Look for all peaks in your signal. (i.e., a point that is larger than the two
adjacent points
2) take this list of points and for each one of them compute:
med_threshold = median(Peak,Width) + constantThresholmedian where median is the
median value of the data centered at "Peak" with Width being the number of
points to look at.
a) The Width(usually written as Lambda in literature) and constantThreshold
(usually written as C) are determined by trial and error and using the ROC
curve (Acronym below)
3) if the peak's magnitude is above this threshold accept it as a true peak.
Else: Discard it, its a false peak
4) Generate a Receiver Operating Characteristic Curve(ROC) to how well the algorithm
is performing.
Oto przykład:
suppose we have the signal X = [ 0 0 0 0 1 3 **9** 2 1 1 **2** 1 1 ]
1) 9 and 2 are both potential peaks
2) Lets use a window of 5 and a threshold =2
so at 9 we have [1 3 9 1 2] -> [1 1 2 3 9] so Median(9,5) = 2
9 > 2 +2, therefor its a peak
Lets take a look at 2: [ 1 1 2 1 1] -> [1 1 1 1 2 ] Median(2,5) = 1
2 < 1+2, therefor it is NOT a peak.
Określanie częstotliwości
Teraz, gdy skutecznie znalazłeś lokalizację szczytu w czasie, spróbuj znaleźć ich częstotliwość:
1) Use the locations of the peaks to generate a pulse train
a) this means create sum(Dirac_delta[t-L(n)]) where L(n) is the nth time that
you've localized through median thresholding
2) Apply FFT Algorithm
3) Look for largest peak.
Alternatywne oszacowanie częstotliwości
1) Think of this like a beat in a piece of music (I learned about thresholding by
researching Onset Detection.
2) Compute the average time distance between detected peaks.
3) now call your results BPM or PPM (pulses per minute)
Dodatkowe kierunki badań
Chociaż sygnał szczytowy może być satysfakcjonujący, istnieją algorytmy, które są stosowane do całej innej bestii problemów zwanych wykrywaniem Onset.
Wykrywanie początku jest dużym obszarem badań związanych z wyszukiwaniem informacji muzycznych. Służy do określania, kiedy nuta jest odtwarzana.
Jeśli myślisz o sygnale głowicy taśmy jako silnie próbkowanym sygnale, możesz zastosować wiele algorytmów, które można znaleźć w tym artykule:
http://www.elec.qmul.ac.uk/people/juan/Documents/Bello-TSAP-2005.pdf