scipy.signal.windows.

general_hamming#

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

Gibt ein verallgemeinertes Hamming-Fenster zurück.

Das verallgemeinerte Hamming-Fenster wird konstruiert, indem ein Rechteckfenster mit einer Periode einer Kosinusfunktion multipliziert wird [1].

Parameter:
Mint

Anzahl der Punkte im Ausgabefenster. Wenn Null, wird ein leeres Array zurückgegeben. Bei negativen Werten wird eine Ausnahme ausgelöst.

alphafloat

Der Fensterkoeffizient, \(\alpha\)

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).

Siehe auch

hamming, hann

Hinweise

Das verallgemeinerte Hamming-Fenster ist definiert als

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

Sowohl das übliche Hamming-Fenster als auch das Hann-Fenster sind Spezialfälle des verallgemeinerten Hamming-Fensters mit \(\alpha\) = 0,54 bzw. \(\alpha\) = 0,5 [2].

Referenzen

[1]

DSPRelated, „Generalized Hamming Window Family“, https://www.dsprelated.com/freebooks/sasp/Generalized_Hamming_Window_Family.html

[2]

Wikipedia, „Fensterfunktion“, https://en.wikipedia.org/wiki/Window_function

[3]

Riccardo Piantanida ESA, „Sentinel-1 Level 1 Detailed Algorithm Definition“, https://sentinel.esa.int/documents/247904/1877131/Sentinel-1-Level-1-Detailed-Algorithm-Definition

[4]

Matthieu Bourbigot ESA, „Sentinel-1 Product Definition“, https://sentinel.esa.int/documents/247904/1877131/Sentinel-1-Product-Definition

Beispiele

Die Sentinel-1A/B Instrument Processing Facility verwendet verallgemeinerte Hamming-Fenster bei der Verarbeitung von weltraumgestützten Synthetic Aperture Radar (SAR)-Daten [3]. Die Einrichtung verwendet verschiedene Werte für den \(\alpha\)-Parameter, abhängig vom Betriebsmodus des SAR-Instruments. Einige gängige \(\alpha\)-Werte sind 0,75, 0,7 und 0,52 [4]. Als Beispiel plotten wir diese verschiedenen Fenster.

>>> import numpy as np
>>> from scipy.signal.windows import general_hamming
>>> from scipy.fft import fft, fftshift
>>> import matplotlib.pyplot as plt
>>> fig1, spatial_plot = plt.subplots()
>>> spatial_plot.set_title("Generalized Hamming Windows")
>>> spatial_plot.set_ylabel("Amplitude")
>>> spatial_plot.set_xlabel("Sample")
>>> fig2, freq_plot = plt.subplots()
>>> freq_plot.set_title("Frequency Responses")
>>> freq_plot.set_ylabel("Normalized magnitude [dB]")
>>> freq_plot.set_xlabel("Normalized frequency [cycles per sample]")
>>> for alpha in [0.75, 0.7, 0.52]:
...     window = general_hamming(41, alpha)
...     spatial_plot.plot(window, label="{:.2f}".format(alpha))
...     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())))
...     freq_plot.plot(freq, response, label="{:.2f}".format(alpha))
>>> freq_plot.legend(loc="upper right")
>>> spatial_plot.legend(loc="upper right")
../../_images/scipy-signal-windows-general_hamming-1_00.png
../../_images/scipy-signal-windows-general_hamming-1_01.png