Korrelationsfunktion
Dieses Beispiel implementiert exemplarisch die Verwendungsmöglichkeiten des Funktionsbausteins FB_CMA_Correlation. Hierbei werden die Korrelationskoeffizienten für einen zeitlichen Versatz von +/- 100 Samples bezüglich eines Referenzsignals berechnet.
Den Quellcode für dieses Beispiel können Sie hier herunterladen: Correlation_Sample.zip
Blockdiagramm
Programmparameter
Die Tabelle unten zeigt eine Liste mit den wichtigen Parametern für die Konfiguration der Funktionsbausteine.
nWindowLength | 1000 |
nNegativeShift | 100 |
nPositiveShift | 100 |
nStepsize | 5 |
eCorrelationMode | eCM_Pearson |
eWindowMode | eCM_Fixed |
Erläuterungen
In diesem Beispiel werden die Korrelationsparameter zwischen einem Sinus mit Amplitude 1 (rot) sowie einem verstärkten um +5ms (50 Samples bei 10 kHz Abtastrate) Sinus (blau) und einem Dreiecksimpuls (grün) mit identischer Frequenz (50 Hz) und einer Verzögerung von -5ms berechnet. Die Testsignale sind mit einem Normalverteiten Rauschen überlagert. Die nachfolgende Grafik zeigt die Ausgangssignale (oben) und die verrauschten Signale (unten)
Das Rauschen ist so stark gewählt, dass die Ausgangs im Zeitbereich nicht mehr identifiziert werden können. Die Berechnung der Korrelationskoeffizienten ermöglich jedoch die Einordnung in Bezug auf das Referenzsignal:
Die höchste Korrelation des verstärkten Sinus (blau) liegt bei einer Verschiebung von 50 Samples zur Referenz, d.h. das Signal ist um 5ms verzögert. Analog hierzu ist der Dreiecksimpuls (grün) um 50 Samples verschoben, d.h. es geht der Referenz 5ms voraus.
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS-Bibliotheken |
---|---|---|
TwinCAT v3.1.4022.25 | PC or CX (x86, x64) | Tc3_CM, Tc3_CM_Base |