Products & Services Solutions Academia Support User Community Company

Learn more about Communications Blockset   

Synchronization

Section Overview

In order to interpret information correctly, a communication receiver must be synchronized with the corresponding transmitter. This can be achieved in both analog and digital domains. A digital receiver must sample the signal at an appropriate instant within the symbol period, and must estimate the carrier phase. Alternatively, analog components such as voltage-controlled oscillators (VCOs) and phase-locked loops (PLLs) can enable a receiver to adjust its behavior based on the parameters of the incoming signals or the desired signals.

This blockset implements several algorithms for timing phase recovery and carrier phase recovery. It also includes some lower-level components that you can use to build your own PLLs. This section describes the capabilities of the Synchronization library's blocks, in these key sections:

Open the Synchronization library by double-clicking its icon in the main Communications Blockset library. Then open the sublibraries by double-clicking their icons in the Synchronization library.

Timing Phase Recovery

The Timing Phase Recovery library contains blocks that implement various algorithms for determining the best instant within a symbol period to sample a signal at the receiver. For example, the best instant for a PSK-modulated signal is at the peak of the pulse shape. Sampling at the best instant improves the receiver's performance on a noisy signal. Typically, you would place a timing phase recovery block after a receive filter that is matched to the transmitting pulse shape, and before a demodulator.

This section about timing phase recovery covers these topics:

Supported Algorithms for Timing Phase Recovery

This library supports the algorithms listed below, which are all digital recovery methods rather than conventional analog phase-locked loops. For more information about each algorithm, see the reference works cited on each block's reference entry.

AlgorithmBlock
Squaring method (feedforward) Squaring Timing Recovery
Early-late gate method (feedback) Early-Late Gate Timing Recovery
Gardner's method (feedback) Gardner Timing Recovery
Fourth-order nonlinearity method (feedback) MSK-Type Signal Timing Recovery
Mueller-Muller method (feedback) Mueller-Muller Timing Recovery

Feedforward Method for Timing Phase Recovery

A feedforward method for timing phase recovery is structured as in the following figure.

In the figure,

Squaring Timing Recovery block

The Squaring Timing Recovery block implements a feedforward method for timing phase recovery. In this method, the timing estimator uses a complex Fourier coefficient to determine the spectral component of the squared input signal at frequency 1/T, where T is the symbol period. For the specific equation, see the reference page for the Squaring Timing Recovery block.

Feedback Methods for Timing Phase Recovery

The Timing Phase Recovery library implements several feedback methods for timing phase recovery. A feedback method for timing phase recovery is structured as in the following figure.

In the figure,

Restarting the Phase Estimating Process During the Simulation

When using a feedback method for timing phase recovery in Simulink, you can restart the phase-estimation process at different points during the simulation. Restarting the process means resetting the data buffer and phase-estimate buffer to the all-zeros state. The table below lists the supported options.

Value of Reset ParameterWhen Estimation Process Restarts
NoneAt beginning of simulation only. During the simulation, the block operates continuously, retaining information from one symbol to the next.
Every frameRegularly, at the start of each frame of data. During the simulation, each frame of data is processed independently. This option is valid only with frame-based data.
On nonzero input via portWhenever the second input (Rst) is nonzero. When the first input is sample-based, its symbol period must equal the sample time of Rst. When the first input is frame-based, its frame period must equal the sample time of Rst, and the reset occurs at the start of the frame.

Using the Restarting Options Effectively.   If you restart the phase-estimation process during the simulation, be sure to include enough symbols between successive resets for the algorithm to converge to a stable value. Check the phase (Ph) output from the block to see whether its values stabilize before the reset occurs. To include more symbols between successive resets, either increase the frame size by buffering frames together (when using the Every frame option) or change the Rst input so that nonzero values occur less frequently.

Choosing a Method for Timing Phase Recovery

Depending on your system, one or more recovery methods implemented in this library might be suitable. If you use a method that is not suitable for your system, the results might not be accurate. This section discusses the assumptions and suitability of the various methods, covering these topics:

Squaring Timing Recovery Block

The Squaring Timing Recovery block recovers the symbol-timing phase of the input signal using a squaring method. This frame-based, feedforward, nondata-aided method is similar to a conventional squaring loop.

This block is suitable for systems that use linear baseband modulation types such as pulse amplitude modulation (PAM), phase shift keying (PSK) modulation, and quadrature amplitude modulation (QAM).

The block assumes that the phase offset is constant for all symbols in the entire input frame. If necessary, you can use the Buffer block to reorganize your data into frames over which the phase offset can be assumed constant.

Assumptions Common to All Feedback Method Blocks

The feedback method, as implemented in this library, makes some assumptions about the data it receives:

Although the blocks that implement feedback methods share a common structure and the common assumptions above, the blocks use different algorithms in the timing error detector and incur different delays. See each block's reference entry for details.

Early-Late Gate Timing Recovery Block

The Early-Late Gate Timing Recovery block implements a nondata-aided feedback method.

This block 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 early-late gate method is similar to Gardner's method, which is implemented in the Gardner Timing Recovery block. Some differences between the two methods are as follows:

Gardner Timing Recovery Block

The Gardner Timing Recovery block implements a nondata-aided feedback method that is independent of carrier phase recovery.

This block is suitable for both baseband systems and modulated carrier systems. More specifically, this block 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 early-late gate method, which is implemented in the Early-Late Gate Timing Recovery block.

MSK-Type Signal Timing Recovery Block

The MSK-Type Signal Timing Recovery block recovers the symbol timing phase of the input signal using a fourth-order nonlinearity method. This block implements a general nondata-aided feedback method that is independent of carrier phase recovery but that requires prior compensation for the carrier frequency offset.

This block is suitable for systems that use baseband minimum shift keying (MSK) modulation or Gaussian minimum shift keying (GMSK) modulation. Unlike the other blocks in this library, this block does not require the input signal to have been filtered beforehand.

Mueller-Muller Timing Recovery Block

The Mueller-Muller Timing Recovery block implements a decision-directed, data-aided feedback method that requires prior recovery of the carrier phase.

This block is suitable for systems that use a binary linear modulation type, such as binary phase shift keying (BPSK) modulation, or binary phase amplitude modulation (BPAM). The binary requirement arises because the algorithm uses a sign detector (that is, a 1-bit quantizer) to arrive at decisions. When the input signal has Nyquist pulses (for example, using a raised cosine filter), this timing recovery method has no self noise. In the presence of noise, the performance of this timing recovery method improves as the pulse's excess bandwidth factor decreases, making the method a good candidate for narrowband signaling.

Examples of Timing Phase Recovery

One way to illustrate the usage and behavior of the timing phase recovery blocks is to introduce a fractional delay in a communications link and then see how well the block estimates the delay value and samples the received signal. In this context, a "fractional delay" is a delay that is not a multiple of the signal's symbol period. The examples discussed here are

Squaring Timing Phase Recovery Example

This example modifies the one in Example: Using Raised Cosine Filters by introducing and then correcting for a fixed fractional delay. The model uses the Squaring Timing Recovery block to estimate that delay and determine the best instant within the symbol to sample its input signal. The model then demodulates the downsampled signal and computes a symbol error rate.

To open the completed model, click here in the MATLAB Help browser.

To build the model, first open the raised cosine filter model by clicking here in the MATLAB Help browser. Then, gather and configure these blocks:

Connect the blocks as in the figure, and then run the simulation.

Results of the Simulation

When you run the simulation, look for these results:

While this example uses a fixed delay throughout the simulation, the blocks in the timing recovery library can also correct for delays that vary (slowly) from symbol to symbol. For an example that uses a varying delay, see the Gardner timing phase recovery demo.

Carrier Phase Recovery

The Carrier Phase Recovery library contains blocks that implement digital algorithms for determining the carrier phase of a baseband digital signal. The blocks assume that the carrier frequency is known and fixed. The blocks output the estimated carrier phase as well as a corrected (that is, rotated) version of the input signal. Typically, you place a carrier phase recovery block before a demodulator, and after a timing phase recovery block or another block that produces symbols rather than an upsampled signal.

This section about carrier phase recovery covers these topics:

Supported Algorithms for Carrier Phase Recovery

This library supports the algorithms listed below, which are all digital recovery methods rather than conventional analog methods. For more information about each algorithm, see the reference works cited on each block's reference entry.

Algorithm Block
2P-power method, suitable for full-response CPM, MSK, CPFSK, or GMSK signals. CPM Phase Recovery
M-power method, suitable for M-PSK signals. (Also, the 4-power method is suitable for QAM signals using any alphabet size.) M-PSK Phase Recovery

The methods described in the table are nondata-aided, clock-aided, feedforward methods. They assume that timing and carrier frequency are already known and any matched filtering has already been performed.

The methods also assume that the carrier phase to be estimated is constant over a series of consecutive symbols. When you use the blocks in this library, you specify the number of symbols over which the carrier phase is assumed constant.

Carrier Phase Recovery Example

This example modifies the one in Squaring Timing Phase Recovery Example by introducing and then correcting for a fixed phase offset. The model uses the M-PSK Phase Recovery block to estimate the offset and correct the received baseband signal by rotating it. The model then demodulates the corrected signal and computes a symbol error rate.

To open the completed model, click here in the MATLAB Help browser.

To build the model, first open the squaring timing phase recovery model by clicking here in the MATLAB Help browser. Then, gather and configure these blocks:

Replace the Rectangular QAM Modulator Baseband and Rectangular QAM Demodulator Baseband blocks with the corresponding M-PSK blocks listed above.

Remove the Discrete-Time Eye Diagram Scope block and the branched signal line leading to it.

In the Error Rate Calculation block, change Computation delay to 500, because the M-PSK Phase Recovery block has a latency of one observation interval. This latency is described on the M-PSK Phase Recovery block's reference page.

Connect the remaining blocks as in the figure, and then run the simulation.

Results of the Simulation

When you run the simulation, look for these results:

Exploring the Simulation Further

Another way to examine the performance of the carrier phase recovery is to check how much the phase estimates from successive observation intervals differ from each other. You do this using the plotting capabilities of MATLAB along with the simulation capabilities of Simulink:

  1. Add a Signal to Workspace block, from the Signal Processing Sinks library, to the carrier phase recovery example model.

  2. In the Signal to Workspace block, set Variable name to phs and set Limit data points to last to 200.

  3. Connect the Signal to Workspace block to the Ph output of the M-PSK Phase Recovery block, as shown in the following figure.

  4. In the MATLAB Command Window, enter this command to run the simulation for a finite period of time:

    sim('doc_carrier',205);

    You make the simulation run faster by closing the window containing the signal constellation plot. When the simulation ends, the MATLAB workspace contains a variable called phs that contains the last 200 phase estimates from the M-PSK Phase Recovery block. Initial zeros from the delay period are omitted.

  5. Create a plot showing the phase estimate values as well as their mean value by entering the following in the MATLAB Command Window:

    plot(1:200,phs,'b-',1:200,mean(phs),'r--')
    legend('Carrier phase estimate','Mean carrier phase estimate')
    xlabel('Observation intervals'); ylabel('Degrees')
    

The plot shows that the mean is very close to the expected value of 10 degrees, while the individual phase estimates vary within an interval that includes 10 degrees.

Components

The Components sublibrary contains voltage-controlled oscillator (VCO) models as well as phase-locked loop (PLL) models.

This section discusses these topics:

For details about phase-locked loops, see the works listed in Selected Bibliography for Synchronization.

Voltage-Controlled Oscillator Blocks

A voltage-controlled oscillator is one part of a phase-locked loop. The Continuous-Time VCO and Discrete-Time VCO blocks implement voltage-controlled oscillators. These blocks produce continuous-time and discrete-time output signals, respectively. Each block's output signal is sinusoidal, and changes its frequency in response to the amplitude variations of the input signal.

Overview of PLL Simulation

A phase-locked loop (PLL), when used in conjunction with other components, helps synchronize the receiver. A PLL is an automatic control system that adjusts the phase of a local signal to match the phase of the received signal. The PLL design works best for narrowband signals.

A simple PLL consists of a phase detector, a loop filter, and a voltage-controlled oscillator (VCO). For example, the following figure shows how these components are arranged for an analog passband PLL. In this case, the phase detector is just a multiplier. The signal e(t) is often called the error signal.

The following table indicates the supported types of PLLs and the blocks that implement them.

Supported PLLs in Components Library

Type of PLLBlock
Analog passband PLL Phase-Locked Loop
Analog baseband PLL Baseband PLL
Linearized analog baseband PLL Linearized Baseband PLL
Digital PLL using a charge pump Charge Pump PLL

Different PLLs use different phase detectors, filters, and VCO characteristics. Some of these attributes are built into the PLL blocks in this blockset, while others depend on parameters that you set in the block mask:

Implementing an Analog Baseband PLL

Unlike passband models for a phase-locked loop, a baseband model does not depend on a carrier frequency. This allows you to use a lower sampling rate in the simulation. Two blocks implement analog baseband PLLs:

The linearized model and the nonlinearized model differ in that the linearized model uses the approximation

to simplify the computations. This approximation is close when Δθ(t) is near zero. Thus, instead of using the input signal and the VCO output signal directly, the linearized PLL model uses only their phases.

Implementing a Digital PLL

The charge pump PLL is a classical digital PLL. Unlike the analog PLLs mentioned above, the charge pump PLL uses a sequential logic phase detector, which is also known as a digital phase detector or a phase/frequency detector.

Selected Bibliography for Synchronization

[1] Gardner, F.M., "Charge-pump Phase-lock Loops," IEEE Trans. on Communications, Vol. 28, November 1980, pp. 1849–1858.

[2] Gardner, F.M., "Phase Accuracy of Charge Pump PLLs," IEEE Trans. on Communications, Vol. 30, October 1982, pp. 2362–2363.

[3] Gupta, S.C., "Phase Locked Loops," Proceedings of the IEEE, Vol. 63, February 1975, pp. 291–306.

[4] Lindsay, W.C. and C.M. Chie, "A Survey on Digital Phase-Locked Loops," Proceedings of the IEEE, Vol. 69, April 1981, pp. 410–431.

[5] Mengali, Umberto, and Aldo N. D'Andrea, Synchronization Techniques for Digital Receivers, New York, Plenum Press, 1997.

[6] Meyr, Heinrich, and Gerd Ascheid, Synchronization in Digital Communications, Vol. 1, New York, John Wiley & Sons, 1990.

[7] Moeneclaey, Marc, and Geert de Jonghe, "ML-Oriented NDA Carrier Synchronization for General Rotationally Symmetric Signal Constellations," IEEE Transactions on Communications, Vol. 42, No. 8, Aug. 1994, pp. 2531–2533.

  


Related Products & Applications

Learn more about Simulink through this collection of videos, articles, technical literature and the Getting Started with Simulink Guide.

 © 1984-2009- The MathWorks, Inc.    -   Site Help   -   Patents   -   Trademarks   -   Privacy Policy   -   Preventing Piracy   -   RSS