dfs#

diffsptk.IIR#

alias of InfiniteImpulseResponseDigitalFilter

class diffsptk.InfiniteImpulseResponseDigitalFilter(b=None, a=None, ir_length=None, mode='fir')[source]#

See this page for details.

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

Numerator coefficients.

aList [shape=(N+1,)]

Denominator coefficients.

ir_lengthint >= 1 [scalar]

Length of impulse response (valid only if mode is ‘fir’).

mode[‘fir’, ‘iir’]

If ‘fir’, filter is approximated by a finite impulse response.

forward(x, b=None, a=None)[source]#

Apply an IIR digital filter.

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

Input waveform.

bTensor [shape=(M+1,)]

Numerator coefficients.

aTensor [shape=(N+1,)]

Denominator coefficients.

Returns:
yTensor [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])

See also

df2