Conference PaperPDF Available

Ein neuer Algorithmus zur Zeitsynchronisierung von Ereignis- basierten Zeitreihendaten als Alternative zur Kreuzkorrelation

Authors:

Abstract

Mit der Verwendung von Sensordaten aus mehreren Quellen entsteht oft die Notwendigkeit einer Synchronisierung der entstandenen Messreihen. Ein Standardverfahren dazu ist die Kreuzkorrelation, die jedoch übereinstimmende Zeitstempel voraussetzt und empfindlich gegenüber Ausreißern reagiert. In diesem Paper wird daher ein alternativer Algorithmus für die Synchronisierung von Ereignis-basierten Zeitreihendaten vorgestellt.
Spinfortec2022 1
Ein neuer Algorithmus zur Zeitsynchronisierung von Ereignis-
1
basierten Zeitreihendaten als Alternative zur Kreuzkorrelation
2
Christoph Schranz1 & Sebastian Mayr1
3
1Salzburg Research Forschungsgesellschaft m.b.H., Salzburg, Österreich
4
Kurzfassung
5
Mit der Verwendung von Sensordaten aus mehreren Quellen entsteht oft die Notwendigkeit
6
einer Synchronisierung der entstandenen Messreihen. Ein Standardverfahren dazu ist die
7
Kreuzkorrelation, die jedoch übereinstimmende Zeitstempel voraussetzt und empfindlich
8
gegenüber Ausreißern reagiert. In diesem Paper wird daher ein alternativer Algorithmus für
9
die Synchronisierung von Ereignis-basierten Zeitreihendaten vorgestellt.
10
Schlüsselwörter: Ereignis-basierte Zeitreihendaten, Synchronisierung, Kreuzkorrelation
11
Einleitung
12
In vielen praktischen Anwendungen, wie zum Beispiel beim Vergleich eines neuartigen
13
Sensors mit der etablierten Messmethode, liegen zwei oder mehrere Messungen derselben
14
oder einer korrelierenden Metrik mit versetztem Zeitstempel vor. Ursachen für einen solchen
15
Zeitversatz können unter anderem Synchronisierungsprobleme der unterschiedlichen
16
Geräte sein. In diesem Fall muss der Zeitunterschied zwischen den Messungen ermittelt
17
und die Zeitstempel der als nicht synchron angenommen Messung korrigiert werden.
18
Das Standardverfahren zur Synchronisierung von Ereignis-basierten Zeitreihen ist es, die
19
jeweiligen Datenpunkte auf eine konstante Abtastrate zu interpolieren um anschließend die
20
Kreuzkorrelation für einzelne Zeitversätze zwischen den Messungen zu berechnen. Eine
21
Verringerung der Laufzeit kann dabei durch die Verwendung der Fourier-Transformation
22
(FFT) erreicht werden (Lyon, 2010). Dieses Standardverfahren besitzt jedoch mehrere
23
Nachteile: Falls die inhärente Frequenz der Signaländerung geringer ist als jene der
24
auftretenden Ereignisse, sinkt die Präzision des ermittelten Zeitversatzes. Zusätzlich zeigt
25
sich auch eine geringe Robustheit der Ergebnisse bei kurzen Zeitreihen sowie bei fehlenden
26
oder falschen Werte, wodurch oft eine aufwändige Korrektur erforderlich ist. (Pearson, 2005)
27
In dieser Arbeit wird ein neues Verfahren für die Synchronisierung Ereignis-basierter
28
Zeitreihendaten vorgestellt. Der Fokus bei der Entwicklung dieses Verfahrens war eine hohe
29
Präzision des resultierenden Zeitversatzes und Robustheit.
30
Methode
31
Die hier vorgestellte Methode zur Synchronisierung Ereignis-basierter Zeitreihendaten
32
basiert auf einem Reißverschlussprinzip, angelehnt an den effizienten Stream-Stream-Join
33
Algorithmus von Schranz 2020. Grundsätzlich wird für jedes Ereignis der Abstand zum
34
jeweils Nächsten der anderen Zeitreihe berechnet. Der Mittelwert aller dieser Abstände dient
35
als Maß für die Synchronität der Zeitreihen für einen gegebenen Zeitversatz φ. Aufgrund
36
Spinfortec2022 2
des iterativen Vergleichs der Zeitstempel zum jeweils nächsten Gegenüber wird der
37
Algorithmus im Rahmen dieser Arbeit als nearest_advocate bezeichnet.
38
39
Abb. 1 (a) Pseudocode des nearest_advocate; (b) Zwei idente um φ versetzte EKG (schwarz) mit deren
40
charakteristischen Schläge (R-peaks, orange) und den minimalen Abständen (blau strichliert).
41
In Abbildung 1.a wird der Pseudocode dargestellt: Gegeben zwei sortierte Reihen aus
42
Zeitstempeln der Ereignisse mit überlappenden Zeitabschnitten, berechnet
43
nearest_advocate den mittleren Abstand von jedem Zeitstempel in Reihe 2 zu dem jeweils
44
nächsten Gegenüber in Reihe 1 (siehe Abb. 1.b). Der Parameter ‚time_delta‘ gibt dabei den
45
zu evaluierenden Zeitversatz an und ‚max_distance‘ den maximal akzeptierten Abstand
46
zwischen zwei gegenüberliegenden Ereignissen.
47
Der Algorithmus besitzt eine lineare Laufzeit- und Speicherkomplexität für einen zu
48
prüfenden Zeitversatz. Insgesamt beträgt die Laufzeitkomplexität somit |𝑡𝑖𝑚𝑒_𝑑𝑒𝑙𝑡𝑎𝑠|
49
(|𝑎𝑟𝑟1|+|𝑎𝑟𝑟2|). Für die Wahl der zu testenden Zeitversätze ist zu beachten, dass für die
50
Erkennung der Form und somit des Optimums der Ergebniskurve etwa die 10- bis 20-fache
51
Rate der erwarteten Nyquist- oder Signalfrequenz empfohlen wird (Wescott, 2018).
52
Experiment
53
Für das Experiment wurden EKG-Daten (siehe Abb. 1 b) verwendet, die innerhalb des
54
Projektes Virtual Sleep Lab während des Schlafs erhoben wurden (siehe Finanzierung). Die
55
Zeitreihe 1 wurde mit dem laborüblichen Polysomnographen Brainvision BrainAmp ExG
56
aufgenommen, die Zeitreihe 2 mit dem Suunto Movesense Sensor HR+. Beide Reihen
57
liegen in Form von Arrays vor, wobei die Elemente die Zeitstempel der charakteristischen
58
R-peaks der jeweiligen Herzschläge sind. Die Messdauer betrug etwa 30,000 Sekunden.
59
Folgende Algorithmen wurden im Experiment verglichen: (1) Eine Kreuzkorrelation mit FFT
60
auf linear interpolierte Abstände der R-peaks (interbeat intervals, IBI). Zusätzlich (2) eine
61
Kreuzkorrelation mit FFT auf, mittels Dreiecken der Breite 0.5s, interpolierten R-peaks, um
62
die Präzision der Zeitversätze zu verbessern. Der hier vorgestellte Algorithmus
63
nearest_advocate wird mit einer Maximaldistanz von 0.5s (3) auf alle R-peaks angewandt
64
sowie (4) dünn besetzt (sparse) mit nur jedem 100sten R-peak der Zeitreihe 2. Der
65
Suchraum für den Zeitversatz beträgt ±60 Sekunden bei einer Auflösung von 0.1 s.
66
(a)
(b)
Spinfortec2022 3
In Abbildung 2 werden typische Ergebnisse für die Synchronisation dargestellt: ln (a) das
67
charakteristische Schwingen der jeweiligen Distanz (blau) um das Optimum (rot), das in den
68
Algorithmen (2), (3) und (4) auftritt. In (b) das markante Maximum (blau) über einer
69
dreieckigen Approximation für die Kreuzkorrelation (1). Aus dem Median der mittleren
70
Distanzen (a) bzw. der Annäherung der Korrelationskoeffizienten mit einer Dreiecksform
71
über zwei lineare Theil-Sen Regressoren (b) wird die Grundlinie (schwarz) bestimmt. Um
72
das Hintergrundrauschen zu filtern, werden nur jene Kurvenanteile extrahiert, welche
73
signifikanter als 50% des Optimums sind. Dieser Anteil wird auf eine Wahrscheinlich-
74
keitsverteilung (türkis punktiert) normiert. Das Maß für die Präzision ist die Breite des 90%-
75
Konfidenzintervalls dieser Wahrscheinlichkeitsverteilung (schwarz strichliert).
76
77
Abb. 2 (a) Bei der Synchronisierung mit nearest_advocate treten um den Versatz φ (in rot) charakteristische
78
Schwingungen auf; (b) Bei der Kreuzkorrelation eine markante Spitze um φ.
79
Die Experimente wurden in Python 3.9 durchgeführt. Für die Kreuzkorrelation wurde die
80
Methode signal.correlate des Pakets scipy mit Version 1.7.3 verwendet. Um für
81
nearest_advocate ebenfalls vergleichbare Laufzeiten wie in C zu erzielen, wurde dieser in
82
der JIT-Kompilierungsumgebung numba 0.55.0 implementiert. (Lam, 2015)
83
Ergebnisse
84
In Abbildung 3 werden für die Synchronisierungen der jeweiligen Algorithmen (a) die
85
Präzision als Breite der 90%-Konfidenzintervalle der Wahrscheinlichkeitsdichten und (b)
86
Laufzeiten für unterschiedliche maximale Längen der Zeitreihen dargestellt. Für den Fall mit
87
maximaler Länge von 100,000s wurde die Zeitreihe synthetisch vervielfacht.
88
Die Streubreiten nehmen mit steigender Länge tendenziell ab und die Laufzeiten zu. Der
89
Algorithmus nearest_advocate lieferte die präzisesten und robustesten Ergebnisse. Die
90
schnellere sparse-Variante liefert für längere Zeitreihen ebenfalls präzise Ergebnisse und
91
besitzt sogar die günstigste asymptotische Laufzeitkomplexität, womit diese für die Länge
92
von 100,000s sogar schneller als die Kreuzkorrelation mit FFT (mit Laufzeitkomplexität von
93
𝑛 𝑙𝑜𝑔(𝑛) (Lewis, 1995)) ist. Die Kreuzkorrelation mit Kernelapproximation liefert ebenfalls
94
(a)
(b)
Spinfortec2022 4
sehr präzise Lösungen, allerdings wird die rechenintensive Interpolation nicht für die hier als
95
sehr niedrig erscheinende Laufzeit berücksichtigt.
96
97
Abb. 3 (a) Breite der 90%-Konfidenzintervalle der Wahrscheinlichkeitsdichten und (b) die Laufzeiten der
98
Algorithmen für unterschiedliche maximale Längen der Zeitreihen.
99
Diskussion
100
In diesem Paper wurde exemplarisch für R-peaks als Ereignis-basierte Zeitreihen gezeigt,
101
dass das hier vorgestellte Synchronisierungsverfahren nearest_advocate für alle getesteten
102
Längen eine höhere Präzision als das Standardverfahren Kreuzkorrelation liefert. Für kurze
103
Zeitreihen demonstriert dieser eine sehr hohe Robustheit. Die sparse-Variante verspricht
104
trotz geringerer Präzision für kurze Reihen, eine asymptotisch sehr gute Laufzeit.
105
In zukünftigen Analysen soll die Robustheit insbesondere gegenüber fehlender und falscher
106
Ereigniswerte genauer untersucht werden. Außerdem wäre es sinnvoll, zusätzliche
107
Algorithmen wie z.B. die Kreuzkorrelation mit beschränktem Suchraum zu betrachten.
108
Interessenskonflikt Ich bzw. wir erklären keine Interessenskonflikte.
109
Finanzierung Wir bedanken uns für die finanzielle Unterstützung durch das Land Salzburg innerhalb
110
des WISS 2025 Projekt Virtual Sleep Lab (VSL-Lab) (20102-F2002176-FÜR).
111
Literatur
112
Pearson, R. (2005). Mining Imperfect Data. In SIAM, 250, https://doi.org/10.1137/1.9780898717884.
113
Lewis, J. P. (1995). "Fast Normalized Cross-Correlation." In Industrial Light & Magic,
114
http://scribblethink.org/Work/nvisionInterface/nip.pdf.
115
Lyon, D. (2010). The Discrete Fourier Transform, Part 6: Cross-Correlation. In The Journal of Object
116
Technology, 9(2), 17. https://doi.org/10.5381/jot.2010.9.2.c2
117
Wescott, Tim. (2018). Sampling: What Nyquist Didn’t Say, and What to Do About It. In Wescott
118
Design Services, https://www.wescottdesign.com/articles/Sampling/sampling.pdf.
119
Lam, S. K. (2015). Numba: A llvm-based python jit compiler. In Proceedings of the Second Workshop
120
on the LLVM Compiler Infrastructure in HPC, (pp. 16).
121
Schranz, C. (2020). Deterministic Time-Series Joins for Asynchronous High-Throughput Data
122
Streams, In ETFA, pp. 1031-1034, https://doi.org/10.1109/ETFA46521.2020.9211958.
123
(a)
(b)
ResearchGate has not been able to resolve any citations for this publication.
Article
Full-text available
This paper is part 6 in a series of papers about the Discrete Fourier Transform (DFT) and the Inverse Discrete Fourier Transform (IDFT). The focus of this paper is on correlation. The correlation is performed in the time domain (slow correlation) and in the frequency domain using a Short-Time Fourier Transform (STFT). When the Fourier transform is an FFT, the correlation is said to be a "fast" correlation. The approach requires that each time segment be transformed into the frequency domain after it is windowed. Overlapping windows temporally isolate the signal by amplitude modulation with an apodizing function. The selection of overlap parameters is done on an ad-hoc basis, as is the apodizing function selection. This report is a part of project Fenestratus, from the skunk-works of DocJava, Inc. Fenestratus comes from the Latin and means, "to furnish with windows".
Article
Full-text available
Although it is well known that cross correlation can be efficiently implemented in the transform domain, the normalized form of cross correlation preferred for feature matching applications does not have a simple frequency domain expression. Normalized cross correlation has been computed in the spatial domain for this reason. This short paper shows that unnormalized cross correlation can be efficiently normalized using precomputing integrals of the image and image 2 over the search window. 1
Conference Paper
A variety of data stream problems that affect two or more data streams rely on joining them based on a common or similar timing attribute. With the advent of stream processing frameworks like Apache Spark and Apache Flink within the last years, processing of streamed data has become much easier. Repeated processing of relatively small data batches in so-called windows increases flexibility with respect to implementation and task distribution across multiple nodes. Using event times instead of ingestion times avoids, among other problems, incorrect joins. However, in this work we argue that batch-processing leads to a significant trade-off between increased computational complexity and latency of the resulting join pairs. A concept for time-series joins of streaming data is presented. This concept, which is built upon a resilient data stream framework, minimizes both the computational costs and latency times. It uses the guarantees associated with this underlying framework to join the data records deterministically according to event times instead of processing times. This work represents a work-in-progress paper, as detailed benchmarks are pending.
Conference Paper
Dynamic, interpreted languages, like Python, are attractive for domain-experts and scientists experimenting with new ideas. However, the performance of the interpreter is often a barrier when scaling to larger data sets. This paper presents a just-in-time compiler for Python that focuses in scientific and array-oriented computing. Starting with the simple syntax of Python, Numba compiles a subset of the language into efficient machine code that is comparable in performance to a traditional compiled language. In addition, we share our experience in building a JIT compiler using LLVM[1].
Mining Imperfect Data
  • R Pearson
Pearson, R. (2005). Mining Imperfect Data. In SIAM, 250, https://doi.org/10.1137/1.9780898717884.
Sampling: What Nyquist Didn't Say, and What to Do About It
  • Tim Wescott
Wescott, Tim. (2018). Sampling: What Nyquist Didn't Say, and What to Do About It. In Wescott