IP Library Granted Patent US 10,505,652
Granted Patent B2
US 10,505,652 · App. 15/858,117 · Granted Dec 10, 2019

Methods and systems for estimating offset skew and drift

Inventor: James Aweya (Abu Dhabi, AE)
Assignees: Khalifa University of Science and Technology; British Telecommunications PLC; Emirates Telecommunications Corporation
H04J3/0667H04J3/0676
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,505,652
App. No.
15/858,117
Granted
Dec 10, 2019
Kind
B2
Abstract

This invention relates to methods and systems for estimating offset, skew and drift. Embodiments of the invention relate to methods and systems which allow these relationships between a slave clock and a master clock to be estimated based on the exchange of timestamped messages between the master and the slave. Further embodiments of the invention set out uses of these estimates to synchronize a local clock in a slave to a master and to steer the slave clock to stay aligned to the master clock when the master clock is temporarily unavailable or the communication path between slave and master is temporarily unavailable.

Claims (941)

1. A method of estimating the offset, skew and drift of a slave clock in a slave device compared to a master clock in a master device, the method including the steps of:

exchanging timing messages between the master device and the slave device and recording the times of sending and receiving said messages; and

estimating the offset, skew and drift of the slave clock compared to the master clock from said recorded times; and

wherein the step of estimating involves using a Kalman filtering approach in which a measurement equation contains a term relating to the offset of the slave clock at the time of measurement and a process equation contains terms relating to the offset, skew and drift of the slave clock at both the current time and the time of the previous measurement.

2. The method according to claim 1 wherein the measurement equation used in the Kalman filtering approach is:

(

T

1

,

n

-

T

2

,

n

)

+

(

T

4

,

n

-

T

3

,

n

)

+

(

r

f

,

n

-

r

r

,

n

)

y

n

=

2

θ

n

D

n

X

n

+

(

γ

n

-

ɛ

n

)

v

n

wherein n is a nonnegative time index, θ n is the estimated offset at time n, T 1,n is the time of sending of a first timing message from the master device to the slave device according to the master clock, T 2,n is the time of receipt of the first timing message according to the slave clock, T 3,n is the time of sending of a second timing message from the slave device to the master device according to the slave clock, T 4,n is the time of receipt of the second timing message according to the master clock, d f is the fixed delay between the master device and the slave device, d r is the fixed delay between the slave device and the master device, r f,n is the variable queuing delay between the master device and the slave device, r r,n is the variable queuing delay between the slave device and the master device, D n =[2 0 0] is a 1×3 matrix, X n T =[θ n α n φ n ] is a 3×1 matrix of the estimated offset, skew α n and drift φ n , ε n is a stochastic delay in the direction from the master device to the slave device, γ n is a stochastic delay in the direction from the slave device to the master device, and v n =(γ n −ε n ) is the measurement noise,

and the process equation used in the Kalman filtering approach is:

X

n

=

[

θ

n

α

n

φ

n

]

=

[

1

Δ

t

(

Δ

t

)

2

/

2

0

1

Δ

t

0

0

1

]

[

θ

n

-

1

α

n

-

1

φ

n

-

1

]

+

[

w

θ

,

n

w

α

,

n

w

φ

,

n

]

=

A

n

X

n

-

1

+

w

n

,

wherein w n is the process noise vector made up of the process noise in the offset, skew and drift and Δt is the time between iterations.

3. The method according to claim 2 wherein Δt=(T 2,n −T 2,n-1 ), which is the time between receipt of consecutive timing messages at the slave device.

4. The method according to claim 1 wherein the measurement equation used in the Kalman filtering approach is:

(

T

1

,

n

-

T

2

,

n

)

+

(

T

4

,

n

-

T

3

,

n

)

+

(

d

f

-

d

r

)

+

(

r

f

,

n

-

r

r

,

n

)

y

n

=

2

θ

n

D

n

X

n

+

(

γ

n

-

ɛ

n

)

v

n

wherein n is a nonnegative time index, θ n is the estimated offset at time n, T 1,n is the time of sending of a first timing message from the master device to the slave device according to the master clock, T 2,n is the time of receipt of the first timing message according to the slave clock, T 3,n is the time of sending of a second timing message from the slave device to the master device according to the slave clock, T 4,n is the time of receipt of the second timing message according to the master clock, d f is the fixed delay between the master device and the slave device, d r is the fixed delay between the slave device and the master device, r f,n is the variable queuing delay between the master device and the slave device, r r,n is the variable queuing delay between the slave device and the master device, D n =[2 0 0] is a 1×3 matrix, X n T =[θ n α n φ n ] is a 3×1 matrix of the estimated offset, skew α n and drift φ n , ε n is a stochastic delay in the direction from the master device to the slave device, γ n is a stochastic delay in the direction from the slave device to the master device, and v n =(γ n −ε n ) is the measurement noise,

and the process equation used in the Kalman filtering approach is:

X

n

=

[

θ

n

α

n

φ

n

]

=

[

1

Δ

t

(

Δ

t

)

2

/

2

0

1

Δ

t

0

0

1

]

[

θ

n

-

1

α

n

-

1

φ

n

-

1

]

+

[

w

θ

,

n

w

α

,

n

w

φ

,

n

]

=

A

n

X

n

-

1

+

w

n

,

wherein w n is the process noise vector made up of the process noise in the offset, skew and drift and Δt is the time between iterations.

5. The method according to claim 4 wherein Δt=(T 2,n −T 2,n-1 ), which is the time between receipt of consecutive timing messages at the slave device.

6. The method according to claim 1 , further including the step of synchronizing the slave clock to the master clock at least based on the estimated drift.

7. The method according to claim 1 , further including the steps of:

determining, in the slave device, between a normal condition in which timing messages are being received from the master device and an abnormal condition in which no timing messages have been received from the master device for at least a predetermined time period; and

during said normal condition, storing information about the behavior of the slave clock, the information including information about the skew and drift of the slave clock compared to the master clock,

during said abnormal condition, using said stored information to control the slave clock and to essentially synchronize the slave clock to the master clock.

8. The method according to claim 7 wherein the stored information includes information about the offset of the slave clock compared to the master clock.

9. A slave device connected to a master device over a network, the slave device having:

a slave clock; and

a controller, wherein:

the slave device is arranged to exchange timing messages with the master device and to record the times of sending and receiving said messages and to receive times of sending and receiving said messages from the master device; and

the controller is arranged to estimate the offset, skew and drift of the slave clock compared to a master clock in said master device from said recorded times; and

wherein the controller is arranged to estimate the offset, skew and drift of the slave clock using a Kalman filtering approach in which a measurement equation contains a term relating to the offset of the slave clock at the time of measurement and a process equation contains terms relating to the offset, skew and drift of the slave clock at both the current time and the time of the previous measurement.

10. The slave device according to claim 9 wherein the measurement equation used in the Kalman filtering approach is:

(

T

1

,

n

-

T

2

,

n

)

+

(

T

4

,

n

-

T

3

,

n

)

+

(

r

f

,

n

-

r

r

,

n

)

y

n

=

2

θ

n

D

n

X

n

+

(

γ

n

-

ɛ

n

)

v

n

wherein n is a nonnegative time index, θ n is the estimated offset at time n, T 1,n is the time of sending of a first timing message from the master device to the slave device according to the master clock, T 2,n is the time of receipt of the first timing message according to the slave clock, T 3,n is the time of sending of a second timing message from the slave device to the master device according to the slave clock, T 4,n is the time of receipt of the second timing message according to the master clock, d f is the fixed delay between the master device and the slave device, d r is the fixed delay between the slave device and the master device, r f,n is the variable queuing delay between the master device and the slave device, r r,n is the variable queuing delay between the slave device and the master device, D n =[2 0 0] is a 1×3 matrix, X n T =[θ n α n φ n ] is a 3×1 matrix of the estimated offset, skew α n and drift φ n , ε n is a stochastic delay in the direction from the master device to the slave device, γ n is a stochastic delay in the direction from the slave device to the master device, and v n =(γ n −ε n ) is the measurement noise,

and the process equation used in the Kalman filtering approach is:

X

n

=

[

θ

n

α

n

φ

n

]

=

[

1

Δ

t

(

Δ

t

)

2

/

2

0

1

Δ

t

0

0

1

]

[

θ

n

-

1

α

n

-

1

φ

n

-

1

]

+

[

w

θ

,

n

w

α

,

n

w

φ

,

n

]

=

A

n

X

n

-

1

+

w

n

,

wherein w n is the process noise vector made up of the process noise in the offset, skew and drift and Δt is the time between iterations.

11. The slave device according to claim 10 wherein Δt=(T 2,n −T 2,n-1 ), which is the time between receipt of consecutive timing messages at the slave device.

12. The slave device according to claim 9 wherein the measurement equation used in the Kalman filtering approach is:

(

T

1

,

n

-

T

2

,

n

)

+

(

T

4

,

n

-

T

3

,

n

)

+

(

d

f

-

d

r

)

+

(

r

f

,

n

-

r

r

,

n

)

y

n

=

2

θ

n

D

n

X

n

+

(

γ

n

-

ɛ

n

)

v

n

wherein n is a nonnegative time index, θ n is the estimated offset at time n, T 1,n is the time of sending of a first timing message from the master device to the slave device according to the master clock, T 2,n is the time of receipt of the first timing message according to the slave clock, T 3,n is the time of sending of a second timing message from the slave device to the master device according to the slave clock, T 4,n is the time of receipt of the second timing message according to the master clock, d f is the fixed delay between the master device and the slave device, d r is the fixed delay between the slave device and the master device, r f,n is the variable queuing delay between the master device and the slave device, r r,n is the variable queuing delay between the slave device and the master device, D n =[2 0 0] is a 1×3 matrix, X n T =[θ n α n φ n ] is a 3×1 matrix of the estimated offset, skew α n and drift φ n , ε n is a stochastic delay in the direction from the master device to the slave device, γ n is a stochastic delay in the direction from the slave device to the master device, and v n =(γ n −ε n ) is the measurement noise,

and the process equation used in the Kalman filtering approach is:

X

n

=

[

θ

n

α

n

φ

n

]

=

[

1

Δ

t

(

Δ

t

)

2

/

2

0

1

Δ

t

0

0

1

]

[

θ

n

-

1

α

n

-

1

φ

n

-

1

]

+

[

w

θ

,

n

w

α

,

n

w

φ

,

n

]

=

A

n

X

n

-

1

+

w

n

,

wherein w n is the process noise vector made up of the process noise in the offset, skew and drift and Δt is the time between iterations.

13. The slave device according to claim 12 wherein Δt=(T 2,n −T 2,n-1 ), which is the time between receipt of consecutive timing messages at the slave device.

14. The slave device according to claim 9 , wherein the controller is further arranged to synchronize the slave clock to the master clock at least based on the estimated drift.

15. The slave device according to claim 9 , wherein the controller is further arranged to:

determine between a normal condition in which timing messages are being received from the master device and an abnormal condition in which no timing messages have been received from the master device for at least a predetermined time period; and

during said normal condition, store information about the behavior of the slave clock, the information including information about the skew and drift of the slave clock compared to the master clock,

during said abnormal condition, use said stored information to control the slave clock and to essentially synchronize the slave clock to the master clock.

16. The slave device according to claim 15 wherein the stored information includes information about the offset of the slave clock compared to the master clock.

17. A timing system including a master device and a slave device connected over a network, the master device having a master clock and the slave device having:

a slave clock; and

a controller, wherein:

the slave device and master device are arranged to exchange timing messages with each other and to record the times of sending and receiving said messages;

the master device is arranged to send the times of sending and receiving said messages to the master device; and

the controller is arranged to estimate the offset, skew and drift of the slave clock compared to a master clock in said master device from said recorded times; and

wherein the controller is arranged to estimate the offset, skew and drift of the slave clock using a Kalman filtering approach in which a measurement equation contains a term relating to the offset of the slave clock at the time of measurement and a process equation contains terms relating to the offset, skew and drift of the slave clock at both the current time and the time of the previous measurement.

18. The system according to claim 17 wherein the measurement equation used in the Kalman filtering approach is:

(

T

1

,

n

-

T

2

,

n

)

+

(

T

4

,

n

-

T

3

,

n

)

+

(

r

f

,

n

-

r

r

,

n

)

y

n

=

2

θ

n

D

n

X

n

+

(

γ

n

-

ɛ

n

)

v

n

wherein n is a nonnegative time index, θ n is the estimated offset at time n, T 1,n is the time of sending of a first timing message from the master device to the slave device according to the master clock, T 2,n is the time of receipt of the first timing message according to the slave clock, T 3,n is the time of sending of a second timing message from the slave device to the master device according to the slave clock, T 4,n is the time of receipt of the second timing message according to the master clock, d f is the fixed delay between the master device and the slave device, d r is the fixed delay between the slave device and the master device, r f,n is the variable queuing delay between the master device and the slave device, r r,n is the variable queuing delay between the slave device and the master device, D n =[2 0 0] is a 1×3 matrix, X n T =[θ n α n φ n ] is a 3×1 matrix of the estimated offset, skew α n and drift φ n , ε n is a stochastic delay in the direction from the master device to the slave device, γ n is a stochastic delay in the direction from the slave device to the master device, and v n =(γ n −ε n ) is the measurement noise,

and the process equation used in the Kalman filtering approach is:

X

n

=

[

θ

n

α

n

φ

n

]

=

[

1

Δ

t

(

Δ

t

)

2

/

2

0

1

Δ

t

0

0

1

]

[

θ

n

-

1

α

n

-

1

φ

n

-

1

]

+

[

w

θ

,

n

w

α

,

n

w

φ

,

n

]

=

A

n

X

n

-

1

+

w

n

,

wherein w n is the process noise vector made up of the process noise in the offset, skew and drift and Δt is the time between iterations.

19. The system according to claim 18 wherein Δt=(T 2,n −T 2,n1 ), which is the time between receipt of consecutive timing messages at the slave device.

20. The system according to claim 17 wherein the measurement equation used in the Kalman filtering approach is:

(

T

1

,

n

-

T

2

,

n

)

+

(

T

4

,

n

-

T

3

,

n

)

+

(

d

f

-

d

r

)

+

(

r

f

,

n

-

r

r

,

n

)

y

n

=

2

θ

n

D

n

X

n

+

(

γ

n

-

ɛ

n

)

v

n

wherein n is a nonnegative time index, θ n is the estimated offset at time n, T 1,n is the time of sending of a first timing message from the master device to the slave device according to the master clock, T 2,n is the time of receipt of the first timing message according to the slave clock, T 3,n is the time of sending of a second timing message from the slave device to the master device according to the slave clock, T 4,n is the time of receipt of the second timing message according to the master clock, d f is the fixed delay between the master device and the slave device, d r is the fixed delay between the slave device and the master device, r f,n is the variable queuing delay between the master device and the slave device, r r,n is the variable queuing delay between the slave device and the master device, D n =[2 0 0] is a 1×3 matrix, X n T =[θ n α n φ n ] is a 3×1 matrix of the estimated offset, skew α n and drift φ n , ε n is a stochastic delay in the direction from the master device to the slave device, γ n is a stochastic delay in the direction from the slave device to the master device, and v n =(γ n −ε n ) is the measurement noise,

and the process equation used in the Kalman filtering approach is:

X

n

=

[

θ

n

α

n

φ

n

]

=

[

1

Δ

t

(

Δ

t

)

2

/

2

0

1

Δ

t

0

0

1

]

[

θ

n

-

1

α

n

-

1

φ

n

-

1

]

+

[

w

θ

,

n

w

α

,

n

w

φ

,

n

]

=

A

n

X

n

-

1

+

w

n

,

wherein w n is the process noise vector made up of the process noise in the offset, skew and drift and Δt is the time between iterations.

21. The system according to claim 20 wherein Δt=(T 2,n −T 2,n-1 ), which is the time between receipt of consecutive timing messages at the slave device.

22. The system according to claim 17 , wherein the controller is further arranged to synchronize the slave clock to the master clock at least based on the estimated drift.

23. The system according to claim 17 , wherein the controller is further arranged to:

determine between a normal condition in which timing messages are being received from the master device and an abnormal condition in which no timing messages have been received from the master device for at least a predetermined time period; and

during said normal condition, store information about the behavior of the slave clock, the information including information about the skew and drift of the slave clock compared to the master clock,

during said abnormal condition, use said stored information to control the slave clock and to essentially synchronize the slave clock to the master clock.

24. The system according to claim 23 wherein the stored information includes information about the offset of the slave clock compared to the master clock.

Assignments (2)
CHANGE OF NAME Recorded Aug 8, 2019
From: KHALIFA UNIVERSITY OF SCIENCE, TECHNOLOGY AND RESEARCH
To: KHALIFA UNIVERSITY OF SCIENCE AND TECHNOLOGY
Reel/Frame 050006/0773 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 12, 2018
From: AWEYA, JAMES
To: KHALIFA UNIVERSITY OF SCIENCE, TECHNOLOGY AND RESEARCH; BRITISH TELECOMMUNICATIONS PLC; EMIRATES TELECOMMUNICATIONS CORPORATION
Reel/Frame 045172/0035 →
Continuity (1)
Related Publication 20190207695A1 · Jul 4, 2019