scipy 1.8.0 Pypi GitHub Homepage
Other Docs
ParametersReturnsBackRef
bilinear(b, a, fs=1.0)

Transform a set of poles and zeros from the analog s-plane to the digital z-plane using Tustin's method, which substitutes (z-1) / (z+1) for s , maintaining the shape of the frequency response.

Parameters

b : array_like

Numerator of the analog filter transfer function.

a : array_like

Denominator of the analog filter transfer function.

fs : float

Sample rate, as ordinary frequency (e.g., hertz). No prewarping is done in this function.

Returns

z : ndarray

Numerator of the transformed digital filter transfer function.

p : ndarray

Denominator of the transformed digital filter transfer function.

Return a digital IIR filter from an analog one using a bilinear transform.

See Also

bilinear_zpk
lp2bp
lp2bs
lp2hp
lp2lp

Examples

>>> from scipy import signal
... import matplotlib.pyplot as plt
>>> fs = 100
... bf = 2 * np.pi * np.array([7, 13])
... filts = signal.lti(*signal.butter(4, bf, btype='bandpass',
...  analog=True))
... filtz = signal.lti(*signal.bilinear(filts.num, filts.den, fs))
... wz, hz = signal.freqz(filtz.num, filtz.den)
... ws, hs = signal.freqs(filts.num, filts.den, worN=fs*wz)
>>> plt.semilogx(wz*fs/(2*np.pi), 20*np.log10(np.abs(hz).clip(1e-15)),
...  label=r'$|H_z(e^{j \omega})|$')
... plt.semilogx(wz*fs/(2*np.pi), 20*np.log10(np.abs(hs).clip(1e-15)),
...  label=r'$|H(j \omega)|$')
... plt.legend()
... plt.xlabel('Frequency [Hz]')
... plt.ylabel('Magnitude [dB]')
... plt.grid()
See :

Back References

The following pages refer to to this document either explicitly or contain code examples using this.

scipy.signal._filter_design.bilinear_zpk scipy.signal._filter_design.lp2hp_zpk scipy.signal._filter_design.lp2hp scipy.signal._filter_design.lp2lp scipy.signal._filter_design.lp2bp_zpk scipy.signal._filter_design.lp2bs scipy.signal._filter_design.lp2bp scipy.signal._filter_design.lp2bs_zpk scipy.signal._filter_design.bilinear scipy.signal._filter_design.lp2lp_zpk

Local connectivity graph

Hover to see nodes names; edges to Self not shown, Caped at 50 nodes.

Using a canvas is more power efficient and can get hundred of nodes ; but does not allow hyperlinks; , arrows or text (beyond on hover)

SVG is more flexible but power hungry; and does not scale well to 50 + nodes.

All aboves nodes referred to, (or are referred from) current nodes; Edges from Self to other have been omitted (or all nodes would be connected to the central node "self" which is not useful). Nodes are colored by the library they belong to, and scaled with the number of references pointing them


GitHub : /scipy/signal/_filter_design.py#2056
type: <class 'function'>
Commit: