Clear Filters
Clear Filters

Find how MVDR is implemented in the Phased.MVDRbeamformer function

7 views (last 30 days)
I am trying to create a matlab function for another beamformer algorithm which does not have a pre-built function in MATLAB. In doing so, I wanted to look at how MVDR was implmented in MATLAB, as a reference
so, I navigated to "C:\Program Files\MATLAB\R2022b\toolbox\phased\phased\+phased\MVDRBeamformer.m", where I found the code for the same, however, it does not have the proper implementation, i.e. the matrix operations, weighted summations etc
where do I find that?

Answers (1)

Abhimenyu
Abhimenyu on 3 Oct 2023
Hi Mathew,
I understand that you want to learn the MVDR beamforming algorithm to implement your own algorithm.
Here are the high-level steps to create MVDR beamformer function:
  1. Define the function signature with inputs like input signal, desired direction, interference direction.
  2. Calculate the desired steering vector and the interference steering vector using desired direction and interference direction respectively.
  3. Calculate the covariance matrix of the input signal using the “cov function.
  4. Use the covariance matrix, steering vector, and regularization to calculate the weights for the MVDR beamformer. The weights are generally calculated as the inverse of the covariance matrix multiplied by the steering vector. You can also use the “mvdrweights” function to compute the weights directly.
  5. Multiply input signal with the weights to obtain the result.
You can view the MATLAB documentation for a variety of beamforming techniques, “cov” function and “mvdrweights” function using the below links respectively:
  1. https://www.mathworks.com/help/phased/beamforming.html
  2. https://www.mathworks.com/help/matlab/ref/cov.html
  3. https://www.mathworks.com/help/phased/ref/mvdrweights.html
I hope this helps!
Thank you,
Abhimenyu.

Products


Release

R2023a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!