Convolution (FPScript)

21.09.2021

Berechnet das Faltungsprodukt zweier Signale.

Syntax

Convolution(Signal1, Signal2 [ , Mode = CONVOLUTION_NONCIRCULAR ])

 

Die Syntax der Convolution-Funktion besteht aus folgenden Teilen:

Teil

Beschreibung

Signal1

Das Signal, das mit dem zweiten Signal gefaltet wird.

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

Ungültige Werte sind in diesem Argument nicht zulässig.

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.

Signal2

Das Signal, das mit dem ersten Signal gefaltet wird.

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

Ungültige Werte sind in diesem Argument nicht zulässig.

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

CONVOLUTION_CIRCULAR

Zirkuläres Faltungsprodukt für periodische Signale.

CONVOLUTION_NONCIRCULAR

Nicht-zirkuläres Faltungsprodukt 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 CONVOLUTION_NONCIRCULAR gesetzt.

Anmerkungen

Das Ergebnis ist immer vom Datentyp 64-Bit Fließkomma.

Die Einheit des Ergebnisses ist gleich dem Produkt der Einheiten von Signal1 und Signal2. Das Faltungsprodukt für zwei Datenreihen s und g ist definiert als:

und N, der Anzahl der Werte in s und g.

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

IRFFTn(*FFTn(Signal1) * FFTn(Signal2 ))

Bei zweidimensionalen Argumenten erfolgt die Berechnung spaltenweise und das Ergebnis ist ebenfalls zweidimensional. Hat eines der Argumente eine X-Komponente, so gilt dies auch für das Ergebnis. Das Ergebnis enthält dann den Zeitversatz τ des Faltungsproduktes. Bemerkung: Falls das andere Argument keine X-Komponente besitzt, so wird für dieses die gleiche Abtastung wie für das Argument mit X-Komponente angenommen.

Bei der zirkulären Faltung erfolgt die Berechnung unter der Annahme, dass in Signal1 und Signal2 eine oder mehrere vollständige Perioden der zu analysierenden Signale abgelegt sind. In diesem Fall müssen die Zeilenanzahlen von Signal1 und Signal2 übereinstimmen.

Die nicht-zirkuläre Faltung basiert auf der Annahme, dass die Signale außerhalb der durch die Datensätze Signal1 und Signal2 abgedeckten Ausschnitte den Betrag Null haben. Vor dem Übergang in den Frequenzbereich wird deshalb eine ausreichende Anzahl von Nullen an die Datensätze angehängt. Das Faltungsprodukt wird für alle τ berechnet, für die dieses einen Wert ungleich 0 haben kann, d. h. für die noch eine Überlappung der beiden Signale vorliegt.

Folgende Grafik zeigt die Faltung eines Wobbelkosinussignals mit der Impulsantwort eines Tiefpassfilters für alle positiven τ:

Verfügbarkeit

FlexPro Basic, Professional, Developer Suite

Beispiele

Dim Signal1 = Signal(0.5 * Square(2. * PI * 1.0 * (1000, 0.0, 0.001), 0.5) + 0.5, (1000, 0.0, 0.001))
Dim Signal2 = Signal(0.5 * Square(2. * PI * 1.0 * ((1000, 0.0, 0.001) + 0.5), 0.5) + 0.5, (1000, 0.0, 0.001))
Convolution(Signal1, Signal2, CONVOLUTION_NONCIRCULAR)
 

Nicht-zirkuläres Faltungsprodukt zweier Rechtecksignale.

Siehe auch

CCF-Funktion

Analyseobjekt Faltung

Literatur

[1] "Oppenheim, A. V. and Schafer, R. W.": "Discrete-Time Signal Processing, 2nd Edition", Seite 570 - 73. "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.

Artikel teilen oder als Email versenden:

Diese Beiträge könnten Sie ebenfalls interessieren