A new open source tool that simulates the telecommunication channel between an Earth ground station and an orbiting satellite.
Telecommunication systems are affected by a plethora of signal impairments imposed by the wireless channel. The development, debugging and evaluation of such systems should be performed under realistic channel conditions, that are difficult to be simulated on the lab. This prerequisite becomes even more crucial in the case of satellite missions. For that reason, different telecommunication channel simulation projects have made their appearance over the years. Unfortunately, most of these alternatives are proprietary and provided under expensive licenses. On the other side lies GNU Radio, the leader open source solution for signal processing and software defined radios development. GNU Radio already provides a vast variety of signal processing and channel estimation blocks, that however cannot be used thoroughly for the purposes of a space telecommunication channel.
The gr-leo project aspires to fill this gap with the implementation of a GNU Radio module that simulates the communication of an Earth-Satellite system and a variety of impairments that may be induced from the space channel. For example, frequency shift due to the Doppler effect, the variable free-space path loss due to the satellite’s trajectory or the atmospheric effects (i.e atmospheric gases and precipitation) along the path, are proven to pose significant degradation on the quality of the communication.
In terms of implementation, the gr-leo is written in C++ as a GNU Radio Out-of-Tree module and follows the notion of block-programming. More specifically, it divides its architecture into different processing blocks that simulate each one of the different components of the space channel communication system. These blocks, that are also available through the GNU Radio Companion, can be combined appropriately with the existing built-in processing blocks of GNU Radio.
Using the gr-leo module and the GNU Radio Companion integrated blocks, one is able to:
- Define a satellite and describe its orbit by giving a valid TLE
- Define a tracker by providing its coordinates, operating frequencies, antenna types and an observation time-frame
- Define the communication channel model and specify the desired attenuation types to be simulated
Then, the channel model block will attenuate the input signal according to the defined channel model and the orbit of the satellite described by the TLE.
Some interesting use cases of the gr-leo simulator include the mission planning of satellites, the performance characterization of decoders and the validation of TLEs or frequency drift. Below, there is an example flow graph that combines gr-leo and the UPSAT transmitter, included in the gr-satnogs module.
Of course that is only one example of the many different applications that gr-leo might be proven helpful. Anyone interested in this project is more than welcome to take a visit on the public repo , the wiki and the documentation pages and share this experience with the community!