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