A smartphone positioning method, system, device and medium

By combining data from the Global Navigation Satellite System and barometric altimeter, scene types are identified and data fusion positioning is performed, solving the problems of low robustness and insufficient accuracy of smartphone positioning and achieving high-precision positioning results.

CN119738853BActive Publication Date: 2025-10-24SUN YAT SEN UNIV
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202410540395.8
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2024-04-30
Publication Date
2025-10-24
Estimated Expiration
2044-04-30

AI Technical Summary

Technical Problem

When existing smartphones use only a single sensor for positioning, they have low robustness and the satellite navigation elevation measurement is not accurate enough, resulting in low positioning accuracy.

Method used

By acquiring data from the Global Navigation Satellite System and barometric altimeter collected by smartphones, the average carrier-to-noise ratio and the average pseudorange multipath error are calculated to identify the environmental scene type. In different scenes, a tight or loose combination fusion strategy is used to perform data fusion positioning to generate accurate positioning data.

Benefits of technology

It improves the accuracy and robustness of smartphones in acquiring global location information, ensuring the accuracy of positioning results.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119738853B_ABST
    Figure CN119738853B_ABST
Patent Text Reader

Abstract

The application discloses a kind of smartphone positioning method, system, equipment and medium, it is related to Internet of Things technical field.Based on global navigation satellite system data respectively carries out noise ratio average value and pseudo-range multipath error average value calculation, generates noise ratio average value and pseudo-range multipath error average value.According to noise ratio average value and pseudo-range multipath error average value, environment scene is identified.When scene type is multipath serious scene, according to tight combination fusion strategy, barometric altimeter data and global navigation satellite system data are used to carry out data fusion positioning, generate first positioning data.When scene type is open environment scene, based on noise ratio average value, pseudo-range multipath error average value, barometric altimeter data and global navigation satellite system data, data fusion positioning is carried out, and second positioning data is generated.Global navigation satellite system data and barometric altimeter data are used to carry out data fusion positioning, and the accuracy and robustness of global position information obtained by smartphone are improved.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present application relates to the technical field of Internet of Things, and in particular to a smart phone positioning method, system, device and medium. BACKGROUND

[0002] Smart phones are important terminal devices in smart cities and Internet of Things, and high-precision positioning technology based on smart phones has a very broad application market. Satellite navigation and location services have played an important role in time and space empowerment, giving strong vitality to the development of China's digital economy, and have played a great role in people's daily life and production.

[0003] Smart phones are equipped with a large number of sensors. It has important theoretical and application value to study how to use various sensors for fusion positioning without changing the original hardware settings. However, the existing smart phones have low robustness for positioning using a single sensor, and the satellite navigation height measurement is not accurate enough, resulting in low accuracy of the positioning result. SUMMARY

[0004] The present application provides a smart phone positioning method, system, device and medium, which solves the technical problem of low robustness of the existing smart phone for positioning using a single sensor, and the satellite navigation height measurement is not accurate enough, resulting in low accuracy of the positioning result.

[0005] The smart phone positioning method provided by the present application comprises:

[0006] Global navigation satellite system data and barometric altimeter data collected by a smart phone are obtained, and carrier-to-noise ratio average value and pseudorange multipath error average value are calculated based on the global navigation satellite system data, to generate the carrier-to-noise ratio average value and the pseudorange multipath error average value;

[0007] According to the carrier-to-noise ratio average value and the pseudorange multipath error average value, the environment scene is identified to determine the scene type;

[0008] When the scene type is a severe multipath scene, the barometric altimeter data and the global navigation satellite system data are used for data fusion positioning according to a tight combination fusion strategy to generate first positioning data corresponding to the smart phone;

[0009] When the scene type is an open environment scene, data fusion positioning is performed based on the carrier-to-noise ratio average value, the pseudorange multipath error average value, the barometric altimeter data and the global navigation satellite system data to generate second positioning data corresponding to the smart phone.

[0010] Optionally, the global navigation satellite system data comprises a plurality of satellite signal wavelengths, a plurality of ionospheric errors, a plurality of satellite signal powers, a plurality of double-sided noise power spectral densities, a plurality of pseudo-range values, a plurality of carrier phase values and a plurality of carrier phase ambiguities; the step of performing carrier-to-noise ratio average value and pseudo-range multipath error average value calculation based on the global navigation satellite system data respectively, to generate the carrier-to-noise ratio average value and the pseudo-range multipath error average value, comprises:

[0011] calculating the ratio between the satellite signal power and the corresponding double-sided noise power spectral density respectively, to generate a plurality of carrier-to-noise ratios;

[0012] calculating the sum value between all the carrier-to-noise ratios, to generate a carrier-to-noise ratio sum value;

[0013] calculating the ratio between the carrier-to-noise ratio sum value and the corresponding number of carrier-to-noise ratios, to generate a carrier-to-noise ratio average value;

[0014] respectively substituting the satellite signal wavelengths, the ionospheric errors, the pseudo-range values, the carrier phase values and the carrier phase ambiguities into a preset pseudo-range multipath error expression for calculation, to generate a plurality of pseudo-range multipath errors;

[0015] the preset pseudo-range multipath error expression is:

[0016] ;

[0017] wherein, is a pseudo-range multipath error; is a pseudo-range value observed by a smartphone; is a carrier phase value observed by a smartphone; is a satellite signal wavelength; is an ionospheric error; is a carrier phase ambiguity;

[0018] calculating the sum value between all the pseudo-range multipath errors, to generate a pseudo-range multipath error sum value;

[0019] calculating the ratio between the pseudo-range multipath error sum value and the corresponding number of errors, to generate a pseudo-range multipath error average value.

[0020] Optionally, the step of identifying an environment scenario and determining a scenario type according to the carrier-to-noise ratio average value and the pseudo-range multipath error average value, comprises:

[0021] when the carrier-to-noise ratio average value is less than a first preset value, and the pseudo-range multipath error average value is greater than a second preset value, the scenario type is a severe multipath scenario;

[0022] When the carrier-to-noise ratio average value is greater than or equal to the first preset value and the pseudo-range multipath error average value is less than the second preset value, the scene type is an open environment scene.

[0023] Optionally, when the scene type is a multipath severe scene, the step of adopting the barometric altimeter data and the global navigation satellite system data to perform data fusion positioning according to a tight combination fusion strategy to generate the first positioning data corresponding to the smartphone comprises:

[0024] When the scene type is a multipath severe scene, a satellite three-dimensional position in the global navigation satellite system data, a smartphone three-dimensional position, a pseudo-range observation correction value and a smartphone clock bias are adopted to construct a four-element nonlinear equation;

[0025] The four-element nonlinear equation is linearized to generate a linearized positioning matrix equation;

[0026] The linearized positioning matrix equation is iteratively solved by using a Newton iteration method to determine the first positioning data corresponding to the smartphone.

[0027] Optionally, the step of iteratively solving the linearized positioning matrix equation by using the Newton iteration method to determine the first positioning data corresponding to the smartphone comprises:

[0028] An initial smartphone position coordinate and an initial clock bias value corresponding to the linearized positioning matrix equation are updated by using a preset update formula to generate an intermediate smartphone position coordinate and an intermediate clock bias value and to count an iteration number;

[0029] The preset update formula is:

[0030] ;

[0031] ;

[0032] wherein, is the smartphone position coordinate updated after the kth iteration; is the smartphone position coordinate updated after the (k-1)th iteration; represents a three-dimensional position change amount in a positioning equation solution; is the smartphone clock bias estimated in the kth iteration; is the smartphone clock bias estimated in the (k-1)th iteration; is an estimated smartphone clock bias change amount;

[0033] When the iteration number is less than or equal to a preset iteration number, the intermediate smartphone position coordinate and the intermediate clock bias value are substituted into a preset precision calculation formula to generate a precision value.

[0034] The preset precision calculation formula is:

[0035] ;

[0036] Wherein, A is a precision value; represents a three-dimensional position change in a positioning equation solution, and the symbol represents a two-norm function; is an estimated smart phone clock difference change;

[0037] When the precision value is less than a preset threshold value, the intermediate smart phone position coordinates and the intermediate clock difference value are taken as target smart phone position coordinates and target clock difference values.

[0038] The height change in the barometric altimeter data, the target smart phone position coordinates and the target clock difference values are coupled into a preset positioning equation for least square solution, to obtain first positioning data corresponding to the smart phone.

[0039] The preset positioning equation is:

[0040] ;

[0041] ;

[0042] ;

[0043] Wherein, is a geodetic coordinate corresponding to a geocentric coordinate; h is a third coordinate dimension of the geodetic coordinate, referred to as geodetic height; is a geodetic dimension; is a geodetic longitude; is an estimated smart phone clock difference change; is a height change; R is a radius of curvature of a prime vertical circle of a reference ellipsoid; e is a spherical eccentricity; a is a long radius of a reference sphere; d is a short radius; and p is an intermediate variable.

[0044] When the precision value is greater than the preset threshold value, the intermediate smart phone position coordinates and the intermediate clock difference values are taken as new initial smart phone position coordinates and new initial clock difference values, and the step of updating the initial smart phone position coordinates and the initial clock difference values corresponding to the linearized positioning matrix equation by using the preset update formula is executed, to generate intermediate smart phone position coordinates and intermediate clock difference values and count the number of iterations.

[0045] Optionally, the step of performing data fusion positioning based on the carrier-to-noise ratio average value, the pseudorange multipath error average value, the barometer data and the global navigation satellite system data to generate the second positioning data corresponding to the smartphone comprises:

[0046] When the pseudorange multipath error average value is less than a third preset value and the carrier-to-noise ratio average value is greater than or equal to a fourth preset value, performing data fusion positioning according to a loose combination fusion strategy using the barometer data and the global navigation satellite system data to generate the first three-dimensional positioning data corresponding to the smartphone;

[0047] When the pseudorange multipath error average value is within a first preset interval and the carrier-to-noise ratio average value is within a second preset interval, performing data fusion positioning according to the tight combination fusion strategy using the barometer data and the global navigation satellite system data to generate the second three-dimensional positioning data corresponding to the smartphone.

[0048] Optionally, the step of performing data fusion positioning according to the loose combination fusion strategy using the barometer data and the global navigation satellite system data to generate the first three-dimensional positioning data corresponding to the smartphone comprises:

[0049] inputting the barometer data and the global navigation satellite system data into a preset Kalman filter model to estimate a state variable and generate an estimated state vector;

[0050] substituting a gain matrix, a measurement matrix, a measurement matrix corresponding to the estimated state vector and the estimated state vector into a preset state variable estimation formula to calculate a Kalman filter state quantity estimate value;

[0051] The preset state variable estimation formula is:

[0052] ;

[0053] wherein, the Kalman filter state quantity estimate value; is the estimated state vector from time f-1 to time f; is the gain matrix; is the measurement matrix; is the measurement matrix, and its expression is ;

[0054] subtracting initial height data in the Kalman filter state quantity estimate value from height data in the global navigation satellite system data to generate target height data;

[0055] The target height data is used to update coordinate data corresponding to the Kalman filtering state quantity estimation value, so as to generate first three-dimensional positioning data corresponding to the smart phone.

[0056] The application further provides a smart phone positioning system, comprising:

[0057] An average value generation module is configured to acquire global navigation satellite system (GNSS) data and barometric altimeter data collected by the smart phone, and perform carrier-to-noise ratio (C / N) average value and pseudorange multipath error average value calculation based on the GNSS data, so as to generate the C / N average value and the pseudorange multipath error average value.

[0058] A scene type determination module is configured to perform environment scene recognition based on the C / N average value and the pseudorange multipath error average value, and determine a scene type.

[0059] A first positioning data generation module is configured to perform data fusion positioning based on the barometric altimeter data and the GNSS data according to a tight combination fusion strategy when the scene type is a multipath serious scene, so as to generate first positioning data corresponding to the smart phone.

[0060] A second positioning data generation module is configured to perform data fusion positioning based on the C / N average value, the pseudorange multipath error average value, the barometric altimeter data and the GNSS data when the scene type is an open environment scene, so as to generate second positioning data corresponding to the smart phone.

[0061] The application further provides an electronic device comprising a memory and a processor, wherein the memory stores a computer program, and the computer program is executed by the processor to enable the processor to perform steps of any one of the above smart phone positioning methods.

[0062] The application further provides a computer readable storage medium, which stores a computer program, and the computer program is executed to implement any one of the above smart phone positioning methods.

[0063] As can be seen from the above technical solutions, the application has the following advantages:

[0064] The present invention obtains Global Navigation Satellite System (GNSS) data and barometric altimeter data collected by a smartphone. Based on the GNSS data, the system calculates the average carrier-to-noise ratio (CNR) and the average pseudorange multipath error (PSE) to generate the CNR and PSE averages. The system then identifies the environmental scene based on the CNR and PSE averages to determine the scene type. When the scene type is a severe multipath scenario, the system uses the barometric altimeter data and GNSS data for data fusion positioning according to a tight fusion strategy to generate first positioning data corresponding to the smartphone. When the scene type is an open environment scenario, the system uses the CNR average, the PSE average, the barometric altimeter data, and the GNSS data for data fusion positioning to generate second positioning data corresponding to the smartphone. This solves the technical problem that existing smartphones use only a single sensor for positioning, resulting in low robustness and inaccurate satellite navigation elevation measurements, leading to low positioning accuracy. By using GNSS and barometric altimeter data for data fusion positioning, the system improves the accuracy and robustness of global location information acquired by smartphones, thereby achieving highly accurate positioning results. BRIEF DESCRIPTION OF THE DRAWINGS

[0065] In order to more clearly illustrate the embodiments of the present invention or the technical solutions in the prior art, the following briefly introduces the drawings required for use in the embodiments or the description of the prior art. Obviously, the drawings described below are only some embodiments of the present invention. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying any creative work.

[0066] Figure 1 A flowchart of a method for locating a smart phone provided in accordance with the first embodiment of the present invention;

[0067] Figure 2 A flowchart of a method for locating a smart phone according to a second embodiment of the present invention;

[0068] Figure 3 This is a structural block diagram of a smartphone positioning system provided by Embodiment 3 of the present invention;

[0069] Figure 4 This is a structural block diagram of an electronic device provided in Example 4 of the present invention. DETAILED DESCRIPTION

[0070] The embodiments of the present invention provide a smartphone positioning method, system, device and medium for solving the technical problems that existing smartphones use only a single sensor for positioning, which has low robustness and insufficient precision in satellite navigation elevation measurement, resulting in low accuracy of positioning results.

[0071] In order to make the application purposes, features and advantages of the present application more obvious and easy to understand, the technical solutions in the embodiments of the present application will be clearly and completely described below in conjunction with the accompanying drawings of the embodiments of the present application. Obviously, the following described embodiments are only a part of the embodiments of the present application, rather than all the embodiments. Based on the embodiments in the present application, all other embodiments obtained by those skilled in the art without creative labor fall within the scope of the present application.

[0072] Please refer to Figure 1 , Figure 1 A flow chart of a positioning method of a smart phone provided by the embodiment one of the present application.

[0073] The positioning method of the smart phone provided by the embodiment one of the present application comprises:

[0074] Step 101, acquiring global navigation satellite system data and barometric altimeter data collected by the smart phone, and calculating a carrier-to-noise ratio average value and a pseudo-range multipath error average value based on the global navigation satellite system data, to generate the carrier-to-noise ratio average value and the pseudo-range multipath error average value.

[0075] In the embodiment of the present application, the smart phone is provided with two types of sensors, i.e., a global navigation satellite system (GNSS) and a barometric altimeter (PS). The global navigation satellite system data and the barometric altimeter data collected by the smart phone are acquired. The global navigation satellite system data includes a plurality of satellite signal wavelengths, a plurality of ionospheric errors, a plurality of satellite signal powers, a plurality of bilateral noise power spectral densities, a plurality of pseudo-range values, a plurality of carrier phase values and a plurality of carrier phase ambiguities, etc., which are a plurality of data used for realizing positioning calculation. By calculating the ratio between the satellite signal power and the corresponding bilateral noise power spectral density, a plurality of carrier-to-noise ratios are obtained. The sum of all the carrier-to-noise ratios is calculated to generate a carrier-to-noise ratio sum value. The ratio between the carrier-to-noise ratio sum value and the corresponding number of carrier-to-noise ratios is calculated to generate a carrier-to-noise ratio average value. The satellite signal wavelengths, the ionospheric errors, the pseudo-range values, the carrier phase values and the carrier phase ambiguities are respectively substituted into a preset pseudo-range multipath error expression for calculation to generate a plurality of pseudo-range multipath errors. The sum of all the pseudo-range multipath errors is calculated to generate a pseudo-range multipath error sum value. The ratio between the pseudo-range multipath error sum value and the corresponding number of errors is calculated to generate a pseudo-range multipath error average value.

[0076] Step 102, identifying an environment scene according to the carrier-to-noise ratio average value and the pseudo-range multipath error average value, to determine a scene type.

[0077] In the embodiment of the present application, the carrier-to-noise ratio average value and the pseudo-range multipath error average value are compared with the first preset value and the second preset value respectively. When the carrier-to-noise ratio average value is less than the first preset value and the pseudo-range multipath error average value is greater than the second preset value, the scene type is a multipath serious scene. When the carrier-to-noise ratio average value is greater than or equal to the first preset value and the pseudo-range multipath error average value is less than the second preset value, the scene type is an open environment scene.

[0078] In step 103, when the scene type is a multipath serious scene, the barometric altimeter data and the global navigation satellite system data are used for data fusion positioning according to a tight combination fusion strategy to generate the first positioning data corresponding to the smart phone.

[0079] In the embodiment of the present application, when the scene type is a multipath serious scene, the satellite three-dimensional position in the global navigation satellite system data, the smart phone three-dimensional position, the pseudo-range observation correction value and the smart phone clock clock difference are used to construct a four-element nonlinear equation. The four-element nonlinear equation is linearized to generate a linearized positioning matrix equation. The Newton iteration method is used to iteratively solve the linearized positioning matrix equation to determine the first positioning data corresponding to the smart phone.

[0080] In step 104, when the scene type is an open environment scene, the carrier-to-noise ratio average value, the pseudo-range multipath error average value, the barometric altimeter data and the global navigation satellite system data are used for data fusion positioning to generate the second positioning data corresponding to the smart phone.

[0081] In the embodiment of the present application, when the pseudo-range multipath error average value is less than the third preset value and the carrier-to-noise ratio average value is greater than or equal to the fourth preset value, the barometric altimeter data and the global navigation satellite system data are used for data fusion positioning according to a loose combination fusion strategy to generate the first three-dimensional positioning data corresponding to the smart phone. When the pseudo-range multipath error average value is within the first preset interval and the carrier-to-noise ratio average value is within the second preset interval, the barometric altimeter data and the global navigation satellite system data are used for data fusion positioning according to a tight combination fusion strategy to generate the second three-dimensional positioning data corresponding to the smart phone.

[0082] In the embodiment of the present application, the global navigation satellite system data and the barometric altimeter data collected by the smart phone are acquired, the carrier-to-noise ratio average value and the pseudorange multipath error average value are calculated based on the global navigation satellite system data respectively, and the carrier-to-noise ratio average value and the pseudorange multipath error average value are generated. The environment scene is identified based on the carrier-to-noise ratio average value and the pseudorange multipath error average value, and the scene type is determined. When the scene type is a multipath serious scene, the data fusion positioning is performed on the global navigation satellite system data and the barometric altimeter data according to the tight combination fusion strategy, and the first positioning data corresponding to the smart phone is generated. When the scene type is an open environment scene, the data fusion positioning is performed based on the carrier-to-noise ratio average value, the pseudorange multipath error average value, the barometric altimeter data and the global navigation satellite system data, and the second positioning data corresponding to the smart phone is generated. The technical problem of low positioning robustness of the existing smart phone using a single sensor and low accuracy of satellite navigation height measurement, resulting in low accuracy of the positioning result, is solved. The global navigation satellite system data and the barometric altimeter data are used for data fusion positioning, the accuracy and robustness of the smart phone for acquiring global position information are improved, and thus the accuracy of the positioning result is high.

[0083] Please refer to Figure 2 , Figure 2 The flow chart of the steps of the smart phone positioning method provided in the second embodiment of the present application is shown in the figure.

[0084] The other smart phone positioning method provided in the second embodiment of the present application comprises the following steps:

[0085] In step 201, the global navigation satellite system data and the barometric altimeter data collected by the smart phone are acquired, the carrier-to-noise ratio average value and the pseudorange multipath error average value are calculated based on the global navigation satellite system data respectively, and the carrier-to-noise ratio average value and the pseudorange multipath error average value are generated.

[0086] Further, the global navigation satellite system data comprises a plurality of satellite signal wavelengths, a plurality of ionospheric errors, a plurality of satellite signal powers, a plurality of double-sided noise power spectral densities, a plurality of pseudorange values, a plurality of carrier phase values and a plurality of carrier phase ambiguities. Step 201 can comprise the following sub-steps S11-S16:

[0087] In S11, the ratio between the satellite signal power and the corresponding double-sided noise power spectral density is calculated respectively, and a plurality of carrier-to-noise ratios are generated.

[0088] In S12, the sum value between all the carrier-to-noise ratios is calculated, and a carrier-to-noise ratio sum value is generated.

[0089] In S13, the ratio between the carrier-to-noise ratio sum value and the corresponding number of carrier-to-noise ratios is calculated, and a carrier-to-noise ratio average value is generated.

[0090] S14, respectively, the satellite signal wavelength, ionospheric error, pseudorange value, carrier phase value and carrier phase ambiguity are substituted into the preset pseudorange multipath error expression for calculation, to generate a plurality of pseudorange multipath errors.

[0091] S15, the sum value between all pseudorange multipath errors is calculated, to generate a pseudorange multipath error sum value.

[0092] S16, the ratio between the pseudorange multipath error sum value and the corresponding error number is calculated, to generate a pseudorange multipath error average value.

[0093] In the embodiment of the application, the carrier-to-noise ratio is the original observation obtained by the GNSS chip after signal processing. The pseudorange multipath error can be calculated by combining code-minus-phase. The specific calculation process is as follows:

[0094] The carrier-to-noise ratio expression is:

[0095] ;

[0096] Wherein, is the carrier-to-noise ratio, with the unit of dB-Hz; is the satellite signal power; is the noise power spectral density of both sides.

[0097] The preset pseudorange multipath error expression is:

[0098] ;

[0099] Wherein, is the pseudorange multipath error; is the pseudorange value observed by the smart phone; is the carrier phase value observed by the smart phone; is the satellite signal wavelength; is the ionospheric error; is the carrier phase ambiguity, which can be solved by the LAMBDA algorithm or regarded as a constant in the static case, then the constant can be eliminated after the sliding average processing of .

[0100] The ratio between the satellite signal power and the corresponding double-sided noise power spectral density is calculated by the carrier-to-noise ratio expression to obtain a plurality of carrier-to-noise ratios. Then the sum of all carrier-to-noise ratios is calculated to obtain the carrier-to-noise ratio sum. Finally, the ratio between the carrier-to-noise ratio sum and the corresponding number of carrier-to-noise ratios is calculated to obtain the carrier-to-noise ratio average. A plurality of pseudo-range multipath errors are calculated by substituting the satellite signal wavelength, ionospheric error, pseudo-range value, carrier phase value and carrier phase ambiguity collected by the smartphone into the preset pseudo-range multipath error expression respectively. Then the sum of all pseudo-range multipath errors is calculated to obtain the pseudo-range multipath error sum. Finally, the ratio between the pseudo-range multipath error sum and the corresponding number of errors is calculated to obtain the pseudo-range multipath error average.

[0101] Step 202, according to the carrier-to-noise ratio average and the pseudo-range multipath error average, the environment scene is identified, and the scene type is determined.

[0102] Further, step 202 can include the following sub-steps S21-S22:

[0103] S21, when the carrier-to-noise ratio average is less than the first preset value, and the pseudo-range multipath error average is greater than the second preset value, the scene type is a multipath severe scene.

[0104] S22, when the carrier-to-noise ratio average is greater than or equal to the first preset value, and the pseudo-range multipath error average is less than the second preset value, the scene type is an open environment scene.

[0105] The first preset value is 30dB-Hz. The second preset value is 5m.

[0106] In the embodiment of the application, according to the carrier-to-noise ratio and the pseudo-range multipath error, the scene in which the smartphone is positioned is classified into a multipath severe scene and an open environment scene. Specifically, when the calculated carrier-to-noise ratio average is less than 30dB-Hz, and the pseudo-range multipath error average is greater than 5m, the scene type corresponding to the smartphone is a multipath severe scene. When the calculated carrier-to-noise ratio average is greater than or equal to 30dB-Hz, and the pseudo-range multipath error average is less than 5m, the scene type corresponding to the smartphone is an open environment scene.

[0107] Step 203, when the scene type is a multipath severe scene, the satellite three-dimensional position in the global navigation satellite system data, the smartphone three-dimensional position, the pseudo-range observation correction value and the smartphone clock clock difference are used to construct a four-element nonlinear equation.

[0108] In the embodiment of the present invention, different fusion strategies are adopted in different scenarios. The fusion strategies are divided into loose combination fusion strategy and tight combination fusion strategy. The tight combination fusion strategy is suitable for scenarios with severe multipath and open environment scenarios, while the loose combination fusion strategy is suitable for open environment scenarios. Tight combination data fusion is adopted in scenarios with severe multipath. The tight combination fusion strategy utilizes the high accuracy of the altimeter elevation and integrates the altimeter elevation information into the GNSS positioning algorithm. The specific content of the tight combination fusion strategy is as follows:

[0109] Based on the position relationship, the following relationship between position and distance is obtained. That is, the satellite 3D position in the global navigation satellite system data, the smartphone 3D position, the pseudorange observation correction value, and the smartphone clock error are used to construct a quaternary nonlinear equation. The quaternary nonlinear equation is:

[0110] ;

[0111] in, is the three-dimensional position of the n-th satellite, n represents the n-th satellite observed by the smartphone, is a temporary number for a satellite or satellite measurement; is the satellite three-dimensional position of the first satellite; is the satellite three-dimensional position of the second satellite; is the three-dimensional position of the Nth satellite; is the three-dimensional position of the smartphone; is the clock error of the smartphone clock; is a temporary number for a satellite or satellite measurement; The pseudorange observation value corrected for the first satellite; The pseudorange observation value corrected for the second satellite; The corrected pseudorange observation value is the pseudorange observation value of the Nth satellite. The corrected pseudorange observation value is obtained by deducting the satellite clock error (sent by the satellite to the mobile phone and stored in the navigation message file), the ionospheric error (estimated using the Klobuchar model), and the tropospheric error (estimated using the Saastamoinen model) from the pseudorange observation value processed by the GNSS chip in the smartphone.

[0112] Step 204: Linearize the quaternary nonlinear equation to generate a linearized positioning matrix equation.

[0113] In the embodiment of the present invention, the linearized positioning matrix equation is obtained by linearizing the quaternary nonlinear equation. The linearized positioning matrix equation is:

[0114] ;

[0115] ;

[0116] ;

[0117] wherein the geometry matrix G is the Jacobian matrix and only related to the geometric position of each satellite relative to the smart phone; is the coordinate variation of the smart phone in the three directions of the geocentric geodetic coordinate system between two adjacent observation instants; is the estimated clock bias variation of the smart phone; b is the residual matrix; and r is the distance from the smart phone to the satellite; is the temporary number of the satellite or the satellite measurement value; k represents the number of the Newton iteration being performed at the current epoch, i.e., k-1 is the number of iterations already completed at the current epoch, and k=1 represents the first iteration; is the distance from the Nth smart phone to the satellite is the value of the partial derivative of x at ; is the value of the partial derivative of y at ; is the value of the partial derivative of z at ; is the value of the partial derivative of z at ; is the value of the partial derivative of z at ; is the value of the partial derivative of z at ; is the coordinate of the smart phone position at is the corrected pseudo-range observation value of the Nth satellite; is the geometric distance from the receiver to the Nth satellite;

[0118] Step 205: the linearized positioning matrix equation is solved by using the Newton iteration method to determine the first positioning data corresponding to the smart phone.

[0119] In the embodiment of the application, the four-element nonlinear equation is required to be linearized, and thus the linearized positioning matrix equation is obtained. To obtain the solution, the Newton iteration method is used to calculate the positioning equation solution of the linearized positioning matrix equation.

[0120] Further, step 205 can include the following sub-steps S31-S35:

[0121] S31: the initial smart phone position coordinates and the initial clock bias value corresponding to the linearized positioning matrix equation are updated by using a preset updating formula to generate intermediate smart phone position coordinates and intermediate clock bias values and count the number of iterations.

[0122] ​S32, when the iteration number is less than or equal to the preset iteration number, substituting the intermediate smart phone position coordinate and the intermediate clock difference value into a preset precision calculation formula to generate a precision value.

[0123] S33, when the precision value is less than a preset threshold value, the intermediate smart phone position coordinate and the intermediate clock difference value are taken as the target smart phone position coordinate and the target clock difference value.

[0124] S34, coupling the height change in the barometric altimeter data, the target smart phone position coordinate and the target clock difference value into a preset positioning equation to solve by least squares to obtain the first positioning data corresponding to the smart phone.

[0125] S35, when the precision value is greater than the preset threshold value, the intermediate smart phone position coordinate and the intermediate clock difference value are taken as the new initial smart phone position coordinate and the new initial clock difference value, and the step of updating the initial smart phone position coordinate and the initial clock difference value corresponding to the linearized positioning matrix equation by using the preset update formula is executed to generate the intermediate smart phone position coordinate and the intermediate clock difference value and count the iteration number.

[0126] In the embodiment of the application, the pseudorange of each satellite relative to the smart phone, the satellite clock difference and the satellite position collected by the GNSS chip in the smart phone are used as inputs, the coordinate change and the clock difference change are solved variables in the Newton iteration calculation, and the final solution is the three-dimensional position coordinate of the smart phone, the smart phone clock difference, i.e. the target smart phone position coordinate and the target clock difference value. The specific solving process is as follows:

[0127] Given initial value , is the given initial value of the smart phone position, is the given initial value of the smart phone clock difference. For the kth solution, the positioning equation solution obtained by the iteration format based on the Newton iteration method is:

[0128] ;

[0129] wherein the geometric matrix G is the Jacobian matrix and is only related to the geometric position of each satellite relative to the smart phone; is the transpose of , represents the inverse of the matrix; is the coordinate change of the smart phone in the xyz three directions in the ECEF coordinate system between two adjacent observation time points (two adjacent iterations); is the coordinate of the smart phone in the ECEF coordinate system at the kth iteration; is the coordinate of the smart phone in the ECEF coordinate system at the k-1th iteration; is the estimated clock difference change of the smart phone clock. smartphone clock clock difference estimated in the kth iteration; smartphone clock clock difference estimated in the k-1th iteration; b is a residual matrix.

[0130] a height change amount added in the barometric altimeter data, a user's height change amount a height change amount from the barometric altimeter is represented by, .

[0131] Therefore, after adding the height change amount, the positioning equation of the present application, i.e., the preset positioning equation, is obtained as follows:

[0132] ;

[0133] wherein, is an estimated smartphone clock clock difference change amount; is a height change amount; is a geodetic coordinate system coordinate, which corresponds to a geocentric coordinate system coordinate , and there is a certain conversion relationship, and the transformation formula is as follows:

[0134] ;

[0135] ;

[0136] wherein R is the radius of curvature of the reference ellipsoid; e is the eccentricity of the sphere; a is the long radius of the reference sphere; d is the short radius; p is an intermediate variable without special meaning; h is the third dimension of the geodetic coordinate system coordinate , which represents the geodetic height, is the geodetic dimension; is the geodetic longitude.

[0137] The final solution result is obtained by iteratively solving the linearized positioning matrix equation and the preset positioning equation, i.e., the solution is obtained, at this time, the altimeter data has been added to the positioning equation for positioning calculation.

[0138] The initial smartphone position coordinate and the initial clock difference value corresponding to the linearized positioning matrix equation are updated by using the preset update formula, to generate an intermediate smartphone position coordinate and an intermediate clock difference value and count the number of iterations, to obtain the following kth iteration updated smartphone position coordinate and clock difference value , i.e., the preset update formula is as follows:

[0139] ;

[0140] ;

[0141] wherein, is the updated smart phone position coordinate in the kth iteration; is the updated smart phone position coordinate in the (k-1)th iteration; denotes the three-dimensional position variation in the solution of the positioning equation; is the estimated smart phone clock bias in the kth iteration; is the estimated smart phone clock bias in the (k-1)th iteration; is the estimated variation of the smart phone clock bias.

[0142] When the number of iterations is less than or equal to the preset number of iterations, the intermediate smart phone position coordinate and the intermediate clock bias value are substituted into the preset accuracy calculation formula to generate an accuracy value. The preset accuracy calculation formula, i.e., the accuracy requirement judgment basis, is wherein, denotes the three-dimensional position variation in the solution of the positioning equation, and the symbol denotes the two-norm function, denotes the smart phone clock bias solved in the solution of the positioning equation. It is judged whether it is less than the preset threshold value. If it is less than the threshold, it means that the solution meets the accuracy requirement, and the intermediate smart phone position coordinate and the intermediate clock bias value are taken as the target smart phone position coordinate and the target clock bias value. The height variation in the barometric altimeter data, the target smart phone position coordinate and the target clock bias value are coupled into the preset positioning equation for least squares solution to obtain the first positioning data corresponding to the smart phone. Otherwise, the iteration is continued, i.e., the intermediate smart phone position coordinate and the intermediate clock bias value are taken as the new initial smart phone position coordinate and the new initial clock bias value, and the step of updating the initial smart phone position coordinate and the initial clock bias value corresponding to the linearized positioning matrix equation using the preset update formula is executed to generate the intermediate smart phone position coordinate and the intermediate clock bias value and count the number of iterations. When the number of iterations exceeds the preset number of iterations, the position calculation fails.

[0143] If the updated solution meets the accuracy requirement, the high-precision position information of the smart phone is obtained. If the above solution does not meet the accuracy requirement, , which can be taken as the starting point of the k+1th iteration, and the above Newton iteration operation is continued. The GNSS raw data pseudorange observation is collected according to the tight combination fusion strategy for pseudorange positioning, and then the height data of the altimeter are coupled into the positioning equation for least squares solution, and finally the three-dimensional positioning result is obtained.

[0144] In step 206, when the scene type is an open environment scene, data fusion positioning is performed based on the average carrier-to-noise ratio, the average pseudorange multipath error, the barometric altimeter data, and the global navigation satellite system data to generate second positioning data corresponding to the smartphone.

[0145] Further, step 206 can include the following sub-steps S41-S42:

[0146] In S41, when the average pseudorange multipath error is less than a third preset value and the average carrier-to-noise ratio is greater than or equal to a fourth preset value, data fusion positioning is performed based on the barometric altimeter data and the global navigation satellite system data according to a loose combination fusion strategy to generate first three-dimensional positioning data corresponding to the smartphone.

[0147] In S42, when the average pseudorange multipath error is within a first preset interval and the average carrier-to-noise ratio is within a second preset interval, data fusion positioning is performed based on the barometric altimeter data and the global navigation satellite system data according to a tight combination fusion strategy to generate second three-dimensional positioning data corresponding to the smartphone.

[0148] Further, step S41 can include the following sub-steps S411-S414:

[0149] In S411, the barometric altimeter data and the global navigation satellite system data are input into a preset Kalman filter model to estimate a state variable and generate an estimated state vector.

[0150] In S412, a gain matrix, a measurement matrix, a measurement matrix, and the estimated state vector corresponding to the estimated state vector are substituted into a preset state variable estimation formula to calculate a Kalman filter state variable estimation value.

[0151] In S413, height data in the global navigation satellite system data is subtracted from initial height data in the Kalman filter state variable estimation value to generate target height data.

[0152] In S414, the target height data is used to update coordinate data corresponding to the Kalman filter state variable estimation value to generate first three-dimensional positioning data corresponding to the smartphone.

[0153] The third preset value is 3m. The fourth preset value is 35dB-Hz. The first preset interval is 3m≤average pseudorange multipath error≤5m. The second preset interval is 35dB-Hz≥average carrier-to-noise ratio≥30dB-Hz.

[0154] In this embodiment of the present invention, when the average pseudorange multipath error is less than 3m and the average carrier-to-noise ratio is greater than or equal to 35dB-Hz, a loose combination fusion strategy is used for data fusion positioning to generate second positioning data corresponding to the smartphone. Otherwise, when the average pseudorange multipath error is 3m ≤ 5m and the average carrier-to-noise ratio is 35dB-Hz ≥ 30dB-Hz, data fusion positioning is performed according to the aforementioned tight combination fusion strategy to generate second positioning data corresponding to the smartphone. The core concept of the loose combination fusion strategy is to directly use the altitude data calculated by the barometric altimeter and the altitude data from the GNSS three-dimensional position to perform Kalman filtering to achieve multi-source data fusion.

[0155] The following describes the loose combination fusion strategy, that is, the filter estimation algorithm process for the fusion of GNSS and barometric altimeter height data. The change rates of GNSS positioning data and altimeter data are the components in the state variables, and the other matrices are other variations of these state variables. The GNSS sensor outputs three-dimensional position coordinate data as follows: , the altitude data output by the barometric altimeter PS is .

[0156] Based on the Kalman filter model, the state equation and measurement equation can be expressed as:

[0157] ;

[0158] in, is the state variable matrix at time f, set ; is the one-step transfer matrix from time f-1 to time f, set to the identity matrix; is the measurement matrix, set as ; is the measurement matrix, and its expression is set to ; is the system noise matrix at time f-1; is the measurement noise matrix at time f.

[0159] It is usually assumed , is an uncorrelated zero-mean Gaussian white noise that satisfies the following conditions:

[0160] ;

[0161] in, represents the system noise matrix at time f; represents the time f measurement noise matrix; is the system noise covariance matrix; is the transpose of the system noise matrix at time j; is the transpose of the measurement noise matrix at time j; to measure the covariance matrix of the measurement noise; is the Kronecker function. If the system noise covariance matrix is a non-negative definite matrix, the measurement noise covariance matrix is a positive definite matrix, the one-step state prediction equation is:

[0162] ;

[0163] wherein, is the estimated state vector from time f-1 to time f, and the state variable estimated by the Kalman filter is the three-dimensional position change corresponding to the mobile phone positioning data, and is set ; is the estimated state vector at time k-1; is a one-step transition matrix from time f-1 to time f.

[0164] The one-step estimation error covariance matrix equation is:

[0165] ;

[0166] wherein, is a one-step estimation error covariance matrix from time f to time f-1; is the estimation error covariance matrix at time f-1; is the transpose of a one-step transition matrix from time f to time f-1; is the system noise variance matrix at time f-1; is the transpose of the system noise driving matrix .

[0167] The gain matrix expression is:

[0168] ;

[0169] wherein, is the gain matrix; is the transpose of the measurement matrix ; is a one-step estimation error covariance matrix from time f to time f-1; is the covariance matrix of the measurement noise.

[0170] Covariance matrix estimation:

[0171] ;

[0172] wherein, is a one-step estimation error covariance matrix at time f; is a measurement matrix, and is set as is a one-step estimation error covariance matrix from time f to time f-1; is a covariance matrix of measurement noise; is a transpose of the gain matrix

[0173] The preset state variable estimation formula is:

[0174]

[0175] wherein, is a Kalman filter state variable estimation value; is an estimation state vector from time f-1 to time f, which is a state variable estimated by the Kalman filter, and the state variable is a three-dimensional position change amount corresponding to the mobile phone positioning data, and is set as is a gain matrix; is a measurement matrix, and is set as is height data in global navigation satellite system data; is height data in barometric altimeter data; is a measurement matrix, and is set as

[0176] The state variable is estimated by inputting the barometric altimeter data and the global navigation satellite system data into the preset Kalman filter model to obtain an estimation state vector. Then, the gain matrix, the measurement matrix, the measurement matrix and the estimation state vector corresponding to the estimation state vector are substituted into the preset state variable estimation formula to calculate the Kalman filter state variable estimation value. Next, the height data in the global navigation satellite system data in the GNSS three-dimensional position is subtracted from the Kalman filter state variable estimation value , and finally the fusion positioning result is obtained. That is, the height data in the global navigation satellite system data is subtracted from the initial height data in the Kalman filter state variable estimation value to generate target height data. The coordinate data corresponding to the Kalman filter state variable estimation value is updated by using the target height data to generate the first three-dimensional positioning data corresponding to the smart phone.

[0177] ​​​​​​​In the embodiment of the present application, a data fusion algorithm combining global navigation satellite system (GNSS) and barometric altimeter (PS) sensors is used to improve the accuracy and robustness of global position information obtained by a smart phone. The data fusion strategy can be expanded from satellite navigation + barometric altimeter to satellite navigation + inertial navigation + barometric altimeter, satellite navigation + inertial navigation + visual navigation + barometric altimeter, and other multi-sensor fusion modes. In the state variable, inertial navigation system (INS) related variables such as position error and velocity error are added, and then Kalman filtering is performed to estimate these errors to obtain accurate position, thereby realizing the data loose combination strategy of satellite navigation + inertial navigation + barometric altimeter. In the state variable, the position error and velocity error of the visual navigation system are added, thereby realizing the data loose combination strategy of satellite navigation + inertial navigation + visual navigation + barometric altimeter.

[0178] Please refer to Figure 3 , Figure 3 A structural block diagram of a smart phone positioning system provided in the third embodiment of the present application.

[0179] The smart phone positioning system provided in the third embodiment of the present application comprises:

[0180] The average value generation module 301 is configured to obtain global navigation satellite system data and barometric altimeter data collected by the smart phone, and perform carrier-to-noise ratio average value and pseudorange multipath error average value calculation based on the global navigation satellite system data, to generate the carrier-to-noise ratio average value and the pseudorange multipath error average value.

[0181] The scene type determination module 302 is configured to perform environment scene recognition according to the carrier-to-noise ratio average value and the pseudorange multipath error average value, and determine the scene type.

[0182] The first positioning data generation module 303 is configured to, when the scene type is a multipath severe scene, perform data fusion positioning using the barometric altimeter data and the global navigation satellite system data according to a tight combination fusion strategy, to generate the first positioning data corresponding to the smart phone.

[0183] The second positioning data generation module 304 is configured to, when the scene type is an open environment scene, perform data fusion positioning based on the carrier-to-noise ratio average value, the pseudorange multipath error average value, the barometric altimeter data and the global navigation satellite system data, to generate the second positioning data corresponding to the smart phone.

[0184] Optionally, the global navigation satellite system data comprises a plurality of satellite signal wavelengths, a plurality of ionospheric errors, a plurality of satellite signal powers, a plurality of double-sided noise power spectral densities, a plurality of pseudorange values, a plurality of carrier phase values and a plurality of carrier phase ambiguities. The average value generation module 301 can perform the following steps:

[0185] respectively, to generate a plurality of carrier-to-noise ratios (CNRs);

[0186] summing all the CNRs to generate a CNR sum;

[0187] calculating a ratio between the CNR sum and a corresponding number of CNRs to generate a CNR average;

[0188] respectively, to generate a plurality of pseudorange multipath errors;

[0189] The preset pseudorange multipath error expression is:

[0190]

[0191] wherein, is the pseudorange multipath error; is the pseudorange observed by the smartphone; is the carrier phase observed by the smartphone; is the wavelength of the satellite signal; is the ionospheric error; is the carrier phase ambiguity;

[0192] summing all the pseudorange multipath errors to generate a pseudorange multipath error sum;

[0193] calculating a ratio between the pseudorange multipath error sum and a corresponding number of errors to generate a pseudorange multipath error average.

[0194] Optionally, the scene type determination module 302 can perform the following steps:

[0195] when the CNR average is less than a first preset value and the pseudorange multipath error average is greater than a second preset value, the scene type is a multipath severe scene;

[0196] when the CNR average is greater than or equal to the first preset value and the pseudorange multipath error average is less than the second preset value, the scene type is an open environment scene.

[0197] Optionally, the first positioning data generation module 303 includes:

[0198] a four-element nonlinear equation construction module, configured to, when the scene type is the multipath severe scene, construct a four-element nonlinear equation using satellite three-dimensional positions in the global navigation satellite system data, the smartphone three-dimensional position, the pseudorange observation correction value, and the smartphone clock bias.

[0199] ​The linearization positioning matrix equation generation module is configured to linearize the four-element nonlinear equation to generate a linearized positioning matrix equation.

[0200] The first positioning data generation submodule is configured to solve the linearized positioning matrix equation iteratively by using a Newton iteration method to determine first positioning data corresponding to the smart phone.

[0201] Optionally, the first positioning data generation submodule can perform the following steps:

[0202] The preset update formula is used to update the initial smart phone position coordinates and the initial clock difference value corresponding to the linearized positioning matrix equation to generate intermediate smart phone position coordinates and intermediate clock difference values and count the number of iterations.

[0203] The preset update formula is:

[0204] ;

[0205] ;

[0206] wherein, is the smart phone position coordinates updated after the kth iteration; is the smart phone position coordinates updated after the (k-1)th iteration; represents a three-dimensional position change in the positioning equation solution; is the estimated smart phone clock clock difference in the kth iteration; is the estimated smart phone clock clock difference in the (k-1)th iteration; is the estimated smart phone clock clock difference change;

[0207] When the number of iterations is less than or equal to a preset number of iterations, the intermediate smart phone position coordinates and the intermediate clock difference values are substituted into a preset accuracy calculation formula to generate an accuracy value.

[0208] The preset accuracy calculation formula is:

[0209] ;

[0210] wherein, A is the accuracy value; represents a three-dimensional position change in the positioning equation solution, and the symbol represents a two-norm function; is the estimated smart phone clock clock difference change;

[0211] When the accuracy value is less than a preset threshold value, the intermediate smart phone position coordinates and the intermediate clock difference values are taken as target smart phone position coordinates and target clock difference values.

[0212] The altitude change in the barometric altimeter data, the target smartphone position coordinates, and the target clock difference are coupled to a preset positioning equation and solved by least squares to obtain first positioning data corresponding to the smartphone;

[0213] The preset positioning equation is:

[0214] ;

[0215] ;

[0216] ;

[0217] in, is the coordinate of the geodetic coordinate system, which is different from the coordinate of the Earth-centered Earth-fixed coordinate system Correspondingly; h is the third coordinate dimension of the geodetic coordinate system, called geodetic height; For the earth dimension; is the geodetic longitude; is the estimated change in the smartphone clock error; is the height change; R is the radius of curvature of the base ellipsoid; e is the eccentricity of the sphere; a is the major radius of the base sphere; d is the minor radius; p is the intermediate variable;

[0218] When the accuracy value is greater than the preset threshold value, the intermediate smartphone position coordinates and the intermediate clock difference value are used as the new initial smartphone position coordinates and the new initial clock difference value, and the execution jumps to the step of using the preset update formula to update the initial smartphone position coordinates and the initial clock difference value corresponding to the linearized positioning matrix equation, generate the intermediate smartphone position coordinates and the intermediate clock difference value and count the number of iterations.

[0219] Optionally, the second positioning data generating module 304 includes:

[0220] The first three-dimensional positioning data generation module is configured to, when the average value of the pseudorange multipath error is less than a third preset value and the average value of the carrier-to-noise ratio is greater than or equal to a fourth preset value, perform data fusion positioning using the barometric altimeter data and the global navigation satellite system data according to a loose combination fusion strategy to generate first three-dimensional positioning data corresponding to the smartphone.

[0221] The second three-dimensional positioning data generation module is used to use the barometric altimeter data and the global navigation satellite system data to perform data fusion positioning according to a tight combination fusion strategy when the average value of the pseudorange multipath error is within a first preset interval and the average value of the carrier-to-noise ratio is within a second preset interval to generate second three-dimensional positioning data corresponding to the smartphone.

[0222] Optionally, the first three-dimensional positioning data generating module may perform the following steps:

[0223] inputting the barometric altimeter data and the global navigation satellite system data into a preset Kalman filtering model to perform state variable estimation, and generating an estimated state vector;

[0224] substituting the gain matrix, the measurement matrix, the measurement matrix and the estimated state vector corresponding to the estimated state vector into a preset state variable estimation formula to obtain a Kalman filtering state variable estimation value;

[0225] the preset state variable estimation formula is:

[0226] ;

[0227] wherein, the Kalman filtering state variable estimation value; the estimated state vector from time f-1 to time f; the gain matrix; the measurement matrix; the measurement matrix, and the expression thereof is ;

[0228] subtracting initial height data in the Kalman filtering state variable estimation value from height data in the global navigation satellite system data to generate target height data;

[0229] updating coordinate data corresponding to the Kalman filtering state variable estimation value by using the target height data to generate first three-dimensional positioning data corresponding to the smart phone.

[0230] Please refer to Figure 4 , Figure 4 a structural block diagram of an electronic device provided in Embodiment Three of the present application.

[0231] The electronic device in the embodiment of the present application comprises a memory 401 and a processor 402, and the memory 401 stores a computer program; when the computer program is executed by the processor 402, the processor 402 executes the smart phone positioning method in any of the above embodiments.

[0232] The memory 401 can be an electronic memory such as a flash memory, an EEPROM (Electrically Erasable Programmable Read-Only Memory), an EPROM, a hard disk or a ROM. The memory 401 has a storage space 403 for program codes 413 for performing any of the method steps in the above described methods. For example, the storage space 403 for program codes can comprise individual program codes 413 for implementing the various steps in the above described methods, respectively. These program codes can be read from or written to one or more computer program products. These computer program products comprise program code carriers such as hard disks, compact disks (CDs), memory cards or floppy disks. The program codes can be compressed, for example, in a suitable form. These codes, when run by a computing processing device, cause the computing processing device to perform the individual steps in the above described smartphone positioning method.

[0233] The embodiments of the present application further provide a computer readable storage medium, having stored thereon a computer program, which, when executed by a processor, implements the smartphone positioning method according to any of the above described embodiments.

[0234] Those skilled in the art can clearly understand that, for the convenience and brevity of description, the specific working processes of the above described system, device and unit can refer to the corresponding processes in the above described method embodiments, which will not be repeated here.

[0235] In several embodiments provided in the present application, it should be understood that the disclosed system, device and method can be implemented by other manners. For example, the above described device embodiments are only schematic, for example, the division of units is only a logical function division, and actual implementation can have another division manner, for example, a plurality of units or components can be combined or integrated into another system, or some features can be ignored or not executed. In addition, the coupling or direct coupling or communication connection between the displayed or discussed units can be indirect coupling or communication connection through some interfaces, devices or units, which can be electrical, mechanical or other forms.

[0236] The units described as separate components can or can not be physically separate, and the components displayed as units can or can not be physical units, i.e. can be located in one place, or can be distributed on a plurality of network units. Part or all of the units can be selected according to actual needs to achieve the purpose of the present embodiment scheme.

[0237] In addition, each function unit in each embodiment of the present application can be integrated in one processing unit, or each unit can be physically present separately, or two or more units can be integrated in one unit. The integrated unit can be realized in the form of hardware or in the form of a software function unit.

[0238] If the integrated unit is realized in the form of a software function unit and sold or used as an independent product, it can be stored in a computer readable storage medium. Based on such understanding, the technical solutions of the present application, essentially or in the form of a contribution to the prior art, or all or part of the technical solutions can be embodied in the form of a software product. The computer software product is stored in a storage medium, and includes several instructions for causing a computer device (which can be a personal computer, a server, or a network device, etc.) to execute all or part of the steps of the methods in each embodiment of the present application. The foregoing storage medium includes: a U disk, a mobile hard disk, a read-only memory (ROM, Read-Only Memory), a random access memory (RAM, Random Access Memory), a magnetic disk or an optical disk, and various media that can store program codes.

[0239] The above embodiments are only used to illustrate the technical solutions of the present application, rather than limit them; although the present application has been described in detail with reference to the foregoing embodiments, those skilled in the art should understand that: it can still modify the technical solutions recorded in the foregoing embodiments, or make equivalent replacement for part of the technical features; and these modifications or replacements do not make the essence of the corresponding technical solutions deviate from the spirit and scope of the technical solutions of each embodiment of the present application.

Claims

1. A method for positioning a smartphone, characterized in that, The method comprises the following steps: obtaining global navigation satellite system data and barometric altimeter data collected by a smartphone, calculating carrier-to-noise ratio average and pseudorange multipath error average based on the global navigation satellite system data, and generating carrier-to-noise ratio average and pseudorange multipath error average; identifying an environment scene according to the carrier-to-noise ratio average and the pseudorange multipath error average, and determining a scene type; when the scene type is a multipath severe scene, performing data fusion positioning according to a tight combination fusion strategy by using the barometric altimeter data and the global navigation satellite system data, and generating first positioning data corresponding to the smartphone; when the scene type is an open environment scene, performing data fusion positioning based on the carrier-to-noise ratio average, the pseudorange multipath error average, the barometric altimeter data and the global navigation satellite system data, and generating second positioning data corresponding to the smartphone; when the scene type is a multipath severe scene, constructing a four-element nonlinear equation by using satellite three-dimensional positions in the global navigation satellite system data, a smartphone three-dimensional position, a pseudorange observation correction value and a smartphone clock bias; linearizing the four-element nonlinear equation to generate a linearized positioning matrix equation; iteratively solving the linearized positioning matrix equation by using a Newton iteration method to determine the first positioning data corresponding to the smartphone; the step of iteratively solving the linearized positioning matrix equation by using the Newton iteration method to determine the first positioning data corresponding to the smartphone comprises: updating an initial smartphone position coordinate and an initial clock bias value corresponding to the linearized positioning matrix equation by using a preset update formula to generate an intermediate smartphone position coordinate and an intermediate clock bias value and count an iteration number; the preset update formula is: when the iteration number is less than or equal to a preset iteration number, substituting the intermediate smartphone position coordinate and the intermediate clock bias value into a preset precision calculation formula to generate a precision value; ; ; wherein, is the updated smart phone position coordinate at the kth iteration; is the updated smart phone position coordinate at the (k-1)th iteration; denotes the three-dimensional position change in the solution of the positioning equation; is the estimated smart phone clock bias at the kth iteration; is the estimated smart phone clock bias at the (k-1)th iteration; is the estimated smart phone clock bias change. the preset precision calculation formula is: when the precision value is less than a preset threshold value, taking the intermediate smartphone position coordinate and the intermediate clock bias value as a target smartphone position coordinate and a target clock bias value; ; where A is a precision value; denotes a three-dimensional position change in the solution of the positioning equation, the sign denotes a two-norm function; is an estimated smartphone clock change. coupling a height change in the barometric altimeter data, the target smartphone position coordinate and the target clock bias value into a preset positioning equation to perform least square solution to obtain the first positioning data corresponding to the smartphone; the preset positioning equation is: when the precision value is greater than the preset threshold value, taking the intermediate smartphone position coordinate and the intermediate clock bias value as a new initial smartphone position coordinate and a new initial clock bias value, and jumping to execute the step of updating the initial smartphone position coordinate and the initial clock bias value corresponding to the linearized positioning matrix equation by using the preset update formula to generate the intermediate smartphone position coordinate and the intermediate clock bias value and count the iteration number. ; ; ; wherein, is the geodetic coordinate system coordinate corresponding to the geocentric coordinate system coordinate ; h is the third coordinate dimension of the geodetic coordinate system coordinate, referred to as geodetic height; is the geodetic dimension; is the geodetic longitude; is the estimated change in the smartphone clock clock difference; is the change in altitude; R is the radius of curvature of the prime vertical circle of the reference ellipsoid; e is the eccentricity of the sphere; a is the long radius of the reference sphere; d is the short radius; p is an intermediate variable; ​ 2. The smartphone positioning method of claim 1, wherein, The global navigation satellite system data includes a plurality of satellite signal wavelengths, a plurality of ionospheric errors, a plurality of satellite signal powers, a plurality of bilateral noise power spectral densities, a plurality of pseudo-range values, a plurality of carrier phase values, and a plurality of carrier phase ambiguities; the step of performing carrier-to-noise ratio average value and pseudo-range multipath error average value calculation based on the global navigation satellite system data respectively, to generate the carrier-to-noise ratio average value and the pseudo-range multipath error average value, includes: a plurality of carrier-to-noise ratios are generated by calculating the ratio between the satellite signal power and the corresponding bilateral noise power spectral density respectively; a carrier-to-noise ratio sum value is generated by calculating the sum value between all the carrier-to-noise ratios; a carrier-to-noise ratio average value is generated by calculating the ratio between the carrier-to-noise ratio sum value and the corresponding carrier-to-noise ratio number; a plurality of pseudo-range multipath errors are generated by substituting the satellite signal wavelength, the ionospheric error, the pseudo-range value, the carrier phase value, and the carrier phase ambiguity into a preset pseudo-range multipath error expression for calculation respectively; the preset pseudo-range multipath error expression is: ; wherein, is a pseudorange multipath error; is a pseudorange value observed by a smartphone; is a carrier phase value observed by a smartphone; is a satellite signal wavelength; is an ionospheric error; is a carrier phase ambiguity; a pseudo-range multipath error sum value is generated by calculating the sum value between all the pseudo-range multipath errors; a pseudo-range multipath error average value is generated by calculating the ratio between the pseudo-range multipath error sum value and the corresponding error number.

3. The smartphone positioning method of claim 1, wherein, The step of identifying an environment scenario and determining a scenario type according to the carrier-to-noise ratio average value and the pseudo-range multipath error average value, includes: when the carrier-to-noise ratio average value is less than a first preset value, and the pseudo-range multipath error average value is greater than a second preset value, the scenario type is a severe multipath scenario; when the carrier-to-noise ratio average value is greater than or equal to the first preset value, and the pseudo-range multipath error average value is less than the second preset value, the scenario type is an open environment scenario.

4. The smartphone positioning method of claim 1, wherein, The step of performing data fusion positioning based on the carrier-to-noise ratio average value, the pseudo-range multipath error average value, the barometer data, and the global navigation satellite system data to generate the second positioning data corresponding to the smart phone, includes: when the pseudo-range multipath error average value is less than a third preset value, and the carrier-to-noise ratio average value is greater than or equal to a fourth preset value, the barometer data and the global navigation satellite system data are used for data fusion positioning according to a loose combination fusion strategy to generate the first three-dimensional positioning data corresponding to the smart phone; when the pseudo-range multipath error average value is within a first preset interval, and the carrier-to-noise ratio average value is within a second preset interval, the barometer data and the global navigation satellite system data are used for data fusion positioning according to the tight combination fusion strategy to generate the second three-dimensional positioning data corresponding to the smart phone.

5. The smartphone positioning method of claim 4, wherein, The step of using the barometer data and the global navigation satellite system data for data fusion positioning according to the loose combination fusion strategy to generate the first three-dimensional positioning data corresponding to the smart phone, includes: an estimated state vector is generated by inputting the barometer data and the global navigation satellite system data into a preset Kalman filter model for state variable estimation; Substituting the gain matrix, measurement matrix, measurement matrix and estimated state vector corresponding to the estimated state vector into a preset state variable estimation formula to calculate a Kalman filter state quantity estimation value; The preset state variable estimation formula is: ; wherein, is a Kalman filter state quantity estimate value; is an estimated state vector from time f-1 to time f; is a gain matrix; is a measurement matrix; is a measurement matrix, set its expression as ; Subtracting the initial height data in the Kalman filter state quantity estimation value from the height data in the global navigation satellite system data to generate target height data; The target height data is used to update coordinate data corresponding to the Kalman filter state quantity estimation value to generate first three-dimensional positioning data corresponding to the smart phone.

6. A smartphone positioning system, characterized by include: an average value generation module, configured to obtain global navigation satellite system data and barometric altimeter data collected by the smartphone, and calculate a carrier-to-noise ratio average value and a pseudorange multipath error average value based on the global navigation satellite system data to generate a carrier-to-noise ratio average value and a pseudorange multipath error average value; A scene type determination module, configured to identify an environmental scene based on the average carrier-to-noise ratio and the average pseudorange multipath error, and determine a scene type; a first positioning data generating module configured to, when the scenario type is a severe multipath scenario, perform data fusion positioning using the barometric altimeter data and the global navigation satellite system data according to a tight combination fusion strategy to generate first positioning data corresponding to the smartphone; a second positioning data generating module, configured to, when the scene type is an open environment scene, perform data fusion positioning based on the average carrier-to-noise ratio, the average pseudorange multipath error, the barometric altimeter data, and the global navigation satellite system data to generate second positioning data corresponding to the smartphone; The first positioning data generating module includes: A quaternary nonlinear equation construction module is configured to construct a quaternary nonlinear equation using the three-dimensional position of the satellite, the three-dimensional position of the smartphone, the pseudorange observation correction value, and the smartphone clock error in the global navigation satellite system data when the scenario type is a severe multipath scenario; A linearized positioning matrix equation generation module, used for linearizing the quaternary nonlinear equation to generate a linearized positioning matrix equation; a first positioning data generating submodule, configured to iteratively solve the linearized positioning matrix equation using a Newton iteration method to determine first positioning data corresponding to the smartphone; The first positioning data generating submodule is specifically configured to perform the following steps: Using a preset update formula to update the initial smartphone position coordinates and initial clock error values ​​corresponding to the linearized positioning matrix equation, generate intermediate smartphone position coordinates and intermediate clock error values, and count the number of iterations; The preset update formula is: ; ; wherein, is the updated smart phone position coordinate at the kth iteration; is the updated smart phone position coordinate at the (k-1)th iteration; denotes the three-dimensional position change in the solution of the positioning equation; is the estimated smart phone clock bias at the kth iteration; is the estimated smart phone clock bias at the (k-1)th iteration; is the estimated smart phone clock bias change. When the number of iterations is less than or equal to a preset number of iterations, substituting the intermediate smartphone position coordinates and the intermediate clock difference value into a preset accuracy calculation formula to generate an accuracy value; The preset accuracy calculation formula is: ; where A is a precision value; denotes a three-dimensional position change in the solution of the positioning equation, the sign denotes a two-norm function; is an estimated smartphone clock change; When the accuracy value is less than a preset threshold value, the intermediate smartphone position coordinates and the intermediate clock difference value are used as the target smartphone position coordinates and the target clock difference value; Coupling the height change amount in the barometric altimeter data, the target smartphone position coordinate and the target clock difference value into a preset positioning equation to solve a least square, to obtain first positioning data corresponding to the smartphone; The preset positioning equation is: ; ; ; wherein, is the geodetic coordinate system coordinate corresponding to the geocentric coordinate system coordinate ; h is the third coordinate dimension of the geodetic coordinate system coordinate, referred to as geodetic height; is the geodetic dimension; is the geodetic longitude; is the estimated change in the smartphone clock clock difference; is the change in altitude; R is the radius of curvature of the prime vertical circle of the reference ellipsoid; e is the eccentricity of the sphere; a is the long radius of the reference sphere; d is the short radius; p is an intermediate variable; When the precision value is greater than a preset threshold value, taking the intermediate smartphone position coordinate and the intermediate clock difference value as new initial smartphone position coordinate and new initial clock difference value, and jumping to execute the step of updating the initial smartphone position coordinate and the initial clock difference value corresponding to the linearized positioning matrix equation by using the preset updating formula, to generate the intermediate smartphone position coordinate and the intermediate clock difference value and to count the iteration number.

7. An electronic device, comprising: The computer program is executed to implement the smartphone positioning method according to any one of claims 1 to 5.

8. A computer-readable storage medium having stored thereon a computer program, characterized in that, The computer program is executed to implement the smartphone positioning method according to any one of claims 1 to 5.