Modeling RF mmWave Transmitter with Hybrid Beamforming
This example illustrates a methodology for system-level modeling and simulation of a 66 GHz QPSK RF transmit and receive systems with a 32-element hybrid beamforming antenna. The system includes RF imperfections, transmit array radiation effects, a narrowband receive array and a baseband receiver with corrections for system impairments and message decoding. The antenna beamforming direction is defined using azimuth and elevation angles and it is estimated in the RF receive antenna using a root multiple signal classification (root MUSIC) direction of arrival (DOA) algorithm.
The following sections provide more details about the system design.
Model Description
The top-level model of this example consists of five subsystem blocks, one block to control the relative angle between the transmitter and the receiver, and two displays:
A QPSK baseband transmitter that encodes the message "Hello World ###".
An RF transmitter with IQ modulation, mixing, amplification, and hybrid beamforming with control circuitry. The RF transmitter model includes RF imperfections such as noise, nonlinearity, and antenna element coupling.
An ideal channel that attenuates the transmitted signal with a free space path loss model.
An RF receiver with two narrowband receive array antennas, receiver gain and SNR, 12-bit ADC with finite dynamic range, and two root MUSIC algorithms for angle of arrival estimation along azimuth and elevation.
A QPSK receiver that includes carrier and frame synchronization, demodulation, and data decoding.
A Constant block that you can use to set the relative angle between the transmitter and the receiver.
A spectrum analyzer scope that you can use to compare the normalized transmitted and received signals
A display for the received message and another display for the estimated angle of arrival.
model = "simrfV2_qpsk";
open_system(model)
sim(model)
QPSK Transmitter
The QPSK transmitter includes a Bit Generation subsystem, a QPSK Modulator block, a Raised Cosine Transmit Filter block for pulse shaping, and a Gain block. The Bit Generation subsystem generates frames. Each frame contains 26 header bits followed by a payload of 174 bits, 105 bits for the message 'Hello world ###' and 69 random bits. The payload is scrambled to guarantee a balanced distribution of zeros and ones for the timing recovery operation in the receiver model.
open_system(model + "/QPSK TX","force")
RF Transmitter
The RF transmitter is composed of three sections: array beamformers, a hybrid beamforming antenna, and a Narrowband Transmit Array block. The 32-element hybrid beamforming antenna is divided in four subarrays. Each subarray consists of eight RF transmitters operating at 66 GHz. The antennas are microstrip patches. These antenna elements and the subarrays have been designed and verified with a MATLAB script that uses Antenna Toolbox™.
The far field antenna array gain is computed using the Phased Array System Toolbox™ Narrowband Transmit Array block. The computed radiation pattern is the superposition of the fields generated by the isolated microstrip patches.
open_system(model + "/Transmit Array Hybrid Beamforming")
Transmit Array Beamformers
The transmit array is steered towards the direction estimated by the receiver. For demonstration purposes, two different beamforming algorithms are used to compute the weights applied to the four subarrays and to the elements of each subarray.
The subarrays weights are computed with a minimum variance distortionless response (MVDR) beamformer. A complex multiplication in the MVDR beamformer combines the transmitted signal and subarrays weights, steering the transmitted signal along the azimuth direction. Tapering is used to reduce the effects of grating lobes.
The phase shifts applied to the eight subarray elements are computed with a phase shifter beamforming algorithm. The four subarrays apply the same phase shifts that steer the transmitter along the elevation direction.
open_system(model + "/Transmit Array Hybrid Beamforming/Beamformers")
Transmit Subarrays
The four transmit subarrays are identical. Each subarray performs upconversion to 66 GHz using a quadrature modulator and a 5 GHz local oscillator followed by a superhet modulator that consists of a 61 GHz local oscillator, an image filter, and a channel select filter. Impairments such as noise, I/Q imbalance, LO leakage, and nonlinearities are included in the appropriate subarray components. A nonlinear power amplifier (PA) increases the transmitter gain, and a Wilkinson type 1-to-8 power divider followed by variable phase shifters connects the PA to eight antennas. The eight variable phase shifters are used to steer the beam. The loading of the antenna subarray and the coupling in between the antenna elements are modeled by its S-parameters.
open_system(model + "/Transmit Array Hybrid Beamforming/subarray1")
Receive Array
The receiver is modeled at a higher abstraction level as compared to that of the transmitter. The receiver uses two orthogonal linear arrays, each with four isotropic antenna elements. The arrays are used to provide spatial diversity for the identification of the angle of arrival. The receiver does not implement any beamforming algorithm.
The receiver finite gain and SNR is modeled for each of the received signals followed by a 12-bit ADC with finite dynamic range including saturation and quantization effects.
Two root MUSIC algorithms are used to estimate the direction of arrival using the linear array signals. Each algorithm operates across one dimension, thus together they can estimate the transmitter position in terms of azimuth and elevation angles.
open_system(model + "/Receive Array")
QPSK Receiver
The QPSK receiver from the Communications Toolbox™ example QPSK Transmitter and Receiver (Communications Toolbox) is used in this example with modification. These modifications remove blocks from this receiver when the signal impairment is absent.
The AGC block controls and stabilizes the received signal amplitude, which affects the accuracy of the carrier symbol synchronizer.
The Raised Cosine Receive Filter block provides matched filtering for the transmitted waveform.
The Carrier Synchronizer block performs fine frequency compensation.
The Frame Synchronizer block uses the known preamble (QPSK-modulated Barker code) to correlate against the received QPSK symbols, locate the frame header, and align the frame boundaries. It converts the input into fixed-size output frames of the specified length. The second output of the block is a boolean scalar that indicates whether or not the first output is a valid frame with the desired header and, if so, enables the Data Decoding subsystem to run.
The Data Decoding enabled subsystem performs phase ambiguity resolution, demodulation, and text message decoding.
open_system(model + "/QPSK Receiver")
See Also
IQ Demodulator | Mixer | Power Amplifier