Method for injecting timing variations into continuous signals
09832093 · 2017-11-28
Assignee
Inventors
Cpc classification
International classification
Abstract
A method of operating a data processing system to generate a jitter-injected signal from an input signal that is a function of time is disclosed. A time offset corresponding to a first time is generated according to a jitter specification that specifies the offset as a function of time. The jitter-injected signal at the first time is generated by evaluating the input signal at a time equal to a sum of the time offset and the first time. If the jitter specification only provides offsets at signal crossing times, interpolation is used to derive time offsets at non-signal crossing times.
Claims
1. A method of operating a data processing system to generate a jitter signal from an input signal that is a function of time, said method comprising: generating a time offset corresponding to a first time according to a jitter specification that specifies said time offset as a function of time; and generating said jitter signal at said first time by evaluating said input signal at a time equal to a sum of said time offset and said first time.
2. The method of claim 1 further comprising detecting crossing times at which said input signal crosses a threshold value.
3. The method of claim 2 wherein said jitter specification is only defined for jitter times related to said detected crossing times and wherein said jitter times are determined from said detected crossing times.
4. The method of claim 3 further comprises generating a plurality of time offsets according to said jitter specification at times corresponding to said jitter times and generating time offsets at times other than said jitter times by interpolating said plurality of time offsets.
5. The method of claim 1 wherein said jitter specification comprises a random sequence of offsets having a distribution specified by predetermined probability distribution.
6. A method of operating a data processing system to generate a jitter signal from an input signal that is a function of time, said method comprising: generating a time offset corresponding to a first time according to a jitter specification that specifies said time offset as a function of time; and generating said jitter signal at said first time by evaluating said input signal at a time equal to a sum of said time offset and said first time; and further comprising detecting crossing times at which said input signal crosses a threshold value; wherein said jitter specification is only defined for jitter times related to said detected crossing times and wherein said jitter times are determined from said detected crossing times; and wherein said jitter times are defined in terms of a clock frequency and wherein said crossing times are used to determine said clock frequency.
7. A computer readable medium comprising instructions that cause a data processing system to execute a method for generating a jitter signal from an input signal that is a function of time, said method comprising: generating a time offset corresponding to a first time according to a jitter specification that specifies said time offset as a function of time; and generating said jitter signal at said first time by evaluating said input signal at a time equal to a sum of said time offset and said first time.
8. The computer readable medium of claim 7 further comprising detecting crossing times at which said input signal crosses a threshold value.
9. The computer readable medium of claim 8 wherein said jitter specification is only defined for jitter times related to said detected crossing times and wherein said jitter times are determined from said detected crossing times.
10. The computer readable medium of claim 9 wherein said jitter times are defined in terms of a clock frequency and wherein said crossing times are used to determine said clock frequency.
11. The computer readable medium of claim 9 further comprises generating a plurality of time offsets according to said jitter specification at times corresponding to said jitter times and generating time offsets at times other than said jitter times by interpolating said plurality of time offsets.
12. The computer readable medium of claim 7 wherein said jitter specification comprises a random sequence of offsets having a distribution specified by predetermined probability distribution.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1)
(2)
DETAILED DESCRIPTION
(3) The manner in which the present invention provides its advantages can be more easily understood with reference to
V.sub.j(t)=V(t+τ(t)),
where τ(t) is a function that characterizes the jitter. This function will be referred to as the jitter specification in the following discussion. It should be noted that τ(t) can be a continuous smooth function such as a sinusoidally time-varying jitter function or a random or pseudo random sequence. In the case of random jitter with a uniform probability distribution function between −τ.sub.max and τ.sub.max, τ(t) at jitter times can be generated by randomly picking values between −τ.sub.max and τ.sub.max.
(4) Consider the case in which V(t) is a continuous signal that crosses a threshold repeatedly. The injected jitter causes the signal to cross the threshold at times that are different from the original crossing times. If τ(t) is known for all t values, V.sub.j(+τ(t)) can be evaluated directly. However, in some cases of interest, τ(t) is only known at the signal crossing times. For example, in a randomly varying τ(t), the probability function may only be defined as the uncertainty in the crossing times at bit boundaries. In such cases, it is important that discontinuities are not introduced into V.sub.j(t) by the unknown values of τ(t) between the points at which the jitter specification is defined.
(5) In one aspect of the invention, the values of τ(t) at the times other than the times at which τ is defined are obtained by interpolating the known values of τ(t). Consider the case in which τ(t) is defined in terms of a random distribution that specifies the probability of a given τ value at times relative to a bit boundary. In this case, the τ values at times other than the bit crossing times are not defined. The times for which τ(t) is defined by the jitter specification will be referred to as “jitter times” in the following discussion. If τ(t) were set to zero at times other than the jitter times, discontinuities would be introduced in V.sub.j(t). The present invention avoids these discontinuities by generating τ(t) for the jitter times using the jitter specification. This set of discrete τ(t) values is then interpolated to provide τ(t) values at times other than the jitter times.
(6) The jitter times are often defined for the bit boundaries in the input signal. The locations of some of these boundaries can be determined by determining the times at which the input signal crosses a threshold value corresponding to a transition between a one and a zero in the input signal. If it is assumed that the boundaries occur at regular intervals such as clock boundaries, the observed crossings can be used to deduce the clock frequency. Hence, the location of the other jitter times can be inferred from the observed clock frequency and the observed signal crossings. It should be noted that the input signal could also be a signal that has been subjected to jitter by some prior processing of a non-jittered signal. In this case, the clock frequency and signal crossing points will be approximations to actual clock crossings. For the case in which the jitter times are defined by a clock, denote the k.sup.th clock time by t.sup.clk.sub.k. The jitter specification provides the values for τ(t.sup.clk.sub.k). For times other than these jitter times, τ(t) is determined by smoothly interpolating a plurality of τ(t.sup.clk.sub.k) values that are nearest to t. In the simplest case, a linear interpolation of the nearest two τ(t.sup.clk.sub.k) values is utilized. However, higher order interpolation schemes including least squares interpolation can also be utilized.
(7) As noted above, the input signal itself could be a jittered signal. For example, the input to jitter injector 14 shown in
(8) Refer now to
(9) In real-time systems, the necessary samples of the signal V to evaluate V(t.sub.n+τ(t.sub.n)) may not be known at t.sub.n. In such systems, a delay of one or more samples or clock periods can be introduced into the computation to allow for the required value to be determined.
(10) The present invention can be practiced on any circuit simulation hardware. Such hardware includes general purpose data processing systems and specialized hardware that accelerate such computations.
(11) The present invention also includes a computer readable medium that stores instructions that cause a data processing system to execute the method of the present invention. A computer readable medium is defined to be any medium that constitutes patentable subject matter under 35 U.S.C. 101 and excludes any media that does not constitute patentable subject matter under 35 U.S.C. 101. Examples of such media include non-transitory media such as computer memory devices that store information in a format that is readable by a computer or data processing system.
(12) The above-described embodiments of the present invention have been provided to illustrate various aspects of the invention. However, it is to be understood that different aspects of the present invention that are shown in different specific embodiments can be combined to provide other embodiments of the present invention. In addition, various modifications to the present invention will become apparent from the foregoing description and accompanying drawings. Accordingly, the present invention is to be limited solely by the scope of the following claims.