I am trying to find different approaches (classic and modern) in order to find a regression function between data (in time domain) with high-frequency noise. Consider the result of this code (in Matlab):

fs = 10000;
t = -1:1/fs:1;
target = tripuls(t,50e-2);

noise = target + randn(1, length(target));

hold on

I would like to find methods that, starting from noise find a function similar to target (for convenience, I attach here an image). enter image description here

A classic solution can be to implement a low-pass filter. Did you know other (and maybe better) way to reach the expected result?


  • $\begingroup$ Are you trying to find the location of the triangular pulse, or trying to find its shape? If you know the shape and only care about the location, then matched filtering will be optimal (at least for noise from randn). $\endgroup$
    – Peter K.
    Commented Sep 20, 2017 at 16:12

1 Answer 1


There are multiple ways to recover the signal from noise. As you have suggested one such method, the low pass filtering which is a classical signal processing method.

The linear signal model that you have considered is $y[k] = f[k] + b + n[k]$, where $y[k] =$ output signal, $f[k] = $ true signal, $b=$ noise offset and $n[k] = $ zero mean additive noise

If you want to look from a data point of view the methods of interest would be

  1. Nearest Neighbor Approximation (or local average) : This method is similar to low pass filter but here you can choose a suitable window, $$\widehat{f}_{NN}[k] = \frac{1}{2L+1}\sum_{i=k-L}^{k+L} y[i] - \hat b$$ Here $\hat b$ can be obtained by an initial pilot sequence of the zero signal.

  2. Basis Representation followed by Ridge Regression : With suitable signal class assumptions you can represent $f[k] = w_1 \phi_1[k] + \ldots + w_p \phi_p[k]$ - known as the basis expansion (In the example you have described a triangular wavelet basis would work). In this setting the goal is to learn the weight parameters $w_i, \ldots, w_p$ subject to the prior knowledge on noise, that is the mean and variance of $n[k]$ is known apriori. In case the prior information are unknown you can use the method used to estimate $b$, explained in method 1. Alternatively, There is an equivalent formulation in convex optimization known as ridge regression which allows for regularization cost and no assumption on the noise parameters.

These methods work out mostly with a training dataset and hence mostly does non-linear (filtering in) signal processing.

Remark and Disclaimer : Please feel free to correct any mistakes in the arguments presented above, as I am an amateur in the area of modern methods of signal recovery.

  • 1
    $\begingroup$ I reckon method 2 is close to the matched filter approach I suggested in the comments, but it depends on how much the OP knows about the signal. $\endgroup$
    – Peter K.
    Commented Sep 20, 2017 at 16:32

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.