This is a pre-release version (2.0.0.dev0+git20260907.41eeb59).Go to latest (1.18.0)
{ } Raw JSON

bundles / scipy 2.0.0.dev0+git20260907.41eeb59 / scipy / signal / _filter_design / lp2bs

function

scipy.signal._filter_design:lp2bs

source: build-install/usr/lib/python3.14/site-packages/scipy/signal/_filter_design.py:2253

Signature

def lp2bs(b, a, wo = 1.0, bw = 1.0)

Summary

Transform a lowpass filter prototype to a bandstop filter.

Extended Summary

Return an analog band-stop filter with center frequency wo and bandwidth bw from an analog low-pass filter prototype with unity cutoff frequency, in transfer function ('ba') representation.

Parameters

b : array_like, shape (M,)

Numerator polynomial coefficients. Must be 1-D.

a : array_like, shape (N,)

Denominator polynomial coefficients. Must be 1-D.

wo : float

Desired stopband center, as angular frequency (e.g., rad/s). Defaults to no change.

bw : float

Desired stopband width, as angular frequency (e.g., rad/s). Defaults to 1.

Returns

b : array_like

Numerator polynomial coefficients of the transformed band-stop filter.

a : array_like

Denominator polynomial coefficients of the transformed band-stop filter.

Notes

This is derived from the s-plane substitution

This is the "wideband" transformation, producing a stopband with geometric (log frequency) symmetry about wo.

Examples

from scipy import signal
import matplotlib.pyplot as plt
✓
lp = signal.lti([1.0], [1.0, 1.5])
bs = signal.lti(*signal.lp2bs(lp.num, lp.den))
w, mag_lp, p_lp = lp.bode()
w, mag_bs, p_bs = bs.bode(w)
✓
plt.plot(w, mag_lp, label='Lowpass')
plt.plot(w, mag_bs, label='Bandstop')
plt.semilogx()
✗
[]
plt.grid(True)
✓
plt.xlabel('Frequency [rad/s]')
plt.ylabel('Amplitude [dB]')
plt.legend()
✗
<matplotlib.legend.Legend object at 0x7f3f68865d30>

See also

bilinear
lp2bp
lp2bs_zpk
lp2hp
lp2lp

Aliases

  • scipy.signal.lp2bs