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 / lp2hp

function

scipy.signal._filter_design:lp2hp

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

Signature

def lp2hp(b, a, wo = 1.0)

Summary

Transform a lowpass filter prototype to a highpass filter.

Extended Summary

Return an analog high-pass filter with cutoff frequency wo 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 cutoff, as angular frequency (e.g., rad/s). Defaults to no change.

Returns

b : array_like

Numerator polynomial coefficients of the transformed high-pass filter.

a : array_like

Denominator polynomial coefficients of the transformed high-pass filter.

Notes

This is derived from the s-plane substitution

This maintains symmetry of the lowpass and highpass responses on a logarithmic scale.

Examples

from scipy import signal
import matplotlib.pyplot as plt
✓
lp = signal.lti([1.0], [1.0, 1.0])
hp = signal.lti(*signal.lp2hp(lp.num, lp.den))
w, mag_lp, p_lp = lp.bode()
w, mag_hp, p_hp = hp.bode(w)
✓
plt.plot(w, mag_lp, label='Lowpass')
plt.plot(w, mag_hp, label='Highpass')
plt.semilogx()
✗
[]
plt.grid(True)
✓
plt.xlabel('Frequency [rad/s]')
plt.ylabel('Amplitude [dB]')
plt.legend()
✗
<matplotlib.legend.Legend object at 0x7f3f68866e40>

See also

bilinear
lp2bp
lp2bs
lp2hp_zpk
lp2lp

Aliases

  • scipy.signal.lp2hp