# How to optimize noise reduction to perform burst detection and detect oscillations?

Let be $$\mu_k$$ some univariate signals of time $$t$$.

I am performing burst detection to detect oscillations in any signal $$\mu_k$$. I tested the following methods :

1. Perform noise reduction on $$\mu_k$$ using a filter $$F$$ and compute the residuals $$r_k = \mu_k - F\circ\mu_k$$. Then perform burst detection on all $$r_k$$.

2. Perform noise reduction on $$\mu_k$$ using a filter $$F$$. Then perform burst detection on all $$F\circ\mu_k$$.

3. Perform burst detection on all $$\mu_k$$.

Where $$F$$ is a simple moving average.

It appears that for a representative sample of the ($$\mu_k$$), the best method to detect oscillations is the No. 1. I do think that using the residuals enables to work on a stationary signal/time series, and avoid detecting normal signal variation as a burst.

To perform burst detection, I am using Python and the latest version of the library neurodsp.

Now, I would like to optimize the method No. 1. In my opinion, the better are the residuals and the better is the detection. Here, the residuals should be stationary, have a zero-mean. To enable this, I think that $$F\circ\mu_k$$ should keep the trend of $$\mu_k$$ and not interpolate the oscillations or any noise.

I would consider using a better filter than a simple moving average. I did some research and I found out the Savitsky Golay Filter.

Now my questions are :

• Do you think I am on a good enough direction ? If not, whare your suggestion ?
• How would you compute a good model of $$\mu_k$$ ?

I would add that I am not an expert in signal processing. But, what I've read in the field of oscillations detection let me think that using burst detection can be a good start.

• you will need to tell us what you mean with "optimal", because we can't know. My "optimal" might be your "very far from good", and vice versa! What would make a solution good or bad? Jun 6, 2022 at 10:08
• I am not an expert. In fact, I ask this question to find out what signal processing engineers do to parameterize a moving average. What criteria are used most often? In my opinion, MA can be interpreted as a filter and as a result, we are able to define some criterions (numerical stability, cutting frequency, ...). But I am not able to find them explicitly. Jun 6, 2022 at 10:58
• But "most often" is honestly completely irrelevant to your use case. This isn't choosing what to eat at a restaurant! We can actually help you get the best possible, i.e., optimal, parametrization, but we'd need to know what you want to do with the denoised signal afterwards, and what the constraints of your processing are - for example, where does the rather restricting choice of a moving average come from? What's the maximum delay you can accept? Is there some information about the noise and the signal's autocorrelation/spectra? Jun 6, 2022 at 12:14
• Optimal in terms of suppressing any uncorrelated zero-mean noise would be $n \to \infty$, but that is not anything that helps in any way finding a practical solution! Jun 6, 2022 at 12:22
• I am performing burst detection with Python. I noticed that performing burst detection on the residuals between the raw signal and the denoised one has better results than performing burst detection on the raw signal directly. This observation is true for a representative sample of the signals I am processing. But, I want to optimize the residuals, i.e. optimize the noise cancellation, in order to build a good bursting detection algorithm. The filter should be optimized to remove noise but let enough information to be able to perform burst detection accurately. Jun 6, 2022 at 13:10