Эффекты усреднения
Использование фильтра скользящего среднего сгладит неровности сигнала. Шум становится E / N, где N - длина фильтра скользящего среднего. Побочным эффектом использования МА является то, что пики сигнала становятся шире и мельче.
Кроме того, изменится частотный состав сигнала. Фильтр скользящего среднего во временной области - это то же самое, что свертывание сигнала в частотной области с помощью функции sinc - все становится размытым.
Алгоритм
обнаружения пиков Обнаружение пиков является распространенной проблемой в технических проблемах 9/10. (не совсем, но от них зависит ТОННА)
Обычно это то, что делается:
Срединный порог
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.
Вот пример:
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.
Определение частоты
Теперь, когда вы эффективно нашли временную локализацию пиков, попробуйте найти их частоту:
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.
Оценка альтернативной частоты
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)
Дополнительные направления исследований
Несмотря на то, что вы можете быть удовлетворены острым сигналом, как есть, есть алгоритмы, которые применяются к целому ряду проблем, называемых обнаружением начала.
Обнаружение начала является большой областью в исследованиях поиска музыкальной информации. Используется для определения времени воспроизведения ноты.
Если вы считаете, что ваш сигнал на головке магнитной ленты является сигналом с высокой частотой дискретизации, вы можете применить многие из алгоритмов, которые вы найдете в этой статье:
http://www.elec.qmul.ac.uk/people/juan/Documents/Bello-TSAP-2005.pdf