Waveform synchronization system for data received from a network
Inventors
DHARWAD, HARSH • Ruchti, Timothy • Hughes, Paul • LIN, Abel
Assignees
Interested in licensing this patent?
MTEC can help explore whether this patent might be available for licensing for your application.
Abstract
A system that synchronizes waveforms received over a network from one or more devices, such as medical devices. Because of network delays or losses, waveforms can arrive at varying rates and times. Precise post-synchronization of the received data, to within a few milliseconds, is needed for accurate analysis. Applications include automatic classification of waveforms, such as detection of myocardial infraction from heart monitor waveforms. Synchronization uses sequence numbers assigned by each device, but must also account for sequence number wraparounds. Waveforms may also be synchronized across devices, by calculating the bias between within-device synchronized times and a common time source or common disturbance. Waveform data may also be stored data in a database or data warehouse; embodiments may index the data using a key with a date-time prefix and a hash code suffix, to support distributed indexing while reducing the chance of hash collisions to a very small probability.
Core Innovation
A waveform synchronization system synchronizes data received from a network by repeatedly sampling sensor data over time intervals that include multiple sampling cycles having a duration of substantially the same sampling period. Each device assigns a sequence number to each sampling cycle with a sequence number minimum value and a sequence number maximum value, where immediately successive sampling cycles increment by an increment and the sequence number wraps from the maximum value to the minimum value.
Each device transmits packets corresponding to sampled sensor data from each sampling cycle, where each packet includes the sequence number corresponding to that sampling cycle. The receiving processors add a received timestamp to form augmented packets while the network delays, reorders, and loses packets. The synchronizing processors calculate an unwrapped sequence number for each augmented packet that uniquely identifies each sampling cycle.
The synchronizing processors calculate a linear relationship between unwrapped sequence number and the received timestamp and apply the linear relationship to obtain an adjusted timestamp for each augmented packet. The system synchronizes the sensor data across the one or more sensors over the time interval based on the adjusted timestamp to form synchronized data associated with each device.
Claims Coverage
The document contains two independent claims (clm-00001 and clm-00017). Across both claims, the inventive features center on cyclic sequence-numbering of sampling cycles, timestamp augmentation at packet reception, and reconstruction of unwrapped sequence numbers using a linear relationship to produce adjusted timestamps for waveform synchronization under network delay, reordering, and loss.
Cyclic sequence-numbered sampling cycles for networked waveform synchronization
Each device repeatedly samples data from one or more sensors over multiple sampling cycles, assigns a sequence number to each sampling cycle within a bounded range, increments the sequence number between immediately successive cycles and wraps from maximum to minimum, and defines a sequence number period equal to a number of distinct sequence numbers between the minimum and maximum values.
Network packet transmission with sequence-number tagging and received timestamp augmentation
The device transmits over the network one or more packets corresponding to sampled data from each sampling cycle, wherein each packet comprises the sequence number corresponding to the sampling cycle; receiving processors add a received timestamp to the packets to form corresponding augmented packets while the network delays, reorders, and loses packets.
Unwrapped sequence numbers and linear relationship to received timestamps
Synchronizing processors calculate an unwrapped sequence number for each augmented packet uniquely identifying each sampling cycle, calculate a linear relationship between the unwrapped sequence number and the received timestamp, and apply the linear relationship to obtain an adjusted timestamp of each augmented packet.
Adjusted timestamp-based synchronization of sensor data
The system synchronizes the data across the one or more sensors over the time interval based on the adjusted timestamp to form synchronized data associated with each device.
Cyclic sequence-number representation and UDP packet transport
The sequence number has an associated bit length with minimum value zero, maximum value two raised to a power of a bit width minus one, and sequence number period two raised to the power of the bit width; packets are transmitted using a User Datagram Protocol.
Unwrapped sequence number selection using integral multiples
Unwrapped sequence number calculation comprises calculating a linear mapping from the received timestamp to a predicted approximate unwrapped sequence number, and calculating the unwrapped sequence number as a number differing from the sequence number associated with the augmented packet by an integral multiple of the sequence number period that is closest to the linear mapping applied to the received timestamp.
Linear regression for the linear relationship
The linear relationship between unwrapped sequence number and received timestamp is calculated as a linear regression between the received timestamp and the unwrapped sequence number for augmented packets corresponding to the multiple sampling cycles.
Inter-device time-bias correction using adjusted time biases
Synchronizing processors synchronize synchronized data from a first device and a second device by calculating first device adjusted time bias and second device adjusted time bias as an average difference between adjusted timestamps and received timestamps, and subtracting the adjusted time bias from the respective adjusted timestamps.
Database indexing of augmented packets using a date-time prefix and hash code
One or more data storage processors calculate an index for each augmented packet across multiple sampling cycles using a date-time prefix derived from an adjusted timestamp and a hash code derived from fields of the augmented packet, and store the index and the augmented packets in a database.
Date-time prefix including POSIX time code
The index uses a date-time prefix that includes all or part of POSIX time code.
Overall, the claim set covers reconstructing sampling-cycle timing from network-impaired packetized sensor data by unwrapping sequence numbers and using a linear relationship to produce adjusted timestamps that enable waveform synchronization; dependent features further cover inter-device time-bias correction and optional database indexing with a date-time prefix and a hash code.
Stated Advantages
Not explicitly described in patent.
Documented Applications
Not explicitly described in patent.
Interested in licensing this patent?