SignalUtils.StdDev Method

Overload List

#SignatureDescription
1procedure StdDev(const SumOfSquares: TMtx; const Sum: TMtx; Averages: Integer; const aResult: TMtx);Return standard deviation in aResult.
2procedure StdDev(const SumOfSquares: TVec; const Sum: TVec; Averages: Integer; const aResult: TVec);Return standard deviation in aResult.
3function StdDev(SumOfSquares: Double; Sum: Double; Averages: Integer): Double;Result = the sample standard deviation from running sums

Overload 1: procedure StdDev(const SumOfSquares: TMtx; const Sum: TMtx; Averages: Integer; const aResult: TMtx);

Return standard deviation in aResult.

#NameTypeDescription
1SumOfSquaresTMtx
2SumTMtx
3AveragesInteger
4aResultTMtx

Result: stored in self (calling object)

Overload 2: procedure StdDev(const SumOfSquares: TVec; const Sum: TVec; Averages: Integer; const aResult: TVec);

Return standard deviation in aResult.

#NameTypeDescription
1SumOfSquaresTVec
2SumTVec
3AveragesInteger
4aResultTVec

Result: stored in self (calling object)

Overload 3: function StdDev(SumOfSquares: Double; Sum: Double; Averages: Integer): Double;

Compute the sample standard deviation from running sums.

#NameDescription
1SumOfSquaresThe accumulated sum of squares sum x_i^2.
2SumThe accumulated sum sum x_i.
3AveragesThe sample count n, which must satisfy n>1.

Returns: Double - The unbiased sample standard deviation sigma.

Remarks:

Returns the unbiased (Bessel-corrected) sample standard deviation computed from the precomputed sum of squares and sum of the samples: sigma = sqrt((n sum x_i^2 - (sum x_i)^2)/(n (n-1)))

                     n*Sum(x^2) - Sum(x)^2
         StdDev = ( ------------------------- )^0.5
                            n*(n-1)

n... number of averages taken
Sum(x^2)... sum of squares of samples
Sum(x)... sum of samples

where n = Averages is the number of samples, sum x_i^2 = SumOfSquares and sum x_i = Sum. The argument n must be greater than 1. When severe cancellation makes the radicand negative (catastrophic loss of precision for large n) the routine raises an exception rather than returning NaN.