levdur#
- class diffsptk.LevinsonDurbin(lpc_order: int, eps: float | None = None, device: device | None = None, dtype: dtype | None = None)[source]#
See this page for details. The implementation is based on a simple matrix inversion.
- Parameters:
- lpc_orderint >= 0
The order of the LPC coefficients, \(M\).
- epsfloat >= 0
A small value to improve numerical stability.
- devicetorch.device or None
The device of this module.
- dtypetorch.dtype or None
The data type of this module.
- forward(r: Tensor) Tensor [source]#
Solve a Yule-Walker linear system.
- Parameters:
- rTensor [shape=(…, M+1)]
The autocorrelation.
- Returns:
- outTensor [shape=(…, M+1)]
The gain and the LPC coefficients.
Examples
>>> x = diffsptk.nrand(4) >>> x tensor([ 0.8226, -0.0284, -0.5715, 0.2127, 0.1217]) >>> acorr = diffsptk.Autocorrelation(5, 2) >>> levdur = diffsptk.LevinsonDurbin(2) >>> a = levdur(acorr(x)) >>> a tensor([0.8726, 0.1475, 0.5270])
- diffsptk.functional.levdur(r: Tensor, eps: float | None = None) Tensor [source]#
Solve a Yule-Walker linear system.
- Parameters:
- rTensor [shape=(…, M+1)]
The autocorrelation.
- epsfloat >= 0 or None
A small value to improve numerical stability.
- Returns:
- outTensor [shape=(…, M+1)]
The gain and LPC coefficients.