scipy.signal.windows.

hann#

scipy.signal.windows.hann(M, sym=True, *, xp=None, device=None)[Quelle]#

Gibt ein Hann-Fenster zurück.

Das Hann-Fenster ist ein Rauscheine, das durch die Verwendung einer erhöhten Kosinus- oder Sinus-Quadrat-Funktion mit Null-Enden gebildet wird.

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 Hann-Fenster ist definiert als

\[w(n) = 0.5 - 0.5 \cos\left(\frac{2\pi{n}}{M-1}\right) \qquad 0 \leq n \leq M-1\]

Das Fenster wurde nach Julius von Hann, einem österreichischen Meteorologen, benannt. Es ist auch als Cosine Bell bekannt. Es wird manchmal fälschlicherweise als „Hanning“-Fenster bezeichnet, aufgrund der Verwendung von „hann“ als Verb im Originalpapier und der Verwechslung mit dem sehr ähnlichen Hamming-Fenster.

Die meisten Referenzen auf das Hann-Fenster stammen aus der Signalverarbeitungsliteratur, wo es als eine von vielen Fensterfunktionen zur Glättung von Werten verwendet wird. Es ist auch als Apodisierungsfunktion (was „Entfernung des Fußes“ bedeutet, d.h. Glättung von Diskontinuitäten am Anfang und Ende des abgetasteten Signals) oder Tapering-Funktion bekannt.

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. 106-108.

[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.hann(51)
>>> plt.plot(window)
>>> plt.title("Hann 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 = np.abs(fftshift(A / abs(A).max()))
>>> response = 20 * np.log10(np.maximum(response, 1e-10))
>>> plt.plot(freq, response)
>>> plt.axis([-0.5, 0.5, -120, 0])
>>> plt.title("Frequency response of the Hann window")
>>> plt.ylabel("Normalized magnitude [dB]")
>>> plt.xlabel("Normalized frequency [cycles per sample]")
../../_images/scipy-signal-windows-hann-1_00.png
../../_images/scipy-signal-windows-hann-1_01.png