Clock recovery using a direct smoothing process
AssigneeNortel Network Limited
InventorsJames Aweya, Michel Ouellette, Delfin Y. Montuno, Kent E. Felske
Life of this patent
Estimating the term…
Abstract
A system and method for synchronizing a local clock to a reference clock using a linear model of the error between the local clock and the reference clock is disclosed. In one embodiment, a direct 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 direct smoothing process, as well as a system implementing the PLL for timing the playout of data received from a transmitter.
Claims17
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 the transmitter clock at the transmission of the time reference, the method comprising the steps of:
- for each time reference of a subset of the sequence:
- estimating a difference between the time reference and a time of the receiver clock corresponding to a reception of the time reference, wherein the difference is estimated based at least in part on a linear model of at least one previous difference between at least one previous time reference and a time of the receiver clock corresponding to a reception of each of the at least one previous time references;
- updating an intercept coefficient of the linear model based at least in part on a previous value of the intercept coefficient associated with a previously received time reference, a previous value of a slope coefficient of the linear model associated with the previously received time reference, and an error between an actual difference between the time reference and the time of the receiver clock at the reception of the time reference and the estimated difference;
- updating a slope coefficient of the linear model based at least in part on the previous value of the slope coefficient, and the error between an actual difference and the estimated difference;
- and
- modifying, for each time reference of the subset, a frequency of the receiver clock by a frequency offset based at least in part on the updated slope coefficient;
- wherein the difference is estimated based at least in part on an equation:
- {circumflex over (x)}T(T−1)={circumflex over (b)}1(T−1)+{circumflex over (b)}2(T−1)Δt(T)
- where {circumflex over (x)}T(T−1) represents the estimated difference associated with a time reference received at time T and determined at a previous time reference received at time T−1, {circumflex over (b)}1(T−1) represents a value of the intercept coefficient associated with a previous time reference received at time T−1 previous to time T, {circumflex over (b)}2(T−1) represents a value of the slope coefficient associated with the previous time reference, and Δt(T) represents one of a group consisting of:
- an elapsed time between the reception of the time reference and the reception of the previous time reference and a constant value substantially equal to one.
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:
- estimate a difference between the time reference and a time of the local clock corresponding to a reception of the time reference, wherein the difference is estimated based at least in part on a linear model of at least one previous difference between at least one previous time reference and a time of the receiver clock corresponding to a reception of each of the at least one previous time references;
- update an intercept coefficient of the linear model based at least in part on a previous value of the intercept coefficient associated with a previous time reference of the sequence, a previous value of a slope coefficient of the linear model associated with the previous time reference, and an error between an actual difference between the time reference and a time of the local clock at the reception of the time reference and the estimated difference;
- and
- update a slope coefficient of the linear model based at least in part on the previous value of the slope coefficient, and the error between the actual difference and the estimated difference;
- wherein the loop filter is adapted to estimate the difference based at least in part on an equation:
- {circumflex over (x)}T(T−1)={circumflex over (b)}1(T−1)+{circumflex over (b)}2(T−1)Δt(T)
- where {circumflex over (x)}T(T−1) represents the estimated difference associated with a time reference received at time T and determined at a previous time reference received at time T−1, {circumflex over (b)}1(T−1) represents a value of the intercept coefficient associated with a previous time reference received at time T−1 previous to time T, {circumflex over (b)}2(T−1) represents a value of the slope coefficient associated with the previous time reference, and Δt(T) represents one of a group consisting of:
- an elapsed time between the reception of the time reference and the reception of the previous time reference and a constant value substantially equal to one;
- 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 a frequency offset based at least in part on the updated slope coefficient.
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:
- estimate a difference between a timestamp of the packet and a time of the local clock corresponding to a reception of the packet, wherein the difference is estimated based at least in part on a linear model of at least one previous difference between at least one previous time reference and a time of the receiver clock corresponding to a reception of each of the at least one previous time references;
- update an intercept coefficient of the linear model based at least in part on a previous value of the intercept coefficient associated with a previous packet of the sequence, a previous value of a slope coefficient of the linear model associated with the previous packet, and an error between an actual difference between the timestamp and the time of the local clock at reception of the time reference and the estimated difference;
- update the slope coefficient of the linear model based at least in part on the previous value of the slope coefficient, and the error between the actual difference and the estimated difference;
- and
- modify a frequency of the local clock by a frequency offset based at least in part on the updated slope coefficient;
- wherein the PLL is adapted to estimate the difference based at least in part on an equation:
- {circumflex over (x)}T(T−1)={circumflex over (b)}1(T−1)+{circumflex over (b)}2(T−1)Δt(T)
- where {circumflex over (x)}T(T−1) represents the estimated difference associated with a timestamp received at time T and determined at a previous time reference received at time T−1, {circumflex over (b)}1(T−1) represents a value of the intercept coefficient associated with a previous timestamp received at time T−1 previous to time T, {circumflex over (b)}2(T−1) represents a value of the slope coefficient associated with the previous timestamp, and Δt(T) represents one of a group consisting of:
- an elapsed time between the reception of the timestamp and the reception of the previous timestamp and a constant value substantially equal to one.
Dependencies are inferred from the claim text.