Robust least squares in Octave

Viewed 206

I am programming the classical Prony's method (or sometimes Prony's analysis) using Octave. The script works pretty fine on a test signal such as:

t = 1:600;
sig = exp(-0.01*t).*cos(0.1*t);

but totally collapses when even a small amount of noise is added:

sig = sig + 0.001*rand(size(sig));

The issue is computing the overdetermined set of equations using pinv when the linear prediction is bulit (see the link above). I need something more robust and less sensitive to outliers. Sadly, no function in the Octave core helped me so far. I have tried ols and lscov but they don't do the trick.

Any hints, please?

Note: I am aware that the classic Prony is very problematic just because of this issues and there are modified algorithms (such as this one). I just feel that I haven't done the maximum for the classic method to work. Using a better solver it should persist this kind of noise.

1 Answers
Related