IP Library Granted Patent US 7,020,791
Granted Patent B1
US 7,020,791 · App. 10/246,408 · Granted Mar 28, 2006

Clock recovery using a double-exponential smoothing process

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 7,020,791
App. No.
10/246,408
Granted
Mar 28, 2006
Kind
B1
Abstract

A system and method for synchronizing a local clock to a reference clock using a linear model of the clock error between the local clock and the reference clock is disclosed. In one embodiment, a double-exponential smoothing process is used in conjunction with the linear model to estimate a frequency offset by which the frequency of an oscillator of the local clock is adjusted. Also disclosed herein is a phased-lock loop (PLL) adapted to synchronize a local clock with a reference clock using the double-exponential smoothing process, as well as a system implementing the PLL for timing the playout of data received from a transmitter.

Claims (150)

1. A method for synchronizing a clock of a receiver with a clock of a transmitter, wherein the transmitter is adapted to transmit a sequence of time references to the receiver, each time reference being representative of a time of transmission of the time reference, the method comprising the steps of:

for each time reference of a subset of the sequence of time references:

determining a clock error based in part on a difference between the time reference and a time of the receiver clock representative of a time of a reception of the time reference at the receiver;

determining a first-order smoothing value based in part on a weighted average of the clock error and a previous first-order smoothing value associated with a previous time reference of the sequence previously received at the receiver;

determining a second-order smoothing value based in part on a weighted average of the first-order smoothing value and a second-order smoothing value associated with the previous time reference; and

determining a frequency offset based in part on a difference between the first-order smoothing value and the second-order smoothing value.

2. The method as in claim 1 , wherein the step of determining the first-order smoothing value is based in part on an equation:

S s ( T )=α x ( T )+(1−α) S s ( T− 1)

where S s (T) represents a first-order smoothing value associated with a time reference received at time T, x(T) represents a clock error between the transmitter clock and the receiver clock associated with the time reference received at time T, S s (T−1) represents a first-order smoothing value associated with a previous time reference received at time T−1 previous to time T, and α represents a real-value weighting factor between zero and one.

3. The method as in claim 1 , wherein the step of determining the second-order smoothing value is based in part on an equation:

S D ( T )=α S s ( T )+(1−α) S D ( T− 1)

where S D (T) represents a second-order smoothing value associated with a time reference received at time T, S D (T−1) represents a second-order smoothing value associated with a previous time reference received at time T−1 previous to time T, S s (T) represents a first-order smoothing value associated with the time reference received at time T, and α represents a real-value weighting factor between zero and one.

4. The method as in claim 1 , wherein the step of determining the frequency offset is based in part on an equation:

Δ

f

(

T

)

=

α

1

-

α

[

S

S

(

T

)

-

S

D

(

T

)

]

where Δf(T) represents the frequency offset associated with a time reference received at time T, S D (T) represents a second-order smoothing value associated with the time reference, S s (T) represents a first-order smoothing value associated with the time reference, and α represents a real-value weighting factor between zero and one.

5. The method as in claim 1 , further comprising the step of modifying, for each time reference of the subset, a frequency of the receiver clock by the frequency offset associated with the time reference.

6. The method as in claim 5 , wherein the step of modifying the frequency of the receiver clock is based in part on an equation:

f r ( T )= f r ( T− 1)+Δ f ( T )

where f r (T) represents the frequency of the receiver clock after modification, f r (T−1) represents the frequency of the receiver clock prior to modification, and Δf(T) represents the frequency offset.

7. The method as in claim 1 , wherein the transmitter and receiver are part of a packet-switched network, and wherein the sequence of time references include a sequence of timestamps transmitted from the transmitter to the receiver as packets over the packet-switched network.

8. A computer signal embodied in a carrier wave readable by a computing system and encoding a computer program of instructions for executing a computer process for performing the method recited as in claim 1 .

9. A phase-locked loop (PLL) for synchronizing a local clock to a reference clock, the PLL comprising:

an oscillator being adapted to output a local frequency;

a loop filter being adapted to:

for each time reference of a sequence of time references of the reference clock:

determine a first-order smoothing value based in part on a weighted average of a previous first-order smoothing value associated with a previously received time reference of the sequence and a difference between the time reference and a corresponding time reference of the local clock;

determine a second-order smoothing value based in part on a weighted average of the first-order smoothing value and a previous second-order smoothing value associated with the previously received packet; and

determine a frequency offset based in part on a difference between the first-order smoothing value and the second-order smoothing value; and

an oscillator input conditioner operably connected to the loop filter and the oscillator and being adapted to modify the local frequency of the oscillator by the frequency offset.

10. The PLL as in claim 9 , further comprising:

a counter operably connected to the oscillator and being adapted to convert the local frequency into a local clock reference; and

a phase detector operably connected to the loop filter and the counter and being adapted to determine, for each time reference of the sequence, a clock error based in part on a difference between the time reference and a corresponding time reference of the counter.

11. The PLL as in claim 9 , wherein the loop filter is adapted to determine the first-order smoothing value based in part on an equation:

S s ( T )=α x ( T )+(1−α) S s ( T− 1)

where S s (T) represents a first-order smoothing value associated with a time reference received at time T, x(T) represents a clock error between the transmitter clock and the receiver clock associated with the time reference received at time T, S s (T−1) represents a first-order smoothing value associated with a previous time reference received at time T−1 previous to time T, and α represents a real-value weighting factor between zero and one.

12. The PLL as in claim 9 , wherein the loop filter is adapted to determine the second-order smoothing value is based in part on an equation:

S D ( T )=α S s ( T )+(1−α) S D ( T− 1)

where S D (T) represents a second-order smoothing value associated with a time reference received at time T, S D (T−1) represents a second-order smoothing value associated with a previous time reference received at time T−1 previous to time T, S s (T) represents a first-order smoothing value associated with the time reference received at time T, and α represents a real-value weighting factor between zero and one.

13. The PLL as in claim 9 , wherein the loop filter is adapted to determine the frequency offset based in part on an equation:

Δ

f

(

T

)

=

α

1

-

α

[

S

S

(

T

)

-

S

D

(

T

)

]

where Δf(T) represents the frequency offset associated with a time reference received at time T, S D (T) represents a second-order smoothing value associated with the time reference, S s (T) represents a first-order smoothing value associated with the time reference, and α represents a real-value weighting factor between zero and one.

14. The PLL as in claim 9 , wherein the oscillator input conditioner is adapted to modify the frequency of the oscillator by the frequency offset based in part on an equation:

f r ( T )= f r ( T− 1)+Δ f ( T )

where f r (T) represents the frequency of the receiver clock after modification, f r (T−1) represents the frequency of the receiver clock prior to modification, and Δf(T) represents the frequency offset.

15. The PLL as in claim 9 , wherein the reference clock is a clock of a transmitter and the local clock is a clock of a receiver in a packet-switched network, and wherein the sequence of time references include a sequence of timestamps transmitted from the transmitter to the receiver as packets over the packet-switched network.

16. In a packet-switched network, a system for playout of data of a sequence of packets transmitted from a transmitter, the system comprising:

a data buffer being adapted to store a data payload of each packet of the sequence of packets;

a timestamp buffer being adapted to store a transmitter timestamp of each packet of the sequence of packets, the transmitter timestamp being representative of a time of a clock of the transmitter at a transmission of the packet;

a playout module operably connected to the data buffer and the timestamp buffer and being adapted to direct an output of a data payload from the data buffer when a corresponding transmitter timestamp in the timestamp buffer is equivalent to a time of a local clock; and

a phased-lock loop (PLL) being adapted to provide the local clock and being further adapted to:

for each packet of the sequence of packets:

determine a first-order smoothing value based in part on a weighted average of a clock error between the local clock and the transmitter clock and a previous first-order smoothing value associated with a previously received packet of the sequence;

determine a second-order smoothing value based in part on a weighted average of the first-order smoothing value and a second-order smoothing value associated with the previously received packet; and

modify a frequency of the local clock by a frequency offset based in part on a difference between the first-order smoothing value and the second-order smoothing value.

17. The system as in claim 16 , wherein the PLL is adapted to determine the first-order smoothing value based in part on an equation:

S s ( T )=α x ( T )+(1−α) S s ( T− 1)

where S s (T) represents a first-order smoothing value associated with a time stamp received at time T, x(T) represents a clock error between the transmitter clock and the local clock associated with the timestamp received at time T, S s (T−1) represents a first-order smoothing value associated with a previous timestamp received at time T−1 previous to time T, and α represents a real-value weighting factor between zero and one.

18. The system as in claim 16 , wherein the PLL is adapted to determine the second-order smoothing value is based in part on an equation:

S D ( T )=α S s ( T )+(1−α) S D ( T− 1)

where S D (T) represents a second-order smoothing value associated with a timestamp received at time T, S D (T−1) represents a second-order smoothing value associated with a previous timestamp received at time T−1 previous to time T, S s (T) represents a first-order smoothing value associated with the timestamp received at time T, and α represents a real-value weighting factor between zero and one.

19. The system as in claim 16 , wherein the PLL is further adapted to determine the frequency offset based in part on an equation:

Δ

f

(

T

)

=

α

1

-

α

[

S

S

(

T

)

-

S

D

(

T

)

]

where Δf(T) represents the frequency offset associated with a timestamp received at time T, S D (T) represents a second-order smoothing value associated with the timestamp, S s (T) represents a first-order smoothing value associated with the timestamp, and α represents a real-value weighting factor between zero and one.

20. The system as in claim 16 , wherein the PLL is adapted to modify the frequency of local clock based in part on an equation:

f r ( T )= f r ( T− 1)+Δ f ( T )

where f r (T) represents the frequency of the local clock after modification, f r (T−1) represents the frequency of the local clock prior to modification, and Δf(T) represents the frequency offset.

Assignments (9)
RELEASE OF SECURITY INTEREST Recorded Oct 26, 2020
From: JEFFERIES FINANCE LLC
To: RPX CLEARINGHOUSE LLC
Reel/Frame 054305/0505 →
PATENT SECURITY AGREEMENT Recorded Oct 23, 2020
From: RPX CLEARINGHOUSE LLC; RPX CORPORATION
To: BARINGS FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 054198/0029 →
PATENT SECURITY AGREEMENT Recorded Oct 23, 2020
From: RPX CLEARINGHOUSE LLC; RPX CORPORATION
To: BARINGS FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 054244/0566 →
SECURITY INTEREST Recorded Jun 29, 2018
From: RPX CLEARINGHOUSE LLC
To: JEFFERIES FINANCE LLC
Reel/Frame 046485/0644 →
RELEASE (REEL 038041 / FRAME 0001) Recorded Jan 2, 2018
From: JPMORGAN CHASE BANK, N.A.
To: RPX CORPORATION; RPX CLEARINGHOUSE LLC
Reel/Frame 044970/0030 →
SECURITY AGREEMENT Recorded Mar 9, 2016
From: RPX CORPORATION; RPX CLEARINGHOUSE LLC
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 038041/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 9, 2015
From: ROCKSTAR CONSORTIUM US LP; ROCKSTAR CONSORTIUM LLC; BOCKSTAR TECHNOLOGIES LLC; CONSTELLATION TECHNOLOGIES LLC; MOBILESTAR TECHNOLOGIES LLC; NETSTAR TECHNOLOGIES LLC
To: RPX CLEARINGHOUSE LLC
Reel/Frame 034924/0779 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 10, 2014
From: ROCKSTAR BIDCO, LP
To: ROCKSTAR CONSORTIUM US LP
Reel/Frame 032422/0919 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 28, 2011
From: NORTEL NETWORKS LIMITED
To: ROCKSTAR BIDCO, LP
Reel/Frame 027164/0356 →