Analyse von Daten-Streams

Blockweise FFT-Analyse aus einem Daten-Stream

Die DFT/FFT ist definiert auf einem zyklisch fortgesetzten, periodischen Signal. Dies führt zu einer zunächst überraschenden Folgerung: Wenn eine FFT-Analyse eines langen Signals benötigt wird, kann nicht einfach das Eingangssignal in Abschnitte unterteilt und mit der DFT transformiert werden. Denn sobald der letzte Wert in einem solchen Abschnitt nicht mit dem ersten übereinstimmt, behandelt die FFT dies als Sprung in der zyklischen Fortsetzung, der sich im Spektrum deutlich abbildet (Spectral Leakage). Das Prinzip wird in folgender Abbildung deutlich. Es wird aus dem Gesamtsignal (schwarz) ein Teilsignal (blau) ausgeschnitten. Die FFT impliziert eine zyklische Fortsetzung des Teilsignals (untere Abbildung) und geht von Sprüngen im zu transformierenden Signal aus, was sich im Spektrum deutlich niederschlägt.

Analyse von Daten-Streams 1:

Abhilfe schafft hier die Gewichtung der Signalabschnitte vor der Transformation mit einer geeigneten Fensterfunktion (für Details siehe nächster Abschnitt). Ein geeignetes Fenster ist so beschaffen, dass sowohl Zeitwerte ganz am Anfang als auch solche ganz am Ende mit einem Faktor Null bzw. nahezu Null multipliziert werden. Folgende Abbildung zeigt selbiges Szenario wie gerade beschrieben, allerdings nun mit einer Fensterfunktion (rot). Die Sprünge in der zyklischen Fortsetzung verschwinden durch die Fensterung, allerdings ist zu beachten, dass die Eigenschaften des Fensters natürlich im Spektrum des gefensterten Teilsignals zu sehen sind. Die Fenstereigenschaft führt jedoch zu in der Regel deutlich geringeren Einflüssen im Spektrum.

Analyse von Daten-Streams 2:

Problematisch bei der Fensterung ist, dass Werte am Rand eines Fensters kaum Berücksichtigung im Spektrum finden. Sollten sich gerade in diesem Bereich Signalmerkmale, die auf mögliche Schädigungen schließen lassen, befinden, könnte es zu einem wesentlichen Informationsverlust kommen. Damit keine Informationen verloren gehen, wird diese Fensterung in der TwinCAT Condition Monitoring Bibliothek mit überlappenden Signalabschnitten vorgenommen. Bei Verwendung des als Standard verwendeten Hann-Fensters wird eine 50% Überlappung empfohlen. Dadurch befinden sich Samples, die sich in einem Fensterabschnitt am Rand befinden, im nächsten Fensterabschnitt in der Mitte.

Folgende Abbildung zeigt schematisch die Vorgehensweise einer FFT-Analyse aus einem Daten-Stream mit 50% Überlappung.

Analyse von Daten-Streams 3:

Aus dem Daten-Stream werden zunächst Puffer mit definierter Länge gefüllt, hier 1600 Werte. Bei der Auswertung der Daten aus Puffer n wird der vorangegangene Puffer hinzugezogen und das nun 3200 Werte lange Datenpaket gefenstert. Das Maximum der Fensterfunktion liegt dabei genau zwischen den beiden Puffern und fällt in Richtung Rand der beiden Puffer auf den Wert Null. Durch Zero Padding wird das Datenpaket auf eine Länge von 4096 Werten verlängert, so dass die Länge eine Potenz von 2 ist und somit durch einen FFT-Algorithmus effizient berechnet werden kann. Das Ergebnis der FFT ist dann ein Datenpaket mit 4096 Werten, welches ggf. auf 2049 Werte reduziert werden kann, falls die Eingangsdaten alle reellwertig sind (siehe Spiegelfrequenzen).

Während der Auswertung von Puffer n, wird Puffer n+1 aufgefüllt bei dessen Auswertung dann wiederum Puffer n hinzugezogen wird. Durch dieses Vorgehen entsteht immer ein 50%iger Überlappungsbereich der gefensterten Zeitbereiche.

Analyse von Daten-Streams 4:

Analyse eines Daten-Stream in TwinCAT 3

Das in der obigen Abbildung gezeigte Schema der Signalanalyse wird in der Condition Monitoring Bibliothek durch den FB_CMA_MagnitudeSpectrum sowie FB_CMA_PowerSpectrum realisiert. Als Anwender ist nur eine Konfiguration der Parameter (Länge der Puffer, Länge der FFT, Fensterfunktion, Überlappung, …) sowie die Bereitstellung der Daten-Puffer notwendig. Siehe z. B.: ST_CM_PowerSpectrum_InitPars.

Fensterfunktionen

Die Eigenschaften der verwendeten Fensterfunktionen sind im Ergebnis der Transformation wiederzufinden. Es wird nicht das Signal x[n] Fourier-transformiert, sondern das Signal x[n].w[n], mit w[n] als Zeitwerte der Fensterfunktion. Beachten Sie hierzu die grundlegenden Eigenschaften von Fensterfunktionen.

Wird „keine“ Fensterfunktion verwendet, also ein Signalabschnitt aus einem längeren Gesamtsignal herausgenommen entspricht dies der Verwendung eines Rechteckfensters. Zum Vergleich der Eigenschaften von Fensterfunktionen gegenüber einer Rechteckfensterung ein Beispiel: Ein harmonischer Sinus mit Amplitude 13 und Frequenz 500 Hz wird mit einer Abtastrate von 10 kHz abgetastet, mit einer Fensterfunktion der Länge 3200 Samples gefenstert und anschließend das Magnitudenspektrum (mit der Skalierungsoption eCM_PeakAmplitude) gebildet. In folgender Darstellung wird das Magnitudenspektrum bei Verwendung der verfügbaren Fensterfunktionen gegenübergestellt.

Ein Beispiel zur Rekonstruktion der nachfolgenden Grafik finden Sie hier: Fensterfunktionen

Analyse von Daten-Streams 5:

In der Grafik sind zwei wesentliche Eigenschaften von Fensterfunktionen zu erkennen:

Die verschiedenen Fenstertypen bilden jeweils einen trade-off zwischen diesen 3 wesentlichen Eigenschaften.

Die Breite des mainlobe beeinflusst die erreichbare Frequenzauflösung. Die Höhe der sidelobes zeigt die spektralen Verfälschungen (spektral leakage) auf, da diese nur durch das Fenster entstehen und nicht durch das zu analysierende Signal. Die Krümmung des mainlobes im Bereich -0,5 bins bis +0,5 bins um das Maximum charakterisiert den maximalen Amplitudenfehler, welcher bei harmonischen Signalen auftreten kann (scalloping losses).

Es ist zu erkennen, dass das Rechteckfenster eine sehr gute Frequenzauflösung erlaubt, jedoch starke spektrale Verfälschungen nach sich zieht, was z.B. problematisch wird, wenn nun neben dem Peak bei 500 Hz ebenfalls eine Frequenzkomponente bei 550 Hz mit einer Amplitude von 0,5 auftritt. Außerdem der maximal mögliche Amplitudenfehler mit -36,34% sehr hoch. Das Hann-Fenster verringert die sidelobes erheblich, verringert jedoch auch die erreichbare Frequenzauflösung, was dennoch einen guten Kompromiss darstellt solange keine exakte Bestimmung von Amplituden von sinusförmigen Signalen benötigt wird. Der maximal mögliche Amplitudenfehler liegt hier bei -15,12%. Das Hann-Fenster ist eines der bekanntesten Fensterfunktionen und ist deshalb als Standard in der Condition Monitoring Bibliothek eingestellt. Ist eine Amplitudentreue bei harmonischen Signalen gefordert ist ein Flat-top-Fenster (SFT5M) zu verwenden, welches eine möglichst flache Krümmung im zentralen mainlobe Bereich aufweist (maximaler Amplitudenfehler -0,045%). Allerdings ist der mainlobe hier sehr breit, wodurch sich dieses Fenster nur bei der Analyse rein harmonischer Signale empfiehlt.

Eine wichtige Kenngröße der Frequenzauflösung bei Nutzung einer Fensterfunktion ist die Equivalent Noise Bandwidth (ENBW).

Analyse von Daten-Streams 6:

Die Größe Δf ergibt sich, über die FFT-Länge N und die Abtastrate fs (siehe Fourier-Analyse). Der Ausdruck in der Gleichung vor dem Δf wird definiert über die Eigenschaften des Fensters und ist für ein Rechteckfenster 1 und z.B. für das Hann Fenster 1,5 und für das SFT5M 3,885.

Die Wahl des verwendeten Fensters, der zugehörigen Parameter sowie die zu verwendende Überlappung wird für die betreffenden Funktionsbausteine über die jeweilige Baustein-spezifische Struktur mit Initialisierungsparametern realisiert, z.B. ST_CM_MagnitudeSpectrum_InitPars.

Verfügbare Fensterfunktionen

Für ein Fenster der Länge N, stehen in der Condition Monitoring Bibliothek die nachfolgenden Fensterfunktionen zur Verfügung. Hierbei bezeichnet I0 die modifizierte Bessel-Funktion erster Gattung und Ordnung Null. Die Parametrierung des eCM_KaiserWindow sowie des eCM_FlatTopWindow erfolgt über T_CM_WindowParameters in den initPars Strukturen. Die letzte Spalte gibt die empfohlene Überlappung in Prozent der Fensterlänge an. Exemplarisch sind für eCM_KaiserWindow das Fenster Kaiser-4 mit
Analyse von Daten-Streams 7:

und für eCM_FlatTopWindow das Fenster SFT5M mit
Analyse von Daten-Streams 8:
gewählt worden.

Bezeichner

PID

Definition

Überlappung

eCM_HannWindow

16#05300901

Analyse von Daten-Streams 9:

50%

eCM_RectangularWindow

16#05300902

Analyse von Daten-Streams 10:

0%

eCM_BartlettWindow

16#05300905

Analyse von Daten-Streams 11:

50%

eCM_HammingWindow

16#05300906

Analyse von Daten-Streams 12:

50%

eCM_KaiserWindow

16#05300907

Analyse von Daten-Streams 13:

67% (Kaiser-4)

eCM_FlatTopWindow

16#05300917

Analyse von Daten-Streams 14:

76% (SFT5M)

Berechnung der empfohlenen Überlappung

Die empfohlene Überlappung der gefensterten Signalabschnitte ergibt sich aus der Betrachtung folgender Eigenschaften der Fensterfunktion:

  • amplitude flatness: Flachheit der überlappenden Fensterfunktion, d.h. die Gewichtung der einzelnen Samples.
  • overlap correlation: Korrelation zwischen den einzelnen Samples der überlappenden Funktionen.

Die empfohlene Überlappung liegt an der Stelle, wo die Differenz beider Eigenschaften maximal wird. D.h. die bestmögliche Flachheit bei möglichst geringer Korrelation erreicht wird. Dies wird in der folgenden Grafik für das SFT5M Fenster (eCM_FlatTopWindow) gezeigt.

Analyse von Daten-Streams 15:

Fensterfunktion (schwarz), amplitude flatness (rot), overlap correlation (grün), empfohlene Überlappung (blau).

Für weitere Informationen siehe:

  • G. Heinzel et.al.: Spectrum and spectral density estimation by the Discrete Fourier transform (DFT), including a comprehensive list of window functions and some new flat-top windows. 2002.
  • In der Condition Monitoring Bibliothek erfolgt die Berechnung der empfohlenen Überlappung über F_CM_CalculateRecommendedOverlap. Die Funktion kann explizit genutzt werden, die Algorithmen verwenden diese bei entsprechender Konfiguration auch implizit in Abhängigkeit der eingestellten Fensterfunktion. Natürlich kann auch eine frei wählbare Überlappung eingestellt werden. Vgl. z.B. eWindowType, eWindowTypeParameters und nOverlap in ST_CM_PowerSpectrum_InitPars.

Overlap-Add Methode

Einige Funktionsbausteine der Condition Monitoring Bibliothek arbeiten über Manipulation des Spektrums des Eingangssignals, d.h. wie oben beschrieben, wird zunächst das Eingangssignal in überlappende Teilsignale zerlegt und Fourier-transformiert. Dann wird eine Manipulation des Spektrums vorgenommen und eine inverse Fourier-Transformation berechnet. Je nach verwendeter Fensterfunktion ist eine Korrekturfunktion notwendig, um den Einfluss des Fensters zu kompensieren. Die einzelnen ebenfalls überlappenden Ergebnisse werden dann am Ausgang des Bausteins summiert, so dass wieder ein Daten-Stream am Ausgang des Bausteins entsteht. Dieses Vorgehen wird als overlap-add Methode bezeichnet und ist beispielhaft anhand der Berechnung der Signaleinhüllenden (FB_CMA_Envelope) in folgender Grafik gezeigt.

Analyse von Daten-Streams 16:
Analyse von Daten-Streams 17:

Overlap-Add in TwinCAT 3

Das Verfahren wird innerhalb einiger Funktionsbausteine der Bibliothek genutzt und muss vom Anwender nicht selber implementiert werden. Als Anwender ist nur eine Konfiguration der Parameter (Länge der Puffer, Länge der FFT, …) sowie die Bereitstellung der Daten-Puffer notwendig.