According to the Unscented Transform equations in an Unscented Kalman Filter, sigma points are chosen via:




where $\mu$ is a vector of variable means, $\Sigma$ is the covariance matrix of the variables, and $n,\lambda$ are tuning parameters.

In order to take the square root of $\Sigma$, the literature suggests performing a Cholesky LL' transformation and using the resulting L as the matrix "square root".

With L being a lower triangle matrix, the upper triangle is obviously all zeros. This ultimately populates the $\chi$ matrix (sigma points) with several redundant copies of the mean $\mu$.

These redundant sigma points would obviously be a poor choice, as:

  • they wouldn't spread out to sample the nonlinear function well
  • they waste repeated computation on the same values

A simple example:

Assume $(n+\lambda)=1$

Using Cholesky LL decomposition:



Substituting this back in to the equations for $\chi$:

$\chi= \begin{bmatrix} \mu_0&\mu_0+L_{0,0}&\mu_0&\mu_0&\mu_0-L_{0,0}&\mu_0&\mu_0\\ \mu_1&\mu_1+L_{1,0}&\mu_1+L_{1,1}&\mu_1&\mu_1-L_{1,0}&\mu_1-L_{1,1}&\mu_1\\ \mu_2&\mu_2+L_{2,0}&\mu_2+L_{2,1}&\mu_2+L_{2,2}&\mu_2-L_{2,0}&\mu_2-L_{2,1}&\mu_2-L_{2,2} \end{bmatrix}$

As you can see, the top two variables (rows) have sigma points that are made up of redundant values of the variable mean.

Am I doing something wrong in my calculations, or does the use of Cholesky decomposition really result in a poor choice of sigma points?

  • $\begingroup$ Looking at the equations and thinking about the "spirit" of taking the sqrt(covariance), it seems like the goal is to place sigma points at the mean and at +/- 1 standard deviation (with a scaling factor applied). I wonder if current literature using the cholesky decomp is taking the sqrt(covariance) too literally and missing the point? $\endgroup$
    – pcdangio
    Commented Jul 22, 2020 at 4:43
  • $\begingroup$ I had a colleague check over the math yesterday, and he was able to verify that the process is correct and the results are as listed. $\endgroup$
    – pcdangio
    Commented Jul 23, 2020 at 16:39
  • $\begingroup$ Just saw the post. I don't see the problem in that the 2 first rows are having redundant values, since you are taking 3D points, and as long as all the coordinates are not equal, those sigma points won't be the same. Also, I don't get why would you take $(n + \lambda) = 1$, isn't $\lambda \geq 1$ for the UKF? EDIT: just read the paper, and the latest of my statements is wrong I think. $\endgroup$ Commented Oct 4, 2022 at 10:26

1 Answer 1


Looking back on this after implementing it, I had forgotten that each COLUMN represents a version of the state vector, not each ROW. So the selection of sigma points using the standard unscented transform does work well, as each column (state vector) is completely different. Duh!

  • 1
    $\begingroup$ Please add this as an edit to your question. $\endgroup$
    – bobeyt6
    Commented Oct 15, 2022 at 17:51

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .