Documentation Center

  • Trials
  • Product Updates

Iterative Design Workflow for Communication Systems

This example illustrates a design workflow that represents the iterative steps for creating a wireless communications system with the Communications System Toolbox™. Because Communications System Toolbox supports both MATLAB® and Simulink®, this example showcases design paths using MATLAB code and Simulink blocks. As you progress through the workflow, you may follow the design path for MATLAB, for Simulink, or for both products.

The workflow begins with a simple communications system and performs bit error rate (BER) simulations to gauge system performance. BER simulations are based on simulating a communications system with a given signal-to-noise ratio (En/No), and then calculating the corresponding bit error rate measurement to determine the number of errors in the transmitted signal. The lower the BER measurement at a given signal-to-noise ratio, the better the system performance.

This workflow starts with a simple communications system, and iteratively adds the algorithmic components necessary to build a more complicated system. These additional components include:

  • Convolutional Encoding and Viterbi Decoding

  • Turbo Coding

  • Multipath Fading Channels

  • OFDM-Based Transmission

  • Multiple-Antenna Techniques

As you add components to the system, the workflow includes bit error calculations so that you can progressively examine system performance. For some components, theoretical or performance benchmarks are available. In these cases, the workflow shows both the theoretical and measured performance metric.

Simulate a basic communications system

This workflow starts with a simple QPSK modulator system that transmits a signal through an AWGN channel and calculates the bit error rate to evaluate system performance.

 In MATLAB

 In Simulink

Introduce convolutional coding and hard-decision Viterbi decoding

Modify the basic communications model to include forward error correction. Adding forward error correction to the basic communications model improves system performance. In forward error correction, the transmitter sends redundant bits, along with the message bits, through a wireless channel. When the receiver accepts the transmitted signal, it uses the redundancy bits to detect and correct errors that the channel may have introduced.

This section of the design workflow adds a convolutional encoder and a Viterbi decoder to the communication system. This communications system uses hard-decision Viterbi decoding. In hard-decision Viterbi decoding, the demodulator maps the received signal to bits, and then passes the bits to the Viterbi decoder for error correction.

 In MATLAB

 In Simulink

Improve results using soft-decision decoding

Use soft-decision decoding to improve BER performance. The previous section of this workflow uses hard-decision demodulation and hard-decision Viterbi decoding – processes that map symbols to bits. This section of the workflow uses soft-decision demodulation and soft-decision Viterbi decoding. In soft-decision demodulation, the received symbols are not mapped to bits. Instead, the symbols are mapped to log-likelihood ratios. When the Viterbi decoder processes log-likelihood ratios (LLR), the BER performance of the system improves.

 In MATLAB

 In Simulink

When you plot the soft-decision theoretical curve, you will observe BER curve improvements of about 2 dB relative to the hard-decision decoding. Notice that the simulation results also reflects a similar BER improvement.

Use turbo coding to improve BER performance

Turbo codes substantially improve BER performance over soft-decision Viterbi decoding. Turbo coding uses two convolutional encoders in parallel at the transmitter and two a posteriori probability (APP) decoders in series at the receiver. This example uses a rate 1/3 turbo coder. For each input bit, the output has 1 systematic bit and 2 parity bits, for a total of three bits. Turbo coders achieve BER performances at much lower SNR values than convolutional encoders. As a result, this iteration uses a lower range of EbNo values than the previous section.

 In MATLAB

 In Simulink

Apply a Rayleigh channel model

The previous design iterations model narrowband communications systems that can be adequately represented using an AWGN channel. However, high data rate communications systems require a wideband channel. Wideband communications channels are highly susceptible to the effects of multipath propagation, which introduces intersymbol interference (ISI). Therefore, you must model wideband channels as multipath fading channels. This iteration of the design workflow uses a multipath fading Rayleigh channel, which assumes no direct line-of-sight between the transmitter and receiver.

 In MATLAB

 In Simulink

Use OFDM-based equalization to correct multipath fading

Use orthogonal frequency-division multiplexing (OFDM) to compensate for the multipath fading effect introduced by the Rayleigh fading channel. OFDM transmission schemes provides an effective way to perform frequency domain equalization. This design iteration introduces an OFDM transmitter, an OFDM receiver, and a frequency domain equalizer to the communications system.

 In MATLAB

 In Simulink

Use multiple antennas to further improve system performance

Simultaneously transmitting copies of a signal using multiple antennas can significantly increase the likelihood that the receiver correctly recovers the transmitted signal. This phenomenon is known as transmit diversity. However, this performance improvement comes at the expense of introducing additional computational complexity in the receiver.

 In MATLAB

 In Simulink

Accelerate the simulation using MATLAB Coder

All of the functions and System objects that this design iteration workflow uses support C code generation. If you have a MATLAB Coder™ license, you can accelerate simulation speed by generating a .mex file using the codegen command.

 In MATLAB

Was this topic helpful?