# Is there a algorithm for detecting bursts in signal?

Suppose we have a signal like that and we want to know when a burst have happened. Rigth now our approach is pretty straightforward. We measure std of signal at some time window and then with each new signal bin we measure it's difference with respect to previous and if it's much more than std, then we have found our burst. But maybe this is known problem and there is a library for that, or the way to do it more efficient.

signal time plot

• Is your threshold changing? or is it constant – andrew Mar 11 '15 at 23:59
• @andrew the threshold may be a constant, but most of the time its dynamic K * sliding std. – user1685095 Mar 12 '15 at 0:04
• @user1685095 You are probably looking for something like this: stackoverflow.com/questions/22583391/… – Jean-Paul Dec 18 '18 at 12:05

You want to build a burst detector.

First of all please notice that you can't do magic so you will always have false alarms and miss detections.

We'll suppose that you have a 1-D signal and that what you call a burst is a short peak in signal intensity, we'll also suppose that your burst is very close to 1 point in duration. If your "burst" is in fact a short deterministic signal whose shape is known, you'll want to first use a matched filter, if your burst is a short random signal whose second order moment is known, you'll want to first use a stochastic matched filter. If you are neither in these cases, you'll need to use more advanced and/or more had-hoc algorithm.

Now we have the 1 point long burst, or signal, we want to detect, it is burried in some random noise.

Usualy people go for ad hoc approach, he main one being the one you stated. A more rigorous one is to use the neyman pearson lemma, that will allow you to calculate a thresold, but you need to know both the signal and noise probability densities.

The main problem is to estimate the signal and noise pdf, or equivalently under gaussian hypothesis, their mean and covariance. The main difficulties arrising from the fact that both aren't stationary and from the presence of signal biasing your estimation of noise's pdf, mean, variance etc ..., you'll want to go for robust estimator like median and median absolute deviation.

based on your "signal time plot" Isn't it easier (and more efficient) to just say

if (A(t) > threshold)
burst_detected=true


where threshold is the horizontal line in your plot

a burst of what?? a burst of power/energy? a burst of data?

because, if it was the former, it's like ham-radio CW. if the latter, might be a template or pattern matching thing.

perhaps, if you have a good replica of a "burst", whatever the heck it is, you can use it as template to cross-correlate against, which is the same as a matched filter. maybe that's the ticket.

• It's a bursts of power actually. But since it's just a digital signal, so I thought that that doesn't matter. And no, the bursts have no template to correlate with. – user1685095 Mar 12 '15 at 5:58
• oh, but @user1685095, DSP is not about processing digital signals (specifically binary signals or logic signals). Digital Signal Processing is about processing analog signals by digital means. – robert bristow-johnson Mar 12 '15 at 6:12