Radio in the clouds. Multichannel GPS simulator

The speeds of networks and the computing power of computers are constantly and rapidly growing. This makes some applications from the radio world feasible and economical. Speaking in philosophical terms, quantity turns into quality, and hitherto unseen technologies appear at the intersection of industries. Today we will not only tell you about one of them, each of you will be able to try it out on your own.

We recently had the good fortune to launch a multichannel GPS simulator and test it on the device of our esteemed colleagues. Read more about this in the article “Multichannel GPS Signal Simulator on RFSoC”. In short – we took the existing open source GPS simulator from prof. Takuji ebinuma, made it multichannel and sent it to HF using RFSoC. And it worked!

We need a multichannel simulator to debug algorithms for jamming reception of satellite navigation signals. One of such algorithms is described by us in this article. To debug algorithms, we need not only satellite signals, but also interference coming from different directions and having different levels. The interference samples must be added to the satellite signal samples with the specified level difference.

The simulator configuration is specified by a JSON file. Let’s analyze the simplest configuration of the simulator.

{
  "Gps": {
    "Enable": true,
    "Snr_dbhz": 50
  },
  "JammingSources": [
  ],
  "Receiver_llh": [
    59,
    30,
    350
  ],
  "SamplesFreq_hz": 5000000,
  "Duration_s": 10,
  "Antennas_m": [
    [
      0,
      1,
      0
    ]
  ]
}
  • “Gps” – signal type, now it is only GPS, the signal is enabled (“Enable”: true) and its signal-to-noise ratio (SNR) is set to 50 dB-Hz;

  • “JammingSources” – description of sources of interference, we will consider later;

  • “Receiver_llh” – geographic coordinates of the receiver;

  • “SamplesFreq_hz” – output signal sampling frequency in Hertz;

  • “Duration_s” – sample duration in seconds;

  • “Antennas_m” – description of the antenna array geometry in the form of antenna coordinates in meters. For ease of consideration, one antenna is specified in the file above.

We used the simulator to create model signals and praise its developers. We were somewhat depressed by the need for a powerful computer. The simulator for one noise and one channel loads about one core of a good processor to work in real time. We have to simulate algorithms for eight-element antenna arrays with a lot of interference, which resulted in a considerable waiting time for the simulator results.

Then, by the efforts of @catscury, the simulator was transferred to the cloud – cloud.amungo-navigation.com… The site interface is simple and intuitive. Here you need to register and generate the signal file (s) by specifying the simulator configuration file. The configuration file is available in the online editor. It can be saved so that it can be loaded into the system in the next session. In the event of an error in the configuration file or in case of exceeding the simulator limits, prompts are displayed. When the configuration is filled in correctly, you need to click the “Generate Gps” button. After a long (be patient) start, the download of files begins.

Having received a file with a signal with the bin extension, you can check it software receiver from prof. Dennis akos… You can also upload the file to any suitable SDR card for broadcasting.

Now let’s look at how to set the parameters that make this cloud simulator unique. The antenna array is set like this:

"Antennas_m": [
    [
      0,
      0,
      0
    ],
    [
      1,
      0,
      0
    ],
    [
      0,
      1,
      0
    ]
  ]

Here are the coordinates of the antennas in meters relative to the coordinates of the receiver specified in the Receiver_llh field. Recall that these are geographic coordinates in the format .

If no significant level of interference is specified, the simulator output files can be used to generate at high frequency for satellite orientation testing purposes, as described here. You can also use these files to test high precision RTK positioning systems. For a file generated without interference, the software receiver produces the following picture:

For the interference, its coordinates and power are set. Coordinates are specified in geographic (“PositionType”: “llh”) or in Cartesian form (“PositionType”: “neu”) in meters relative to Receiver_llh. Power is specified on a linear scale of voltages, like amplitude. This means that to increase the interference by 20 dB, you need to increase the value 10 times. Roughly speaking, this is the voltage or field strength, which is inversely proportional to the distance from the radiation source. The simulator takes into account the signal attenuation in accordance with the distance to the receiver. From this point of view, setting the noise power by the amplitude is quite convenient. If we increased the distance to the source of interference by N times, then we need to increase the power by N times if we want the interference power at the input of the receiver to remain the same.

  "JammingSources": [
    {
      "AmplitudeGain": 5,
      "PositionType": "llh",
      "Position": [
        60,
        30.5,
        450
      ]
    },
    {
      "AmplitudeGain": 5,
      "PositionType": "neu",
      "Position": [
        1000,
        -3000,
        50
      ]
    }
  ],

In the above configuration snippet, two interferences are set with the same power 14 dB above the noise. By the way, with this value of the interference used by us software receiver still detects the signal of satellites, albeit with a decrease in SNR. The coordinates of the first interference are given in geographic form, the second in Cartesian North-East-Up in meters. The internal parameters of the jammed receiver are presented below. To cope with larger interference, you will need algorithms like the ones we are looking at in this article.

It should be noted that the signal is stored in integer complex form with 16 bits per component. The above software receiver “out of the box” is tuned to such a signal with a sampling rate of 5 MHz. You just need to specify the name of the file with the signal at the input.

Now the simulator has some limitations. For example, you cannot set a large number of channels and interference and a long sampling duration. This is done so that we do not go down the drain due to “cloud” accounts.

We ask everyone who starts using the cloud simulator to inform us about problems, problems and their wishes. We know a thing or two about radio, but cloud newbies, we still need to learn from the experts. Any advice is appreciated.

Similar Posts

Leave a Reply Cancel reply