The present invention relates to methods and devices for time and frequency synchronization. It is particularly, but not exclusively, concerned with time and frequency synchronization over packet networks using, for example, the IEEE 1588 Precision Time Protocol (PTP) using a phase locked loop.
Mobile networks fall into two categories, Frequency Division Duplexing (FDD), which uses two separated frequency bands to transmit/receive, and Time Division Duplexing (TDD), which transmits and receives on a single frequency band. Time synchronization (in addition to frequency synchronization) is needed for LTE-TDD, WiMAX TDD, CDMA networks (popular in North America), TD-CDMA and TD-SCDMA, while only frequency synchronization is required for LTE-FDD, GSM (global system for mobile communications), W-CDMA, and other wireless technologies. Even with the use of LTE-FDD, new LTE mobile services such as network MIMO and location-based services will demand accurate time synchronization.
The present invention has particular application to clock synchronization (both time and frequency) over packet networks, specifically with the synchronization of telecom networks. Unlike IT computing systems and sensor networks, which require millisecond level accuracies to operate well, telecom networks require sub microsecond (in fact, nanosecond) level accuracies. Such stringent clock quality levels have traditionally been provided by GPS, atomic clocks, and TDM timing links. For these reasons, the ITU-T, IEEE, and other standards bodies have defined special standards to allow packet networks to support the special synchronization needs of telecom networks. One such recent standard that is now widely accepted and adopted by the telecom industry is the IEEE 1588 Precision Timing Protocol (PTP). There is even a special IEEE 1588 profile defined for telecom applications. Even though time synchronization for IT computing systems and sensor networks have the same underlying concepts, these systems have different application requirements, protocols, architectures, and implementation goals and therefore considered completely out of scope of telecom synchronization.
IEEE 1588 is now the industry accepted packet-based method/standard for distributing timing information from a master to enable the clocks of distributed systems to be synchronized with high precision (accuracies in the nanosecond levels). Its underlying principle is a master/slave concept based on the regular exchange of synchronization messages as shown in
IEEE 1588 synchronizes all clocks within a network by adjusting clocks to the highest quality clock (GrandMaster clock). IEEE 1588 supports both frequency and time transfer unlike another packet-based technique called Synchronous Ethernet with supports only frequency transfer. IEEE 1588 defines a wide range of synchronization capabilities except the clock recovery mechanisms (servo algorithm, PLL, timers, etc.) to be used at the slave (client) to synchronize its local clock to the master.
In the case where clock transfers have to be done end-to-end with no assistance from the packet network (for example in the form of hop-by-hop Boundary Clocks (BCs) [1][2] or Transparent Clocks (TCs)), there are no reference clocks traceable to a Primary Reference Clock (PRC) at both ends of the packet network, or in the absence of a network-wide GPS service, a receiving timing-dependent terminal node has to use an adaptive timing technique to reconstruct the timing signal of the transmitting timing reference source. The receiving terminal would commonly use a “packet-based” clock recovery mechanism that slaves the receiver clock to a transmitter clock. The clock recovery mechanism is able to process transmitted clock samples (timestamps) encoded within the packet data stream to generate timing signal for the receiver. The purpose of the clock recovery mechanism is to estimate and compensate for the frequency drift occurring between the oscillators of the transmitter clock and the receiver clock. However, the presence of packet delay variation (PDV) and packet losses affects the performance of the clock estimation/compensation process, making the transmitter clock appear faster or slower than it actually is, and ultimately, causing the propagation of mostly wander up to the receiver clock signal. Wander is clock noise less 10 Hz while jitter is clock noise equal or greater than 10 Hz.
A clock whether physical or virtual can be used to associate an event with time. The time of a single event is called a timestamp and is a real number. In IEEE 1588v2 PTP messages are categorized into event and general messages. All IEEE 1588 PTP messages have a common header. Event messages are timed messages in that an accurate timestamp is generated at both transmission and receipt of each message. Event messages have to be accurately timestamped since the accuracy in transmission and receipt timestamps directly affects clock distribution accuracy.
General messages are not required to be timestamped. A timestamp event is generated at the time of transmission and reception of any event message. The set of event messages consists of Sync, Delay_Req, Pdelay_Req, and Pdelay_Resp. The set of general messages consists of Announce, Follow_Up, Delay_Resp, Pdelay_Resp_Follow_Up, Management, and Signaling. IEEE 1588 PTP allows for two different types of timestamping methods, either one-step or two-step. One-step clocks update time information within event messages (Sync and Delay-Req) on-the-fly, while two-step clocks convey the precise timestamps of packets in general messages (Follow_Up and Delay-Resp).
The Sync, Delay_Req, Follow_Up, and Delay_Resp messages are used to generate and communicate the timing information needed to synchronize ordinary and boundary clocks using the delay request-response mechanism. A Sync message is transmitted by a master to its slaves and either contains the exact time of its transmission or is followed by a Follow_Up message containing this time. In a two-step ordinary or boundary clock, the Follow_Up message communicates the value of the departure timestamp for a particular Sync message. A Delay_Req message is a request for the receiving node to return the time at which the Delay_Req message was received, using a Delay_Resp message.
The basic pattern of synchronization message exchanges for the two-step clocks are illustrated in
At the end of this PTP message exchange, the slave 3 possesses all four timestamps {T1, T2, T3, T4}. These timestamps may be used to compute the offset of the slave's clock 5 with respect to the master clock 4 and the mean propagation time of messages between the two clocks. The computation of offset and propagation time assumes that the master-to-slave and slave-to-master propagation times are equal symmetrical communication path.
Time/frequency can be transferred in an end-to-end fashion from master 1 to slave 3 without involving the intermediate network nodes 6 as illustrated in
An exemplary embodiment of the invention provides a slave device connected to a master device having a master clock over a network, wherein the slave device includes: a slave clock; and a digital phase locked loop including a phase detector, a loop filter, a phase accumulator and a counter, wherein: the slave device is arranged to: exchange with the master device, timing messages and to record timestamps which are: the time of sending of said timing messages from the master device according to the master clock; the time of receipt of said timing messages according to the slave clock; the time of sending of said timing messages according to the slave clock; and the time of receipt of said timing messages according to the master clock, estimate the skew and offset of the slave clock relative to the master clock from said timestamps; and synchronize said slave clock to the master clock based on the estimated skew and offset to produce a master time estimate; the digital phase locked loop processes the master time estimate as follows: on receipt of a first estimate of the master time, the counter is initialised; on receipt of subsequent estimates of the master time, the phase detector is arranged to detect a phase difference between the output of the counter and the received estimate and produce an error signal representing that difference; the error signal is filtered by the loop filter to produce a filtered error signal; the filtered error signal is used to control the frequency of the phase accumulator; and the output of the phase accumulator increments the counter and also provides a clock frequency of the slave clock which is synchronized to the frequency of the master clock.
A further exemplary embodiment of the invention provides a method of synchronizing the time and frequency of a slave clock in a slave device to a master clock in a master device which is connected to the slave device over a network, the method including the steps of: exchanging, between the master device and the slave device, timing messages and timestamps which are: the time of sending of timing messages from the master device according to the master clock; the time of receipt of said timing messages according to the slave clock; the time of sending of said timing messages according to the slave clock; and the time of receipt of said timing messages according to the master clock, estimating the skew and offset of the slave clock relative to the master clock from said timestamps; and synchronizing said slave clock to the master clock based on the estimated skew and offset to produce a master time estimate; using a digital phase locked loop including a phase detector, a loop filter, a phase accumulator and a counter, processing the master time estimate as follows: on receipt of a first estimate of the master time, initializing the counter; on receipt of subsequent estimates of the master time, detecting, using the phase detector, a phase difference between the output of the counter and the received estimate and producing an error signal representing that difference; filtering the error signal using the loop filter to produce a filtered error signal; controlling the frequency of the phase accumulator using the filtered error signal; and incrementing counter using the output of the phase accumulator, and obtaining a clock frequency of the slave clock which is synchronized to the frequency of the master clock as the output of the phase accumulator.
A further exemplary embodiment of the invention provides a time and frequency synchronisation system for a network, the system including: a master device having a master clock; a slave device having a slave clock; and a network connecting the master and slave devices, wherein: the slave clock comprises: a slave clock; and a digital phase locked loop including a phase detector, a loop filter, a phase accumulator and a counter, wherein: the slave device is arranged to: exchange with the master device, timing messages and to record timestamps which are: the time of sending of said timing messages from the master device according to the master clock; the time of receipt of said timing messages according to the slave clock; the time of sending of said timing messages according to the slave clock; and the time of receipt of said timing messages according to the master clock, estimate the skew and offset of the slave clock relative to the master clock from said timestamps; and synchronize said slave clock to the master clock based on the estimated skew and offset to produce a master time estimate; the digital phase locked loop processes the master time estimate as follows: on receipt of a first estimate of the master time, the counter is initialised; on receipt of subsequent estimates of the master time, the phase detector is arranged to detect a phase difference between the output of the counter and the received estimate and produce an error signal representing that difference; the error signal is filtered by the loop filter to produce a filtered error signal; the filtered error signal is used to control the frequency of the phase accumulator; and the output of the phase accumulator increments the counter and also provides a clock frequency of the slave clock which is synchronized to the frequency of the master clock.
Embodiments of the invention will now be described by way of example with reference to the accompanying drawings in which:
At their broadest, slave devices of the present invention include a slave clock and a phase locked loop which is used to process an estimate of the time and frequency of a master clock to which the slave clock is desired to be synchronized.
A first aspect of the present invention provides a slave device connected to a master device having a master clock over a network, wherein the slave device includes: a slave clock; and a digital phase locked loop including a phase detector, a loop filter, a phase accumulator and a counter, wherein: the slave device is arranged to: exchange with the master device, timing messages and to record timestamps which are: the time of sending of said timing messages from the master device according to the master clock; the time of receipt of said timing messages according to the slave clock; the time of sending of said timing messages according to the slave clock; and the time of receipt of said timing messages according to the master clock, estimate the skew and offset of the slave clock relative to the master clock from said timestamps; and synchronize said slave clock to the master clock based on the estimated skew and offset to produce a master time estimate; the digital phase locked loop processes the master time estimate as follows: on receipt of a first estimate of the master time, the counter is initialised; on receipt of subsequent estimates of the master time, the phase detector is arranged to detect a phase difference between the output of the counter and the received estimate and produce an error signal representing that difference; the error signal is filtered by the loop filter to produce a filtered error signal; the filtered error signal is used to control the frequency of the phase accumulator; and the output of the phase accumulator increments the counter and also provides a clock frequency of the slave clock which is synchronized to the frequency of the master clock.
The digital phase locked loop in the slave device can be used to attenuate the clock noise introduced by the network (which may be, for example, a packet network) to levels commensurate with the clock output requirements of the application.
Preferably the timing messages are messages under the IEEE 1588 PTP, for example, Sync, Follow_Up, Delay_Req or Delay_Response messages.
Preferably the slave device uses the output of the counter as the clock time of the slave clock which is synchronized to the time of the master clock
The slave device of this aspect can therefore provide a timestamp-based clock recovery technique for end-to-end time and frequency distribution over packet networks. This technique requires no assistance from the packet network and is still able to provide sub-microsecond level clock accuracies. The digital phase locked loop can provide both time and frequency signals for use at the slave (time client). Most techniques, typically, provide only one signal type, not both.
The counter output (time signal) can be subsequently formatted into various standard time signals as required.
The slave device of this aspect may further comprise a direct digital synthesizer producing an analog frequency signal from the output of the phase accumulator, the direct digital synthesizer including: the phase accumulator; an oscillator; a mapping device; and a digital-to-analog converter. The slave device may further comprise a low-pass filter arranged to filter the output of the direct digital synthesizer.
The slave device may process or condition the output of the phase accumulator in other ways to provide a signal that meets the jitter requirements of the end applications in the slave device. Various forms of signals (square wave, sine wave, etc.) with interface form factors can be constructed from the phase accumulator overflow output. These signals can be conditioned by another (typically analog) phase locked loop.
In one embodiment, the counter of the digital phase locked loop is also used to provide timestamps for the time of receipt and of sending of timing messages at/from the slave device.
In this embodiment the counter may be initialized on receipt by the slave device of the first timing message from the master device, and the counter may be reset on receipt of the first master time estimate to said first master time estimate.
In an alternative embodiment, the slave device further comprises a second free-running counter, wherein the second counter is used to provide timestamps for the time of receipt and sending of timing messages at/from the slave device.
The slave device preferably produces the master time estimate using a recursive technique for estimating the clock offset and skew (of the slave with respect to the master). The recursive estimation technique is preferably an exponentially weighted recursive least squares method which is Kalman Filter like in structure but does not require knowledge of the measurement and process noise statistics as in the traditional Kalman Filter. An example of such a method is described in the embodiments below.
The slave device of this aspect preferably operates by carrying out the relevant steps of a method according to the second aspect described below.
The slave device of the present aspect may include any combination of some, all or none of the above described preferred and optional features.
At their broadest, methods of the present invention provide for methods of synchronizing the time and frequency of a slave clock to a master clock by using a phase locked loop to process an initial estimate of the time and frequency of the master clock in the slave device.
A second aspect of the present invention provides a method of synchronizing the time and frequency of a slave clock in a slave device to a master clock in a master device which is connected to the slave device over a network, the method including the steps of: exchanging, between the master device and the slave device, timing messages and timestamps which are: the time of sending of timing messages from the master device according to the master clock; the time of receipt of said timing messages according to the slave clock; the time of sending of said timing messages according to the slave clock; and the time of receipt of said timing messages according to the master clock, estimating the skew and offset of the slave clock relative to the master clock from said timestamps; and synchronizing said slave clock to the master clock based on the estimated skew and offset to produce a master time estimate; using a digital phase locked loop including a phase detector, a loop filter, a phase accumulator and a counter, processing the master time estimate as follows: on receipt of a first estimate of the master time, initializing the counter; on receipt of subsequent estimates of the master time, detecting, using the phase detector, a phase difference between the output of the counter and the received estimate and producing an error signal representing that difference; filtering the error signal using the loop filter to produce a filtered error signal; controlling the frequency of the phase accumulator using the filtered error signal; and incrementing counter using the output of the phase accumulator, and obtaining a clock frequency of the slave clock which is synchronized to the frequency of the master clock as the output of the phase accumulator.
The digital phase locked loop in the slave device can be used to attenuate the clock noise introduced by the network (which may be, for example, a packet network) to levels commensurate with the clock output requirements of the application.
Preferably the timing messages are messages under the IEEE 1588 PTP, for example, Sync, Follow_Up, Delay_Req or Delay_Response messages.
Preferably the method further includes the step of using the output of the counter as the clock time of the slave clock which is synchronized to the time of the master clock.
The method of this aspect can therefore provide a timestamp-based clock recovery technique for end-to-end time and frequency distribution over packet networks. This technique requires no assistance from the packet network and is still able to provide sub-microsecond level clock accuracies. The digital phase locked loop can provide both time and frequency signals for use at the slave (time client). Most techniques, typically, provide only one signal type, not both.
The counter output (time signal) can be subsequently formatted into various standard time signals as required.
The method of this aspect may further include the step of producing an analog frequency signal from the output of the phase accumulator using a direct digital synthesizer including the steps of: mapping the output of the phase accumulator to produce a digital waveform; and converting said digital waveform to an analog waveform using a digital-to-analog converter. The method may further include the step of low-pass filtering the analog waveform to produce a smoothed waveform.
The method may process or condition the output of the phase accumulator in other ways to provide a signal that meets the jitter requirements of the end applications in the slave device. Various forms of signals (square wave, sine wave, etc.) with interface form factors can be constructed from the phase accumulator overflow output. These signals can be conditioned by another (typically analog) phase locked loop.
In one embodiment, the timestamps for the time of receipt and of sending of timing messages at/from the slave device are provided by the counter of the digital phase locked loop.
In this embodiment, the method may further include the steps of: initializing the counter on receipt by the slave device of the first timing message from the master device, and resetting the counter to said first master time estimate on receipt of the first master time estimate.
In an alternative embodiment, the timestamps for the time of receipt and sending of timing messages at/from the slave device are provided by a second free-running counter.
The method preferably produces the master time estimate using a recursive technique for estimating the clock offset and skew (of the slave with respect to the master). The recursive estimation technique is preferably an exponentially weighted recursive least squares method which is Kalman Filter like in structure but does not require knowledge of the measurement and process noise statistics as in the traditional Kalman Filter. An example of such a method is described in the embodiments below.
The method of the present aspect may include any combination of some, all or none of the above described preferred and optional features.
The methods of the above aspect is preferably implemented by a slave device according to the first aspect of this invention or in a system according to the third aspect of this invention, as described below, but need not be.
Further aspects of the present invention include computer programs for running on computer systems which carry out the methods of the above aspect, including some, all or none of the preferred and optional features of that aspect.
At their broadest, systems of the present invention provide for time and frequency synchronization between a master device and a slave device over a network wherein the slave device uses a phase locked loop to process an initial estimate of the time and frequency of the master clock in the slave device.
A third aspect of the present invention provides a time and frequency synchronisation system for a network, the system including: a master device having a master clock; a slave device having a slave clock; and a network connecting the master and slave devices, wherein: the slave clock comprises: a slave clock; and a digital phase locked loop including a phase detector, a loop filter, a phase accumulator and a counter, wherein: the slave device is arranged to: exchange with the master device, timing messages and to record timestamps which are: the time of sending of said timing messages from the master device according to the master clock; the time of receipt of said timing messages according to the slave clock; the time of sending of said timing messages according to the slave clock; and the time of receipt of said timing messages according to the master clock, estimate the skew and offset of the slave clock relative to the master clock from said timestamps; and synchronize said slave clock to the master clock based on the estimated skew and offset to produce a master time estimate; the digital phase locked loop processes the master time estimate as follows: on receipt of a first estimate of the master time, the counter is initialised; on receipt of subsequent estimates of the master time, the phase detector is arranged to detect a phase difference between the output of the counter and the received estimate and produce an error signal representing that difference; the error signal is filtered by the loop filter to produce a filtered error signal; the filtered error signal is used to control the frequency of the phase accumulator; and the output of the phase accumulator increments the counter and also provides a clock frequency of the slave clock which is synchronized to the frequency of the master clock.
The digital phase locked loop in the slave device can be used to attenuate the clock noise introduced by the network (which may be, for example, a packet network) to levels commensurate with the clock output requirements of the application.
Preferably the timing messages are messages under the IEEE 1588 PTP, for example, Sync, Follow_Up, Delay_Req or Delay_Response messages.
Preferably the slave device uses the output of the counter as the clock time of the slave clock which is synchronized to the time of the master clock.
The system of this aspect can therefore provide a timestamp-based clock recovery technique for end-to-end time and frequency distribution over packet networks between a master and slave device. This technique requires no assistance from the packet network and is still able to provide sub-microsecond level clock accuracies. The digital phase locked loop can provide both time and frequency signals for use at the slave (time client). Most techniques, typically, provide only one signal type, not both.
The counter output (time signal) can be subsequently formatted into various standard time signals as required.
The slave device may further comprise a direct digital synthesizer producing an analog frequency signal from the output of the phase accumulator, the direct digital synthesizer including: the phase accumulator; an oscillator; a mapping device; and a digital-to-analog converter. The slave device may further comprise a low-pass filter arranged to filter the output of the direct digital synthesizer.
The slave device may process or condition the output of the phase accumulator in other ways to provide a signal that meets the jitter requirements of the end applications in the slave device. Various forms of signals (square wave, sine wave, etc.) with interface form factors can be constructed from the phase accumulator overflow output. These signals can be conditioned by another (typically analog) phase locked loop.
In one embodiment, the counter of the digital phase locked loop is also used to provide timestamps for the time of receipt and of sending of timing messages at/from the slave device.
In this embodiment the counter may be initialized on receipt by the slave device of the first timing message from the master device, and the counter may be reset on receipt of the first master time estimate to said first master time estimate.
In an alternative embodiment, the slave device further comprises a second free-running counter, wherein the second counter is used to provide timestamps for the time of receipt and sending of timing messages at/from the slave device.
The slave device preferably produces the master time estimate using a recursive technique for estimating the clock offset and skew (of the slave with respect to the master). The recursive estimation technique is preferably an exponentially weighted recursive least squares method which is Kalman Filter like in structure but does not require knowledge of the measurement and process noise statistics as in the traditional Kalman Filter. An example of such a method is described in the embodiments below.
The system of this aspect preferably operates by carrying out a method according to the above described second aspect.
The system of the present aspect may include any combination of some, all or none of the above described preferred and optional features.
Consider the time server (master) and time client (slave) clocks, S and C, respectively. The difference or offset of the clock C relative to S at time t≧0 is θ(t)=(S(t) C(t)). t is used to denote the true time or reference (ideal) time. Frequency is the rate at which a clock progresses, and the frequency at time t of S is S′(t). The skew a is defined as the normalized frequency difference between a clock and another clock. Generalized clock offset and skew equations can then be defined for the synchronization problem. It is assumed that at any particular time instant, the instantaneous view of the relationship between the master (server) clock with timeline S(t) and the slave (client) clock with timeline C(t), can be described by the well-know simple skew clock model depicted in
S(t)=(1+α)C(t)+θ, (1)
where the normalized α is a very small quantity in the order of parts-per-million. This snapshot is an instantaneous view of how well the two clocks are (mis)aligned.
The above equation can be extended to account for the case where the master clock and slave clock exchange messages over a communication link with delay. Assume that a Sync message travels from a master to a slave experiences a fixed delay d plus a variable (stochastic) delay ε. Similarly, assume a Delay_Req message sent from the slave to the master experiences a fixed delay of d and a variable delay γ. It is further assumed that the fixed delay components in both directions are equal (symmetric communication paths) but the messages experience variables delays such queuing delays. The master and slave exchange messages using the Delay_Request Delay_Response mechanism described in
For the nth Sync message (
(T1,n+d+εn)=(1+αn)T2,n+θn (2)
The variables θn and αn are the offset and skew during the nth Sync message exchange.
For the nth Delay_Req message which departs with timestamp T3,n∈C(t) and arrives with timestamp T4,n∈S(t) after having experienced a fixed delay d and a variable delay γn, the following expression is obtained
T
4,n
−d−γ
n=(1+αn)T3,n+θn (3)
Adding (2) and (3) provides
T
1,n
+T
4,n+εn−γn=(1+αn)(T2,n+T3,n)+2θn(T1,n−T2,n)+(T4,n−T3,n)=2θn+αn(T2,n+T3,n)+(γn−εn) (4)
The expression above is a measurement (observation) equation of the form
y
n
=
n
T
n
+v
n (5)
where n is a nonnegative time index, yn=(T1,n−T2,n)+(T4,n−T3,n) is a scalar,
The clock offset can be expressed from (4) as follows
It can be seen from this equation that for a system with zero skew and no noise, the clock offset simplifies to the classic offset equation
The above equation can be derived without the minus sign when the clock model C(t)=(1+α)S(t)+θ is used instead. Either way, the same classic offset equation can be derived.
Typically, the clock deviation of a clock is modeled by the following random differential equation
where F is an L×L real matrix and X(t) is the state vector
The quantity x1(t)=θ(t) represents the time deviation (or time offset), x2(t)=α(t) is the clock frequency deviation, and x3(t)=α(t) represents the so-called frequency drift or aging. In the model, ξ(t) is the vector of statistically independent zero-mean white Gaussian noises,
with each element of the vector having autocorrelation
E[ξ
k(t1)ξk(t2)]=gkδ(t1−t2),
for k=1, 2, . . . , L and where δ(t) is the Dirac delta function. The autocorrelation matrix of ξ(t) is thus
E[ξ(t1)ξT(t2)]=Gδ(t1−t2), (12)
and where G is the diagonal matrix
The random differential (8) can be written in the integral form
X(t)=Φ(t−t0)X(t0)+∫t
where t0 is the initial time and Φ(t) is the transition matrix
Φ(t)=eFt. (15)
The time axis can be discretized with a sampling time Δt so that t takes the values tn=nΔt, where n=0, 1, 2, . . . . The integral form of (14) in discrete time becomes
X(tn)=Φ(Δt)X(tn−1)+w(tn−1)
n
=Ā
n−1
+
n (16)
where
w(tn−1)=∫t
is a Gaussian random variable whose mean is zero and whose covariance matrix is
For L=2, it is noted that the matrix A in our clock process model (16) is
which an approximation of a power series expansion of (15), which is
where I is the identity matrix. The system can be described by the following two-state dynamic model
where An is the known 2-by-2 state transition matrix and
The variance of the process noise
The model used in this embodiment is based on state-space representations of the variables being estimated. The state-space formulation implies that, at each point in time, the process being modeled is described by a vector of state variables that summarize all relevant quantities of interest. The filtering algorithm to be described below uses this model of the time behavior of the system along with noisy observations or measurements of some system variables to produce optimal estimates of all state variables. These estimates are then used in the process model to determine state estimates for future time periods.
Consider a state-space model described by the following pair of equations (i.e., clock measurement and state equations, respectively),
y
n
=
n
T
n
+v
n,
n+1
=Ā
n
n
+
n,
where n is a nonnegative time index, Ān is a known M-by-M state transition matrix,
is the backward transition matrix relating the states
If we define the (n+1)-by-M matrix
n
=[
n,(
and the (n+1)-dimensional vector
then the set of measurements {yn, yn−1, . . . , y0} can be expressed as
n
=
n
n
+
n, (27)
where
Consider
J({circumflex over (X)})=(
where
{circumflex over (X)}=(
which is an unbiased estimate of
where 0<λ≦1 and λn(0≦n≦M−1) represents the (n+1)-th diagonal element. This results in the cost function (28) becoming
where yn is the (M−n)-th element of
Using (29) the state vector
{circumflex over (X)}
n,n=(
where {circumflex over (X)}n,n denotes an estimate of
When λ1=λ2= . . . =λn=λ, the weight becomes identical to (30).
To reduce the amount of calculations for {circumflex over (X)}n,n in (32), a recursive version needs to be developed. Substituting
where
{circumflex over (X)}
n,n−1=(
where
n,n−1=(
and
n,n−1=λn
With this weight matrix, every input including the most recent one yn−1 can be properly weighted for one-step prediction. The goal here is to express {circumflex over (X)}n,n in terms of {circumflex over (X)}n,n−1 and {circumflex over (X)}n−1,n−1. Substituting (37) into (36), and making use of the relations
Using the relation (abc)−1=c−1b−1a−1 in the above result gives
Substituting (38) in (35) and using the relations
Using (32) in the above results gives
{circumflex over (X)}
n,n−1
=Ā
n−1
{circumflex over (X)}
n−1,n−1, (39)
Exploiting the following relations
the recursions for
Applying the matrix inversion lemma (a+bcd)−1=a−1−a−1b(da−1b+c−1)−1da−1 to the above, gives
Now the desired estimate {circumflex over (X)}n,n becomes
which after some manipulations reduces to
is the Kalman gain vector. Eq. (41) can further be expressed in terms of
n,n=(Ī−
where Ī is the identity matrix. Equations (38), (39), (41), (42), and (43) constitute the RLS algorithm which is summarized in the steps below:
1. Initialize Algorithm by Setting
{circumflex over (X)}
0,−1=
0,−1=γ−1Ī, γ is a small positive constant
n=1
2. State Prediction:
{circumflex over (X)}
n,n−1
=Ā
n−1
{circumflex over (X)}
n−1,n−1
3. Calculate
4. Calculate Kalman Gain Vector
5. Update State Estimate:
{circumflex over (X)}
n,n
={circumflex over (X)}
n,n−1
+
n(yn−
6. Calculate
n,n=(Ī−
n=n+1 7.
go to step 2
For the present clock synchronization problem, the initialization factor γ is selected to be a small positive constant in the order of parts-per-million (e.g., γ=10−6). The forgetting factor λn is a suitable constant (e.g., λn=0.9999) or can be made dynamic.
The clock offset ({circumflex over (δ)}) and skew ({circumflex over (α)}) can be estimated by the client after each Sync message broadcast by the server or after multiple periods of the Sync message broadcast. The period between Sync messages could serve as sampling period of the system. The server time Ŝ can be computed using the local clock C of the client as adjusted for skew and offset as illustrated in
The principal purpose of the architecture shown in
At startup, the DPLL 20 waits for the first computed server time estimate (Ŝ(0)). This first server time estimate is used to initialize the DPLL counter (Ĉ(0)=Ŝ(0)). From this point onwards and upon the receipt of subsequent server time estimates (Ŝ(n)) at any discrete time instant n, the DPLL 20 starts to operate in a closed-loop fashion. At each server time estimate (Ŝ(n)), the DPLL counter reading is noted by the slave (Ĉ(n)). Then the difference between the computed server time estimate (Ŝ(n)) and the DPLL counter reading (Ĉ(n)) gives an error signal (e(n)=Ŝ(n)−Ĉ(n)). This error signal (e(n)) is sent to the loop filter 21 whose output controls the frequency of the phase accumulator 23. The output (overflow pulses) of the phase accumulator 23 in turn provides the clock frequency of the slave and also drives the DPLL counter 24. After a while the error term is expected to converge to zero which means the DPLL 20 has been locked to the incoming master time base (in both frequency and time).
As shown in
The frequency signal can then be conditioned using other techniques as shown in
The architecture shown in
The phase accumulator 23 is a variable-modulus counter that increments the number stored in it each time it receives a clock pulse. When the counter overflows it wraps around, making the phase accumulator's output contiguous. The larger the added increment φ, the faster the accumulator overflows, which results in a higher output frequency. The output frequency fDDS of the phase accumulator is a function of the system clock frequency fo, the number of bits q in the phase accumulator and the phase increment value φ. The phase increment φ is an unsigned value.
From this equation it can be seen that the frequency resolution of the phase accumulator is fres=fo/2q. Assuming that the phase accumulator is operating with a control input φnom which corresponds to the nominal frequency fDDS=fnom, it will be seen from the above discussion that, adding a quantity −φcorr to φnom (i.e., φDDS=φnom−φcorr) results in a decrease in the output frequency, fDDS=fnom−Δf, whereas adding a quantity +φcorr to φnom (i.e., φDDS=φnom+φcorr) results in an increase in the output frequency, fDDS=fnom+Δf. Thus, by appropriately controlling the quantity φcorr added to φnom the output frequency of the phase accumulator fDDS can be controlled accordingly.
The phase accumulator 23 can be employed, if needed, as part of a Direct Digital Synthesizer (DDS) 30 from which an analog signal can be generated as shown in
In order to analyze and design a control system, it is necessary to obtain a quantitative mathematical description or model of the system. The model is a set of mathematical relationships among the system variables. Because the system under consideration is dynamic in nature, the descriptive equations are usually differential (or difference) equations. The model or the set of differential equations describe the dynamic behavior of the system. The differential equations developed in modeling are often nonlinear. Because they are significantly more challenging to solve than linear ones, linear models are usually adequate. Linearization is the process of finding a linear model that approximates a nonlinear one. Both analysis and control design are far easier for linear than nonlinear models. The justification for using linear models is that, if a small-signal linear model is valid near an equilibrium (steady-state) and is stable, there is a region which may be small, containing the equilibrium within which the nonlinear system is stable. In other words, the deviation from equilibrium is assumed to be small so that the nonlinear functions can be approximated by linear functions.
Furthermore, if these equations can be linearized, then the Laplace transform can be utilized in order to simplify the method of solution. In practice, the complexity of systems and the lack of complete knowledge of all the relevant factors necessitate the introduction of assumptions concerning the system operation. Therefore we shall find it useful to consider the physical system, delineate some necessary assumptions, and linearize the system. Then utilizing mathematical tool such as the Laplace transform, we obtain a solution describing the operation of the system.
A phase locked look (PLL) is essentially a feedback control system as shown in
Assuming that the phase error θe (i.e., θe(n)=θs(n)−θOSC(n) is the difference between the oscillator clock phase θOSC(n) and the reference clock phase θs(n)) is within a limited range, the PLL as a feedback control system can be simplified as linear feedback control system. This assumption is reasonable for most applications since a real PLL has a bounded and limited locking range (expressed in parts-per-million, ppm, of the nominal operating frequency), outside of which locking cannot be guaranteed. The small signal linear analysis for the PLL is therefore useful for studying steady-state equilibrium behavior and stability properties under these same conditions. In the following sections, control models are developed for the phase detector 21, the controlled oscillator and, given some general structure of the loop filter 22, the PLL as a whole. The analysis will further provide design procedures for determining the parameters of the loop filter 22 that will meet certain pre-specified design and performance requirements.
In the DDS 30, the nominal control word φnom produces the corresponding nominal frequency fnom. It is assumed that the control input φnom is change by the amount φcorr at discrete time n. Note that change takes effect in the next discrete interval. This change results in an output frequency of
This corresponds to an angular frequency of
The above equation can also be written as
is the DDS gain. By definition, the phase of the DDS θDDS is given by the integral over the frequency variation Δω(n)=ωDDS(n)−ωnom as
The DDS appears in the digital PLL as a digital integrator, just as the VCO appears as an analog integrator in the analog PLL.
Given that ωDDS=2πfoφ/2q, the DDS gain can be obtained alternatively as KDDS=dωDDS/dφ=2πfo/2q.
From the above integration, the transfer function of the DDS in the z-domain is given as
where z−1 denotes the delay operator (i.e., z−1x(n)=x(n−1)), and ΘDDS(z)=ΘOSC(z) and Φcorr(z) are the z-transforms of θDDS(n)=θOSC(n) and φcorr(n), respectively.
Tsp is defined as the nominal time interval between Ŝ estimation and as the sampling interval of the DPLL at the time client. The sampling interval Ts, is quantized by the nominal client clock fnom into M=Tsp/tnom units as shown in
If the PD output e is plotted versus phase error θe, a sawtooth function as shown in
The slope of the PD characteristic curve is equivalent to the gain of the PD. From
When the phase error is restricted to the range −2π<θe<2π, the PD output becomes
The PD 21 measures the phase difference θe(n)=θs(n)−θOSC(n) between the time client DPLL controlled oscillator phase θOSC(n) and the time server (reference) clock phase θs(n) and develops an output e(n) that is proportional to this phase difference θe(n). This operation can be expressed as
e(n)=KPD·θe(n) (55)
The error signal output e(n) is then passed to the loop filter GLF(z) to be processed into the filtered error {tilde over (e)}(n). The transfer function of the PD is given as
where E(z) and Θe(z) are the z-transforms of e(z) and θe(z), respectively.
The error signal e(n) from the PD 21 is passed to a digital loop filter 22, the output of which is used to adjust the frequency fOSC=fDDS of the oscillator. There are many forms of filters that can be used as the loop filter 22. For example, the digital loop filter 22 could be implemented as a proportional plus integral (PI) filter having transfer function GLF(z) given by
where {tilde over (E)}(z) is the z-transform of the filter output {tilde over (e)}(n), and K1 and K2 are the proportional and integral path gains, respectively. This transfer function is equivalent to the discrete-time control equation
{tilde over (e)}(n)={tilde over (e)}(n−1)+K1(e(n)−e(n−1))+K2e(n)
The loop filter being a PI filter yields a second-order PLL. The proportional gain K1 and the integral gain K2 determine the filter response. The filter gains K1 and K2, if required, can be adjusted dynamically on the fly, with greater gain in the startup process for fast locking (acquisition mode) and smaller gain in steady-state for better stability and steady-state error (tracking mode).
The DPLL 20 with a well-designed loop filter 22 can eventually eliminate the phase difference and make the controlled oscillator output phase and frequency lock to the reference.
This section describes a method for synthesizing a DPLL using standard control theory principles. The design is based on the digitization of a continuous-time system whereby the s-plane poles and zeros of a specified differential equation are mapped to the z-plane poles and zeros of a corresponding difference equation using the matched pole-zero (MPZ) method.
Linear Second-Order Model of a PLL in the s-Domain
The analog or continuous-time PLL 40 (see
In the absence of noise, the closed-loop transfer function and normalized phase error response are specified in the Laplace domain, respectively, as
where ΘVCO(s), Θs(s), and Θe(s) are the Laplace transforms of the VCO phase θVCO(t) reference signal phase θs(t), and phase error θe(t), respectively.
The order of the loop is equal to the number of perfect integrators within the loop structure. Since the VCO 43 is modeled as a perfect integrator the loop is at least of order 1. If the loop filter 42 contains one perfect integrator, then the loop is of order 2.
The order of the loop can be shown to greatly influence the steady-state performance of the loop. The steady-state phase error can readily be determined from (59) by means of the final value theorem, i.e.,
The steady-state error is defined as the deviation of the VCO phase from the reference after the transient response has died out. The steady-state error is simply θe(∞). It can be shown by means of (60) that a first-order loop or higher will track an initial phase offset with zero steady-state error. Moreover, a second-order system is required to track a frequency step, while a third-order loop must be employed to track an accelerating phase with zero steady-state error.
This paper considers a second-order lag-lead filter (also known as a proportional-integral (PI) filter) which has transfer function
where τ1 and τ2 are time constants of the filter. The filter has a pole at s=0 and therefore behaves like an integrator. It has (at least theoretically) infinite gain at zero frequency. The closed-loop transfer function of the PLL with this filter is obtained as
where ωn and ζ are the natural frequency and damping factors, respectively, and are specified in terms of KPD, KVCO, τ1 and T2 as
These two parameters are usually used to specify performance requirements of a system. The poles of the closed loop system are
s
0,1=−ζωn±jωn√{square root over (1−ζ2)}. (65)
When ζ>1, the poles are real; and when ζ<1, the poles are complex and conjugate. When ζ=1, the poles are repeated and real and the condition is called critical damping. When ζ<1, the response is underdamped and the poles are complex.
The transient response of the closed-loop system is increasingly oscillatory as the poles approach the imaginary axis when ζ approaches zero. The above model can be directly applied to the PLL in the continuous-time domain. But for systems based on sampled data, discrete-time models have to be used.
Linear Second-Order Model of a PLL in the z-Domain
A linearized, time-invariant, approximate transfer function for the entire PLL 40 can be derived based on the conditions that nonlinearity of the system quantization is neglected. The z-domain representation of the PD 41, loop filter 42 and the controlled oscillator 43 are given, respectively, as
Using these transfer functions, the closed-loop transfer function of the PLL 40 becomes
The matched pole-zero (MPZ) method will now be applied to the H(s) to obtain a discrete-time system H2 (z) that is of form (or relates to the discrete transfer function) H(z). From this relationship, we will derive closed form expressions for the loop filter gains K1 and K2.
The goal here is to map the system that meets the performance requirements specified by ωn and damping factor ζ to a corresponding model in the z-domain. The MPZ method directly maps the s-plane poles and zeros of an analog system to the corresponding z-plane poles and zeros of a discrete-time system. Here the Modified-MPZ (MMPZ) method is used which can be described as follows:
The Final Value Theorem is often used to find the steady state value of a time function given its Laplace transform or z-transform. Suppose we have a function x(t), the theorem states, in the s-domain, that
The DC gain of H(s) is obtained as
Setting the DC gain of H2(z) to that of H(s) we see that
K
DC=1.
Therefore, the transfer function H2(Z) simplifies to
The transfer function H2(z) can further be expressed as
Now comparing the denominators (or characteristic functions) of H(z) and H2(Z) will be seen that
Typically, performance specification for feedback control systems often involves certain requirements associated with the time response of the system. The setting time, tset, is defined as the time it takes for the system transients to decay. For the PLL, tset is also referred to as the locking time. For the second-order system with 0≦ζ<1, the setting time (for the system to settle within 1% of the input amplitude) is given by
Thus, for a second-order system, by specifying the settling time, tset, and the damping factor (e.g., ζ=0.707), the undamped natural frequency ωn, and the filter gains K1 and K2 can easily be determined from the above equations.
Designers of Telecom PLLs typically adopted the following approach to determine the PLL parameters. The damping ratios in PLLs and clocks in telecom systems typically have gain peaking of 0.1 dB or 0.2 dB, respectively (corresponding to damping ratios of 4.3188 and 2.9585, respectively). This makes telecom synchronization overdamped systems. In a second-order PLL, the loop bandwidth Bw, damping ratio ζ, and natural frequency ωn are related by
Following telecom industry practice, the second-order PLL with PI filter are implemented to have closed-loop bandwidth Bw=1 Hz or less and damping ratio ζ≧3. Thus, for our second-order PLL, by specifying Bw and ζ, the natural frequency ωn, and the filter gains K1 and K2 can easily be determined from the above equations.
Using the loop filter gains K1 and K2, and the error e(n), the control equation becomes {tilde over (e)}(n)={tilde over (e)}(n−1)+K1(e(n)−e(n−1))+K2e(n). The filtered error can then be mapped to a corresponding DDS input control word using a mapping function as depicted in
Δφ(n)={tilde over (e)}(n)·M, (84)
and the DDS control word is obtained from
φ(n)=φnom+Δφ(n) (85)
The systems and methods of the above embodiments may be implemented in a computer system (in particular in computer hardware or in computer software) in addition to the structural components and user interactions described.
The term “computer system” includes the hardware, software and data storage devices for embodying a system or carrying out a method according to the above described embodiments. For example, a computer system may comprise a central processing unit (CPU), input means, output means and data storage. Preferably the computer system has a monitor to provide a visual output display (for example in the design of the business process). The data storage may comprise RAM, disk drives or other computer readable media. The computer system may include a plurality of computing devices connected by a network and able to communicate with each other over that network.
The methods of the above embodiments may be provided as computer programs or as computer program products or computer readable media carrying a computer program which is arranged, when run on a computer, to perform the method(s) described above.
The term “computer readable media” includes, without limitation, any non-transitory medium or media which can be read and accessed directly by a computer or computer system. The media can include, but are not limited to, magnetic storage media such as floppy discs, hard disc storage media and magnetic tape; optical storage media such as optical discs or CD-ROMs; electrical storage media such as memory, including RAM, ROM and flash memory; and hybrids and combinations of the above such as magnetic/optical storage media.
While the invention has been described in conjunction with the exemplary embodiments described above, many equivalent modifications and variations will be apparent to those skilled in the art when given this disclosure. Accordingly, the exemplary embodiments of the invention set forth above are considered to be illustrative and not limiting. Various changes to the described embodiments may be made without departing from the spirit and scope of the invention.
In particular, although the methods of the above embodiments have been described as being implemented on the systems of the embodiments described, the methods and systems of the present invention need not be implemented in conjunction with each other, but can be implemented on alternative systems or using alternative methods respectively.
All references referred to above are hereby incorporated by reference.