Uavnoma is a set of Python functions and a front-end script for modeling, studying, and analyzing the communication system composed by an unmanned aerial vehicle (UAV) and two ground users. We assume that the UAV acts as an aerial base station to serve the users according to non-orthogonal multiple access (NOMA) principles. For more practical insights, residual hardware impairments (RHI) and imperfect successive interference cancellation (ipSIC) are considered. More specifically,

The massive adherence of society to wireless communication technologies has enabled significant technological development in recent years, generating new scenarios and new challenges. Based on this, different network structures are needed to meet the heterogeneous requirements of the applications foreseen for the next generation of mobile communication. These different network infrastructures will impose stringent requirements to system designers, such as reliable communications, massive connectivity, low latency, low energy consumption, seamless connectivity, and high spectral efficiency. To achieve these heterogeneous requisites, numerous strategies and transmission technologies have been proposed. In this context, it is necessary to explore and understand the principles of the techniques and tools expected for beyond fifth-generation (B5G) networks, so that new solutions can be proposed. This work provides a package to auxiliary the study and formulation of system models related to two potential tools for B5G: non-orthogonal multiple access (NOMA) and unmanned aerial vehicles (UAV).

Since the design of appropriate multiple access techniques is crucial for supporting the massive number of devices foreseen for future networks, the NOMA technique is investigated in this work. NOMA is a crucial multiple access technique for supporting the massive number of devices foreseen for future networks, due to promising gains when compared to the orthogonal counterpart [

In turn, the demand for UAV in communication networks has increased in the last few years [

In the investigated scenario, a UAV acts as a BS which employs NOMA to communicate with two ground users. In order to provide practical insights, this work presents the

In summary, the

Study the UAV-NOMA network and use it as a basis for implementing other technologies.

Modify the parameters and analyze the system’s performance, considering the error propagation due to the RHI and the ipSIC in terms of outage probability and achievable rate.

Visualize simulation output and produce tables and figures to evaluate the performance of the system.

These utilities were developed to study the modeling and performance of UAVNOMA networks under non-ideal conditions.

The remainder of this paper is organized as follows. The Section “Theoretical background” describes the system model under consideration. In the next Section, “Implementation and architecture”, the architecture and organization of the package are presented. A usage example is discussed in Section “Usage Example”, while the package’s quality assurances are described in Section “Quality control”. Section “Availability” provides information about the package’s availability for different architectures, as well as its dependencies. Finally, the Section “Reuse potential” describes the potential extensions of the package.

System model: simplified representation of UAV-NOMA transmission.

We assume that the UAV continuously flies with a constant velocity in a circular trajectory of radius _{1} and altitude _{2}. Based on three-dimensional Cartesian coordinates, the location of the UAV (_{m},y_{m}_{1} cos_{u}, r_{1} sin_{u}, h_{2} cos_{m}, r_{2} sin_{m}_{u}_{m}

A Rician fading channel is described using two parameters: 1) Rician factor (_{LoS}^{2} + 2^{2}, where _{LoS}

and

The channel coefficients _{m}

where _{m}_{m}^{2}). The parameter _{1}|^{2} _{2}|^{2}, primary user

_{1} is the message of the primary user, _{1} denotes the power allocation factor for the primary user message, _{2} is the message of the secondary user, and _{2} denotes the power allocation factor for the secondary user message, with _{1} + _{2} ≤ 1 and _{1}, _{2}

In the receiver, the users employ the SIC technique. The SIC technique consists in decoding the strongest signal component first, which will be the signal of the primary user due to the power factor (_{1}) allocated by the UAV. By contrast, the remaining signals are treated as interference. Specifically, the primary user tries to decode its message by treating the secondary user’s message as noise. The more realistic signal-to-interference-plus-noise ratios (SINRs) at the primary user when we consider non-ideal conditions, such as RHI, can be expressed as

where ^{2} denotes the signal-to-noise ratio (SNR) at the UAV, and

When SIC is employed by the secondary user, the process occurs successively until the secondary user decodes its respective message. First, the secondary user tries to decode the primary user’s message by treating its message as noise and then removes the message from his observation successively. It is worth noting that perfect SIC is difficult to happen in practice. Then, as a result of the ipSIC at the users, a minimal error in the first detection will cause large errors due to the recursive characteristics of the process. Based on the above, the more realistic SINR at the secondary user when we consider non-ideal conditions, such as RHI and ipSIC, can be expressed as

where ε (0 ≤ ε ≤ 1) denotes the error propagation factor that models the impact of ipSIC. When ε = 0, perfect SIC is assumed, while ε = 1 reflects the worst-case scenario.

Under this consideration, the instantaneous data rate achieved by the primary user can be written as

The achievable rate by the secondary user can be expressed as

By definition, the outage event can occur when the rate provided to any user is not enough to decode their data flow or the data flow of the weaker users. Based on this, we investigate the outage probability of received messages to characterize the link-level performance for the users in UAV-NOMA networks with non-ideal conditions, such as the effect of RHI and ipSIC, as described below.

The outage probability achieved by the primary user and secondary user can be expressed, respectively, as

and

where

In turn, substituting (5) and (7) into (9), the outage probability of the primary user can now be expressed as

Substituting (6) and (8) into (10), the outage probability of the secondary user can be rewritten as

The

Structure of the

Design the initial parameters.

Calculate the position of the UAV and users.

Model the fading based on Rician Distribution.

Generate the channel gain between UAV and users.

Analyze system performance using as metrics the instantaneous achievable rate and outage probability.

The included front-end script allows anyone to experiment with the model without a deep knowledge of Python. The package provides the capability to exploit the main characteristics of the transmission model in which the UAV is used as an aerial base station. In the system, data is forwarded to users using the NOMA technique. To simulate a more realistic scenario, the effects of hardware impairments and imperfect SIC are assumed. In addition, it allows us to explore new scenarios, such as cooperative communication, full-duplex communication, and propose methodologies to improve system performance, such as energy allocation policies, trajectory optimization, energy harvesting, decoding order, and channel estimation.

As shown in

Specifically, the

random_position_uav: this function provides a UAV position based on a 3D Cartesian plane due to the mobility and height of the UAV.

random_position_users: this function generates the position of the users based on a 2D Cartesian plane.

fading_rician: this function generates the parameters to model the fading based on Rician distribution to model the fading considering LoS effects.

generate_channel: this function calculates the specific distance between the users and the UAV, the small-scale fading, large-scale fading, and finally, it generates the channel coefficients. The channel gains are sorted to identify the primary user and secondary user.

The second module,

calculate_instantaneous_rate_primary: this function calculates the achievable rate of the primary user. It calculates the SINR experienced by the primary user and based on the result, generates the achievable rate under non-ideal conditions of RHI.

calculate_instantaneous_rate_secondary: following the NOMA principles, this function returns the achievable rate of the secondary user under non-ideal conditions of RHI and ipSIC.

average_rate: this function provides the average achievable rate of the system.

outage_probability: from the obtained data about the user’s rate, this function returns the system outage probability, the outage probability of the primary user, and the outage probability of the secondary user.

The

Table provided by the front-end script when using the parameters shown in

Plot of outage probability provided by the front-end script when using the parameters shown in

Plot of achievable rate provided by the front-end script when using the parameters shown in

An example simulation was executed with the parameters shown in

Simulations parameters for the results shown in

SIMULATION PARAMETERS | VALUE | SIMULATION PARAMETERS | VALUE |
---|---|---|---|

Monte Carlo samples | 50000 | Target Rate Secondary User | 0.5 |

Power LoS | 2.0 | Residual Hardware Impairments | 0.05 |

Rician Factor | 15.0 | Residual Imperfect SIC | 0.05 |

Pathloss Exponent | 2.2 | Power coefficient of the Primary User | 0.8 |

Radius UAV | 2.0 | Power coefficient of the Secondary User | 0.2 |

Radius Users | 15.0 | Starting SNR in dB | 10 |

UAV Height | 20.0 | Finishing SNR in dB | 60 |

Target Rate Primary User | 0.5 | Seed for pseudo-random number generator | 123 |

$ uavnoma --seed 123 -s 50000 -p 2 -f 15 -l 2.2 -r 2 -ur 15 -uh 20 -t1 0.5 -t2 0.5 -hi 0.05 -si 0.05 -p1 0.8 -p2 0.2 --snr-min 10 --snr-max 60

The

To evaluate the impact of the outage probability,

All functions have been unit-tested for functionality and usability. Each of the simulation parameters was tested by providing a range of valid and invalid inputs and examining the results obtained. Additionally, a regression test is performed on the

Any system capable of running Python ≥ 3.8.

Python 3.8, or higher.

numpy

matplotlib

pandas

tabulate

argparse

When the package is installed in development mode, the required dependencies/plugins are also installed.

The software was created by Brena Lima and Nuno Fachada.

English.

The functions in

Users can request support by opening an issue on GitHub.

This work is supported by Fundação para a Ciência e a Tecnologia under Grant No.: UIDB/04111/2020 (COPELABS).

The authors have no competing interests to declare.