scipy.signal.

freqs_zpk#

scipy.signal.freqs_zpk(z, p, k, worN=200)[Quelle]#

Frequenzgang eines analogen Filters berechnen.

Gegeben die Nullstellen z, Pole p und Verstärkung k eines Filters, berechnet seinen Frequenzgang

           (jw-z[0]) * (jw-z[1]) * ... * (jw-z[-1])
H(w) = k * ----------------------------------------
           (jw-p[0]) * (jw-p[1]) * ... * (jw-p[-1])
Parameter:
zarray_like

Nullstellen eines linearen Filters

parray_like

Pole eines linearen Filters

kSkalar

Verstärkung eines linearen Filters

worN{None, int, array_like}, optional

Wenn None, dann Berechnung bei 200 Frequenzen um die interessanten Teile der Antwortkurve (bestimmt durch Pol-Nullstellen-Positionen). Wenn eine einzelne Ganzzahl, dann Berechnung bei dieser Anzahl von Frequenzen. Andernfalls wird die Antwort bei den Winkelfrequenzen (z. B. rad/s) berechnet, die in worN angegeben sind.

Rückgabe:
wndarray

Die Winkelfrequenzen, bei denen h berechnet wurde.

hndarray

Der Frequenzgang.

Siehe auch

freqs

Berechnet den Frequenzgang eines analogen Filters in TF-Form

freqz

Berechnet den Frequenzgang eines digitalen Filters in TF-Form

freqz_zpk

Berechnet den Frequenzgang eines digitalen Filters in ZPK-Form

Hinweise

Hinzugefügt in Version 0.19.0.

Beispiele

>>> import numpy as np
>>> from scipy.signal import freqs_zpk, iirfilter
>>> z, p, k = iirfilter(4, [1, 10], 1, 60, analog=True, ftype='cheby1',
...                     output='zpk')
>>> w, h = freqs_zpk(z, p, k, worN=np.logspace(-1, 2, 1000))
>>> import matplotlib.pyplot as plt
>>> plt.semilogx(w, 20 * np.log10(abs(h)))
>>> plt.xlabel('Frequency [rad/s]')
>>> plt.ylabel('Amplitude response [dB]')
>>> plt.grid(True)
>>> plt.show()
../../_images/scipy-signal-freqs_zpk-1.png