Efeitos da média
O uso de um filtro de média móvel suavizará as irregularidades no sinal. O ruído se torna E / N, onde N é o comprimento do filtro da média móvel. O efeito colateral do uso de um MA é que os picos de sinal se tornam mais amplos e rasos.
Além disso, o conteúdo da frequência do sinal mudará. Um filtro de média móvel no domínio do tempo é o mesmo que convencer o sinal do domínio da frequência por uma função sinc, tudo fica borrado.
Algoritmo de
detecção de pico A detecção de pico é um problema comum em 9/10 de problemas de engenharia. (na verdade não, mas MUITO depende deles)
Normalmente é isso que é feito:
Limiar médio
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.
Aqui está um exemplo:
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.
Determinando a frequência
Agora que você encontrou efetivamente a localização da hora do pico, tente encontrar a frequência deles:
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.
Estimativa de frequência alternativa
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)
Avenidas adicionais de pesquisa
Embora você possa estar satisfeito com o sinal de pico como está, existem algoritmos que são aplicados a uma grande variedade de problemas chamados Detecção de Onset.
A Detecção de Onset é uma grande área na Pesquisa de Recuperação de Informações Musicais. É usado para determinar quando uma nota está sendo tocada.
Se você pensa no sinal da cabeça da fita como um sinal altamente amostrado, pode aplicar muitos dos algoritmos encontrados neste documento:
http://www.elec.qmul.ac.uk/people/juan/Documents/Bello-TSAP-2005.pdf