PAL Algorithms: Estimation and Optimization
Linear prediction, non-negative least squares, and recursive least-squares estimation.
|
|
|---|---|
KiratAlgCorePalAlgoLevinsonDurbinSignature
T_INT KiratAlgCorePalAlgoLevinsonDurbin( T_FLOAT* pfAcf, T_INT iAcfLength, T_FLOAT* pfLpc, T_FLOAT* pfTemp, T_INT iLpcLength, T_FLOAT* pfErrorPower, T_BOOL bNumericalCheck);Description
Runs the Levinson-Durbin recursion for a real autocorrelation sequence and returns LPC/predictor coefficients and, optionally, the residual error power. Mathematical operation
\(k_m=\frac{r[m]-\sum_{i=1}^{m-1}a_i^{(m-1)}r[m-i]}{E_{m-1}},\qquad E_m=E_{m-1}(1-k_m^2)\) |
|
KiratAlgCorePalAlgoLevinsonDurbinComplexSignature
T_INT KiratAlgCorePalAlgoLevinsonDurbinComplex( T_COMPLEX* pcAcf, T_INT iAcfLength, T_COMPLEX* pcLpc, T_COMPLEX* pcTemp, T_INT iLpcLength, T_FLOAT* pfErrorPower);Description
Runs the complex Levinson-Durbin recursion for a complex autocorrelation sequence. Mathematical operation
\(E_m=E_{m-1}(1-|k_m|^2)\) |
|
KiratAlgCorePalAlgoNnlsSignature
T_INT KiratAlgCorePalAlgoNnls( T_FLOAT **a, T_INT m, T_INT n, T_FLOAT *b, T_FLOAT *x, T_FLOAT *rnorm, T_FLOAT *wp, T_FLOAT *zzp, T_INT *indexp, struct tKiratAlgCoreMemManagement *psMemman );Description
Solves a non-negative least-squares problem (NNLS): it minimizes the squared residual subject to x ≥ 0 using the Lawson-Hanson approach. Mathematical operation
\(\hat{\mathbf x}=\arg\min_{\mathbf x\ge 0}\|\mathbf A\mathbf x-\mathbf b\|_2^2\) |
|
KiratAlgcorePalAlgoRlsSignature
void KiratAlgcorePalAlgoRls( T_COMPLEX *pcRef1, T_COMPLEX *pcRef2, T_COMPLEX *pcExc1, T_COMPLEX *pcExc2, T_COMPLEX **ppcFilter, T_COMPLEX *pcGain, T_COMPLEX **ppcSInv, T_COMPLEX **ppcError, T_COMPLEX *pcSInvExc1LambdaInv, T_COMPLEX **ppcSInvTemp1, T_COMPLEX **ppcSInvTemp2, T_COMPLEX **ppcErrorTemp1, T_COMPLEX **ppcErrorTemp2, T_COMPLEX **ppcFilterTemp, T_INT iSize1, T_INT iSize2, T_INT iSize3, T_FLOAT fLambdaInv, T_FLOAT fStepSize );Description
Implements a complex matrix RLS update. It updates the inverse correlation matrix, gain vector, error, and filter matrix using a forgetting factor and step size. Mathematical operation
\(\mathbf g=\frac{\lambda^{-1}\mathbf S^{-1}\mathbf e_1}{1+\mathbf e_2^H\lambda^{-1}\mathbf S^{-1}\mathbf e_1},\quad \mathbf S^{-1}\leftarrow\lambda^{-1}(\mathbf S^{-1}-\mathbf g\mathbf e_2^H\mathbf S^{-1})\) |