How does "smoothdata" function using "gaussian" method define the standard deviation for different window size?

67 views (last 30 days)
I have a row vector of data and want to smooth it using "smoothdata" as shown below:
>> g = [0.27 -0.13 0.3 -0.1 -0.12 -0.01 -0.21 -0.13 -0.11 -0.05 -0.26 0.04];
>> g_smooth = smoothdata(g, 'gaussian', 5)
g_smooth =
0.1330 0.0861 0.0728 -0.0039 -0.0703 -0.0971 -0.1313 -0.1338 -0.1139 -0.1154 -0.1196 -0.0715
I would like to know how "smoothdata" with "gaussian" method defines standard deviation for different window size. And also how "smoothdata" fills the data before the 1st data points and after the last data points when calculating the "gaussian-weighted average" for the 1st and last data points.

Accepted Answer

Chris Turnes
Chris Turnes on 25 Jun 2018
Edited: Chris Turnes on 25 Jun 2018
The standard deviation of the Gaussian for smoothdata is fixed to be 1/5th of the total window width, so there is a direct linear scaling of the standard deviation with respect to the window width. There is currently no option to change this scaling, so the Gaussian shape is "fixed" (that is, you can think of increasing the window length as just increasing the sampling rate of the underlying filter).
It's also important to note that the Gaussian filter that is used is normalized so that it sums to 1.
With regards to how the endpoints are handled, they are treated the same way as NaN values are treated; namely, if a window has fewer valid points (either because it has reached the end or because there are NaN values being omitted) than specified by the window size, the window will be re-scaled so that the contributing coefficients sum to 1. This gives smoother behavior of the output at the endpoints and when there is missing data.

More Answers (0)

Products


Release

R2017a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!