Real Partial-Systolic Matrix Solve Using Q-less QR Decomposition with Forgetting Factor

Compute value of X in A'AX = B for real-valued matrices with infinite number of rows using Q-less QR decomposition

  • Library:
  • Fixed-Point Designer / Matrices and Linear Algebra / Linear System Solvers

  • Real Partial-Systolic Matrix Solve Using Q-less QR Decomposition with Forgetting Factor block

Description

The Real Partial-Systolic Matrix Solve Using Q-less QR Decomposition with Forgetting Factor block solves the system of linear equations A'AX = B using Q-less QR decomposition, where A and B are real-valued matrices. A is an infinitely tall matrix representing streaming data.

Ports

Input

expand all

Rows of real matrix A, specified as a vector. A is an m-by-n matrix where m ≥ 2 and mn. If B is single or double, A must be the same data type as B. If A is a fixed-point data type, A must be signed, use binary-point scaling, and have the same word length as B. Slope-bias representation is not supported for fixed-point data types.

Data Types: single | double | fixed point

Real matrix B, specified as a matrix. B is an m-by-p matrix where m ≥ 2. If A is single or double, B must be the same data type as A. If B is a fixed-point data type, B must be signed, use binary-point scaling, and have the same word length as A. Slope-bias representation is not supported for fixed-point data types.

Data Types: single | double | fixed point

Whether A(i, ;) input is valid, specified as a Boolean scalar. This control signal indicates when the data from the A(i,:) input port is valid. When this value is 1 (true) and the readyA value is 1 (true), the block captures the values at the A(i,:) input port. When this value is 0 (false), the block ignores the input samples.

Data Types: Boolean

Whether B input is valid, specified as a Boolean scalar. This control signal indicates when the data from the B input port is valid. When this value is 1 (true) and the readyB value is 1 (true), the block captures the values at the B input port. When this value is 0 (false), the block ignores the input samples.

Data Types: Boolean

Whether to clear internal states, specified as a Boolean scalar. When this value is 1 (true), the block stops the current calculation and clears all internal states. When this value is 0 (false) and the validInA and validInB values are both 1 (true), the block begins a new subframe.

Data Types: Boolean

Output

expand all

Matrix X, returned as a vector or matrix.

Data Types: single | double | fixed point

Whether the output data is valid, returned as a Boolean scalar. This control signal indicates when the data at the output port X is valid. When this value is 1 (true), the block has successfully computed a row of X. When this value is 0 (false), the output data is not valid.

Data Types: Boolean

Whether the block is ready for input A, returned as a Boolean scalar. This control signal indicates when the block is ready for new input data. When this value is 1 (true) and validInA value is 1 (true), the block accepts input data in the next time step. When this value is 0 (false), the block ignores input data in the next time step.

Data Types: Boolean

Whether the block is ready for input B, returned as a Boolean scalar. This control signal indicates when the block is ready for new input data. When this value is 1 (true) and validInB value is 1 (true), the block accepts input data in the next time step. When this value is 0 (false), the block ignores input data in the next time step.

Data Types: Boolean

Parameters

expand all

Number of columns in matrix A and rows in matrix B, specified as a positive integer-valued scalar.

Programmatic Use

Block Parameter: n
Type: character vector
Values: positive integer-valued scalar
Default: 4

Number of columns in matrix B, specified as a positive integer-valued scalar.

Programmatic Use

Block Parameter: p
Type: character vector
Values: positive integer-valued scalar
Default: 1

Forgetting factor applied after each row of the matrix is factored, specified as a real positive scalar. The output is updated as each row of A is input indefinitely.

Programmatic Use

Block Parameter: forgettingFactor
Type: character vector
Values: positive integer-valued scalar
Default: 0.99

Data type of the output matrix X, specified as fixdt(1,18,14), double, single, fixdt(1,16,0), or as a user-specified data type expression. The type can be specified directly, or expressed as a data type object such as Simulink.NumericType.

Programmatic Use

Block Parameter: OutputType
Type: character vector
Values: 'fixdt(1,18,14)' | 'double' | 'single' | 'fixdt(1,16,0)' | '<data type expression>'
Default: 'fixdt(1,18,14)'

Algorithms

expand all

Extended Capabilities

C/C++ Code Generation
Generate C and C++ code using Simulink® Coder™.

Introduced in R2020b