| Signal Processing Blockset™ | ![]() |
Factor square Hermitian positive definite matrices into lower, upper, and diagonal components
Math Functions / Matrices and Linear Algebra / Matrix Factorizations
dspfactors
The LDL Factorization block uniquely factors the square Hermitian positive definite input matrix S as
![]()
where L is a lower triangular square matrix with unity diagonal elements, D is a diagonal matrix, and L* is the Hermitian (complex conjugate) transpose of L. Only the diagonal and lower triangle of the input matrix are used, and any imaginary component of the diagonal entries is disregarded.
The block's output is a composite matrix with lower triangle elements lij from L, diagonal elements dij from D, and upper triangle elements uij from L*. It is always sample based. The output format is shown below for a 5-by-5 matrix.

LDL factorization requires half the computation of Gaussian elimination (LU decomposition), and is always stable. It is more efficient than Cholesky factorization because it avoids computing the square roots of the diagonal elements.
The algorithm requires that the input be square and Hermitian positive definite. When the input is not positive definite, the block reacts with the behavior specified by the Non-positive definite input parameter.
The following diagram shows the data types used within the LDL Factorization block for fixed-point signals.

You can set the intermediate product, product output, accumulator, and output data types in the block dialog as discussed below.
The output of the second multiplier is in the product output data type when the input is real. When the input is complex, the result of the multiplication is in the accumulator data type. For details on the complex multiplication performed, see Multiplication Data Types.
LDL decomposition of a 3-by-3 Hermitian positive definite matrix:

The Main pane of the LDL Factorization block dialog appears as follows.

Specify the action when nonpositive definite matrix inputs occur:
Ignore — Proceed with the computation and do not issue an alert. The output is not a valid factorization. A partial factorization is present in the upper left corner of the output.
Warning — Display a warning message in the MATLAB® Command Window, and continue the simulation. The output is not a valid factorization. A partial factorization is present in the upper left corner of the output.
Error — Display an error dialog and terminate the simulation.
The Fixed-point pane of the LDL Factorization block dialog appears as follows.

Select the rounding mode for fixed-point operations.
Select the overflow mode for fixed-point operations.
Use this parameter to specify how you would like to designate the intermediate product word and fraction lengths. See Fixed-Point Data Types for an illustration depicting the use of the intermediate product data type in this block:
When you select Same as input, these characteristics match those of the input to the block.
When you select Binary point scaling, you can enter the word length and the fraction length of the intermediate product, in bits.
When you select Slope and bias scaling, you can enter the word length, in bits, and the slope of the intermediate product. This block requires power-of-two slope and a bias of zero.
Use this parameter to specify how you would like to designate the product output word and fraction lengths. See Fixed-Point Data Types and Multiplication Data Types for illustrations depicting the use of the product output data type in this block:
When you select Inherit via internal rule, the product output word length and fraction length are calculated automatically. For information about how the product output word and fraction lengths are calculated when an internal rule is used, see Inherit via Internal Rule.
When you select Same as input, these characteristics match those of the input to the block.
When you select Binary point scaling, you can enter the word length and the fraction length of the product output, in bits.
When you select Slope and bias scaling, you can enter the word length, in bits, and the slope of the product output. This block requires power-of-two slope and a bias of zero.
Use this parameter to specify how you would like to designate the accumulator word and fraction lengths. See Fixed-Point Data Types and Multiplication Data Types for illustrations depicting the use of the accumulator data type in this block.
When you select Inherit via internal rule, the accumulator word length and fraction length are calculated automatically. For information about how the accumulator word and fraction lengths are calculated when an internal rule is used, see Inherit via Internal Rule.
When you select Same as product output, these characteristics match those of the product output.
When you select Same as input, these characteristics match those of the input to the block.
When you select Binary point scaling, you can enter the word length and the fraction length of the accumulator, in bits.
When you select Slope and bias scaling, you can enter the word length, in bits, and the slope of the accumulator. This block requires power-of-two slope and a bias of zero.
Use this parameter to specify how you would like to designate the output word and fraction lengths. See Fixed-Point Data Types for an illustration depicting the use of the output data type in this block:
When you select Same as input, these characteristics match those of the input to the block.
When you select Binary point scaling, you can enter the word length and the fraction length of the output, in bits.
When you select Slope and bias scaling, you can enter the word length, in bits, and the slope of the output. This block requires power-of-two slope and a bias of zero.
Select this parameter to prevent any fixed-point scaling you specify in this block mask from being overridden by the autoscaling feature of the Fixed-Point Tool. See the fxptdlg reference page for more information.
Golub, G. H., and C. F. Van Loan. Matrix Computations. 3rd ed. Baltimore, MD: Johns Hopkins University Press, 1996.
| Port | Supported Data Types |
|---|---|
S |
|
LDL' |
|
| Cholesky Factorization | Signal Processing Blockset |
| LDL Inverse | Signal Processing Blockset |
| LDL Solver | Signal Processing Blockset |
| LU Factorization | Signal Processing Blockset |
| QR Factorization | Signal Processing Blockset |
See Matrix Factorizations for related information.
![]() | Kalman Filter | LDL Inverse | ![]() |
| © 1984-2008- The MathWorks, Inc. - Site Help - Patents - Trademarks - Privacy Policy - Preventing Piracy - RSS |