Timing synchronization plays the role of the heart of a digital communication system. We have already seen how a timing locked loop, commonly known as symbol timing PLL, works where I explained the intuition behind the maximum likelihood Timing Error Detector (TED). A simplified version of maximum likelihood TED, known as Early-Late Timing Error Detector, was also covered before. Today we discuss a different timing synchronization philosophy that is based on zero-crossing principle. It is commonly known as Gardner timing recovery.
Background
Before we start this topic, I recommend that you read about Pulse Amplitude Modulation (PAM) for an introduction to digital systems, the framework in which timing synchronization algorithms are described here. The notations for the main parameters are the following.
- Sample time (inverse of sample rate): TS
- Symbol time (inverse of symbol rate): TM
- Data symbols: a[m]
- Timing error: ϵΔ
- Timing error estimate: ˆϵΔ
The samples at the matched filter output in a Pulse Amplitude Modulated (PAM) system are denoted by
⋯,z((n−2)TS),z((n−1)TS),z(nTS),z((n+1)TS),z((n+2)TS),⋯
where TS is the sampling time and the oversampling factor is 2. The question is: How do we know which sample corresponds to the symbol peak? At the startup time of the Rx, all we have is a series of samples spaced by half-symbol period TM/2 where TM is the symbol time. Depending on the actual ϵΔ, we could have
z((n−2)TS) → z((m−1)TM+ˆϵΔ)Symbol Peakz((n−1)TS) → z(mTM−TM2+ˆϵΔ)z(nTS) → z(mTM+ˆϵΔ)Symbol Peakz((n+1)TS) → z(mTM+TM2+ˆϵΔ)z((n+2)TS) → z((m+1)TM+ˆϵΔ)Symbol Peak
or we could have either z((n−1)TS) or z((n+1)TS) correspond to the symbol peak with other samples identified around accordingly. This is because frame synchronization can take us to the correct symbol level only, not the sample.
To answer this question, consider the figure below with samples denoted as b, c, d and e.
Applying the early-late equation for three TED samples b, c and d,
eD[m]=c⋅(b−d)>0
However, if we had identified the three TED samples as c, d and e, then
eD[m]=d⋅(c−e)
Since c−e > 0 and d is negative,
eD[m]=d⋅(c−e)<0
Instead of ˆϵΔ<ϵΔ, the early-late TED then would treat this as a case of late sampling ˆϵΔ>ϵΔ (and hence the negative output in the above expression). The TLL would have brought the sampling instant earlier until the middle sample d reached the instant (m−1)TM and hence identified as z((m−1)TM). The left and right samples, namely e and c, approach zero in the meanwhile, as illustrated by the figure above.
Towards Zero Crossings
An alternative strategy is a zero crossing timing error detector where the algorithm targets the zero crossings of the waveform. This is done by negating the slope. So let us find out what happens with negating the slope in an early-late expression, for which we again consider the same samples c, d and e considered above in Eq (1) with respect to the last figure above.
eD[m]=d⋅{−(c−e)}=d⋅(e−c)
Since d is negative while e−c is also negative,
d⋅(e−c)>0
Thus, the sampling instant will be pushed forward until the middle sample d reaches mTM−TM/2. Then, the left neighbouring sample e will coincide with symbol a[m−1] while the right neighbouring sample c will coincide with a[m]. In this game of 3 samples, the middle sample approaches the zero crossing. This is the philosophy of the zero crossing TEDs.
The converging locations of zero crossing TED as well as early-late TED for the above example are shown in the figure below. Notice that if we had chosen samples b, c and d in a zero crossing TED, the middle sample again would have converged towards zero.
From the above analysis, we can form a timing error detector as
This non-data-aided version is called the Gardner Timing Error Detector (TED) due to its inventor F. M. Gardner. Its data-aided and decision-directed versions are commonly known as Zero Crossing Timing Error Detector (TED). By using the data symbols a[m−1] and a[m] in place of z((m−1)TM+ˆϵΔ) and z(mTM+ˆϵΔ), respectively, we get the data-aided variant.
eD[m]=z(mTM−TM2+ˆϵΔ){a[m−1]–a[m]}
On the same note, a decision-directed form can be created as
eD[m]=z(mTM−TM2+ˆϵΔ){ˆa[m−1]–ˆa[m]}
where the symbol decision ˆa[m] for a binary PAM case is
ˆa[m]=A×sign{z(mTM+ˆϵΔ)}
Like derivative and early-late TEDs, a zero crossing approach also depends on balancing the magnitudes of two samples taken midway from either side of the symbol. Consequently, its performance also suffers when the excess bandwidth α is small. See this article for an intuitive explanation of how excess bandwidth impacts the performance of timing synchronization.
Gardner TED is based on the ideas from a wave difference method and a digital Data Transition Tracking Loop (DTTL) (used as a symbol synchronizer in the telemetry Rx of the Mariner Mars 1969 mission.
Receiver Structure
The Rx structure for a zero crossing or Gardner TED is quite similar to that for early-late TED and is drawn in the figure below for a decision-directed setting (click on the image to enlarge it).
The Rx signal r(t) is sampled at a rate of FS=2/TM, or TS=TM/2, to generate r(nTS) at L=2 samples/symbol. Next, the sampled signal r(nTS) is matched filtered at the same rate with its output being z(nTS). Under the command of an interpolation control block, an interpolator resamples these matched filter outputs at instants ˆϵΔ to produce z(nTS+ˆϵΔ). Since this system runs at a rate of 2 samples/symbol, the delay block TS (that represents a delay of 1 sample) supplies the samples at half a symbol duration, i.e., z(mTM−TM/2+ˆϵΔ).
The interpolation control block also identifies the time instants (m−1)TM and mTM at which the outputs ˆa[m−1] and ˆa[m] are taken out of the decision block and the error signal eD[m] is formed once per symbol. In the case of Gardner TED, the matched filter outputs z((m−1)TM+ˆϵΔ) and z(mTM+ˆϵΔ) are directly used instead of ˆa[m−1] and ˆa[m] in forming the TED output. This signal eD[m] is then upsampled by 2 to create eD(nTS) that then matches the sample rate FS of the loop filter and the interpolation control.
Example
Now we simulate a Gardner TED for the same set of parameters as for a derivative TED here except L which is 2 in this case, i.e.,
Modulation→2−PAM,L=2 samples/symbol,α=0.4,BnTM=1/200,ζ=1/√2,ϵΔ=0.25TM
Again, the PI loop filter coefficients are computed from Eq (4) of the PLL article where K0 is unity while a simple routine is used to compute the derivative of the mean curve at ϵΔ=0 for KD. The output error signal eD[m] for a Gardner TED is shown in the figure below where the estimate of the timing offset ϵΔ=0.25TM is seen converging to its true value. We call this estimate as a fractional interval μ[m]. The TLL is seen to converge in approximately 800 symbols.
Finally, the zero crossing TED for a QAM scheme is given by the sum of inphase and quadrature parts. For example, from Eq (3), the data-aided version can be written as
eD[m]=zI(mTM−TM2+ˆϵΔ){aI[m−1]–aI[m]}+zQ(mTM−TM2+ˆϵΔ){aQ[m−1]–aQ[m]}
Carrier Independent Operation
One of the reasons for popularity of Gardner TED was the belief that its operation is independent of the carrier phase as well as a small frequency offset. Many sources still cite the Gardner TED as having an extra feature of rotationally invariant (carrier independent operation) and hence very suitable for timing acquisition when a significant carrier phase offset and possibly a small carrier frequency offset is present in the Rx signal.
As it turns out, this carrier independent operation is not exclusive to the Gardner TED. In fact, this is a feature of the non-data-aided fashion in which the TED processes the Rx samples. For passband modulation schemes, the Gardner TED is given from complex samples by the inphase part of a conjugate product instead of a simple product.
eD[m]=[z(mTM−TM2+ˆϵΔ){z∗((m−1)TM+ˆϵΔ)–z∗(mTM+ˆϵΔ)}]I
From the definition of a complex conjugate V∗, we know that
|V∗|=|V|∡V∗=–∡V
Consequently, the phase of the middle sample is canceled by the common phase of the two samples in the brackets above. However, the non-data-aided version of early-late TED exhibits exactly the same property for complex samples.
eD[m]=[z(mTM+ˆϵΔ){z∗(mTM+TM2+ˆϵΔ)–z∗(mTM−TM2+ˆϵΔ)}]I
In terms of complex signals, exp(jθ) is the phase rotation of the middle sample while exp(−jθ) can be taken as common from the terms in the brackets.
In conclusion, as long as there is a conjugate product being taken between the complex samples having the same phase rotation, the TED is essentially carrier independent and Gardner TED is not unique in this regard. Having said that, the presence of a rotating phase in the constellation can perturb the timing error detectors to some extent in terms of the jitter and acquisition time.
Final Remarks
There are some final comments in regards to this discussion as follows.
- There has been a long standing confusion in synchronization community regarding the non-data-aided early-late and Gardner timing error detectors that has been clarified here.
- For an example of a timing recovery system that can be implemented after carrier recovery at 1 sample/symbol, see the Mueller and Muller algorithm.
- Feedforward techniques that do not require a PLL are also possible such as digital filter and square timing synchronization.
I think there is a little typo at the PAM equation: z(nTs)) written instead of z(nTs).
Yes, I have removed the extra bracket now. Thanks.
Hi,
Thanks for the informative article.
How does interpolation control block know which sample is z(nTm+Terr) and which sample is z(nTm+Tm/2+Terr)?
Best regards,
HG
Am I right Gardner TED runs on every 2 samples? Let’s say given samples S1, S2, S3, S4, S5, S6, the GTED will have 3 outputs (for each symbol). Must S1 be aligned with z(Tm), and S3 be aligned with z(2Tm)? Can S1 be aligned with the middle sample, which is z(Tm+Tm/2)?
You’re right that the Gardner timing error detector runs on two samples. Interpolation block does not know which sample coincides with the maximum eye opening. It just operates on a set of any three samples. Depending on which samples are chosen, the estimated timing error either moves to the right or to the left. The final result is the same: the middle sample coincides with a zero crossing.
If there is still any confusion left, notice the figures above. Any sample b, c, d or e can be moved towards zero or symbol peak. It does not matter, for example, if e goes to zero or the symbol peak, we get the symbols as outputs anyway.
Thanks for the explanation!
I did some experiment on Gardner: the goal is to reduce the loop filter’s output rate.
1. I removed the 1:2 up-sampling after eD[m], so that loop filter and interpolation control run at symbol rate. The result is good, the estimated error still converge, but a bit slower than before, as expected.
2. Then I try to reduce the rate even further. What I did is to check if the 3 samples used by GTED cross zero (first sample * second sample < 0), and GTED will have an output only when the condition is fulfilled. By doing so, GTED's output rate is less than symbol rate and estimated timing error still moves to the correct direction (based on my observation), which is good. But overall, the timing error doesn't converge anymore. Do you have an theoretical explanation about that?
A PLL is non-linear in general and hence there are interactions among different components that cannot be explicitly formulated in linear systems theory.