[Ajuda] Ler pico de tensão e contar tempo de pico

Qual a melhor maneira de implementar uma função para contar o tempo de duração deste sinal,
do momento que há o primeiro pico, ao momento que começa a baixar (cerca de 5s no caso)?

A precisão/resolução pode ser de cerca de 100ms.

Eu implementei uma função baseada na média das 3 últimas leituras + uma,
quando a diferença entre a media e a última é maior que x, ele entende que a tensão começou a cair.

Funcionou bem em testes, porém ao montar no circuito completo aparecem muitos transientes (como podem ver),
e precisarei conviver com eles =/

Alguma ideia?

Aumentar o número de amostragens da média? Fazendo uma pesagem para que as mais recentes tenham um peso maior que as mais antigas.

Ou então, aumentar o período de amostragem...

Podes também arranjar um filtro passa-baixo (encontrei isto na net http://jeroendoggen.github.com/Arduino-signal-filtering-library/) para tentar limpar o ruído de alta frequência.

Interessante esta lib, também é baseada nas últimas leituras e atual, mas o calcúlo é bem mais complexo que a média.
Acho que usando esta lib é possível aumentar a amostragem sem comprometer a simplicidade do algoritmo.
Se não funcionar acho que o jeito vai ser apelar por um low pass via hardware mesmo...

PS: não tenho ideia porque o tópico saiu com este user, fui eu quem postou e tenho certeza que fiz login manualmente antes de postar oO