tf2zpk#
- scipy.signal.tf2zpk(b, a)[Quelle]#
Gibt die Null-, Pol- und Verstärkungsdarstellung (z, p, k) aus einer Zähler-Nenner-Darstellung eines linearen Filters zurück.
- Parameter:
- barray_like
Koeffizienten des Zählerpolynoms.
- aarray_like
Koeffizienten des Nennerpolynoms.
- Rückgabe:
- zndarray
Nullen der Übertragungsfunktion.
- pndarray
Pole der Übertragungsfunktion.
- kfloat
Systemverstärkung.
Hinweise
Wenn einige Werte von b zu nahe an 0 sind, werden sie entfernt. In diesem Fall wird eine Warnung `BadCoefficients` ausgegeben.
Die Arrays b und a werden als Koeffizienten für positive, absteigende Potenzen der Variablen der Übertragungsfunktion interpretiert. Daher können die Eingaben \(b = [b_0, b_1, ..., b_M]\) und \(a =[a_0, a_1, ..., a_N]\) einen analogen Filter der Form
\[H(s) = \frac {b_0 s^M + b_1 s^{(M-1)} + \cdots + b_M} {a_0 s^N + a_1 s^{(N-1)} + \cdots + a_N}\]oder einen diskreten Filter der Form
\[H(z) = \frac {b_0 z^M + b_1 z^{(M-1)} + \cdots + b_M} {a_0 z^N + a_1 z^{(N-1)} + \cdots + a_N}\]Diese Form der "positiven Potenzen" findet sich häufiger in der Regelungstechnik. Wenn M und N gleich sind (was für alle durch die bilineare Transformation erzeugten Filter zutrifft), dann ist dies äquivalent zur Form der "negativen Potenzen" für diskrete Zeit, die in der DSP bevorzugt wird
\[H(z) = \frac {b_0 + b_1 z^{-1} + \cdots + b_M z^{-M}} {a_0 + a_1 z^{-1} + \cdots + a_N z^{-N}}\]Obwohl dies für gängige Filter zutrifft, denken Sie daran, dass dies im allgemeinen Fall nicht zutrifft. Wenn M und N nicht gleich sind, müssen die Koeffizienten der diskreten Übertragungsfunktion zuerst in die Form "positive Potenzen" umgewandelt werden, bevor die Pole und Nullen gefunden werden.
Beispiele
Finden Sie die Nullen, Pole und die Verstärkung eines Filters mit der Übertragungsfunktion
\[H(s) = \frac{3s^2}{s^2 + 5s + 13}\]>>> from scipy.signal import tf2zpk >>> tf2zpk([3, 0, 0], [1, 5, 13]) ( array([ 0. , 0. ]), array([ -2.5+2.59807621j , -2.5-2.59807621j]), 3.0)