Data interpretation system and method based on channel simulator

Through the data interpretation method based on the channel simulator, the problem of lack of dynamic visualization and insufficient accuracy in satellite communication channel simulation is solved, and the precise modeling and dynamic display of the channel are realized, which improves design efficiency and accuracy.

CN119628713APending Publication Date: 2025-03-14CHINA ELECTRONICS TECH GRP NO 7 RES INST
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411705036.X
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-11-26
Publication Date
2025-03-14

AI Technical Summary

Technical Problem

The existing technology lacks dynamic visual display in satellite communication channel simulation, the learning curve is steep, the function is modular, the channel modeling accuracy is insufficient, and the customization capability is limited.

Method used

Through the data interpretation method based on the channel simulator, including simulation module, reading and parsing module, visualization module and file storage module, satellite toolkit data is obtained for secondary development, channel simulation and results are read, parsed and visualized.

Benefits of technology

Accurate modeling and dynamic visual display of satellite communication channels are realized, improving the accuracy and design efficiency of channel simulation, and reducing the learning curve and cost.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119628713A_ABST
    Figure CN119628713A_ABST
Patent Text Reader

Abstract

The invention relates to the field of circuit modulation, in particular to a data interpretation system and method based on a channel simulator, and the system comprises a satellite toolkit secondary development module, a channel simulation module, a reading module, an analysis module and a visualization module. A satellite toolkit secondary development module is used for acquiring satellite toolkit data and performing secondary development on the satellite toolkit data to obtain satellite toolkit scene data; then, the channel simulation module performs channel simulation according to the satellite toolkit scene data to obtain a channel simulation result; and finally, reading, analyzing and visualizing a channel simulation result so as to accurately evaluate the influence of path loss, Doppler, noise and the like of a real channel on the signal. And displaying the dynamic tracks of the satellite orbit and the communication link in real time.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the field of modulation circuits, and more specifically, to a data interpretation system and method based on a channel simulator. Background Art

[0002] In satellite communications, signals are affected by factors such as the atmosphere, terrain, and weather during transmission, resulting in complex and changeable channel characteristics. In order to simulate these complex channel conditions as accurately as possible on the ground, satellite channel simulators have emerged. Satellite channel simulators enable researchers to test and optimize satellite communication systems in the laboratory by reproducing various interference and attenuation factors in the satellite communication environment. This simulator provides an important means for the development and verification of satellite communication equipment, solves the problem of field testing limited by time and location, and effectively improves the design efficiency and performance evaluation capabilities of satellite communication systems. Using a channel simulator to simulate satellite channels can achieve accurate modeling of channels. It can simulate various actual conditions of satellite communication channels in detail, such as multipath effects, fading, noise, interference, etc. And it can simulate different channel models (Rayleigh channels, Rice channels,) and complex satellite communication environments such as multi-orbit and multi-satellite-to-ground communications. Using a channel simulator to simulate satellite communications can obtain satellite channel transmission characteristic data that is closer to the real scene, but lacks dynamic visualization of satellite communication scene display.

[0003] The prior art discloses a method for simulating seamless switching of satellites between multiple orbits and multiple satellites and ground in the Ka band using a satellite toolkit. First, the satellite and orbit parameters need to be set, and the antenna parameters, ground vehicle parameters, and ground station receiving end parameters are set at the same time. The antenna parameters include transmission power, antenna gain, directivity, etc. In the Ka band, a higher gain antenna is required to support long-distance high-frequency communication. The receiving end parameters include receiving antenna gain and receiver sensitivity. After setting the relevant parameters, it is necessary to select a propagation model, and finally analyze the link and interference. Using the satellite toolkit for satellite communication simulation can intuitively display the dynamic trajectories of multiple satellites on different orbits, and intuitively display the communication links between satellites and ground stations and ground vehicles, and monitor various changes in the links in real time. Using the satellite toolkit to model the multi-orbit and multi-satellite channels in the Ka band can combine the satellite orbit simulation, communication link analysis, and environmental factor modeling of the satellite toolkit to comprehensively evaluate the performance of the satellite communication system in the Ka band. Through link budget analysis, time-varying performance evaluation, multi-satellite switching simulation, and meteorological impact simulation, the satellite toolkit provides powerful tool support for the design and optimization of Ka-band satellite communication systems. However, this method has disadvantages such as steep learning curve, modular charging of functions, insufficient channel modeling accuracy, and limited customization capability. Summary of the invention

[0004] The purpose of the present invention is to disclose a data interpretation method and system based on a channel simulator with better visualization effect.

[0005] In order to achieve the above object, the present invention provides a data interpretation method based on a channel simulator, comprising: a simulation module and a reading and parsing module;

[0006] Simulation module: obtain satellite toolkit data, conduct secondary development on the satellite toolkit data, obtain satellite toolkit scene data, and perform simulation to obtain channel simulation results;

[0007] Reading and parsing module: reads and parses the channel simulation result data to obtain the parsed channel simulation result data.

[0008] Furthermore, it also includes a visualization module and a file saving module. The visualization module is used to visualize the analyzed channel simulation result data; the file saving module is used to save the visualization result.

[0009] In addition, the present invention also provides a data interpretation method based on a channel simulator, which is applied to the above-mentioned data interpretation system based on a channel simulator, comprising:

[0010] S1: Obtain satellite toolkit data, perform secondary development on the satellite toolkit data, obtain satellite toolkit scenario data, perform simulation, and obtain channel simulation results;

[0011] S2: Read and analyze the channel simulation result data to obtain analyzed channel simulation result data;

[0012] Furthermore, the method further includes step S3 and step S4, wherein S3: performing visualization according to the analyzed channel simulation result data; and S4: saving the visualization result.

[0013] Furthermore, in step S1, secondary development of the satellite toolkit data includes: secondary development of the satellite toolkit based on the QT plug-in in VisualStudio2022, realizing the control of the satellite toolkit and the simulation scene operation functions, and using the satellite toolkit to simulate the satellite communication scenario of seamless switching between multiple orbits and multiple satellites in the Ka band.

[0014] Furthermore, in step S1, the satellite toolkit data is secondary developed to obtain satellite toolkit scene data including:

[0015] The secondary development of satellite toolkit data is achieved by creating a custom control class to call the application programming interface of the satellite toolkit; the class name of the custom control class is CObjectModelHelper, where the API for the secondary development of satellite toolkit data is a set of interfaces for programming interaction with the satellite toolkit software, allowing developers to perform secondary development of satellite toolkit data through code. The API provided by the satellite toolkit is accessed through a variety of programming languages, and the interface is used to control various functions of the secondary development of satellite toolkit data, including: creating satellites, ground stations, sensors, controlling simulation processes, and obtaining simulation data;

[0016] The main process of controlling the satellite toolkit is as follows:

[0017] Initialize the satellite toolkit configuration environment:

[0018] Initialize the satellite toolkit object in the constructor of the CObjectModelHelper class and create a satellite toolkit instantiation object;

[0019] Create or load a simulation scene:

[0020] Call the satellite toolkit built-in function NewScenario() to create a new simulation scenario, or load an existing scenario file through the function loadScenario();

[0021] Create simulation objects;

[0022] Use CreateSatellite(), CreateFacility(), and CreateSensor() to create simulation objects such as satellites, ground stations, and sensors;

[0023] Control simulation:

[0024] Control the running state of the simulation through PlayForward(), Pause(), PlayBackward() and Rewind();

[0025] Close the simulation scene

[0026] After the simulation is completed, close the current scene and release resources through CloseScenario().

[0027] Furthermore, in step S2, it includes:

[0028] The channel simulation results are stored in binary files in different bases. The files in different bases are read in a serialized form, and the relevant information of each link is stored in a two-dimensional structure. The reading of the channel simulation results is realized by designing two file classes, namely the top-level class CoefficientBinFile and the link class LinkDataBlock.

[0029] The CoefficientBinFile class is a high-level management class that manages data blocks of multiple links and provides the function of reading and writing these data from binary files; the LinkDataBlock class is a specific data block for each link, storing detailed simulation data of a single link, including: number of antennas, path loss, multipath, and delay, etc.); each CoefficientBinFile instance object contains multiple LinkDataBlock link objects;

[0030] The CoefficientBinFile class manages multiple link data through LinkDataBlock;

[0031] The CoefficientBinFile class first initializes each member variable, then writes and reads data. When the class life cycle ends, all dynamically allocated memory is released in the destructor. Data writing mainly serializes its internal state into the file in binary form to ensure efficient data storage and accurate reconstruction; by traversing the dynamic array, the multidimensional data block is gradually serialized; data reading reads binary data from the file and deserializes it to restore the internal state of the class; dynamic arrays and objects are dynamically allocated memory during the reading process, and the state of the object is reconstructed by calling the member method of the object;

[0032] The LinkDataBlock class consists of a read function readFromFileStream() and a write function writeToFileStream() for reading each link data information; the reading of the channel simulator results is realized by calling the member functions of the LinkDataBlock class; the memory management of the LinkDataBlock class is to release the three-dimensional array pointer by using delete[] in the destructor for triple loop; for the one-dimensional array, delete[] is directly used for release;

[0033] The LinkDataBlock class uses two functions to implement binary file writing and reading; the writeToFileStream() function implements binary file writing, and the readFromFileStream() function implements binary file reading;

[0034] The binary file reading process is:

[0035] First, open a binary file through the input stream ifstream(), read the basic data types from the binary file and initialize the member variables. The member variables mainly include the path loss of the link, the transmission coordinates and receiving coordinates of each sampling point in each link, the shadow data of the link, Doppler data, and large delay data;

[0036] Then construct and initialize the channel enable state variable to record the enable state of the channel;

[0037] Dynamically allocate memory and read data from member variables;

[0038] Read additional control data;

[0039] Internal logic of CoefficientBinFile class and linkDataBlock class:

[0040] The relationship between the CoefficientBinFile class and the linkDataBlock class is a one-to-many relationship, that is, CoefficientBinFile manages link data blocks by holding pointers to multiple linkDataBlocks to achieve more complex data processing tasks; the CoefficientBinFile class contains a pointer linkDataBolcks pointing to an array of linkDataBlock objects; therefore, the CoefficientBinFile object contains multiple linkDataBlock objects, forming a one-to-many relationship; the CoefficientBinFile class is responsible for managing the life cycle of linkDataBlock objects, including object creation, destruction, and data reading and writing operations;

[0041] Functions of the CoefficientBinFile class: Responsible for the reading and writing of binary files, including controlling and managing the data structure of the entire file, including: the number of base stations, the number of users, the number of links, and other related global information; at the same time, it is also responsible for access management of multiple link data blocks, namely linkDataBlock; when operating the file, CoefficientBinFile calls the access operation of each link in turn by traversing the linkDataBlock array;

[0042] Functions of linkDataBlock class: Each linkDataBlock object represents an independent link data block, storing specific link information; provides independent binary file reading and writing methods, used to write its own data to or read from binary files;

[0043] When writing a file, CoefficientBinFile first writes the global information to the file; then, it traverses all linkDataBlock objects and calls the writeToFileStream() method of each object to write the link data to the file in sequence;

[0044] When reading a file, CoefficientBinFile first reads global information from the file and allocates memory according to the number of links; then, it calls the readFromFileStream() method of linkDataBlock in sequence to read the specific data of each link from the file.

[0045] Further, in step S2, including

[0046] Filter out the data that meets the requirements and distinguish the data that meets the requirements from the data that does not meet the requirements with different colors; the analysis is performed in the child thread, and after filtering out the data that meets the requirements in the background, the data is sent to the main thread; first calculate the signal strength based on the obtained path loss data, filter out the data that meets the requirements by the signal strength, and finally mark the data that does not meet the requirements in red, and the data that meets the requirements is still black. The following is the calculation formula for the received signal strength:

[0047] RSS=Pt+Gt+Gr-Lc-Lbf

[0048] Where RSS is the received signal strength, Pt is the transmitter signal power, Gt is the transmitting antenna gain, Gr is the receiving antenna gain, Lc is the cable loss, and Lbf is the free space attenuation, i.e. the path loss. Since the cable loss is small, Lc is taken as zero during calculation. Pt and Gt are input by the user, and the path loss is obtained by the file reading module in the previous step.

[0049] The parsing process is as follows: first, create a child thread object Judgement in the main thread, and then use the setData() function in the main thread to send the input Pt, Gt, Gr values ​​and the two-dimensional structure storing link information to the child thread;

[0050] Next, the main thread starts the child thread by calling the Judgement::start() function, at which time the child thread starts working; the run function in the child thread starts to execute, and the run function mainly calculates the RSS of each sampling point according to the received signal strength calculation formula. When the RSS is greater than the receiver sensitivity, the data is valid data; when the RSS is less than the receiver sensitivity, the data is invalid data; the child thread will traverse the data of all links, and after processing a link each time, the current processing progress percentage will be sent to the main thread through the emit function; the main thread and the child thread are connected through the signal and slot mechanism. Every time the child thread sends a progress signal, the function connected to the progress signal of the main thread will also be triggered at the same time, thereby realizing the continuous update of the progress. Finally, when all the data of the child thread is processed, the finish() function will be called, and the slot function of the interface update connected to the finish() function will also immediately update the interface to display the filtered valid link data.

[0051] Furthermore, in step S3, it includes:

[0052] Display the global basic information of the data and all the information of all sampling points of each link by calling the member functions in the LinkDataBlock class;

[0053] The following shows the basic global information:

[0054] First, a global variable is created to save link data in the form of a two-dimensional structure. The main members of the one-dimensional structure are: path loss data, x, y, z coordinates of the transmitter, x, y, z coordinates of the receiver, longitude and latitude of the transmitter and receiver, and altitude data. The one-dimensional structure mainly contains 13 variables. Through the use of the two-dimensional structure, all sampling point information of each link is saved. After saving, the CoefficientBinFile class member function is called to read the basic information of the result file, which is displayed in the text box of the interface. Then, the CoefficientBinFile object is released in the program.

[0055] The process of displaying path loss and spatial data is as follows:

[0056] First, read the file path, instantiate the read file into a CoefficientBinFile object, and then clear the data in the table to parse the data multiple times; read the link information and set the maximum number of columns and headers in the table, and then set the maximum number of rows in the table, where the maximum number of columns in the table is the number of links * 13, and the maximum number of rows in the table is the maximum number of sampling points for each link; finally, traverse the information of all sampling points contained in each link, and display them in the table in the interface in different colors.

[0057] Furthermore, in step S4, it includes: exporting the data in the form of txt or csv; and clearing the data, clearing all the information displayed on the interface, including the file path that has been read, the basic information of the file that has been displayed, and the channel data that has been displayed.

[0058] Compared with the prior art, the technical solution of the present invention has the following beneficial effects:

[0059] The present invention uses a satellite toolkit secondary development module to obtain satellite toolkit data, perform secondary development on the satellite toolkit data, and obtain satellite toolkit scene data; then a channel simulation module performs channel simulation according to the satellite toolkit scene data to obtain a channel simulation result; finally, the channel simulation result is read, analyzed, and visualized, thereby accurately evaluating the impact of path loss, Doppler, noise, etc. of the real channel on the signal; and real-time display of the dynamic trajectory of the satellite orbit and the communication link. BRIEF DESCRIPTION OF THE DRAWINGS

[0060] Figure 1 A block diagram of a data interpretation system based on a channel simulator according to Embodiment 1;

[0061] Figure 2 This is a flow chart of the data interpretation method based on the channel simulator described in Example 3; DETAILED DESCRIPTION

[0062] The drawings are for illustrative purposes only and should not be construed as limiting the present patent;

[0063] The technical solution of the present invention is further described below in conjunction with the accompanying drawings and embodiments.

[0064] Embodiment 1:

[0065] This embodiment provides Figure 1 The data interpretation system based on the channel simulator shown comprises:

[0066] Simulation module and reading and parsing module;

[0067] Simulation module: obtain satellite toolkit data, conduct secondary development on the satellite toolkit data, obtain satellite toolkit scene data, and perform simulation to obtain channel simulation results;

[0068] Reading and parsing module: reading and parsing the channel simulation result data to obtain the parsed channel simulation result data;

[0069] This embodiment uses the satellite toolkit secondary development module to obtain satellite toolkit data, perform secondary development on the satellite toolkit data, and obtain satellite toolkit scenario data; then the channel simulation module performs channel simulation according to the satellite toolkit scenario data to obtain channel simulation results; finally, the channel simulation results are read, analyzed, and visualized, so as to accurately evaluate the impact of the path loss, Doppler, noise, etc. of the real channel on the signal; and display the dynamic trajectory of the satellite orbit and communication link in real time.

[0070] Embodiment 2:

[0071] This embodiment further discloses the following on the basis of the first embodiment:

[0072] Furthermore, it also includes a visualization module and a file saving module. The visualization module is used to visualize the analyzed channel simulation result data; the file saving module is used to save the visualization result.

[0073] This embodiment uses the satellite toolkit secondary development module to obtain satellite toolkit data, perform secondary development on the satellite toolkit data, and obtain satellite toolkit scenario data; then the channel simulation module performs channel simulation according to the satellite toolkit scenario data to obtain channel simulation results; finally, the channel simulation results are read, analyzed, and visualized, so as to accurately evaluate the impact of the path loss, Doppler, noise, etc. of the real channel on the signal; and display the dynamic trajectory of the satellite orbit and communication link in real time.

[0074] Embodiment three:

[0075] This embodiment provides Figure 2 The data interpretation method based on the channel simulator includes:

[0076] S1: Obtain satellite toolkit data, perform secondary development on the satellite toolkit data, obtain satellite toolkit scenario data, perform simulation, and obtain channel simulation results;

[0077] S2: Read and analyze the channel simulation result data to obtain analyzed channel simulation result data;

[0078] This embodiment uses the satellite toolkit secondary development module to obtain satellite toolkit data, perform secondary development on the satellite toolkit data, and obtain satellite toolkit scenario data; then the channel simulation module performs channel simulation according to the satellite toolkit scenario data to obtain channel simulation results; finally, the channel simulation results are read, analyzed, and visualized, so as to accurately evaluate the impact of the path loss, Doppler, noise, etc. of the real channel on the signal; and display the dynamic trajectory of the satellite orbit and communication link in real time.

[0079] Embodiment 4:

[0080] This embodiment further discloses on the basis of the third embodiment:

[0081] Furthermore, the method further includes step S3 and step S4, wherein S3: performing visualization according to the analyzed channel simulation result data; and S4: saving the visualization result.

[0082] Furthermore, in step S1, secondary development of the satellite toolkit data includes: secondary development of the satellite toolkit based on the QT plug-in in VisualStudio2022, realizing the control of the satellite toolkit and the simulation scene operation functions, and using the satellite toolkit to simulate the satellite communication scenario of seamless switching between multiple orbits and multiple satellites in the Ka band.

[0083] Furthermore, in step S1, the satellite toolkit data is secondary developed to obtain satellite toolkit scene data including:

[0084] The secondary development of satellite toolkit data is achieved by creating a custom control class to call the application programming interface of the satellite toolkit; the class name of the custom control class is CObjectModelHelper, where the API for the secondary development of satellite toolkit data is a set of interfaces for programming interaction with the satellite toolkit software, allowing developers to perform secondary development of satellite toolkit data through code. The API provided by the satellite toolkit is accessed through a variety of programming languages, and the interface is used to control various functions of the secondary development of satellite toolkit data, including: creating satellites, ground stations, sensors, controlling simulation processes, and obtaining simulation data;

[0085] The main process of controlling the satellite toolkit is as follows:

[0086] Initialize the satellite toolkit configuration environment:

[0087] Initialize the satellite toolkit object in the constructor of the CObjectModelHelper class and create a satellite toolkit instantiation object;

[0088] Create or load a simulation scene:

[0089] Call the satellite toolkit built-in function NewScenario() to create a new simulation scenario, or load an existing scenario file through the function loadScenario();

[0090] Create simulation objects;

[0091] Use CreateSatellite(), CreateFacility(), and CreateSensor() to create simulation objects such as satellites, ground stations, and sensors;

[0092] Control simulation:

[0093] Control the running state of the simulation through PlayForward(), Pause(), PlayBackward() and Rewind();

[0094] Close the simulation scene

[0095] After the simulation is completed, close the current scene and release resources through CloseScenario().

[0096] Furthermore, in step S2, it includes:

[0097] The channel simulation results are stored in binary files in different bases. The files in different bases are read in a serialized form, and the relevant information of each link is stored in a two-dimensional structure. The reading of the channel simulation results is realized by designing two file classes, namely the top-level class CoefficientBinFile and the link class LinkDataBlock.

[0098] The CoefficientBinFile class is a high-level management class that manages data blocks of multiple links and provides the function of reading and writing these data from binary files; the LinkDataBlock class is a specific data block for each link, storing detailed simulation data of a single link, including: number of antennas, path loss, multipath, and delay, etc.); each CoefficientBinFile instance object contains multiple LinkDataBlock link objects;

[0099] The CoefficientBinFile class manages multiple link data through LinkDataBlock;

[0100] The CoefficientBinFile class first initializes each member variable, then writes and reads data. When the class life cycle ends, all dynamically allocated memory is released in the destructor. Data writing mainly serializes its internal state into the file in binary form to ensure efficient data storage and accurate reconstruction; by traversing the dynamic array, the multidimensional data block is gradually serialized; data reading reads binary data from the file and deserializes it to restore the internal state of the class; dynamic arrays and objects are dynamically allocated memory during the reading process, and the state of the object is reconstructed by calling the member method of the object;

[0101] The LinkDataBlock class consists of a read function readFromFileStream() and a write function writeToFileStream() for reading each link data information; the reading of the channel simulator results is realized by calling the member functions of the LinkDataBlock class; the memory management of the LinkDataBlock class is to release the three-dimensional array pointer by using delete[] in the destructor for triple loop; for the one-dimensional array, delete[] is directly used for release;

[0102] The LinkDataBlock class uses two functions to implement binary file writing and reading; the writeToFileStream() function implements binary file writing, and the readFromFileStream() function implements binary file reading;

[0103] The binary file reading process is:

[0104] First, open a binary file through the input stream ifstream(), read the basic data types from the binary file and initialize the member variables. The member variables mainly include the path loss of the link, the transmission coordinates and receiving coordinates of each sampling point in each link, the shadow data of the link, Doppler data, and large delay data;

[0105] Then construct and initialize the channel enable state variable to record the enable state of the channel;

[0106] Dynamically allocate memory and read data from member variables;

[0107] Read additional control data;

[0108] Internal logic of CoefficientBinFile class and linkDataBlock class:

[0109] The relationship between the CoefficientBinFile class and the linkDataBlock class is a one-to-many relationship, that is, CoefficientBinFile manages link data blocks by holding pointers to multiple linkDataBlocks to achieve more complex data processing tasks; the CoefficientBinFile class contains a pointer linkDataBolcks pointing to an array of linkDataBlock objects; therefore, the CoefficientBinFile object contains multiple linkDataBlock objects, forming a one-to-many relationship; the CoefficientBinFile class is responsible for managing the life cycle of linkDataBlock objects, including object creation, destruction, and data reading and writing operations;

[0110] Functions of the CoefficientBinFile class: Responsible for the reading and writing of binary files, including controlling and managing the data structure of the entire file, including: the number of base stations, the number of users, the number of links, and other related global information; at the same time, it is also responsible for access management of multiple link data blocks, namely linkDataBlock; when operating the file, CoefficientBinFile calls the access operation of each link in turn by traversing the linkDataBlock array;

[0111] Functions of linkDataBlock class: Each linkDataBlock object represents an independent link data block, storing specific link information; provides independent binary file reading and writing methods, used to write its own data to or read from binary files;

[0112] When writing a file, CoefficientBinFile first writes the global information to the file; then, it traverses all linkDataBlock objects and calls the writeToFileStream() method of each object to write the link data to the file in sequence;

[0113] When reading a file, CoefficientBinFile first reads global information from the file and allocates memory according to the number of links; then, it calls the readFromFileStream() method of linkDataBlock in sequence to read the specific data of each link from the file.

[0114] Further, in step S2, including

[0115] Filter out the data that meets the requirements and distinguish the data that meets the requirements from the data that does not meet the requirements with different colors; the analysis is performed in the child thread, and after filtering out the data that meets the requirements in the background, the data is sent to the main thread; first calculate the signal strength based on the obtained path loss data, filter out the data that meets the requirements by the signal strength, and finally mark the data that does not meet the requirements in red, and the data that meets the requirements is still black. The following is the calculation formula for the received signal strength:

[0116] RSS=Pt+Gt+Gr-Lc-Lbf

[0117] Where RSS is the received signal strength, Pt is the transmitter signal power, Gt is the transmitting antenna gain, Gr is the receiving antenna gain, Lc is the cable loss, and Lbf is the free space attenuation, i.e. the path loss. Since the cable loss is small, Lc is taken as zero during calculation. Pt and Gt are input by the user, and the path loss is obtained by the file reading module in the previous step.

[0118] The parsing process is as follows: first, create a child thread object Judgement in the main thread, and then use the setData() function in the main thread to send the input Pt, Gt, Gr values ​​and the two-dimensional structure storing link information to the child thread;

[0119] Next, the main thread starts the child thread by calling the Judgement::start() function, at which time the child thread starts working; the run function in the child thread starts to execute, and the run function mainly calculates the RSS of each sampling point according to the received signal strength calculation formula. When the RSS is greater than the receiver sensitivity, the data is valid data; when the RSS is less than the receiver sensitivity, the data is invalid data; the child thread will traverse the data of all links, and after processing a link each time, the current processing progress percentage will be sent to the main thread through the emit function; the main thread and the child thread are connected through the signal and slot mechanism. Every time the child thread sends a progress signal, the function connected to the progress signal of the main thread will also be triggered at the same time, thereby realizing the continuous update of the progress. Finally, when all the data of the child thread is processed, the finish() function will be called, and the slot function of the interface update connected to the finish() function will also immediately update the interface to display the filtered valid link data.

[0120] Furthermore, in step S3, it includes:

[0121] Display the global basic information of the data and all the information of all sampling points of each link by calling the member functions in the LinkDataBlock class;

[0122] The following shows the basic global information:

[0123] First, a global variable is created to save link data in the form of a two-dimensional structure. The main members of the one-dimensional structure are: path loss data, x, y, z coordinates of the transmitter, x, y, z coordinates of the receiver, longitude and latitude of the transmitter and receiver, and altitude data. The one-dimensional structure mainly contains 13 variables. Through the use of the two-dimensional structure, all sampling point information of each link is saved. After saving, the CoefficientBinFile class member function is called to read the basic information of the result file, which is displayed in the text box of the interface. Then, the CoefficientBinFile object is released in the program.

[0124] The process of displaying path loss and spatial data is as follows:

[0125] First, read the file path, instantiate the read file into a CoefficientBinFile object, and then clear the data in the table to parse the data multiple times; read the link information and set the maximum number of columns and headers in the table, and then set the maximum number of rows in the table, where the maximum number of columns in the table is the number of links * 13, and the maximum number of rows in the table is the maximum number of sampling points for each link; finally, traverse the information of all sampling points contained in each link, and display them in the table in the interface in different colors.

[0126] Furthermore, in step S4, it includes: exporting the data in the form of txt or csv; and clearing the data, clearing all the information displayed on the interface, including the file path that has been read, the basic information of the file that has been displayed, and the channel data that has been displayed.

[0127] This embodiment realizes high-speed interpretation of channel data through the powerful functions of QT, as well as the use of signals, slots, and multi-threading mechanisms. It provides new ideas and reference solutions for the data interpretation of current channel simulators. In addition, the fast reading and writing of channel simulator data is realized by serializing the reading of data and deserializing the restoration of objects. According to the structural characteristics of the channel data, it is proposed to use a two-dimensional structure to store data, which greatly facilitates the subsequent signal processing and improves the efficiency of the design.

[0128] Obviously, the above embodiments of the present invention are merely examples for clearly illustrating the present invention, and are not intended to limit the embodiments of the present invention. For those skilled in the art, other different forms of changes or modifications can be made based on the above description. It is not necessary and impossible to list all the embodiments here. Any modifications, equivalent substitutions and improvements made within the spirit and principles of the present invention should be included in the protection scope of the claims of the present invention.

Claims

1. A data interpretation system based on a channel simulator, characterized in that: include: Simulation module and reading and parsing module; Simulation module: obtain satellite toolkit data, conduct secondary development on the satellite toolkit data, obtain satellite toolkit scene data, and perform simulation to obtain channel simulation results; Reading and parsing module: reads and parses the channel simulation result data to obtain the parsed channel simulation result data.

2. The data interpretation system based on the channel simulator according to claim 1, characterized in that: It also includes a visualization module and a file saving module. The visualization module is used to visualize the analyzed channel simulation result data; the file saving module is used to save the visualization result.

3. A data interpretation method based on a channel simulator, applied to the data interpretation system based on a channel simulator as claimed in claim 1, characterized in that: include: S1: Obtain satellite toolkit data, perform secondary development on the satellite toolkit data, obtain satellite toolkit scenario data, perform simulation, and obtain channel simulation results; S2: Read and analyze the channel simulation result data to obtain analyzed channel simulation result data.

4. The data interpretation method based on the channel simulator according to claim 1, characterized in that: The method further includes steps S3 and S4. S3: performing visualization according to the analyzed channel simulation result data; and S4: saving the visualization result.

5. The data interpretation method based on the channel simulator according to claim 3 is characterized in that: In step S1, secondary development of the satellite toolkit data includes: secondary development of the satellite toolkit based on the QT plug-in in Visual Studio 2022, realizing the control of the satellite toolkit and the simulation scene operation function, and using the satellite toolkit to simulate the satellite communication scenario of seamless switching between multiple orbits and multiple satellites in the Ka band.

6. The data interpretation method based on the channel simulator according to claim 3 is characterized in that: In step S1, the satellite toolkit data is secondary developed to obtain satellite toolkit scene data including: The secondary development of satellite toolkit data is achieved by creating a custom control class to call the application programming interface of the satellite toolkit; the class name of the custom control class is CObjectModelHelper, where the API for the secondary development of satellite toolkit data is a set of interfaces for programming interaction with the satellite toolkit software, allowing developers to perform secondary development of satellite toolkit data through code. The API provided by the satellite toolkit is accessed through a variety of programming languages, and the interface is used to control various functions of the secondary development of satellite toolkit data, including: creating satellites, ground stations, sensors, controlling simulation processes, and obtaining simulation data; The main process of controlling the satellite toolkit is as follows: Initialize the satellite toolkit configuration environment: Initialize the satellite toolkit object in the constructor of the CObjectModelHelper class and create a satellite toolkit instantiation object; Create or load a simulation scene: Call the satellite toolkit built-in function NewScenario() to create a new simulation scenario, or load an existing scenario file through the function loadScenario(); Create simulation objects; Use CreateSatellite(), CreateFacility(), and CreateSensor() to create simulation objects such as satellites, ground stations, and sensors; Control simulation: Control the running state of the simulation through PlayForward(), Pause(), PlayBackward() and Rewind(); Close the simulation scene After the simulation is completed, close the current scene and release resources through CloseScenario().

7. The data interpretation method based on the channel simulator according to claim 3 is characterized in that: In step S2, it includes: The channel simulation results are stored in binary files in different bases. The files in different bases are read in a serialized form, and the relevant information of each link is stored in a two-dimensional structure. The reading of the channel simulation results is realized by designing two file classes, namely the top-level class CoefficientBinFile and the link class LinkDataBlock. The CoefficientBinFile class is a high-level management class that manages data blocks of multiple links and provides the function of reading and writing these data from binary files; the LinkDataBlock class is a specific data block for each link, storing detailed simulation data of a single link, including: number of antennas, path loss, multipath, and delay, etc.); each CoefficientBinFile instance object contains multiple LinkDataBlock link objects; The CoefficientBinFile class manages multiple link data through LinkDataBlock; The CoefficientBinFile class first initializes each member variable, then writes and reads data. When the class life cycle ends, all dynamically allocated memory is released in the destructor. Data writing mainly serializes its internal state into the file in binary form to ensure efficient data storage and accurate reconstruction; by traversing the dynamic array, the multidimensional data block is gradually serialized; data reading reads binary data from the file and deserializes it to restore the internal state of the class; dynamic arrays and objects are dynamically allocated memory during the reading process, and the state of the object is reconstructed by calling the member method of the object; The LinkDataBlock class consists of a read function readFromFileStream() and a write function writeToFileStream() for reading each link data information; the reading of the channel simulator results is realized by calling the member functions of the LinkDataBlock class; the memory management of the LinkDataBlock class is to release the three-dimensional array pointer by using delete[] in the destructor for triple loop; for the one-dimensional array, delete[] is directly used for release; The LinkDataBlock class uses two functions to implement binary file writing and reading; the writeToFileStream() function implements binary file writing, and the readFromFileStream() function implements binary file reading; The binary file reading process is: First, open a binary file through the input stream ifstream(), read the basic data types from the binary file and initialize the member variables. The member variables mainly include the path loss of the link, the transmission coordinates and receiving coordinates of each sampling point in each link, the shadow data of the link, Doppler data, and large delay data; Then construct and initialize the channel enable state variable to record the enable state of the channel; Dynamically allocate memory and read data from member variables; Read additional control data; Internal logic of CoefficientBinFile class and linkDataBlock class: The relationship between the CoefficientBinFile class and the linkDataBlock class is a one-to-many relationship, that is, CoefficientBinFile manages link data blocks by holding pointers to multiple linkDataBlocks to achieve more complex data processing tasks; the CoefficientBinFile class contains a pointer linkDataBolcks pointing to an array of linkDataBlock objects; therefore, the CoefficientBinFile object contains multiple linkDataBlock objects, forming a one-to-many relationship; the CoefficientBinFile class is responsible for managing the life cycle of linkDataBlock objects, including object creation, destruction, and data reading and writing operations; Functions of the CoefficientBinFile class: Responsible for the reading and writing of binary files, including controlling and managing the data structure of the entire file, including: the number of base stations, the number of users, the number of links, and other related global information; at the same time, it is also responsible for access management of multiple link data blocks, namely linkDataBlock; when operating the file, CoefficientBinFile calls the access operation of each link in turn by traversing the linkDataBlock array; Functions of linkDataBlock class: Each linkDataBlock object represents an independent link data block, storing specific link information; provides independent binary file reading and writing methods, used to write its own data to or read from binary files; When writing a file, CoefficientBinFile first writes the global information to the file; then, it traverses all linkDataBlock objects and calls the writeToFileStream() method of each object to write the link data to the file in sequence; When reading a file, CoefficientBinFile first reads global information from the file and allocates memory according to the number of links; then, it calls the readFromFileStream() method of linkDataBlock in sequence to read the specific data of each link from the file.

8. The data interpretation method based on the channel simulator according to claim 3 is characterized in that: In step S2, including Filter out the data that meets the requirements and distinguish the data that meets the requirements from the data that does not meet the requirements with different colors; the analysis is performed in the child thread, and after filtering out the data that meets the requirements in the background, the data is sent to the main thread; first calculate the signal strength based on the obtained path loss data, filter out the data that meets the requirements by the signal strength, and finally mark the data that does not meet the requirements in red, and the data that meets the requirements is still black. The following is the calculation formula for the received signal strength: RSS=Pt+Gt+Gr-Lc-Lbf Where RSS is the received signal strength, Pt is the transmitter signal power, Gt is the transmitting antenna gain, Gr is the receiving antenna gain, Lc is the cable loss, and Lbf is the free space attenuation, i.e. the path loss. Since the cable loss is small, Lc is taken as zero during calculation. Pt and Gt are input by the user, and the path loss is obtained by the file reading module in the previous step. The parsing process is as follows: first, create a child thread object Judgement in the main thread, and then use the setData() function in the main thread to send the input Pt, Gt, Gr values ​​and the two-dimensional structure storing link information to the child thread; Next, the main thread starts the child thread by calling the Judgement::start() function, at which time the child thread starts working; the run function in the child thread starts to execute, and the run function mainly calculates the RSS of each sampling point according to the received signal strength calculation formula. When the RSS is greater than the receiver sensitivity, the data is valid data; when the RSS is less than the receiver sensitivity, the data is invalid data; the child thread will traverse the data of all links, and after processing a link each time, the current processing progress percentage will be sent to the main thread through the emit function; the main thread and the child thread are connected through the signal and slot mechanism. Every time the child thread sends a progress signal, the function connected to the progress signal of the main thread will also be triggered at the same time, thereby realizing the continuous update of the progress. Finally, when all the data of the child thread is processed, the finish() function will be called, and the slot function of the interface update connected to the finish() function will also immediately update the interface to display the filtered valid link data.

9. The data interpretation method based on the channel simulator according to claim 3, characterized in that: In step S3, it includes: Display the global basic information of the data and all the information of all sampling points of each link by calling the member functions in the LinkDataBlock class; The following shows the basic global information: First, a global variable is created to save link data in the form of a two-dimensional structure. The main members of the one-dimensional structure are: path loss data, x, y, z coordinates of the transmitter, x, y, z coordinates of the receiver, longitude and latitude of the transmitter and receiver, and altitude data. The one-dimensional structure mainly contains 13 variables. Through the use of the two-dimensional structure, all sampling point information of each link is saved. After saving, the CoefficientBinFile class member function is called to read the basic information of the result file, which is displayed in the text box of the interface. Then, the CoefficientBinFile object is released in the program. The process of displaying path loss and spatial data is as follows: First, read the file path, instantiate the read file into a CoefficientBinFile object, and then clear the data in the table to parse the data multiple times; read the link information and set the maximum number of columns and headers in the table, and then set the maximum number of rows in the table, where the maximum number of columns in the table is the number of links * 13, and the maximum number of rows in the table is the maximum number of sampling points for each link; finally, traverse the information of all sampling points contained in each link, and display them in the table in the interface in different colors.

10. The data interpretation method based on the channel simulator according to claim 3, characterized in that: In step S4, it includes: exporting the data in the form of txt or csv; and clearing the data, clearing all the information displayed on the interface, including the file path that has been read, the basic information of the file that has been displayed, and the channel data that has been displayed.