Sight distance estimator

The hidden Markov model reweighted satellite signals is solved, and the problem of insufficient LOS signals in electronic device position estimation in challenging signal environments is improved, and the accuracy and reliability of positioning are improved.

CN119301483APending Publication Date: 2025-01-10APPLE INC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202380044101.6
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2023-01-26
Filing Date
2023-05-31
Publication Date
2025-01-10

AI Technical Summary

Technical Problem

In challenging signal environments, it is difficult for electronic devices to accurately estimate locations because the lack of sufficient line-of-sight (LOS) signals in the received signal, resulting in inaccurate use of non-line-of-sight (NLOS) signals.

Method used

Using a probabilistic method based on the hidden Markov model, the LOS and NLOS signals are used to improve the accuracy of position estimation by reweighting the satellite signal. The method imparts weights to satellite signals based on the position, signal strength and multipath indicators of the electronic device to better classify and utilize signals.

Benefits of technology

Improve the accuracy of position estimation in challenging signal environments, reduce the error of positioning of NLOS signals, and ensure positioning reliability in the absence of sufficient LOS signals.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119301483A_ABST
    Figure CN119301483A_ABST
Patent Text Reader

Abstract

According to one or more implementations, a method includes receiving, with an electronic device, a first satellite signal and a second satellite signal and determining whether the first satellite signal is a LOS. The determination is based on a signal strength of the first satellite signal. The method also includes determining whether the second satellite signal is non-LOS. The determination is based on a signal strength of the second satellite signal. The method also includes estimating a location of the electronic device based on the first satellite signal and the second satellite signal in response to determining that the first satellite signal is LOS and determining that the second satellite signal is non-LOS.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS

[0002] This application claims the benefit of U.S. Provisional Patent Application Serial No. 63 / 349,036, filed on June 3, 2022, and entitled “LINE OF SIGHTESTIMATOR,” which is hereby incorporated by reference in its entirety and made a part of this U.S. utility model patent application for all purposes. Technical Field

[0003] The present specification generally relates to electronic devices, including, for example, a line-of-sight estimator for use in an electronic device. Background Art

[0004] An electronic device (such as a laptop, tablet, smartphone, wearable device, or a navigation system of a vehicle to which the mobile device is attached) may include a receiver configured to receive signals from a Global Navigation Satellite System (GNSS) satellite to estimate the position of the electronic device. Typically, multiple satellite signals may be received to determine the position (e.g., three for triangulation and one for time synchronization). BRIEF DESCRIPTION OF THE DRAWINGS

[0005] Certain features of the subject technology are set forth in the appended claims. However, for purposes of explanation, several embodiments of the subject technology are set forth in the following figures.

[0006] Figure 1 An example environment is illustrated in which an electronic device can estimate a device location using one or more non-line-of-sight (NLOS) satellite signals in accordance with one or more implementations.

[0007] Figure 2 An example network environment for providing one or more line-of-sight (LOS) estimators according to one or more implementations is illustrated.

[0008] Figure 3 Example electronic devices are illustrated that can implement the subject system for estimating a location of an electronic device according to one or more implementations.

[0009] Figure 4 Example processes for generating one or more probability models according to one or more implementations are illustrated.

[0010] Figure 5 An example of a position estimator of the subject system that can be implemented by an electronic device according to one or more implementations is illustrated.

[0011] Figure 6A flow chart illustrating an example process for estimating a location of an electronic device in accordance with one or more implementations is illustrated.

[0012] Figure 7 A flow chart illustrating another example process for estimating a position of an electronic device in accordance with one or more implementations is illustrated.

[0013] Figure 8 Example electronic systems are illustrated that can be used to implement various aspects of the subject technology according to one or more implementations. DETAILED DESCRIPTION

[0014] The specific description shown below is intended to be a description of various configurations of the subject technology and is not intended to represent the only configuration that the subject technology can be practiced. The accompanying drawings are incorporated herein and constitute a part of the detailed description. The detailed description includes specific details intended to provide a thorough understanding of the subject technology. However, the subject technology is not limited to the specific details described herein, and one or more other specific implementations can be used to practice. In one or more specific implementations, structures and components are shown in block diagram form to avoid blurring the concepts of the subject technology.

[0015] A position estimation system implemented by an electronic device may include a receiver (e.g., a satellite receiver) configured to receive satellite signals (e.g., signals from a global navigation satellite system (GNSS) satellite) to estimate the position of the electronic device. The signals received from the GNSS satellites may be line-of-sight (hereinafter referred to as "LOS"), non-line-of-sight (hereinafter referred to as "non-LOS" or "NLOS"), or a combination thereof (e.g., multipath). Typically, the position estimation system requires a certain number of received LOS signals to accurately estimate the position of the electronic device.

[0016] However, when the received signal does not include a sufficient number of LOS signals (e.g., when one or all of the received signals are NLOS signals), the positioning estimate will most likely be inaccurate. This may occur in challenging signal environments (such as urban canyons, densely foliaged areas, areas near or within structures such as buildings, and / or other areas that may interfere with LOS reception of signals). Challenging signal environments may cause fewer LOS signals and / or more NLOS signals to be received by electronic devices. For example, in a challenging signal environment, one or more structures may cause a complete blockage of the LOS signal, causing the received signal to become a reflection (e.g., NLOS). The NLOS signal may be the only path from the GNSS transmitter to the receiver, but may still be misinterpreted by a receiver that uses a simple LOS model to make measurements (e.g., due to environmental attenuation). In the above-mentioned signal environment, fewer LOS signals may be available (e.g., due to interference caused by the environment), and the available NLOS signals tend to produce less accurate measurements on the device.

[0017] In the subject systems, methods, and non-transitory machine-readable media, a probabilistic approach is implemented to assist GNSS positioning, for example, to compensate for incomplete and / or distorted GNSS signal information in challenging signal environments. For example, improved accuracy can be achieved by re-weighting satellite signals based on the probability that various location signals are LOS as determined by a hidden Markov model to better utilize both LOS signals and NLOS signals. The probability that a signal is LOS can be based at least on an estimated location of the electronic device (e.g., via Wi-Fi positioning determined from an access point), a signal strength of the location signal, and / or a multipath indicator set based on pre-processing received signals. Weights can be assigned to one or more satellite signals, for example, such that the less likely a signal is LOS, the less weight is given to the signal. In one or more specific implementations, the electronic device can then estimate the location of the electronic device using LOS and NLOS signals and their assigned weights.

[0018] Figure 1 An example environment is illustrated in which an electronic device 102 may use one or more NLOS satellite signals (e.g., satellite signal 105d) together with GNSS positioning to estimate device location according to one or more implementations. However, not all of the components depicted may be used in all implementations, and one or more implementations may include additional or different components than those shown in the figures. Changes in the arrangement and type of these components may be made without departing from the spirit or scope of the claims listed herein. Additional components, different components, or fewer components may be provided.

[0019] Environment 100 includes electronic device 102 and GNSS satellites 104a, 104b, 104c, and 104d (hereinafter referred to as "satellites 104a to 104d") that are transmitting satellite signals 105a, 105b, 105c, and 105d (hereinafter referred to as "satellite signals 105a to 105d"). The environment also includes buildings 106a, 106b, 106c, and 106d (hereinafter referred to as "buildings 106a to 106d"). Buildings 106a to 106d may represent any structure or land feature that blocks the path of satellite signals. For purposes of explanation, environment 100 is shown in FIG. Figure 1 1. Environment 100 is illustrated as including one electronic device 102, four satellites 104a-104d, four satellite signals 105a-105d, four buildings 106a-106d, and one access point 108; however, environment 100 may include any number of electronic devices, satellites, satellite signals, buildings, or access points.

[0020] The electronic device 102 may be, for example, a portable computing device such as a laptop computer, a smart phone, a device embedded in, installed in, and / or coupled to a vehicle, a peripheral device (e.g., a digital camera, a headset), a tablet device, a wearable device such as a smart watch, a band, etc., or any other suitable device including, for example, one or more wireless interfaces, such as a GNSS radio, a WLAN radio, a cellular radio, a Bluetooth radio, a Zigbee radio, a near field communication (NFC) radio, and / or other wireless radios. Figure 1 In the embodiment, the electronic device 102 is depicted as a smart phone by way of example. The electronic device 102 may be and / or may include the following Figure 3 Electronic devices discussed and / or below regarding Figure 8 All or part of the electronic system in question.

[0021] exist Figure 1 In the example of FIG, the electronic device 102 is held by a user or otherwise coupled to a user (e.g., via a pocket or belt). However, the electronic device 102 may be coupled to a vehicle and / or housed within a vehicle. Figure 1 In the example of , the user is traveling on foot (e.g., walking). However, the user may be traveling in a vehicle (e.g., a land vehicle such as a car, motorcycle, bicycle, or a watercraft or flying vehicle), through water (e.g., swimming), or by other means.

[0022] In environment 100, electronic device 102 may determine its location based on satellite signals 105a-105d received from satellites 104a-104d. For example, satellites 104a-104d may be compatible with one or more of the Global Positioning System (GPS), the Global Navigation Satellite System (GLONASS), the Galileo Positioning System, and / or generally any positioning system.

[0023] For example, the electronic device 102 may use the satellite signals 105a-105d received from the satellites 104a-104d to determine its respective location (e.g., longitude, latitude, and altitude / altitude). As discussed herein, for example, in an environment where one or more received signals may be NLOS (e.g., environment 100), or in an environment where no received signals are NLOS, the electronic device 102 may weight the satellite signals used for a position estimate (e.g., a GNSS position estimate determined based on the satellite signals 105a-105d received from the satellites 104a-104d) (e.g., using a hidden Markov model, such as a hidden Markov model stored in a local memory of the electronic device 102).

[0024] Other positioning technologies (not shown) may be used independently of or in conjunction with GNSS (e.g., satellites 104a to 104d) to determine device location. For example, the location of electronic device 102 may be determined based on the time of arrival, angle of arrival, and / or signal strength of signals received from wireless access points (e.g., access point 108) that may have known locations (e.g., within a building or store, mounted on a street pole, etc.). Alternatively or in addition, positioning technologies such as, but not limited to, cellular phone signal positioning (e.g., using cellular network and mobile device signals for positioning), Bluetooth signal positioning, and / or image recognition positioning may be used to determine device location.

[0025] In addition, the electronic device 102 may implement an inertial navigation system (INS). The INS uses device sensors (e.g., motion sensors such as accelerometers, gyroscopes) to calculate device state (e.g., device position, speed, attitude) and / or user state (e.g., user speed, position) to supplement the location data provided by the above-mentioned positioning technologies in order to estimate the device position.

[0026] In environment 100, buildings 106a-106d may cause interference between satellites 104a-104d and electronic device 102. Figure 1In the example of FIG. 1 , buildings 106a to 106d form a dense urban environment that may prevent one or more signals from satellites 104a to 104d from directly reaching the electronic device. For example, building 106c prevents a direct LOS signal from satellite 104d from being directly received at electronic device 102, but satellite signal 105d is reflected off of building 106b before reaching electronic device 102 and is therefore an NLOS signal. Conversely, satellite signals 105a to 105c are received by satellite 104d at a location other than the electronic device 102. Figure 1 104a-104c and are therefore referred to as LOS signals. In one or more implementations, one or more satellite signals from one or more of the satellites 104a, 104b, and / or 104c (from which the LOS satellite signals 105a-105c are received at the electronic device 102) may also be reflected from one or more of the buildings 106a-106d and received as multipath signals (e.g., LOS signals and NLOS signals from the same satellite) at the electronic device 102. One objective of the subject system is to improve the classification and / or utilization of NLOS signals (e.g., signals from satellite 104d) in dense environments when insufficient LOS signals are available.

[0027] Figure 2 An example network environment for providing one or more LOS estimators to an electronic device for use with GNSS positioning according to one or more implementations is illustrated. However, not all of the components depicted may be used in all implementations, and one or more implementations may include additional or different components than those shown in the figures. Changes in the arrangement and type of these components may be made without departing from the spirit or scope of the claims listed herein. Additional components, different components, or fewer components may be provided.

[0028] The network environment 200 includes the electronic device 102, the network 202, and the server 204. The network 202 can communicatively couple (directly or indirectly) the electronic device 102 and the server 204, for example. In one or more specific implementations, the network 202 can be an interconnected network that can include the Internet and / or devices that are communicatively coupled to the Internet. For explanation purposes, the network environment 200 is shown in FIG. Figure 2 2 is illustrated as including a single electronic device 102 and a single server 204; however, the network environment 200 can include any number of electronic devices and any number (eg, more or less than one) of servers.

[0029] In one or more implementations, the electronic device 102 may be configured to communicate or otherwise interact with the server 204. In one or more implementations, the electronic device 102 may receive one or more statistical and / or machine learning models (such as a hidden Markov model) or provide satellite signal data from the server 204 to estimate the device location. In one or more implementations, the electronic device 102 may be configured with firmware and / or operating system code that may include one or more statistical and / or machine learning models, for example, at the time of manufacture or any time thereafter. The electronic device 102 may be and / or may include the following: Figure 3 The equipment discussed and / or described below Figure 8 All or part of the electronic system in question.

[0030] Server 204 may be and / or may include the following Figure 8 The server 204 may include one or more servers (such as a server cloud) that can be used to generate one or more statistical and / or machine learning models (such as hidden Markov models). For example, the server 204 may generate one or more statistical and / or machine learning models, such as hidden Markov models, based on GNSS receiver calculations and based on reference data corresponding to true value information, as described below with respect to Figure 4 In one or more specific implementations, the server 204 may provide the generated one or more statistical and / or machine learning models (such as a hidden Markov model) to the electronic device 102 (for example) for storage locally on the electronic device 102, and / or one or more of the statistical and / or machine learning models may be included in firmware and / or operating system code disposed on the electronic device 102.

[0031] For purposes of explanation, a single server 204 is shown and discussed with respect to various operations, such as generating one or more statistical and / or machine learning models (such as hidden Markov models) and providing one or more statistical and / or machine learning models (such as hidden Markov models). However, these operations and other operations discussed herein may be performed by one or more servers, and each different operation may be performed by the same or different servers. In one or more specific implementations, for example, one or more statistical and / or machine learning models, such as hidden Markov models, may be stored directly on the electronic device 102 at or around the time of manufacture of the electronic device 102 before the electronic device 102 is provided to a user. In one or more other specific implementations, one or more models, such as hidden Markov models, may be generated at the electronic device 102 and stored at the electronic device 102 and / or distributed to one or more other electronic devices. In one or more specific implementations, the server 204 may be responsible for updating one or more statistical and / or machine learning models, such as hidden Markov models, for example, for most (or all) geographic areas where data collected since previous processing may be used.

[0032] Figure 3 An example electronic device 102 is illustrated that can implement the subject system for estimating the location of an electronic device according to one or more specific implementations. For explanation purposes, this document mainly refers to Figure 1 Description of electronic device 102 Figure 3 . However, not all of the depicted components may be used in all implementations, and one or more implementations may include additional or different components than those shown in the figures. Changes in the arrangement and types of these components may be made without departing from the spirit or scope of the claims set forth herein. Additional components, different components, or fewer components may be provided.

[0033] The electronic device 102 may include one or more of a host processor 302, a memory 304, one or more sensors 306, a positioning circuit system 308, and / or a communication interface 310. The host processor 302 may include suitable logic components, circuit systems, and / or codes capable of processing data and / or controlling the operation of the electronic device 102. In this regard, the host processor 302 may be enabled to provide control signals to various other components of the electronic device 102. The host processor 302 may also control the transfer of data between various parts of the electronic device 102. The host processor 302 may also implement an operating system or may otherwise execute code to manage the operation of the electronic device 102. In addition, the host processor 302 may implement the following description of Figure 5 The position estimator is discussed further.

[0034] The memory 304 may include suitable logic, circuitry, and / or code to enable storage of various types of information, such as received data, generated data, code, and / or configuration information. The memory 304 may include, for example, a random access memory (RAM), a read-only memory (ROM), a flash memory, and / or a magnetic storage device. In one or more specific implementations, the memory 304 may store a hidden Markov model (e.g., as provided by the server 204) to facilitate estimation of the device location. The memory 304 may also store GNSS receiver data, wireless network reception data, sensor signal measurements, and / or device location estimates (e.g., based on the location of the electronic device 102).

[0035] Sensor 306 may include one or more motion sensors, such as one or more accelerometers, one or more rate gyroscopes, and / or any combination / quantity thereof (e.g., a set of three). One or more motion sensors may be used to facilitate motion and orientation-related functions of electronic device 102, for example, to detect motion, direction, and orientation of electronic device 102.

[0036] Alternatively or in addition, sensor 306 may include one or more of a barometer, an electronic magnetometer, or generally any sensor that can be used to facilitate a positioning system. A barometer can be used to detect atmospheric pressure for determining changes in altitude of electronic device 102. An electronic magnetometer (e.g., an integrated circuit chip) can provide data for determining the direction of magnetic north, such as for use as an electronic compass.

[0037] The positioning circuit system 308 can be used to determine the location of the electronic device 102 based on positioning technology. For example, the positioning circuit system 308 can provide one or more of the following: GNSS positioning (e.g., via a receiver configured to receive satellite signals 105a to 105d from satellites 104a to 104d), wireless access point positioning (e.g., via a wireless network receiver configured to receive signals from wireless access points), cellular telephone signal positioning, Bluetooth signal positioning (e.g., via a Bluetooth receiver), image recognition positioning (e.g., via an image sensor), and / or INS (e.g., via a motion sensor such as any number of accelerometers and / or gyroscopes). The positioning circuit system 308 can also be used to apply weights and / or other adjustments to received signals. For example, the electronic device 102 can determine that the signal is NLOS and apply weights to the NLOS signal to reduce its impact on the position determination of the positioning circuit system 308.

[0038] The communication interface 310 may include suitable logic, circuitry, and / or code to enable wired or wireless communication, such as between the electronic device 102 and the server 204. The communication interface 310 may include, for example, one or more of a Bluetooth communication interface, an NFC interface, a Zigbee communication interface, a WLAN communication interface, a USB communication interface, a cellular interface, and / or generally any communication interface.

[0039] In one or more specific implementations, one or more of the host processor 302, memory 304, one or more sensors 306, positioning circuitry 308, communication interface 310, and / or one or more portions thereof may be implemented in software (e.g., subroutines and code), in hardware (e.g., an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a programmable logic device (PLD), a controller, a state machine, a gated logic component, discrete hardware components, or any other suitable device), and / or in a combination of both.

[0040] Figure 4 An example process 400 for generating one or more probability models (e.g., a hidden Markov model 412) according to one or more specific implementations is illustrated. For explanation purposes, the operations of process 400 are described herein as occurring sequentially or linearly. However, multiple blocks of process 400 may occur in parallel. In addition, the operations of process 400 need not be performed in the order shown, and / or one or more operations of process 400 need not be performed and / or may be replaced by other operations.

[0041] To begin generating the hidden Markov model 412, training / testing data 408 may be collected. In one or more implementations, GNSS receiver calculations and / or reference device calculations at various locations may be collected. For example, an operator or non-operator vehicle may traverse a route, where the operator and / or vehicle is equipped with a GNSS receiver (e.g., a mobile device with a GNSS receiver, such as the electronic device 102) and a reference device that includes one or more high-precision location sensors having a higher accuracy than the accuracy of the GNSS receiver and / or is not subject to the aforementioned challenging signal environment.

[0042] In one or more specific implementations, the reference device can determine a position estimate independently of GNSS satellites and / or GNSS systems. For example, the reference device can include and / or be communicatively coupled to a direction measuring device (e.g., a compass), a distance measuring device (e.g., a wheel with a known circumference), and / or an INS, and the reference device can determine a position estimate based on measurements received from the compass and / or the distance measuring device.

[0043] At multiple locations, position estimates (e.g., GNSS measurements such as signal strength) may be collected from a GNSS receiver as well as position estimates collected from high-precision position sensors of reference devices. For example, the position estimate may correspond to longitude, latitude, and / or altitude / height estimates of the GNSS receiver, and these estimates may be included as part of training / testing data 408.

[0044] Additionally, the training / testing data 408 may include other parameters provided by the GNSS receiver, such as parameters used by the GNSS receiver to determine a position estimate. For example, the parameters may indicate or otherwise correspond to a position of a GNSS receiver (e.g., electronic device 102) relative to a GNSS satellite (e.g., one of satellites 104a-104d) providing a LOS line-of-sight signal for the device position estimate.

[0045] Examples of these parameters include, but are not limited to: pseudorange (e.g., the distance between a GNSS receiver and a GNSS satellite as measured by the speed of light multiplied by the time it takes for a signal to propagate from the satellite to the receiver); pseudorange uncertainty (e.g., a confidence value for the pseudorange); range rate (e.g., the rate of change of the distance between the GNSS receiver and the GNSS satellite); range rate uncertainty (e.g., a confidence value for the range rate); a multipath indicator (e.g., a value regarding the presence, absence, or unknown of whether a signal provided by a GNSS satellite to a GNSS receiver is a multipath signal); altitude above the horizon (e.g., the altitude of a GNSS satellite); azimuth (e.g., the angle from north to east); whether a measurement was used in generating a positioning fix at the GNSS receiver; and / or positioning fix position (corresponding to the above-mentioned position estimate as provided by the GNSS receiver, e.g., latitude, longitude, ellipsoid altitude). Other parameters that may be included as part of the training / testing data 408 include: satellite identifiers of GNSS satellites (e.g., constellation, band, carrier frequency, and / or satellite number); measurement latency; carrier tracking status (e.g., tracking, cycle slip detected, no cycle slip); carrier tracking uncertainty; position fix uncertainty (e.g., horizontal, vertical components); number of satellites used in the position fix; and / or horizontal dilution of precision (HDOP).

[0046] In one or more specific implementations, the position estimate, along with other information collected by the GNSS receiver and / or the reference device, can be used to determine whether a received satellite signal is a LOS signal. For example, the GNSS receiver and / or the reference device can determine that the satellite signal is no longer LOS based on an increase in uncertainty (e.g., pseudorange uncertainty, range rate uncertainty, and / or other forms of uncertainty).

[0047] In addition, at multiple locations, non-satellite signals and their attributes may be collected. For example, the non-satellite signal may be a Wi-Fi signal from access point 108, and its attributes may include SSID, signal strength, frequency, channel, etc. The information collected about the non-satellite signal may be related to one or more pieces of information about one or more GNSS satellites. For example, the SSID may be related to latitude and longitude.

[0048] Thus, the training / test data 408 may include one or more of the above parameters. As described above, the training / test data 408 may be obtained by an operator and / or vehicle equipped with a GNSS receiver and a reference device. Furthermore, the training / test data 408 may be obtained across multiple similarly equipped operators / vehicles, such that the database of the training / test data 408 includes a sufficient amount of measurements to generate, configure / train and / or test the hidden Markov model 412.

[0049] In addition to or as an alternative to the operator and / or vehicle examples described above, reference data may be provided in conjunction with a known road network corresponding to map data. In this example, the known road network may correspond to a reference device calculation, and the GNSS receiver calculation may be provided in a crowdsourced manner, where the position along the known road network is compared to the position estimate provided by the end user's device (e.g., electronic device 102). This data, as well as one or more of the other aforementioned parameters, may be collected and stored as training / testing data 408 in a manner that preserves the anonymity and privacy of the end user.

[0050] In one or more specific implementations, the training / testing data 408 may also include, for example, three-dimensional building models for one or more specific cities or other geographic areas and / or for urban areas in general. When combined with the reference position and satellite positions, the building models may be used to determine whether there is a LOS path to each satellite and / or whether the path to a given satellite is blocked by one or more buildings. Determining whether there is a LOS path to each satellite allows the training / testing data 408 to be binned into LOS and NLOS. The data in the LOS and NLOS bins may be analyzed to obtain one or more of the aforementioned statistical and / or machine learning models.

[0051] At block 410, in one or more implementations, the training / test data 408 may be partitioned to determine a training data set and a test data set for a hidden Markov model 412. For example, a training data set as obtained from the training / test data 408 may be used to initially train / configure the hidden Markov model 412. In one or more implementations, a test data set as obtained from the training / test data 408 may be used to tune the hidden Markov model 412 based on the initial training. The training / test data 408 may be partitioned by labeled categories (e.g., classification, status, etc.). For example, a particular set of information may be labeled (e.g., binned) as being derived from a LOS or NLOS satellite signal. In one or more implementations, the training / test data 408 may be binned into LOS and NLOS, in which case the training / test data 408 may be partitioned into each bin accordingly.

[0052] At block 411, a hidden Markov model 412 is configured. Configuration may include training and testing the hidden Markov model. Examples of algorithms used to train and / or test the hidden Markov model 412 include, but are not limited to, an expectation maximization algorithm and a forward-backward algorithm. Thus, the hidden Markov model 412 is generated to determine the probability that a satellite signal provided to the hidden Markov model 412 is a LOS signal (e.g., a hidden state), such as based on the training / testing data 408 (e.g., observed variables).

[0053] In one or more implementations, the hidden Markov model 412 can be periodically updated with new measurement error data to generate a new updated hidden Markov model 412. This type of updating method can provide improved maintainability and reduced computational overhead, for example.

[0054] Figure 5 An example of a position estimator 500 of the subject system that can be implemented by an electronic device 102 according to one or more specific implementations is illustrated. For example, the position estimator 500 can be implemented by one or more software modules running on the host processor 302 of the electronic device 102. In another example, the position estimator 500 can be implemented by custom hardware (e.g., one or more coprocessors) configured to perform the functionality of the position estimator 500. However, not all of the components depicted can be used in all specific implementations, and one or more specific implementations may include additional or different components than those shown in the figures. Changes in the arrangement and type of these components can be made without departing from the spirit or scope of the claims listed herein. Additional components, different components, or fewer components can be provided.

[0055] In one or more implementations, the positioning circuit system 308 of the electronic device 102 may include a position estimator 500, a signal modifier 504, and a hidden Markov model 412. For example, the hidden Markov model 412 may have been stored on the server 204. In turn, the server 204 may provide a copy of the hidden Markov model 412 to the electronic device 102 via the network 202, and the electronic device 102 may store the hidden Markov model 412 locally (e.g., in the memory 304 of the electronic device 102). In one or more implementations, the hidden Markov model 412 may be stored on the electronic device 102 at or around the time of manufacturing (e.g., before the electronic device 102 is provided to the user). In one or more implementations, the hidden Markov model 412 may be generated (e.g., trained and stored) at the electronic device 102. Although hidden Markov models are described herein in conjunction with various examples, it should be understood that other statistical and / or machine learning models may be used (e.g., other statistical and / or machine learning models may be trained and deployed to generate LOS probabilities based on the input data 502).

[0056] In one or more specific implementations, the hidden Markov model 412 may be specific to a particular city, a particular satellite, and / or a set of particular satellites. For example, the electronic device 102 may download a city-specific hidden Markov model 412 (e.g., where corresponding machine learning models are trained and tested for different cities (e.g., New York, San Francisco, and Los Angeles)). Alternatively or in addition, the hidden Markov model 412 may be specific to the type of environment, so that corresponding hidden Markov models are trained and tested for different environments (e.g., dense urban areas, urban areas, suburbs). The electronic device 102 may be configured to download (e.g., automatically or by prompting a user) an appropriate hidden Markov model 412 based on the general location of the electronic device 102, and store the hidden Markov model 412 locally.

[0057] For example, to prevent NLOS signals from corrupting position estimates based on LOS signals while still allowing NLOS signals to be used to assist position estimates, signal modifier 504 may use the output of hidden Markov model 412 (e.g., the probability that a satellite signal is LOS) to modify portions of input data 502.

[0058] As described above, the hidden Markov model 412 may have been trained and tested based on parameters similar to the inputs to the position estimator 500. The hidden Markov model 412 may be configured to output a probability that a satellite signal (e.g., from the input data 502) is LOS with respect to one or more GNSS satellites. This probability (e.g., as output by the hidden Markov model 412) may be an indication of how usable the NLOS satellite signal may be in determining a position along with other satellite signals included with the input data 502.

[0059] Satellite signals that are more likely (e.g., above a probability threshold) to be LOS can be considered LOS signals and, therefore, not modified by the signal modifier 504 prior to being used by the position estimator 500 to determine the estimated device position 506. In one or more implementations, satellite signals that are more likely to be LOS can be re-weighted by the signal modifier 504 (e.g., proportional to or otherwise based on the satellite signal's probability of LOS) to be more significant when used by the position estimator 500 to determine the estimated device position 506.

[0060] Satellite signals that are less likely to be LOS may be re-weighted (e.g., proportional to or otherwise based on the satellite signal's probability of LOS) by the signal modifier 504 (e.g., according to process 700 described below) to be less significant when used by the position estimator 500 to determine the estimated device position 506. Additionally or alternatively, satellite signals that are less likely to be LOS (e.g., below a probability threshold) may be discarded and / or replaced with another available satellite signal included with the input data 502 for use by the position estimator 500 to determine the estimated device position 506. In this manner, the signal modifier 504 may modify satellite signals in the input data 502 by weighting the satellite signals according to their respective probabilities of being LOS signals.

[0061] Alternatively or additionally, the output of the hidden Markov model 412 may indicate an order of use of measurements of one GNSS satellite relative to measurements of another GNSS satellite in the signal modifier 504. For example, if the hidden Markov model 412 indicates a high probability of LOS for a particular satellite signal, the measurements corresponding to that GNSS satellite may be given a higher priority (e.g., relative to the signal modifier 504) relative to measurements of satellite signals having a lower probability.

[0062] In one or more specific implementations, the output from the hidden Markov model 412 can indicate whether to mark (e.g., for rejection) a particular GNSS satellite. In such instances, the signal modifier 504 can be configured to ignore measurements (e.g., position estimates) from those GNSS satellites. For example, if measurements corresponding to a particular GNSS satellite are regularly determined to have a low LOS signal probability in a particular location, the particular GNSS satellite can be marked for the particular location.

[0063] The position estimator 500 may receive as input input data 502 (e.g., collected by the positioning circuit system 308) and / or output from the signal modifier 504 (e.g., weighted satellite signals), and may provide as output an estimated device position 506. The input data 502 may include data similar to those described above with respect to the training / testing data 408. For example, the input data 502 may be used to estimate the position of the electronic device 102 relative to a GNSS satellite associated with the input data 502 (e.g., one of the satellites 104a to 104d). The input data 502 may include, but is not limited to, a position derived from a non-satellite signal, a satellite signal strength, a pseudorange to a satellite corresponding to a satellite signal, and / or a multipath indicator. In one or more specific implementations, the satellite signal strength and / or the multipath indicator may be received in a satellite signal and / or derived from a satellite signal.

[0064] In one or more specific implementations, the position estimator 500 can be configured to combine the radio navigation signals (e.g., input data 502) with additional sensor data (e.g., as detected by a motion sensor on the electronic device 102). For example, the sensor data can include accelerometer measurements corresponding to the acceleration of the electronic device 102 and / or gyroscope measurements corresponding to the rotation rate of the electronic device 102. The sensor data can be used to improve the positioning solution by subtracting the antenna motion (e.g., GNSS antenna) between epochs of sampled radio navigation measurements (e.g., GNSS measurements), effectively allowing measurements from multiple epochs to be statistically combined to reduce errors. These techniques can be performed by an INS that is implemented by and / or communicatively coupled to the position estimator 500.

[0065] Additionally, signal modifier 504 may correspond to an algorithm that uses a series of measurements / signals observed over time (e.g., which may contain noise and other inaccuracies) and produces estimates of unknown variables (e.g., device state and / or user state) that tend to be more accurate than those based on only a single measurement (e.g., a single GNSS measurement). Thus, measurements of GNSS receiver signals (e.g., input data 502) may be used in signal modifier 504 along with numerical integration of sensor measurements (e.g., as performed by an INS) to subtract undesired antenna motion between epochs.

[0066] In one or more implementations, one or more of the position estimator 500 , the signal modifier 504 , and the hidden Markov model 412 may be implemented as software instructions stored in the memory 304 that, when executed by the host processor 302 , cause the host processor 302 to perform specific functions.

[0067] In one or more implementations, one or more of the position estimator 500, the signal modifier 504, and the hidden Markov model 412 may be implemented in software (e.g., subroutines and code), in hardware (e.g., ASICs, FPGAs, programmable logic devices (PLDs), controllers, state machines, gated logic components, discrete hardware components, or any other suitable devices), and / or in a combination of both. In one or more implementations, some or all of the depicted components may share hardware and / or circuitry, and / or one or more of the depicted components may utilize dedicated hardware and / or circuitry. Additional features and functionality of these modules in accordance with aspects of the subject technology are further described in this disclosure.

[0068] Figure 6 A flowchart of an example process 600 for estimating the location of an electronic device according to one or more specific implementations is illustrated. Figure 1 Process 600 is described. However, process 600 is not limited to server 204, and one or more blocks (or operations) of process 600 may be performed by one or more other components of server 204 and / or by other suitable devices. In addition, for explanation purposes, the blocks of process 600 are described herein as occurring sequentially or linearly. However, multiple blocks of process 600 may occur in parallel. In addition, the blocks of process 600 need not be performed in the order shown, and / or one or more blocks of process 600 need not be performed and / or may be replaced by other operations.

[0069] At block 602, a first satellite signal and a second satellite signal are received by an electronic device, such as the electronic device 102. Although the discussion regarding process 700 is in terms of two satellite signals, it is understood that the electronic device 102 may receive more than two satellite signals. For example, the electronic device 102 may receive signals from satellites 104a-104d, any two or more of which may be referred to as a first satellite signal and a second satellite signal.

[0070] Based on the first satellite signal (e.g., satellite signals 105a to 105d from satellites 104a to 104d) and / or the second satellite signal, the electronic device 102 may receive and / or derive a set of parameters for estimating the position of the electronic device 102. These parameters may include parameters associated with the position of the receiving device relative to the satellite, such as at least one of an azimuth, an elevation, a pseudorange, an uncertainty associated with the pseudorange, a range rate, an uncertainty associated with the range rate, and / or a multipath indicator.

[0071] Although block 602 may be performed whenever the electronic device 102 determines its location, the process 600 may be activated based on an increased probability of NLOS and / or multipath satellite signals in particular. For example, the process 600 may be triggered when the electronic device 102 is within a threshold distance from a dense area (e.g., a large urban area). For example, such triggering of the specific scenario and / or geographic area in which the process 600 is to be utilized may reduce the probability of increasing processing time, battery utilization, etc. in an environment where the number of LOS satellite signals is likely to be sufficient. Therefore, the process 600 may be deactivated based on an increased probability of LOS satellite signals. For example, the process 600 may be deactivated when the electronic device exceeds a threshold distance from a dense area (e.g., a forest).

[0072] At block 604, a determination is made (e.g., by the electronic device 102) as to whether the first satellite signal is LOS. In one or more implementations, a hidden Markov model is used to make the determination. For example, the hidden Markov model may be based on the above description of Figure 4 The processes discussed may be configured for a particular satellite (eg, a first satellite). In one or more implementations, the hidden Markov model receives as input a signal strength of at least a first satellite signal (eg, received at block 602).

[0073] The non-satellite signals may include, for example, wireless access point signals, cellular phone signals, Bluetooth signals, and / or any other non-GNSS signals. The non-satellite signals may provide and / or be used to derive an initially estimated position. The initially estimated position may be based on the position of the transmitter corresponding to the non-satellite signal and the signal strength of the non-satellite signal. For example, a wireless access point may have a known position, and the signal strength from the wireless access point may indicate the distance from the wireless access point. The initially estimated position may also be based on the speed, heading, direction, and / or time of the electronic device 102. For example, the route traveled by the electronic device 102 from the location of the wireless access point may be used to determine the initially estimated position via dead reckoning. The initially estimated position may also be based on geographic data and / or vertical positioning data for three-dimensional positioning of the electronic device 102. For example, the electronic device 102 may access its vertical positioning data tracked by its INS, barometer, etc.

[0074] The signal strength input to the hidden Markov model may be the signal strength of the corresponding satellite signal. The signal strength may be expressed in any form such as carrier-to-noise density, signal-to-noise ratio, etc. For example, the electronic device 102 may receive a satellite signal, pre-process the satellite signal (e.g., signal smoothing via a Hatch filter), and determine a signal-to-noise ratio (e.g., for use with a hidden Markov model corresponding to the satellite).

[0075] In one or more specific implementations, the hidden Markov model may also receive a multipath indicator as an input. The multipath indicator may be an indicator determined by a GNSS receiver (e.g., positioning circuit system 308) of the electronic device 102 based at least on the satellite signal to indicate that the satellite signal is likely to be a multipath signal. The multipath indicator may be a value indicating the presence, absence, or unknown of whether the signal has a multipath attribute (e.g., is likely to be multipath).

[0076] A statistical and / or machine learning model such as a hidden Markov model may receive one or more observed variables to determine a sequence or set of hidden states, where the observed variables depend on the state. In the context of the present disclosure, the hidden state may be LOS or NLOS, and the observed variables include a position derived from a non-satellite signal (which may be used to derive a difference between a measured pseudorange and a predicted pseudorange from a satellite derived independently of GNSS), a signal strength of a satellite signal, a pseudorange of a satellite corresponding to the satellite signal, and / or a multipath indicator. Thus, a hidden Markov model may be used to determine the probability that a corresponding satellite signal is LOS based on the received input. That is, in one or more specific implementations, a hidden Markov model may be used to determine the most likely state of a satellite signal given a particular set of observed variables. In one or more specific implementations, an output of the hidden Markov model may be a probability that a first satellite signal is a LOS signal or a probability that a first satellite signal is a NLOS signal. In one or more specific implementations, the electronic device 102 may have a probability threshold, and a satellite signal (e.g., a first satellite signal) may be classified as LOS or NLOS according to the probability threshold. For example, if the first hidden Markov model estimates the probability that the first satellite signal is LOS to be 80% and the electronic device 102 has a LOS threshold of 75%, the electronic device 102 may consider the first satellite signal to be a LOS signal. It should be understood that implementations of the subject technology are not limited to the use of hidden Markov models, but may also or instead utilize other models, such as stochastic models, probabilistic models, statistical models, machine learning models, finite state machines, heuristic processes, etc. It should also be understood that if a satellite broadcasts multiple signals (e.g., L1 and L5), observed variables from one or more of the signals may be used to update the model corresponding to the satellite.

[0077] At block 606, it is determined (e.g., by the electronic device 102) whether the second satellite signal is LOS. For example, the probability of LOS may be determined by a second hidden Markov model corresponding to the satellite from which the second satellite signal comes (e.g., the second satellite). The second hidden Markov model may be configured (e.g., trained) according to the process discussed with respect to the second hidden Markov model 4. The second hidden Markov model may receive as input at least the signal strength of the second satellite signal. The inputs to the second hidden Markov model may be similar to the inputs to the first hidden Markov model in block 604, and therefore they will not be described repeatedly. However, the non-satellite signal may be the same non-satellite signal used as the input to the first hidden Markov model. As with the first hidden Markov model, the second hidden Markov model may determine the most likely state of the satellite signal given a particular set of observed variables. In one or more specific implementations, the output of the second hidden Markov model may be the probability that the second satellite signal is a LOS signal and / or the probability that the second satellite signal is a LOS signal. In one or more specific implementations, the electronic device 102 can have a probability threshold by which a satellite signal (e.g., a second satellite signal) can be classified as LOS or NLOS. It should be understood that although two signals are described, any and / or each signal used in determining the location of the electronic device 102 can be classified as LOS or NLOS.

[0078] At block 608, in response to determining whether the first satellite signal is LOS and whether the second satellite signal is non-LOS, the position of the electronic device 102 may be estimated (e.g., by the positioning circuitry 308 of the electronic device 102) based at least in part on the first satellite signal and the second satellite signal. The electronic device 102 may use any available method to estimate the position based on the determination of whether the first satellite signal is LOS and whether the second satellite signal is non-LOS. In one or more specific implementations, the satellite signals may be any combination of the raw or weighted first satellite signal and the second satellite signal, the combination being determined based on the determination of whether the first satellite signal is a LOS signal and whether the second satellite signal is a LOS signal. For example, as described below with respect to Figure 7 As described, a position may be estimated based on a first satellite signal and a second satellite signal, wherein at least the second satellite signal is weighted based on its NLOS property (e.g., based on a probability that the second satellite signal is a LOS signal). In one or more such implementations, determining that the satellite signals to be used in the estimate of the device position include at least one NLOS signal (e.g., the second satellite signal) may be a trigger for determining a weight to apply to one or more satellite signals (e.g., the NLOS signal and / or the LOS signal) to improve the accuracy of the position estimate.

[0079] Figure 7A flowchart of an example process for estimating the location of an electronic device according to one or more specific implementations is illustrated. For explanation purposes, this article mainly refers to Figure 1 Process 700 is described. However, process 700 is not limited to electronic device 102, and one or more blocks (or operations) of process 700 may be performed by one or more other components of electronic device 102 and / or by other suitable devices. In addition, for the purpose of explanation, the blocks of process 700 are described herein as occurring sequentially or linearly. However, multiple blocks of process 700 may occur in parallel. In addition, the blocks of process 700 do not have to be performed in the order shown, and / or one or more blocks of process 700 do not have to be performed and / or may be replaced by other operations.

[0080] At block 702, a first satellite signal and a second satellite signal are received by an electronic device, such as the electronic device 102 (e.g., as input data 502). Although discussion of process 700 is provided herein in terms of two satellite signals, it should be understood that the electronic device 102 may receive more than two satellite signals. For example, the electronic device 102 may receive satellite signals 105a-105d from satellites 104a-104d, any two or more of which may be referred to as a first satellite signal and a second satellite signal.

[0081] Based on the first satellite signal (e.g., signals from satellite signals 105a to 105d) and / or the second satellite signal, the electronic device 102 may receive and / or derive a set of parameters for estimating the position of the electronic device 102. These parameters may include parameters associated with the position of the receiving device relative to the satellite, such as at least one of an azimuth, an elevation, a pseudorange, an uncertainty associated with the pseudorange, a range rate, an uncertainty associated with the range rate, and / or a multipath indicator.

[0082] At block 704, a probability that the first satellite signal is LOS is determined. In one or more implementations, the probability of LOS is determined using a hidden Markov model (e.g., hidden Markov model 412) corresponding to the satellite from which the first satellite signal originated. In one or more implementations, the probability of LOS is determined according to the above description of Figure 4 One or more of the inputs to the hidden Markov model corresponding to the first satellite may be based on and / or include, for example, a position derived from a non-satellite signal, a signal strength of the satellite signal, a pseudorange of a satellite corresponding to the satellite signal, and / or a multipath indicator.

[0083] The non-satellite signal may include, for example, a wireless access point signal, a cellular phone signal, a Bluetooth signal, and / or any other non-GNSS signal. The non-satellite signal may provide an initially estimated position. The initially estimated position may be based on the position of the transmitter corresponding to the non-satellite signal and the signal strength of the non-satellite signal. For example, a wireless access point may have a known position, and the signal strength from the wireless access point may indicate the distance from the wireless access point. The initially estimated position may also be based on the speed, heading, direction, and / or time of the electronic device 102. For example, the route traveled by the electronic device 102 from the location of the wireless access point may be used to determine the initially estimated position via dead reckoning. The initially estimated position may also be based on geographic data and / or vertical positioning data for three-dimensional positioning of the electronic device 102. For example, the electronic device 102 may access its vertical positioning data tracked by its INS.

[0084] The signal strength input to the hidden Markov model may be the signal strength of a satellite signal (e.g., a satellite signal corresponding to the hidden Markov model). The signal strength may be expressed in any form such as carrier-to-noise density, signal-to-noise ratio, etc. For example, the electronic device 102 may receive a satellite signal, pre-process the satellite signal (e.g., signal smoothing via a Hatch filter), and determine a signal-to-noise ratio (e.g., for use with a hidden Markov model corresponding to a satellite).

[0085] The multipath indicator may be an indicator determined by a GNSS receiver (e.g., positioning circuitry 308) of the electronic device 102 that a signal is likely to be a multipath signal. The multipath indicator may be a value that indicates presence, absence, or unknown as to whether a signal has multipath properties (e.g., is likely to be multipath).

[0086] The hidden Markov model may receive one or more observed variables to determine a sequence or set of hidden states, wherein the observed variables depend on the state. In one or more specific implementations of the present disclosure, the hidden state is LOS or NLOS, and the observed variables include non-satellite signals, signal strengths of satellite signals, pseudoranges of satellites corresponding to satellite signals, and / or multipath indicators. Thus, the hidden Markov model may determine the probability that the corresponding satellite signal is LOS based on the received input. In one or more specific implementations, the hidden Markov model may determine the most likely state of the satellite signal given a particular set of observed variables.

[0087] At block 706, a weight may be determined and applied (e.g., by the signal modifier 504) to the first satellite signal to obtain a weighted first satellite signal. The weight may be determined based on the probability that the signal is LOS. The weight may be such that the effect of a possible NLOS signal on the position estimate is reduced. For example, in one or more specific implementations, when the first probability that the first satellite signal is LOS is less than the second probability that the second satellite signal is LOS, the first weight is less than the second weight, such that the corresponding first satellite signal is weighted less than the second satellite signal when determining the estimated position. Reducing the weight of the NLOS satellite signal allows for reducing errors that may be introduced into the position estimate by the NLOS satellite signal, while still allowing the NLOS satellite signal to be used in areas where the number of available LOS satellite signals is low or insufficient. Additionally or alternatively, possible LOS signals may be weighted such that their effect on the position estimate is increased. For example, in one or more specific implementations, when the first probability that the first satellite signal is LOS is higher than the second probability that the second satellite signal is LOS, the first weight is greater than the second weight, such that the corresponding first satellite signal is weighted more than the second satellite signal when determining the estimated position.

[0088] In one or more specific implementations, when many satellite signals are available (e.g., greater than four), the first satellite signal may be discarded and another available satellite signal may be used instead. For example, when the first satellite signal is determined to be an NLOS signal and when a LOS signal or another signal with a relatively high probability of being LOS is available, the first satellite signal may be discarded. For example, using different NLOS signals with a relatively high probability of LOS may have a smaller negative impact on position determination, while still allowing position determination in a complex environment with insufficient LOS signals. In one or more specific implementations, the probability that a signal is an LOS signal may be compared to a threshold of the LOS probability, and the signal may be discarded when the probability is below the threshold. The threshold may be based on the number of available LOS signals. For example, when fewer LOS signals are available, the threshold may be reduced so that the system has a higher tolerance for signals that are unlikely to be LOS. In one or more specific implementations, the signal may be weighted so that the signal is effectively discarded when determining the location of the electronic device 102.

[0089] In one or more implementations, the probabilities and weights may be updated periodically. The probabilities and weights may be updated by periodically updating the inputs to the hidden Markov model. For example, as the electronic device moves, the location derived from the non-satellite signal may change (e.g., via dead reckoning), which may cause the hidden Markov model to change the probability that the signal is LOS, which may then affect the weights assigned to the satellite signals. Similarly, the weights may gradually decrease as the probability that the satellite signal is LOS increases, and vice versa, in order to prevent sudden changes in the estimated location of the electronic device 102.

[0090] At block 708, a probability that the second satellite signal is LOS is determined. In one or more implementations, the LOS probability is determined by a second hidden Markov model (e.g., hidden Markov model 412) corresponding to the satellite from which the second satellite signal comes. In one or more implementations, according to the above description of Figure 4 The second hidden Markov model may be configured using the processes discussed above. The inputs to the second hidden Markov model corresponding to the second satellite may be based on and / or may include a position derived from the non-satellite signal, a signal strength of the second satellite signal, a pseudorange of the second satellite, and / or a multipath indicator of the second satellite signal. The inputs to the second hidden Markov model may be similar to the inputs to the first hidden Markov model in block 704, and therefore they will not be described repeatedly. However, the non-satellite signal may be the same non-satellite signal used as an input to the first hidden Markov model. It should be understood that although two signals are described, the probability may be determined for any and / or each satellite signal used in determining the position of the electronic device 102.

[0091] At block 710, a weight may be determined and applied to the second satellite signal to obtain a weighted second satellite signal. The weight may be determined (e.g., by the signal modifier 504) based on the probability that the second signal is LOS. The weight may be such that the effect of a possible NLOS signal on the position estimate is reduced. Reducing the weight of the NLOS satellite signal reduces the error that may be introduced into the position estimate by the NLOS satellite signal, while still allowing the NLOS satellite signal to be used in areas where the number of available LOS signals is low or insufficient. Additionally or alternatively, possible LOS signals may be weighted such that their effect on the position estimate is increased. It should be understood that although two signals are described, a weight may be determined for any and / or each signal used in determining the position of the electronic device 102.

[0092] At block 712, the position of the electronic device 102 may be estimated based on the weighted first satellite signal and the weighted second satellite signal. A position estimator (e.g., position estimator 500) may receive as input the satellite signals (e.g., input data 502) and the weighted satellite signals from block 710. The position estimator may utilize the satellite signals and / or the weighted satellite signals to provide as output an estimated device position (e.g., estimated device position 506).

[0093] As described above, one aspect of the present technology is to collect and use data from various sources. The disclosure contemplates that, in some instances, these collected data may include personal information data that uniquely identifies or can be used to contact or locate a specific person. Such personal information data may include demographic data, location-based data, phone numbers, email addresses, Twitter IDs, home addresses, data or records related to the user's health or health level (e.g., vital signs measurements, medication information, exercise information), date of birth, or any other identification or personal information.

[0094] The present disclosure recognizes that the use of such personal information data in the present technology can be used to benefit the user. In addition, the present disclosure also anticipates other uses of personal information data that benefit the user. For example, health and fitness data can be used to provide insights into the user's overall health or can be used as positive feedback to individuals who use technology to pursue health goals.

[0095] The disclosure anticipates that entities responsible for the collection, analysis, disclosure, transmission, storage or other purposes of such personal information data will comply with sound privacy policies and / or privacy measures. Specifically, such entities should implement and adhere to the use of privacy policies and practices that are recognized as meeting or exceeding the industry or government requirements for maintaining the privacy and security of personal information data. Such policies should be easy for users to access and should be updated as changes in the collection and / or use of data occur. Personal information from users should be collected for legal and reasonable entity purposes and should not be shared or sold outside these legal purposes. In addition, such collection / sharing should be carried out after receiving the informed consent of the user. In addition, such entities should consider taking any necessary steps to protect and safeguard access to such personal information data, and ensure that other entities with access to personal information data comply with their privacy policies and procedures. In addition, such entities can subject themselves to third-party assessments to prove that they comply with widely accepted privacy policies and practices. In addition, policies and practices should be adapted to specific types of personal information data collected and / or accessed, and to applicable laws and standards including considerations of special jurisdictions. For example, in the United States, the collection or acquisition of certain health data may be governed by federal and / or state laws, such as the Health Insurance Portability and Accountability Act (HIPAA); while health data in other countries may be subject to other regulations and policies and should be handled accordingly. Therefore, different privacy measures should be advocated for different types of personal data in each country.

[0096] Regardless of the foregoing, the present disclosure also contemplates implementation schemes in which users selectively block the use or access of personal information data. That is, the present disclosure contemplates hardware components and / or software components to prevent or block access to such personal information data. For example, the technology of the present invention can be configured to allow users to choose to "opt in" or "opt out" to participate in the collection of personal information data during registration for a service or at any time thereafter. In addition to providing "opt-in" and "opt-out" options, the present disclosure also contemplates providing notifications related to access or use of personal information. For example, a user may be notified that their personal information data will be accessed when downloading an application, and then reminded again just before the personal information data is accessed by the application.

[0097] In addition, it is the intention of the present disclosure that personal information data should be managed and processed in a manner that minimizes the risk of unintentional or unauthorized access or use. Once the data is no longer needed, the risk can be minimized by limiting the collection of data and deleting the data. In addition, and when applicable, including in certain health-related applications, data de-identification can be used to protect the privacy of users. Where appropriate, de-identification can be facilitated by removing specific identifiers (e.g., date of birth, etc.), controlling the amount of features of stored data (e.g., collecting location data at the city level rather than the address level), controlling how the data is stored (e.g., aggregating data between users), and / or other methods.

[0098] Thus, while the present disclosure broadly covers the use of personal information data to implement one or more of the various disclosed embodiments, the present disclosure also contemplates that various embodiments may also be implemented without access to such personal information data. That is, various embodiments of the present technology will not fail to function properly due to the lack of all or a portion of such personal information data. For example, content may be selected and delivered to a user based on non-personal information data or a small amount of personal information, such as content requested by a device associated with the user, other non-personal information, or publicly available information.

[0099] Figure 8 An example electronic system 800 is illustrated that can be used to implement aspects of the subject technology according to one or more implementations. The electronic system 800 can be used to generate a reference Figures 1 to 3Any electronic device and / or portion thereof that implements the features and processes described herein, including but not limited to laptop computers, tablet computers, smart phones, and wearable devices (e.g., smart watches, fitness bands). Electronic system 800 may include various types of machine-readable media and interfaces for various other types of machine-readable media. Electronic system 800 includes one or more processing units 814, persistent storage device 802, system memory 804 (and / or buffer), input device interface 806, output device interface 808, bus 810, ROM 812, one or more processing units 814, one or more network interfaces 816, positioning circuit system 818, sensor 820, and / or subsets and variations thereof.

[0100] The bus 810 generally represents all system buses, peripheral busses, and chipset buses that communicatively connect the various internal devices of the electronic system 800. In one or more specific implementations, the bus 810 communicatively connects one or more processing units 814 with the ROM 812, the system memory 804, and the persistent storage device 802. The one or more processing units 814 retrieve instructions to be executed and data to be processed from these various memory units in order to perform the processes disclosed in the present subject matter. In different specific implementations, the one or more processing units 814 can be a single processor or a multi-core processor.

[0101] ROM 812 stores static data and instructions required by one or more processing units 814 and other modules of the electronic system 800. On the other hand, the persistent storage device 802 can be a read-write memory device. The persistent storage device 802 can be a non-volatile memory unit that stores instructions and data even when the electronic system 800 is turned off. In one or more specific implementations, a mass storage device (such as a magnetic disk or optical disk and its corresponding disk drive) can be used as the persistent storage device 802.

[0102] In one or more specific implementations, a removable storage device (such as a floppy disk, a flash drive, and its corresponding disk drive) may be used as the persistent storage device 802. Like the persistent storage device 802, the system memory 804 can be a read-write memory device. However, unlike the persistent storage device 802, the system memory 804 can be a volatile read-write memory, such as RAM. The system memory 804 can store any of the instructions and data that one or more processing units 814 may need at runtime. In one or more specific implementations, the processes disclosed in the subject matter are stored in the system memory 804, the persistent storage device 802, and / or the ROM 812. The one or more processing units 814 retrieve instructions to be executed and data to be processed from these various memory units in order to perform the processes of one or more specific implementations.

[0103] The bus 810 is also connected to an input device interface 806 and an output device interface 808. The input device interface 806 enables a user to communicate information and select commands to the electronic system 800. Input devices that can be used with the input device interface 806 may include, for example, an alphanumeric keyboard and a pointing device (also referred to as a "cursor control device"). The output device interface 808 may, for example, enable the display of images generated by the electronic system 800. Output devices that can be used with the output device interface 808 may include, for example, a printer and a display device, such as a liquid crystal display (LCD), a light emitting diode (LED) display, an organic light emitting diode (OLED) display, a flexible display, a flat panel display, a solid state display, a projector, or any other device for outputting information.

[0104] One or more implementations may include a device that acts as both an input device and an output device, such as a touch screen. In these implementations, the feedback provided to the user may be any form of sensory feedback, such as visual feedback, auditory feedback, or tactile feedback; and the input from the user may be received in any form, including acoustic, voice, or tactile input.

[0105] The bus 810 is also connected to a positioning circuit system 818 and one or more sensors 820. The positioning circuit system 818 can be used to determine the device location based on positioning technology. For example, the positioning circuit system 818 can provide one or more of GNSS positioning, wireless access point positioning, cellular phone signal positioning, Bluetooth signal positioning, image recognition positioning, and / or INS (e.g., via motion sensors such as accelerometers and / or gyroscopes).

[0106] In one or more specific implementations, one or more sensors 820 may be used to detect movement, travel, and orientation of the electronic system 800. For example, one or more sensors may include an accelerometer, a rate gyroscope, and / or one or more other motion-based sensors. Alternatively or in addition, one or more sensors 820 may include one or more audio sensors and / or one or more image-based sensors for determining device positioning. For another example, one or more sensors 820 may include a barometer that can be used to detect atmospheric pressure (e.g., corresponding to device altitude).

[0107] Finally, if Figure 8 As shown, bus 810 also couples electronic system 800 to one or more networks and / or to one or more network nodes via one or more network interfaces 816. In this manner, electronic system 800 may be part of a computer network such as a LAN or a wide area network ("WAN"). Any or all components of electronic system 800 may be used with the subject disclosure.

[0108] Implementations within the scope of the present disclosure may be implemented in part or in whole using a tangible machine-readable storage medium (or multiple tangible machine-readable storage media of one or more types) encoded with one or more instructions, such as persistent storage device 802 and / or system memory 804. Tangible machine-readable storage media may also be non-transitory in nature.

[0109] Machine-readable storage media can be any storage media that can be read, written, or otherwise accessed by a general or special computing device, including any processing electronics and / or processing circuitry capable of executing instructions. For example, without limitation, machine-readable media can include any volatile semiconductor memory, such as RAM, DRAM, SRAM, T-RAM, Z-RAM, and TTRAM. Machine-readable media can also include any non-volatile semiconductor memory, such as ROM, PROM, EPROM, EEPROM, NVRAM, flash memory, nvSRAM, FeRAM, FeTRAM, MRAM, PRAM, CBRAM, SONOS, RRAM, NRAM, racetrack memory, FJG, and Millipede memory.

[0110] Additionally, the machine-readable storage medium may include any non-semiconductor memory, such as optical disk storage, magnetic disk storage, magnetic tape, other magnetic storage devices, or any other medium capable of storing one or more instructions. In one or more implementations, the tangible machine-readable storage medium may be directly coupled to the computing device, while in other implementations, the tangible machine-readable storage medium may be indirectly coupled to the computing device, for example, via one or more wired connections, one or more wireless connections, or any combination thereof.

[0111] Instructions can be directly executable, or can be used to develop executable instructions. For example, instructions can be implemented as executable or non-executable machine code, or can be implemented as high-level language instructions that can be compiled to produce executable or non-executable machine code. In addition, instructions can also be implemented as data, or can include data. Computer executable instructions can also be organized in any format, including routines, subroutines, programs, data structures, objects, modules, applications, applets, functions, etc. As recognized by those skilled in the art, the details including but not limited to the number, structure, sequence and organization of instructions can be significantly different without changing the underlying logic, function, processing and output.

[0112] Although the above discussion mainly involves microprocessors or multi-core processors that execute software, one or more implementations are performed by one or more integrated circuits such as ASICs or FPGAs. In one or more implementations, such integrated circuits execute instructions stored on the circuits themselves.

[0113] Those skilled in the art will recognize that the various illustrative frames, modules, elements, components, methods and algorithms described herein can be implemented as electronic hardware, computer software or a combination of the two. In order to illustrate this interchangeability of hardware and software, various illustrative frames, modules, elements, components, methods and algorithms have been generally described above according to functionality. Whether such functionality is implemented as hardware or software depends on the specific application and the design constraints imposed on the entire system. The technician can implement the described functionality in different ways for each specific application. Various components and frames can be arranged differently (e.g., arranged in different orders, or divided in different ways) without departing from the scope of the subject technology.

[0114] It should be understood that the specific order or hierarchy of the frames in the process disclosed by the present invention is an illustration of the example method. Based on the design preference requirements, it should be understood that the specific order or hierarchy of the frames in the process can be rearranged or all the illustrated frames are executed. Any frame in these frames can be executed simultaneously. In one or more specific implementations, multitasking and parallel processing may be advantageous. In addition, the division of each system component in the above-mentioned embodiment should not be understood as requiring such division in all embodiments, and it should be understood that the program components and the system can be generally integrated together in a single software product or encapsulated in multiple software products.

[0115] As used in this specification and any claims of this patent application, the terms "base station", "receiver", "computer", "server", "processor" and "memory" all refer to electronic devices or other technical devices. These terms exclude people or groups of people. For the purpose of this specification, the term "display" or "displaying" means displaying on an electronic device.

[0116] As used herein, the phrase "at least one of" following a list of items, any of which is separated by the terms "and" or "or", modifies the list as a whole, rather than each member of the list (i.e., each item). The phrase "at least one of" does not require selection of at least one of each item listed; rather, the phrase allows for a meaning that includes at least one of any one item and / or at least one of any combination of items and / or at least one of each item. For example, the phrase "at least one of A, B, and C" or "at least one of A, B, or C" each refers to only A, only B, or only C; any combination of A, B, and C; and / or at least one of each of A, B, and C.

[0117] The predicate words "configured to," "operable to," and "programmed to" do not imply any specific tangible or intangible modification of a subject matter but are intended to be used interchangeably. In one or more specific implementations, a processor configured to monitor and control an operation or component may also mean that the processor is programmed to monitor and control the operation or that the processor is operable to monitor and control the operation. Similarly, a processor configured to execute code may be interpreted as a processor programmed to execute code or operable to execute code.

[0118] Phrases such as aspect, this aspect, on the other hand, some aspects, one or more aspects, a specific implementation, this specific implementation, another specific implementation, some specific implementations, one or more specific implementations, an embodiment, this embodiment, another embodiment, some embodiments, one or more embodiments, configuration, this configuration, other configurations, some configurations, one or more configurations, subject technology, disclosure, the present disclosure, other variations thereof, etc. are for convenience and do not mean that the disclosure involving such one or more phrases is essential to the subject technology, nor does it mean that such disclosure applies to all configurations of the subject technology. Disclosures involving such one or more phrases may apply to all configurations or one or more configurations. Disclosures involving such one or more phrases may provide one or more examples. Phrases such as aspect or some aspects may refer to one or more aspects and vice versa, and this applies similarly to the other aforementioned phrases.

[0119] The word "exemplary" is used herein to mean "serving as an example, instance, or illustration." Any implementation described herein as "exemplary" or as an "example" is not necessarily to be construed as preferred or advantageous over other implementations. In addition, to the extent that the terms "including," "having," and the like are used in the specification or claims, such terms are intended to be inclusive in a manner similar to how the term "comprising" is interpreted when used as a transitional word in a claim.

[0120] All structural and functional equivalents to the elements of various aspects described throughout this disclosure that are known or later become known to those of ordinary skill in the art are expressly incorporated herein by reference and are intended to be covered by the claims. In addition, nothing disclosed herein is intended to be made available to the public regardless of whether the disclosure is explicitly stated in the claims. Pursuant to 35 U.S.C. §112, sixth paragraph, no claim element shall be construed unless the element is expressly stated using the phrase “means for” or, in the case of a method claim, the element is stated using the phrase “step for”.

[0121] The previous description is provided so that any person skilled in the art can practice the various aspects described herein. Various modifications of these aspects are obvious to those skilled in the art, and the general principles defined herein can be applied to other aspects. Therefore, the claims are not intended to be limited to the aspects shown herein, but are intended to make the full scope consistent with the language claims, wherein the reference to the elements in the singular value is not intended to mean "one and only one", but refers to "one or more", unless specifically indicated. Unless otherwise specifically stated, the term "some" refers to one or more. Male pronouns (e.g., his) include female and neutral (e.g., her and its), and vice versa. Titles and subtitles (if any) are used only for convenience and do not limit the subject disclosure.

Claims

1. A method, comprising: receiving a first satellite signal and a second satellite signal with an electronic device; determining, using the electronic device, a first probability that the first satellite signal is a first line-of-sight satellite signal; determining, with the electronic device, a second probability that the second satellite signal is a second line-of-sight satellite signal; as well as A position of the electronic device is estimated with the electronic device based at least in part on the first probability that the first satellite signal is the first line-of-sight satellite signal and the second probability that the second satellite signal is the second line-of-sight satellite signal.

2. The method according to claim 1, wherein: determining the first probability based at least in part on a first signal strength of the first satellite signal; and Determining the second probability is based at least in part on a second signal strength of the second satellite signal. The method of claim 1 , wherein determining the first probability and the second probability is based on a first hidden Markov model and a second hidden Markov model, respectively.

4. The method of claim 3 , wherein inputs to the first hidden Markov model and the second hidden Markov model include at least one of a location of the electronic device derived from a non-satellite signal, a signal strength of a satellite signal corresponding to the hidden Markov model, a pseudorange of a satellite corresponding to the satellite signal, and a multipath indicator set based on pre-processing received signals. 5 . The method of claim 4 , wherein the estimated location of the electronic device is based on a location corresponding to a transmitter of the non-satellite signal and a signal strength of the non-satellite signal. The method of claim 4 , wherein the estimated location is further based on at least one of a speed, a heading, a direction, and a time of the electronic device.

7. The method of claim 4, wherein the estimated position is a three-dimensional position further based on at least one of geographic data and vertical positioning data of the electronic device.

8. The method according to claim 1, further comprising: Prior to estimating the position of the electronic device, the second satellite signal is discarded in response to the second probability being less than a threshold.

9. The method of claim 8, wherein the threshold is based on the number of available line-of-sight satellite signals.

10. The method of claim 1, wherein said estimating said location of said electronic device comprises: determining a first weight based on the first probability; applying the first weight to the first satellite signal to generate a weighted first satellite signal; determining a second weight based on the second probability; as well as The second weight is applied to the second satellite signal to generate a weighted second satellite signal.

11. The method of claim 10, wherein said estimating the location of the electronic device further comprises estimating the location based on the weighted first satellite signal and the weighted second satellite signal.

12. The method of claim 11, wherein in response to the first probability being less than the second probability, the first weight is less than the second weight, such that at the estimated position, the first satellite signal is weighted less than the second satellite signal.

13. An electronic device, comprising: Memory; as well as One or more processors configured to perform operations including: receiving a first satellite signal and a second satellite signal; determining a first probability that the first satellite signal is a first line-of-sight satellite signal based at least in part on a first satellite signal strength of the first satellite signal; determining a second probability that the second satellite signal is a second line-of-sight satellite signal based at least in part on a second signal strength of the second satellite signal; as well as A position of the electronic device is estimated based at least in part on the first probability that the first satellite signal is the first line-of-sight satellite signal and the second probability that the second satellite signal is the second line-of-sight satellite signal. 14 . The electronic device of claim 13 , wherein determining the first probability and the second probability is based on a first hidden Markov model and a second hidden Markov model, respectively.

15. The electronic device of claim 14, wherein inputs to the first hidden Markov model and the second hidden Markov model include at least one of a location of the electronic device derived from a non-satellite signal, a signal strength of a satellite signal corresponding to the hidden Markov model, a pseudorange of a satellite corresponding to the satellite signal, and a multipath indicator set based on pre-processing received signals. 16 . The electronic device of claim 15 , wherein the estimated position of the electronic device is based on a position corresponding to a transmitter of the non-satellite signal and a signal strength of the non-satellite signal.

17. The electronic device of claim 15, wherein the estimated location is further based on at least one of a speed, a heading, a direction, and a time of the electronic device.

18. The electronic device of claim 13, wherein the estimating the position of the electronic device comprises: determining a first weight based on the first probability; applying the first weight to the first satellite signal to generate a weighted first satellite signal; determining a second weight based on the second probability; as well as applying the second weight to the second satellite signal to generate a weighted second satellite signal; as well as The position is estimated based on the weighted first satellite signal and the weighted second satellite signal.

19. A non-transitory machine-readable medium storing instructions that, when executed by one or more processors, cause the one or more processors to perform operations comprising: receiving a first satellite signal and a second satellite signal with an electronic device; determining, with the electronic device, a first probability that the first satellite signal is a first line-of-sight satellite signal and a second probability that the second satellite signal is a second line-of-sight satellite signal; and A position of the electronic device is estimated with the electronic device based at least in part on the first probability that the first satellite signal is the first line-of-sight satellite signal and the second probability that the second satellite signal is the second line-of-sight satellite signal.

20. The non-transitory machine-readable medium of claim 19, wherein determining the first probability and the second probability is based on a first hidden Markov model and a second hidden Markov model, respectively.

21. The non-transitory machine-readable medium of claim 19, wherein said estimating the location of the electronic device comprises: determining a first weight based on the first probability; applying the first weight to the first satellite signal to generate a weighted first satellite signal; determining a second weight based on the second probability; as well as applying the second weight to the second satellite signal to generate a weighted second satellite signal; as well as The position is estimated based on the weighted first satellite signal and the weighted second satellite signal.