poledf#
- class diffsptk.AllPoleDigitalFilter(filter_order, frame_period, ignore_gain=False)[source]#
See this page for details.
- Parameters:
- filter_orderint >= 0
The order of the filter, \(M\).
- frame_periodint >= 1
The frame period in samples, \(P\).
- ignore_gainbool
If True, perform filtering without the gain.
References
[1]C.-Y. Yu et al., “Differentiable time-varying linear prediction in the context of end-to-end analysis-by-synthesis,” Proceedings of Interspeech, 2024.
- forward(x, a)[source]#
Apply an all-pole digital filter.
- Parameters:
- xTensor [shape=(…, T)]
The excitation signal.
- aTensor [shape=(…, T/P, M+1)]
The filter coefficients.
- Returns:
- outTensor [shape=(…, T)]
The output signal.
Examples
>>> x = diffsptk.step(4) >>> a = diffsptk.ramp(4) >>> poledf = diffsptk.AllPoleDigitalFilter(0, 1) >>> y = poledf(x, a.view(-1, 1)) >>> y tensor([[0., 1., 2., 3., 4.]])
- diffsptk.functional.poledf(x, a, frame_period=80, ignore_gain=False)[source]#
Apply an all-pole digital filter.
- Parameters:
- xTensor [shape=(…, T)]
The excitation signal.
- aTensor [shape=(…, T/P, M+1)]
The filter coefficients.
- frame_periodint >= 1
The frame period in samples, \(P\).
- ignore_gainbool
If True, perform filtering without the gain.
- Returns:
- outTensor [shape=(…, T)]
The output signal.
See also