Note: This page has been translated by MathWorks. Please click here

To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.

To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.

Smooth signal with peaks using least-squares polynomial

* Yout* = mssgolay(

`X`

`Intensities`

mssgolay(

`X`

`Intensities`

`SpanValue`

mssgolay(

`X`

`Intensities`

`DegreeValue`

mssgolay(

`X`

`Intensities`

`ShowPlotValue`

`X` | Vector of separation-unit values for
a set of signals with peaks. The number of elements in the vector
equals the number of rows in the matrix .
The separation unit can quantify wavelength, frequency, distance,
time, or m/z depending on the instrument that generates the signal
data.`Intensities` |

`Intensities` | Matrix of intensity values for a set of peaks that share the
same separation-unit range. Each row corresponds to a separation-unit
value, and each column corresponds to either a set of signals with
peaks or a retention time. The number of rows equals the number of
elements in vector .`X` |

Use the following syntaxes with data from any separation technique that produces signal data, such as spectroscopy, NMR, electrophoresis, chromatography, or mass spectrometry.

smooths
raw noisy signal data, * Yout* = mssgolay(

`X`

`Intensities`

`Intensities`

`15`

samples.`mssgolay(`

calls * X*,

`Intensities`

`PropertyName`

`PropertyValue`

`mssgolay`

with optional properties
that use property name/property value pairs. You can specify one or
more properties in any order. Each `PropertyName`

```
mssgolay(
```

modifies
the frame size for the smoothing function. If * X*,

`Intensities`

`SpanValue`

`SpanValue`

`1`

, the window is the size of `SpanValue`

in
samples independent of the `X`

`SpanValue`

`1`

,
the window size is a fraction of the number of points in the input
data, `X`

`SpanValue`

`0.05`

,
the window size is equal to `5%`

of the number of
points in `X`

The original algorithm by Savitzky and Golay assumes the input
vector, * X*, has uniformly spaced separation
units, while

`mssgolay`

also allows one that is not
uniformly spaced. Therefore, the sliding frame for smoothing is centered
using the closest samples in terms of the `X`

`X`

When the input vector, * X*, does not
have repeated values or NaN values, the algorithm is approximately
twice as fast.

When the input vector, * X*, is evenly
spaced, the least-squares fitting is performed once so that the signal
is filtered with the same coefficients, and the speed of the algorithm
increases considerably.

If the input vector, * X*, is evenly
spaced and

`SpanValue`

`1`

to include both edge samples in the frame.

`mssgolay(`

specifies
the degree of the polynomial (* X*,

`Intensities`

`DegreeValue`

`DegreeValue`

`2`

. `DegreeValue`

`SpanValue`

`mssgolay(`

plots
smoothed signals over the original. When * X*,

`Intensities`

`ShowPlotValue`

`mssgolay`

is
called without output arguments, the signals are plotted unless `ShowPlotValue`

`false`

.
When `ShowPlotValue`

`true`

,
only the first signal in `Intensities`

`ShowPlotValue`

`Intensities`

Was this topic helpful?