| Products & Services | Solutions | Academia | Support | User Community | Company |
| Download Product Updates | | | Get Pricing | | | Trial Software |
| Documentation → Communications Toolbox |
| Contents | Index |
| Learn more about Communications Toolbox |
| On this page… |
|---|
You can use BERTool to generate and analyze BER data via the semianalytic technique. The semianalytic technique is discussed in Performance Results via the Semianalytic Technique, and When to Use the Semianalytic Technique is particularly relevant as background material.
To access the semianalytic capabilities of BERTool, open the Semianalytic tab.

For further details about how BERTool applies the semianalytic technique, see the reference page for the semianalytic function, which BERTool uses to perform computations.
This example illustrates how BERTool applies the semianalytic technique, using 16-QAM modulation. This example is a variation on the example in Example: Using the Semianalytic Technique, but it is tailored to use BERTool instead of using the semianalytic function directly.
To set up the transmitted and received signals, run steps 1 through 4 from the code example in Example: Using the Semianalytic Technique. The code is repeated below.
% Step 1. Generate message signal of length >= M^L. M = 16; % Alphabet size of modulation L = 1; % Length of impulse response of channel msg = [0:M-1 0]; % M-ary message sequence of length > M^L % Step 2. Modulate the message signal using baseband modulation. modsig = qammod(msg,M); % Use 16-QAM. Nsamp = 16; modsig = rectpulse(modsig,Nsamp); % Use rectangular pulse shaping. % Step 3. Apply a transmit filter. txsig = modsig; % No filter in this example % Step 4. Run txsig through a noiseless channel. rxsig = txsig*exp(1i*pi/180); % Static phase offset of 1 degree
Open BERTool and go to the Semianalytic tab.
Set parameters as shown in the following figure.

Click Plot.
After you click Plot, BERTool creates a listing for the resulting data in the data viewer.

BERTool plots the data in the BER Figure window.

The procedure below describes how you typically implement the semianalytic technique using BERTool:
Generate a message signal containing at least ML symbols, where M is the alphabet size of the modulation and L is the length of the impulse response of the channel in symbols. A common approach is to start with an augmented binary pseudonoise (PN) sequence of total length (log2M)ML. An augmented PN sequence is a PN sequence with an extra zero appended, which makes the distribution of ones and zeros equal.
Modulate a carrier with the message signal using baseband modulation. Supported modulation types are listed on the reference page for semianalytic. Shape the resultant signal with rectangular pulse shaping, using the oversampling factor that you will later use to filter the modulated signal. Store the result of this step as txsig for later use.
Filter the modulated signal with a transmit filter. This filter is often a square-root raised cosine filter, but you can also use a Butterworth, Bessel, Chebyshev type 1 or 2, elliptic, or more general FIR or IIR filter. If you use a square-root raised cosine filter, use it on the nonoversampled modulated signal and specify the oversampling factor in the filtering function. If you use another filter type, you can apply it to the rectangularly pulse shaped signal.
Run the filtered signal through a noiseless channel. This channel can include multipath fading effects, phase shifts, amplifier nonlinearities, quantization, and additional filtering, but it must not include noise. Store the result of this step as rxsig for later use.
On the Semianalytic tab of BERTool, enter parameters as in the table below.
| Parameter Name | Meaning |
|---|---|
| Eb/No range | A vector that lists the values of Eb/N0 for which you want to collect BER data. The value in this field can be a MATLAB expression or the name of a variable in the MATLAB workspace. |
| Modulation type | These parameters describe the modulation scheme you used earlier in this procedure. |
| Modulation order | |
| Differential encoding | This check box, which is visible and active for MSK and PSK modulation, enables you to choose between differential and nondifferential encoding. |
| Samples per symbol | The number of samples per symbol in the transmitted signal. This value is also the sampling rate of the transmitted and received signals, in Hz. |
| Transmitted signal | The txsig signal that you generated earlier in this procedure |
| Received signal | The rxsig signal that you generated earlier in this procedure |
| Numerator | Coefficients of the receiver filter that BERTool applies to the received signal |
| Denominator |
Click Plot.
After you click Plot, BERTool performs these tasks:
Filters rxsig and then determines the error probability of each received signal point by analytically applying the Gaussian noise distribution to each point. BERTool averages the error probabilities over the entire received signal to determine the overall error probability. If the error probability calculated in this way is a symbol error probability, BERTool converts it to a bit error rate, typically by assuming Gray coding. (If the modulation type is DQPSK or cross QAM, the result is an upper bound on the bit error rate rather than the bit error rate itself.)
Enters the resulting BER data in the data viewer of the BERTool window.
Plots the resulting BER data in the BER Figure window.
![]() | Computing Theoretical BERs | Running MATLAB Simulations | ![]() |

Learn how to apply early verification to your development process through these technical resources.
How much time do you spend on testing to ensure implementation meets system-level requirements?
| © 1984-2009- The MathWorks, Inc. - Site Help - Patents - Trademarks - Privacy Policy - Preventing Piracy - RSS |