Power Amplifier Nonlinearity Impairment Simulation in MATLAB

power amplifier
nonlinearity
matlab
simulation
constellation diagram

This section explains power amplifier (PA) nonlinearity impairment and its effect on the constellation diagram using MATLAB code. PA nonlinearity incorporates AM-AM conversion and AM-PM conversion. Parts A and C of the MATLAB code are assumed to be similar to those covered in a separate section on AWGN (Additive White Gaussian Noise).

PART B: Power Amplifier Simulation

PA_backoff_dB = 2; % Power Amplifier Back off w.r.t. 1dB compression point
                   % < 0 --> average power above P1dB
                   % > 0 --> average power below P1dB
in = mapper_out_ori;
in = in';
out = TX_PA(in,PA_backoff_dB);
figure;
plot(real(out),imag(out),'r+');
title('constellation with PA nonlinearities');

TX_PA.m Function

This MATLAB function simulates the power amplifier’s non-linear behavior.

function out = TX_PA(in, Backoff_dB)
[M N] = size(in);
for k=1:N
    % Parameters of nonlinear model
    alpha1 = 1;
    alpha3 = -(1-10^(-1/20))*4/3; % This is an inversion of the formula
                                  % giving the input 1 dB compression point

    % RMS amplitude of signal
    Arms = sqrt(var(in(:,k)));

    % Brings signal to back-off dB below 1dB compression point
    in(:,k) = in(:,k)*10^(-Backoff_dB/20)/Arms;

    % Computes saturation values
    IAsat = 2/3*sqrt(alpha1/abs(alpha3));
    OAsat = 4/9*alpha1*sqrt(alpha1/abs(alpha3));

    % For the lowpass equivalent, multiply alpha3 by 3/4 !
    out(:,k) = alpha1*in(:,k) + 0.75*alpha3*in(:,k).*abs(in(:,k)).^2;

    % Clipping to ensure monotonicity
    ind = find(abs(in(:,k))>IAsat);
    out(ind,k) = OAsat*sign(in(ind,k));

    % Brings signal energy back to its original value
    YRMS = sqrt(var(out(:,k)));
    out(:,k) = out(:,k)/YRMS*Arms;
end

The code calculates the output signal after passing through a simplified power amplifier model. The model uses alpha1 and alpha3 parameters to represent the linear and non-linear components of the amplifier, respectively. It also includes saturation and clipping to emulate real-world PA characteristics. The Backoff_dB parameter controls the input power relative to the amplifier’s 1dB compression point.

Input and Output Constellation Diagram

The following images show the input and output constellation diagrams.

constellation input image

power amplifier nonlinearity effect on constellation

As seen in the images, the PA nonlinearity distorts the constellation diagram. The points are no longer cleanly separated, resulting in performance degradation.

Reference

The code is taken from the book “Digital Front-End Compensation for Emerging Wireless Systems” by François Horlin and André Bourdoux.

AWGN Impairment Simulation in MATLAB

AWGN Impairment Simulation in MATLAB

MATLAB code demonstrating Additive White Gaussian Noise (AWGN) impairment and its effect on constellation diagrams with BPSK, QPSK, 16QAM, and 64QAM modulation.

awgn
matlab
impairment
CCDF MATLAB Code for RF Engineers

CCDF MATLAB Code for RF Engineers

Explore MATLAB code for generating CCDF curves, essential for RF engineers analyzing Peak-to-Average Power Ratio in RF Power Amplifier design. Includes code snippets and resources.

ccdf
matlab
rf engineering
CDMA MATLAB Code for Simulation

CDMA MATLAB Code for Simulation

Explore CDMA (Code Division Multiple Access) with this MATLAB source code. Simulate CDMA transmission and reception, including BER analysis over AWGN.

cdma
matlab
simulation