# Signal enhancing algorithm (deconvolution??)

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.

• Welcome to SE. DSP. Apparently your guess "as a signal that was accidentally passed through a low-pass filter" sounds sound. You might need deconvolution or restoration. On your last picture, how do you know that your right-most red bump should be split in 3, and the center-left black one only in one peak? Jul 15 '16 at 11:55
• @LaurentDuval "...'sounds sound." Lovely phrase! Jul 15 '16 at 13:00
• @LaurentDuval-It is the first time when I have to do this kind of processing, so, can you point out how to implement such 'restoration' from programmatically point of view? Can you Please name a more specific deconvolution/restoration algorithm? I have tried some searches like "data point signal deconvolution library" but it only takes me to electronics forums and/or to advanced scientific articles. Jul 15 '16 at 13:39
• @LaurentDuval-A good 'peak' cannot be that long (as shown in the top image). When the signal is good (see the bottom image) a peak is only few 'pixels' (data points) wide. So, when the peak is too long, it must be more than one peak there (or the signal is really really really f*****). But in most cases, the supposition is good. So, any small un-uniformity must be the 'hidden' peak. Jul 15 '16 at 13:44
• @LaurentDuval-If the hidden peaks are a problem and are lost during deconvolution, I could try to un-hide them first, then pass the signal through the deconvolution algorithm. For example I could search the hidden peaks and bump the signal height with 50 percent. Jul 15 '16 at 13:49