scipy.signal.

sosfilt_zi#

scipy.signal.sosfilt_zi(sos)[Quelle]#

Konstruiere Anfangsbedingungen für sosfilt für den stationären Zustand der Sprungantwort.

Berechne einen Anfangszustand zi für die Funktion sosfilt, der dem stationären Zustand der Sprungantwort entspricht.

Eine typische Verwendung dieser Funktion ist das Setzen des Anfangszustands, sodass die Ausgabe des Filters mit demselben Wert beginnt wie das erste Element des zu filternden Signals.

Parameter:
sosarray_like

Array von Koeffizienten von Zweikreisfiltern, muss die Form (n_sections, 6) haben. Siehe sosfilt für die Spezifikation des SOS-Filterformats.

Rückgabe:
zindarray

Anfangsbedingungen, die für die Verwendung mit sosfilt geeignet sind, Form (n_sections, 2).

Siehe auch

sosfilt, zpk2sos

Hinweise

Hinzugefügt in Version 0.16.0.

Beispiele

Filterung eines Rechteckpulses, der zur Zeit 0 beginnt, mit und ohne Verwendung des zi-Arguments von scipy.signal.sosfilt.

>>> import numpy as np
>>> from scipy import signal
>>> import matplotlib.pyplot as plt
>>> sos = signal.butter(9, 0.125, output='sos')
>>> zi = signal.sosfilt_zi(sos)
>>> x = (np.arange(250) < 100).astype(int)
>>> f1 = signal.sosfilt(sos, x)
>>> f2, zo = signal.sosfilt(sos, x, zi=zi)
>>> plt.plot(x, 'k--', label='x')
>>> plt.plot(f1, 'b', alpha=0.5, linewidth=2, label='filtered')
>>> plt.plot(f2, 'g', alpha=0.25, linewidth=4, label='filtered with zi')
>>> plt.legend(loc='best')
>>> plt.show()
../../_images/scipy-signal-sosfilt_zi-1.png