dfs#

diffsptk.IIR#

alias of InfiniteImpulseResponseDigitalFilter

class diffsptk.InfiniteImpulseResponseDigitalFilter(b=None, a=None, ir_length=None, learnable=False)[source]#

See this page for details.

Parameters:
bList [shape=(M+1,)] or None

Numerator coefficients.

aList [shape=(N+1,)] or None

Denominator coefficients.

ir_lengthint >= 1

Length of impulse response.

learnablebool

If True, the filter coefficients are learnable.

forward(x)[source]#

Apply an IIR digital filter.

Parameters:
xTensor [shape=(…, T)]

Input waveform.

Returns:
outTensor [shape=(…, T)]

Filtered waveform.

Examples

>>> x = diffsptk.ramp(4)
>>> dfs = diffsptk.IIR(b=[1, -0.97])
>>> y = dfs(x)
>>> y
tensor([0.0000, 1.0000, 1.0300, 1.0600, 1.0900])
diffsptk.functional.dfs(x, b=None, a=None)[source]#

Apply an IIR digital filter.

Parameters:
xTensor [shape=(…, T)]

Input waveform.

bTensor [shape=(M+1,)] or None

Numerator coefficients.

aTensor [shape=(N+1,)] or None

Denominator coefficients.

Returns:
outTensor [shape=(…, T)]

Filtered waveform.

See also

df2