Main Content

Symbol Synchronizer

Correct symbol timing clock skew

  • Symbol Synchronizer block

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.


The input signal operates on a sample rate basis, while the output signal operates on a symbol rate basis.



expand all

Input 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


expand all

Output 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 value. The output length is truncated if it exceeds the maximum output size of NsampNsps×1.1.

This port is unnamed when Normalized timing error output port is not selected.

Estimated 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.


expand all

Modulation type, specified as PAM/PSK/QAM, or OQPSK.

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, specified as a positive integer greater than 1. For more information, see Nsps in Loop Filter.

Damping factor of the loop filter, specified as a positive scalar. For more information, see ζ in Loop Filter.

Tunable: Yes

Normalized 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 BnTs in Loop Filter.


To ensure that the symbol synchronizer locks, set the Normalized loop bandwidth parameter to a value less than 0.1.

Tunable: Yes

Phase detector gain, specified as a positive scalar. For more information, see Kp in Loop Filter.

Tunable: Yes

Select this parameter to output normalized timing error data at the output port Err.

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 model reuses the C code for subsequent simulations unless the model changes. This option requires additional startup time, but the speed of the subsequent simulations is faster than with the Interpreted execution option.

  • Interpreted execution — Simulate the model by using the MATLAB® interpreter. This option shortens startup time, but the speed of subsequent simulations is slower than with the Code generation option. In this mode, you can debug the source code of the block.

Block Characteristics

Data Types

double | single

Multidimensional Signals


Variable-Size Signals


More About

expand all


[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.

Extended Capabilities

C/C++ Code Generation
Generate C and C++ code using Simulink® Coder™.

Version History

Introduced in R2015a