Class SavitzkyGolay

  • All Implemented Interfaces:
    CleanUpHandler, Destroyable, ErrorProvider, GlobalInfoSupporter, LoggingLevelHandler, LoggingSupporter, OptionHandler, QuickInfoSupporter, SizeOfHandler, TechnicalInformationHandler, Serializable

    public class SavitzkyGolay
    extends AbstractPlotProcessorWithBuffer<Point2D>
    implements TechnicalInformationHandler
    A processor that applies SavitzkyGolay smoothing.

    For more information see:

    A. Savitzky, Marcel J.E. Golay (1964). Smoothing and Differentiation of Data by Simplified Least Squares Procedures. Analytical Chemistry. 36:1627-1639.

    William H. Press, Saul A. Teukolsky, William T. Vetterling, Brian P. Flannery (1992). Savitzky-Golay Smoothing Filters.

     @article{Savitzky1964,
        author = {A. Savitzky and Marcel J.E. Golay},
        journal = {Analytical Chemistry},
        pages = {1627-1639},
        title = {Smoothing and Differentiation of Data by Simplified Least Squares Procedures},
        volume = {36},
        year = {1964},
        HTTP = {http://dx.doi.org/10.1021/ac60214a047}
     }
     
     @inbook{Press1992,
        author = {William H. Press and Saul A. Teukolsky and William T. Vetterling and Brian P. Flannery},
        chapter = {14.8},
        edition = {Second},
        pages = {650-655},
        publisher = {Cambridge University Press},
        series = {Numerical Recipes in C},
        title = {Savitzky-Golay Smoothing Filters},
        year = {1992},
        PDF = {http://www.nrbook.com/a/bookcpdf/c14-8.pdf}
     }
     


    -logging-level <OFF|SEVERE|WARNING|INFO|CONFIG|FINE|FINER|FINEST> (property: loggingLevel)
        The logging level for outputting errors and debugging output.
        default: WARNING
     
    -plot-name-suffix <java.lang.String> (property: plotNameSuffix)
        The suffix for the plot name; if left empty, the plot container automatically 
        becomes an OVERLAY.
        default: 
     
    -polynomial <int> (property: polynomialOrder)
        The polynomial order to use, must be at least 2.
        default: 2
        minimum: 2
     
    -derivative <int> (property: derivativeOrder)
        The order of the derivative to use, >= 0.
        default: 1
        minimum: 0
     
    -left <int> (property: numPointsLeft)
        The number of points left of a data point, >= 0.
        default: 3
        minimum: 0
     
    -right <int> (property: numPointsRight)
        The number of points right of a data point, >= 0.
        default: 3
        minimum: 0
     
    Author:
    fracpete (fracpete at waikato dot ac dot nz)
    See Also:
    Serialized Form
    • Field Detail

      • m_PolynomialOrder

        protected int m_PolynomialOrder
        the polynomial order.
      • m_DerivativeOrder

        protected int m_DerivativeOrder
        the order of the derivative.
      • m_NumPointsLeft

        protected int m_NumPointsLeft
        the number of points to the left of a data point.
      • m_NumPointsRight

        protected int m_NumPointsRight
        the number of points to the right of a data point.
      • m_Coefficients

        protected double[] m_Coefficients
        the calculated coefficients.
    • Constructor Detail

      • SavitzkyGolay

        public SavitzkyGolay()
    • Method Detail

      • getTechnicalInformation

        public TechnicalInformation getTechnicalInformation()
        Returns an instance of a TechnicalInformation object, containing detailed information about the technical background of this class, e.g., paper reference or book this class is based on.
        Specified by:
        getTechnicalInformation in interface TechnicalInformationHandler
        Returns:
        the technical information about this class
      • resetCoefficients

        public void resetCoefficients()
        Resets the coefficients.
      • setPolynomialOrder

        public void setPolynomialOrder​(int value)
        Sets the polynomial order.
        Parameters:
        value - the order
      • getPolynomialOrder

        public int getPolynomialOrder()
        Returns the polynominal order.
        Returns:
        the order
      • polynomialOrderTipText

        public String polynomialOrderTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • setDerivativeOrder

        public void setDerivativeOrder​(int value)
        Sets the order of the derivative.
        Parameters:
        value - the order
      • getDerivativeOrder

        public int getDerivativeOrder()
        Returns the order of the derivative.
        Returns:
        the order
      • derivativeOrderTipText

        public String derivativeOrderTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • setNumPointsLeft

        public void setNumPointsLeft​(int value)
        Sets the number of points to the left of a data point.
        Parameters:
        value - the number of points
      • getNumPointsLeft

        public int getNumPointsLeft()
        Returns the number of points to the left of a data point.
        Returns:
        the number of points
      • numPointsLeftTipText

        public String numPointsLeftTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • setNumPointsRight

        public void setNumPointsRight​(int value)
        Sets the number of points to the right of a data point.
        Parameters:
        value - the number of points
      • getNumPointsRight

        public int getNumPointsRight()
        Returns the number of points to the right of a data point.
        Returns:
        the number of points
      • numPointsRightTipText

        public String numPointsRightTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.