What is a Symbol Timing Offset and How It Distorts the Rx Signal

Symbol Timing Offset causing ISI in the neighbouring symbols

Timing synchronization is one of the most fascinating topics in the field of digital communications. On the bright side, numerous scientists have contributed towards its body of knowledge due to its crucial role in the successful implementation of communication and storage systems. On the not-so-bright side, this knowledge has grown to an extent that it has also become the least understood and puzzling topic in the grand scheme of things. My objective in this article is to simplify the problem as well as its solutions in a clear and intelligible manner.

Heart of a digital Rx

In a digital communications Rx, the timing synchronization plays a similar role as that of a heart in a human body by providing periodic ticks that keep the system running in a coherent manner.

Symbol timing synchronization is also known as symbol timing recovery, clock synchronization and clock recovery. The word symbol is very important here because time synchronization is a broader term that can refer to other kinds of synchronization as well such as network synchronization among computer or microcontroller clocks, packet synchronization in telecommunication systems, and so on.

Symbol Timing Offset

One of the foremost tasks of a digital Rx is to determine the starting point of the useful component in a sampled Rx signal, as many of its initial samples are noise only. It is the job of a frame synchronization unit to determine symbol number $1$ in the Rx sequence. Once the frame synchronization is achieved, the job of the symbol timing synchronization block is to establish the optimal sampling instant within a symbol. The Rx needs to sample the received sequence every $T_M$ seconds at exactly these instants when the eye opening is maximum (points of no ISI from the neighbouring symbols). However, the peak sample at the end of the matched filter output for each symbol duration is not known in advance at the Rx. This is illustrated in Figure below for a signal sampled at $2$ samples/symbol.

An unsynchronized and a synchronized PAM sequence

In the top part of the figure, a Rx sampled the signal at exactly $2$ samples/symbol, one of which coincides (fortunately) with the optimal sampling instants (integer multiples of $T_M$) shown as white circles. In reality, this peak sample does not coincide at all with a generated sample at the Rx. This is because the ADC just samples the incoming continuous waveform without any information about the symbol boundaries. This is illustrated in the bottom part of this figure where $\varepsilon_\Delta$ is the timing phase offset by which the Rx clock is misaligned in reference to the Tx clock. An efficient mechanism needs to be invoked to construct the missing samples at the exact symbol boundaries, shown as black and white dots here.

As a first solution, it is possible to transmit both the data and the clock in a Tx waveform (for example, the data at the $I$ channel and the clock signal at the $Q$ channel in a QAM waveform) so that the Rx can produce the samples that are exactly aligned with the symbol boundaries according to the Tx. However, it requires sacrificing a part of the power and bandwidth because the resources dedicated to send the clock signal could be used to send more data as well. To avoid wasting the precious resources in this context, techniques to extract the Tx clock from the noisy received data waveform itself need to be devised.

In the days of analog signal processing and the early years of digital processing, symbol timing synchronization was accomplished by generating a clock signal that is aligned (in both phase and frequency) with the clock used to generate the data at the Tx. This was a Voltage Controlled Clock (VCC) driven by a filtered timing error detector output, just like a Voltage Controlled Oscillator (VCO) driven by a filtered phase error detector output in a Phase Locked Loop (PLL). After the proliferation of digital signal processing, this definition is not that helpful due to the fixed rate sampling and interpolation which we will explain in detail in this chapter.

In light of the above discussion, the goal of digital timing synchronization is to produce $L$ samples per symbol at the matched filter output such that one of those samples is aligned with the maximum eye opening. As usual, the effect of a symbol timing offset $\varepsilon_\Delta$ can be visualized in both time and frequency domains. In this post, I will describe this effect in time domain and leave the frequency domain explanation for some other day.

Time Domain View

To understand the role of a symbol timing mismatch in time domain, we begin with an $M$-PAM signal as
s(t) = \sum _{i} a[i] p(t-iT_M)
where $a[i]$ is the $i^{th}$ data symbol, $p(t)$ is a square-root Nyquist pulse with support $-LG \le t \le LG$ samples, $L$ is the number of samples/symbol, $G$ is the group delay or one-sided pulse length in symbols and $T_M$ is the symbol time. Ignoring every other distortion at the Rx except a Symbol Timing Offset (STO) $\varepsilon_\Delta$, the received signal $r(t)$ is given as
r(t) = \sum _{i} a[i] p(t-iT_M-\varepsilon_\Delta)
In the above equation, the range of $\varepsilon_\Delta$ is defined as a fractional value within a symbol interval $T_M$.
-0.5T_M \le \varepsilon_\Delta \le +0.5T_M
which is why it is known as a timing phase. Note that we are defining the symbol timing offset $\varepsilon_\Delta$ in units of the symbol time $T_M$. When there is a need of a normalized Symbol Timing Offset (nSTO) in an expression, we will use the notation $\varepsilon_0$ which implicitly carries a factor of $T_M$ within itself in terms of a percentage.
-0.5 \le \varepsilon_0 = \frac{\varepsilon_\Delta}{T_M} \le +0.5

Now, we examine what happens when the Rx samples this signal in Eq (\ref{eqTimingSyncRxSignal}) through an ADC operating at a rate of $F_S=1/T_S$ samples/second, the output of which is
r(nT_S) = \sum _{i} a[i] p(nT_S-iT_M-\varepsilon_\Delta)
This signal is input to a matched filter $h(nT_S) = p(-nT_S)$.
z(nT_S) &= \Big\{ \sum \limits _i a[i] p(nT_S – iT_M-\varepsilon_\Delta)\Big\} * p(-nT_S) \nonumber\\
&= \sum \limits _i a[i] r_p(nT_S -iT_M -\varepsilon_\Delta) \label{eqTimingSyncMFoutput}
where $r_p(nT_S)$ comes into play from the definition of the pulse auto-correlation. This is plotted in Figure below for a $25\%$ timing offset where the sampling is not being performed at optimal instants. We will next zoom into this figure for a detailed discussion.

Symbol Timing Offset causing ISI in the neighbouring symbols

To generate symbol decisions, $T_M$-spaced samples of the matched filter output are required at $n = mL = mT_M/T_S$. Downsampling the matched filter output generates
z(mT_M) &= z(nT_S) \bigg| _{n = mL = mT_M/T_S} \nonumber \\
&= \sum \limits _i a[i] r_p(mT_M – iT_M-\varepsilon_\Delta) = \sum \limits _i a[i] r_p\Big[( m-i)T_M-\varepsilon_\Delta\Big] \nonumber \\
&= \underbrace{a[m] r_p (-\varepsilon_\Delta)}_{\text{Term 1}} + \underbrace{\sum \limits _{i \neq m} a[i] r_p\Big[(m-i)T_M -\varepsilon_\Delta\Big]}_{\text{Term 2}} \label{eqTimingSyncSymbolTimingISI}

The above equation reveals that the optimal samples at the matched filter output can be broken into the following two terms:

[Term 1: Desired Signal] is given by $a[m] r_p (-\varepsilon_\Delta)$. From the details of a pulse shaping filter, we know that the maximum output of a Nyquist pulse auto-correlation is $1$ and it is delivered at instant $0$. Therefore, the effect of $r_p (-\varepsilon_\Delta)$ is to reduce the desired symbol estimate $a[m]$ by an amount proportional to the Symbol Timing Offset (STO) $\varepsilon_\Delta$.

[Term 2: Inter-Symbol Interference (ISI)] is the accumulation of contributions from all other symbols in the neighborhood of the current symbol, up to the pulse group delay. This contribution, again, depends on the timing offset $\varepsilon_\Delta$.

By zooming in on the terms $i=m-1$, $i=m$ and $i=m+1$, we can also write Eq (\ref{eqTimingSyncSymbolTimingISI}) as
z(mT_M) &= a[m] r_p (-\varepsilon_\Delta) + \\
&\hspace{.5in} \cdots + a[m-1] r_p(T_M -\varepsilon_\Delta) + a[m+1] r_p(-T_M -\varepsilon_\Delta) + \cdots
The consequences of the above equation can be observed by the shaded region in Figure below which is a zoomed in version of the above figure. Here,

  • the current symbol has reduced in amplitude, and
  • adjacent two ISI terms can be seen as interfering with the current symbol estimate.

The STO here is $0.25T_M$ which for a sample rate of $4/T_M$ means an offset of $1$ sample. I recommend you to carefully look at this figure to understand the interference from the other symbols for an incorrect sampling instant.

Zoomed-in view of symbol Timing Offset causing ISI in the neighbouring symbols

The vertical dashed lines illustrate the actual symbol boundaries which is where the samples should be taken. However, due to the timing offset, the contributions from $a[m-1]$ and $a[m+1]$ are not zero. The amount of their interference is dictated by this offset while the sign is governed by the modulating data values.

Eye Diagram and Scatter Plot

When many such scaled pulse shapes are added together to form a Pulse Amplitude Modulation (PAM) waveform, we can see the behavior more clearly through sampling an eye diagram for different timing offsets. Figure below illustrates an example for three different $\varepsilon_\Delta$:
\varepsilon_\Delta = 0, ~0.25T_M ~~\text{and}~ -0.5T_M
which we discuss below. At a rate of $L$ samples/symbol, these values of $\varepsilon_\Delta$ correspond to $0$, $L/4$ and $-L/2$ samples, respectively. Obviously, a symbol timing offset can fall anywhere between the samples as well. In this figure, pay close attention to the solid and dotted arrows as they reveal different characteristics for the symbol timing.

[$\varepsilon_\Delta=0$] corresponds to the perfect symbol estimates at the center of the eye diagram, which is at the end of the symbol interval $T_M$ in the actual matched filter output (recall that an eye diagram is drawn within an interval $-0.5T_M \le t \le +0.5T_M$). This is where the eye opening on average is at its maximum and no ISI from the neighboring symbols distorts this optimal sample. A timing error samples the eye diagram at some other instant.

[$\varepsilon_\Delta=-0.5T_M$] corresponds to the maximum symbol timing offset a digital system can have. In the eye diagram, it is the left edge of the interval, as drawn in Figure below, or the middle of the symbol interval $T_M$ in an actual symbol stream. Any $\varepsilon_\Delta$ lesser than that will come around from the right side of the eye diagram (and the integer $1$ will be deleted from the integer output of the frame synchronization block). For example, an offset of $\varepsilon_\Delta=-0.6T_M$ will appear as $+0.4T_M$. Without any aid from the frame synchronization block, we would have encountered a cycle slip.

Eye diagrams with symbol timing offsets

In an earlier post, it was shown that tracing a single transition in an eye diagram gives information about $3$ symbols: Past, NOW and Future. For this reason, a different sequence of $+1$s and $-1$s carves a different path on the eye diagram. This is the reason an eye diagram has different traces coming to the same $+1$ value: coming from top indicates the previous symbol being $+1$ and middle for previous symbol being $-1$. The traces leaving a $+1$ value follow a similar logic: leaving towards the top indicates the next symbol being $+1$ and middle for next symbol being $-1$.

But in the figure above, another three distinct routes can be identified at the bottom of $Q$ Eye from a $-1$ to a $-1$ transition. This is due to the sequence values coming before the previous symbol. So a $+1$, $-1$, $-1$ will follow a slightly different path as compared to a $-1$, $-1$, $-1$, and so on. Considering a similar contribution arriving from the $I$ branch at the top, middle and bottom, a total of $3\times 3=9$ modulation points for each constellation point arise in the scatter plot.

Finally, notice that the magnitude of these points in the scatter plot tends to be greater than the ideal constellation point denoted by a star. This can be recognized by looking at the eye diagram at $-0.5T_M$ where two out of three paths have a higher magnitude than the ideal point at the sampling instant.

[$\varepsilon_\Delta=+0.25T_M$] corresponds to sampling at the quarter symbol interval on the right half of the eye diagram. Two distinct patterns can be distinguished in the scatter plot, which correspond to the eye diagram, say for example, out of a $+1$ value, those heading towards the top and those heading towards the middle. A total of $4=2\times 2$ distinct regions for each ideal constellation point in the scatter plot arise due to a similar contribution from $I$ arm (indicated by the ellipses and the arrows).

For this region, scatter plot shows lesser magnitude on average than the ideal constellation point. This is again evident from the corresponding eye diagram.

The above study tells us an interesting analogy between the carrier phase offset and symbol timing offset. Just like the phase is defined between $-\pi$ to $+\pi$ and everything else is wrapped around, a symbol timing offset is defined between $-0.5T_M$ and $+0.5T_M$ and everything else wraps around. On that account, $T_M$ is to symbol timing what $2\pi$ is to carrier phase. This analogy is documented in the table below.

Analogy between carrier phase offset and symbol timing offset

The middle sample

From the figures above, it is evident that while most symbol timing offsets produce a random spread around the constellation point, the sample in the middle of the symbol interval $T_M$ corresponding to $\varepsilon_\Delta=\pm 0.5T_M$ has some structure in it. This middle sample is of paramount significance when we shortly discuss symbol timing synchronization procedures operating at $L=2$ samples/symbol.

In a later article, we will go through the frequency domain view of the distortion caused by the symbol timing offset in a PAM waveform.

Learn a little more each week
Get Updates


  1. Mac

    Explaining a complex topic in simplified fashion .. well done

    1. Qasim Chaudhari (Post author)

      Glad you liked it.

  2. marek klemes

    How about including the frequency-domain side of it, with the example of raised-cosine pulse-shaping? Derive how the timing-frequency energy is concentrated at the spectrum edges, how those spectral lines are recovered through nonlinearities or other means, and how those parts of the spectrum are vulnerable to filter distortion, multipath fading notch distortions, etc. Also cover timing recovery methods, and how they relate to these timing and spectral characteristics of the signal.

    1. Qasim Chaudhari (Post author)

      Good suggestion. I have covered most of these topics in the book. https://wirelesspi.com/book/

  3. Mojtaba Hajiabadi

    Hi Qasim, Is there any method to solve the problem of symbol timing recovery via adaptive LMS or RLS algorithm?

    1. Qasim Chaudhari (Post author)

      Symbol timing offset is slowly changing due to clock skew and drift. LMS is an adaptive algorithm that can be employed to track any variable in a system. So yes, LMS or RLS can be used to track the timing (e.g., in a decision-directed mode) without necessarily being the best solution to this problem.

  4. Hari prasad

    Hi Qasim, excellent post on symbol timing offset, I request u please make a post on how linear dispersive channel makes total channel response(Ht – Tx pulse shaping , ch-channel,Hr-rx pulse shape , Ht*ch*Hr) minimum phase ,non minimum phase and how to equalize those channels?
    Please clarify the above doubt.

    1. Qasim Chaudhari (Post author)

      Nice suggestion. Thanks. I have noted it down in my ideas for future blog posts.

  5. Hari prasad

    Hi Qasim, i have a query regarding this timing offset, if i sample the data with timing offset , will isi get introduce in this signal ?if isi get introduced, can i apply lms(least mean square) symbol level equalizer or any other symbol rate equalizer to correct ISI? please clarify my doubt

    1. Qasim Chaudhari (Post author)

      Hi Hari. Yes, ISI will get introduced in the signal if not sampled at the right moment. I have explained this concept in the above figures. Theoretically, an LMS equalizer can correct the symbol timing offset but it will be an overkill for the problem.
      – Think of a timing loop as a single-armed equalizer.
      – Or think of an equalizer as a multi-armed timing loop.
      As you can see, the timing loop will be much simpler to implement and converge quicker.


Leave a Comment

Your email address will not be published. Required fields are marked *

Learn a little more each week
Get Updates

There are 26 letters in English language and countless rules. The language of signal processing is simpler.

- It has only 1 letter: a sample at time 0. From there, we can build any discrete-time signal on which our 1s and 0s can be mapped.

- It has one major rule which is repeatedly employed for demapping the received signal to bits.