This project introduces a learning-based approach to the near-field source localization problem using a hybrid analog-digital beamformer in an extremely large-scale multiple-input multiple-output (XL-MIMO) system. The purpose of this project is to address the gap in the literature regarding effective techniques for partially connected hybrid beamformers in near-field localization. By leveraging a Convolutional Neural Network (CNN)-based model, the project aims to design an analog beamformer with proper training constraints and estimate the single-user near-field position in a single snapshot. Our approach demonstrates superior performance over existing solutions, ensuring robustness in multipath propagation conditions, and achieving scalability with fewer RF chains compared to fully-connected architectures. Additionally, we utilize a single pilot, resulting in one-shot near-field user localization.
- Hybrid analog-digital beamforming
- Convolutional Neural Network (CNN)-based model
- Superior performance in multipath propagation conditions
- Scalability with fewer RF chains
- Single pilot for one-shot near-field user localization
First, initialize the conda environment:
conda env create -f environment.yml
conda activate my_env
Then, generate the dataset to replicate Fig. 3 and 4:
python main.py --generate_dataset 1 --dataset_size 20000 --dataset_name my_dataset
To generate the dataset for the multipath scenario (Fig. 5), run:
python main_multipath.py --generate_dataset 1 --dataset_size 20000 --dataset_name my_dataset_multipath
Train (or Test) the CNN model for different configurations:
--logdir saved_models/hyb_config --train 1
--type fully-connected --model 0
(model 0: DNN, model 1: CNN)--type fully-connected --model 1
--type fully-connected --model 1
--type fully-connected --model 1
--logdir saved_models/N_RF --model 1 --type sub-connected --train 1
--type sub-connected --N_RF 8
--type sub-connected --N_RF 16
--type sub-connected --N_RF 32
--type sub-connected --N_RF 64
This is an example of training from the CLI:
python main.py --train 1 --dataset_name my_dataset --dataset_size 20000 --epochs 50 --type sub-connected --logdir saved_models/reprod --batch_size 256 --lr 0.001 --N 128 --N_RF 8 --model 1
Next, run two times the multipath CNN training: the first time set --N_RF 16
, then --N_RF 32
python main_multipath.py --logdir saved_models/multipath/ --epochs 50 --N_RF 16 --train 1 --dataset_name my_dataset_multipath --type inter-connected --model 1
Finally, run fully-digital.py
to generate the fully-digital solution, thenplots.m
on MATLAB to reproduce the paper figures.
We welcome contributions to this project! Please follow these guidelines to ensure a smooth contribution process.
- Fork the repository: Click the "Fork" button at the top right of this page to create a copy of this repository in your GitHub account.
- Clone your fork: Use
git clone
to clone your fork to your local machine.git clone https://github.com/mattiafabiani/One-Shot-Near-Field-Localization-with-AI-Optimized-Hybrid-Beamformer-Design.git
- Create a branch: Create a new branch for your feature or bugfix.
git checkout -b my-feature-branch
- Make your changes: Implement your feature or bugfix.
- Commit your changes: Commit your changes with a clear and descriptive commit message.
git add . git commit -m "Description of my changes"
- Push to your fork: Push your changes to your forked repository.
git push origin my-feature-branch
- Create a Pull Request: Go to the original repository and create a pull request from your forked repository. Provide a clear description of your changes and why they are necessary.
If you find a bug or have a feature request, please open an issue on GitHub. Provide as much detail as possible to help us understand and address the issue.
Thank you for contributing!
This project is licensed under the MIT License. If you use this project in your research, please cite our paper. For more details, see the LICENSE file.
This work has been performed in the framework of the HORIZON-JUSNS-2022 project TIMES, grant no. 101096307, co-funded by the European Union. Views and opinions expressed are however those of the author(s) only and do not necessarily reflect those of the European Union.