Skip to content

Latest commit

 

History

History
executable file
·
123 lines (96 loc) · 5.04 KB

File metadata and controls

executable file
·
123 lines (96 loc) · 5.04 KB

Optimization of Transmit Beamforming With Channel Covariances for MISO Downlink Assisted by Reconfigurable Intelligent Surfaces

Note

[Manuscript Accepted]

We propose an unsupervised beamforming neural network (BNN) to optimize transmit beamforming in downlink multiple input single output (MISO) channels. Our proposed BNN utilizes only channel covariances of UEs, which do not change often, and hence the transmit beams do not need frequent updates. The BNN outperforms the ZF scheme when the UE channels are sparse with rank one covariance. The sum-rate gain over ZF is pronounced in heavily loaded systems in which the number of UEs is closer to that of the BS antennas. The complexity of the BNN is shown to be much lower than that of the ZF. Future work includes improving the BNN for channel covariances whose rank is greater than one and joint optimization of the transmit beams with RIS elements.

System Model


The implementation of the neural network model is adapted from TianLin0509/BF-design-with-DL to meet our system requriements.

Important

For details on the custom Downlink Beamforming with Reconfigurable Intelligent Surface environment, please refer to the paper: [](Will be published on IEEE Xplore in May, 2024).

Simulation Parameters

Parameter Current Value
Number of UEs Default: 8
Otherwise: 6, or 10
Number of BS transmit antenna ($N_t$) Default: 16
Otherwise: 10
Number of RIS elements ($N$) Default: 30
Otherwise: 60
Downlink bandwidth Assume mmWave Frequencies > 30 GHz
Channel bandwidth Rayleigh Fading Model
Antenna configuration MISO
Frequency reuse scheme Large Frequency Reuse Factor
Mobility model Stationary
Learning type Unsupervised

Implementation Details of the proposed BNN

Layer Name Output Dimension Activation Function
Input layer 1 [M+K, 2, $N_t$, $N_t$] -
Input layer 2 [1] -
Input layer 3 [M+K, 2, $N_t$, 1] -
Concatenate layer [2 $N_t$ (M+K)($N_t$+1)+1, 1] -
Dense layer 1 [256, 1] softplus
Dense layer 2 [128, 1] softplus
Dense layer 3 [64, 1] softplus
Lambda layer 1 [32, 1] -
Lambda layer 2 [32, 1] -
Dense layer 4 [M+K, 1] softplus
Dense layer 5 [M+K, 1] softplus
Lambda layer 3 [M+K, 1] -
Lambda layer 4 [M+K, 1] -
Lambda layer 5 [M+K, $N_t$, 1] -
Lambda layer 6 [1] -

Training Hyperparameters of BNN

Hyperparameters Value
Number of episodes Maximum episodes = $500$
Mini-batch size $32$ samples
Network weight initializations Keras' default wegihts
Optimizer Adam
Learning rate Maximium value = $1e-5$
Minimum value = $1e-7$

Numerical Results


Figures of the sum rates and computaion time in the paper are found in the folder sumRates and elapsedTime respectively or as belows. The hyperparameters follow all figures presented in the paper.

Please modify N, Nt, totalUsers, Lm, Lk in NNUtils.py and respective python plot files to reproduce all figures in the paper.

How to use


0.Requirements

python==3.10.10
matplotlib==3.7.1s
numpy==1.24.3
tensorflow==2.15.0
keras==2.15.0

1.Implementation

  • Generate the dataset:

    python covariance.py
  • Calculate the sum rate of ZF beams w/ water-filling pwr:

    python waterFilling.py
  • Train the model:

    python TrainSuper.py
  • Test the model:

    python TestSuper.py
  • Check the elapsed time:

    python timerCalculation.py
  • Plotting the graph:

    python plot_corresponding_number_.py

Eplased time info, Loss curves and sum rate plots can also be viewed in timer, train and Plotting folders which will be automatically created after running the abovementioned files.