Method and device for satellite positioning, medium and program product
By performing polynomial fitting on observation data from satellite receivers and broadcast ephemeris data, the predicted carrier-to-noise ratio and fitting residuals are calculated, and the satellite positioning method is optimized. This solves the problem of decreased positioning accuracy caused by GNSS satellite signal blockage and improves positioning accuracy in complex environments.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-03-12
- Publication Date
- 2026-03-27
AI Technical Summary
In complex environments, GNSS satellite signals are blocked and interfered with, leading to a decrease in positioning accuracy. This is especially true when there are few satellites, where the quality of satellite observation is greatly affected and cannot meet actual positioning needs.
By acquiring observation data from satellite receivers and broadcast ephemeris data, polynomial fitting is performed to calculate the carrier-to-noise ratio prediction and fitting residuals, thereby optimizing the satellite positioning method and removing or adjusting satellite weights to improve positioning accuracy.
Optimize satellite positioning in obstructed environments, reduce the impact of abnormal satellites, and improve positioning accuracy.
Smart Images

Figure CN121751099A_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of communications, and more particularly to a technology for satellite positioning. Background Technology
[0002] GNSS (Global Navigation Satellite System) positioning technology is currently a crucial means of acquiring location and time information. It boasts global coverage and all-weather operation, and is commonly used in surveying and mapping, autonomous driving, agriculture, and the power industry. However, current GNSS positioning technology still faces challenges in meeting practical requirements in complex and harsh environments, particularly in areas with tall buildings, dense vegetation, or under overpasses. In such locations, GNSS satellite signals are often obstructed and interfered with, leading to degraded signal quality and increased ranging errors. Using receiver-output observation data for high-precision positioning in these conditions results in a significant decrease in accuracy.
[0003] When fewer than four satellites are received simultaneously, it is impossible to establish basic observation equations and estimate positioning coordinates in real time. With a small number of satellites, there are fewer redundant observations involved in the solution, making the solution more susceptible to the quality of satellite observations, resulting in decreased accuracy and failing to meet practical requirements. Summary of the Invention
[0004] One object of this application is to provide a method, apparatus, medium, and program product for satellite positioning.
[0005] According to one aspect of this application, a method for satellite positioning is provided, the method comprising:
[0006] The system acquires observation data and broadcast ephemeris data of multiple satellites at the current moment, output by the satellite receiver in a successfully positioned state. The observation data includes pseudorange data and carrier-to-noise ratio data.
[0007] Based on the broadcast ephemeris data and the pseudorange data, obtain the elevation angle data of each of the plurality of satellites at the current time;
[0008] For each satellite, a sampled dataset of the satellite within a time interval of a corresponding preset duration with the current time as the endpoint is obtained. A polynomial fitting is performed on the sampled dataset to obtain a fitted polynomial function. By inputting the elevation angle data of the satellite at the current time into the polynomial function, the predicted carrier-to-noise ratio (CNR) value of the satellite at the current time is obtained. Based on the predicted CNR value and the CNR data in the observation data, the fitting residual of the satellite at the current time is determined. The sampled dataset includes elevation angle data and CNR data corresponding to the satellite at multiple times.
[0009] Based on the fitting residuals corresponding to the multiple satellites, it is determined whether the user has entered an obstructed environment; if so, based on the fitting residuals corresponding to each satellite, an optimization operation is performed on one or more of the multiple satellites, and the satellite positioning result corresponding to the user's location is obtained based on the optimized multiple satellites, wherein the optimization operation includes at least one of the following: elimination operation and weight adjustment operation.
[0010] According to one aspect of this application, a computing device for satellite positioning is provided, including a memory, a processor, and a computer program stored in the memory, wherein the processor executes the computer program to perform any of the methods described above.
[0011] According to one aspect of this application, a computer-readable storage medium is provided having a computer program stored thereon, characterized in that the computer program, when executed by a processor, implements the operation of any of the methods described above.
[0012] According to one aspect of this application, a computer program product is provided, comprising a computer program that, when executed by a processor, implements the steps of any of the methods described above.
[0013] According to one aspect of this application, a computing device for satellite positioning is provided, the device comprising:
[0014] The module is used to acquire observation data and broadcast ephemeris data of multiple satellites at the current time, which are output by the satellite receiver in the state of successful positioning. The observation data includes pseudorange data and carrier-to-noise ratio data.
[0015] The first and second modules are used to obtain the elevation angle data of each of the plurality of satellites at the current time based on the broadcast ephemeris data and the pseudorange data;
[0016] The first and third modules are used to obtain, for each satellite, a sampled dataset of the satellite within a time interval of a corresponding preset duration with the current time as the endpoint, perform polynomial fitting on the sampled dataset to obtain a fitted polynomial function, obtain the predicted carrier-to-noise ratio (CNR) value of the satellite at the current time by inputting the elevation angle data of the satellite at the current time into the polynomial function, and determine the fitting residual of the satellite at the current time based on the predicted CNR value and the CNR data in the observation data. The sampled dataset includes elevation angle data and CNR data corresponding to the satellite at multiple times.
[0017] The first and fourth modules are used to determine whether the user has entered an obstructed environment based on the fitting residuals corresponding to the multiple satellites; if so, based on the fitting residuals corresponding to each satellite, an optimization operation is performed on one or more of the multiple satellites, and the satellite positioning result corresponding to the user's location is obtained based on the optimized multiple satellites, wherein the optimization operation includes at least one of the elimination operation and weight adjustment operation.
[0018] Compared with existing technologies, this application obtains observation data and broadcast ephemeris data of multiple satellites at the current time, output by a satellite receiver in a successfully positioned state. The observation data includes pseudorange data and carrier-to-noise ratio (CNR) data. Based on the broadcast ephemeris data and the pseudorange data, the elevation angle data of each of the multiple satellites at the current time is obtained. For each satellite, a sampled dataset of that satellite within a preset time interval ending at the current time is obtained. A polynomial fitting is performed on the sampled dataset to obtain a fitted polynomial function. By inputting the elevation angle data of the satellite at the current time into the polynomial function, a predicted CNR value for the satellite at the current time is obtained. The predicted CNR value is then compared with the observation data. The system uses carrier-to-noise ratio (CNR) data to determine the fitting residual of a satellite at the current time. The sampling dataset includes elevation angle data and CNR data corresponding to the satellite at multiple times. Based on the fitting residuals of the multiple satellites, it determines whether the user has entered an obstructed environment. If so, based on the fitting residuals of each satellite, an optimization operation is performed on one or more of the multiple satellites. The optimized satellite positioning result corresponding to the user's location is obtained based on the optimized multiple satellites. The optimization operation includes at least one of elimination operation and weight adjustment operation. This application can optimize the problem of poor overall positioning accuracy caused by poor quality of some satellite observation data in obstructed environments, reduce the impact of abnormal satellites on positioning results, and improve positioning accuracy in complex obstructed environments. Attached Figure Description
[0019] Other features, objects, and advantages of this application will become more apparent from the following detailed description of non-limiting embodiments with reference to the accompanying drawings:
[0020] Figure 1 This diagram illustrates a method for satellite positioning according to one embodiment of the present application.
[0021] Figure 2 A flowchart illustrating an example of a satellite positioning method according to an embodiment of this application is shown.
[0022] Figure 3 This diagram illustrates a structural diagram of a computing device for satellite positioning according to an embodiment of this application;
[0023] Figure 4 Exemplary systems that can be used to implement the various embodiments described in this application are shown.
[0024] The same or similar reference numerals in the accompanying drawings represent the same or similar parts. Detailed Implementation
[0025] The present application will now be described in further detail with reference to the accompanying drawings.
[0026] In a typical configuration of this application, the terminal, the device of the service network, and the trusted party all include one or more processors (e.g., a central processing unit (CPU)), input / output interfaces, network interfaces, and memory.
[0027] Memory may include non-persistent storage in computer-readable media, such as random access memory (RAM) and / or non-volatile memory, such as read-only memory (ROM) or flash memory. Memory is an example of computer-readable media.
[0028] Computer-readable media, including both permanent and non-permanent, removable and non-removable media, can store information using any method or technology. Information can be computer-readable instructions, data structures, program modules, or other data. Examples of computer storage media include, but are not limited to, phase-change memory (PCM), programmable random access memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technologies, compact disc read-only memory (CD-ROM), digital versatile disc (DVD) or other optical storage, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other non-transfer medium that can be used to store information accessible by a computing device.
[0029] The devices referred to in this application include, but are not limited to, user equipment, network equipment, or devices composed of user equipment and network equipment integrated through a network. The user equipment includes, but is not limited to, any mobile electronic product capable of human-computer interaction (e.g., via a touchpad), such as smartphones and tablets. These mobile electronic products can use any operating system, such as Android or iOS. The network equipment includes an electronic device capable of automatically performing numerical calculations and information processing according to pre-set or stored instructions. Its hardware includes, but is not limited to, microprocessors, application-specific integrated circuits (ASICs), programmable logic devices (PLDs), field-programmable gate arrays (FPGAs), digital signal processors (DSPs), and embedded devices. The network equipment includes, but is not limited to, computers, network hosts, single network servers, multiple network server clusters, or clouds composed of multiple servers. Here, a cloud consists of a large number of computers or network servers based on cloud computing, where cloud computing is a type of distributed computing, consisting of a virtual supercomputer composed of a group of loosely coupled computer clusters. The network includes, but is not limited to, the Internet, wide area network, metropolitan area network, local area network, VPN network, wireless ad hoc network, etc. Preferably, the device can also be a program running on the user equipment, network device, or a device formed by integrating user equipment and network device, network device, touch terminal, or network device and touch terminal through a network.
[0030] Of course, those skilled in the art should understand that the above-described devices are merely examples, and other existing or future devices that are applicable to this application should also be included within the scope of protection of this application, and are hereby incorporated by reference.
[0031] In the description of this application, "multiple" means two or more, unless otherwise expressly and specifically defined.
[0032] Figure 1This diagram illustrates a method for satellite positioning according to an embodiment of the present application. The method includes steps S11, S12, S13, and S14. In step S11, observation data and broadcast ephemeris data of multiple satellites corresponding to the current time are acquired from the satellite receiver in a successfully positioned state. The observation data includes pseudorange data and carrier-to-noise ratio data. In step S12, based on the broadcast ephemeris data and the pseudorange data, elevation angle data corresponding to each of the multiple satellites at the current time is obtained. In step S13, for each satellite, a sampled dataset of the satellite within a time interval corresponding to a preset duration ending at the current time is obtained. A polynomial fitting is performed on the sampled dataset to obtain a fitted polynomial function. The elevation angle data of the satellite at the current time is input into the polynomial function to obtain... The predicted carrier-to-noise ratio (CNR) value of the satellite at the current time is obtained. Based on the predicted CNR value and the CNR data in the observation data, the fitting residual of the satellite at the current time is determined. The sampling dataset includes elevation angle data and CNR data corresponding to the satellite at multiple times. In step S14, based on the fitting residuals corresponding to the multiple satellites, it is determined whether the user has entered an obstructed environment. If so, based on the fitting residuals corresponding to each satellite, an optimization operation is performed on one or more of the multiple satellites. Based on the optimized multiple satellites, the satellite positioning result corresponding to the user's location is obtained. The optimization operation includes at least one of the following: a removal operation and a weight adjustment operation.
[0033] In step S11, the observation data and broadcast ephemeris data of multiple satellites at the current time are obtained from the satellite receiver when it is in a successful positioning state. The observation data includes pseudorange data and carrier-to-noise ratio data.
[0034] In some embodiments, the satellite receiver is located on the user's current device, which includes, but is not limited to, mobile phones, tablets, cars, etc., and this example embodiment does not specifically limit this. In some embodiments, a satellite receiver refers to an instrument that receives GNSS (Global Navigation Satellite System) satellite signals and determines its ground spatial position. In some embodiments, the observation data and broadcast ephemeris data of multiple satellites corresponding to the current time are acquired by the satellite receiver in a successfully positioned state. The observation data corresponding to each of the multiple satellites includes pseudorange data and carrier-to-noise ratio data corresponding to that satellite. The multiple satellites may refer to all satellites located at the current time, or they may refer to some of the satellites located at the current time. Pseudorange refers to the distance calculated by multiplying the time delay from the satellite transmitting the ranging code signal to the receiver receiving these signals by the speed of electromagnetic wave propagation in a vacuum. Due to the influence of various factors, this distance is not equal to the actual geometric distance between the satellite and the receiver. Carrier-to-noise ratio refers to the power of the satellite signal and is an important indicator for measuring signal quality. It is defined as the ratio of the power of the received signal to the noise power spectral density. In some embodiments, the carrier-to-noise ratio data output by the satellite receiver can be expressed by the following formula:
[0035] C / N0 = S R +G A -10lg(kT0)-N F -LB N +G P
[0036] Among them, S R For the received signal power, G A The gain of the receiver antenna in the satellite direction is 10lg(kT0), where N is the thermal noise density. F The receiver noise figure includes antenna and cable losses, L is the implementation loss plus A / D loss, and B is the receiver noise figure. N For the equivalent noise bandwidth, G P To process the gain for the receiver.
[0037] In some embodiments, broadcast ephemeris data refers to orbital information data contained in the radio signals broadcast by a satellite. This data is determined and provided by the ground control portion of the global navigation satellite system and mainly includes message information predicting the number of satellite orbital elements over a certain period of time.
[0038] In some embodiments, the observation data corresponding to each satellite may further include at least one of the carrier phase and Doppler for that satellite, wherein the carrier phase refers to the measured value of the phase of the satellite signal received by the reference station at the same receiving time relative to the phase of the carrier signal generated by the receiver, and the Doppler refers to the Doppler frequency shift or Doppler count of the radio signal broadcast by the satellite determined by the receiver.
[0039] In step S12, the elevation angle data of each of the plurality of satellites at the current time is obtained based on the broadcast ephemeris data and the pseudorange data.
[0040] In some embodiments, when determining whether a user has entered an obstructed environment, the satellite carrier-to-noise ratio (CNR) is one of the main metrics. If a fixed empirical value is used as the criterion for determining an obstructed environment, the judgment may be inaccurate or even wrong due to differences in different receivers and antennas. Therefore, it is necessary to utilize the positive correlation between the CNR and the satellite elevation angle, and make a joint judgment based on the CNR output by the receiver and the calculated satellite elevation angle.
[0041] In some embodiments, observation data from the satellites is acquired immediately upon startup of the satellite receiver. Once the number of satellites has stabilized, the position of each satellite in the Earth-fixed coordinate system and its corresponding satellite clock bias (the difference between the GPS satellite clock and the GPS standard time) can be calculated based on the broadcast ephemeris data. By using the satellite clock bias to correct the pseudorange data, the error term that the satellite signal will experience during transmission and reception is corrected, and the user's position at the current moment is obtained. Then, the elevation angle data corresponding to each satellite at the current moment can be calculated using these two positions. The elevation angle is the angle between the line connecting the satellite and the receiver antenna and the horizontal plane.
[0042] In step S13, for each satellite, a sampled dataset of the satellite within a time interval of a corresponding preset duration ending at the current time is obtained. A polynomial fitting is performed on the sampled dataset to obtain a fitted polynomial function. By inputting the elevation angle data of the satellite at the current time into the polynomial function, the predicted carrier-to-noise ratio (CNR) value of the satellite at the current time is obtained. Based on the predicted CNR value and the CNR data in the observation data, the fitting residual of the satellite at the current time is determined. The sampled dataset includes elevation angle data and CNR data corresponding to the satellite at multiple times.
[0043] In some embodiments, for each of the plurality of satellites, after calculating the elevation angle data corresponding to the satellite at a certain moment, the elevation angle data and carrier-to-noise ratio (CNR) data of the satellite at each moment are recorded. Here, a moment refers to the point in time when the satellite receiver receives the satellite signal from that satellite, also known as an epoch. In some embodiments, when the satellite receiver is first started, there is limited sample data, and the satellite elevation angle does not change significantly in a short period. This may result in a satellite corresponding to the same elevation angle at multiple moments but with multiple different CNRs. In this case, the average of all CNRs at that elevation angle is used as the CNR corresponding to that satellite at those multiple moments.
[0044] In some embodiments, since the carrier-to-noise ratio (CNR) and elevation angle data of the satellite at various times, including the current time, have been obtained, a sampled dataset of the satellite within a time interval of a preset duration, ending at the current time, can be selected. This sampled dataset includes elevation angle data and CNR data of the satellite at multiple times within the time interval. This sampled dataset is used as the dataset for subsequent polynomial fitting. Polynomial fitting is a common data analysis method that, based on a given set of data points, fits these data points by constructing a polynomial function. The polynomial function can be expressed as follows:
[0045] f(x) = a0 + a1·x + a2·x 2 +a3·x 3 +…+a n ·x n
[0046] Among them, a0, a1, a2…a n denoted as the polynomial coefficients, and n is the polynomial order.
[0047] In some embodiments, polynomial fitting in data analysis can help understand and predict relationships between variables, enabling prediction or estimation at unknown data points. When solving for the polynomial fitting coefficients, the least squares method can be used. This method aims to find a set of polynomial coefficients that minimizes the sum of squared errors between the actual observed values and the polynomial fitted values for all data points. To find this set of polynomial coefficients, the data points are arranged in matrix form, a matrix equation is constructed, and the optimal polynomial coefficients are solved. In polynomial fitting, the order of the fitting function directly affects the fitting accuracy and computational efficiency. An inappropriate choice of fitting order can lead to overfitting and underfitting. In this application, since the elevation angle and carrier-to-noise ratio are positively correlated, and their relationship curve is relatively smooth in the short term under normal conditions, it is not necessary to use a very high order for fitting.
[0048] In some embodiments, a polynomial fitting is performed on the sampled dataset. The specific process includes constructing a correlation matrix equation based on the sampled dataset, solving for the coefficient vector using a least-squares iterative optimization algorithm, constructing a corresponding fitting function, and using this fitting function as the fitted polynomial function for the satellite. The input of this polynomial function is the elevation angle, and the output is the carrier-to-noise ratio (CNR). In some embodiments, the elevation angle data of the satellite at the current time is input into the fitted polynomial function corresponding to the satellite, and the predicted CNR value for the satellite at the current time is calculated. The difference between the predicted CNR value and the CNR data actually output by the satellite receiver at the current time (i.e., the CNR data in the observation data) is used to obtain the fitting residual for the satellite at the current time. The fitting residual refers to the difference between the actual observed value and the predicted value in statistical analysis. In some embodiments, the above method is used to calculate and record the fitting residual for each of the multiple satellites at the current time for use in subsequent steps.
[0049] In step S14, based on the fitting residuals corresponding to the plurality of satellites, it is determined whether the user has entered an obstructed environment; if so, based on the fitting residuals corresponding to each satellite, an optimization operation is performed on one or more of the plurality of satellites, and the satellite positioning result corresponding to the user's location is obtained based on the optimized plurality of satellites, wherein the optimization operation includes at least one of the elimination operation and the weight adjustment operation.
[0050] In some embodiments, if the fitting residuals of each satellite are controlled within a certain range in a normal environment, but if the environment becomes harsh, the actual carrier-to-noise ratio of most satellites will show a sustained and significant decrease compared to the predicted value. In this case, the fitting residuals will be larger than under normal conditions. The degree of interference of a satellite can be determined based on its fitting residual at the current moment. This can be achieved by inputting the fitting residuals into a preset function tree or a trained model. For example, the larger the fitting residual, the greater the degree of interference. Alternatively, the degree of interference of a satellite can be determined by comprehensively considering the fitting residuals of a satellite at multiple moments, including the current moment. This can be achieved by inputting multiple fitting residuals sorted chronologically into a preset function tree or a trained model. In some embodiments, the degree of interference of a satellite can be a specific numerical value, or it can simply be a string (e.g., "high", "medium", "low", etc.). In some embodiments, it can be determined whether a user is currently in an obstructed environment based on the degree of interference corresponding to the plurality of satellites. For example, it can be determined whether a user is currently in an obstructed environment based on the number of satellites with a higher degree of interference (i.e., abnormal satellites) or the ratio of the number of satellites with a higher degree of interference to the total number of satellites.
[0051] In some embodiments, the statistical characteristics or numerical stability of the fitting residuals corresponding to the multiple satellites can also characterize the interference level of the user's current device (on which the satellite receiver is located). Therefore, it can be determined whether the user is currently in an obstructed environment based on the statistical characteristics or numerical stability of the fitting residuals corresponding to the multiple satellites. For example, the standard deviation (STD) of the fitting residuals corresponding to the multiple satellites can be calculated and used as an indicator to determine whether the user is currently in an obstructed environment. For example, if the STD of the fitting residuals corresponding to the multiple satellites at the current time is greater than or equal to a preset threshold, it is determined that the user is currently in an obstructed environment. Alternatively, it can be determined whether the user is currently in an obstructed environment based on the increase in the STD of the fitting residuals corresponding to the multiple satellites at the current time compared to the STD of the fitting residuals corresponding to the previous time. The formula for calculating the fitting residual STD is as follows:
[0052]
[0053] Where, ε i Let n be the satellite fitting residual for the i-th satellite, and n be the number of satellites.
[0054] In some embodiments, it can also be determined whether the user is currently in an obstructed environment based on the fitting residual corresponding to each of the plurality of satellites. For example, it can be determined based on the ratio of the number of satellites whose fitting residual at the current time is greater than or equal to a preset threshold to the total number of satellites in the plurality of satellites. Or, it can be determined based on the ratio of the number of satellites whose fitting residual at the current time is higher than the fitting residual at the previous time to the total number of satellites in the plurality of satellites.
[0055] In some embodiments, if it is determined that the user has entered an obstructed environment, the degree of interference of a satellite can be determined based on the fitting residual of each of the plurality of satellites at the current moment. The determination method has been described in detail above and will not be repeated here. In some embodiments, optimization operations can be performed on the satellites with a higher degree of interference (i.e., abnormal satellites) among the plurality of satellites. For example, abnormal satellites can be removed so that they do not participate in GNSS high-precision positioning. Or, abnormal satellites can be downweighted, that is, their weight in GNSS high-precision positioning can be reduced. Alternatively, satellites with a lower degree of interference can be upweighted, that is, their weight in GNSS high-precision positioning can be increased.
[0056] In some embodiments, if it is determined that the user has entered an obstructed environment, the degree of interference of the satellite can be determined based on the fitting residual of each of the plurality of satellites at the current time. Then, based on the degree of interference of each satellite, one or more satellites that need to be optimized are determined from the plurality of satellites, and optimization operations are performed on the one or more satellites. The optimization operations include, but are not limited to, satellite elimination, downweighting, upweighting, etc. This example embodiment does not make any special limitations on this. In some embodiments, the decision to perform optimization operations on the satellite or the type of optimization operation can be determined based on the satellite's fitting residual at the current moment. Alternatively, the decision to perform optimization operations or the type of optimization operation can be determined based on the change in the satellite's fitting residual at the current moment compared to the fitting residual at the previous moment (e.g., whether it increases or decreases). Alternatively, the decision to perform optimization operations or the type of optimization operation can be determined based on the satellite's lock-in duration at the current moment (lock-in duration refers to the duration during which the satellite is continuously captured; for example, if the satellite's signal is received starting at a target time and can be received continuously from that target time to the current time, then the lock-in duration at the current moment is equal to the duration obtained by subtracting the target time from the current time). Alternatively, the decision to perform optimization operations or the type of optimization operation can be determined by comprehensively considering the above factors. In some embodiments, the specific value of the weight adjustment (the specific value of increasing the weight or decreasing the weight) may be preset, or it may be determined based on the fitting residual of the satellite at the current moment, or it may be determined based on the difference between the fitting residual of the satellite at the current moment and the fitting residual at the previous moment, or it may be determined based on the locking duration of the satellite at the current moment, or it may be determined by combining the above factors.
[0057] In some embodiments, the satellite positioning result corresponding to the user's location is obtained based on the GNSS high-precision positioning algorithm for the satellite data corresponding to multiple optimized satellites. The satellite data includes, but is not limited to, any data related to the satellite, such as observation data, broadcast ephemeris data, elevation angle data, etc. This example embodiment does not impose any special limitations on this.
[0058] This application can optimize the problem of poor overall positioning accuracy caused by poor quality of some satellite observation data in obstructed environments, reduce the impact of abnormal satellites on positioning results, and improve positioning accuracy in complex obstructed environments.
[0059] In some embodiments, obtaining the elevation angle data of each of the plurality of satellites at the current time based on the broadcast ephemeris data and the pseudorange data includes: obtaining the satellite position and corresponding satellite clock bias of each of the plurality of satellites at the current time based on the broadcast ephemeris data; obtaining the user position corresponding to the user position at the current time based on the pseudorange data, the satellite position and the satellite clock bias; and obtaining the elevation angle data of each satellite at the current time based on the satellite position, the user position and the geodetic latitude and longitude information corresponding to the user position. In some embodiments, for each of the plurality of satellites, the position of the satellite in the Earth-fixed coordinate system at the current time (i.e., satellite position) and the corresponding satellite clock error can be calculated based on the broadcast ephemeris data corresponding to the satellite at the current time. The pseudorange data corresponding to the satellite is corrected by the satellite clock error to correct the error terms that the satellite signal will be subjected to during the transmission and reception process. An observation equation is constructed, and the approximate coordinates of the user at the current time (i.e., user position) are calculated using parameter estimation methods. Then, the elevation angle data corresponding to the satellite at the current time is calculated based on the satellite position, the user position, and the geodetic latitude and longitude information corresponding to the user position. The geodetic latitude and longitude information includes the geodetic latitude and geodetic longitude of the user position.
[0060] In some embodiments, obtaining the elevation angle data of each satellite at the current time based on the satellite position, the user position, and the geodetic latitude and longitude information corresponding to the user position includes: constructing a corresponding rotation matrix based on the geodetic latitude and longitude information corresponding to the user position; establishing a station-centered rectangular coordinate system with the user position as the origin; obtaining the first position of each satellite at the current time in the station-centered rectangular coordinate system based on the satellite position, the user position, and the rotation matrix; and obtaining the elevation angle data of each satellite at the current time by transforming the first position from the station-centered rectangular coordinate system to the station-centered polar coordinate system. In some embodiments, the corresponding rotation matrix is constructed based on the geodetic latitude and longitude corresponding to the user position, as shown below:
[0061]
[0062] Where R is the rotation matrix, B and L are the geodetic latitude and longitude of the user's location, respectively. Then, a station-centered rectangular coordinate system is established with the user's location as the origin. Based on the satellite's position at the current time, the user's position at the current time, and the rotation matrix, the first position of the satellite in the station-centered rectangular coordinate system at the current time can be calculated. The specific calculation formula is as follows:
[0063]
[0064] Where (E,N,U) represents the satellite's first position in the station-centered Cartesian coordinate system at the current moment, and (X... S ,Y S Z S (X) represents the satellite's current position. r ,Y r Z r Let R be the user's current position, and R be the rotation matrix. Then, by transforming this first position from the station-centered rectangular coordinate system to the station-centered polar coordinate system, the satellite elevation angle corresponding to the current moment is calculated. The specific calculation formula is as follows:
[0065]
[0066] Where (E,N,U) is the satellite's first position in the station center rectangular coordinate system at the current moment, r is the satellite's radial direction, A is the satellite's azimuth angle, and h is the satellite's elevation angle.
[0067] In some embodiments, obtaining the sampling dataset of the satellite within a time interval corresponding to a preset duration, ending at the current time, includes: establishing a sliding window for the obtained elevation angle data and carrier-to-noise ratio data of the satellite at each time, and selecting the sampling dataset within the sliding window, wherein the right boundary of the sliding window is the current time, and the window length of the sliding window is a preset duration. In some embodiments, for each of the plurality of satellites, for the obtained elevation angle data and carrier-to-noise ratio data of the satellite at each time, a sliding window is established before the current time, the right boundary of the sliding window is the current time, and the window length of the sliding window is a preset duration; then, the elevation angle data and carrier-to-noise ratio data of the satellite corresponding to multiple times within the sliding window are selected as the sampling dataset.
[0068] In some embodiments, performing polynomial fitting on the sampled dataset includes: determining the polynomial fitting order based on the elevation angle range corresponding to the sampled dataset, and performing polynomial fitting on the sampled dataset based on the polynomial fitting order. In some embodiments, the polynomial fitting order can be determined based on the interval length of the elevation angle range corresponding to all elevation angle data in the sampled dataset. For example, the interval length is compared with a preset angle value, and the polynomial fitting order is determined based on the comparison result. For example, if the interval length is less than or equal to the preset angle value (e.g., 40 degrees), the polynomial fitting order is m; if the interval length is greater than the preset angle value, the polynomial fitting order is n. In some embodiments, the polynomial fitting order can also be determined based on the elevation angle range and the number of valid times within the sliding window (valid time refers to the time when the satellite receiver outputs the pseudorange observation data of the satellite, also known as a valid epoch). In some embodiments, after determining the polynomial fitting order, polynomial fitting is performed on the sampled dataset based on the polynomial fitting order.
[0069] In some embodiments, the method further includes: if the number of valid times corresponding to the satellite within the sliding window is less than or equal to a first threshold, or if all elevation angle data corresponding to the satellite within the sliding window are less than or equal to a second threshold, determining that the satellite is currently not participating in polynomial fitting. In some embodiments, if the number of valid times corresponding to the satellite within the sliding window is less than or equal to the first threshold, or if all elevation angle data corresponding to the satellite within the sliding window are less than or equal to the second threshold, then it is determined that the satellite is currently not participating in polynomial fitting. That is, it is not necessary to obtain the predicted carrier-to-noise ratio value corresponding to the satellite at the current time, and therefore it is even less necessary to determine the fitting residual of the satellite at the current time. Subsequently, when calculating the standard deviation of the fitting residuals corresponding to the multiple satellites at the current time, the satellite will not be considered, that is, the satellite will not participate in the calculation of the standard deviation of the fitting residuals at the current time.
[0070] In some embodiments, selecting the sampled dataset within the sliding window includes: if the number of valid times corresponding to the satellite within the sliding window is less than a third threshold, selecting the sampled dataset within the sliding window; otherwise, increasing the window length of the sliding window so that the number of valid times corresponding to the satellite within the adjusted sliding window reaches the third threshold, and selecting the sampled dataset within the adjusted sliding window. In some embodiments, if the number of valid times corresponding to the satellite within the sliding window is less than a third threshold, the elevation angle data and carrier-to-noise ratio data of the satellite corresponding to multiple times within the sliding window will be selected as the sampling dataset. If the number of valid times corresponding to the satellite within the sliding window is greater than the third threshold, and if there are still valid times corresponding to the satellite before the sliding window (i.e. before the left boundary of the sliding window), the window length of the sliding window will be increased, i.e., the left boundary of the sliding window will be moved to the left, so that the number of valid times corresponding to the satellite within the adjusted sliding window reaches the third threshold. Then, the elevation angle data and carrier-to-noise ratio data of the satellite corresponding to multiple times within the adjusted sliding window will be selected as the sampling dataset. If the sum of the number of valid times corresponding to the satellite before the sliding window and the number of valid times corresponding to the satellite within the sliding window is less than the third threshold, the sampling dataset corresponding to the satellite will not be selected at this time, and therefore, polynomial fitting will not be performed on the satellite, and it will not be necessary to obtain the predicted value of the carrier-to-noise ratio corresponding to the satellite at the current time, and it will not be necessary to determine the fitting residual of the satellite at the current time.
[0071] In some embodiments, determining whether a user has entered an obstructed environment based on the fitting residuals corresponding to the plurality of satellites includes: determining whether a user has entered an obstructed environment based on a first change in the fitting residual of each of the plurality of satellites at the current time compared to the fitting residual at the previous time, and a second change in the standard deviation of the fitting residuals of the plurality of satellites at the current time compared to the standard deviation of the fitting residuals of the plurality of satellites at the previous time. In some embodiments, the user's current entry into an obstructed environment can be determined based on the first change in the fitting residual of each of the plurality of satellites at the current time compared to the fitting residual at the previous time, and the second change in the standard deviation of the fitting residuals of the plurality of satellites at the current time compared to the standard deviation of the fitting residuals of the plurality of satellites at the previous time. For example, if the standard deviation of the fitting residuals of the plurality of satellites at the current time increases compared to the standard deviation of the fitting residuals of the previous time, and the number of target satellites whose fitting residuals at the current time have increased compared to the fitting residuals of the previous time is greater than or equal to a preset number threshold, and the proportion of the target satellites to the total number of satellites is greater than or equal to a preset proportion threshold, then it can be determined that the user has entered an obstructed environment.
[0072] In some embodiments, determining whether a user has entered an obstructed environment based on a first change in the fitting residual of each of the plurality of satellites at the current time compared to the fitting residual at the previous time, and a second change in the standard deviation of the fitting residuals of the plurality of satellites at the current time compared to the standard deviation of the fitting residuals of the plurality of satellites at the previous time, includes: determining whether a user has entered an obstructed environment based on the first change in the fitting residual of each of the plurality of satellites at the current time compared to the fitting residual at the previous time, the second change in the standard deviation of the fitting residuals of the plurality of satellites at the current time compared to the standard deviation of the fitting residuals of the plurality of satellites at the previous time, and the number of valid times and the change in the number of satellites within the sliding window. In some embodiments, the sliding window can be configured based on a first change in the fitting residual of each of the plurality of satellites at the current time compared to the fitting residual at the previous time, a second change in the standard deviation of the fitting residuals of the plurality of satellites at the current time compared to the standard deviation of the fitting residuals at the previous time, and the number of effective times within the sliding window (effective time refers to the time when the satellite receiver outputs the pseudorange observation data of the satellite, also known as effective epoch), the change in the number of satellites (the change in the number of satellites observed at the current time compared to the number of satellites observed at the earliest effective time within the sliding window, or the change in the maximum number of satellites observed at a certain time within the sliding window compared to the number of satellites observed at a certain time within the sliding window). The system uses the change in the minimum number of detected satellites to comprehensively determine whether a user has entered an obstructed environment. For example, if the standard deviation of the fitting residuals of the multiple satellites at the current time increases compared to the standard deviation of the fitting residuals at the previous time; the number of target satellites whose fitting residuals at the current time increase compared to the previous time is greater than or equal to a preset threshold; or the proportion of the target satellites to the total number of satellites is greater than or equal to a preset proportion threshold; the number of valid times within the sliding window is less than or equal to a preset threshold; or the number of satellites decreasing within the sliding window is greater than or equal to a preset number threshold, then it can be determined that the user has entered an obstructed environment. In some embodiments, multiple consecutive times greater than or equal to a preset number must all satisfy at least three of these four conditions to determine that the user has entered an obstructed environment.
[0073] In some embodiments, performing optimization operations on one or more satellites among the plurality of satellites based on the fitting residuals corresponding to each satellite includes: determining the degree of interference corresponding to each satellite based on the fitting residuals corresponding to each satellite; and performing optimization operations on one or more satellites among the plurality of satellites based on the degree of interference corresponding to each satellite. In some embodiments, the degree of interference of a satellite can be determined based on the fitting residual of a satellite at the current time. This can be achieved by inputting the fitting residuals into a preset function tree or a trained model. For example, the larger the fitting residual, the greater the degree of interference of the satellite. Alternatively, the degree of interference of a satellite can be determined by comprehensively considering the fitting residuals of a satellite at multiple times, including the current time. This can be achieved by inputting multiple fitting residuals sorted in chronological order into a preset function tree or a trained model. In some embodiments, the degree of interference of a satellite can be a specific numerical value, or it can simply be a string (e.g., "high", "medium", "low", etc.). In some embodiments, optimization operations can be performed on the satellites with a higher degree of interference (i.e., abnormal satellites) among the multiple satellites. For example, abnormal satellites can be removed so that they do not participate in GNSS high-precision positioning. Or, abnormal satellites can be downweighted, i.e., their weight in GNSS high-precision positioning can be reduced. Alternatively, satellites with a lower degree of interference among the multiple satellites can be upweighted, i.e., their weight in GNSS high-precision positioning can be increased.
[0074] In some embodiments, the step of performing optimization operations on one or more satellites among the plurality of satellites according to the interference level corresponding to each satellite includes: if the number of satellites corresponding to the plurality of satellites is less than or equal to a preset number threshold, performing a removal operation on one or more satellites among the plurality of satellites whose corresponding interference level meets a preset requirement; otherwise, performing a weight adjustment operation on one or more satellites among the plurality of satellites whose corresponding interference level meets the preset requirement. In some embodiments, if the number of satellites corresponding to the plurality of satellites is less than or equal to the preset number threshold, then performing a removal operation on one or more satellites among the plurality of satellites whose corresponding interference level meets the preset requirement; if the number of satellites corresponding to the plurality of satellites is greater than the preset number threshold, then performing a deweighting or upweighting operation on one or more satellites among the plurality of satellites whose corresponding interference level meets the preset requirement. The preset requirement may refer to the one or more satellites being the preset number of satellites with the highest interference level among the plurality of satellites (e.g., deweighting or removing the three satellites with the highest interference level among the plurality of satellites), or it may refer to the one or more satellites being the preset number of satellites with the lowest interference level among the plurality of satellites (e.g., deweighting or removing the two satellites with the lowest interference level among the plurality of satellites). The interference level of one or more satellites can be either increased or decreased. Alternatively, it can refer to the interference level of one or more satellites being greater than or equal to a preset value (e.g., decreasing or eliminating a number of satellites whose interference level is greater than or equal to a preset value). Or, it can refer to the interference level of one or more satellites being less than or equal to a preset value (increasing the interference level of a number of satellites whose interference level is less than or equal to a preset value). Or, it can refer to the interference level of one or more satellites being one of at least one preset string (e.g., "high", "medium", "low" etc.) (e.g., decreasing or eliminating a number of satellites whose interference level is "high", or increasing the interference level of a number of satellites whose interference level is "low").
[0075] In some embodiments, performing a weight adjustment operation on one or more satellites among the plurality of satellites whose interference levels meet a preset requirement includes: for one or more satellites among the plurality of satellites whose interference levels meet the preset requirement, determining an initial weight for the one or more satellites based on the elevation angle data of the one or more satellites at the current time; and performing a weight adjustment operation on the one or more satellites based on the initial weight. In some embodiments, for one or more satellites among the plurality of satellites whose interference levels meet the preset requirement, performing a weighting operation on the satellite based on the elevation angle data of each of the one or more satellites at the current time to determine the initial weight of the satellite, and then performing a weight adjustment operation (upgrading or downgrading) on the satellite based on the initial weight.
[0076] In some embodiments, the method further includes: if it is determined that the user has entered an obstruction environment, recording the fitted polynomial function corresponding to each satellite, so that the fitted residual of the satellite at subsequent time points can still be obtained through the fitted polynomial function, until the user leaves the obstruction environment. In some embodiments, after determining that the user has entered an obstruction environment, recording the fitted polynomial function corresponding to each satellite at this time, so that the fitted residual of the satellite at multiple subsequent time points can still be obtained through the fitted polynomial function corresponding to each satellite for a subsequent period of time, without re-fitting the polynomial, until it is determined that the user has left the obstruction environment.
[0077] In some embodiments, the method further includes: determining whether the user has left the obstructed environment based on a third change in the fitting residuals corresponding to each of the plurality of satellites and a fourth change in the standard deviation of the fitting residuals corresponding to the plurality of satellites while the user is in the obstructed environment. In some embodiments, while the user is in the obstructed environment, it is still necessary to record the fitting residuals of each of the plurality of satellites at each time point and the standard deviation (STD) of the fitting residuals corresponding to the plurality of satellites at each time point, and then determine whether the user has left the obstructed environment based on whether the change in the fitting residuals corresponding to each of the plurality of satellites meets a preset index and whether the change in the standard deviation of the fitting residuals corresponding to the plurality of satellites meets a preset index. In some embodiments, determining whether the user has left the obstructed environment based on a third change in the fitting residuals corresponding to each of the plurality of satellites and a fourth change in the standard deviation of the fitting residuals corresponding to the plurality of satellites includes: determining whether the user has left the obstructed environment based on the proportion of the number of satellites whose corresponding fitting residuals have decreased to the total number of satellites in the plurality of satellites, and the number of times the standard deviation of the fitting residuals corresponding to the plurality of satellites has remained decreasing in the obstructed environment. In some embodiments, the user's current departure from the obstructed environment can be determined based on the proportion of the number of satellites whose corresponding fitting residuals have decreased (a decrease in fitting residuals means a decrease in the fitting residuals of the satellite at the current time compared to the fitting residuals at the previous time) to the total number of satellites in the plurality of satellites, and the number of times the standard deviation of the fitting residuals corresponding to the plurality of satellites has remained decreasing in the obstructed environment (i.e., how many consecutive times the standard deviation of the fitting residuals corresponding to the plurality of satellites has remained decreasing). In some embodiments, both of these factors must meet a preset index for a plurality of consecutive times greater than or equal to a preset number to determine whether the user has left the obstructed environment.
[0078] Figure 2 A flowchart illustrating an example of a satellite positioning method according to an embodiment of this application is shown.
[0079] like Figure 2 As shown, the pseudorange, carrier phase, carrier-to-noise ratio (CNR) observation data and corresponding broadcast ephemeris data of all satellites output by the satellite receiver are acquired. Satellite position coordinates, satellite clock errors, and station coordinates (i.e., user position coordinates) are calculated. The satellite elevation angle is calculated using a rotation matrix. A polynomial function of elevation angle and CNR is constructed. The fitting residual of the current epoch (current time) is calculated. Based on the fitting residual, it is determined whether the user has entered an obstructed environment. If not, the elevation angle and CNR are used for joint weighting without adjusting the parameter estimation method in the GNSS high-precision positioning algorithm. If so, abnormal satellites are removed or downweighted based on indicators such as the fitting residual. At the same time, the parameter estimation weights in the GNSS high-precision positioning algorithm are adjusted. Based on the decreasing trend of the fitting residual, it is determined whether the user has left the obstructed environment. The satellite positioning result corresponding to the user's position is output based on the GNSS high-precision positioning algorithm.
[0080] Figure 3 The diagram illustrates a structural diagram of a computing device for satellite positioning according to an embodiment of this application. The computing device includes a first module 11, a second module 12, a third module 13, and a fourth module 14. The first module 11 is used to acquire observation data and broadcast ephemeris data of multiple satellites output by a satellite receiver in a successfully positioned state at the current time. The observation data includes pseudorange data and carrier-to-noise ratio data. In step S12, it is used to obtain the elevation angle data of each of the multiple satellites at the current time based on the broadcast ephemeris data and the pseudorange data. The third module 13 is used to, for each satellite, obtain a sampled dataset of the satellite within a time interval corresponding to a preset duration ending at the current time, perform polynomial fitting on the sampled dataset to obtain a fitted polynomial function, and input the elevation angle data of the satellite at the current time into the polynomial function. The system obtains the predicted carrier-to-noise ratio (CNR) value of the satellite at the current time, and determines the fitting residual of the satellite at the current time based on the predicted CNR value and the CNR data in the observation data. The sampling dataset includes elevation angle data and CNR data corresponding to the satellite at multiple times. Module 14 is used to determine whether the user has entered an obstructed environment based on the fitting residuals corresponding to the multiple satellites. If so, it performs optimization operations on one or more of the multiple satellites based on the fitting residuals corresponding to each satellite, and obtains the satellite positioning result corresponding to the user's location based on the optimized multiple satellites. The optimization operations include at least one of elimination operations and weight adjustment operations.
[0081] Module 11 is used to acquire observation data and broadcast ephemeris data of multiple satellites at the current time, which are output by the satellite receiver in the successful positioning state. The observation data includes pseudorange data and carrier-to-noise ratio data.
[0082] In some embodiments, the satellite receiver is located on the user's current device, which includes, but is not limited to, mobile phones, tablets, cars, etc., and this example embodiment does not specifically limit this. In some embodiments, a satellite receiver refers to an instrument that receives GNSS (Global Navigation Satellite System) satellite signals and determines its ground spatial position. In some embodiments, the observation data and broadcast ephemeris data of multiple satellites corresponding to the current time are acquired by the satellite receiver in a successfully positioned state. The observation data corresponding to each of the multiple satellites includes pseudorange data and carrier-to-noise ratio data corresponding to that satellite. The multiple satellites may refer to all satellites located at the current time, or they may refer to some of the satellites located at the current time. Pseudorange refers to the distance calculated by multiplying the time delay from the satellite transmitting the ranging code signal to the receiver receiving these signals by the speed of electromagnetic wave propagation in a vacuum. Due to the influence of various factors, this distance is not equal to the actual geometric distance between the satellite and the receiver. Carrier-to-noise ratio refers to the power of the satellite signal and is an important indicator for measuring signal quality. It is defined as the ratio of the power of the received signal to the noise power spectral density. In some embodiments, the carrier-to-noise ratio data output by the satellite receiver can be expressed by the following formula:
[0083] C / N0 = S R +G A -10lg(kT0)-N F -LB N +G P
[0084] Among them, S R For the received signal power, G A The gain of the receiver antenna in the satellite direction is 10lg(kT0), where N is the thermal noise density. F The receiver noise figure includes antenna and cable losses, L is the implementation loss plus A / D loss, and B is the receiver noise figure. N For the equivalent noise bandwidth, G P To process the gain for the receiver.
[0085] In some embodiments, broadcast ephemeris data refers to orbital information data contained in the radio signals broadcast by a satellite. This data is determined and provided by the ground control portion of the global navigation satellite system and mainly includes message information predicting the number of satellite orbital elements over a certain period of time.
[0086] In some embodiments, the observation data corresponding to each satellite may further include at least one of the carrier phase and Doppler for that satellite, wherein the carrier phase refers to the measured value of the phase of the satellite signal received by the reference station at the same receiving time relative to the phase of the carrier signal generated by the receiver, and the Doppler refers to the Doppler frequency shift or Doppler count of the radio signal broadcast by the satellite determined by the receiver.
[0087] Module 12 is used to obtain the elevation angle data of each of the plurality of satellites at the current time based on the broadcast ephemeris data and the pseudorange data.
[0088] In some embodiments, when determining whether a user has entered an obstructed environment, the satellite carrier-to-noise ratio (CNR) is one of the main metrics. If a fixed empirical value is used as the criterion for determining an obstructed environment, the judgment may be inaccurate or even wrong due to differences in different receivers and antennas. Therefore, it is necessary to utilize the positive correlation between the CNR and the satellite elevation angle, and make a joint judgment based on the CNR output by the receiver and the calculated satellite elevation angle.
[0089] In some embodiments, observation data from the satellites is acquired immediately upon startup of the satellite receiver. Once the number of satellites has stabilized, the position of each satellite in the Earth-fixed coordinate system and its corresponding satellite clock bias (the difference between the GPS satellite clock and the GPS standard time) can be calculated based on the broadcast ephemeris data. By using the satellite clock bias to correct the pseudorange data, the error term that the satellite signal will experience during transmission and reception is corrected, and the user's position at the current moment is obtained. Then, the elevation angle data corresponding to each satellite at the current moment can be calculated using these two positions. The elevation angle is the angle between the line connecting the satellite and the receiver antenna and the horizontal plane.
[0090] Module 13 is used to obtain, for each satellite, a sampled dataset of the satellite within a time interval of a corresponding preset duration with the current time as the endpoint, perform polynomial fitting on the sampled dataset to obtain a fitted polynomial function, obtain a predicted carrier-to-noise ratio (CNR) value for the satellite at the current time by inputting the satellite's elevation angle data at the current time into the polynomial function, and determine the fitting residual for the satellite at the current time based on the predicted CNR value and the CNR data in the observation data. The sampled dataset includes elevation angle data and CNR data corresponding to the satellite at multiple times.
[0091] In some embodiments, for each of the plurality of satellites, after calculating the elevation angle data corresponding to the satellite at a certain moment, the elevation angle data and carrier-to-noise ratio (CNR) data of the satellite at each moment are recorded. Here, a moment refers to the point in time when the satellite receiver receives the satellite signal from that satellite, also known as an epoch. In some embodiments, when the satellite receiver is first started, there is limited sample data, and the satellite elevation angle does not change significantly in a short period. This may result in a satellite corresponding to the same elevation angle at multiple moments but with multiple different CNRs. In this case, the average of all CNRs at that elevation angle is used as the CNR corresponding to that satellite at those multiple moments.
[0092] In some embodiments, since the carrier-to-noise ratio (CNR) and elevation angle data of the satellite at various times, including the current time, have been obtained, a sampled dataset of the satellite within a time interval of a preset duration, ending at the current time, can be selected. This sampled dataset includes elevation angle data and CNR data of the satellite at multiple times within the time interval. This sampled dataset is used as the dataset for subsequent polynomial fitting. Polynomial fitting is a common data analysis method that, based on a given set of data points, fits these data points by constructing a polynomial function. The polynomial function can be expressed as follows:
[0093] f(x) = a0 + a1·x + a2·x 2 +a3·x 3 +…+a n ·x n
[0094] Among them, a0, a1, a2…a n denoted as the polynomial coefficients, and n is the polynomial order.
[0095] In some embodiments, polynomial fitting in data analysis can help understand and predict relationships between variables, enabling prediction or estimation at unknown data points. When solving for the polynomial fitting coefficients, the least squares method can be used. This method aims to find a set of polynomial coefficients that minimizes the sum of squared errors between the actual observed values and the polynomial fitted values for all data points. To find this set of polynomial coefficients, the data points are arranged in matrix form, a matrix equation is constructed, and the optimal polynomial coefficients are solved. In polynomial fitting, the order of the fitting function directly affects the fitting accuracy and computational efficiency. An inappropriate choice of fitting order can lead to overfitting and underfitting. In this application, since the elevation angle and carrier-to-noise ratio are positively correlated, and their relationship curve is relatively smooth in the short term under normal conditions, it is not necessary to use a very high order for fitting.
[0096] In some embodiments, a polynomial fitting is performed on the sampled dataset. The specific process includes constructing a correlation matrix equation based on the sampled dataset, solving for the coefficient vector using a least-squares iterative optimization algorithm, constructing a corresponding fitting function, and using this fitting function as the fitted polynomial function for the satellite. The input of this polynomial function is the elevation angle, and the output is the carrier-to-noise ratio (CNR). In some embodiments, the elevation angle data of the satellite at the current time is input into the fitted polynomial function corresponding to the satellite, and the predicted CNR value for the satellite at the current time is calculated. The difference between the predicted CNR value and the CNR data actually output by the satellite receiver at the current time (i.e., the CNR data in the observation data) is used to obtain the fitting residual for the satellite at the current time. The fitting residual refers to the difference between the actual observed value and the predicted value in statistical analysis. In some embodiments, the above method is used to calculate and record the fitting residual for each of the multiple satellites at the current time for use in subsequent steps.
[0097] Module 14 is used to determine whether a user has entered an obstructed environment based on the fitting residuals corresponding to the multiple satellites; if so, it performs an optimization operation on one or more of the multiple satellites based on the fitting residuals corresponding to each satellite, and obtains the satellite positioning result corresponding to the user's location based on the optimized multiple satellites, wherein the optimization operation includes at least one of the following: elimination operation and weight adjustment operation.
[0098] In some embodiments, if the fitting residuals of each satellite are controlled within a certain range in a normal environment, but if the environment becomes harsh, the actual carrier-to-noise ratio of most satellites will show a sustained and significant decrease compared to the predicted value. In this case, the fitting residuals will be larger than under normal conditions. The degree of interference of a satellite can be determined based on its fitting residual at the current moment. This can be achieved by inputting the fitting residuals into a preset function tree or a trained model. For example, the larger the fitting residual, the greater the degree of interference. Alternatively, the degree of interference of a satellite can be determined by comprehensively considering the fitting residuals of a satellite at multiple moments, including the current moment. This can be achieved by inputting multiple fitting residuals sorted chronologically into a preset function tree or a trained model. In some embodiments, the degree of interference of a satellite can be a specific numerical value, or it can simply be a string (e.g., "high", "medium", "low", etc.). In some embodiments, it can be determined whether a user is currently in an obstructed environment based on the degree of interference corresponding to the plurality of satellites. For example, it can be determined whether a user is currently in an obstructed environment based on the number of satellites with a higher degree of interference (i.e., abnormal satellites) or the ratio of the number of satellites with a higher degree of interference to the total number of satellites.
[0099] In some embodiments, the statistical characteristics or numerical stability of the fitting residuals corresponding to the multiple satellites can also characterize the interference level of the user's current device (on which the satellite receiver is located). Therefore, it can be determined whether the user is currently in an obstructed environment based on the statistical characteristics or numerical stability of the fitting residuals corresponding to the multiple satellites. For example, the standard deviation (STD) of the fitting residuals corresponding to the multiple satellites can be calculated and used as an indicator to determine whether the user is currently in an obstructed environment. For example, if the STD of the fitting residuals corresponding to the multiple satellites at the current time is greater than or equal to a preset threshold, it is determined that the user is currently in an obstructed environment. Alternatively, it can be determined whether the user is currently in an obstructed environment based on the increase in the STD of the fitting residuals corresponding to the multiple satellites at the current time compared to the STD of the fitting residuals corresponding to the previous time. The formula for calculating the fitting residual STD is as follows:
[0100]
[0101] Where, ε i Let n be the satellite fitting residual for the i-th satellite, and n be the number of satellites.
[0102] In some embodiments, it can also be determined whether the user is currently in an obstructed environment based on the fitting residual corresponding to each of the plurality of satellites. For example, it can be determined based on the ratio of the number of satellites whose fitting residual at the current time is greater than or equal to a preset threshold to the total number of satellites in the plurality of satellites. Or, it can be determined based on the ratio of the number of satellites whose fitting residual at the current time is higher than the fitting residual at the previous time to the total number of satellites in the plurality of satellites.
[0103] In some embodiments, if it is determined that the user has entered an obstructed environment, the degree of interference of a satellite can be determined based on the fitting residual of each of the plurality of satellites at the current moment. The determination method has been described in detail above and will not be repeated here. In some embodiments, optimization operations can be performed on the satellites with a higher degree of interference (i.e., abnormal satellites) among the plurality of satellites. For example, abnormal satellites can be removed so that they do not participate in GNSS high-precision positioning. Or, abnormal satellites can be downweighted, that is, their weight in GNSS high-precision positioning can be reduced. Alternatively, satellites with a lower degree of interference can be upweighted, that is, their weight in GNSS high-precision positioning can be increased.
[0104] In some embodiments, if it is determined that the user has entered an obstructed environment, the degree of interference of the satellite can be determined based on the fitting residual of each of the plurality of satellites at the current time. Then, based on the degree of interference of each satellite, one or more satellites that need to be optimized are determined from the plurality of satellites, and optimization operations are performed on the one or more satellites. The optimization operations include, but are not limited to, satellite elimination, downweighting, upweighting, etc. This example embodiment does not make any special limitations on this. In some embodiments, the decision to perform optimization operations on the satellite or the type of optimization operation can be determined based on the satellite's fitting residual at the current moment. Alternatively, the decision to perform optimization operations or the type of optimization operation can be determined based on the change in the satellite's fitting residual at the current moment compared to the fitting residual at the previous moment (e.g., whether it increases or decreases). Alternatively, the decision to perform optimization operations or the type of optimization operation can be determined based on the satellite's lock-in duration at the current moment (lock-in duration refers to the duration during which the satellite is continuously captured; for example, if the satellite's signal is received starting at a target time and can be received continuously from that target time to the current time, then the lock-in duration at the current moment is equal to the duration obtained by subtracting the target time from the current time). Alternatively, the decision to perform optimization operations or the type of optimization operation can be determined by comprehensively considering the above factors. In some embodiments, the specific value of the weight adjustment (the specific value of increasing the weight or decreasing the weight) may be preset, or it may be determined based on the fitting residual of the satellite at the current moment, or it may be determined based on the difference between the fitting residual of the satellite at the current moment and the fitting residual at the previous moment, or it may be determined based on the locking duration of the satellite at the current moment, or it may be determined by combining the above factors.
[0105] In some embodiments, the satellite positioning result corresponding to the user's location is obtained based on the GNSS high-precision positioning algorithm for the satellite data corresponding to multiple optimized satellites. The satellite data includes, but is not limited to, any data related to the satellite, such as observation data, broadcast ephemeris data, elevation angle data, etc. This example embodiment does not impose any special limitations on this.
[0106] In some embodiments, obtaining the elevation angle data corresponding to each of the plurality of satellites at the current time based on the broadcast ephemeris data and the pseudorange data includes: obtaining the satellite position and corresponding satellite clock bias of each of the plurality of satellites at the current time based on the broadcast ephemeris data; obtaining the user position corresponding to the user position at the current time based on the pseudorange data, the satellite position, and the satellite clock bias; and obtaining the elevation angle data corresponding to each satellite at the current time based on the satellite position, the user position, and the geodetic latitude and longitude information corresponding to the user position. The related operations are the same as or similar to those described in the preceding embodiments, and therefore will not be repeated here, but are included by reference.
[0107] In some embodiments, obtaining the elevation angle data of each satellite at the current time based on the satellite position, the user position, and the geodetic latitude and longitude information corresponding to the user position includes: constructing a corresponding rotation matrix based on the geodetic latitude and longitude information corresponding to the user position; establishing a station-centered rectangular coordinate system with the user position as the origin; obtaining the first position of each satellite at the current time in the station-centered rectangular coordinate system based on the satellite position, the user position, and the rotation matrix; and obtaining the elevation angle data of each satellite at the current time by transforming the first position from the station-centered rectangular coordinate system to the station-centered polar coordinate system. Here, the related operations are the same as or similar to those described in the preceding embodiments, and therefore will not be repeated here, but are included by reference.
[0108] In some embodiments, obtaining the sampling dataset of the satellite within a time interval corresponding to a preset duration, with the current time as the endpoint, includes: establishing a sliding window for the obtained elevation angle data and carrier-to-noise ratio data of the satellite at each time, and selecting the sampling dataset within the sliding window, wherein the right boundary of the sliding window is the current time, and the window length of the sliding window is the preset duration. Here, the related operations are the same as or similar to those described in the preceding embodiments, and therefore will not be repeated here, but are included by reference.
[0109] In some embodiments, performing polynomial fitting on the sampled dataset includes: determining the polynomial fitting order based on the elevation angle range corresponding to the sampled dataset, and performing polynomial fitting on the sampled dataset based on the polynomial fitting order. Here, the related operations are the same as or similar to those described in the preceding embodiments, and therefore will not be repeated here, but are included by reference.
[0110] In some embodiments, the computing device is further configured to: determine that the satellite does not participate in polynomial fitting if the number of valid time points corresponding to the satellite within the sliding window is less than or equal to a first threshold, or if multiple elevation angle data points corresponding to the satellite within the sliding window are all less than or equal to a second threshold. The related operations are the same as or similar to those described in the preceding embodiments, and therefore will not be repeated here, but are incorporated herein by reference.
[0111] In some embodiments, selecting the sampled dataset within the sliding window includes: if the number of valid times corresponding to the satellite within the sliding window is less than a third threshold, selecting the sampled dataset within the sliding window; otherwise, increasing the window length of the sliding window so that the number of valid times corresponding to the satellite within the adjusted sliding window reaches the third threshold, and then selecting the sampled dataset within the adjusted sliding window. Here, the related operations are the same as or similar to those described in the preceding embodiments, and therefore will not be repeated here, but are included by reference.
[0112] In some embodiments, determining whether a user has entered an obstructed environment based on the fitting residuals corresponding to the plurality of satellites includes: determining whether a user has entered an obstructed environment based on a first change in the fitting residual of each of the plurality of satellites at the current time compared to the fitting residual at the previous time, and a second change in the standard deviation of the fitting residuals corresponding to the plurality of satellites at the current time compared to the standard deviation of the fitting residuals at the previous time. The related operations are the same as or similar to those described in the preceding embodiments, and therefore will not be repeated here, but are incorporated herein by reference.
[0113] In some embodiments, determining whether a user has entered an obstructed environment based on a first change in the fitting residual of each of the plurality of satellites at the current time compared to the fitting residual at the previous time, and a second change in the standard deviation of the fitting residuals of the plurality of satellites at the current time compared to the standard deviation of the fitting residuals of the plurality of satellites at the previous time, includes: determining whether a user has entered an obstructed environment based on the first change in the fitting residual of each of the plurality of satellites at the current time compared to the fitting residual at the previous time, the second change in the standard deviation of the fitting residuals of the plurality of satellites at the current time compared to the standard deviation of the fitting residuals of the plurality of satellites at the previous time, and the number of valid times and the change in the number of satellites within the sliding window. The related operations are the same as or similar to those described in the preceding embodiments, and therefore will not be repeated here, but are included by reference.
[0114] In some embodiments, performing optimization operations on one or more satellites among the plurality of satellites based on the fitting residuals corresponding to each satellite includes: determining the degree of interference corresponding to each satellite based on the fitting residuals corresponding to each satellite; and performing optimization operations on one or more satellites among the plurality of satellites based on the degree of interference corresponding to each satellite. Here, the relevant operations are the same as or similar to those described in the preceding embodiments, and therefore will not be repeated here, but are incorporated herein by reference.
[0115] In some embodiments, the step of performing optimization operations on one or more satellites among the plurality of satellites according to the interference level corresponding to each satellite includes: if the number of satellites corresponding to the plurality of satellites is less than or equal to a preset number threshold, performing a removal operation on one or more satellites among the plurality of satellites whose corresponding interference level meets a preset requirement; otherwise, performing a weight adjustment operation on one or more satellites among the plurality of satellites whose corresponding interference level meets the preset requirement. Here, the relevant operations are the same as or similar to those described in the preceding embodiments, and therefore will not be repeated here, but are included by reference.
[0116] In some embodiments, performing a weight adjustment operation on one or more satellites among the plurality of satellites whose interference levels meet preset requirements includes: determining an initial weight for one or more satellites among the plurality of satellites based on the elevation angle data of the one or more satellites at the current time; and performing a weight adjustment operation on the one or more satellites based on the initial weight. Here, the relevant operations are the same as or similar to those described in the preceding embodiments, and therefore will not be repeated here, but are included by reference.
[0117] In some embodiments, the computing device is further configured to: if it is determined that the user has entered an obstruction environment, record the fitted polynomial function corresponding to each satellite, so as to obtain the fitting residual of the satellite at the subsequent time using the fitted polynomial function, until the user leaves the obstruction environment. Here, the relevant operations are the same as or similar to those described in the preceding embodiments, and therefore will not be repeated here, but are included by reference.
[0118] In some embodiments, the computing device is further configured to: determine whether the user has left the obstructed environment based on a third change in the fitting residuals corresponding to each of the plurality of satellites and a fourth change in the standard deviation of the fitting residuals corresponding to the plurality of satellites during the process of the user being in an obstructed environment. The related operations are the same as or similar to those described in the preceding embodiments, and therefore will not be repeated here, but are incorporated herein by reference.
[0119] In addition to the methods and devices described in the above embodiments, this application also provides a computer-readable storage medium storing computer code that, when executed, performs the method described in any of the preceding embodiments.
[0120] This application also provides a computer program product that, when executed by a computing device, performs the method described in any of the preceding claims.
[0121] This application also provides a computing device, the computing device comprising:
[0122] One or more processors;
[0123] Memory, used to store one or more computer programs;
[0124] When the one or more computer programs are executed by the one or more processors, the one or more processors cause the one or more processors to perform the method as described in any of the preceding methods.
[0125] Figure 4 Exemplary systems that can be used to implement the various embodiments described in this application are shown;
[0126] like Figure 4 As shown in some embodiments, system 300 can function as any of the devices described in each of the embodiments. In some embodiments, system 300 may include one or more computer-readable media having instructions (e.g., system memory or NVM / storage device 320) and one or more processors (e.g., one or more processors 305) coupled to the one or more computer-readable media and configured to execute the instructions to implement the module and thus perform the actions described in this application.
[0127] In one embodiment, the system control module 310 may include any suitable interface controller to provide any suitable interface to at least one of the processors 305 and / or any suitable device or component communicating with the system control module 310.
[0128] The system control module 310 may include a memory controller module 330 to provide an interface to the system memory 315. The memory controller module 330 may be a hardware module, a software module, and / or a firmware module.
[0129] System memory 315 can be used, for example, to load and store data and / or instructions for system 300. In one embodiment, system memory 315 may include any suitable volatile memory, such as suitable DRAM. In some embodiments, system memory 315 may include double data rate type quad synchronous dynamic random access memory (DDR4 SDRAM).
[0130] In one embodiment, the system control module 310 may include one or more input / output (I / O) controllers to provide interfaces to the NVM / storage device 320 and (one or more) communication interfaces 325.
[0131] For example, NVM / storage device 320 may be used to store data and / or instructions. NVM / storage device 320 may include any suitable non-volatile memory (e.g., flash memory) and / or may include any suitable (one or more) non-volatile storage devices (e.g., one or more hard disk drives (HDDs), one or more optical disc drives (CDs), and / or one or more digital universal optical disc (DVD) drives).
[0132] NVM / storage device 320 may include storage resources that are physically part of a device on which system 300 is mounted, or that can be accessed by the device without necessarily being part of it. For example, NVM / storage device 320 may be accessed via a network through one or more communication interfaces 325.
[0133] One or more communication interfaces 325 may provide the system 300 with an interface to communicate over one or more networks and / or with any other suitable device. The system 300 may wirelessly communicate with one or more components of a wireless network in accordance with any of one or more wireless network standards and / or protocols.
[0134] In one embodiment, at least one of the processors 305 may be logically packaged with one or more controllers of the system control module 310 (e.g., memory controller module 330). In one embodiment, at least one of the processors 305 may be logically packaged with one or more controllers of the system control module 310 to form a system-in-package (SiP). In one embodiment, at least one of the processors 305 may be integrated with the logic of one or more controllers of the system control module 310 on the same die. In one embodiment, at least one of the processors 305 may be integrated with the logic of one or more controllers of the system control module 310 on the same die to form a system-on-a-chip (SoC).
[0135] In various embodiments, system 300 may be, but is not limited to, a server, workstation, desktop computing device, or mobile computing device (e.g., laptop computing device, handheld computing device, tablet computer, netbook, etc.). In various embodiments, system 300 may have more or fewer components and / or different architectures. For example, in some embodiments, system 300 includes one or more cameras, a keyboard, a liquid crystal display (LCD) screen (including a touchscreen display), a non-volatile memory port, multiple antennas, a graphics chip, an application-specific integrated circuit (ASIC), and a speaker.
[0136] In addition to the methods and devices described in the above embodiments, this application also provides a computer-readable storage medium storing computer code that, when executed, performs the method described in any of the preceding embodiments.
[0137] This application also provides a computer program product that, when executed by a computing device, performs the method described in any of the preceding claims.
[0138] This application also provides a computing device, the computing device comprising:
[0139] One or more processors;
[0140] Memory, used to store one or more computer programs;
[0141] When the one or more computer programs are executed by the one or more processors, the one or more processors cause the one or more processors to perform the method as described in any of the preceding methods.
[0142] It should be noted that this application can be implemented in software and / or a combination of software and hardware, for example, using an application-specific integrated circuit (ASIC), a general-purpose computer, or any other similar hardware device. In one embodiment, the software program of this application can be executed by a processor to implement the steps or functions described above. Similarly, the software program of this application (including related data structures) can be stored in a computer-readable recording medium, such as RAM memory, magnetic or optical drives, floppy disks, and similar devices. Furthermore, some steps or functions of this application can be implemented in hardware, for example, as circuitry that cooperates with a processor to perform the various steps or functions.
[0143] Furthermore, a portion of this application can be applied as a computer program product, such as computer program instructions, which, when executed by a computer, can invoke or provide the methods and / or technical solutions according to this application through the operation of the computer. Those skilled in the art will understand that the forms in which computer program instructions exist in a computer-readable medium include, but are not limited to, source files, executable files, installation package files, etc. Correspondingly, the ways in which computer program instructions are executed by a computer include, but are not limited to: the computer directly executing the instructions, or the computer compiling the instructions and then executing the corresponding compiled program, or the computer reading and executing the instructions, or the computer reading and installing the instructions and then executing the corresponding installed program. Here, the computer-readable medium can be any available computer-readable storage medium or communication medium accessible to a computer.
[0144] Communication media include media through which communication signals containing, for example, computer-readable instructions, data structures, program modules, or other data are transmitted from one system to another. Communication media can include guided transmission media (such as cables and wires (e.g., optical fibers, coaxial cables, etc.)) and wireless (unguided transmission) media capable of propagating energy waves, such as sound, electromagnetic, RF, microwave, and infrared. Computer-readable instructions, data structures, program modules, or other data can be embodied as modulated data signals in, for example, wireless media (such as carrier waves or similar mechanisms embodied as part of spread spectrum technology). The term "modulated data signal" refers to a signal whose one or more characteristics are altered or set in a manner that encodes information in the signal. Modulation can be analog, digital, or a hybrid modulation technique.
[0145] By way of example and not limitation, computer-readable storage media may include volatile and non-volatile, removable and non-removable media implemented by any method or technique for storing information such as computer-readable instructions, data structures, program modules or other data. For example, computer-readable storage media include, but are not limited to, volatile memories such as random access memory (RAM, DRAM, SRAM); and non-volatile memories such as flash memory, various read-only memories (ROM, PROM, EPROM, EEPROM), magnetic and ferromagnetic / ferroelectric memories (MRAM, FeRAM); and magnetic and optical storage devices (hard disks, magnetic tapes, CDs, DVDs); or other media now known or hereafter developed capable of storing computer-readable information / data for use by a computer system.
[0146] Herein, one embodiment of this application includes an apparatus comprising a memory for storing computer program instructions and a processor for executing the program instructions, wherein when the computer program instructions are executed by the processor, the apparatus is triggered to run a method and / or technical solution based on the foregoing embodiments of this application.
[0147] It will be apparent to those skilled in the art that this application is not limited to the details of the exemplary embodiments described above, and that this application can be implemented in other specific forms without departing from the spirit or essential characteristics of this application. Therefore, the embodiments should be considered exemplary and non-limiting in all respects, and the scope of this application is defined by the appended claims rather than the foregoing description. Thus, all variations falling within the meaning and scope of equivalents of the claims are intended to be embraced within this application. No reference numerals in the claims should be construed as limiting the scope of the claims. Furthermore, it is clear that the word "comprising" does not exclude other units or steps, and the singular does not exclude the plural. Multiple units or devices recited in the apparatus claims may also be implemented by a single unit or device in software or hardware. The terms "first," "second," etc., are used to indicate names and do not indicate any particular order.
Claims
1. A method for satellite positioning, wherein, The method includes: The system acquires observation data and broadcast ephemeris data of multiple satellites at the current moment, output by the satellite receiver in a successfully positioned state. The observation data includes pseudorange data and carrier-to-noise ratio data. Based on the broadcast ephemeris data and the pseudorange data, obtain the elevation angle data of each of the plurality of satellites at the current time; For each satellite, a sampled dataset of the satellite within a time interval of a corresponding preset duration with the current time as the endpoint is obtained. A polynomial fitting is performed on the sampled dataset to obtain a fitted polynomial function. By inputting the elevation angle data of the satellite at the current time into the polynomial function, the predicted carrier-to-noise ratio (CNR) value of the satellite at the current time is obtained. Based on the predicted CNR value and the CNR data in the observation data, the fitting residual of the satellite at the current time is determined. The sampled dataset includes elevation angle data and CNR data corresponding to the satellite at multiple times. Based on the fitting residuals corresponding to the multiple satellites, it is determined whether the user has entered an obstructed environment; if so, based on the fitting residuals corresponding to each satellite, an optimization operation is performed on one or more of the multiple satellites, and the satellite positioning result corresponding to the user's location is obtained based on the optimized multiple satellites, wherein the optimization operation includes at least one of the following: elimination operation and weight adjustment operation.
2. The method according to claim 1, wherein, The step of obtaining the elevation angle data of each of the plurality of satellites at the current time based on the broadcast ephemeris data and the pseudorange data includes: Based on the broadcast ephemeris data, the satellite position and corresponding satellite clock bias of each of the plurality of satellites at the current time are obtained. Based on the pseudorange data, the satellite position and the satellite clock bias, the user position at the current time is obtained. Based on the satellite position, the user position and the geodetic latitude and longitude information corresponding to the user position, the elevation angle data of each satellite at the current time is obtained.
3. The method according to claim 2, wherein, The step of obtaining the elevation angle data of each satellite at the current time based on the satellite position, the user position, and the corresponding geodetic latitude and longitude information of the user position includes: Construct a corresponding rotation matrix based on the geodetic latitude and longitude information corresponding to the user's location; A station-centered rectangular coordinate system is established with the user's location as the origin. Based on the satellite's location, the user's location, and the rotation matrix, the first position of each satellite in the station-centered rectangular coordinate system at the current time is obtained. By transforming the first position from the station-centered rectangular coordinate system to the station-centered polar coordinate system, the elevation angle data corresponding to each satellite at the current time is obtained.
4. The method according to claim 1, wherein, The process of obtaining the sampled dataset of the satellite within a time interval of a preset duration ending at the current time includes: A sliding window is established for the obtained elevation angle data and carrier-to-noise ratio data of the satellite at various times. The sampled dataset within the sliding window is selected, wherein the right boundary of the sliding window is the current time and the window length of the sliding window is a preset duration.
5. The method according to claim 1 or 4, wherein, The step of performing polynomial fitting on the sampled dataset includes: The order of the polynomial fitting is determined based on the range of elevation angles corresponding to the sampled dataset, and polynomial fitting is performed on the sampled dataset based on the order of the polynomial fitting.
6. The method according to claim 4, wherein, The method further includes: If the number of valid times corresponding to the satellite within the sliding window is less than or equal to the first threshold, or if multiple elevation angle data corresponding to the satellite within the sliding window are all less than or equal to the second threshold, it is determined that the satellite will not participate in polynomial fitting.
7. The method according to claim 4, wherein, Selecting the sampled dataset within the sliding window includes: If the number of valid times corresponding to the satellite within the sliding window is less than the third threshold, the sampled dataset within the sliding window is selected; otherwise, the window length of the sliding window is increased so that the number of valid times corresponding to the satellite within the adjusted sliding window reaches the third threshold, and the sampled dataset within the adjusted sliding window is selected.
8. The method according to claim 4, wherein, The step of determining whether a user has entered an obstructed environment based on the fitting residuals corresponding to the multiple satellites includes: Based on the first change of the fitting residual of each of the plurality of satellites at the current time compared to the fitting residual at the previous time, and the second change of the standard deviation of the fitting residual of the plurality of satellites at the current time compared to the standard deviation of the fitting residual at the previous time, it is determined whether the user has entered an obstructed environment.
9. The method according to claim 8, wherein, The step of determining whether a user has entered an obstructed environment based on a first change in the fitting residual of each of the plurality of satellites at the current time compared to the fitting residual at the previous time, and a second change in the standard deviation of the fitting residuals of the plurality of satellites at the current time compared to the standard deviation of the fitting residuals at the previous time, includes: Based on the first change of the fitting residual of each of the multiple satellites at the current time compared to the fitting residual at the previous time, the second change of the standard deviation of the fitting residuals of the multiple satellites at the current time compared to the standard deviation of the fitting residuals at the previous time, and the number of valid times and the change in the number of satellites within the sliding window, it is determined whether the user has entered an obstructed environment.
10. The method according to claim 1, wherein, The step of performing optimization operations on one or more satellites from the plurality of satellites based on the fitting residuals corresponding to each satellite includes: The degree of interference for each satellite is determined based on the fitting residual corresponding to each satellite. Based on the degree of interference corresponding to each satellite, optimization operations are performed on one or more of the multiple satellites.
11. The method according to claim 10, wherein, The step of performing optimization operations on one or more satellites from the plurality of satellites based on the interference level corresponding to each satellite includes: If the number of satellites corresponding to the plurality of satellites is less than or equal to a preset number threshold, one or more satellites whose interference level among the plurality of satellites meets the preset requirements are removed; otherwise, one or more satellites whose interference level among the plurality of satellites meets the preset requirements are weighted.
12. The method according to claim 11, wherein, The step of performing a weight adjustment operation on one or more satellites among the plurality of satellites whose corresponding interference levels meet preset requirements includes: For one or more satellites among the plurality of satellites whose interference level meets the preset requirements, the initial weights of the one or more satellites are determined based on the elevation angle data of the one or more satellites at the current time. The weight adjustment operation is performed on the one or more satellites based on the initial weights.
13. The method according to claim 1, wherein, The method further includes: If it is determined that the user has entered the obstruction environment, the fitted polynomial function corresponding to each satellite is recorded so that the fitting residual of the satellite at the subsequent time can still be obtained through the fitted polynomial function at the subsequent time, until the user leaves the obstruction environment.
14. The method according to claim 13, wherein, The method further includes: During the process of the user being in the obstructed environment, it is determined whether the user has left the obstructed environment based on the third change of the fitting residuals corresponding to each of the plurality of satellites and the fourth change of the standard deviation of the fitting residuals corresponding to the plurality of satellites.
15. A computing device for satellite positioning, wherein, The computing device includes: The module is used to acquire observation data and broadcast ephemeris data of multiple satellites at the current time, which are output by the satellite receiver in the state of successful positioning. The observation data includes pseudorange data and carrier-to-noise ratio data. The first and second modules are used to obtain the elevation angle data of each of the plurality of satellites at the current time based on the broadcast ephemeris data and the pseudorange data; The first and third modules are used to obtain, for each satellite, a sampled dataset of the satellite within a time interval of a corresponding preset duration with the current time as the endpoint, perform polynomial fitting on the sampled dataset to obtain a fitted polynomial function, obtain the predicted carrier-to-noise ratio (CNR) value of the satellite at the current time by inputting the elevation angle data of the satellite at the current time into the polynomial function, and determine the fitting residual of the satellite at the current time based on the predicted CNR value and the CNR data in the observation data. The sampled dataset includes elevation angle data and CNR data corresponding to the satellite at multiple times. The first and fourth modules are used to determine whether the user has entered an obstructed environment based on the fitting residuals corresponding to the multiple satellites; if so, based on the fitting residuals corresponding to each satellite, an optimization operation is performed on one or more of the multiple satellites, and the satellite positioning result corresponding to the user's location is obtained based on the optimized multiple satellites, wherein the optimization operation includes at least one of the elimination operation and weight adjustment operation.
16. A computing device for satellite positioning, comprising a memory, a processor, and a computer program stored in the memory, characterized in that, The processor executes the computer program to implement the steps of the method as described in any one of claims 1 to 14.
17. A computer-readable storage medium having a computer program / instructions stored thereon, characterized in that, When the computer program / instructions are executed by the processor, they implement the steps of the method as described in any one of claims 1 to 14.
18. A computer program product, comprising a computer program, characterized in that, When executed by a processor, the computer program implements the steps of the method as described in any one of claims 1 to 14.