QR decomposition for complex-valued matrices
Fixed-Point Designer / Matrices and Linear Algebra / Matrix Factorizations
The Complex Burst QR Decomposition block uses QR decomposition to compute R and C = Q'B, where QR = A, and A and B are complex-valued matrices. The least-squares solution to Ax = B is x = R\C. R is an upper triangular matrix and Q is an orthogonal matrix. To compute C = Q', set B to be the identity matrix.
fixed.getQRDecompositionModel(
generates a template model containing a Complex Burst QR Decomposition block
for complex-valued input matrices A and B.A
,B
)
A(i,:)
— Rows of matrix ARows of matrix A, specified as a vector. A is an m-by-n matrix where m ≥ 2 and n ≥ 2. 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
Complex Number Support: Yes
B(i,:)
— Rows of matrix BRows of matrix B, specified as a vector. 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
Complex Number Support: Yes
validIn
— Whether inputs are validWhether inputs are valid, specified as a Boolean scalar. This control signal
indicates when the data from the A(i,:) and
B(i,:) input ports are valid. When this value is 1
(true
) and the value at ready is 1
(true
), the block captures the values on the
A(i,:) and B(i,:) input ports. When this
value is 0 (false
), the block ignores the input samples.
Data Types: Boolean
restart
— Whether to clear internal statesWhether 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
validIn value is 1 (true
), the block begins
a new subframe.
Data Types: Boolean
R(i,:)
— Rows of matrix RRows of the economy size QR decomposition matrix R, returned as a scalar or vector. R is an upper triangular matrix. R has the same data type as A.
Data Types: single
| double
| fixed point
C(i,:)
— Rows of matrix C=Q'BRows of the economy size QR decomposition matrix C=Q'B, returned as a scalar or vector. C has the same number of rows as R. C has the same data type as B.
Data Types: single
| double
| fixed point
validOut
— Whether output data is validWhether the output data is valid, returned as a Boolean scalar. This control
signal indicates when the data at output ports R(i,:) and
C(i,:) is valid. When this value is 1
(true
), the block has successfully computed the
R and C matrices. When this value is 0
(false
), the output data is not valid.
Data Types: Boolean
ready
— Whether block is readyWhether the block is ready, 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 the validIn 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
Number of rows in matrices A and B
— Number of rows in matrices A and B4
(default) | positive integer-valued scalarThe number of rows in matrices A and B, specified as a positive integer-valued scalar.
Block Parameter:
m |
Type: character vector |
Values: positive integer-valued scalar |
Default:
4 |
Number of columns in matrix A
— Number of columns in matrix A4
(default) | positive integer-valued scalarThe number of columns in input matrix A, specified as a positive integer-valued scalar.
Block Parameter:
n |
Type: character vector |
Values: positive integer-valued scalar |
Default:
4 |
Number of columns in matrix B
— Number of columns in matrix B1
(default) | positive integer-valued scalarThe number of columns in input matrix B, specified as a positive integer-valued scalar.
Block Parameter:
p |
Type: character vector |
Values: positive integer-valued scalar |
Default:
1 |
HDL Coder™ provides additional configuration options that affect HDL implementation and synthesized logic.
This block has a single, default HDL architecture.
General | |
---|---|
ConstrainedOutputPipeline | Number of registers to place at
the outputs by moving existing delays within your design. Distributed
pipelining does not redistribute these registers. The default is
|
InputPipeline | Number of input pipeline stages
to insert in the generated code. Distributed pipelining and constrained
output pipelining can move these registers. The default is
|
OutputPipeline | Number of output pipeline stages
to insert in the generated code. Distributed pipelining and constrained
output pipelining can move these registers. The default is
|
Supports fixed-point data types only.
A and B must be signed, use binary-point scaling, and have the same word length. Slope-bias representation is not supported for fixed-point data types.