Savitzky-Golay Smoothing Filter

Very simple function for Savitzky-Golay Smoothing
2,1K Downloads
Aktualisiert 16. Jun 2014

Lizenz anzeigen

After looking at a lot of the Savitzky-Golay implementations on File Exchange, I could not find one as simple but as effective as this one. savGol is from the Book, "Solving Problems in Scientific Computing Using Maple and Matlab" by Walter Gander and others. Gander cites Teukolsky from Computers in Physics from 1990. Here is a link to the book website:
http://www.solvingproblems.ethz.ch/
g = savGol(f, nl, nr, M)

f: noisy data

nl: number of points to left of reference point

nr: number of points to right of reference point

M: Order of least squares polynomial

Example:
x = [0:1000-1]'/(1000-1);
signal = exp (- 100*(x - 1/5).^2) + exp (- 500*(x - 2/5).^2) + exp (-2500*(x - 3/5).^2) + exp (-12500*(x - 4/5).^2);
randn ('seed', 0);
noisySignal = signal + 0.1* randn (size (x));

smoothSignal = savGol(noisySignal, 16, 16, 4);

plot(x,noisySignal)
hold on;
plot(x, smoothSignal,'r','LineWidth',3)
legend('Noisy Signal', 'Smooth Signal')

Zitieren als

Jason Nicholson (2024). Savitzky-Golay Smoothing Filter (https://www.mathworks.com/matlabcentral/fileexchange/45420-savitzky-golay-smoothing-filter), MATLAB Central File Exchange. Abgerufen .

Kompatibilität der MATLAB-Version
Erstellt mit R2013b
Kompatibel mit allen Versionen
Plattform-Kompatibilität
Windows macOS Linux

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
Version Veröffentlicht Versionshinweise
1.2.0.0

Changed to the economy QR decomposition when calling QR. This increases speed and allows calculating more coefficients for the same amount memory.

1.1.0.0

Change MATLAB version information.

1.0.0.0