Beam and Beyond: Modeling RF Impairments in Fully Connected MIMO Arrays

Jun 1, 2026

If technology always worked exactly as designed, computers would never crash, smartphones would never freeze, and apps would run seamlessly. But in practice, even the most carefully engineered systems must contend with real-world effects and complications that arise.

The same is true for RF transmitters and receivers. No matter how carefully they are designed, imperfections will arise due to hardware components. Mixers, amplifiers, attenuators, phase shifters, and other RF components make beamforming possible, but also distort the signals they handle.

Modeling these RF hardware impairments isn’t just an academic exercise; it’s essential for predicting real-world performance and designing resilient systems that hold up outside the lab. Tools are needed to simulate the behavior of realistic RF components and incorporate them into system-level designs to test different configurations and assess overall system performance.

Modeling a Hybrid Phased Array

Let’s look at building a wireless system that includes RF components such as mixers and amplifiers with the intent of understanding how hardware imperfections affect signal propagation and ultimately the system performance. The transmitter and receiver employ hybrid beamforming structures with a combination of baseband pre-coding and RF beamforming weights to optimize signal propagation and reception.

Building the Transmitter Model

The transmitter here is a fully connected hybrid MIMO configuration with two digital channels, each drive an eight-element uniform linear array (ULA).

Each transmit chain contains:

  • An up-conversion mixer to move the signal from baseband to RF frequencies. The mixer contains a local oscillator that adds phase noise (modelled with rf.Mixer)
  • An analog beamformer that steers the beam in the desired direction, using phase shifters and attenuators. These phase shift and attenuation settings have imperfections that need to be incorporated in the model.
  • A power amplifier that increases the signal power often introduces nonlinear distortions (modelled with rf.Amplifier).
  • The system operates at 3.5 GHz, which is a common frequency in mid-band 5G systems.

txElements = 8;

nSamples = 1000;

fc = 3.5e9;

fs = 20e3;

% Setup the transmit antenna array

lambda = freq2wavelen(fc);

txantenna = phased.ULA(txElements,lambda/2);

 

% Setup transmit cascade components

txmixer = rf.Mixer(Model="mod");

txbeamformer = helperAnalogBeamformer(Architecture="Fully connected",...

     NumInputPorts=ntrf,...

     NumOutputPorts=txElements);

txamplifier = rf.Amplifier(Gain=30,Nonlinearity="OIP3",OIP3=50);


% Setup transmitter

transmitter = phased.Transmitter(Configuration="Cascade",...

     Cascade={txmixer,txbeamformer,txamplifier});

 

% Draw the transmit cascade

viewLayout(transmitter,Parent=axes(figure));

Figure 1: Visualizing the transmitter cascade.  ©2026?The MathWorks, Inc.? 

Setting Up the Receiver Model

The receiver uses a similar fully connected structure, but with a smaller array. It has four antenna elements and two RF channels. Each channel includes:

  • A low noise amplifier (LNA)
  • An analog beamformer
  • A downconversion mixer that includes phase noise. This phase noise can be adjusted for noise level, noise frequency offset, noise seed source and other parameters

Below is what the resultant receiver RF chain looks like:

rxElements = 4;

nrrf = 2;

 

% Setup the receive antenna

rxantenna = phased.ULA(rxElements,lambda/2);

 

% Setup and draw the receive cascade

lna = rf.Amplifier(Gain=20,IncludeNoise=true,NoiseType="nf",NF=10);

rxbeamformer = helperAnalogBeamformer(Architecture="Fully connected",NumInputPorts=rxElements,NumOutputPorts=nrrf);

 

rxmixer = rf.Mixer(Model="demod",SampleRate=fs,IncludePhaseNoise=true, PhaseNoiseAutoResolution=false,PhaseNoiseNumSamples=2^nextpow2(nSamples),PhaseNoiseFrequencyOffset=[2000 20000],PhaseNoiseLevel=[-110 -120]);

 

receiver = phased.Receiver(Configuration="Cascade",Cascade={lna,rxbeamformer,rxmixer});

viewLayout(receiver,Parent=axes(figure));

Figure 2: Receiver cascade with RF components. ©2026?The MathWorks, Inc.? 

 Creating the Wireless Scenario

A simple point-to-point scenario helps illustrate how these cascades interact. The receiver is placed 20 km from the transmitter, with ten scatterers between them to represent reflections in the environment. This can be created using the scatteringchanmtx function, which randomizes the location of the scatters. Angular limits can be set, or each transmit and receive angle can be specified to customize the location of the scatters. A QAM modulation scheme is used for transmitting data.

Figure 3: Scenario with Base Station (BS), User and Scatterers. ©2026?The MathWorks, Inc.? 

chanmat = scatteringchanmtx(txelementpos+txpos,rxelementpos+rxpos,nscat);

M = 16;

refConst = qammod(0:M-1,M,UnitAveragePower=true);

data = randi([0 M-1],nSamples,ns);

modSig = qammod(data,M,UnitAveragePower=true);

The hybrid beamforming weights for the channel matrix chanmat can be calculated using an orthogonal matching pursuit algorithm. This algorithm efficiently approximates an optimal digital beamformer by iteratively selecting a small number of analog steering vectors (best for sparse scattering channels). The function omphybweights calculates both the analog RF weights (Wbb, Fbb) as well as the digital baseband weights (Wrf, Frf). 

[Fbb,Frf,Wbb,Wrf] = omphybweights(chanmat,ns,ntrf,txdict,nrrf,rxdict);

These are then assigned to the transmitter and receiver beamformers.

txbeamformer.Weights = Frf;

rxbeamformer.Weights = Wrf;

Next, propagate the signal through the transmitter, channel, and receiver while applying the baseband precoding weights.

codedtxsig = modSig * Fbb;

txsig = transmitter(codedtxsig);

rxsig = receiver(txsig * chanmat);

rxsigdecoded = rxsig * Wbb;

Visualize and Evaluate

Once the data reaches the receiver, examine signal quality visually with a QAM constellation diagram and numerically with an Error Vector Magnitude (EVM) spread. Notable performance degradation results from the current cascade of impairments. The phase noise from mixers, non-linearity from power amplifiers, and additive noise from LNAs cause signal points to rotate, compress, and cloud, causing deviations from the transmitted symbols.

Figure 4: QAM constellation diagram at the receiver. ©2026?The MathWorks, Inc.? 

Figure 5: Error Vector Magnitude (EVM) to quantify magnitude and phase offsets. ©2026?The MathWorks, Inc.? 

Exploring Mitigation Strategies

Parameters can now be adjusted to observe the impact of mitigating impairments introduced by individual components. For example, it may be useful to see what happens when removing the power amplifier non-linearity. One easy way to do this would be to set the transmitter amplifier OIP3 to infinity, so the gain is now linear. Rerunning the simulation with just this change results in a substantial performance gain, with just the effect of phase noise.

Figure 6: Constellation diagram without the power amplifier non-linearity. ©2026?The MathWorks, Inc.? 

Now that the model is set up in MATLAB, engineers can simulate mitigation strategies to compare effectiveness before applying them in hardware. Common methods to negate the effects of non-linearities include:

  • Digital predistortion: Corrects amplifier nonlinearity.
  • Phase calibration: Aligns phase across array elements.
  • Beamforming weight optimization: Adjusts analog and digital weights to improve signal transmission and reception.

What Was Learned

This model highlights several lessons for phased array and RF design engineers.

  • Modeling analog and digital paths together shows interactions that single-component models can miss.
  • Hybrid beamforming offers flexibility but needs careful calibration to maintain precision.
  • Simulation helps identify which impairments matter most and how to address them early in the design process.

The model built here with mixers, amplifiers, beamforming, and communication channels only tells part of the story. Getting from simulation to hardware that performs is where things get interesting, and it’s where most of the hard questions live. Which impairments actually matter at the system level? How well does the mitigation strategy hold up over the air, and whether the beamforming weights survive contact with real antennas? At IMS 2026 in Boston (June 7-12), MathWorks engineers will be showcasing these algorithms and more while deploying them onto hardware. The sessions below pick up where this article leaves off:

  • Modeling the Future: RF Systems Powered by Simulation: Full system-level simulation using ADI RF component models in MATLAB and Simulink, including a radar probability-of-detection workflow from Leonardo. 
  • Beamforming in Action: From simulation to hardware: An end-to-end phased array workflow, from the weight optimization you’ve seen here to measured over-the-air results. 
  • Reconfigurable Wideband Phased Arrays for mmWave: Wideband array design across radar and wireless models, and what that demands from your behavioral models and verification approach.

Find MathWorks at booth #18090 or visit IMS 2026 to plan your sessions. 

References

For more information on modeling RF impairments, visit the links below:

  • Modeling Impairments in Phased Arrays with Hybrid Architectures(Featured Example): This example shows how to model impairments in a hybrid phased array system in MATLAB. References:
    1. Kundert, Ken. Accurate and Rapid Measurement of IP2 and IP3. The Designer Guide Community, May 22, 2002.
    2. Kasdin, N.J. Discrete Simulation of Colored Noise and Stochastic Processes and 1/f/Sup α/ Power Law Noise Generation. Proceedings of the IEEE 83, no. 5 (May 1995): 802–27. https://doi.org/10.1109/5.381848.
  • Analyze single-carrier RF networks in MATLAB  (Documentation): Creating and analyzing a cascade of mathematical models of RF components

Contributed by

MathWorks

Country: United States
View Profile