LPC
- Linear Predictive Coding
DSP.LPC.lpc
— Functionlpc(x::AbstractVector, p::Integer, [LPCBurg()])
Given input signal x
and prediction order p
, returns IIR coefficients a
and average reconstruction error prediction_err
. Note that this method does NOT return the leading $1$ present in the true autocorrelative estimate; it omits it as it is implicit in every LPC estimate, and must be manually reintroduced if the returned vector should be treated as a polynomial.
The algorithm used is determined by the last optional parameter, and can be either LPCBurg
(arburg
) or LPCLevinson
(levinson
).
DSP.LPC.arburg
— Functionarburg(x::AbstractVector, p::Integer)
LPC (Linear Predictive Coding) estimation, using the Burg method. This function implements the mathematics published in [Lagrange], and the recursion relation as noted in [Vos], in turn referenced from [Andersen].
DSP.LPC.levinson
— Functionlevinson(x::AbstractVector, p::Integer)
Implements Levinson recursion, as described in [Levinson], to find the solution a
of the linear equation
\[\mathbf{T} (-\vec{a}) = \begin{bmatrix} x_2 \\ \vdots \\ x_{p+1} \end{bmatrix}\]
in the case where $\mathbf{T}$ is Hermitian and Toeplitz, with first column x[1:p]
. This function can be used for LPC (Linear Predictive Coding) estimation, by providing LPCLevinson()
as an argument to lpc
.
- LagrangeEnhanced Partial Tracking Using Linear Prediction. DAFX 2003 article, Lagrange et al
- VosA Fast Implementation of Burg’s Method. © 2013 Koen Vos, licensed under CC BY 3.0
- AndersenN. Andersen. Comments on the performance of maximum entropy algorithms. Proceedings of the IEEE 66.11: 1581-1582, 1978.
- LevinsonThe Wiener (RMS) Error Criterion in Filter Design and Prediction. N. Levinson, Studies in Applied Mathematics 25(1946), 261-278.
https://doi.org/10.1002/sapm1946251261