Adding code, example and unit test for 1D / 2D planar arrays beamforming weight computation. #371
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
I have developed this code to allow 2D and 3D analog beamforming using 1D or 2D planar array in Sionna. I have added an example notebook that demonstrate the effect of both types of beamforming and show how to use the code in simulation.
No.
Based on previous discussions in this issue, I have developed this code to add a
precoding_weights
function to an antenna array object (either 1D or 2D array). This function allows to specify azimuth and elevation angles and obtain the relative precoding weights for a given array geometry. Such weights can be then plugged into thescene.coverage_map
function in the relative argument to apply the desired steering vector when computing signal propagation maps.It doesn't introduce API changes, however there's a conflict with current Sionna release with respect to the
trainable_*
parameters inAntennaArray.__init__
, which appear to be deprecated in latest Sionna release. I have developed this code for a previous version of the framework and it still runs fine after synchronizing with the main repo, however I am happy to adapt the initialization mechanism for the trainable variables if you could explain how this is handled in the latest release.I have added an example notebook and included the relative unit test, however it seems like the general unit tests routine (i.e.
make test
) fails in the last Sionna release due to other reasons? The specific test function I have added passes with no errors, but also open to edit it accordingly.n/a
Checklist