Abstract:
A master clock in a first radio network unit, configured for sending data packets at predetermined time intervals, is synchronized with a slave clock in a second radio network unit. To provide a method for packet based clock recovery being able to achieve the desired accuracy within an acceptable time while avoiding a high computational complexity, the following procedure is used. An estimate value is determined for the transmission delay time for each data packet in a predetermined set of data packets. At least one pair of data packets is selected that has a minimum estimate value for the transmission delay time. A difference of the reception times of the selected pair of data packets is determined. Finally, a clock estimate procedure is performed using the difference of the reception times of the selected pair of data packets to determine the quantity representative of the clock frequency difference and/or the clock time offset.

Description:
CROSS REFERENCE TO RELATED APPLICATIONS 
       [0001]    This application is based on and hereby claims priority to European Application No. 07016215 filed on Aug. 17, 2008, the contents of which are hereby incorporated by reference. 
       BACKGROUND 
       [0002]    Described below is a method and a device for packet based clock recovery in a communication system. 
         [0003]    Clock and timing transmission is a basic functionality that is needed in any communication system. The importance of clock synchronization between a sending and a receiving unit is particularly important in the field of packet based data transmission, wherein a data stream is subdivided into packets and wherein the packets are transmitted over channels with varying properties and/or different paths, such that the transmission time between the sending unit and the receiving unit is randomly distributed. In order to synchronize the clocks in traditional circuit switched networks, such as PDH (Plesiochronuous Digital Hierarchy) or SDH (Synchronous Digital Hierarchy), a continuous bit stream is sent from the sender to the receiver. The receiver extracts the bit clock from the incoming bit stream and uses this clock for the outgoing transmissions. 
         [0004]    However, there is a growing trend towards packet based communication networks such as IP or carrier/metro Ethernet networks where each packet is sent with a relatively inaccurate clock and no transmission signal may be present between the packets or where the transmission signals between the packets relate to different data streams being transmitted in a time division multiplex scheme. On the other hand, there is still a need for an accurate clock recovery on the receiver side in some application scenarios. 
         [0005]    One application scenario is a pseudo wire emulation (circuit emulation). This service is for example used for the transfer of SDH or PDH signals over a packet switched network. The sender side combines a number of bits from the incoming PDH/SDH line a packs those bits into a packet that is transferred over the packet based transmission network. On the receiver side, the original clock frequency has to be recovered to transmit the recovered PDH/SDH signal with the correct clock frequency. 
         [0006]      FIG. 1  shows an example of this application scenario, wherein a sending unit  10  receives continuous data from a PDH/SDH network, organizes the incoming data in packets using pseudo wire emulation, transmits the packet in a packet based transmission network  12 , which could be a Carrier Ethernet or IP network, and wherein the data packets are received by a receiving unit  14  which extracts the data from the data packets and reorganizes the data in a continuous or quasi-continuous data stream which can be forwarded in a PDH/SDH network. 
         [0007]    A further scenario necessitating a precise clock and timing synchronization is the clock and timing recovery in a mobile base station. A base station needs a certain clock accuracy in order to operate the radio interface in a correct way. The radio frequency has to be kept quite accurate in order to avoid interference with other wireless communication systems and to have a good detection of the signal. Since the radio frequency is measured by comparing the radio frequency with a clock frequency of an internal clock, errors in the clock frequency will automatically result in errors in the measured and/or controlled radio frequency. For example, the frequency deviation of GSM/EDGE or UMTS/FDD system has been specified to a maximum value of ±50 ppb. In addition, for some mobile communication systems, time synchronization among different base stations is needed, if, for example, time division duplex or time division multiplex operations are used or if radio access within different radio cells has to be coordinated. 
         [0008]      FIG. 2  shows an example of this application scenario, where a clock  16  in a NodeB  18  of an UMTS network  20  has to be synchronized with the clock  22  of a radio network controller  24  of the network  20 . The radio network controller  24  and the NodeB  18  communicate using a packet based transition protocol being based, e. g., on a Carrier Ethernet or IP network. 
         [0009]    The relevant standardization like IEEE defines packet protocols describing the basic protocol for setting up and exchanging clock and timing relationships. The sender transfers timing packets in a regular way, e. g. periodically. Each timing/synchronization packet contains a time stamp that refers to the sending time as measured by the master clock or the sending time is implicitly known by the receiver since the inter-packet time distance is known and predefined. 
         [0010]    Although various algorithms for generating the necessary clock information from the incoming packets are known, these algorithms do either suffer from working very slowly or from requiring a high computational complexity. One known example is generating a histogram of the reception times of the incoming packets, calculating the convex hull of the histogram or of corresponding probability distribution and deriving the necessary clock information from the parameters of the curve describing the convex hull. However, the fitting procedure used for generating the convex hull is a rather complex task requiring a large amount of computational power which may not be available in some receiving units. 
         [0011]    Generally, methods for synchronizing clocks use a master clock generator providing timing packets that are sent to a receiving unit including a slave clock using a certain network. The master clock has a high accuracy which shall be transferred towards the slave clock unit. The slave clock unit has a local reference clock that has to be frequency aligned and time aligned to the master clock. In order to allow for a precise tuning of the slave clock, a slave clock reference clock is generated by an Oven Controlled Voltage Controlled Crystal Oscillator (OCVCXO) or Temperature Compensated Crystal Oscillator (TCXO). 
         [0012]      FIG. 3  shows the basic setup of a communication system. A master unit  26  including a master clock  28  uses the clock signal generated by the master clock  28  for generating timing packets in a timing packet generating unit  30 . The timing or synchronization packets are transmitted to a slave unit  32  formed by the slave clock  34  being formed as an OCVCXO. On the slave clock side, the synchronization packets are detected and the time of the arrival of the packets is measured using the local reference clock being generated from the OCVCXO or a TCXO. 
         [0013]    These measured arrival times are now provided to an algorithm being implemented in a clock error estimation unit  36 , wherein the algorithm estimates the clock frequency error and/or the time offset between the master clock and the slave clock  34 . Depending on the system, this algorithm performing the synchronization method may be also partly implemented on the master clock side, wherein in the latter case, synchronization response packets are retransmitted from the receiving unit  32  to the master unit  26 . 
         [0014]    In order to determine the basic clock frequency drift between the master clock  28  and the slave clock  34 , a comparison between the measured reception times of successive synchronization packets is mode using the slave clock  34  and the time difference between the sending times of the respective synchronization packets. The time difference between the sending times of the synchronization packets may either be derived from the time stamps of the synchronization packets or it is predetermined and known. 
         [0015]    However, the packet transfer delay within a transport network causes a relatively high estimation error for the frequency difference between the master and slave clock. The fluctuations in the packet transfer delay result in fluctuations in the thus measured frequency drift. 
         [0016]    There are several clock recovery algorithms available which use different statistics to derive the required accuracy of the received package, e. g. average calculations, setup of timing windows for packet transfer, etc. All these algorithms require many synchronization packets in order to sufficiently average out the transfer delay jitter. Since the error becomes smaller with the root of the number of packets, it turns out that a vast number of packets is needed for achieving the required PPM accuracy. If, e. g. the timing delay jitter corresponds to 0.5% of the inter-packet distance, 10 10  packets are needed to synchronize the networks with the required accuracy. If the inter-packet distance is 1 sec, this corresponds to several tens of years. Another method would be to use two synchronization packets received at the beginning and the end of a measurement cycle and having a large timing difference of e. g. 100,000 sec, in order to reduce the error introduced by a 5 ms delay jitter in the individual packet reception times to an acceptable value. Both of the above examples show that unacceptable synchronization times are generated, since a base station should be operable within a few minutes after power switch on or reset. 
         [0017]    Similar problems occur upon timing recovery using the sending of synchronization packets and the replying with synchronization response packets including the arrival time of the synchronization packets. The main source of errors in the timing recovery can be found in asymmetries between the channel used for sending the synchronization packets and the channel used for sending the synchronization response packets. Since the timing recovery algorithms assume symmetric transmission channels, any asymmetry will result in an error in the timing recovery, as the master unit does not know how the total time between sending the synchronization packet and receiving the synchronization response packet is distributed over the transmission times of both directions. 
       SUMMARY 
       [0018]    One aspect is to provide a method for packet based clock recovery being able to achieve the desired accuracy within an acceptable time while avoiding a high computational complexity. The basic idea of the proposed algorithm is the fact that the frequency as well as the timing error can be minimized by taking only those synchronization packets and synchronization response packets into account that experience a relatively low delay between the master and slave units and vice versa. If only those packets that experience the lowest delay on their way to the packet network are used, the estimation error for frequency and time synchronization can be significantly improved. 
         [0019]    The method includes synchronizing a master clock in a first radio network unit with a slave clock in a second radio network unit, when the first radio network unit is configured for sending data packets at predetermined time intervals either continuously or upon request by the first radio network unit. The method includes comparing and actual reception time of at least one incoming data packet with a scheduled reception time and deriving a quantity representative of at least a clock frequency difference between the master clock frequency and the slave clock frequency based on the result of the comparison. The quantity representative of the clock frequency difference may be the clock frequency difference itself measured in a suitable unit or e. g. a clock frequency ratio or any function thereof. 
         [0020]    According to one aspect, it is proposed that the method further includes determining and estimate value for the transmission delay time for each data packet in a predetermined set of data packets and selecting at least one pair of data packets with a minimum estimate time for the transmission delay time. The minimum may be a minimum taken in a suitable subset of the data packets. It is proposed that the difference of the reception times of the selected pair of data packets is determined and used for deriving the quantity representative of the clock frequency difference. Since the distribution of transmission delay times of the data packets is truncated at zero or at some value corresponding to the signal runtime under zero-traffic conditions in the radio network, the width of the distribution of minimum runtimes taken from different samples is much smaller than the width of the distribution of runtimes of each sample. The basic idea is to use this fact for the improvement of the clock synchronization. 
         [0021]    The proposed method allows for a more accurate estimation of clock frequency error between master and slave clock, which leads to a much faster frequency synchronization after startup and/or restart of the slave clock system. 
         [0022]    Since the accuracy of the synchronization may be enhanced while reducing the time consumption of the synchronization, much lower requirements on the clock stability of the slave clock generator have to be imposed. This leads to a much more cost-efficient implementation, since a very costly Oven Controlled and Voltage Controlled Crystal Oscillator can be avoided for some applications and a much cheaper TCXO may be used. 
         [0023]    Since the precision of the clock estimate depends strongly on the inter-packet distance between the packets in the selected pair of packets, it is further proposed that the data packets of the pair of data packets are selected from at least two subsets of data packets, wherein the subsets of data packets include data packets received in different time intervals being sufficiently spaced apart. 
         [0024]    It is noted that selecting data packets with the minimum runtime may be fruitful in methods where the synchronization algorithm is implemented in the slave unit as well as in methods where the synchronization algorithm is mainly implemented in the master unit, since in the latter case, the packets with a minimum runtime in forward and in backward direction are typically less affected by asymmetries in the transmission channels than packets with longer runtimes. 
         [0025]    According to a further aspect, it is proposed to remove data packets with maverick transmission array values in order to obtain a more trustworthy statistics. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS  
         [0026]    The characterizing features of the method and device and the advantages thereof will become more apparent from the following detailed description of the embodiments in combination with the attached drawings. The embodiments, the drawings and the claims relate to specific combinations of features. The skilled person will consider the features taken alone or in other suitable combinations being adapted to specific application scenarios without departing from the general idea of the method and device as defined in the attached claims. 
           [0027]      FIG. 1  is a block diagram of a pseudo wire emulation scenario using a packet based transmission; 
           [0028]      FIG. 2  is a block diagram of an UMTS system with a master clock in a radio network controller and a slave clock in a NodeB; 
           [0029]      FIG. 3  is a block diagram of an overall system configuration of a packet based communication network including a master unit with a master clock and a slave unit with a slave clock; 
           [0030]      FIG. 4  is a timing diagram of a timing scheme used for the clock synchronization; 
           [0031]      FIG. 5  represents a synchronization cycle interval having two subintervals; 
           [0032]      FIG. 6  is a logarithmic graph of an expected accuracy of the clock frequency synchronization method; 
           [0033]      FIG. 7  is a timing diagram of a packet exchange used for a time synchronization between a master clock and a slave clock; and 
           [0034]      FIG. 8  is a schematic flow diagram illustrating in more detail an embodiment. 
       
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT 
       [0035]    Reference will now be made in detail to the preferred embodiments, examples of which are illustrated in the accompanying drawings, wherein like reference numerals refer to like elements throughout. 
         [0036]    Described below is a method for synchronizing a master clock in a first radio network unit, e. g. the master clock  22  in a radio network controller  24  as shown in  FIG. 2 , with a slave clock in a second radio network unit, e. g. a slave clock  16  in a NodeB  18  as illustrated in  FIG. 2 . The overall configuration of the network system is illustrated in  FIG. 3  and has already been described in the previous section. 
         [0037]    To achieve the synchronization, wherein the expression synchronization covers frequency alignment as well as the time synchronization (i. e. the elimination of a time shift between the master clock and the slave clock), a synchronization algorithm is implemented in the slave unit. As shown in  FIG. 4 , the master unit including the master clock periodically transmits synchronization packets being illustrated as arrows from left to right in  FIG. 4  to the slave unit including the slave clock. The synchronization packets are sent at a certain rate, i. e. a time difference T b  between the sending of two subsequent synchronization packets is constant. The time difference T b  is measured by the master clock. The network adds a variable transport delay and the synchronization packets will arrive with a certain jitter at the slave clock side. The packet generation time of packet number i is denoted by t 0   i , whereas the arrival time at the slave clock is denoted by t 1   i  in  FIG. 4 . 
         [0038]    In the embodiment of the synchronization method as described below, the reception times of N synchronization packets are measured. At the start of the synchronization procedure, the time difference T b  between two synchronization packets will be calculated from the time difference between the arrival of the last packets N and the first packet 1 within the considered measurement cycle by calculating the difference between the reception time of the last packet N and the first packet 1 and dividing the difference by the number of intervals N−1 between the reception times: 
         [0000]        T   b,est   =t   1   N   −t   1   1   ÷N− 1 
         [0039]    The estimated inter-packet time T b,est  is a quantity representative of a clock frequency difference between the master clock frequency and the slave clock frequency, since, under ideal transmission conditions (zero jitter), any difference between T b,est  and T b  results from a difference between the master clock frequency and the slave clock frequency. 
         [0040]    Based on the estimated inter-packet time T b,est , the delay jitter of each synchronization packet is estimated as 
         [0000]      jitter i,est   =t   1   i   −i·T   b,est    
         [0000]    for i=1, 2, . . . N 
         [0041]    Next, the data packet number i with the minimum jitter from the subset of the first m data packets in the cycle interval and the data packet j with the minimum jitter from the subset of the last m data packets in the interval cycle are determined. The first m data packets and the last m data packets are disposed in respective subintervals of the interval cycle, wherein these subintervals are separated by a guard interval guaranteeing a high accuracy of the estimation. The data packets with the smallest delay jitter are the fastest data packets in the respective subintervals. 
         [0042]    Assuming that the fastest packet of subinterval number 1 is at position i and has arrived at a time instant t 1   i  and the fastest packet of subinterval number 2 is at position j and has arrived at a time instant t 1   j , a new estimate for the time interval between the two successive packet arrivals can be calculated as 
         [0000]    
       
         
           
             
               T 
               
                 b 
                 , 
                 est 
               
             
             = 
             
               
                 
                   
                     t 
                     1 
                     j 
                   
                   - 
                   
                     t 
                     1 
                     i 
                   
                 
                 
                   ( 
                   
                     j 
                     - 
                     i 
                   
                   ) 
                 
               
               . 
             
           
         
       
     
         [0043]    This new estimate of T b,est  will be used in a further iteration loop including the determination of new jitter values for the data packets within the first and second subintervals, determining the pair of data packets with the minimum jitter values and calculating the new estimate of T b,est . 
         [0044]    The iteration is repeated until the estimation of T b,est  has converged and the ratio between the master and the slave clock frequency can be defined as the fraction of T b  and T b,est . 
         [0045]    Finally, the slave clock frequency is adjusted by multiplying the old slave clock frequency with the latter fraction: 
         [0000]    
       
         
           
             
               new 
                
               
                   
               
                
               slave 
                
               
                   
               
                
               clock 
                
               
                   
               
                
               frequency 
             
             = 
             
               old 
                
               
                   
               
                
               slave 
                
               
                   
               
                
               clock 
                
               
                   
               
                
               
                 frequency 
                 · 
                 
                   
                     T 
                     b 
                   
                   
                     T 
                     
                       b 
                       , 
                       est 
                     
                   
                 
               
             
           
         
       
     
         [0046]    The accuracy of the above described method can be estimated using simple combinatorial considerations and depends on the length N of the interval cycle and the length n of the subintervals shown in  FIG. 5 . Since the probability of finding a real fast data packet in the subintervals increases with the length m of the subintervals, whereas the typical time difference between the selected pair of data packets with a minimum transmission delay time depends on the guard interval between the two subintervals, it is clear that the number m has to be chosen large enough to capture a fast data packet with a high probability on the one hand and has to chosen much smaller than N on the other hand. As a consequence, for each value of N, there is an optimal value of n. 
         [0047]      FIG. 6  shows an expected accuracy for the example N=10,000 ppc, a mean jitter of 10 ms and a time distance of the synchronization packets of 10 ms. The optimum subinterval size corresponds to approximately 4,000 packets. 
         [0048]    The minimum of the curve represented in  FIG. 6  can be determined as 
         [0000]      Subinterval size=floor (0.3975 ·N+ 0.25) 
         [0000]    for arbitrary N. 
         [0049]      FIG. 7  illustrates the basic principle of a time synchronization or elimination of time differences between the master clock and the slave clock. For time synchronization, it is also beneficial to choose those packets that have the smallest transfer delay on their way from the master to slave clock and vice versa. The synchronization packet as well as the synchronization response packet must not necessarily be from the same cycle. The algorithm may be applied independently in forward and reverse direction. The time values for the packets will be used to derive the time offset between the master clock and the slave clock. Assuming that packet i is the fastest packet in the forward direction and packet j is the fastest packet in the backward direction, the time offset between master and slave clock can be calculated as 
         [0000]    
       
         
           
             
               clock 
                
               
                   
               
                
               time 
                
               
                   
               
                
               offset 
                
               
                   
               
                
               estimate 
             
             = 
             
               
                 
                   ( 
                   
                     
                       T 
                       1 
                       i 
                     
                     - 
                     
                       T 
                       0 
                       i 
                     
                   
                   ) 
                 
                 - 
                 
                   ( 
                   
                     
                       T 
                       3 
                       j 
                     
                     - 
                     
                       T 
                       2 
                       j 
                     
                   
                   ) 
                 
               
               2 
             
           
         
       
     
         [0050]    This is illustrated in  FIG. 7 , wherein the fastest packet in the forward network path and the fastest packet in the reverse network path are illustrated with dashed arrows. It is noted that this simple scheme works only if the clock frequencies of the master clock and the slave clock are perfectly aligned, e. g. using the method described above. This is due to the fact that any clock frequency difference will lead to an additional error due to the clock drifts that are observed between the considered synchronization packet i and the synchronization response packet j. 
         [0051]    In the general situation, where the frequency and the time offset correction have to be performed simultaneously, in the first operation the clock difference between the master clock and the slave clock have to be estimated as described above. This calculation provides an estimation of the clock frequency ratio of the master and the slave clock. Therefore, the time stamps of the master clock and the slave clock used in the above equation for determining the clock time offset estimate have to be adjusted to a common time base. In order to do so, the times t 1   i  and t 2   j  have to be rescaled by the estimated clock frequency ratio. Therefore, in the general case, the clock time offset estimate can be calculated as: 
         [0000]    
       
         
           
             
               clock 
                
               
                   
               
                
               time 
                
               
                   
               
                
               offset 
                
               
                   
               
                
               estimatate 
             
             = 
             
               
                 
                   
                     
                       
                         ( 
                         
                           
                             
                               
                                 t 
                                 1 
                                 i 
                               
                               · 
                               clock 
                             
                              
                             
                                 
                             
                              
                             ratio 
                              
                             
                                 
                             
                              
                             estimate 
                           
                           - 
                           
                             t 
                             0 
                             i 
                           
                         
                         ) 
                       
                       - 
                     
                   
                 
                 
                   
                     
                       ( 
                       
                         
                           
                             t 
                             3 
                             j 
                           
                           - 
                           
                             t 
                             2 
                             j 
                           
                         
                          
                         
                           
                             · 
                             clock 
                           
                            
                           
                               
                           
                            
                           ratio 
                         
                       
                       ) 
                     
                   
                 
               
               2 
             
           
         
       
     
         [0052]    According to further embodiments, the time distance T b  between successive synchronization packets may be adjusted depending on the characteristics of the packet network. The time distance T b  may, for example, be reduced when the network introduces only a small delay jitter. This provides the fastest synchronization of the slave clock. In general, the time distance T b  can be chosen as a multiple of the average value of the delay jitter. 
         [0053]    Moreover, the time distance T b  between successive synchronization packets can be adjusted depending on the synchronization status of the slave clock. When the slave clock has just started and needs to be resynchronized, a small time distance T b  can be chosen, whereas a larger T b  can be chosen when a good synchronization stability has been achieved. 
         [0054]    According to further embodiments, it is proposed to use an irregular time spacing between the synchronization patterns in order to avoid an interference between the packet generation frequency and existing network clocks. For example, it is possible to use a pseudo random sequence to vary the time spacing between the successive synchronization packets, wherein the pseudo random sequence may be generated simultaneously in the master unit and in the slave unit. If the pseudo sequence is not known by the receiver, the synchronization packets may have a time stamp, such that the slave unit may derive the pseudo random sequence used from the successive values of the time stamp. 
         [0055]    Moreover, an even improved measurement accuracy may be achieved by combining several measurement cycles into a bigger measurement cycle. I. e. a number of N* measurement cycles could be combined in a so called super-measurement cycle. Only the packet with the smallest delay jitter within a measurement cycle will be taken into account within the super measurement cycle. All operations and iterations described above can now be performed in the same way as already described. If a frequency correction is done after each measurement cycle, the different arrivals of the synchronization packets have to be rescaled to a common time clock (common time scale). 
         [0056]    According to further aspects, it is proposed to use additional filtering of the clock ratio estimate and the clock time offset estimate to avoid oscillations. 
         [0057]    The estimate of the clock frequency ratios or the time shift between the master clock and the slave clock in successive intervals may be improved by comparing the results of successive cycle intervals and by adjusting the length N of the cycle intervals and/or the corresponding packet rate in a proper way if large fluctuations in the results of different error estimation cycles are assessed. 
         [0058]      FIG. 8  shows a flow diagram of the clock synchronization method according to a further embodiment. In initialization  38 , the parameters such as the cycle length N, the subinterval size m depending on N, maximum and minimum parameters for various variables are defined and a number N of synchronization packets are received. Moreover, a first estimate value for the clock frequency ratio T b,est  is set either depending on the total time needed for receiving the N synchronization packets, if no estimate value from earlier cycles is available or by using the value derived in the previous synchronization cycle. 
         [0059]    The initialization  38  is followed by an implementation using two nested loops, an outer loop for removing the fastest pairs of packets and an inner loop for the optimization of the T b,est  value. The outer loop is depicted mainly on the left-hand side of  FIG. 8 , whereas the inner loop is depicted on the right-hand side of  FIG. 8 . In decision  39 , the system checks whether or not a predefined maximum number of removed fastest pairs of packets has not been reached. If the maximum number of removed pairs of packets has been reached (“yes”), it is checked  40  whether a predefined maximum number of iterations is reached. In initialization  41  for the inner loop, the iteration counter is increased and, if the system is not in the first iteration, the value T b,est  from earlier iterations is substituted. Moreover, memory for storing the fastest packets is allocated. In an estimated clock error calculation procedure  42 , the jitter values are calculated depending on the packet reception times and on the estimate value T b,est  for all synchronization packets within the two subintervals. Afterwards, the packets with the lowest jitter out of the first and the second subinterval are derived by searching the minimum jitter value. Using the time difference between the reception times of the packets with the minimum jitter value, a clock estimate is calculated. 
         [0060]    The calculated clock estimate is used to calculate the clock error for the current cycle. Finally, the system jumps back to the decision  40 , where the maximum number of iterations and the convergence of the inner loop optimization procedure are checked. The convergence is denied, if a new pair of fastest packets has been derived. 
         [0061]    The inner loop optimization procedure corresponds to the procedure as described with reference to  FIGS. 4-6 , such that we refer to the corresponding description for further details in order to avoid repetitions. If the maximum number of iterations has been reached or the inner loop optimization procedure has converged, the thus determined pair of fastest synchronization packets is removed  43  from the data and the density of data points within a 10 μs are counted. If the density of data points in a time interval of 10 μs starting from the reception time of the fastest pair of packets is below a predefined value, the data points have to be classified as mavericks and a new outer loop must be executed. Otherwise, the outer loop procedure can be finished. 
         [0062]    The outer loop procedure will be executed as long as the maximum number of removed packets within a 10 μs range has not been reached and the maximum number of removed fastest pairs of packets has not been reached. The maximum number of removed packets within a 10 μs range is preferably set to a value ≧10. The removed pairs of fastest packets are stored in a pair of vectors. 
         [0063]    Once the outer loop has been finished, the system jumps from decision  44  to a linear regression calculation and clock estimate  45 , wherein a linear regression based on the pair of vectors storing the removed pairs of fastest packets is calculated. For the linear regressions, the X-axis positions are given by the components of the vectors and the Y-axis uses the clock of arrival values. The outcome of the linear regression is a result containing two coefficients, i. e. 
         [0000]        y=p (1)· x+p (2) 
         [0064]    From the coefficients resulting from the linear regression, the clock estimate and clock error may be calculated as 
         [0000]      clock estimate= p (1) 
         [0000]      and 
         [0000]      clock error=−( p (1)− T   0 )÷ T   0    
         [0065]    The above method basically uses a subset of pairs of packets for the clock estimate and the clock error, wherein the pairs of packets are selected such that the time distance between the packets within a pair is relatively large due to the guard interval between the first and the second subinterval one the one hand and wherein the packets are selected such that only packets which have run to the network in a relatively short time are taken into account. Moreover, since the iteration procedure is continued until a certain density of data points is reached, the influence of mavericks is eliminated or at least minimized, since statistical relevance of the selected data points can be guaranteed by the density. 
         [0066]    The system also includes permanent or removable storage, such as magnetic and optical discs, RAM, ROM, etc. on which the process and data structures of the present invention can be stored and distributed. The processes can also be distributed via, for example, downloading over a network such as the Internet. The system can output the results to a display device, printer, readily accessible memory or another computer on a network. 
         [0067]    A description has been provided with particular reference to preferred embodiments thereof and examples, but it will be understood that variations and modifications can be effected within the spirit and scope of the claims which may include the phrase “at least one of A, B and C” as an alternative expression that means one or more of A, B and C may be used, contrary to the holding in  Superguide v. DIRECTV,  358 F3d 870, 69 USPQ2d 1865 (Fed. Cir. 2004).