ACF (FPScript)

07.02.2018
 Daten mathematisch analysieren > Referenz > FPScript-Funktionen > Signalanalyse > ACF

ACF (FPScript)

<< Klicken, um Inhaltsverzeichnis anzuzeigen >>

  Daten mathematisch analysieren > Referenz > FPScript-Funktionen > Signalanalyse >

ACF (FPScript)

Berechnet die Autokorrelationsfunktion eines Signals.

Syntax

ACF(Signal [ , Mode = CORRELATIONPRODUCT_NONCIRCULAR ])

 

Die Syntax der ACF-Funktion besteht aus folgenden Teilen:

Teil

Beschreibung

Signal

Der Datensatz, dessen Autokorrelationsfunktion berechnet wird.

Erlaubte Datenstrukturen sind Datenreihe, Datenmatrix, Signal und Signalreihe. Es sind alle numerischen Datentypen erlaubt.

Für die X-Komponente gelten zusätzliche Beschränkungen. Die Werte müssen einen konstanten positiven Abstand haben.

Bei komplexen Datentypen erfolgt eine Betragsbildung.

Ist das Argument eine Liste, dann wird die Funktion für jedes Element der Liste ausgeführt und das Ergebnis ist ebenfalls eine Liste.

Mode

Gibt den Berechnungsmodus an.

Das Argument Mode kann folgende Werte haben:

Konstante

Bedeutung

CORRELATIONPRODUCT_CIRCULAR

Zirkuläres Autokorrelationsprodukt für periodische Signale.

CORRELATIONPRODUCT_NONCIRCULAR

Nicht-zirkuläres Autokorrelationsprodukt für transiente Signale.

CORRELATION_CIRCULAR

Zirkuläre Autokorrelation für periodische Signale.

CORRELATION_NONCIRCULAR

Nicht-zirkuläre Autokorrelation für transiente Signale.

CORRELATION_CIRCULAR_NORM

Zirkuläre normierte Autokorrelation für periodische Signale.

CORRELATION_NONCIRCULAR_NORM

Nicht-zirkuläre normierte Autokorrelation für transiente Signale.

Ist das Argument eine Liste, dann wird deren erstes Element entnommen. Ist dies wieder eine Liste, dann wird der Vorgang wiederholt.

Wenn das Argument nicht angegeben wird, wird es auf den Vorgabewert CORRELATIONPRODUCT_NONCIRCULAR gesetzt.

Anmerkungen

Der Datentyp des Ergebnisses ist immer 64-Bit Fließkomma.

Die Struktur des Ergebnisses entspricht der des Arguments Signal.

Die Einheit des Ergebnisses ist gleich dem Quadrat der Einheit von Signal. Die Autokorrelation für eine Datenreihe s ist definiert als:

mit dem Korrelationsprodukt:

und N, der Anzahl der Werte in s.

Die normierte Autokorrelation wird auf den Wert bei τ = 0 normiert, d. h. der Wert im Ergebnis, welcher einem Zeitversatz τ = 0 entspricht, ist hier immer Eins.

Die Berechnung erfolgt in allen Fällen im Frequenzbereich nach folgender Formel:

IRFFTn(*FFTn(Signal) * FFTn(Signal))

Bei der zirkulären Autokorrelation erfolgt die Berechnung unter der Annahme, dass im Datensatz eine oder mehrere vollständige Perioden des Signals abgelegt sind. In diesem Fall muss die Zeilenanzahl von Signal gerade sein. Bei ungerader Zeilenanzahl wird das Signal um einen Wert verkürzt. Die Berechnung erfolgt dann exakt wie oben angegeben. Die Anzahl der Werte im Ergebnis ist immer gleich der des verkürzten Signals. Falls das Ergebnis eine X-Komponente hat, dann enthält diese den Zeitversatz τ der Autokorrelationsfunktion. Der Wert τ = 0 befindet sich immer am Anfang der X-Datenreihe. Es werden also keine negativen τ berechnet. Wegen der Periodizität der Autokorrelation können in diesem Fall die Werte in der zweiten Hälfte des Ergebnisses jedoch auch als negative τ aufgefasst werden.

Die nicht-zirkuläre Autokorrelation basiert auf der Annahme, dass das Signal außerhalb des durch den Datensatz Signal abgedeckten Ausschnittes den Betrag Null hat. Vor dem Übergang in den Frequenzbereich wird deshalb eine ausreichende Anzahl von Nullen an den Datensatz angehängt. Die Autokorrelationsfunktion wird für alle τ berechnet, für die diese einen Wert ungleich 0 haben kann, d. h. für die noch eine Überlappung des Signals mit seiner verschobenen Kopie vorliegt. Falls das Ergebnis eine X-Komponente hat, dann enthält diese den Zeitversatz τ der Autokorrelationsfunktion. Der Wert τ = 0 befindet sich immer genau in der Mitte der X-Datenreihe.

Folgende Grafik zeigt die verschiedenen Varianten für ein Sinussignal mit Frequenz 1, Amplitude 10 und einem X-Bereich von 0 bis 10:

Verfügbarkeit

FlexPro Standard, Professional, Developer Suite

Beispiele

ACF(Signal(2. * Sin(2. * PI * 200. * (1000, 0., 1.e-005)) + Noise((1000, 0., 1.e-005), NOISE_NORMAL), (1000, 0., 1.e-005)), CORRELATION_CIRCULAR)

Es liegt ein Sinussignal mit einer Frequenz f = 200 Hz, einer Amplitude = 2 V, Phase = 0° und einem Gleichanteil = 0 V über zwei Perioden vor. Das Signal ist mit einem Gaußrauschen (Mittelwert μ = 0 V, Standardabweichung σ = 1 V) überlagert.

Mithilfe der Autokorrelationsfunktion ACF wird nun die Amplitude und die Frequenz des gestörten periodischen Signals zurückgewonnen.

Siehe auch

CCF-Funktion

Correlation-Funktion

Analyseobjekt Korrelation

Literatur

 [1] "Oppenheim, A. V. and Schafer, R. W.": "Discrete-Time Signal Processing, 2nd Edition", Seite 743 - 48. "Prentice Hall, New Jersey", 1999. ISBN 0-13-754920-2.

[2] "H.D. Lüke": "Signalübertragung", Seite 79 - 81. "Springer-Verlag Berlin, Heidelberg, New York", 1985. ISBN 3-540-15526-0.

Share article or send as email:

You might be interested in these articles