buttord#
- scipy.signal.buttord(wp, ws, gpass, gstop, analog=False, fs=None)[Quelle]#
Bestimmung der Ordnung eines Butterworth-Filters.
Gibt die Ordnung des niedrigsten digitalen oder analogen Butterworth-Filters 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 Butterworth-Filter, der die Spezifikationen erfüllt.
- wnndarray oder float
Die natürliche Frequenz des Butterworth-Filters (d.h. die „3-dB-Frequenz“). Sollte zusammen mit
butterverwendet werden, um Filterergebnisse zu erhalten. Wenn fs angegeben ist, ist dies in den gleichen Einheiten und fs muss ebenfalls anbutterübergeben werden.
Siehe auch
butterFilterentwurf unter Verwendung von Ordnung und kritischen Punkten
cheb1ordOrdnung und kritische Punkte aus Durchlass- und Sperrbereichsspezifikationen ermitteln
cheb2ord,ellipordiirfilterAllgemeines Filterdesign unter Verwendung von Ordnung und kritischen Frequenzen
iirdesignAllgemeines Filterdesign mit Spezifikationen für Durchlass- und Sperrbereich
Beispiele
Entwerfen Sie einen analogen Bandpassfilter mit einem Durchlassbereich innerhalb von 3 dB von 20 bis 50 rad/s, während er unterhalb von 14 und oberhalb von 60 rad/s mindestens -40 dB Unterdrückung aufweist. Plotten Sie seine Frequenzantwort, die die Durchlass- und Sperrbereichsbeschränkungen in Grau zeigt.
>>> from scipy import signal >>> import matplotlib.pyplot as plt >>> import numpy as np
>>> N, Wn = signal.buttord([20, 50], [14, 60], 3, 40, True) >>> b, a = signal.butter(N, Wn, 'band', True) >>> w, h = signal.freqs(b, a, np.logspace(1, 2, 500)) >>> plt.semilogx(w, 20 * np.log10(abs(h))) >>> plt.title('Butterworth bandpass filter fit to constraints') >>> plt.xlabel('Frequency [rad/s]') >>> plt.ylabel('Amplitude [dB]') >>> plt.grid(which='both', axis='both') >>> plt.fill([1, 14, 14, 1], [-40, -40, 99, 99], '0.9', lw=0) # stop >>> plt.fill([20, 20, 50, 50], [-99, -3, -3, -99], '0.9', lw=0) # pass >>> plt.fill([60, 60, 1e9, 1e9], [99, -40, -40, 99], '0.9', lw=0) # stop >>> plt.axis([10, 100, -60, 3]) >>> plt.show()