scipy.signal.

ellipord#

scipy.signal.ellipord(wp, ws, gpass, gstop, analog=False, fs=None)[Quelle]#

Bestimmung der Ordnung für elliptische (Cauer-) Filter.

Gibt die Ordnung des digitalen oder analogen elliptischen Filters niedrigster Ordnung zurück, der im Durchlassbereich nicht mehr als gpass dB verliert und im Sperrbereich mindestens gstop dB Dämpfung aufweist.

Parameter:
wp, wsfloat

Grenzfrequenzen des Durchlass- und Sperrbereichs.

Für digitale Filter sind diese in denselben Einheiten wie fs angegeben. Standardmäßig ist fs 2 Halbzyklen/Sample, sodass diese von 0 bis 1 normalisiert sind, wobei 1 die Nyquist-Frequenz ist. (wp und ws sind somit in Halbzyklen / Sample.) Zum Beispiel

  • Tiefpass: wp = 0.2, ws = 0.3

  • Hochpass: wp = 0.3, ws = 0.2

  • Bandpass: wp = [0.2, 0.5], ws = [0.1, 0.6]

  • Bandstopp: wp = [0.1, 0.6], ws = [0.2, 0.5]

Für analoge Filter sind wp und ws Winkelgeschwindigkeiten (z. B. rad/s).

gpassfloat

Der maximale Verlust im Durchlassbereich (dB).

gstopfloat

Die minimale Dämpfung im Sperrbereich (dB).

analogbool, optional

Wenn True, wird ein analoger Filter zurückgegeben, andernfalls ein digitaler Filter.

fsfloat, optional

Die Abtastfrequenz des digitalen Systems.

Hinzugefügt in Version 1.2.0.

Rückgabe:
ordint

Die niedrigste Ordnung für einen elliptischen (Cauer-) Filter, der die Spezifikationen erfüllt.

wnndarray oder float

Die natürliche Frequenz des Tschebyscheff-Filters (die „3-dB-Frequenz“), die mit ellip zu Filterergebnissen verwendet wird. Wenn fs angegeben ist, sind die Einheiten dieselben, und fs muss ebenfalls an ellip übergeben werden.

Siehe auch

ellip

Filterentwurf unter Verwendung von Ordnung und kritischen Punkten

buttord

Ordnung und kritische Punkte aus Durchlass- und Sperrbereichsspezifikationen ermitteln

cheb1ord, cheb2ord
iirfilter

Allgemeines Filterdesign unter Verwendung von Ordnung und kritischen Frequenzen

iirdesign

Allgemeines Filterdesign mit Spezifikationen für Durchlass- und Sperrbereich

Beispiele

Entwerfen Sie einen analogen Hochpassfilter, sodass der Durchlassbereich innerhalb von 3 dB oberhalb von 30 rad/s liegt, während eine Dämpfung von -60 dB bei 10 rad/s erreicht wird. Plotten Sie seine Frequenzantwort und zeigen Sie die Grenzen von Durchlass- und Sperrbereich in Grau.

>>> from scipy import signal
>>> import matplotlib.pyplot as plt
>>> import numpy as np
>>> N, Wn = signal.ellipord(30, 10, 3, 60, True)
>>> b, a = signal.ellip(N, 3, 60, Wn, 'high', True)
>>> w, h = signal.freqs(b, a, np.logspace(0, 3, 500))
>>> plt.semilogx(w, 20 * np.log10(abs(h)))
>>> plt.title('Elliptical highpass filter fit to constraints')
>>> plt.xlabel('Frequency [rad/s]')
>>> plt.ylabel('Amplitude [dB]')
>>> plt.grid(which='both', axis='both')
>>> plt.fill([.1, 10,  10,  .1], [1e4, 1e4, -60, -60], '0.9', lw=0) # stop
>>> plt.fill([30, 30, 1e9, 1e9], [-99,  -3,  -3, -99], '0.9', lw=0) # pass
>>> plt.axis([1, 300, -80, 3])
>>> plt.show()
../../_images/scipy-signal-ellipord-1.png