This function calculates the power matrix based on the provided steering vector, eigenvalues, and eigenvectors. The computation differs depending on the number of columns in the steering vector matrix.
Arguments
- eig
A list containing the eigenvalues and eigenvectors of a covariance matrix. The list should include:
values
: A numeric vector of eigenvalues.vectors
: A matrix where each column is an eigenvector.
- a
A complex matrix representing the steering vector(s). Each column corresponds to a direction of arrival.
Value
A complex matrix representing the power matrix, calculated based on the provided eigenvalues, eigenvectors, and steering vectors. If the number of columns in a
is zero, the function returns NULL
.
Details
The function computes the power matrix using the following steps:
If
a
has two columns:Select the first two eigenvalues and their corresponding eigenvectors.
Compute the matrix \(G = a^* \cdot \text{eigVector}\), where \(a^*\) is the conjugate transpose of
a
.Calculate the inverse of
G
and its conjugate transpose.Compute the power matrix \(P = G_{\text{inv}}^* \cdot \text{diag(eigValues)} \cdot G_{\text{inv}}\).
If
a
has one column:Select the first eigenvalue and its corresponding eigenvector.
Follow similar steps as above with single-column operations.
If a
has no columns, the function returns NULL
.
Mathematical Formula
For a steering vector matrix \(a\), eigenvectors \(\text{eigVector}\), and eigenvalues \(\text{eigValues}\), the power matrix is calculated as: $$P = G_{\text{inv}}^* \cdot \text{diag(eigValues)} \cdot G_{\text{inv}}$$ where: \(G = a^* \cdot \text{eigVector}\) and \(G_{\text{inv}}\) is the inverse of \(G\).