Correct symbol timing clock skew
Communications Toolbox / Synchronization
The Symbol Synchronizer block corrects symbol timing clock skew for PAM, PSK, QAM, or OQPSK modulation schemes between a single-carrier transmitter and receiver. For more information, see Symbol Synchronization Overview.
Note
The input signal operates on a sample rate basis, while the output signal operates on a symbol rate basis.
samples
— Input samplesInput samples, specified as a scalar or column vector of a PAM, PSK, QAM, or OQPSK modulated single-carrier signal. This port in unnamed on the block.
Data Types: double
| single
Complex Number Support: Yes
Sym
— Output signal symbolsOutput signal symbols, returned as a variable-size scalar or column vector that has the same data type as the input. For an input with dimensions of Nsamp-by-1, the output at Sym has dimensions of Nsym-by-1. Nsym is approximately equal to Nsamp divided by the Nsps. Nsps is equal to the Samples per symbol parameter. If the output exceeds the maximum output size of , it is truncated.
This port is unnamed when Normalized timing error output port is not selected.
Err
— Estimated timing errorEstimated timing error for each input sample, returned as a scalar or column vector with values in the range [0, 1]. The estimated timing error is normalized by the input sample time. Err has the same data type and size as the input signal.
To enable this port, select Normalized timing error output port.
Modulation type
— Modulation typePAM/PSK/QAM
(default) | OQPSK
Modulation type, specified as PAM/PSK/QAM
, or
OQPSK
.
Timing error detector
— Type of timing error detectorZero-Crossing
(decision-directed)
(default) | Gardner (non-data-aided)
| Early-Late (non-data-aided)
| Mueller-Muller (decision-directed)
Type of timing error detector, specified as Zero-Crossing
(decision-directed)
, Gardner
(non-data-aided)
, Early-Late
(non-data-aided)
, or Mueller-Muller
(decision-directed)
. This parameter assigns the timing
error detection scheme used in the synchronizer.
For more information, see Timing Error Detection (TED).
Samples per symbol
— Samples per symbol2
(default) | positive integer greater than 1Samples per symbol, specified as a positive integer greater than 1.
Data Types: double
Damping factor
— Damping factor of the loop filter1
(default) | positive scalarDamping factor of the loop filter, specified as a positive scalar. For more information, see Loop Filter.
Tunable: Yes
Data Types: double
| single
Normalized loop bandwidth
— Normalized bandwidth of loop filter0.01
(default) | positive scalar less than 1Normalized bandwidth of the loop filter, specified as a positive scalar less than 1. The loop bandwidth is normalized by the sample rate of the input signal. For more information, see Loop Filter.
Note
To ensure that the symbol synchronizer locks, set the
Normalized loop bandwidth parameter to a value
less than 0.1
.
Tunable: Yes
Data Types: double
| single
Detector gain
— Phase detector gain2.7
(default) | positive scalarPhase detector gain, specified as a positive scalar.
Tunable: Yes
Data Types: double
| single
Normalized timing error output port
— Enable normalized timing error output porton
(default) | off
Select this parameter to output normalized timing error data at the output port Err.
Simulate using
— Type of simulation to runCode generation
(default) | Interpreted execution
Type of simulation to run, specified as Code generation
or
Interpreted execution
.
Code generation
–– Simulate the model by using
generated C code. The first time you run a simulation, Simulink® generates C code for the block. The C code is reused for
subsequent simulations unless the model changes. This option requires
additional startup time, but the speed of the subsequent simulations is
faster than Interpreted execution
.
Interpreted execution
–– Simulate the model by
using the MATLAB® interpreter. This option requires less startup time than the
Code generation
method, but the speed of
subsequent simulations is slower. In this mode, you can debug the source
code of the block.
Data Types |
|
Multidimensional Signals |
|
Variable-Size Signals |
|
The symbol timing synchronizer algorithm is based on a phased lock loop (PLL) algorithm that consists of four components:
A timing error detector (TED)
An interpolator
An interpolation controller
A loop filter
For OQPSK modulation, the in-phase and quadrature signal components are first aligned (as in QPSK modulation) using a state buffer to cache the last half symbol of the previous input. After initial alignment, the remaining synchronization process is the same as for QPSK modulation.
This block diagram shows an example of a timing synchronizer. In the figure, the symbol timing PLL operates on x(t), the received sample signal after matched filtering. The symbol timing PLL outputs the symbol signal, , after correcting for the clock skew between the transmitter and receiver.
The symbol timing synchronizer supports non-data-aided TED and decision-directed TED methods. This table shows the timing estimate expressions for the TED method options.
TED Method | Expression |
---|---|
Zero-crossing (decision-directed) | |
Gardner (non-data-aided) | |
Early-late (non-data-aided) | |
Mueller-Muller (decision-directed) |
Non-data-aided TED uses received samples without any knowledge of the transmitted signal or the results of the channel estimation. Non-data-aided TED is used to estimate the timing error for signals with modulation schemes that have constellation points aligned with the in-phase or quadrature axis. Examples of signals suitable for the Gardner or early-late methods include QPSK-modulated signals with a zero phase offset that has points at {1+0i, 0+1i, -1+0i, 0−1i} and BPSK-modulated signals with a zero phase offset.
Gardner method — The Gardner method is a non-data-aided feedback method that is independent of carrier phase recovery. It is used for baseband systems and modulated carrier systems. More specifically, this method is used for systems that use a linear modulation type with Nyquist pulses that have an excess bandwidth between approximately 40% and 100%. Examples include systems that use PAM, PSK, QAM, or OQPSK modulation 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 increases (or rolloff factor increases in the case of a raised cosine filter). The Gardner method is similar to the early-late gate method.
Early-late method — The early-late method is a non-data-aided feedback method. It is used for systems that use a linear modulation type such as PAM, PSK, QAM, or OQPSK modulation. For example, systems using a raised cosine filter with Nyquist pulses. In the presence of noise, the performance of this timing recovery method improves as the excess bandwidth of the pulse increases (or rolloff factor increases in the case of a raised cosine filter).
The early-late method is similar to the Gardner method. The Gardner method performs better in systems with high SNR values because it has lower self noise than the early-late method.
Decision-directed TED uses the sign
function to estimate the
in-phase and quadrature components of received samples, which result in lower
computational complexity than non-data-aided TED.
Zero-crossing method — The zero-crossing method is a decision-directed technique that requires 2 samples per symbol at the input to the synchronizer. It is used in low-SNR conditions for all values of excess bandwidth and in moderate-SNR conditions for moderate excess bandwidth factors in the approximate range [0.4, 0.6].
Mueller-Muller method — The Mueller-Muller method is a decision-directed feedback method that requires prior recovery of the carrier phase. When the input signal has Nyquist pulses (for example, when using a raised cosine filter), the Mueller-Muller method has no self noise. For narrowband signaling in the presence of noise, the performance of the Mueller-Muller method improves as the excess bandwidth factor of the pulse decreases.
Because the decision-directed methods (zero-crossing and Mueller-Muller) estimate
timing error based on the sign of the in-phase and quadrature components of signals
passed to the synchronizer, they are not recommended for constellations that have
points with either a zero in-phase or a quadrature component. and are the in-phase and quadrature components of the input signals to
the timing error detector, where is the estimated timing error. The Mueller-Muller method
coefficients and are the estimates of and . The timing estimates are made by applying the sign
function to the in-phase
and quadrature components and are used for only the decision-directed TED
methods.
The time delay is estimated from the fixed-rate samples of the matched filter, which are asynchronous with the symbol rate. Because the resulting 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.
The interpolator uses a piecewise parabolic interpolator with a Farrow structure and coefficient α set to 1/2 (see Rice, Michael, Digital Communications: A Discrete-Time Approach).
Interpolation control provides the interpolator with the basepoint index and fractional interval. The basepoint index is the sample index nearest to the interpolant. 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, and a strobe signal is used to determine if the interpolant is output. The synchronizer uses a modulo-1 counter interpolation control to provide the strobe and the fractional interval for use with the interpolator.
The synchronizer uses a proportional-plus integrator (PI) loop filter. The proportional gain, K1, and the integrator gain, K2, are calculated by
and
The interim term, θ, is given by
where:
N is the number of samples per symbol.
ζ is the damping factor.
BnTs is the normalized loop bandwidth.
Kp is the detector gain.
[1] Rice, Michael. Digital Communications: A Discrete-Time Approach. Upper Saddle River, NJ: Prentice Hall, 2008.
[2] Mengali, Umberto and Aldo N. D’Andrea. Synchronization Techniques for Digital Receivers. New York: Plenum Press, 1997.