hamming#
- scipy.signal.windows.hamming(M, sym=True, *, xp=None, device=None)[Quelle]#
Gibt ein Hamming-Fenster zurück.
Das Hamming-Fenster ist ein Verjüngungsfilter, das durch die Verwendung einer umgestülpten Kosinuskurve mit nicht-null Endpunkten gebildet wird, optimiert, um den nächsten Seitenkeulen zu minimieren.
- Parameter:
- Mint
Anzahl der Punkte im Ausgabefenster. Wenn Null, wird ein leeres Array zurückgegeben. Bei negativen Werten wird eine Ausnahme ausgelöst.
- symbool, optional
Wenn True (Standard), wird ein symmetrisches Fenster zur Filterentwurf verwendet. Wenn False, wird ein periodisches Fenster für die Spektralanalyse generiert.
- xparray_namespace, optional
Optionaler Array-Namespace. Sollte mit dem Array-API-Standard kompatibel sein oder von array-api-compat unterstützt werden. Standard:
numpy- device: any
optionale Gerätespezifikation für die Ausgabe. Sollte mit einer der unterstützten Gerätespezifikationen in
xpübereinstimmen.
- Rückgabe:
- wndarray
Das Fenster, dessen Maximalwert auf 1 normiert ist (obwohl der Wert 1 nicht erscheint, wenn M gerade und sym True ist).
Hinweise
Das Hamming-Fenster ist definiert als
\[w(n) = 0.54 - 0.46 \cos\left(\frac{2\pi{n}}{M-1}\right) \qquad 0 \leq n \leq M-1\]Das Hamming-Fenster wurde nach R. W. Hamming benannt, einem Mitarbeiter von J. W. Tukey, und wird in Blackman und Tukey beschrieben. Es wurde zur Glättung der abgeschnittenen Autokovarianzfunktion im Zeitbereich empfohlen. Die meisten Referenzen auf das Hamming-Fenster stammen aus der Signalverarbeitungsliteratur, wo es als eine von vielen Fensterfunktionen zur Glättung von Werten verwendet wird. Es ist auch bekannt als Apodisationsfunktion (was "Fuß entfernen" bedeutet, d. h. Glättung von Diskontinuitäten am Anfang und Ende des Abtastsignals) oder Tapering-Funktion.
Referenzen
[1]Blackman, R.B. und Tukey, J.W., (1958) The measurement of power spectra, Dover Publications, New York.
[2]E.R. Kanasewich, „Time Sequence Analysis in Geophysics“, The University of Alberta Press, 1975, S. 109-110.
[3]Wikipedia, „Fensterfunktion“, https://en.wikipedia.org/wiki/Window_function
[4]W.H. Press, B.P. Flannery, S.A. Teukolsky und W.T. Vetterling, „Numerical Recipes“, Cambridge University Press, 1986, Seite 425.
Beispiele
Plotten Sie das Fenster und seine Frequenzantwort
>>> import numpy as np >>> from scipy import signal >>> from scipy.fft import fft, fftshift >>> import matplotlib.pyplot as plt
>>> window = signal.windows.hamming(51) >>> plt.plot(window) >>> plt.title("Hamming window") >>> plt.ylabel("Amplitude") >>> plt.xlabel("Sample")
>>> plt.figure() >>> A = fft(window, 2048) / (len(window)/2.0) >>> freq = np.linspace(-0.5, 0.5, len(A)) >>> response = 20 * np.log10(np.abs(fftshift(A / abs(A).max()))) >>> plt.plot(freq, response) >>> plt.axis([-0.5, 0.5, -120, 0]) >>> plt.title("Frequency response of the Hamming window") >>> plt.ylabel("Normalized magnitude [dB]") >>> plt.xlabel("Normalized frequency [cycles per sample]")