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
ellipzu Filterergebnissen verwendet wird. Wenn fs angegeben ist, sind die Einheiten dieselben, und fs muss ebenfalls anellipübergeben werden.
Siehe auch
ellipFilterentwurf unter Verwendung von Ordnung und kritischen Punkten
buttordOrdnung und kritische Punkte aus Durchlass- und Sperrbereichsspezifikationen ermitteln
cheb1ord,cheb2ordiirfilterAllgemeines Filterdesign unter Verwendung von Ordnung und kritischen Frequenzen
iirdesignAllgemeines 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()