Published 2025 | Version 1.0.0
Software Open

Multi-Beam LEO Satellite Beam Hopping Framework

  • 1. TU Wien
  • 2. ROR icon Institut Superieur de l'Aeronautique et de l'Espace (ISAE-SUPAERO)
  • 3. ROR icon National Institute of Informatics
  • 4. ROR icon The University of Tokyo

Description

Multi-Beam LEO Satellite Beam Hopping Framework

Python code to simulate multi-beam LEO satellite communication system with different beam hopping mechanisms.

With this Python code, the results from the paper can be reproduced and results with altered parameters can be produced and plotted. The code also contains the result data used to generate the figures in the journal paper.

Technical details

Files

  • results folder: contains simulation results saved as JSON files. New results are saved here if no other folder is specified. The saved result files are necessary to run plotResults.py.
  • simulation.py: run simulations.
  • plotResults.py: plot simulation results saved in results folder.
  • beamHoppingPattern.py: implementation of beam hopping algorithms.
  • networkGeometry.py: create satellite and user positions and set beam centers.
  • params.py & params.json: simulation parameters.
  • channel.py: functions related to the modeling of wireless transmission channel. Contains functions to calculate free space path loss, atmospheric loss, Rician fading, and array steering vector.
  • powerConsumption.py: implementation of power consumption model.
  • precoder.py: implementation of digital and analog precoder.
  • resourceAllocation.py: cell association and user scheduling functions.
  • utils.py: helper functions.
  • requirements.txt: requirements file to set up Python environment.

Required Packages

The code has been tested with Python 3.12, the dependencies are listed in requirements.txt.
Here is a brief overview of the usage of the various libraries:

  • JSON: save parameters and results in JSON files
  • NumPy: use of NumPy arrays for calculations
  • matplotlib.pyplot: plot results
  • itur: calculate atmospheric losses according to ITU recommendations
  • astropy.units: required for itur use
  • itertools: generate beam hopping patterns
  • scipy.stats: used to calculate confidence interval for solution plots
  • time: used to time the simulation duration

Additional Documentation

The code was used to produce the results in:
@ARTICLE{fastenbauer,
      title={LEO Satellite Beam Hopping for Power Consumption Minimization at Different Elevation Angles}, 
      author={Fastenbauer, Agnes and El Hadfi, Younes and Kaneko, Megumi and Svoboda, Philipp and Rupp, Markus},
      year={2025},
      journal={IEEE Open Journal of the Communications Society}
}

The paper shows and analyzes the simulation results.

How to Use

Run Simulation and Plot Results

Run simulation.py to calculate and save simulation results.

Run plotResults.py to plot saved results.

Change Simulation Parameters

Use params.py to change simulation parameters such as:

  • satellite altitude in h_satellite
  • carrier frequency in center_frequency
  • transmission bandwidth in bandwidth_Hz
  • number of antenna elements per beam in n_antenna_x and n_antenna_y
  • antenna array gain in antenna_gain_dB
  • transmit power in subband_transmit_power_W
  • receiver noise figure noise_figure_dB

The footprint size of the satellite serving area and the number of beams generated by the antenna array can be adjusted in the simulation.py file in the simulation functions by setting r_footprintn_beams, n_beams_x, and n_beams_y to the desired footprint radius in meters.

Use of Code

When using code, please cite:
@ARTICLE{fastenbauer,
      title={LEO Satellite Beam Hopping for Power Consumption Minimization at Different Elevation Angles}, 
      author={Fastenbauer, Agnes and El Hadfi, Younes and Kaneko, Megumi and Svoboda, Philipp and Rupp, Markus},
      year={2025},
      journal={IEEE Open Journal of the Communications Society}
}

Licenses

The code is licensed under MIT, the data is licensed under CC-BY.

Acronyms

ITU: International Telecommunications Union

LEO: Low Earth Orbit

 

Files

beamHopping.zip

Files (2.8 GiB)

Name Size
md5:8e5720296dbe1a0ae9ce52264fab8a10
2.8 GiB Preview Download