![]() |
![]() |
|
CC27xxDriverLibrary
|
|
Functions | |
| void | APUSpSmoothCovMatrix (uint16_t N, void *pInput, uint16_t L, void *pResult, uint16_t fb) |
| APU accelerator for covariance matrix computation using spatial smoothing and forward-backward averaging (optional) More... | |
| void | APUJacobiEVD (uint16_t N, void *pInput, void *pResultV, uint16_t maxIter, float minSum, float epsTol) |
| APU accelerator for Jacobi Eigen-Decomposition (EVD) of Hermitian Matrix. More... | |
| void | APUGaussJordanElim (uint16_t M, uint16_t N, void *pInput, float epsTol) |
| APU accelerator for Gauss-Jordan Elimination of a rectable complex matrix. More... | |
| void | APUConfigFft (uint16_t N, void *pX) |
| Configure APU accelerator for Fast Fourier transform. More... | |
| void | APUComputeFft (uint16_t N, void *pX) |
| APU accelerator for Fast Fourier transform. More... | |
| void | APUComputeIfft (uint16_t N, void *pX) |
| APU accelerator for invert Fast Fourier transform. More... | |
| void | APUUnitCircle (uint16_t N, uint16_t M, uint16_t phase, uint16_t conj, void *pResult) |
| APU accelerator for generating points evenly distributed on unit circle. More... | |
| void | APUVectorMaxMin (uint16_t N, void *pInput, float thresh, uint16_t op, void *pResult) |
| APU accelerator for computing max/min of the real part of a vector and a real value scalar. More... | |
| void | APUVectorR2C (uint16_t N, void *pInputA, void *pInputB, uint16_t op, void *pResult) |
| APU accelerator for converting back and forth between real and complex numbers. More... | |
| void | APUHermLo (uint16_t N, void *pInput, void *pResult) |
| APU accelerator for converting Hermitian upper-triangular to lower-triangular. More... | |
Close the Doxygen group.
| void APUSpSmoothCovMatrix | ( | uint16_t | N, |
| void * | pInput, | ||
| uint16_t | L, | ||
| void * | pResult, | ||
| uint16_t | fb | ||
| ) |
APU accelerator for covariance matrix computation using spatial smoothing and forward-backward averaging (optional)
Calculate covariance matrix with spatial smoothing and forward-backward averaging. Given a received signal length N, a smaller matrix (LxL) with L < N is created by averaging (N-L+1) overlapped covariance matrices. The spatially smoothed matrix can also be applied forward-backward averaging (optional).
| N | length of the received signal vector |
| pInput | a pointer to the base of the input vector, in APU memory |
| L | size of the output square covariance matrix |
| pResult | a pointer to the output covariance matrix, in APU memory |
| fb | forward-backward averaging (FBA) option
|
References APU_API_COVMATRIX, and APU_GET_DATA_MEM_OFFSET.
| void APUJacobiEVD | ( | uint16_t | N, |
| void * | pInput, | ||
| void * | pResultV, | ||
| uint16_t | maxIter, | ||
| float | minSum, | ||
| float | epsTol | ||
| ) |
APU accelerator for Jacobi Eigen-Decomposition (EVD) of Hermitian Matrix.
Calculate the eigenvalues and eigenvectors of a Hermitian matrix.
Defined as:
in which, A[NxN] is Hermitian matrix, D[NxN] is a diagonal matrix of eigenvalues, and V[NxN] is a matrix whose columns are the corresponding eigenvectors
| N | size of the input/output square matrices |
| pInput | a pointer to the base of the input Hermitian matrix and the output diagonal matrix D, in APU memory. |
| pResultV | a pointer to output eigenvectors, in APU memory |
| maxIter | the maximum number of iterations (Jacobi sweeps), typically 3 |
| minSum | threshold for early stopping condition (if summation of the off-diagonal values is smaller than this threshold) |
| epsTol | threshold for off-diagonal elements to be considered small enough |
References APU_API_EIGEN, APU_GET_DATA_MEM_ABS, APU_GET_DATA_MEM_OFFSET, and APU_HEAP_ADDR.
| void APUGaussJordanElim | ( | uint16_t | M, |
| uint16_t | N, | ||
| void * | pInput, | ||
| float | epsTol | ||
| ) |
APU accelerator for Gauss-Jordan Elimination of a rectable complex matrix.
Reduce the input rectangle matrix A[MxN] to reduced echelon form using Gauss-Jordan Elimination.
Defined as:
in which, A[MxN] is input matrix, C[MxN] is the output matrix in reduced echelon form (in other words, C[M,1:M] is the identity matrix).
| M | number of rows of input/output matrices |
| N | number of columns of input/output matrices (N >= M) |
| pInput | a pointer to the base of the input matrix and the output matrix, in APU memory |
| epsTol | threshold that smaller than it, a value considered zero |
References APU_API_GAUSS, APU_GET_DATA_MEM_ABS, APU_GET_DATA_MEM_OFFSET, and APU_HEAP_ADDR.
| void APUConfigFft | ( | uint16_t | N, |
| void * | pX | ||
| ) |
Configure APU accelerator for Fast Fourier transform.
Computes the Discrete Fourier transform (DFT) of a vector using a fast Fourier transform (FFT) algorithm.
Defined as:
in which, X is the input vector length N, Y is the DFT of X with same length.
| N | length of input/output vectors |
| pX | a pointer to the base of the input/output vector (since this is config, this pointer is just a placeholder), in APU memory |
References APU_API_FFT, and APU_GET_DATA_MEM_OFFSET.
| void APUComputeFft | ( | uint16_t | N, |
| void * | pX | ||
| ) |
APU accelerator for Fast Fourier transform.
Computes the Discrete Fourier transform (DFT) of a vector using a fast Fourier transform (FFT) algorithm.
Defined as:
in which, X is the input vector length N, Y is the DFT of X with same length.
| N | length of input/output vectors |
| pX | a pointer to the base of the input/output vector, in APU memory |
References APU_API_FFT, and APU_GET_DATA_MEM_OFFSET.
| void APUComputeIfft | ( | uint16_t | N, |
| void * | pX | ||
| ) |
APU accelerator for invert Fast Fourier transform.
Computes the invert Discrete Fourier transform (DFT) of a vector using a fast Fourier transform (FFT) algorithm.
Defined as:
in which, X is the input vector length N, Y is the invert DFT of X with same length.
| N | length of input/output vectors |
| pX | a pointer to the base of the input/output vector, in APU memory |
References APU_API_FFT, and APU_GET_DATA_MEM_OFFSET.
| void APUUnitCircle | ( | uint16_t | N, |
| uint16_t | M, | ||
| uint16_t | phase, | ||
| uint16_t | conj, | ||
| void * | pResult | ||
| ) |
APU accelerator for generating points evenly distributed on unit circle.
APU generates a unit circle as follows: exp(-j*2*pi*(k*M+phase)/1024 * (-1)^(conj)) here k is iterated internally by the APU from 0 to N-1. The result is stored at pResult
| N | number of points to be generated |
| M | constant M in k*M+phase |
| phase | constant phase in k*M+phase |
| conj |
|
| pResult | a pointer to the output vector of points, in APU memory |
References APU_API_UNITCIRC, and APU_GET_DATA_MEM_OFFSET.
| void APUVectorMaxMin | ( | uint16_t | N, |
| void * | pInput, | ||
| float | thresh, | ||
| uint16_t | op, | ||
| void * | pResult | ||
| ) |
APU accelerator for computing max/min of the real part of a vector and a real value scalar.
APU accelerator for computing max/min of the real part of a vector and a real value scalar.
When op is APU_OP_MAX the function is defined as:
When op is APU_OP_MIN the function is defined as:
in which, X and Y is the N-length complex vector, and thresh is a real scalar.
| N | length of input/output vectors |
| pInput | a pointer to the base of the input vector, in APU memory |
| thresh | a real value threshold to be compared against |
| op | select between max or min operators |
| pResult | a pointer to the output vector of points, in APU memory |
References APU_API_MAXMIN, APU_GET_DATA_MEM_ABS, APU_GET_DATA_MEM_OFFSET, and APU_HEAP_ADDR.
| void APUVectorR2C | ( | uint16_t | N, |
| void * | pInputA, | ||
| void * | pInputB, | ||
| uint16_t | op, | ||
| void * | pResult | ||
| ) |
APU accelerator for converting back and forth between real and complex numbers.
APU accelerator for converting back and forth between real and complex numbers for vectors.
Defined as:
in which, A, B and Y are N-length complex vectors.
| N | length of input/output vectors |
| pInputA | a pointer to the base of the input vector A, in APU memory |
| pInputB | a pointer to the base of the input vector B, in APU memory Note that when only vector A is used, this pInputB pointer is ignored and can be NULL. |
| pResult | a pointer to the base of the output vector Y, in APU memory |
| op | select among converters, must be one of: |
| pResult | a pointer to the output vector of points, in APU memory |
References APU_API_R2C, and APU_GET_DATA_MEM_OFFSET.
| void APUHermLo | ( | uint16_t | N, |
| void * | pInput, | ||
| void * | pResult | ||
| ) |
APU accelerator for converting Hermitian upper-triangular to lower-triangular.
APU accelerator for converting converting Hermitian upper-triangular to lower-triangular. To save memory, APU stores only upper-triangular elements of Hermitian matrix in column-major order. This function converts this format to lower-triangular, column-major order Hermitian.
| N | length of input/output vectors |
| pInput | a pointer to the base of the input vector, in APU memory |
| pResult | a pointer to the output vector of points, in APU memory |
References APU_API_HERMLO, and APU_GET_DATA_MEM_OFFSET.