Code covered by the BSD License  

Highlights from
Savitzky-Golay Smoothing Filter

Be the first to rate this file! 23 Downloads (last 30 days) File Size: 1.75 KB File ID: #45420
image thumbnail

Savitzky-Golay Smoothing Filter

by

 

06 Feb 2014 (Updated )

Very simple function for Savitzky-Golay Smoothing

| Watch this File

File Information
Description

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')

Required Products MATLAB
MATLAB release MATLAB 8.2 (R2013b)
Tags for This File   Please login to tag files.
Please login to add a comment or rating.
Updates
06 Feb 2014

Change MATLAB version information.

16 Jun 2014

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

Contact us