File Exchange Pick of the Week

Our best user submissions

OFDM Synchronization in Simulink

Idin's pick this week is "Pilot Directed Continuous Synchronization of OFDM" by Dick Benson.

Orthogonal frequency-division multiplexing (OFDM) is a bandwidth-efficient scheme to transmit data through wired or wireless communication channels. OFDM made its first commercial appearance in wired communications (in ADSL), but in recent years it has become quite prevalent in wireless communications as well. Third and forth generation ("3G" and "4G") mobile communication standards are OFDM-based, with the next generation (e.g. LTE-Advanced) following in the same path.

As with any communication system, one problem we need to solve is receiver synchronization. This submission has a nice presentation of:

  • How to model and simulate a generic OFDM system in Simulink
  • OFDM timing and carrier synchronization (one possible approach is shown)

I like this example as it shows how to tackle two sides of the synchronization problem in Simulink:

  1. How to model the impairments (i.e., symbol timing error and carrier offset)
  2. Possible mitigation algorithm

The model highlights Simulink's ability to express and simulate a complex structure with multiple feedback loops. Expressing this structure in a programming language (e.g. C++ or MATLAB) would be a tedious and highly error-prone task.

This model uses color-coded switches to help the user interactively explore different parts. For instance, the light blue switch at the bottom of the screen enables the timing recovery loop. You can introduce symbol timing error into the model by tweaking slider gains of the same color at the top of the screen, then enable/disable the bottom switch to observe the effects of the impairment and/or the mitigation algorithm.

As an added bonus, this model also shows a channel estimation/equalization scheme that can be used to mitigate the effects of a dispersive (fading) channel (look under the "OFDM Rx" block).

This model can serve as a good starting point for anyone interested in learning about OFDM systems and synchronization, or building/implementing an OFDM system.

For those wishing to use this model to guide their own OFDM development, you should keep in mind the following:

  1. This model assumes a continuous transmission (i.e. not "bursty").
  2. All computations are done in floating-point; for a hardware-oriented implementation, you may need to convert portions of this model to use fixed-point arithmetic.
  3. This is one possible approach to OFDM synchronization, and should not be taken as the "optimal" solution.

More information:

Take a look at the PDF file included with the submission for a detailed description of the model, and for references.

For an example of carrier/timing recovery for a single-carrier system, see the demo model "commtimrecresample" that comes with the Communications Toolbox (or Communications Blockset in R2010b and older versions).

As always, we welcome your comments!

Published with MATLAB® 7.13

  • print


To leave a comment, please click here to sign in to your MathWorks Account or create a new one.