I need an algorithm that will detect the correct peak location in a "signal" (actually a series of data points). The signal is generated by a machine. The signal is nothing similar to an electrical signal (audio/radio frequency).
The data points could look like this:
[1, 2, 1, 3, 4, 5, 4, 3, 2, 1, 13, 14, 15, 18, 23, 19, 17, 15, 15, 15, 14, 11, 9, 4, 1, 1, 2, 2, 1, 2]
I think we could imagine that the signal was accidentally passed through a low-pass filter, and now we want to restore it.
NOTES:
After a peak, if the signal is not coming down fast enough we can consider that there are multiple peaks (you can best see that in the 'red' signal at the end of the series).
One advantage on my side is that the whole data series is available (save on disk). So, the signal does not have to be processed in real time.