scipy.signal.lp2hp_zpk#

scipy.signal.lp2hp_zpk(z, p, k, wo=1.0)[source]#

Transform a lowpass filter prototype to a highpass filter.

Return an analog high-pass filter with cutoff frequency wo from an analog low-pass filter prototype with unity cutoff frequency, using zeros, poles, and gain (‘zpk’) representation.

Parameters:
zarray_like

Zeros of the analog filter transfer function.

parray_like

Poles of the analog filter transfer function.

kfloat

System gain of the analog filter transfer function.

wofloat

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

Returns:
zndarray

Zeros of the transformed high-pass filter transfer function.

pndarray

Poles of the transformed high-pass filter transfer function.

kfloat

System gain of the transformed high-pass filter.

Notes

This is derived from the s-plane substitution

\[s \rightarrow \frac{\omega_0}{s}\]

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

Added in version 1.1.0.

Examples

Use the ‘zpk’ (Zero-Pole-Gain) representation of a lowpass filter to transform it to a highpass filter with a cutoff frequency wo.

>>> from scipy.signal import lp2hp_zpk
>>> z   = [ -2 + 3j ,  -0.5 - 0.8j ]
>>> p   = [ -1      ,  -4          ]
>>> k   = 10
>>> wo  = 0.6
>>> lp2hp_zpk(z, p, k, wo)
(   array([-0.09230769-0.13846154j, -0.33707865+0.53932584j]),
    array([-0.6 , -0.15]),
    8.5)