Extreme Optimization™: Complexity made simple.

Math and Statistics
Libraries for .NET

  • Home
  • Features
    • Math Library
    • Vector and Matrix Library
    • Statistics Library
    • Performance
    • Usability
  • Documentation
    • Introduction
    • Math Library User's Guide
    • Vector and Matrix Library User's Guide
    • Data Analysis Library User's Guide
    • Statistics Library User's Guide
    • Reference
  • Resources
    • Downloads
    • QuickStart Samples
    • Sample Applications
    • Frequently Asked Questions
    • Technical Support
  • Blog
  • Order
  • Company
    • About us
    • Testimonials
    • Customers
    • Press Releases
    • Careers
    • Partners
    • Contact us
Introduction
Deployment Guide
Configuration
Using Parallelism
Expand Mathematics Library User's GuideMathematics Library User's Guide
Expand Vector and Matrix Library User's GuideVector and Matrix Library User's Guide
Expand Data Analysis Library User's GuideData Analysis Library User's Guide
Expand Statistics Library User's GuideStatistics Library User's Guide
Expand Data Access Library User's GuideData Access Library User's Guide
Expand ReferenceReference
  • Extreme Optimization
    • Features
    • Solutions
    • Documentation
    • QuickStart Samples
    • Sample Applications
    • Downloads
    • Technical Support
    • Download trial
    • How to buy
    • Blog
    • Company
    • Resources
  • Documentation
    • Introduction
    • Deployment Guide
    • Configuration
    • Using Parallelism
    • Mathematics Library User's Guide
    • Vector and Matrix Library User's Guide
    • Data Analysis Library User's Guide
    • Statistics Library User's Guide
    • Data Access Library User's Guide
    • Reference
  • Reference
    • Extreme
    • Extreme.Collections
    • Extreme.Data
    • Extreme.Data.Json
    • Extreme.Data.Matlab
    • Extreme.Data.R
    • Extreme.Data.Stata
    • Extreme.Data.Text
    • Extreme.DataAnalysis
    • Extreme.DataAnalysis.Linq
    • Extreme.Mathematics
    • Extreme.Mathematics.Algorithms
    • Extreme.Mathematics.Calculus
    • Extreme.Mathematics.Calculus.OrdinaryDifferentialEquations
    • Extreme.Mathematics.Curves
    • Extreme.Mathematics.Curves.Nonlinear
    • Extreme.Mathematics.Distributed
    • Extreme.Mathematics.Distributed.Cuda
    • Extreme.Mathematics.EquationSolvers
    • Extreme.Mathematics.FSharp
    • Extreme.Mathematics.Generic
    • Extreme.Mathematics.Generic.LinearAlgebra
    • Extreme.Mathematics.Generic.LinearAlgebra.Implementation
    • Extreme.Mathematics.Generic.LinearAlgebra.Providers
    • Extreme.Mathematics.Generic.SignalProcessing
    • Extreme.Mathematics.Implementation
    • Extreme.Mathematics.LinearAlgebra
    • Extreme.Mathematics.LinearAlgebra.Complex
    • Extreme.Mathematics.LinearAlgebra.Complex.Decompositions
    • Extreme.Mathematics.LinearAlgebra.Implementation
    • Extreme.Mathematics.LinearAlgebra.IO
    • Extreme.Mathematics.LinearAlgebra.IterativeSolvers
    • Extreme.Mathematics.LinearAlgebra.IterativeSolvers.Preconditioners
    • Extreme.Mathematics.LinearAlgebra.Providers
    • Extreme.Mathematics.LinearAlgebra.Sparse
    • Extreme.Mathematics.Optimization
    • Extreme.Mathematics.Optimization.Genetic
    • Extreme.Mathematics.Optimization.LineSearches
    • Extreme.Mathematics.Random
    • Extreme.Mathematics.SignalProcessing
    • Extreme.Numerics.FSharp
    • Extreme.Statistics
    • Extreme.Statistics.Distributions
    • Extreme.Statistics.IO
    • Extreme.Statistics.Linq
    • Extreme.Statistics.Multivariate
    • Extreme.Statistics.Random
    • Extreme.Statistics.Tests
    • Extreme.Statistics.TimeSeriesAnalysis
  • Extreme.Mathematics.SignalProcessing
    • ComplexConjugateSignalMatrix Class
    • ComplexConjugateSignalMatrix(T) Class
    • ComplexConjugateSignalVector Class
    • ComplexConjugateSignalVector(T) Class
    • Fft Class
    • Fft(T) Class
    • Fft2D Class
    • Fft2D(T) Class
    • FftBase Class
    • FftBase(T) Class
    • FftDomain Enumeration
    • FftProvider Class
    • FftProvider(T) Class
    • Filter Class
    • ManagedFft Class
    • ManagedFft2D Class
    • ManagedFft2DOfSingle Class
    • ManagedFftOfSingle Class
    • ManagedFftProvider Class
    • ManagedFftProviderOfSingle Class
    • Padding Enumeration
    • RealFftFormat Enumeration
    • SingleComplexConjugateSignalMatrix Class
    • SingleComplexConjugateSignalVector Class
    • SingleFft Class
    • SingleFft2D Class
    • SingleFftBase Class
    • SingleFftProvider Class
    • SingleManagedFft Class
    • SingleManagedFft2D Class
    • SingleManagedFftProvider Class
    • Smoothing Class
    • WindowFunction Class
    • WindowFunctions Class
    • WindowSampling Enumeration
  • Smoothing Class
    • Methods
  • Methods
    • GetSavitskyGolayCoefficients Method Overloads
    • Loess Method Overloads
    • LoessScatterSmoother Method
    • LoessSmoother Method
    • Lowess Method Overloads
    • LowessScatterSmoother Method
    • LowessSmoother Method
    • MovingAverage Method Overloads
    • MovingAverageSmoother Method
    • SavitskyGolay Method Overloads
    • SavitskyGolaySmoother Method
  • SavitskyGolay Method Overloads
    • SavitskyGolay Method (Vector(Double), Int32, Int32, Int32, Padding, Double)
    • SavitskyGolay Method (Vector, Int32, Int32, Int32, Padding, Double)
  • SavitskyGolay Method (Vector(Double), Int32, Int32, Int32, Padding, Double)
SmoothingSavitskyGolay Method (VectorDouble, Int32, Int32, Int32, Padding, Double)Extreme Optimization Numerical Libraries for .NET Professional
Applies a Savitsky-Golay filter to the specified signal.

Namespace: Extreme.Mathematics.SignalProcessing
Assembly: Extreme.Numerics.Net40 (in Extreme.Numerics.Net40.dll) Version: 6.0.16073.0 (6.0.16322.0)
Syntax

C#
VB
C++
F#
Copy
public static Vector<double> SavitskyGolay(
	Vector<double> signal,
	int windowLength,
	int order,
	int derivative = 0,
	Padding padding = Padding.None,
	double paddedValue = 0
)
Public Shared Function SavitskyGolay ( 
	signal As Vector(Of Double),
	windowLength As Integer,
	order As Integer,
	Optional derivative As Integer = 0,
	Optional padding As Padding = Padding.None,
	Optional paddedValue As Double = 0
) As Vector(Of Double)
public:
static Vector<double>^ SavitskyGolay(
	Vector<double>^ signal, 
	int windowLength, 
	int order, 
	int derivative = 0, 
	Padding padding = Padding::None, 
	double paddedValue = 0
)
static member SavitskyGolay : 
        signal : Vector<float> * 
        windowLength : int * 
        order : int * 
        ?derivative : int * 
        ?padding : Padding * 
        ?paddedValue : float 
(* Defaults:
        let _derivative = defaultArg derivative 0
        let _padding = defaultArg padding Padding.None
        let _paddedValue = defaultArg paddedValue 0
*)
-> Vector<float> 

Parameters

signal
Type: Extreme.MathematicsVectorDouble
The signal to filter.
windowLength
Type: SystemInt32
The length of the smoothing window. Must be odd.
order
Type: SystemInt32
The order of the local polynomial.
derivative (Optional)
Type: SystemInt32
(Optional.) The order of the derivative. The default is 0.
padding (Optional)
Type: Extreme.Mathematics.SignalProcessingPadding
(Optional.) Specifies how the signal is padded for calculations near the lower and upper bounds. The default value is None.
paddedValue (Optional)
Type: SystemDouble
(Optional.) If padding is Constant, the value to use for padding; ignored otherwise.

Return Value

Type: VectorDouble
The filtered signal.
Exceptions

ExceptionCondition
ArgumentNullException

signal is .

ArgumentOutOfRangeException

windowLength is less than zero.

-or-

order is less than zero.

-or-

derivative is less than zero or greater than the polynomial order.

ArgumentExceptionwindowLength is less than or equal to order.
Remarks

This method smooths a signal by fitting a regression polynomial of degree order to a local neighbourhood of windowLength points around each data point and replacing its value with the value of the polynomial. The window length m Optionally, a smoothed derivative of the signal may be computed.

The padding argument determines how calculations will be performed near the boundaries of the signal. The default value, None, indicates that the signal is not padded. Instead, the same polynomial using the first or last windowLength points will be used to compute the first and last few smoothed values.

Version Information

Numerical Libraries

Supported in: 6.0
See Also

Reference

Smoothing Class
SavitskyGolay Overload
Extreme.Mathematics.SignalProcessing Namespace

Copyright (c) 2004-2016 ExoAnalytics Inc.

Send comments on this topic to support@extremeoptimization.com

Copyright © 2004-2018, Extreme Optimization. All rights reserved.
Extreme Optimization, Complexity made simple, M#, and M Sharp are trademarks of ExoAnalytics Inc.
Microsoft, Visual C#, Visual Basic, Visual Studio, Visual Studio.NET, and the Optimized for Visual Studio logo
are registered trademarks of Microsoft Corporation.