Savitzky-Golay Smoothing Filter
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')
引用格式
Jason Nicholson (2025). Savitzky-Golay Smoothing Filter (https://www.mathworks.com/matlabcentral/fileexchange/45420-savitzky-golay-smoothing-filter), MATLAB Central File Exchange. 检索时间: .
MATLAB 版本兼容性
平台兼容性
Windows macOS Linux类别
- Signal Processing > Signal Processing Toolbox > Signal Generation and Preprocessing > Smoothing and Denoising >
标签
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!