Last Modified: June 25, 2019

Returns the Gaussian fit of a data set using a specific fitting method.

Initial guesses of the amplitude, center, standard deviation, and offset for use in the iterative algorithm.

If **initial amplitude**, **initial center**, **initial standard deviation**, or **offset** is NaN, this node calculates the initial guess automatically.

Initial guess of the amplitude.

**Default: **NaN

Initial guess of the center.

**Default: **NaN

Initial guess of the standard deviation.

**Default: **NaN

Initial guess of the offset.

**Default: **NaN

An array of dependent values representing the *y*-values of the data set.

This input changes to **signal** when the data type is a waveform or an array of waveforms.

An array of independent values representing the *x*-values of the data set.

This input is available only if you wire an array of double-precision floating-point numbers to **y** or **signal**.

An array of weights for the data set.

Value that determines when to stop the iterative adjustment of the amplitude, center, standard deviation, and offset.

If **tolerance** is less than or equal to 0, this node sets **tolerance** to 0.0001.

How tolerance Affects the Outputs with Different Fitting Methods

For the Least Square and Least Absolute Residual methods, if the relative difference between **residue** in two successive iterations is less than **tolerance**, this node returns the resulting **residue**. For the Bisquare method, if any relative difference between **amplitude**, **center**, **standard deviation**, and **offset** in two successive iterations is less than **tolerance**, this node returns the resulting **amplitude**, **center**, **standard deviation**, and **offset**.

**Default: **0.0001

Error conditions that occur before this node runs.

The node responds to this input according to standard error behavior.

Standard Error Behavior

Many nodes provide an **error in** input and an **error out** output so that the node can respond to and communicate errors that occur while code is running. The value of **error in** specifies whether an error occurred before the node runs. Most nodes respond to values of **error in** in a standard, predictable way.

**Default: **No error

Upper and lower constraints for the amplitude, center, standard deviation, and offset.

Lower bound for the amplitude.

**Default: **-Infinity, which means no lower bound is imposed on the amplitude.

Upper bound for the amplitude.

**Default: **Infinity, which means no upper bound is imposed on the amplitude.

Lower bound for the center.

**Default: **-Infinity, which means no lower bound is imposed on the center.

Upper bound for the center.

**Default: **Infinity, which means no upper bound is imposed on the center.

Lower bound for the standard deviation.

**Default: **-Infinity, which means no lower bound is imposed on the standard deviation.

Upper bound for the standard deviation.

**Default: **Infinity, which means no upper bound is imposed on the standard deviation.

Lower bound for the offset.

**Default: **0

Upper bound for the offset.

**Default: **0

The fitting method.

Name | Value | Description |
---|---|---|

Least Square | 0 | Uses the least square method. |

Least Absolute Residual | 1 | Uses the least absolute residual method. |

Bisquare | 2 | Uses the bisquare method. |

Algorithm for the Least Square Method

The least square method of fitting finds the **amplitude**, **center**, **standard deviation**, and **offset** of the Gaussian model by minimizing the **residue** according to the following equation:

$\frac{1}{N}\underset{i=0}{\overset{N-1}{\sum}}{w}_{i}{({f}_{i}-{y}_{i})}^{2}$

where

*N*is the length of**y**or the number of data values in a waveform*w*_{i}is the*i*^{th}element of**weight***f*_{i}is the*i*^{th}element of**best Gaussian fit***y*_{i}is the*i*^{th}element of**y**or the*i*^{th}data value in a waveform

Algorithm for the Least Absolute Residual Method

The least absolute residual method finds the **amplitude**, **center**, **standard deviation**, and **offset** of the Gaussian model by minimizing the **residue** according to the following equation:

$\frac{1}{N}\underset{i=0}{\overset{N-1}{\sum}}{w}_{i}|{f}_{i}-{y}_{i}|$

where

*N*is the length of**y**or the number of data values in a waveform*w*_{i}is the*i*^{th}element of**weight***f*_{i}is the*i*^{th}element of**best Gaussian fit***y*_{i}is the*i*^{th}element of**y**or the*i*^{th}data value in a waveform

Algorithm for the Bisquare Method

The bisquare method of fitting finds the **amplitude**, **center**, **standard deviation**, and **offset** using an iterative process, as shown in the following illustration.

The node calculates **residue** according to the following equation:

$\frac{1}{N}\underset{i=0}{\overset{N-1}{\sum}}{w}_{i}{({f}_{i}-{y}_{i})}^{2}$

where

*N*is the length of**y**or the number of data values in a waveform*w*_{i}is the*i*^{th}element of**weight***f*_{i}is the*i*^{th}element of**best Gaussian fit***y*_{i}is the*i*^{th}element of**y**or the*i*^{th}data value in a waveform.

**Default: **Least Square

Offset of the fitted model.

This output can return a double-precision, floating-point number or a 1D array of double-precision, floating-point numbers.

Amplitude of the fitted model.

This output can return a double-precision, floating-point number or a 1D array of double-precision, floating-point numbers.

Center of the fitted model.

This output can return a double-precision, floating-point number or a 1D array of double-precision, floating-point numbers.

Standard deviation of the fitted model.

Error information.

The node produces this output according to standard error behavior.

Standard Error Behavior

**error in** input and an **error out** output so that the node can respond to and communicate errors that occur while code is running. The value of **error in** specifies whether an error occurred before the node runs. Most nodes respond to values of **error in** in a standard, predictable way.

Weighted mean error of the fitted model.

This node uses the iterative general least square method and the Levenberg-Marquardt method to fit data to a Gaussian curve of the general form described by the following equation:

$f=a\cdot \mathrm{exp}(-\frac{{(x-\mu )}^{2}}{2{\sigma}^{2}})+c$

where

*x*is the input sequence*a*is**amplitude**-
$\mu $ is
**center** -
$\sigma $ is
**standard deviation** *c*is**offset**

This node finds the values of *a*,
$\mu $,
$\sigma $, and *c* that best fit the observations (**x**, **y**).

The following equation specifically describes the Gaussian curve resulting from the Gaussian fit algorithm:

$y\left[i\right]=a\cdot \mathrm{exp}(-\frac{{(x\left[i\right]-\mu )}^{2}}{2{\sigma}^{2}})+c$

**Where This Node Can Run: **

Desktop OS: Windows

FPGA: Not supported

Web Server: Not supported in VIs that run in a web application