"NirvaWave" is an open-source 2D simulator for modeling the electromagnetic wave near field propagation of large transmitter antennas (especially in THz and sub-THz frequencies) in the presence of arbitrary blockages and reflectors in the environment. Terahertz (THz) communications are envisioned to be a key technology in 6G and beyond wireless systems, enabling the demanding high data rates (100 Gbs) and large bandwidths. The large array aperture and high carrier frequencies in the THz band result in a large Rayleigh distance (over 10 meters), which positions most communication applications in the near-field region of the transmitter (Tx) antennas, where the traditional plane-wave assumption is no longer valid. Moreover, the severe propagation loss and blockage issues inherent in the THz band present significant challenges, hindering the system's ability to utilize the available bandwidth effectively. One of the fundamental tools to alleviate these problems and facilitate network optimization and planning is coverage mapping through received power prediction in different locations. However, traditional models developed based on far-field assumptions would fail to capture the near-field characteristics accurately, and running computationally intensive EM simulations on the base stations is not feasible, making effective power prediction extremely challenging for these systems. In this simulator, we provide accurate and efficient modeling of near-field propagation of TX antennas configured with arbitrary phase configurations and locations in interactions with arbitrary numbers of reflectors/blockages with different environmental properties. In this simulator, we provide options to generate interesting and special wavefronts introduced in the near field like Airy beam, Bessel beam, etc., or input user-defined phase configurations for TX antenna elements. Furthermore, "NirvaWave" supports Reconfigurable Intelligent Surfaces (RIS) and rough scattering to model the near-field propagation. Ultimately, one can define the multiple RX properties as in a multiple UEs scenario to get the calculated power at each RX location on top of the coverage map. We have developed this simulator based on the physical principles of Rayleigh-Sommerfeld Integral Theory and Angular Spectrum Method and evaluate its performance by comparing the results generated from this simulator with a comprehensive EM simulator namely "Feko". The main purpose of this simulator is to provide a user-friendly interface to study the near field propagation model of large TX antenna arrays which are envisioned to be the key technology in the next generations of communication systems and more importantly provide an infrastructure to generate a significant amount of data for AI-enabled solutions.
To start the simulator, first clone the repository:
git clone https://github.com/vahidyazdnian1378/NirvaWave.git
The simulator was implemented in Matlab with GUI. Make sure that MATLAB with version >2022a
. For intensive computations at high resolutions, it is recommended to run the simulation on a server with sufficient memory and processing power.
To start the simulator, start MATLAB and open the file main_app.mlapp in MATLAB App Designer. MATLAB App Designer environment can be opened by running the appdesigner
command in the MATLAB command line. The main app can be set up by easily just running the program.
In the first part of the simulator, one can create the environment of interest by choosing the resolution and dimension and adding as many blockages/reflectors with arbitrary properties to the environment.
The resolution represents the number of points in which the electric field is calculated in the defined dimensions. Therefore, if one sets the resolution to be 2000 the output file would be a 2000*2000 complex matrix. The resolution is also important in terms of accurate EM wave propagation. It is recommended to set the resolution so that the sampling space in the defined dimensions is less than
To add a reflector/blockage, one can click on the Add New Reflector/Blocker button which would pop up a new window. In the new window, the user can define the location and orientation of the object (within the defined dimensions) along with the length and thickness of the object in the environment. Power Ratio determines the amount of power being reflected back with respect to the incident E field power. The power ratio of 1 represents perfect reflection, while the power ratio of 0 represents complete blockage (absorber). Furthermore, there are options to consider diffuse scattering by adding roughness parameters and also to place Reconfigurable Intelligent Surfaces as the reflectors by adding a text file that contains the designed phase shifts and relative amplitudes of RIS elements (first line containing phase shifts in radians seperated by comma and the second line containing relative amplitudes seperated by comma (see the example files)). By determining the statistical properties of a rough surface
To configure TX antenna arrays, one should determine the frequency at which the simulation is intended to calculate near-field propagation. It should be noted that the resolution defined in environmental properties must be large enough to sample points with spacing less than half a wavelength
By clicking on the Add New RX button, one can configure the RX antenna dimension, location, orientation, and its number of elements to calculate the received power at the multi-UE scenario by running the simulation once. In default the RX antenna is assumed to be fully digital, however, one can set it to be an analog antenna array by importing the corresponding phase configurations as a text file. The text file should contain the desired phase shifts on each antenna array element in radians and separated by comma.
After running the simulation the calculated coverage map resulting from near field propagation would be visualized and saved as a text file containing the E field at each location based on the pre-defined resolution. Input the desired file name without any extensions. One can change the coverage map visualization mode to be based on normalized magnitude or in db. For more options, you can right-click on the color bar in the figure.
This simulator is a perfect tool to collect data for AI-enabled solutions for different applications of near-field propagation. One can easily make scripts to collect data for various purposes, due to the source code availability of the core simulator. One example of generating a coverage map by interacting with the core near field propagation modeling function can be seen in func_test.m file. For more advanced settings you can also refer to the main function near_field_propagation.m.
NirvaWave simulator is MIT licensed, as found in the LICENSE file. If you use this simulator in your work, please cite it as follows:
@article{yazdnian2024nirvawave,
title={NirvaWave: An Accurate and Efficient Near Field Wave Propagation Simulator for 6G and Beyond},
author={Vahid Yazdnian and Atsutse Kludze and Yasaman Ghasempour},
journal={arXiv preprint arXiv:2409.11293},
year={2024}
}