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: slexBeamformerExample.slx
Conventional and Adaptive Beamformers with Interference: slexBeamformerInterferenceExample.slx
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 theNarrowband 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 theSensor 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 thePhase Shift Beamformer
the beamforming direction.Phase Shift Beamformer
- Performs narrowband delay-and-sum beamforming on the matrix passed via the input portX
along the direction specified via the input portAng
.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 (labeledInterference1
andInterference2
)Concatenate
- Concatenates the outputs of theRandom Source
and theRectangular
blocks into a 3 column matrix.Signal direction
-Constant
block specifies the incident directions of the pulses and interference signals to theNarrowband 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.