Main Content

Conventional and Adaptive Beamformers

This example shows how to apply conventional and adaptive beamforming in Simulink® to a narrowband signal received by an antenna array. The signal model includes noise and interference. This example is based on the Conventional and Adaptive Beamformers example.

Available Example Implementations

This example includes two Simulink® models:

Conventional Beamforming with Noise

The first model simulates the reception of a rectangular pulse with a delay offset on a 10-element uniformly linear antenna array (ULA). The source of the pulse is located at an azimuth of 45 degrees and an elevation of 0 degrees. Noise with power of 0.5 watts is added to the signal at each element of the array. A phase-shift beamformer is then applied. The example compares the output of the phase-shift beamformer with the signal received at one of the antenna elements.

The model consists of a Signal Simulation stage and a Signal Processing stage. The blocks that corresponds to each stage of the model are:

Signal simulation

  • Rectangular - Creates rectangular pulses.

  • Offset waveform - Delay block delays each pulse by 150 samples.

  • Signal direction - Constant block specifies the incident direction of the pulses to the Narrowband Rx Array block.

  • Narrowband Rx Array - Simulates the signals received at the ULA. The first input to this block is a column vector which contains the received pulses. The pulses are assumed to be narrowband with a carrier frequency equal to the operating frequency specified in the block's dialog panel. The second input (Ang) specifies the incident direction of the pulses. The antenna array's configuration is created by a helper script as a variable in the MATLAB® workspace. This variable is referenced by the Sensor Array tab of the block's dialog panel. Using a variable makes it easier to share the antenna array's configuration across several blocks. Each column of the output corresponds to the signal received at each element of the antenna array.

  • Receiver Preamp - Adds thermal noise to the received signal.

Signal processing

  • Angle to beamform - Constant block specifies to the Phase Shift Beamformer the beamforming direction.

  • Phase Shift Beamformer - Performs narrowband delay-and-sum beamforming on the matrix passed via the input port X along the direction specified via the input port Ang.

  • 2-D Selector - Selects the received signal at one of the antenna elements.

Exploring the Example

Several model parameters are calculated by the helper function helperslexBeamformerParam. To open the function from the model, click on Modify Simulation Parameters block. This function is executed once when the model is loaded. It exports to the workspace a structure whose fields are referenced by the model's dialog panels. To modify any parameters, either change the values in the structure from the command prompt or edit the helper function and rerun it to update the parameter structure.

Results and Displays

The displays below show the output of a single element (not beamformed) compared to the reference pulse and the output of the beamformer compared to the reference pulse. When the received signal is not beamformed, the pulse cannot be detected due to the noise. The display of the beamformer's output shows that the beamformed signal is much larger than the noise. The output SNR is approximately 10 times larger than that of the received signal on a single antenna, because a 10-element array produces an array gain of 10.

Conventional and Adaptive Beamformers with Interference

The second model illustrates beamforming in the presence of two interference signals arriving from 30 degrees and 50 degrees in azimuth. The interference amplitudes are much larger than the pulse amplitude. The noise level is set to -50 dBW to highlight only the effect of interference. Phase shift, MVDR, and LCMV beamformers are applied to the received signal and their results are compared.

Several new blocks are added to the blocks used in the previous model:

  • Random Source - Two blocks generate Gaussian vectors to simulate the interference signals (labeled Interference1 and Interference2)

  • Concatenate - Concatenates the outputs of the Random Source and the Rectangular blocks into a 3 column matrix.

  • Signal direction - Constant block specifies the incident directions of the pulses and interference signals to the Narrowband Rx Array block.

  • MVDR Beamformer - Performs MVDR beamforming along the specified direction.

  • LCMV Beamformer - Performs LCMV beamforming with the specified constraint matrix and desired response.

Exploring the Example

The helper function used for this example is helperslexBeamformerParam. To open the function from the model, click on Modify Simulation Parameters block. The pulse, interference signal and beamforming directions can also be changed at runtime by changing the angles on the Signal directions and the Angle to beamform blocks without stopping the simulation.

Results and Displays

The figure below shows the output of the phased-shift beamformer. It is not able to detect the pulses because the interference signals are much stronger than the pulse signal.

The next figure shows the output of the MVDR beamformer. An MVDR beamformer preserves the signal arriving along a desired direction, while trying to suppress signals coming from other directions. In this example, both interference signals were suppressed and the pulse at 45 degrees azimuth was preserved.

The MVDR beamformer is, however, very sensitive to the beamforming direction. If the target signal is received along a direction slightly different from the desired direction, the MVDR beamformer suppresses it. This occurs because the MVDR beamformer treats all the signals, except the one along the desired direction, as undesired interferences. This effect is sometimes referred to as "signal self-nulling". The following display shows what happens if we change the target signal's direction in the Signal directions block to 43 instead of 45. Notice how the received pulses have been suppressed as compared to the reference pulse.

You can use an LCMV beamformer to prevent signal self-nulling by broadening the region surrounding the signal direction where you want to preserve the signal. In this example, three separate but closely-spaced constraints are imposed that preserve the response in directions corresponding to 43, 45, and 47 degrees in azimuth. The desired responses in these directions are all set to one. As shown in the figure below, the pulse is preserved.