Detection and estimation of direct and reflected navigation satellite signal parameters in multipath environments

By identifying and processing signal peaks in multipath environments within the user device, and utilizing multi-level iterative loops and grid processing, the accuracy problem of signal parameter detection in multipath environments for GNSS receivers is solved, resulting in a more robust navigation solution.

CN116953748BActive Publication Date: 2025-12-09AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202310315489.0
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2022-04-27
Filing Date
2023-03-28
Publication Date
2025-12-09
Estimated Expiration
2043-03-28

AI Technical Summary

Technical Problem

In multipath environments, GNSS receivers struggle to accurately detect and estimate parameters of direct and reflected navigation satellite signals, resulting in poor accuracy of navigation solutions.

Method used

By identifying signal peaks in a multipath environment within a semiconductor package within the user device, measuring and estimating signal parameters, and utilizing logic and computing systems for multi-level iterative loops and mesh processing, multipath effects are identified and corrected, providing a robust navigation solution.

Benefits of technology

It enables accurate detection and estimation of direct and reflected signal parameters in multipath environments, improving the accuracy and robustness of navigation solutions, especially in signal acquisition and reacquisition after signal obstruction in urban environments.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116953748B_ABST
    Figure CN116953748B_ABST
Patent Text Reader

Abstract

The present disclosure relates to detection and estimation of direct and reflected navigation satellite signal parameters in a multipath environment. In various embodiments, logic of a semiconductor package disposed on a user device concurrently receives multiple signals from satellite(s), each signal traveling along a different path between each satellite and the user device in a multipath environment. The logic identifies two or more signal peaks that fall within a tracking aperture based on analysis of the received signals, and determines a peak parameter estimate for each signal peak based on measurement of a signal parameter from at least one signal peak. The logic provides the determined peak parameter estimate for each signal peak to a position engine "PE" of the user device to compute a navigation solution (e.g., position, velocity, and / or time, etc.) for the user device.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Copyright Notice

[0002] A portion of the disclosure of this patent document contains material that is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever. TECHNICAL FIELD

[0003] The present disclosure relates generally to methods, systems, and apparatuses for implementing geopositioning determinations using navigation satellites, and more specifically, to methods, systems, and apparatuses for implementing detection and estimation of direct and reflected navigation satellite (e.g., Global Navigation Satellite System (“GNSS”), etc.) signal parameters in multipath environments. BACKGROUND

[0004] Multipath (“MP”) signals are a key error source for GNSS receivers. In urban environments, GNSS receivers can observe direct Line-Of-Sight (“LOS”) signals from satellites, and / or one or more Non-Line-Of-Sight (“NLOS”) signals reflected off proximate objects (e.g., buildings). The Measurement Engine (“ME”) in a GNSS navigation receiver is responsible for providing unbiased LOS pseudorange, Doppler, and carrier phase measurements to the Position Engine (“PE”). In multipath environments, the ME can produce biased measurements (which are then sent to the PE) due to MP signals, resulting in poor accuracy of the navigation solution. The situation is further complicated by the fact that in conventional GNSS receivers, each tracking channel provides only a single set of measurements.

[0005] Accordingly, there is a need for more robust and scalable solutions for implementing geopositioning determinations using navigation satellites, and more specifically, for methods, systems, and apparatuses for implementing detection and estimation of direct and reflected navigation satellite (e.g., GNSS, etc.) signal parameters in multipath environments. SUMMARY

[0006] The techniques of the present disclosure relate generally to tools and techniques for implementing geopositioning determinations using navigation satellites, and more specifically, to methods, systems, and apparatuses for implementing detection and estimation of direct and reflected navigation satellite (e.g., GNSS, etc.) signal parameters in multipath environments.

[0007] In one aspect, a semiconductor package disposed within a user device is provided. The semiconductor package includes logic configured to: identify, based on an analysis of a plurality of signals received from a first satellite, two or more signal peaks that fall within a tracking aperture spanning a first set of code delay values along a first dimension and a first set of frequency offset values along a second dimension, each of the plurality of signals traveling along different paths between the first satellite and the user device within a multipath ("MP") environment, the identified two or more signal peaks corresponding to two or more signals among the plurality of signals whose relative code delays and relative frequency offsets fall within the first set of code delay values and the first set of frequency offset values of the tracking aperture; determine, based on measurements of signal parameters from at least one signal peak among the identified two or more signal peaks, one or more peak parameter estimates for each of the at least one signal peak; and provide the determined one or more peak parameter estimates for each of the at least one signal peak to a position engine ("PE") of the user device, the position engine configured to compute a navigation solution for the user device based at least in part on the determined one or more peak parameter estimates.

[0008] In some embodiments, the logic is further configured to: frequency shift each satellite signal among the plurality of satellite signals to a baseband frequency; convolve each frequency-shifted satellite signal with a pseudo-random number ("PRN") code sequence associated with the first satellite to produce a time-sequenced in-phase and quadrature ("I / Q") stream, wherein the time-sequenced baseband I / Q stream comprises a plurality of I / Q sample streams, wherein each I / Q sample stream is shifted from a center or prompt phase code by a multiple of a chip interval, wherein the chip interval corresponds to a code delay based on the PRN code sequence, wherein the multiple of the chip interval collectively corresponds to a plurality of code chips defined by a plurality of PRN code offsets, wherein each I / Q sample stream corresponds to a code phase shifted I / Q signal over a predetermined integration ("PDI") time; and store the produced time-sequenced baseband I / Q stream of each frequency-shifted signal as a two-dimensional ("2D") array of I / Q samples in a post-correlation buffer ("PCB") of the satellite navigation device, the I / Q samples stored by code chip along a first dimension of the 2D array and by post-correlation sample index along a second dimension of the 2D array.

[0009] According to some embodiments, the logic is further configured to generate a 2D array of grid energy values coherently and non-coherently integrated over programmable time durations of all code taps produced by the MTC, a plurality of frequency bins, and programmable bin spacing, by implementing a three-level iterative loop comprising an outermost loop, an intermediate loop, and an innermost loop, wherein implementing the three-level iterative loop comprises, for each of the plurality of code taps, repeating the following operations for each of the plurality of frequency bins: selecting one code tap among the plurality of code taps stored in the PCB for input into the GP using the outermost loop; selecting a bin frequency to be applied to the selected code tap using the intermediate loop; and processing an I / Q sample stream corresponding to the selected code tap through the GP using the innermost loop to generate a current scalar grid energy value for the selected code tap and the selected frequency bin; and storing or storing and accumulating the current scalar grid energy value for each of the plurality of frequency bins of each of the plurality of code taps in an energy grid buffer ("EGB") of the satellite navigation device, the current scalar grid energy value being stored by code tap along a first dimension of the 2D array and by frequency bin along a second dimension of the 2D array.

[0010] In some embodiments, the logic is further configured to identify at least one location within the EGB where an energy peak occurs, wherein each energy peak corresponds to a current scalar grid energy value that exceeds a predetermined energy threshold, wherein each identified location among the at least one location within the EGB corresponds to a code tap and a frequency bin associated with each energy peak; determine at least one signal parameter estimate corresponding to each energy peak, the at least one signal parameter estimate comprising at least one of a peak coarse frequency estimate, a refined peak code phase estimate using peak fitting, or a refined peak signal strength ("CN o ") estimate; and store a list of the identified energy peaks and the corresponding determined at least one signal parameter estimate in a multi-peak report ("MPR") buffer.

[0011] According to some embodiments, the logic is further configured to: identify, based on the list of identified energy peaks stored in the MPR buffer and the corresponding determined at least one signal parameter estimate, a nearest code tap in the PCB corresponding to each identified energy peak; apply at least one algorithm to the I / Q samples corresponding to the identified nearest code taps to refine at least one of a frequency estimate, a phase estimate, or a navigation data bit estimate, wherein the at least one algorithm comprises at least one of a phase-locked loop ("PLL") algorithm, a frequency-locked loop ("FLL") algorithm, or an open loop lag-N forked product algorithm; and store the refined at least one of the frequency estimate, the phase estimate, or the navigation data bit estimate in the MPR buffer, wherein the refined at least one of the frequency estimate, the phase estimate, or the navigation data bit estimate in the MPR buffer corresponds to the one or more peak parameter estimates. In some cases, providing the determined one or more peak parameter estimates for each of the at least one signal peak to the PE comprises sending the refined at least one of the frequency estimate, the phase estimate, or the navigation data bit estimate to the PE.

[0012] In some embodiments, based on a determination that two or more energy peaks are present, one of the two or more energy peaks is determined to be a direct line-of-sight ("LOS") signal and other energy peaks of the two or more energy peaks are determined to be one or more reflected non-line-of-sight ("NLOS") signals, the logic is further configured to: analyze the determined at least one signal parameter estimate corresponding to the energy peak of each reflected NLOS signal to determine a relative MP bias of each reflected NLOS signal relative to the direct LOS signal; responsive to a subsequent determination that the direct LOS signal has been lost, adjust at least one of the one or more reflected NLOS signals to serve as a corresponding at least one pseudo-LOS signal by bias correction based on the determined relative MP bias of each reflected NLOS signal; and responsive to a subsequent determination that the direct LOS signal has been detected again and reacquired, replace the at least one pseudo-LOS signal with the reacquired direct LOS signal.

[0013] According to some embodiments, based on a determination that two or more energy peaks are present, one of the two or more energy peaks is determined to be a direct line-of-sight ("LOS") signal and other energy peaks of the two or more energy peaks are determined to be one or more reflected non-line-of-sight ("NLOS") signals, the logic is further configured to: in response to a determination that the direct LOS signal has been lost, determine a predicted code tap and a predicted frequency bin corresponding to the direct LOS signal that was lost based on extrapolation within the EGB of the identified at least one location corresponding to the direct LOS signal prior to the loss, and generate a pseudo-LOS signal based on the determined predicted code tap and the determined predicted frequency bin; and in response to a subsequent determination that the direct LOS signal has been detected again and reacquired, replace the pseudo-LOS signal with the reacquired direct LOS signal.

[0014] In some embodiments, the plurality of signals comprises global navigation satellite system ("GNSS") signals, wherein the signal parameters from the received plurality of signals comprise at least one of signal power, code delay, carrier phase, carrier frequency, or data bits, and / or the like.

[0015] According to some embodiments, the logic is further configured to: determine whether one of the two or more signals is a direct line-of-sight ("LOS") signal, as opposed to one or more reflected non-line-of-sight ("NLOS") signals received from the first satellite; and compute at least one of a LOS pseudorange between the user device and the first satellite, a Doppler shift of the identified direct LOS signal from the first satellite, or a phase of a carrier signal of the direct LOS signal from the first satellite based at least in part on the measured signal parameters associated with the direct LOS signal. In some cases, the determined one or more peak parameter estimates of each of the at least one signal peak comprises the computed at least one of the LOS pseudorange, the Doppler shift of the identified direct LOS signal, or the phase of the carrier signal of the direct LOS signal, and / or the like.

[0016] In some embodiments, the logic is further configured to: determine whether one of the two or more satellite signals is at least one of a first detected signal or a strongest detected signal after the first detected signal, wherein the at least one of the first detected signal or the strongest detected signal after the first detected signal corresponds to the at least one signal peak.

[0017] According to some embodiments, the user device is communicatively coupled with two or more satellites, and identifying the two or more signal peaks falling within the tracking aperture includes identifying two or more signal peaks falling within the tracking aperture spanning the first set of code delay values along the first dimension and the first set of frequency offset values along the second dimension based on analysis of a plurality of satellite signals received from each of the two or more satellites, each of the plurality of satellite signals traveling along a different path between each satellite among the two or more satellites and the user device within the MP environment, the identified two or more signal peaks corresponding to two or more signals among the plurality of signals for each satellite, the identified two or more signal peaks relating to two or more signals among the plurality of signals for other satellites among the two or more satellites.

[0018] In some embodiments, the logic is further configured to: collect measurements from both a high chip rate band and a low chip rate band from the plurality of satellite signals received from the first satellite; analyze the collected measurements of the high chip rate band to identify and amplify any uncertainty of the low chip rate band; and in response to identifying and amplifying uncertainty of at least one low chip rate band, flag the at least one low chip rate band as a function of a level of multipath measurement bias based on the identified and amplified uncertainty of the at least one low chip rate band.

[0019] According to some embodiments, the plurality of signals are continuously received from the first satellite, and wherein identifying the two or more signal peaks, determining the one or more peak parameters, and providing the determined one or more peak parameter estimates for each of the at least one signal peak to the PE are continuously performed over time.

[0020] In another aspect, a method includes: identifying, using a computing system of a user device, two or more signal peaks that fall within a tracking aperture spanning a first set of code delay values along a first dimension and a first set of frequency offset values along a second dimension based on an analysis of a plurality of signals received from a first satellite, each of the plurality of signals traveling along different paths between the first satellite and the user device within a multipath ("MP") environment, the identified two or more signal peaks corresponding to two or more signals among the plurality of signals whose relative code delays and relative frequency offsets fall within the first set of code delay values and the first set of frequency offset values of the tracking aperture; determining, using the computing system, one or more peak parameter estimates for each of at least one signal peak among the identified two or more signal peaks based on measurements of signal parameters from the at least one signal peak; and providing, using the computing system, the determined one or more peak parameter estimates for each of the at least one signal peak to a position engine ("PE") of the user device, the position engine configured to compute a navigation solution for the user device based at least in part on the determined one or more peak parameter estimates.

[0021] In some embodiments, the computing system includes at least one of a multi-tap correlator ("MTC"), a grid processor ("GP"), a signal peak detector ("PD"), a peak parameter estimator ("PPE"), a measurement engine ("ME"), a digital signal processor ("DSP"), or other processor, and / or the like.

[0022] According to some embodiments, the method further includes: frequency shifting, using the computing system, each signal among the plurality of signals to a baseband frequency; convolving, using the computing system, each frequency-shifted signal with a pseudo-random number ("PRN") code sequence associated with the first satellite to produce a time-sequenced baseband in-phase and quadrature ("I / Q") stream, wherein the time-sequenced baseband I / Q stream includes a plurality of I / Q sample streams, wherein each I / Q sample stream is from a center or aligned phase code phase shift by a multiple of a tap interval, wherein the tap interval corresponds to a code delay based on the PRN code sequence, wherein the multiple of the tap interval collectively corresponds to a plurality of code taps defined by a plurality of PRN code offsets, wherein each I / Q sample stream corresponds to a code phase shift I / Q signal over a predetermined integration ("PDI") time; and storing, using the computing system, the time-sequenced baseband I / Q stream produced for each frequency-shifted signal as a two-dimensional ("2D") array of I / Q samples in a post-correlation buffer ("PCB") of the user device, the I / Q samples stored by code tap along a first dimension of the 2D array and by post-correlation sample index along a second dimension of the 2D array.

[0023] In some embodiments, the method further comprises: generating, using the computing system, a 2D array of grid energy values coherently and non-coherently integrated over programmable time durations of all code taps produced by the computing system, a plurality of frequency bins, and programmable bin spacings; wherein implementing the three-level iterative loop comprises repeating, for each of the plurality of frequency bins of each of the plurality of code taps: selecting, using the outermost loop, one code tap among the plurality of code taps stored in the PCB; selecting, using the middle loop, a bin frequency to be applied to the selected code tap; and processing, using the innermost loop, a stream of I / Q samples corresponding to the selected code tap to generate a current scalar grid energy value of the selected code tap and the selected frequency bin; and storing or storing and accumulating, using the computing system, the current scalar grid energy value of each of the plurality of frequency bins of each of the plurality of code taps in an energy grid buffer (“EGB”) of the user device, the current scalar grid energy value stored by code tap along a first dimension of the 2D array and by frequency bin along a second dimension of the 2D array.

[0024] According to some embodiments, the method further comprises: identifying, using the computing system, at least one location within the EGB at which an energy peak occurs, wherein each energy peak corresponds to a current scalar grid energy value that exceeds a predetermined energy threshold, wherein each identified location among the at least one location within the EGB corresponds to a code tap and a frequency bin associated with each energy peak, wherein the energy peak corresponds to each of the at least one signal peak, wherein the code tap and the frequency bin associated with each energy peak correspond to the relative code delay and the relative frequency offset, respectively, of a signal among the two or more signals that corresponds to each of the at least one signal peak; determining, using the computing system, at least one signal parameter estimate corresponding to each energy peak, the at least one signal parameter estimate comprising at least one of a peak coarse frequency estimate, a refined peak code phase estimate using peak fitting, or a refined peak signal strength (“C / N o ”) estimate; and storing, using the computing system, a list of the identified energy peaks and the corresponding determined at least one signal parameter estimate in a multi-peak report (“MPR”) buffer.

[0025] In some embodiments, the method further comprises: identifying, using the computing system, a nearest code tap in the PCB corresponding to each identified energy peak based on the list of identified energy peaks stored in the MPR buffer and corresponding determined at least one signal parameter estimate; applying, using the computing system, at least one algorithm to the I / Q samples corresponding to the identified nearest code taps to refine at least one of a frequency estimate, a phase estimate, or a navigation data bit estimate, wherein the at least one algorithm comprises at least one of a phase-locked loop ("PLL") algorithm, a frequency-locked loop ("FLL") algorithm, or an open loop lag-N polyphase product algorithm; and storing, using the computing system, the refined at least one of the frequency estimate, the phase estimate, or the navigation data bit estimate in the MPR buffer, wherein the refined at least one of the frequency estimate, the phase estimate, or the navigation data bit estimate in the MPR buffer corresponds to the one or more peak parameter estimates of each of the at least one signal peak. In some instances, providing the determined one or more peak parameter estimates of each of the at least one signal peak to the PE comprises sending, using the computing system, the refined at least one of the frequency estimate, the phase estimate, or the navigation data bit estimate to the PE.

[0026] In yet another aspect, a satellite navigation device is provided. The satellite navigation device comprises: a computing system comprising: at least one first processor; and a first non-transitory computer-readable medium communicatively coupled to the at least one first processor, the first non-transitory computer-readable medium having computer software stored thereon, the computer software comprising a first set of instructions which, when executed by the at least one first processor, cause the computing system to: identify, based on an analysis of a plurality of signals received from a first satellite, two or more signal peaks that fall within a tracking aperture spanning a first set of code delay values along a first dimension and a first set of frequency offset values along a second dimension, each of the plurality of signals traveling along a different path between the first satellite and the satellite navigation device within a multipath ("MP") environment, the identified two or more signal peaks corresponding to two or more signals among the plurality of signals whose relative code delay and relative frequency offset fall within the first set of code delay values and the first set of frequency offset values of the tracking aperture; determine, based on measurements of signal parameters from at least one signal peak among the identified two or more signal peaks, one or more peak parameter estimates for each of the at least one signal peak; and provide the determined one or more peak parameter estimates for each of the at least one signal peak to a position engine ("PE") of the satellite navigation device, the position engine configured to compute a navigation solution for the satellite navigation device based at least in part on the determined one or more peak parameter estimates.

[0027] Various modifications and additions can be made to the embodiments discussed without departing from the scope of the application. For example, while the embodiments described above refer to particular features, the scope of this application also includes embodiments that do not include all of the features of the above described embodiments.

[0028] Details of one or more aspects of the disclosure are set forth in the accompanying drawings and description below. Other features, objects, and advantages of the disclosure will be apparent from the description and drawings, and from the claims. BRIEF DESCRIPTION OF DRAWINGS

[0029] A further understanding of the nature and advantages of certain embodiments can be realized by reference to the remaining portions of the specification and the drawings, wherein like reference numerals are used throughout. In some instances, sub-labels are associated with reference numerals to denote one of multiple similar components. When reference numerals share sub-labels, not all reference numerals with shared sub-labels are necessarily described with each occurrence of the shared sub-label.

[0030] Figure 1is a schematic block diagram illustrating a system for implementing detection and estimation of direct and reflected navigation satellite (e.g., Global Navigation Satellite System ("GNSS"), etc.) signal parameters in a multipath environment, in accordance with various embodiments.

[0031] Figure 2 is a schematic flow block diagram illustrating non-limiting examples of interactions between components of a satellite navigation device that can be used to implement detection and estimation of direct and reflected navigation satellite (e.g., GNSS, etc.) signal parameters in a multipath environment, in accordance with various embodiments.

[0032] Figures 3A to 3G is a schematic diagram illustrating various non-limiting examples of interactions between components during implementation of detection and estimation of direct and reflected navigation satellite (e.g., GNSS, etc.) signal parameters in a multipath environment, in accordance with various embodiments. Figure 2

[0033] Figures 4A to 4J is a flowchart illustrating a method for implementing detection and estimation of direct and reflected navigation satellite (e.g., GNSS, etc.) signal parameters in a multipath environment, in accordance with various embodiments.

[0034] Figure 5 is a block diagram illustrating an example of a computer or system hardware architecture, in accordance with various embodiments. DETAILED DESCRIPTION

[0035] SUMMARY

[0036] Various embodiments provide tools and techniques for implementing geographic position determinations using navigation satellites, and more specifically, methods, systems, and apparatuses for implementing detection and estimation of direct and reflected navigation satellite (e.g., GNSS, etc.) signal parameters in a multipath environment.

[0037] ​In various embodiments, a computing system of a user device (e.g., a satellite navigation device or a user device having satellite navigation functionality or the like) simultaneously receives a plurality of signals from a first satellite, each of the plurality of signals traveling along a different path between the first satellite and the user device within a multipath (“MP”) environment. The computing system analyzes the received plurality of signals to identify two or more signal peaks that fall within a tracking aperture spanning a first set of code delay values along a first dimension and a first set of frequency offset values along a second dimension, the identified two or more signal peaks corresponding to two or more signals among the plurality of signals whose relative code delay and relative frequency offset fall within the first set of code delay values and the first set of frequency offset values of the tracking aperture. The computing system simultaneously measures a signal parameter from at least one signal peak among the identified two or more signal peaks to determine one or more peak parameter estimates for each of the at least one signal peak; and provides the determined one or more peak parameter estimates for each of the at least one signal peak to a position engine (“PE”) of the user device to compute a navigation solution for the user device.

[0038] In various aspects described herein, systems and methods are provided for implementing detection and estimation of direct and reflected navigation satellite (e.g., GNSS, etc.) signal parameters in a multipath environment. Multipath signals are a key error source for satellite navigation (e.g., GNSS, etc.) receivers, and various embodiments enable robust detection and estimation of signal parameters for line-of-sight (“LOS”) signals and non-line-of-sight (“NLOS”) signals. For example, each NLOS signal is different from a LOS signal in terms of power, code delay, carrier phase, and frequency, etc. NLOS signals are typically (though not always) weaker than LOS signals due to the reflecting surface absorbing or dispersing RF power (e.g., NLOS signals can be blocked (i.e., resulting in no signal) or attenuated (i.e., weaker; e.g., due to transmission through tree canopy or the like)). NLOS signals are delayed in code phase relative to LOS signals due to the excess path traveled by the NLOS signal. NLOS signal frequencies are different from LOS signals due to relative motion of the user or vehicle with respect to the MP reflecting surface (e.g., MP Doppler effect or the like). In static user dynamics, where there is slow movement to no movement of the IGNSS device, the Doppler frequency difference of multipath peaks is greatly reduced, thus limiting the grid analysis to only the code phase dimension (i.e., a one-dimensional vector along the code phase axis or the like). Also in this case, the multipath correlation vector can be distorted by near-in multipath effects and / or contain multiple different correlation peaks. Different peak visibility depends on the signal chip rate (e.g., correlation response base width) and the excess path length traveled by each MP signal compared to the direct LOS signal path. In the presence of user dynamics, multipath correlation peaks can also distinguish themselves in the frequency domain. Each multipath signal can be centered at a different Doppler offset, caused by the relative motion of the user with respect to the MP reflecting surface. As the user dynamics increase, the frequency difference also increases. The measurement engine (“ME”) in a GNSS receiver or other satellite navigation receiver is responsible for providing unbiased LOS pseudorange, Doppler, and carrier phase measurements to the position engine (“PE”). In a multipath environment, the ME can produce biased measurements (e.g., tracking biased NLOS MP signals instead of LOS signals or reporting biased LOS measurements due to near-in MP effects (e.g., distorting the correlation vector), etc.) to the PE, resulting in a poor navigation solution (which includes position, velocity, and time (“PVT”) solution). Various embodiments are for enabling the measurement engine to be aware of multiple signals simultaneously by providing a grid of tracking measurements (compared to conventional approaches that provide only a single set of measurements per tracking channel).

[0039] The multiple measurements enable the ME to recognize the presence of multipath and take corrective action, including but not limited to: (i) selecting the earliest-arriving signal (e.g., LOS or lowest residual measurement) from multiple later-arriving multipath signals (e.g., NLOS); (ii) flagging or amplifying the uncertainty of high-chip-rate measurements suspected of having MP effects, thereby allowing the navigation solution to appropriately weight the measurements according to their quality and MP effects; (iii) flagging or amplifying the uncertainty of low-chip-rate measurements (where higher-chip-rate bands can better distinguish multipath peaks, and by collecting measurements from both high and low-chip-rate bands from the same satellite transmission, the high-chip-rate observations of multiple peaks can be used to help flag and amplify the uncertainty of low-chip-rate measurements, and flag at least one low-chip-rate band based on the identified and amplified uncertainty of the at least one low-chip-rate band according to a level of multipath measurement bias); and / or the like. Herein, "high-chip-rate" can refer to a chip rate of ~10 MHz (e.g., with L5 band signals or the like), while "low-chip-rate" can refer to a chip rate of ~1 MHz (e.g., with LI band signals or the like). With high-chip-rate measurements, higher resolution can be obtained (e.g., down to ~30 m or the like in terms of bin width or geometric distance separating multipath biases) compared to the resolution of low-chip-rate measurements (e.g., ~300 m).

[0040] The multiple measurements also enable the ME to provide robust signal acquisition and reacquisition (e.g., after signal blockage in a tunnel, urban tree canopy, etc.). While a PE (e.g., with optional augmentation such as sensors) can maintain a grid tracker or grid aperture of a GNSS receiver or other satellite navigation receiver at the most likely location of a LOS signal (referred to herein as "PE assistance"), such PE assistance degrades over time based on several unmodeled factors and scarcity of navigation signals in challenging or blocked environments. Once the receiver exits the blocked situation, the grid will gain a view of all detected peaks around the grid alignment point provided by the PE. The ME will then evaluate the available peaks and select the most likely LOS signal, and seed the tracking loop with the selected grid peak signal parameters. As shown and described below, various embodiments provide robust signal acquisition and reacquisition over PE assistance alone (but can be used in conjunction with PE assistance).

[0041] These and other aspects of systems and methods for detection and estimation of direct and reflected navigation satellite (e.g., GNSS, etc.) signal parameters in multipath environments are described in greater detail with reference to the drawings.

[0042] The following detailed description describes several embodiments to enable a person skilled in the art to practice such embodiments. The described embodiments are provided for illustrative purposes and are not intended to limit the scope of the present disclosure.

[0043] In the following description, for purposes of explanation, numerous details are set forth in order to provide a thorough understanding of the embodiments described. However, it will be apparent to one skilled in the art that these specific details are not required in order to practice the present application. In other instances, some structural and device descriptions are shown in block diagram form in order to avoid obscuring the application. Several embodiments are described herein, and while each variant can be viewed as a preferred embodiment, it will be understood that various features of the embodiments can be combined with features of other embodiments. However, no single embodiment or several embodiments of the application should be taken as a necessary combination for every embodiment of the application, as other embodiments of the application can not include those features.

[0044] Unless otherwise indicated, all numbers expressing quantities, dimensions, and so forth used herein are to be understood as approximations based on the terminology used to the precision of the measurements. In this application, the use of "about" means that variations of the values described are intended, for example, rounded to the nearest significant figure, unless otherwise indicated. Also, the use of "at least one of' means "one or more of' unless otherwise indicated. Furthermore, the use of the term "including" as well as other forms such as "includes" and "included" is not limiting. Also, terms such as "element" or "component" encompass both elements and components comprising one unit and elements and components that comprise more than one unit unless specifically stated otherwise.

[0045] The various embodiments described herein represent tangible, concrete improvements to the art in the field of satellite navigation technology, GNSS technology, measurement engine ("ME") technology, LOS signal detection technology based on multipath ("MP") environments, and / or the like, while embodying, in some cases, software products, computer-implemented methods, and / or computer systems. In other aspects, some embodiments can improve the functionality of a user device or system itself (e.g., a satellite navigation system, a GNSS system, a measurement engine ("ME") system, a LOS signal detection system based on multipath ("MP") environments, etc.) such as, for example, by using a computing system of the user device to identify, based on an analysis of a plurality of signals received from a first satellite, two or more signal peaks that fall within a tracking aperture spanning a first set of code delay values along a first dimension and a first set of frequency offset values along a second dimension, each of the plurality of signals traveling along a different path between the first satellite and the user device within a multipath ("MP") environment, the identified two or more signal peaks corresponding to two or more signals of the plurality of signals whose relative code delays and relative frequency offsets fall within the first set of code delay values and the first set of frequency offset values of the tracking aperture; determine, using the computing system, one or more peak parameter estimates for each of at least one signal peak based on measurements of signal parameters from the at least one signal peak among the identified two or more signal peaks; and provide, using the computing system, the determined one or more peak parameter estimates for each of the at least one signal peak to a position engine ("PE") of the user device, the position engine configured to compute a navigation solution for the user device based at least in part on the determined one or more peak parameter estimates; and / or the like.

[0046] In particular, to the extent that there are any abstract ideas in the various embodiments, the concepts can be embodied as described herein by devices, software, systems, and methods (e.g., steps or operations) involving novel functionality, such as, for example, by providing a grid of tracking measurements to enable a measurement engine ("ME") to be aware of multiple signals at the same time (as compared to conventional approaches that provide only a single set of measurements per tracking channel), thus enabling the ME to identify the presence of multipath and take corrective action, as well as enabling the ME to provide robust signal acquisition and reacquisition (e.g., after signal blockage in a tunnel, urban tree canopy, etc.), and / or the like, to name just a few examples, which extend beyond mere conventional computer processing operations. These functionalities can result in tangible results beyond implementing a computer system, including, by way of example only, optimized and robust detection and estimation of signal parameters for LOS signals and NLOS signals in MP environments, which lead to more accurate navigation solutions for a user device (or satellite navigation device), at least some of which can be observed or measured by a user, a satellite navigation service provider, and / or a user device (or satellite navigation device) manufacturer.

[0047] Some embodiments

[0048] We now turn to embodiments illustrated by the accompanying drawings. Figures 1 to 5 Methods, systems, and apparatuses for implementing geographic position determination using navigation satellites, and more particularly, for implementing detection and estimation of direct and reflected navigation satellite (e.g., Global Navigation Satellite System (“GNSS”), etc.) signal parameters in multipath environments, as mentioned above, are described. By way of overview, Figures 1 to 5 The described methods, systems, and apparatuses refer to examples of different embodiments that include various components and steps that can be considered alternatives in various embodiments or can be used in conjunction with one another. Figures 1 to 5 The description of the described methods, systems, and apparatuses shown in the figures is provided for purposes of illustration and should not be construed as limiting the scope of different embodiments.

[0049] With reference to the accompanying drawings, Figure 1 is a schematic diagram illustrating a system 100 for implementing detection and estimation of direct and reflected navigation satellite (e.g., GNSS, etc.) signal parameters in multipath environments, in accordance with various embodiments.

[0050] In Figure 1In the non-limiting embodiment of FIG. 1, system 100 includes a user device 105, which includes one of a smartphone (e.g., smartphone 105b or the like), a mobile phone, a smartwatch, a wearable device, a tablet computer, a laptop computer, a dedicated portable satellite navigation device, a vehicle-based satellite navigation device (e.g., vehicle-based satellite navigation device 105a or the like), or other satellite navigation device, and / or the like. In some embodiments, user device 105 includes, but is not limited to, a computing system 110, an antenna 120, a data storage device 125, a display screen 130 (e.g., one or more touch screen display devices and / or one or more non-touch screen display devices or the like), and an audio playback device 135 (e.g., one or more speakers or the like), and / or the like. In some embodiments, computing system 110 includes, but is not limited to, at least one of a multi-tap correlator (“MTC”), a grid processor (“GP”), a signal peak detector (“PD”), a peak parameter estimator (“PPE”), a measurement engine (“ME”), or other processor (including, but not limited to, a graphics processing unit (“GPU”), a central processing unit (“CPU”), a digital signal processor (“DSP”), and / or the like), and / or the like. In some instances, computing system 110 includes a signal processor 115a (e.g., MTC, GP, PD, DSP, etc.), a ME 115b, a position engine (“PE”) 115c, and / or other processor. In some cases, the MTC, GP, PD, PPE, ME, and PE can each be embodied as processor hardware or one or more hardware-based circuit components. Alternatively, the MTC, GP, PD, PPE, ME, and PE can each be embodied as software executing on one or more of a GPU, CPU, and / or DSP or the like. In some instances, the GPU, CPU, and DSP can each be embodied as processor hardware. In some embodiments, the measurement engine provides information (including, but not limited to, unbiased LOS pseudorange, Doppler, and carrier phase measurements, or peak parameter estimates, etc.) to a position engine (also referred to as a “positioning engine”), which uses the information provided from the measurement engine to compute a navigation solution for the user device. In some instances, the navigation solution can include, but is not limited to, at least one of a determined position, a determined velocity, and / or a determined time, or the like. According to some embodiments, a semiconductor package disposed within user device 105 includes logic that embodies, or performs the functions of, at least one of the MTC, GP, PD, PPE, ME, PE, GPU, CPU, and / or DSP, or the like.

[0051] Although not shown, in some embodiments, the user device 105 further includes one or more of other components (e.g., other processors (including, but not limited to, GPUs, CPUs, DSPs, and / or the like for performing other user device tasks or computations or the like), communication system components (e.g., communication system components for communicating using protocols including, but not limited to, Bluetooth TM communication protocols, WiFi communication protocols or other 802.11 communication protocol groups, ZigBee communication protocols, Z-wave communication protocols or other 802.15.4 communication protocol groups, cellular communication protocols (e.g., 3G, 4G, 4G LTE, 5G, etc.) or other suitable communication protocols, and / or the like), cameras, other user input devices or interfaces (e.g., keyboards, keypads, numeric keypads, microphones, mice, etc.), and / or the like.

[0052] The system 100 further includes a vehicle 140 in which a vehicle-based satellite navigation device 105a is disposed and / or a user or person 145 who is using a user device (e.g., a smart phone 105b or the like) is positioned, both of which are positioned within a multipath (“MP”) environment 150 (e.g., an urban center, other urban area, other suburban area, or any location having reflective objects or structures that reflect signals (e.g., signals from satellites (e.g., satellite 155 or the like)) or the like). Figure 1 In the non-limiting example, the MP environment 150 includes an urban area in which a plurality of buildings or structures 160a-c are positioned. The system 100 further includes a satellite 155.

[0053] Although Figure 1 Although one or a small number of particular devices, systems, components, or things (e.g., two user devices 105a and 105b, one vehicle 140, one person 145, one satellite 155, and three buildings or structures 160a-c, etc.) are depicted, this is merely for the simplicity of illustration, and various embodiments are capable of performing detection and estimation of direct and reflected navigation satellite (e.g., GNSS or the like) signal parameters in any suitable multipath environment (e.g., MP environment 150 or the like) in which a larger number of these and other devices, systems, components, or things are involved, used, and / or interacted with or the like.

[0054] In operation, in accordance with some embodiments, the computing system 110 and / or the user devices 105a, 105b, or 105 (collectively, “computing systems”) each perform a method that implements detection and estimation of direct and reflected navigation satellite (e.g., GNSS or the like) signal parameters for direct line-of-sight (“LOS”) signals and reflected non-line-of-sight (“NLOS”) signals in the multipath environment 150, as described below with respect to Figure 2See section 4 for display and description. For example, such as... Figure 1 As shown, the LOS signal includes the LOS signal 165a from satellite 155 to the vehicle-based satellite navigation device 105a installed in vehicle 140. Figure 1 (Depicted as a solid black line in the middle) and the LOS signal 165b from satellite 155 to the smartphone 105b used, held, or otherwise on user 145 (in Figure 1 (Depicted as a gray solid line in the middle) or similar. Figure 1 The document also showcases NLOS signals, including NLOS signals 170a from satellite 155 to vehicle-based satellite navigation device 105a. Figure 1 (depicted as a black dashed line in the middle) and NLOS signal 175a (in Figure 1 (Depicted as a long black dashed line in the image) and the NLOS signal 170b from satellite 155 to smartphone 105b (in... Figure 1 (depicted as a gray dashed line in the middle) and NLOS signal 175b (in Figure 1 (Depicted as a long gray dashed line in the text). Various embodiments also detect other signals (which may be non-LOS and / or NLOS signals) used to identify peaks within the tracking aperture. In this document, "tracking aperture" (also referred to as "aperture of the grid domain" or "energy grid" or similar) may refer to a two-dimensional window (e.g., in a... Figure 3F The energy grid 240 shown in the image (or similar) tracks signal data according to a frequency grid (along one dimension of the window) and code taps (along another dimension of the window). By limiting a set of values ​​for the frequency grid and a set of values ​​for the code taps, the window can be "narrowed" to focus on a possible signal of interest (e.g., a potential LOS signal or similar). In some cases, the grid tracker of a GNSS receiver or other satellite navigation receiver can control both dimensions of the tracking aperture to monitor or track signals from satellites. In some examples, the grid tracker may consist of a multi-tap correlator (e.g., Figure 3A Or 3E MTC 220 or 220' or similar), tracker control (e.g., Figure 3A Or a tracker control 310 or similar in Figure 3E, a mesh aperture control (e.g., a mesh aperture control 330 or 330' or similar in Figure 3 or 3E), or a mesh processor (e.g., Figure 3B It is embodied in at least one of the GP 230 or similar.

[0055] The following text is for reference only. Figure 2 These and other functions of system 100 (and its components) are described in more detail in section 4.

[0056] Figure 2is a schematic flow chart diagram illustrating non-limiting examples 200 of interactions between components of a satellite navigation device that can be used to implement detection and estimation of direct and reflected navigation satellite (e.g., GNSS, etc.) signal parameters in a multipath environment, in accordance with various embodiments.

[0057] Referring to Figure 2 In non-limiting embodiments 200, signals (e.g., GNSS signals, etc.) and their delayed multipath reflections arrive at a receiver antenna 205 and are filtered, down-converted to an intermediate frequency (“IF”), and conditioned in a front-end (“FE”) block 210. Digital outputs (e.g., in-phase and quadrature (“I / Q”) streams or the like) of the FE block 210 are stored into a sample buffer (“SB”) 215. The sample buffer 215 is configured to collect real-time IF I / Q samples from the FE block 210 faster than real-time requirements of single-instance and / or multi-instance multi-tap correlators (“MTCs”) 220 while serving multiple accesses. Signal processing services of the MTCs are each tracked by frequency shifting (e.g., by removing the IF and satellite Doppler frequency shift associated with a given satellite, etc.) to baseband and convolution with a local copy of a pseudo-random code sequence associated with a satellite (e.g., satellite 155 or the like) of interest. Outputs of the MTCs 220 are time-sequenced baseband I / Q streams for programmable number of delay taps and tap spacing around a specified alignment tap and frequency. The alignment tap (also referred to as a “center or alignment phase” or the like) and alignment frequency can be estimated by a peak parameter estimator (“PPE”) 235 or by code and frequency estimates derived by a position engine solution (“PE”) 255. The PE estimates are typically used when alignment signals and reflected signals are not present due to signal shadowing or PE internal algorithms have decided to override the current tracked alignment position. In some embodiments, the MTCs 220 can use at least one of estimated grid alignment parameters from the PPE 235 and / or auxiliary grid alignment parameters from the PE 255 as additional inputs, in some cases in a switched fashion (e.g., shown by, but not limited to, an arrow with a switched input between the PPE 235 or the PE 255 and the MTCs 220). Figure 1

[0058] ​A post-cycle correlation buffer ("PCB") 225 is a repository of multi-tap time- sequenced baseband I / Q samples generated by the MTC 220. The post-cycle PCB 225 is configured to continue to collect I / Q samples from incoming signal processing blocks (e.g., the FE 210, the SB 215, and the MTC 220, etc.) while serving a number of algorithms employed by post-signal processing blocks (e.g., the grid processor ("GP") 230 and the PPE 235, etc.). The post-signal processing blocks employ a number of algorithms that are best suited for extracting signal parameters of detected multipath signals under a variety of signal conditions. The GP 230 generates a two-dimensional ("2D") energy grid (or energy value grid or array) that is coherently and non-coherently integrated over a programmable duration of all taps (or pseudo-random number ("PRN") code offsets) generated by the MTC 220, a number of frequency bins, and a programmable bin spacing. Herein, a "programmable duration" can refer to a predetermined (or set to a default duration) but subsequently adjustable by a user or the ME to refine or optimize the duration of the 2D energy grid. In some embodiments, the ME pre-determines several programmable settings that can be dynamically switched and selected based on signal environment and device dynamic conditions. For example, to improve signal sensitivity in a weak signal environment, the programmable duration can be set to a longer integration setting. In contrast, for a higher dynamic environment in a strong signal environment, the programmable duration can be set to a shorter integration setting. The GP 230 can be a combination of a hardware co-processor with a general-purpose CPU to provide complex and accelerated grid analysis capabilities. An energy grid buffer ("EGB") 240 is a repository of the 2D energy grid generated by the GP 230 and is also re-read by the GP 230 to perform non-coherent energy grid accumulation over longer durations (as shown by the arrow from the EGB 240 to the GP 230). Further, the accumulation is monitored by the GP 230 to flag signal detections by thresholding and locate the positions of these detections, thereby minimizing the involvement of the general-purpose embedded CPU. Figure 2

[0059] A peak detection and identification block or peak detector ("PD") 245 is responsible for identifying and locating different multipath signals and their associated early-late tap samples. The PD 245 generates the following signal parameter estimates for each detected peak in the EGB 240: (1) a peak fit of refined code phase estimate; (2) peak signal strength (e.g., CNo or C / N o ​) estimate; and (3) peak coarse frequency estimates via lattice centering or synchronization fitting (e.g., seeding open and / or closed loop frequency and phase estimation algorithms, etc.). The output of the PD 245 is a list of detected peaks with the above parameter estimates provided to the PPE 235. The PPE 235 uses the list of detected peaks and their associated fit estimates to identify the nearest code-tap I / Q stream (e.g., row) in the PCB 225 and apply GNSS open and closed loop algorithms to refine the frequency, phase, and navigation data bit estimates. Some example algorithms include, but are not limited to, phase-locked loops (“PLLs”) (for refining frequency, phase, and data bits), frequency-locked loops (“FLLs”) (for refining frequency and data bits), and / or open loop lag-1 complex products (for refining average frequency), and / or the like. At the end of the measurement interval (“MI”), the multi-peak estimates are collected and transmitted to the PE 255 for consumption by the navigation solution and its associated acquisition and multipath mitigation logic.

[0060] The following are some non-limiting associated application areas that are best suited for lattice usage: (A) detecting earliest peaks; (B) estimating MP bias; and / or (C) tracking during signal outages; and / or the like.

[0061] With respect to (A), one beneficial area for lattice is detecting the earliest peaks (i.e., the signal with the shortest signal path). This will typically be the desired LOS signal, and in the case it is not, it will be the measurement with the smallest measurement bias. This also helps the ME, which can find itself tracking a non-LOS signal. This LOS detection will allow the ME to immediately redirect its cycle back onto the earliest signal when it appears.

[0062] With respect to an extension of (A), (B), another beneficial area for lattice is estimating the MP bias (i.e., excess path length) introduced by each non-LOS peak when the LOS signal is present. This can be viewed as a calibration and / or MP modeling phase of MP bias estimation. For example, if after a short time, the LOS signal is occluded, and the non-LOS signals are still present, the PE can correct from the non-LOS pseudorange estimates to the LOS equivalent pseudoranges by using the MP bias correction estimated in the earlier calibration and / or MP modeling phase. This effectively allows the PE to navigate with pure non-LOS signals as if they were equivalent to the LOS signals. Herein, “pseudorange” can refer to an approximate distance (or pseudo-distance) between a satellite and a satellite navigation device. “LOS equivalent pseudorange” or “LOS pseudorange” can refer to an approximate distance measurement based on a LOS signal, while “non-LOS pseudorange” can refer to an approximate distance measurement based on a NLOS signal or the like.

[0063] Regarding (C), the grid is a natural technique used during signal interruptions (e.g., driving in a tunnel). The tracker (in some cases, aided by PE assistance and optional sensors, etc.) can maintain the grid alignment at the most probable code and frequency position of the LOS signal (i.e., grid alignment). As long as the tracking cycle uncertainty remains within the aperture of the grid domain, the signal can be quickly detected and pulled back after the signal obstruction event to resolve the tracking error accumulated during the signal interruption.

[0064] This article references Figure 1 Sections 3 and 4 describe these and other features of instance 200 (and its components) in more detail.

[0065] Figures 3A to 3G (Collectively referred to as "Figure 3") illustrates the implementation process of detecting and estimating direct and reflective navigation satellite (e.g., GNSS, etc.) signal parameters in a multipath environment according to various embodiments. Figure 3A A schematic diagram of various non-limiting instances 300 and / or 300' of interactions between components.

[0066] like Figure 1 As shown in non-limiting example 300, a multi-tap correlator (“MTC”) 220 reads samples from a sample buffer (“SB”) 215 to remove the IF and satellite Doppler shift in mixer 305, and generates an input signal with respect to a specific satellite (e.g., Figure 3B The convolution of M PRN code copies 320 of satellite 155 or similar. Each copy 320 generated by the local code generator 315 (which may be part of the grid aperture controller 330) has a predetermined code phase shift relative to the center (or alignment) phase calculated by the tracker control block 310. Thus, M sample streams are generated by the MTC 220, where each stream corresponds to a specific PRN code delay. These sample streams then reach the integration and dump (“I&D”) block 325, where the signals are coherently accumulated up to a predetermined integration (“PDI”) time as the IQ coherent sum (“IQCS”), and then dumped to the post-correlated IQ buffer (“PCB”) 225. Thus, the PCB 225 contains a two-dimensional array of in-phase and orthogonal (“I / Q”) samples of a specific satellite, where the first dimension is the PRN code offset (referred to herein as a “tap” or “code tap”) and the second dimension is the post-correlated sample index (or time). MTC 220 can read the same sample multiple times from SB 215 for each satellite. The size of SB 215 is selected, designed, and / or configured to avoid cyclic rewriting before processing all required satellites. Similarly, grid processor (“GP”) block 230 can read the same sample multiple times from PCB 225 to generate grid energy. The size of PCB 225 is also selected, designed, and / or configured to avoid cyclic rewriting before generating grid energy.

[0067] like Figure 1 As shown in the non-limiting example 300, the next block following PCB 225 is GP 230. PCB 225 contains components from a specific satellite (e.g., Figure 3C The GP block 230 is initiated once the PCB 225 has collected N consecutive I / Q samples (where N is less than or equal to the total number P of I / Q samples that the PCB 225 can store). The GP 230 has a three-level iterative loop managed by the grid aperture control block (“GAC”) 330. The outermost loop selects the I / Q stream tap offset to push through the GP 230. The next-level loop selects the grid frequency to be applied to the selected I / Q stream. The innermost loop enumerates all I / Q samples for the selected tap offset. The output at the end of the innermost loop is the current scalar gate energy at the corresponding code tap and frequency grid.

[0068] The grid energy is formed by the following signal processing sequence. A complex mixer (“CM”) 335a is used to frequency-shift the I / Q samples from PCB 225 to a selected grid frequency. The output of CM 335a is then coherently accumulated by a coherent accumulator (“COH”) 335b for a programmable, selectable, or predetermined coherent duration, set by a parameter called the coherent sum (“CS”). The squared amplitude of the accumulated I / Q vector is determined by a sample power block (“PWR”) 335c. This sample power is further accumulated by an incoherent accumulator (“NCOH”) 335d for a programmable, selectable, or predetermined incoherent duration, set by a parameter called the incoherent sum (“NCS”). The output of NCOH 335d is the current grid sample based on the PCBI / Q buffer samples. If the parameter referred to as the Incoherent Grid and (“NCGS”) is set to the value “0”, then the grid accumulator 335e rewrites the EGB 240 with the current grid sample output from the NCOH 335d. If the NCGS is a non-zero (positive) value, then the grid accumulator 335e adds the corresponding iterative energy grid power value in the EGB 240 to the current grid sample output from the NCOH 335d, and stores the resulting (scalar) value in the EGB 240 to replace the added corresponding iterative energy grid power value. The NCGS also serves as a counter to indicate the number of times this operation is performed (i.e., the number of current grid samples to be added). At the end of each GP run, the detection and localization block (“DL”) 340 contains a bitmask identifying locations in the EGB 240 where the grid energy has exceeded a specified energy threshold. This mask is used by subsequent analysis blocks to locate areas requiring further analysis, reducing the workload on the general-purpose CPU. In this paper, "coherent sum" refers to summing the I and Q values ​​independently, while "incoherent sum" refers to summing the scalar power values ​​(e.g., IQ). 2 +Q 2 In this paper, each GP run can also be defined as spanning, for example, i1 and i2 within PCB225. K The current grid block containing all values ​​between i, followed by the grid block spanning i. K+1 with i 2K Between, etc.

[0069] exist Figure 3C The non-limiting example 300 illustrates a high-level software flowchart of the multi-peak detection, identification, and parameter estimation engine. The input to this flowchart is incoming data from PCB 225 and EGB240 generated by the previous processing blocks (i.e., MTC 220 and GP 230). Figure 3CThe flowcharts in FIGS. 1-3 are one possible configuration of software algorithms and framework, and they can be configured differently as needed or as environmental requirements dictate. Regardless of the software configuration, the framework must produce a multi-peak measurement report at the end of each measurement interval ("MI"). The MI can be divided into smaller different block intervals that accommodate the constraints of the hardware pipeline buffer design discussed previously. Ultimately, the MI reporting period can be as short as one block, or it can be a collection of multiple blocks. The variability of the MI period allows for greater flexibility, allowing for different position, velocity, and time ("PVT") requirements, signal environments, and signal processing performance goals.

[0070] Referring back to FIG. 1, Figure 3D When the PCB 225 has been filled with blocks of N I / Q samples, the MTC 220 starts the GP 230. The GP 230 can be configured to accumulate grid blocks in hardware until a prescribed measurement reporting interval (e.g., MI) (processes 345-349), at which time a multi-peak report ("MPR") 250 is sent (process 355). In each block interval, intermediate results are monitored by the hardware of the GP 230 for energy that has exceeded a programmable threshold level (processes 350, 351, 349). Additionally, the GP 230 can communicate all of the grid locations (e.g., row, column, etc.) that thresholded via a detection mask field. The detection results are pushed to a peak detection block or peak detector ("PD") 245 (process 352) every MI or, optionally, every block. The PD 245 uses the grid threshold detection and location results to identify grid peaks and their associated early-late correlation samples. Then, each unique peak is presented to a peak parameter estimator ("PPE") 235, which includes two stages, as also shown in FIG. 2. Figure 3D

[0071] Figure 3C A non-limiting visualization of the two stages used by the PPE 235 is depicted. The first stage of the PPE 235 uses energy grid based algorithms (process 353). These algorithms use the EGB 240 to estimate the coarse frequency of the peak (e.g., bin frequency or sync fit) (process 353a), the code phase (e.g., peak fit, peak refinement code fit, or delay lock loop ("DLL")) (process 353b), and the signal strength (e.g., CNo or C / N o ) via estimation of peak power and noise floor) (process 353c), or the like. The peak detection and parameter estimation of this first stage is stored into the MPR buffer 250 (as Figure 3D and 3D ​The next stage of optional PPE 235 uses I / Q stream based algorithms (process 354) to further refine the peak parameter estimates found in MPR 250. This second stage iterates over each peak in MPR 250 and locates the code tap row in PCB 225 that most closely matches the alignment code phase of the peak. The identified I / Q samples are then pushed through a number of refinement algorithms that can extract an improved estimate of the frequency and phase of the peak (e.g., via estimate report 360e or similar) (processes 354a and 354b) and navigation data bits (e.g., via bit decoder 360d or similar) (process 354c). The refined estimates of the second stage are then stored in MPR 250 along with or in place of the estimates from the first stage. Additionally, for each peak, MPR 250 can also save a current list of the algorithms employed, their settings, and the last known state, allowing this information to be used to seed the algorithms for the next block for the same peak. The refinement algorithms can be similar to the open or closed loop signal processing blocks depicted in Figure 3E For closed loop signal processing, a complex mixer ("CM") 360a can be used to frequency shift the identified I / Q samples output from PCB 225 based on the frequency (from FLL) or phase (from PLL) output from FLL frequency discriminator, PLL phase discriminator, and / or lag-1 open loop cross-product discriminator (i.e., for lag-1 open loop, no feedback loop is needed) block 360c (collectively "FLL / PLL / OL frequency and phase estimator 360c" or "FLL / PLL / OL frequency and phase estimator block 360c" or similar) output. In some cases, for FLL / PLL / OL frequency and phase estimator 360c, the loop sensitivity (e.g., via coherence accumulator ("COH") or coherence sum ("CS") 360b or similar) and loop bandwidth can be programmably adjusted to accommodate different or evolving signal conditions as well as user and clock dynamics.

[0072] As Figure 3A The modified multi-tap correlator ("MTCv2") 220' depicted in Figure 3E The MTC 220 shown and described is an alternative to the MTC 220' shown and described in Figure 3A As shown in the non-limiting embodiment 300' of the MTCv2 220', the energy grid values can now be generated directly by the MTCv2 220', as opposed to the MTC 220. Figure 3AMTC 220, which does not require intermediate I / Q storage or I / Q post-processing. In addition, the grid bin frequencies are mixed at a higher sample buffer ("SB") rate (e.g., 1 ms or greater), allowing for a wider grid bin frequency range and improved signal sensitivity at the edges of the frequency range due to slower 1 ms synchronization response decay. Further, the grid bin frequencies are now sequenced and generated by the grid aperture control block 330' of the MTCv2 220'. Similar to the process described above with respect to Figure 3E The M sample streams generated by the MTCv2 220' (corresponding to a particular PRN code delay) then each reach an integrate and dump ("I&D") block 325, where the signals are coherently accumulated until a predetermined integration ("PDI") time as (in this case) the total coherent sum ("TCS") (where TCS( Figure 3A ) = MTC IQCS( Figure 3B ) + GP CS( Figure 3B )), and in this case, then dumped to a sample power block ("PWR") 365, which determines the amplitude square of the accumulated I / Q vector. This sample power of the M sample streams then each reach an I&D block 370 as the incoherent sum ("NCS") (similar to GP NCS( Figure 3B ), where the signals are incoherently accumulated until another PDI time, and in this case, then dumped to a summer block 375 as the incoherent grid sum ("NCGS") (similar to GP NCGS( Figure 3E ), which integrates the existing energy grid with the current MTC energy result). In addition, the energy grid result is still stored in the same output or similar EGB buffer (e.g., the EGB 240' of the Figure 3B or similar). The output from the EGB 240' will now feed into the modified high-level software flowchart of the multi-peak detection, identification, and parameter estimation engine. Since the I / Q stream is not present, only the first stage of grid energy based algorithms will be used. The second stage of I / Q stream based algorithm refinement will be skipped. Although an increased MTC cycle is required to generate the energy grid output, and only energy grid based algorithms (e.g., code, CNo, and coarse frequency or similar) can be employed (without refined frequency, carrier phase, or bit-decoding estimation), the MTCv2 220' enables significant hardware memory savings (e.g., no I / Q buffer memory), simplifies I / Q post-processing hardware, and simultaneous tracking and estimation of multiple peaks with a single tracker, and / or similar. For simplifying I / Q post-processing hardware, although the DL 340( Figure 1), but the EGB results are pushed through a GP's back-end process, causing the DL 340 to contain a bitmask identifying locations in the EGB 240 where the grid energy has exceeded a specified energy threshold. This mask is used by a subsequent analysis block to locate areas that require further analysis, and to reduce the workload on the general-purpose CPU. In some cases, using a higher sampling rate IQ stream to produce the grid frequency bins allows for a wider grid frequency range and improved signal sensitivity at the edges of the frequency range (e.g., desirable for signal reacquisition performance).

[0073] Reference is made to Figure 3F and 3F , Figure 3B visualizes how real-world multipath signals map onto the EGB 240" and the conceptualization of how they can relate to the LOS (e.g., LOS 160a or similar) signal and grid tracking points (e.g., grid tracking alignment 380a or similar). Here, the EGB 240" corresponds to one or both of the EGB 240 of Figure 3E and / or the EGB 240" of Figure 3F or similar. As depicted in Figure 3F , the earliest peak is typically the LOS signal or the signal with the least multipath deviation. When both the LOS (e.g., LOS 160a or similar) signal and MP (e.g., NLOS 165a and 170a or similar) signals are present in a navigation satellite solution (e.g., GNSS solution), the system can measure, learn, and predict the relative MP deviation of the non-LOS peaks, such that if the LOS is occluded after a short time, the non-LOS signals can be deviation-corrected to behave like pseudo-LOS signals. Additionally, the EGB 240" also captures the Doppler shift on the MP signals due to the relative user motion with respect to the SV and MP reflecting surfaces. The output of the EGB 240" is used as input to a peak detection and identification block ("PD") 245. In this non-limiting example, the LOS 160a, NLOS#1 165a, and NLOS#2 170a of Figure 1 correspond to the LOS 160a, NLOS#1 165a, and NLOS#2 170a of Figure 3F . As further shown in Figure 1 , the grid tracking points or alignment 380a correspond to the LOS 160a.

[0074] Reference is made to Figure 3G and 3G , signal SNR contour plots in three-dimensions ("3D") versus chip (with respect to alignment) and frequency (with respect to alignment) and a 2D plot of SNR versus chip (with respect to alignment) depict a real-world collection of pedestrian walking scenarios using navigation satellite hardware. As Figure 3BAs depicted, due to low user movement speed, the frequency dimension is less meaningful in this scenario, and thus the 2D EGB 240’’’ can be reduced to a one-dimensional (“ID”) super-wide correlation vector by taking a slice along all taps at zero frequency bin. It is now clear to see the different multipath peaks and associated early-late samples (in the ID plot of SNR vs. chip, early samples are denoted by the “+” symbol and late samples are denoted by the “x” symbol), and their relative peak positions in the EGB 240’’’ structure (in the ID plot of SNR vs. chip, alignment is denoted by the “O” symbol) are highlighted. Here, the EGB 240’’’ corresponds to one or both of the EGB 240 of Figure 3E and / or the EGB 240’’ of Figure 3G or the like. The output of the EGB 240’’’ is used as input to a peak detection and identification block (“PD”) 245. In this non-limiting example, the LOS 160b, NLOS#1 165b, and NLOS#2 170b of Figure 1 correspond to the LOS 160b, NLOS#1 165b, and NLOS#2 170b of Figure 3G . As further shown in Figure 1 , the grid tracking points or alignment 380b correspond to the LOS 160b.

[0075] These and other functions of the example 300 and 300’ (and components thereof) are described in greater detail herein with reference to Figures 4A to 4J , 2 , and 4.

[0076] Figure 4A FIGS. 4A, 4B, 4C, 4D, 4E, 4F, 4G, 4H, 41, and / or 4J (collectively, “FIG. 4”) are flow diagrams illustrating a method 400 for implementing detection and estimation of direct and reflected navigation satellite (e.g., GNSS, etc.) signal parameters in a multipath environment, in accordance with various embodiments. Figure 4C , 4B , 4E, 4F, 4G, 4H, 41, and / or 4J each continue after the circular marker denoted as “A” to Figure 4A . Figure 4I , 4E, 4F, 4G, 4H, 41, and / or 4J each continue after the circular marker denoted as “B” to Figure 4I . Figure 4A The method 400 of FIG. 4A, 4B, 4C, 4D, 4E, 4F, 4G, 4H, 41, and / or 4J each return to Figure 4J or Figure 4C . Figure 4D The method 400 of FIG. 4A, 4B, 4C, 4D, 4E, 4F, 4G, 4H, 41, and / or 4J each continue after the circular marker denoted as “D” to Figure 4D . Figure 4H or Figure 4A The method 400 of FIG. 4A, 4B, 4C, 4D, 4E, 4F, 4G, 4H, 41, and / or 4J each return to Figure 4J orFigure 4D . Figure 4E Method 400 continues after the circular mark indicated by "F" to Figure 4F Continue after the circular marker indicated by "G" Figure 4G , or continue after the circular mark indicated by "H" Figure 4A . Figure 4H Method 400 of one or more of 4J each continues after a circular mark indicated by "I" to Figure 1 .

[0077] Although the techniques and procedures are depicted and / or described in a particular order for illustrative purposes, it should be understood that certain procedures may be reordered and / or omitted within the scope of various embodiments. Furthermore, although the method 400 illustrated in FIG4 may be derived from... Figure 1 , 2 These methods can be implemented or practiced with systems, instances, or embodiments 100, 200, 300, 300', and 300 or 300' (or components thereof) from 3A to 3D, 3E, and 3F to 3G (and in some cases, described below with respect to them), but these methods can also be implemented using any suitable hardware (or software) implementation scheme. Similarly, although separately Figure 1 , 2 Each of the systems, instances, or embodiments 100, 200, 300, 300', and 300 or 300' (or components thereof) from 3A to 3D, 3E, and 3F to 3G can operate according to the method 400 illustrated in FIG4 (e.g., by executing instructions embodied on a computer-readable medium), but Figure 4A , 2 Systems, instances, or embodiments 100, 200, 300, 300', and 300 or 300' of 3A to 3D, 3E, and 3F to 3G may also operate and / or execute other suitable procedures according to other operating modes.

[0078] exist Figure 4B In a non-limiting embodiment, at block 402, method 400 includes receiving multiple signals from a first satellite using a user device's computing system, each of the multiple signals traveling along a different path between the first satellite and the user device in a multipath (“MP”) environment. In some cases, receiving multiple signals from the first satellite may be performed simultaneously, sequentially, continuously, and / or over time. In some examples, receiving multiple signals may include (i) receiving multiple signals directly from the first satellite, or (ii) receiving multiple signals from a sample buffer (e.g., as described below regarding...). Figure 1 (or similar description).

[0079] In some embodiments, the computing system includes, but is not limited to, at least one of a multi-tap correlator (“MTC”), a grid processor (“GP”), a signal peak detector (“PD”), a peak parameter estimator (“PPE”), a measurement engine (“ME”), a digital signal processor (“DSP”), or other processors and / or the like (as described above regarding…). Figure 1 (as described in section 3 or similar). In some examples, the user device includes, but is not limited to, a smartphone, mobile phone, smartwatch, wearable device, tablet computer, laptop computer, dedicated portable satellite navigation device, vehicle-based satellite navigation device or other satellite navigation device and / or one of the like (as described above regarding...). Figure 1 (or similar description). Although Figure 4 is depicted as a computing system for a user device performing various processes of method 400, various embodiments are not limited thereto, and these different processes of method 400 can be performed by logic in a semiconductor package disposed together with the user device, wherein (as described above regarding...) Figure 4C The description logic may embody at least one of MTC, GP, PD, PPE, ME, PE, GPU, CPU and / or DSP or the like, or may perform the functions of at least one of MTC, GP, PD, PPE, ME, PE, GPU, CPU and / or DSP or the like.

[0080] Method 400 continues the process up to box 404. Figure 4I The process of box 412 (after the circular mark indicated by "A") or Figure 4H One of the processes in box 452 (after the circular mark indicated by "B").

[0081] In block 404, method 400 includes using a computing system to identify two or more signal peaks falling within a tracking aperture that spans a first set of code delay values ​​along a first dimension and a first set of frequency offset values ​​along a second dimension, based on analysis of a plurality of signals received from a first satellite. The identified two or more signal peaks correspond to two or more of the plurality of signals whose relative code delays and relative frequency offsets fall within the first set of code delay values ​​and the first set of frequency offset values ​​of the tracking aperture. In some cases, the plurality of signals includes, but is not limited to, Global Navigation Satellite System (“GNSS”) signals, wherein signal parameters from the received plurality of signals include, but are not limited to, signal power, code delay, carrier phase, carrier frequency, or data bits and / or at least one of the like.

[0082] The method 400 further includes, at block 406, determining, using the computing system, one or more peak parameter estimates for each of the at least one signal peak based on the measurement of the signal parameter from the at least one signal peak among the two or more signal peaks. The method 400 continues to the process of block 408, or to the process of Figure 4H block 450 (after the circular marker denoted as “I”) in

[0083] At block 450 (after the circular marker denoted as “I”) in Figure 4A the method 400 includes determining, using the computing system, whether one of the two or more signals is at least one of a first detected signal or a strongest detected signal after the first detected signal, wherein the at least one of the first detected signal or the strongest detected signal after the first detected signal corresponds to the at least one signal peak. The method 400 returns to the process of block 408 in Figure 4J or to the process of block 408’ (after the circular marker denoted as “E”) in Figure 4J .

[0084] At block 408, the method 400 includes providing, using the computing system, the determined one or more peak parameter estimates for each of the at least one signal peak to a position engine (“PE”) of the user device, the position engine configured to compute a navigation solution for the user device based at least in part on the determined one or more peak parameter estimates. The method 400 further includes computing, using the PE of the user device, a navigation solution for the user device based on the determined one or more peak parameter estimates for each of the at least one signal peak (block 410). In some embodiments, the navigation solution includes, but is not limited to, at least one of a position solution, a velocity solution, or a time solution for the user device and / or the like. The method 400 loops back to the process of block 402.

[0085] Alternatively, with reference to the non-limiting embodiment of Figure 4C , in the case where the user device is communicatively coupled with two or more satellites, at block 402’, the method 400 includes receiving, using the computing system, a plurality of signals from each of the two or more satellites, each of the plurality of signals traveling along a different path between each of the two or more satellites and the user device within the MP environment. The method 400 continues to the process of block 404’, to the process of block 412 (after the circular marker denoted as “A”) in Figure 4I , or to the process of block 452 (after the circular marker denoted as “B”) in Figure 4H .

[0086] At block 404', the method 400 includes identifying, using the computing system, two or more signal peaks that fall within a tracking aperture spanning a first set of code delay values along a first dimension and a first set of frequency offset values along a second dimension based on the analysis of the plurality of signals received from each satellite, the identified two or more signal peaks corresponding to two or more signals among the plurality of signals for each satellite, the identified two or more signal peaks being related to two or more signals among the plurality of signals for other satellites among the two or more satellites.

[0087] The method 400 further includes, at block 406', simultaneously measuring, using the computing system, a signal parameter from at least one signal peak among the identified two or more signal peaks to determine, using the computing system, one or more peak parameter estimates for each of the at least one signal peak based on the measurement of the signal parameter from the at least one signal peak among the identified two or more signal peaks. The method 400 continues to the process of block 408, or to the process of block 450 in Figure 4B , after the circular marker denoted as “I”.

[0088] At block 408', the method 400 includes providing, using the computing system, the determined one or more peak parameter estimates for each of the at least one signal peak to a PE of the user device, the PE configured to compute a navigation solution for the user device. The method 400 further includes computing, using the PE of the user device, a current geographic position of the user device based on data associated with the identified direct LOS signal (block 410'). The method 400 loops back to the process of block 402'.

[0089] In some embodiments, with reference to the non-limiting embodiment of Figure 4C , the simultaneous reception of the plurality of signals (at block 402) includes receiving the plurality of signals from the first satellite via an antenna of the user device (block 402a); filtering, downconverting to an intermediate frequency (“IF”), and conditioning the plurality of signals using a front-end (“FE”) block of the user device (collectively, “signal processing”) (block 402b); storing the plurality of signals output from the FE block in a sample buffer (block 402c); and retrieving the plurality of signals from the sample buffer (block 402d). The method 400 continues to the process of block 412 in Figure 4C , after the circular marker denoted as “A”.

[0090] In Figure 4DAt block 412 (after the circular marker denoted as "A") in FIG. 4, the method 400 includes frequency shifting each signal among the plurality of signals to a baseband frequency using a multi-tap correlator ("MTC") of the user device. At block 414, the method 400 includes convolving each frequency-shifted signal with a pseudo-random number ("PRN") code sequence associated with the first satellite to produce a time-sequenced in-phase and quadrature ("I / Q") stream using the MTC. In some cases, the time-sequenced baseband I / Q stream includes, without limitation, a plurality of I / Q sample streams, where each I / Q sample stream is shifted from a center or aligned phase (also referred to as an "aligned tap" or the like) code phase by a multiple of a tap interval. In some embodiments, the tap interval corresponds to a code delay based on the PRN code sequence. In some cases, the multiple of the tap interval collectively corresponds to a plurality of code taps defined by a plurality of PRN code offsets. In some embodiments, each I / Q sample stream corresponds to a code phase shifted I / Q signal over a predetermined integration ("PDI") time (also referred to as a "post-correlation sample index" or the like). The method 400 further includes storing the time-sequenced baseband I / Q stream produced for each frequency-shifted signal as a two-dimensional ("2D") array of I / Q samples (also referred to as "complex baseband post-correlation samples" or the like) in a post-correlation buffer ("PCB") of the user device using the MTC, the I / Q samples being stored by code tap along a first dimension of the 2D array and by post-correlation sample index along a second dimension of the 2D array (block 416). The method 400 continues to Figure 4D the process at block 418 (after the circular marker denoted as "D") in FIG. 4.

[0091] At Figure 4AAt block 418 (after the circular marker denoted as "D") in FIG. 4, the method 400 includes generating, using a grid processor ("GP") of the user device, a 2D array of grid energy values that are coherently and non-coherently integrated over a programmable time duration of all code taps produced by the MTC, a plurality of frequency bins, and a programmable bin spacing, in some cases by implementing a three-level iterative loop including an outermost loop, an intermediate loop, and an innermost loop. In some embodiments, implementing the three-level iterative loop includes repeating, for each of a plurality of frequency bins in each of a plurality of code taps, the following operations: selecting, using the outermost loop, one code tap among the plurality of code taps stored in the PCB to input into the GP; selecting, using the intermediate loop, a bin frequency to be applied to the selected code tap; and processing, using the innermost loop, a stream of I / Q samples corresponding to the selected code tap through the GP to generate a current scalar grid energy value for the selected code tap and the selected frequency bin. The method 400 further includes, at block 420, storing (or storing and accumulating), using the GP, the current scalar grid energy value for each of a plurality of frequency bins in each of a plurality of code taps in an energy grid buffer ("EGB") of the user device, the current scalar grid energy value being stored by code tap along a first dimension of the 2D array and by frequency bin along a second dimension of the 2D array.

[0092] According to some embodiments, the method 400 further includes identifying, using a signal peak detector ("PD") of the user device, at least one location within the EGB at which an energy peak occurs (block 422). In some instances, each energy peak corresponds to a current scalar grid energy value that exceeds a predetermined energy threshold, such as but not limited to a signal-to-noise ("SNR") value greater than 10%, or the like. In some cases, each identified location among the at least one location within the EGB corresponds to a code tap and a frequency bin associated with each energy peak. At block 424, the method 400 includes determining, using a peak parameter estimator ("PPE") of the user device, at least one signal parameter estimate corresponding to each energy peak. In some instances, the at least one signal parameter estimate includes at least one of a peak coarse frequency estimate, a refined peak code phase estimate using peak fitting, or a refined peak signal strength ("C / N o ") estimate, and / or the like. The method 400 further includes storing, using the PPE, a list of the identified energy peaks and the corresponding determined at least one signal parameter estimate in a multi-peak report ("MPR") buffer (block 426). The method 400 continues to the process of block 428 or the process of block 434.

[0093] At block 428, the method 400 includes identifying, using the PPE, a nearest code tap in the PCB corresponding to each identified energy peak based on the list of identified energy peaks and the corresponding determined at least one signal parameter estimate stored in the MPR buffer. At block 430, the method 400 includes applying, using the PPE, at least one algorithm to the I / Q samples corresponding to the identified nearest code taps to refine at least one of a frequency estimate, a phase estimate, or a navigation data bit estimate, and / or the like. In some embodiments, the at least one algorithm includes, but is not limited to, at least one of a phase-locked loop (“PLL”) algorithm, a frequency-locked loop (“FLL”) algorithm, or an open loop lag-N finger multiplication algorithm, and / or the like. The method 400 further includes storing, using the PPE, the refined at least one of a frequency estimate, a phase estimate, or a navigation data bit estimate, and / or the like in the MPR buffer (block 432). In this case, providing the determined one or more peak parameter estimates for each of the at least one signal peak to the PE (at block 408 in Figure 4A includes sending, using the PPE, the refined at least one of a frequency estimate, a phase estimate, or a navigation data bit estimate, and / or the like to the PE. The method 400 returns to the process of block 408 in Figure 4J or the process of block 408’ (after the circular marker denoted as “E”) in Figure 4E .

[0094] Alternatively or additionally, at block 434, the method 400 includes determining whether two or more energy peaks occur, where one of the two or more energy peaks is determined to be a direct line-of-sight (“LOS”) signal, and where other ones of the two or more energy peaks are determined to be one or more reflected non-line-of-sight (“NLOS”) signals. If so, the method 400 continues to the process of block 436 (after the circular marker denoted as “F”) in Figure 4F , the process of block 442 or block 446 (after the circular marker denoted as “G”) in Figure 4G , or the process of block 448 (after the circular marker denoted as “H”) in Figure 4E .

[0095] At block 436 (after the circular marker denoted as “F”) in Figure 4C , the method 400 includes analyzing, using the computing system, the determined at least one signal parameter estimate for the energy peak corresponding to each reflected NLOS signal to determine a relative MPR deviation of each reflected NLOS signal relative to the direct LOS signal. The method 400 continues to the process of block 438 or the process of block 440.

[0096] In box 438, method 400 includes, in response to a subsequent determination that a direct LOS signal has been lost, adjusting at least one of one or more reflected NLOS signals to serve as a corresponding at least one pseudo LOS signal by using a computational system to perform deviation correction based on a determined relative MP deviation of each reflected NLOS signal. Method 400 returns to Figure 4C The process in box 412 (after the circular mark indicated by "A").

[0097] Alternatively, in block 440, method 400 includes, in response to subsequently determining that the direct LOS signal has been detected and reacquired, replacing at least one dummy LOS signal with the reacquired direct LOS signal using a computing system. Method 400 returns to Figure 4F The process in box 412 (after the circular mark indicated by "A").

[0098] exist Figure 4C In box 442 (after the circular marker indicated by "G"), method 400 includes, in response to determining that a direct LOS signal has been lost, using a computing system to determine a prediction code tap and prediction frequency grid corresponding to the lost direct LOS signal based on extrapolation within the EGB corresponding to at least one identified position of the direct LOS signal prior to the loss, and using the computing system to generate a pseudo LOS signal based on the determined prediction code tap and the determined prediction frequency grid (box 444). Method 400 returns to... Figure 4F The process in box 412 (after the circular mark indicated by "A").

[0099] Alternatively, in Figure 4C In box 446 (after the circular marker denoted as "G"), method 400 includes, in response to subsequently determining that the direct LOS signal has been detected and reacquired, replacing the spurious LOS signal with the reacquired direct LOS signal using a computational system. Method 400 returns to... Figure 4G The process in box 412 (after the circular mark indicated by "A").

[0100] exist Figure 4CIn box 448 (after the circular marker indicated by "H"), method 400 includes using a computing system to calculate at least one of the following based at least in part on measured signal parameters associated with the direct LOS signal: the LOS pseudorange between the user equipment and the first satellite, the Doppler shift of the identified direct LOS signal from the first satellite, or the phase of the carrier signal of the direct LOS signal from the first satellite. In some cases, the determined peak parameter estimates for each of at least one signal peak include, but are not limited to, the calculated at least one of the following: the LOS pseudorange, the Doppler shift of the identified direct LOS signal, or the phase of the carrier signal of the direct LOS signal. Method 400 returns to... Figure 4I The process in box 412 (after the circular mark indicated by "A").

[0101] exist Figure 4C In box 452 (after the circular marker indicated by "B"), method 400 includes using a computing system to collect measurements from both the high chip rate band and the low chip rate band from multiple signals received from the first satellite. Method 400 further includes, in box 454, using the computing system to analyze the collected measurements from the high chip rate band to identify and amplify any uncertainties in the low chip rate band. Method 400 further includes, in response to identifying and amplifying uncertainties in at least one low chip rate band, using the computing system to horizontally label at least one low chip rate band based on the identified and amplified uncertainties of at least one low chip rate band according to the multipath measurement deviation level (box 456). Method 400 returns to... Figure 4A The process of box 412 (after the circular mark indicated by "A") or Figure 4J The process of box 404 or Examples of system and hardware implementations The process of box 404' (after the circular mark indicated by "C").

[0102] Figure 5

[0103] Figure 5 It is a block diagram illustrating examples of computer or system hardware architectures according to various embodiments. Figure 5 This is a schematic diagram of one embodiment of a computer system 500 providing service provider system hardware, which can perform the methods provided by various other embodiments as described herein, and / or perform the functions of a computer or hardware system (i.e., user device 105, computing system 110, display screen 130, audio playback device 135, etc.) as described above. It should be noted that... Figure 5 This is intended only to provide a general overview of the various components, of which one or more (or none) may be appropriately used. Therefore, Figure 1 It broadly describes how to implement individual system components in a relatively separate or relatively more integrated manner.

[0104] may represent the computer or hardware system 500 of the embodiments described above with respect to ​ The computer or hardware system 500 of the embodiments described above with respect to the computer or hardware systems (i.e., user device 105, computing system 110, display screen 130, audio playback device 135, etc.) can be shown as including hardware elements that can be electrically coupled via a bus 505 (or can otherwise be in communication, as appropriate). The hardware elements can include one or more processors 510, including without limitation one or more general-purpose processors and / or one or more special-purpose processors (such as microprocessors, digital signal processing chips, graphics acceleration processors, and / or the like); one or more input devices 515, which can include without limitation a mouse, a keyboard, and / or the like; and one or more output devices 520, which can include without limitation a display device, a printer, and / or the like.

[0105] The computer or hardware system 500 can further include (and / or be in communication with) one or more storage devices 525, which can comprise, without limitation, local and / or network accessible storage, and / or can include, without limitation, a disk drive, a drive array, an optical storage device, solid-state storage device such as a random access memory ("RAM") and / or a read-only memory ("ROM"), which can be programmable, flash- updateable, and / or the like. Such storage devices can be configured to implement any appropriate data stores, including without limitation, various file systems, database structures, and / or the like.

[0106] The computer or hardware system 500 might also include a communications subsystem 530, which can include without limitation a modem, a network card (wireless or wired), an infrared communication device, a wireless communication device and / or chipset (such as a Bluetooth TM device, an 802.11 device, a WiFi device, a WiMax device, a WWAN device, a cellular communication facility, etc.) and / or the like. The communications subsystem 530 can permit data to be exchanged with a network (such as the network described below, to name one example), with other computer or hardware systems, and / or with any other devices described herein. In many embodiments, the computer or hardware system 500 will further include working memory 535, which can include a RAM or ROM device, as described above.

[0107] The computer or hardware system 500 can also include software elements, shown as being currently located within the working memory 535, including an operating system 540, device drivers, executable libraries, and / or other code such as one or more applications 545, which can include computer programs provided by various embodiments, including but not limited to a hypervisor, a VM, and the like, and / or can be designed to implement methods, and / or configure systems, provided by other embodiments, as described herein. By way of example, one or more programs described with reference to the methods discussed above can be implemented as code and / or instructions executable by a computer (and / or a processor within a computer); in an aspect, then, such code and / or instructions can be used to configure and / or adapt a general purpose computer (or other device) to perform one or more operations in accordance with the described methods.

[0108] A set of these instructions and / or code might be encoded and / or stored on a non-transitory computer-readable storage medium, such as the storage device(s) 525 described above. In some cases, the storage medium might be incorporated within a computer system, such as the system 500. In other embodiments, the storage medium might be separate from a computer system (i.e., a removable medium, such as a compact disc, etc.), and / or provided in an installation package, such that the storage medium can be used to program, configure and / or adapt a general purpose computer with the instructions / code stored thereon. These instructions might take the form of executable code, which is executable by a computer or hardware system 500 and / or might take the form of source code, which, upon compilation and / or installation on a computer or hardware system 500 (e.g., using any of a variety of generally available compilers, installation programs, compression / decompression utilities, etc.) then takes the form of executable code.

[0109] It will be apparent to those skilled in the art that substantial variations can be made in form, detail, and use of the application without departing from the spirit of the application. For example, customization hardware (e.g., programmable logic controllers, field-programmable gate arrays, application-specific integrated circuits, and / or the like) can also be used, and / or particular elements might be implemented in hardware, software (including portable software, such as applets, etc.), or both. Further, connection to other computing devices such as network input / output devices can be employed.

[0110] As mentioned above, in one aspect, some embodiments can employ a computer or hardware system, such as computer or hardware system 500, to perform methods according to various embodiments of the application. According to a set of embodiments, some or all of the procedures of such methods are performed by computer or hardware system 500 in response to processor 510 executing one or more sequences of one or more instructions contained in working memory 535. Such instructions can be read into working memory 535 from another computer-readable medium, such as one or more storage device(s) 525. Just by way of example, execution of the sequences of instructions contained in working memory 535 might cause processor 510 to perform one or more procedures of the methods described herein.

[0111] The terms "machine-readable medium" and "computer-readable medium," as used as herein, refer to any medium that participates in providing data that causes a machine to operate in a certain way. In an embodiment implemented using computer or hardware system 500, various computer-readable media might be involved in providing instructions / code to processor 510 for execution and / or might be used to store and / or carry such instructions / code (e.g., as signals). In many implementations, a computer-readable medium is a physical and / or tangible storage medium. In some embodiments, a computer-readable medium can take many forms, including but not limited to, non-volatile media, volatile media, or the like. Non-volatile media includes, for example, optical or magnetic disks, such as storage device(s) 525. Volatile media includes, for example, dynamic memory, such as working memory 535. In some alternative embodiments, computer-readable media can take the form of transmission media, which include but are not limited to wire, cable, fiber optics, and / or the like that includes electrical wire and / or the various components of communications subsystem 530 (and / or media that carry the signals used to provide communications to and from communications subsystem 530). In an embodiment implemented using computer or hardware system 500, transmission media can also take the form of waves (including but not limited to wireless waves, acoustic waves, and / or the like) that propagate in or travel through a space (e.g., a "channel").

[0112] Common forms of physical and / or tangible computer-readable media include, for example, a floppy disk, a flexible disk, hard disk, magnetic tape, or any other magnetic medium, a CD-ROM, any other optical medium, punch cards, paper tape, any other physical medium with patterns of holes, a RAM, a PROM, and EPROM, a FLASH-EPROM, any other memory chip or cartridge, a carrier wave as described hereinafter, or any other medium from which a computer can read instructions and / or code.

[0113] Various forms of computer-readable media can participate in carrying one or more sequences of instructions to processor 510 for execution. By way of example only, instructions may initially be carried on a disk and / or optical disk of a remote computer. The remote computer may load the instructions into its dynamic memory and transmit the instructions as signals via a transmission medium for reception and / or execution by computer or hardware system 500. According to various embodiments of the invention, these signals, which may be in the form of electromagnetic signals, acoustic signals, optical signals, and / or the like, are examples of carrier waves on which instructions can be encoded.

[0114] The communication subsystem 530 (and / or its components) typically receives signals, and the bus 505 can then carry the signals (and / or data, instructions, etc. carried by the signals) to the working memory 535, from which the processor 505 retrieves and executes instructions. Instructions received by the working memory 535 may optionally be stored on the storage device 525 before or after execution by the processor 510.

[0115] While specific features and aspects have been described with respect to some embodiments, those skilled in the art will recognize that many modifications are possible. For example, the methods and processes described herein can be implemented using hardware components, software components, and / or any combination thereof. Furthermore, while the various methods and processes described herein may be described with respect to specific structural and / or functional components for ease of description, the methods provided by the various embodiments are not limited to any particular structural and / or functional architecture, but can be implemented on any suitable hardware, firmware, and / or software configuration. Similarly, while specific functionality is attributed to specific system components, this functionality is not necessarily limited thereto unless the context otherwise requires, and may be distributed across a variety of other system components according to several embodiments.

[0116] Furthermore, although the procedures of the methods and processes described herein are presented in a specific order for ease of description, various procedures may be reordered, added, and / or omitted according to various embodiments unless the context otherwise requires. Moreover, procedures described with respect to a method or process may be incorporated into other described methods or processes; similarly, system components described with respect to a particular architecture and / or a system may be organized in an alternative architecture and / or incorporated into other described systems. Therefore, although various embodiments with or without specific features are described herein for ease of description and illustration of some aspects of those embodiments, various components and / or features described herein with respect to specific embodiments may be replaced, added, and / or removed from other described embodiments unless the context otherwise requires. Therefore, although several embodiments have been described above, it will be understood that the present invention is intended to cover all modifications and equivalents within the scope of the following claims.

Claims

1. A semiconductor packaging method disposed within a user device, the semiconductor packaging method comprising logic configured to: identify, based on an analysis of a plurality of signals received from a first satellite, two or more signal peaks that fall within a tracking aperture spanning a first set of code delay values along a first dimension and a first set of frequency offset values along a second dimension, each of the plurality of signals traveling along different paths between the first satellite and the user device within a multipath (MP) environment, the identified two or more signal peaks corresponding to two or more signals among the plurality of signals whose relative code delays and relative frequency offsets fall within the first set of code delay values and the first set of frequency offset values of the tracking aperture; determine, based on measurements of signal parameters from at least one signal peak among the identified two or more signal peaks, one or more peak parameter estimates for each of the at least one signal peak; provide the determined one or more peak parameter estimates for each of the at least one signal peak to a position engine (PE) of the user device, the position engine configured to compute a navigation solution for the user device based at least in part on the determined one or more peak parameter estimates; store or store and accumulate a current scalar grid energy value for each of a plurality of frequency bins of each of a plurality of code taps in an energy grid buffer (EGB) of a satellite navigation device, the current scalar grid energy value stored by code tap along a first dimension of a 2D array and by frequency bin along a second dimension of the 2D array; and based on a determination that two or more energy peaks occur, one of the two or more energy peaks determined to be a direct line of sight (LOS) signal and other energy peaks of the two or more energy peaks determined to be one or more reflected non-line of sight (NLOS) signals, and in response to a determination that the direct LOS signal has been lost, determine, based on extrapolation within the EGB of an identified at least one location corresponding to the direct LOS signal prior to loss, a predicted code tap and a predicted frequency bin corresponding to the lost direct LOS signal, and generate a pseudo-LOS signal based on the determined predicted code tap and the determined predicted frequency bin.

2. The semiconductor packaging method of claim 1, wherein the logic is further configured to: frequency shift each satellite signal among the plurality of signals to a baseband frequency; convolving each frequency-shifted satellite signal with a pseudo-random number "PRN" code sequence associated with the first satellite to produce a time-sequenced in-phase and quadrature "I / Q" stream, wherein the time-sequenced baseband I / Q stream comprises a plurality of I / Q sample streams, wherein each I / Q sample stream is shifted from a center or aligned phase code by a multiple of a tap interval, wherein the tap interval corresponds to a code delay based on the PRN code sequence, wherein the multiple of the tap interval collectively corresponds to a plurality of code taps defined by a plurality of PRN code offsets, wherein each I / Q sample stream corresponds to a code phase shifted I / Q signal over a predetermined integration "PDI" time; and storing the time-sequenced baseband I / Q stream produced for each frequency-shifted signal as a two-dimensional "2D" array of I / Q samples stored in a post-correlation buffer "PCB" of the satellite navigation device, the I / Q samples stored by code tap along a first dimension of the 2D array and by post-correlation sample index along a second dimension of the 2D array.

3. The semiconductor packaging method of claim 2, wherein the logic is further configured to: generate a 2D array of grid energy values coherently and non-coherently integrated over a programmable duration of all code taps produced by the MTC, a plurality of frequency bins, and a programmable bin interval, by implementing a three-level iterative loop comprising an outermost loop, an intermediate loop, and an innermost loop, wherein implementing the three-level iterative loop comprises repeating the following operations for each of the plurality of code taps and each of the plurality of frequency bins: selecting one code tap among the plurality of code taps stored in the PCB for input into a grid processor "GP" using the outermost loop; selecting a bin frequency to apply to the selected code tap using the intermediate loop; and processing an I / Q sample stream corresponding to the selected code tap through the GP to generate a current scalar grid energy value for the selected code tap and the selected frequency bin using the innermost loop.

4. The semiconductor packaging method of claim 3, wherein the logic is further configured to: identifying at least one location within the EGB at which an energy peak occurs, wherein each energy peak corresponds to a current scalar grid energy value that exceeds a predetermined energy threshold, wherein each identified location among the at least one location within the EGB corresponds to a code tap and a frequency bin associated with each energy peak; storing a list of the identified energy peaks and corresponding determined at least one signal parameter estimate in a multi-peak report "MPR" buffer. determining at least one signal parameter estimate corresponding to each energy peak, the at least one signal parameter estimate comprising at least one of a peak coarse frequency estimate, a refined peak code phase estimate using a peak fit, or a refined peak signal strength "CN o " estimate; and 5. The semiconductor packaging method of claim 4, wherein the logic is further configured to: identifying, based on the list of the identified energy peaks and corresponding determined at least one signal parameter estimate stored in the MPR buffer, a nearest code tap in the PCB corresponding to each identified energy peak; ​ applying at least one algorithm to the I / Q samples corresponding to the identified nearest code tap to refine at least one of a frequency estimate, a phase estimate, or a navigation data bit estimate, wherein the at least one algorithm comprises at least one of a phase-locked loop "PLL" algorithm, a frequency-locked loop "FLL" algorithm, or an open-loop lag-N polyphase product algorithm; and storing the refined at least one of the frequency estimate, the phase estimate, or the navigation data bit estimate in the MPR buffer, wherein the refined at least one of the frequency estimate, the phase estimate, or the navigation data bit estimate in the MPR buffer corresponds to the one or more peak parameter estimates; wherein providing the determined one or more peak parameter estimates for each of the at least one signal peak to the PE comprises sending the refined at least one of the frequency estimate, the phase estimate, or the navigation data bit estimate to the PE.

6. The semiconductor packaging method of claim 5, wherein based on a determination that two or more energy peaks are present, one of the two or more energy peaks is determined to be a direct line-of-sight "LOS" signal and other energy peaks of the two or more energy peaks are determined to be one or more reflected non-line-of-sight "NLOS" signals, the logic is further configured to: analyze the determined at least one signal parameter estimate corresponding to the energy peak for each reflected NLOS signal to determine a relative MP bias of each reflected NLOS signal relative to the direct LOS signal; in response to a subsequent determination that the direct LOS signal has been lost, adjust at least one of the one or more reflected NLOS signals to serve as a corresponding at least one pseudo-LOS signal by bias correction based on the determined relative MP bias of each reflected NLOS signal; and in response to a subsequent determination that the direct LOS signal has been detected again and reacquired, replace the at least one pseudo-LOS signal with the reacquired direct LOS signal.

7. The semiconductor packaging method of claim 6, based on a determination that two or more energy peaks are present, one of the two or more energy peaks is determined to be a direct line-of-sight "LOS" signal and other energy peaks of the two or more energy peaks are determined to be one or more reflected non-line-of-sight "NLOS" signals, the logic is further configured to: in response to a subsequent determination that the direct LOS signal has been detected again and reacquired, replace the pseudo-LOS signal with the reacquired direct LOS signal.

8. The semiconductor packaging method of claim 1, wherein the plurality of signals comprises global navigation satellite system "GNSS" signals, wherein the signal parameters from the received plurality of signals comprise at least one of signal power, code delay, carrier phase, carrier frequency, or data bit.

9. The semiconductor packaging method of claim 1, wherein the logic is further configured to: determining whether one of the two or more signals is a direct line-of-sight "LOS" signal, rather than one or more reflected non-line-of-sight "NLOS" signals received from the first satellite; and computing, based at least in part on the measured signal parameter associated with the direct LOS signal, at least one of a LOS pseudorange between the user device and the first satellite, a Doppler shift of the identified direct LOS signal from the first satellite, or a phase of a carrier signal of the direct LOS signal from the first satellite; wherein the determined one or more peak parameter estimates of each of the at least one signal peak includes the computed at least one of the LOS pseudorange, the Doppler shift of the identified direct LOS signal, or the phase of the carrier signal of the direct LOS signal.

10. The semiconductor packaging method of claim 1, wherein the logic is further configured to: determine whether one of the two or more signals is at least one of a first detected signal or a strongest detected signal after the first detected signal, wherein the at least one of the first detected signal or the strongest detected signal after the first detected signal corresponds to the at least one signal peak.

11. The semiconductor packaging method of claim 1, wherein the user device is communicatively coupled with two or more satellites, wherein identifying the two or more signal peaks that fall within the tracking aperture includes identifying two or more signal peaks that fall within the tracking aperture spanning the first set of code delay values along the first dimension and the first set of frequency offset values along the second dimension based on analysis of a plurality of satellite signals received from each of the two or more satellites, each of the plurality of satellite signals traveling along a different path between each of the two or more satellites and the user device within the MP environment, the identified two or more signal peaks corresponding to two or more signals among the plurality of signals for each satellite, the identified two or more signal peaks relating to two or more signals among the plurality of signals for other satellites among the two or more satellites.

12. The semiconductor packaging method of claim 1, wherein the logic is further configured to: collect measurements from both a high chip rate frequency band and a low chip rate frequency band from the plurality of signals received from the first satellite; analyze the collected measurements of the high chip rate frequency band to identify and amplify any uncertainty of the low chip rate frequency band; and in response to identifying and amplifying uncertainty of at least one low chip rate frequency band, flag the at least one low chip rate frequency band in terms of a level of multipath measurement bias based on the identified and amplified uncertainty of the at least one low chip rate frequency band.

13. The semiconductor packaging method of claim 1, wherein the plurality of signals are continuously received from the first satellite, and wherein identifying the two or more signal peaks, determining the one or more peak parameters, and providing the determined one or more peak parameter estimates for each of the at least one signal peak to the PE are continuously performed over time.

14. A method for detecting and estimating signal parameters, comprising: identifying, using a computing system of a user device, two or more signal peaks that fall within a tracking aperture spanning a first set of code delay values along a first dimension and a first set of frequency offset values along a second dimension based on an analysis of a plurality of signals received from a first satellite, each of the plurality of signals traveling along different paths between the first satellite and the user device in a multipath "MP" environment, the identified two or more signal peaks corresponding to two or more signals among the plurality of signals whose relative code delays and relative frequency offsets fall within the first set of code delay values and the first set of frequency offset values of the tracking aperture; determining, using the computing system, one or more peak parameter estimates for each of at least one signal peak from among the identified two or more signal peaks based on a measurement of signal parameters of the at least one signal peak; providing, using the computing system, the determined one or more peak parameter estimates for each of the at least one signal peak to a position engine "PE" of the user device, the position engine configured to compute a navigation solution for the user device based at least in part on the determined one or more peak parameter estimates; storing or storing and accumulating a current scalar grid energy value for each of a plurality of frequency bins of each of a plurality of code taps in an energy grid buffer "EGB" of a satellite navigation device, the current scalar grid energy value stored by code tap along a first dimension of a 2D array and by frequency bin along a second dimension of the 2D array; and based on a determination that two or more energy peaks occur, one of the two or more energy peaks determined to be a direct line of sight "LOS" signal and other energy peaks of the two or more energy peaks determined to be one or more reflected non-line of sight "NLOS" signals, and in response to a determination that the direct LOS signal has been lost, determining a predicted code tap and a predicted frequency bin corresponding to the lost direct LOS signal based on extrapolation within the EGB of an identified at least one location corresponding to the direct LOS signal prior to loss, and generating a pseudo-LOS signal based on the determined predicted code tap and the determined predicted frequency bin.

15. The method of claim 14, wherein the computing system comprises at least one of a multi-tap correlator "MTC", a grid processor "GP", a signal peak detector "PD", a peak parameter estimator "PPE", a measurement engine "ME", a digital signal processor "DSP", or other processor.

16. The method of claim 14, further comprising: frequency shifting, using the computing system, each signal among the plurality of signals to a baseband frequency; convolving, using the computing system, each frequency shifted signal with a pseudo-random number (PRN) code sequence associated with the first satellite to produce a time-sequenced baseband in-phase and quadrature (I / Q) stream, wherein the time-sequenced baseband I / Q stream comprises a plurality of I / Q sample streams, wherein each I / Q sample stream is shifted from a center or aligned phase code by a multiple of a tap interval, wherein the tap interval corresponds to a code delay based on the PRN code sequence, wherein the multiple of the tap interval collectively corresponds to a plurality of code taps defined by a plurality of PRN code offsets, wherein each I / Q sample stream corresponds to a code phase shifted I / Q signal over a predetermined integration (PDI) time; and storing, using the computing system, the time-sequenced baseband I / Q stream produced for each frequency shifted signal as a two-dimensional (2D) array of I / Q samples stored in a post-correlation buffer (PCB) of the user device by code tap along a first dimension of the 2D array and post-correlation sample index along a second dimension of the 2D array.

17. The method of claim 16, further comprising: producing, using the computing system, a 2D array of grid energy values coherently and non-coherently integrated over a programmable duration of all code taps produced by the computing system, a plurality of frequency bins, and a programmable bin interval, using a three-level iterative loop comprising an outermost loop, an intermediate loop, and an innermost loop, wherein implementing the three-level iterative loop comprises repeating, for each of the plurality of code taps, the following operations for each of the plurality of frequency bins: selecting, using the outermost loop, one code tap among the plurality of code taps stored in the PCB; selecting, using the intermediate loop, a bin frequency to apply to the selected code tap; and processing, using the innermost loop, an I / Q sample stream corresponding to the selected code tap to produce a current scalar grid energy value for the selected code tap and the selected frequency bin; and storing, using the computing system, the current scalar grid energy value for each of the plurality of frequency bins of each of the plurality of code taps in an energy grid buffer (EGB) of the user device, the current scalar grid energy value stored by code tap along a first dimension of the 2D array and frequency bin along a second dimension of the 2D array.

18. The method of claim 17, further comprising: ​ identifying, using the computing system, at least one location within the EGB at which an energy peak occurs, wherein each energy peak corresponds to a current scalar grid energy value that exceeds a predetermined energy threshold, wherein each identified location among the at least one location within the EGB corresponds to a code tap and a frequency bin associated with each energy peak, wherein the energy peak corresponds to each of the at least one signal peak, wherein the code tap and the frequency bin associated with each energy peak correspond to the relative code delay and the relative frequency offset, respectively, of a signal among the two or more signals that corresponds to each of the at least one signal peak; determining, using the computing system, at least one signal parameter estimate corresponding to each energy peak, the at least one signal parameter estimate comprising at least one of a peak coarse frequency estimate, a refined peak code phase estimate using a peak fit, or a refined peak signal strength "C / N o " estimate; and storing, using the computing system, a list of the identified energy peaks and corresponding determined at least one signal parameter estimate in a multi-peak report "MPR" buffer.

19. The method of claim 18, further comprising: identifying, using the computing system, a nearest code tap in the PCB corresponding to each identified energy peak based on the list of the identified energy peaks and corresponding determined at least one signal parameter estimate stored in the MPR buffer; applying, using the computing system, at least one algorithm to the I / Q samples corresponding to the identified nearest code taps to refine at least one of a frequency estimate, a phase estimate, or a navigation data bit estimate, wherein the at least one algorithm comprises at least one of a phase-locked loop "PLL" algorithm, a frequency-locked loop "FLL" algorithm, or an open-loop lag-N polyphase product algorithm; and storing, using the computing system, the refined at least one of the frequency estimate, the phase estimate, or the navigation data bit estimate in the MPR buffer, wherein the refined at least one of the frequency estimate, the phase estimate, or the navigation data bit estimate in the MPR buffer corresponds to the one or more peak parameter estimates; wherein providing the determined one or more peak parameter estimates for each of the at least one signal peak to the PE comprises sending, using the computing system, the refined at least one of the frequency estimate, the phase estimate, or the navigation data bit estimate to the PE.

20. A satellite navigation device comprising: a computing system comprising: at least one first processor; and a first non-transitory computer-readable medium communicatively coupled to the at least one first processor, the first non-transitory computer-readable medium having computer software stored thereon, the computer software comprising a first set of instructions which, when executed by the at least one first processor, cause the computing system to: identifying, based on an analysis of a plurality of signals received from a first satellite, two or more signal peaks falling within a tracking aperture spanning a first set of code delay values along a first dimension and a first set of frequency offset values along a second dimension, each of the plurality of signals travelling along a different path between the first satellite and the satellite navigation device within a multipath "MP" environment, the identified two or more signal peaks corresponding to two or more signals among the plurality of signals whose relative code delays and relative frequency offsets fall within the first set of code delay values and the first set of frequency offset values of the tracking aperture; determining, based on measurements of signal parameters from at least one signal peak among the identified two or more signal peaks, one or more peak parameter estimates for each of the at least one signal peak; providing the determined one or more peak parameter estimates for each of the at least one signal peak to a position engine "PE" of the satellite navigation device, the position engine configured to compute a navigation solution for the satellite navigation device based at least in part on the determined one or more peak parameter estimates; storing or storing and accumulating a current scalar grid energy value for each of a plurality of frequency bins of each of a plurality of code taps in an energy grid buffer "EGB" of the satellite navigation device, the current scalar grid energy value stored by code tap along a first dimension of a 2D array and by frequency bin along a second dimension of the 2D array; and based on a determination that two or more energy peaks occur, one of the two or more energy peaks determined to be a direct line-of-sight "LOS" signal and other energy peaks of the two or more energy peaks determined to be one or more reflected non-line-of-sight "NLOS" signals, and in response to a determination that the direct LOS signal has been lost, determining, based on extrapolation within the EGB of an identified at least one location corresponding to the direct LOS signal prior to loss, a predicted code tap and a predicted frequency bin corresponding to the lost direct LOS signal, and generating a pseudo-LOS signal based on the determined predicted code tap and the determined predicted frequency bin.

Citation Information

Patent Citations

  • Global navigation satellite system (GNSS) signal tracking

    CN109564293A

  • Indirect path satellite navigation signal identification method and system and medium

    CN111856526A