Correct symbol timing clock skew
The SymbolSynchronizer
System
object™ corrects for the clock skew between a singlecarrier
transmitter and receiver.
To correct for symbol timing clock skew:
Define and set up the SymbolSynchronizer
object.
See Construction.
Call step
to correct for the clock
skew between a transmitter and receiver according to the properties
of comm.SymbolSynchronizer
. The length of the output
vector varies depending on the timing error and the synchronizer properties.
The behavior of step
is specific to each object in
the toolbox.
The listed characteristics apply to the symbol synchronizer:
PAM, PSK, and QAM modulation schemes are supported.
The input operates on a sample rate basis, while the output signal operates on a symbol rate basis.
The damping factor, normalized loop bandwidth, and detector gain properties are tunable so that they can be easily adjusted to improve synchronizer performance.
Starting in R2016b, instead of using the step
method
to perform the operation defined by the System
object™, you can
call the object with arguments, as if it were a function. For example, y
= step(obj,x)
and y = obj(x)
perform
equivalent operations.
S = comm.SymbolSynchronizer
creates a symbol
synchronizer System
object, S
, that corrects
for the clock skew between a singlecarrier transmitter and receiver.
S = comm.SymbolSynchronizer(
creates
a symbol synchronizer object, Name
,Value
)S
, with each specified
property Name
set to the specified Value
.
You can specify additional namevalue pair arguments in any order
as (Name1
,Value1
,...,NameN
,ValueN
).

Modulation type Specify the modulation type as 

Timing error detector Specify the timing error detection method as 

Samples per symbol Specify the number of samples per symbol, s,
as a real positive finite integer scalar, such that s ≥
2. The default value is 

Damping factor of the loop filter Specify the damping factor of the loop filter as a positive scalar. The default value is


Normalized bandwidth of the loop filter Specify the normalized loop bandwidth as a real scalar having
a value between 0 and 1. The loop bandwidth is normalized by the sample
rate of the input signal. The default value is NoteIt is recommended to set 

Gain of the phase detector Specify the detector gain as a real positive finite scalar.
The default value is 
reset  Reset states of the symbol synchronizer object 
step  Correct symbol timing clock skew 
Common to All System Objects  

release  Allow System object property value changes 
The symbol timing synchronizer is based on a phased lock loop (PLL) algorithm consisting of four components:
A timing error detector (TED)
An interpolator
An interpolation controller
A loop filter
For OQPSK, the inphase and quadrature signal components are first aligned (as in QPSK) using a buffer (state) to cache the last half symbol of the previous input. After initial alignment, the remaining synchronization processing is QPSK.
A generalized diagram of a timing synchronizer is shown below.
In the figure, x(t) is the received sample signal after the matched filter and $$x(k{T}_{s}+\widehat{\tau})$$ is the symbol signal corrected for the clock skew between the transmitter and receiver.
The SymbolSynchronizer
object supports four
types of timing error detection: ZeroCrossing, Gardner, EarlyLate,
and MuellerMuller.
A nondataaided timing error detector (TED) uses received samples without any knowledge of the transmitted signals and performing any estimation.
A decisiondirected TED uses sign function to estimate the inphase and quadrature components of received samples.
The ZeroCrossing (decisiondirected)
and MuellerMuller
(decisiondirected)
methods estimate the timing error based
on the sign of the inphase and quadrature components of signals passed
to the synchronizer. As a result, the decisiondirected methods are
not recommended for constellations that have points with either a
zero inphase or quadrature component. For example, QPSK modulation
with a zero phase offset having points at {1+0i
, 0+1i
, 1+0i
,
and 0−1i
} would not be suitable for these
methods.
In the table, $$x(k{T}_{s}+\widehat{\tau})$$ and $$y(k{T}_{s}+\widehat{\tau})$$ are
the inphase and quadrature components of the signals input to the
timing error detector, where $$\widehat{\tau}$$ is
the estimated timing error. The coefficients $${\widehat{a}}_{0}(k)$$ and $${\widehat{a}}_{1}(k)$$ are
the estimates of $$x(k{T}_{s}+\widehat{\tau})$$ and $$y(k{T}_{s}+\widehat{\tau})$$. These estimates
are made by applying the sign
function to the
inphase and quadrature components and are used only for the decisiondirected
TED modes.
TED Type  Expression 

ZeroCrossing  $$e(k)=x\left((k1/2){T}_{s}+\widehat{\tau}\right)\left[{\widehat{a}}_{0}(k1){\widehat{a}}_{0}(k)\right]+y\left((k1/2){T}_{s}+\widehat{\tau}\right)\left[{\widehat{a}}_{1}(k1){\widehat{a}}_{1}(k)\right]$$ 
Gardner  $$e(k)=x\left((k1/2){T}_{s}+\widehat{\tau}\right)\left[x\left((k1){T}_{s}+\widehat{\tau}\right)x(k{T}_{s}+\widehat{\tau})\right]+y\left((k1/2){T}_{s}+\widehat{\tau}\right)\left[y\left((k1){T}_{s}+\widehat{\tau}\right)y(k{T}_{s}+\widehat{\tau})\right]$$ 
EarlyLate  $$e(k)=x(k{T}_{s}+\widehat{\tau})\left[x\left((k+1/2){T}_{s}+\widehat{\tau}\right)x\left((k1/2){T}_{s}+\widehat{\tau}\right)\right]+y(k{T}_{s}+\widehat{\tau})\left[y\left((k+1/2){T}_{s}+\widehat{\tau}\right)y\left((k1/2){T}_{s}+\widehat{\tau}\right)\right]$$ 
MuellerMuller  $$e(k)={\widehat{a}}_{0}(k1)x(k{T}_{s}+\widehat{\tau}){\widehat{a}}_{0}(k)x\left((k1){T}_{s}+\widehat{\tau}\right)+{\widehat{a}}_{1}(k1)y(k{T}_{s}+\widehat{\tau}){\widehat{a}}_{1}(k)y\left((k1){T}_{s}+\widehat{\tau}\right)$$ 
The ZeroCrossing method is a decisiondirected technique that requires two samples per symbol at the synchronizer’s input. It performs well in low SNR conditions for all values of excess bandwidth, and in moderate SNR conditions for moderate excess bandwidth factors (~0.4  ~0.6).
The Gardner method is a nondataaided feedback method that is independent of carrier phase recovery. It is suitable for both baseband systems and modulated carrier systems. More specifically, this method is suitable for systems that use a linear modulation type with Nyquist pulses that have an excess bandwidth between approximately 40% and 100%. Examples of suitable systems are those that use pulse amplitude modulation (PAM), phase shift keying (PSK) modulation, or quadrature amplitude modulation (QAM), and that shape the signal using raised cosine filters whose rolloff factor is between 0.4 and 1. In the presence of noise, the performance of this timing recovery method improves as the excess bandwidth (rolloff factor in the case of a raised cosine filter) increases.
Gardner's method is similar to the earlylate gate method.
The EarlyLate method is also a nondataaided feedback method. It is suitable for systems that use a linear modulation type, such as pulse amplitude modulation (PAM), phase shift keying (PSK) modulation, or quadrature amplitude modulation (QAM), with Nyquist pulses (for example, using a raised cosine filter). In the presence of noise, the performance of this timing recovery method improves as the pulse's excess bandwidth (rolloff factor in the case of a raised cosine filter) increases.
The EarlyLate method is similar to the Gardner method. Compared to the Gardner method, the EarlyLate method has higher self noise and thus does not perform as well as the Gardner method in systems with high SNR values.
The MuellerMuller method is a decisiondirected feedback method that requires prior recovery of the carrier phase.
When the input signal has Nyquist pulses (for example, using a raised cosine filter), this method has no self noise. In the presence of noise, the performance of the MuellerMuller method improves as the pulse's excess bandwidth factor decreases, making the method a good candidate for narrowband signaling.
The time delay is estimated from fixedrate samples of the matched filter, which are asynchronous with the symbol rate. As the resultant samples are not aligned with the symbol boundaries, an interpolator is used to “move” the samples. Because the time delay is unknown, the interpolator must be adaptive. Moreover, because the interpolant is a linear combination of the available samples, it can be thought of as the output of a filter. Consequently, a piecewise parabolic interpolator with a Farrow structure and coefficient α set to 1/2 as described in [1] is used by the System object.
Interpolation control provides the interpolator with the basepoint index and the fractional interval, where the basepoint index is the sample index nearest to the interpolant and the fractional interval is the ratio of the time between the interpolant and its basepoint index and the interpolation interval.
Interpolation is performed for every sample, where a strobe signal is used to determine if the interpolant is output. The object uses a modulo1 counter interpolation control to provide the strobe and the fractional interval for use with the interpolator.
A proportionalplus integrator (PI) loop filter of the form shown below is used. The proportional gain, K_{1} and the integrator gain, K_{2}, are calculated by
$${K}_{1}=\frac{4\zeta \theta}{\left(1+2\zeta \theta +{\theta}^{2}\right){K}_{p}}$$
and
$${K}_{2}=\frac{4{\theta}^{2}}{\left(1+2\zeta \theta +{\theta}^{2}\right){K}_{p}}\text{\hspace{0.17em}}.$$
The interim term, θ, is given by
$$\theta =\frac{{\scriptscriptstyle \frac{{B}_{n}{T}_{s}}{N}}}{\zeta +{\scriptscriptstyle \frac{1}{4\zeta}}}\text{\hspace{0.17em}},$$
where N, ζ, B_{n}T_{s},
and K_{p} correspond to the SamplesPerSymbol
, DampingFactor
, NormalizedLoopBandwidth
,
and DetectorGain
properties, respectively.
[1] Rice, Michael. Digital Communications: A DiscreteTime Approach. Upper Saddle River, NJ: Prentice Hall, 2009, pp. 434–513.
[2] Mengali, Umberto and Aldo N. D’Andrea. Synchronization Techniques for Digital Receivers. New York: Plenum Press, 1997.