In this code, you can generate your own Ray-Tracing dataset in MATLAB and perform the simulation of Mambas.
In MATLAB, open RayTracing.m
.
You can customize the three parameters below:
ueNum
: the number of users;distBound
: the min/max BS-user distance in the unit ofm
;angleBound
: the field of view (FoV) of the BS, or the min/max azimuth angle of the users, in the unit ofdegree
.
Below is an example of the MATLAB Ray-Tracing interface.
Generating the whole dataset can take hours. To skip the process, you may unzip Dataset.zip
, which is pre-generated under the given settings.
In Python, open main.py
.
You can customize the arguments below:
scheduler
: the user selection algorithm, whereDP
: the dynamic programming algorithm proposed in the paper;TDMA
: the baseline that only selects a single user using standard proportional fair (PF);All
: the baseline that always selects all the users;Spacing
: the baseline ofS2-MAS
that selects the subset of users with a minimum angular spacing;
optimizer
: the beamforming optimization algorithm, whereIndividual
: theMAX-GAIN-ZF
algorithm proposed in the paper;Conjugate
: the baseline of conjugate beamforming, discussed in Eq. (2) in the paper;MU-ZF
: the baseline of full digital multi-user beamforming with zero-forcing, discussed in Eq. (3) in the paper;Nullify
: the baseline ofNulli-Fi
, which fine-tunes the beamforming weights from conjugate beamforming to minimize the cross-user interference;
bound
: the field of view (FoV) of the BS, or the min/max azimuth angle of the users, in the unit ofdegree
;ueNum
: the number of users, which isU
in the paper;elem
: the number of elements in a subarray as anelemx1
geometry, which isN_s
in the paper;array
: the number of subarrays in the whole array of subarray, which isM
in the paper.
Note that ueNum
or U
in main.py
can be smaller than the ueNum
in RayTracing.m
, where only the first U
users will be considered.
Performing all the algorithms can take days. To skip the process, you may unzip Result.zip
, which contains most of the combinations above.
In MATLAB, open Plot.m
.
You can customize the parameters below to specify the results to be visualized:
scenarioShow
: the scenario index to see the scheduling details;slotNum
: the number of time slots of the simulation, which should be lower than20
.
For the first figure (an example shown below), it shows the detailed scheduling of one simulated Ray-Tracing scenario (X-axis as the time slot index and Y-axis as the user index) over baselines and proposed Mambas, where each grid indicates the data rate (in Mbps) achieved given the time slot and user. Note that 0
means either the user is not activated or packet loss.
For the second figure (an example shown below), it shows the statistical results over all the Ray-Tracing scenarios w.r.t. the averaged data rates over users per scenario.