Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
SYSTEMS AND METHODS FOR POSITIONING AND NAVIGATION WITH LOW EARTH ORBIT SATELLITE SIGNALS
Document Type and Number:
WIPO Patent Application WO/2024/085935
Kind Code:
A2
Abstract:
Methods and device configurations are provided for extracting navigation observables from a downlink communications signal. An example method can include performing a generalized likelihood ratio (GLR) operation to estimate a Doppler frequency of a downlink communication signal and selecting at least one active downlink communication source. The method can include performing operations for a sequential detector to detect the presence of multiple LEO satellites on the same channel and provide an estimate of the number of active LEO satellites. A sequential GLR detector estimates the number of LEO satellites along with their Doppler frequencies, and it provides an initial estimate of their unknown timing signals. Configurations are provided for controlling navigation of a device, such as a rover using differential navigation.

Inventors:
KASSAS ZAK (US)
NEINAVAIE MOHAMMAD (US)
Application Number:
PCT/US2023/029118
Publication Date:
April 25, 2024
Filing Date:
July 31, 2023
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
OHIO STATE INNOVATION FOUNDATION (US)
UNIV CALIFORNIA (US)
Attorney, Agent or Firm:
HAMILTON, Lee G. et al. (US)
Download PDF:
Claims:
CLAIMS What is claimed is: 1. A method for extracting navigation observables from a downlink communications signal, the method comprising: detecting, by a device, at least one downlink communication signal; performing, by the device, a generalized likelihood ratio (GLR) operation to estimate a Doppler frequency of a downlink communication signal and select at least one active downlink communication source; tracking, by the device, the estimate of Doppler frequency of the downlink communication signal; and determining, by the device, a position estimate for the device between a receiver of the device and a source of the at least one downlink communications signal. 2. The method of claim 1, wherein the at least one downlink communication signal is detected from an unknown source using a reference carrier frequency and minimum Doppler rate. 3. The method of claim 1, wherein the at least one downlink communication signal is modeled as an unknown periodic signal in the presence of interference and noise. 4. The method of claim 1, wherein performing the generalized likelihood ratio operation includes estimating a number of active downlink communication signal sources. 5. The method of claim 1, wherein performing the generalized likelihood ratio operation includes performing a matched subspace detection operation, wherein signal subspace is based on Doppler frequency of the at least one downlink communication signal. 6. The method of claim 1, wherein performing the generalized likelihood ratio operation includes selecting the at least one active downlink communication source based on power level of a received signal and nulling a previously detected source as interference. 7. The method of claim 1, wherein tracking is based on estimated Doppler and Doppler rate. 8. The method of claim 1, wherein the position estimate is determined based on a Doppler positioning model.

9. The method of claim 1, wherein the position estimate is determined for a rover and position estimates are determined by differential Doppler positioning including use of a base receiver. 10. The method of claim 1, wherein the position estimate is determined based on resolving Doppler difference between a base receiver and the device. 11. A method for navigation of a vehicle, the method comprising: detecting, by a device, at least one downlink communication signal; performing, by the device, a generalized likelihood ratio (GLR) operation to estimate a Doppler frequency of a downlink communication signal and select at least one active downlink communication source; tracking, by the device, the estimate of Doppler frequency of the at least one downlink communication signal; determining, by the device, a position estimate for the device between a receiver of the device and a source of the at least one downlink communications signal; and controlling, by the device, vehicle operation using the position estimate. 12. The method of claim 11, wherein the at least one downlink communication signal is detected from an unknown source using a reference carrier frequency and minimum Doppler rate. 13. The method of claim 11, wherein the at least one downlink communication signal is modeled as an unknown periodic signal in the presence of interference and noise. 14. The method of claim 11, wherein performing the generalized likelihood ratio operation includes estimating a number of active downlink communication signal sources. 15. The method of claim 11, wherein performing the generalized likelihood ratio operation includes performing a matched subspace detection operation, wherein signal subspace is based on Doppler frequency of the at least one downlink communication signal. 16. The method of claim 11, wherein performing the generalized likelihood ratio operation includes selecting the at least one active downlink communication source based on power level of a received signal and nulling a previously detected source as interference. 17. The method of claim 11, wherein tracking is based on estimated Doppler and Doppler rate

18. The method of claim 11, wherein the position estimate is determined based on a Doppler positioning model. 19. The method of claim 11, wherein the position estimate is determined for a rover and position estimates are determined by differential Doppler positioning including use of a base receiver. 20. The method of claim 11, wherein the position estimate is determined based on resolving Doppler difference between a base receiver and the device. 21. A device configured for extracting observables from a communications signal, the device comprising: a receiver configured to detect at least one downlink communication signal; and a controller, coupled to a communications module, wherein the controller is configured to: receive the at least one downlink communication signal; perform a generalized likelihood ratio (GLR) operation to estimate a Doppler frequency of a downlink communication signal and select at least one active downlink communication source; track the estimate of Doppler frequency of the downlink communication signal; and determine a position estimate for the device between a receiver of the device and a source of the at least one downlink communications signal. 22. The device of claim 21, wherein the downlink communication signal is detected from an unknown source using a reference carrier frequency and minimum Doppler rate. 23. The device of claim 21, wherein the at least one downlink communication signal is modeled as an unknown periodic signal in the presence of interference and noise. 24. The device of claim 21, wherein performing the generalized likelihood ratio operation includes estimating a number of active downlink communication signal sources. 25. The device of claim 21, wherein performing the generalized likelihood ratio operation includes performing a matched subspace detection operation, wherein signal subspace is based on Doppler frequency of the at least one downlink communication signal

26. The device of claim 21, wherein performing the generalized likelihood ratio operation includes selecting the controller is further configured to select the at least one active downlink communication source based on power level of a received signal and nulling a previously detected source as interference. 27. The device of claim 21, wherein tracking is based on estimated Doppler and Doppler rate. 28. The device of claim 21, wherein the position estimate is determined based on a Doppler positioning model. 29. The device of claim 21, wherein the position estimate is determined for a rover and position estimates are determined by differential Doppler positioning including use of a base receiver. 30. The device of claim 21, wherein the position estimate is determined based on resolving Doppler difference between a base receiver and the device.

Description:
SYSTEMS AND METHODS FOR POSITIONING AND NAVIGATION WITH LOW EARTH ORBIT SATELLITE SIGNALS CROSS-REFERENCE TO RELATED APPLICATIONS [0001] This application claims the benefit of U.S. provisional patent application No. 63/393,501 filed on July 29, 2022, and titled “SYSTEMS AND METHODS FOR POSITION AND NAVIGATION WITH LOW EARTH ORBIT SATELLITE SIGNALS,” the disclosure of which is expressly incorporated herein by reference in its entirety. STATEMENT OF GOVERNMENT SUPPORT [0002] This invention was made with Government support under Grant No. N00014-19-1- 2511 awarded by the Office of Naval Research (ONR) and Grant No. 69A3552047138 awarded by the U.S. Department of Transportation (USDOT). The Government has certain rights in the invention. FIELD [0003] The present disclosure generally relates to opportunistic navigation including systems, devices, and methods for extracting of navigation observables from downlink transmissions, ground vehicle navigation, and unmanned aerial vehicle (UAV) navigation. BACKGROUND [0004] Space vehicles (SVs) in Low Earth orbit (LEO) LEO number in the thousands. LEO orbits allow for higher received signal power compared to medium Earth orbit (MEO) where GNSS satellite vehicles (SVs) reside. Moreover, LEO SVs are more abundant than GNSS SVs and provide both spatial and spectral diversity. There is a desire to provide systems that use LEO broadband communication satellite signals as sources for navigation. [0005] Frameworks are required for determining navigation observables from LEO SV signals of opportunity. One obstacle is that broadband providers do not usually disclose signal structure of transmissions As such operations are required in order to draw observables. In addition, very-high dynamics of LEO SVs present challenges, especially in carrier phase tracking. Accordingly, there is a need and a desire for frameworks, devices and process to utilize downlink transmissions for positioning and navigation. SUMMARY [0006] In some aspects, the techniques described herein relate to a method for extracting navigation observables from a downlink communications signal, the method including: detecting, by a device, at least one downlink communication signal; performing, by the device, a generalized likelihood ratio (GLR) operation to estimate a Doppler frequency of a downlink communication signal and select at least one active downlink communication source; tracking, by the device, the estimate of Doppler frequency of the downlink communication signal; and determining, by the device, a position estimate for the device between a receiver of the device and a source of the at least one downlink communications signal. [0007] In some aspects, the techniques described herein relate to a method, wherein the at least one downlink communication signal is detected from an unknown source using a reference carrier frequency and minimum Doppler rate. [0008] In some aspects, the techniques described herein relate to a method, wherein the at least one downlink communication signal is modeled as an unknown periodic signal in the presence of interference and noise. [0009] In some aspects, the techniques described herein relate to a method, wherein performing the generalized likelihood ratio operation includes estimating a number of active downlink communication signal sources. [0010] In some aspects, the techniques described herein relate to a method, wherein performing the generalized likelihood ratio operation includes performing a matched subspace detection operation, wherein signal subspace is based on Doppler frequency of the at least one downlink communication signal. [0011] In some aspects, the techniques described herein relate to a method, wherein performing the generalized likelihood ratio operation includes selecting the at least one active downlink communication source based on power level of a received signal and nulling a previously detected source as interference. [0012] In some aspects, the techniques described herein relate to a method, wherein tracking is based on estimated Doppler and Doppler rate. [0013] In some aspects, the techniques described herein relate to a method, wherein the position estimate is determined based on a Doppler positioning model. [0014] In some aspects, the techniques described herein relate to a method, wherein the position estimate is determined for a rover and position estimates are determined by differential Doppler positioning including use of a base receiver. [0015] In some aspects, the techniques described herein relate to a method, wherein the position estimate is determined based on resolving Doppler difference between a base receiver and the device. [0016] In some aspects, the techniques described herein relate to a method for navigation of a vehicle, the method including: detecting, by a device, at least one downlink communication signal; performing, by the device, a generalized likelihood ratio (GLR) operation to estimate a Doppler frequency of a downlink communication signal and select at least one active downlink communication source; tracking, by the device, the estimate of Doppler frequency of the downlink communication signal; determining, by the device, a position estimate for the device between a receiver of the device and a source of the at least one downlink communications signal; and controlling, by the device, vehicle operation using the position estimate. [0017] In some aspects, the techniques described herein relate to a method, wherein the downlink communication signal is detected from an unknown source using a reference carrier frequency and minimum Doppler rate. [0018] In some aspects, the techniques described herein relate to a method, wherein the at least one downlink communication signal is modeled as an unknown periodic signal in the presence of interference and noise. [0019] In some aspects, the techniques described herein relate to a method, wherein performing the generalized likelihood ratio operation includes estimating a number of active downlink communication signal sources. [0020] In some aspects, the techniques described herein relate to a method, wherein performing the generalized likelihood ratio operation includes performing a matched subspace detection operation, wherein signal subspace is based on Doppler frequency of the at least one downlink communication signal. [0021] In some aspects, the techniques described herein relate to a method, wherein performing the generalized likelihood ratio operation includes selecting the at least one active downlink communication source based on power level of a received signal and nulling a previously detected source as interference. [0022] In some aspects, the techniques described herein relate to a method, wherein tracking is based on estimated Doppler and Doppler rate. [0023] In some aspects, the techniques described herein relate to a method, wherein the position estimate is determined based on a Doppler positioning model. [0024] In some aspects, the techniques described herein relate to a method, wherein the position estimate is determined for a rover and position estimates are determined by differential Doppler positioning including use of a base receiver. [0025] In some aspects, the techniques described herein relate to a method, wherein the position estimate is determined based on resolving Doppler difference between a base receiver and the device. [0026] In some aspects, the techniques described herein relate to a device configured for extracting observables from a communications signal, the device including: a receiver configured to detect at least one downlink communication signal; and a controller, coupled to a communications module, wherein the controller is configured to detect at least one downlink communication signal; perform a generalized likelihood ratio (GLR) operation to estimate a Doppler frequency of a downlink communication signal and select at least one active downlink communication source; track the estimate of Doppler frequency of the downlink communication signal; and determine a position estimate for the device between a receiver of the device and a source of the at least one downlink communications signal. [0027] In some aspects, the techniques described herein relate to a device, wherein the downlink communication signal is detected from an unknown source using a reference carrier frequency and minimum Doppler rate. [0028] In some aspects, the techniques described herein relate to a device, wherein the at least one downlink communication signal is modeled as an unknown periodic signal in the presence of interference and noise. [0029] In some aspects, the techniques described herein relate to a device, wherein the controller is further configured to estimate a number of active downlink communication signal sources. [0030] In some aspects, the techniques described herein relate to a device, wherein the controller is further configured to perform a matched subspace detection operation, wherein signal subspace is based on Doppler frequency of the at least one downlink communication signal. [0031] In some aspects, the techniques described herein relate to a device, wherein the controller is further configured to select the at least one active downlink communication source based on power level of a received signal and nulling a previously detected source as interference. [0032] In some aspects, the techniques described herein relate to a device, wherein tracking is based on estimated Doppler and Doppler rate. [0033] In some aspects, the techniques described herein relate to a device, wherein the position estimate is determined based on a Doppler positioning model. [0034] In some aspects, the techniques described herein relate to a device, wherein the position estimate is determined for a rover and position estimates are determined by differential Doppler positioning including use of a base receiver. [0035] In some aspects, the techniques described herein relate to a device, wherein the position estimate is determined based on resolving Doppler difference between a base receiver and the device. [0036] Other aspects, features, and techniques will be apparent to one skilled in the relevant art in view of the following detailed description of the embodiments. BRIEF DESCRIPTION OF THE DRAWINGS [0037] The features, objects, and advantages of the present disclosure will become more apparent from the detailed description set forth below when taken in conjunction with the drawings in which like reference characters identify correspondingly throughout and wherein: [0038] FIG. 1 is a graphical representation of downlink communication signals and a device configuration according to one or more embodiments; [0039] FIG. 2 illustrates a process for extracting a navigation observable according to one or more embodiments; [0040] FIG. 3 depicts a device configuration according to one or more embodiments; [0041] FIGs. 4A-4B illustrate a graphical representation of base and rover device components according to one or more embodiments; [0042] FIG. 5 illustrates a graphical representation of satellite trajectories and downlink communication signals according to one or more embodiments; [0043] FIG. 6 illustrates a graphical representation of Doppler tracking of downlink communication signals according to one or more embodiments; [0044] FIG. 7 illustrates a graphical representation of measured and predicted Doppler differences according to one or more embodiments; [0045] FIG. 8 illustrates a graphical representation of residual error according to one or more embodiments; [0046] FIG. 9 illustrates a graphical representation of position estimates according to one or more embodiments; [0047] FIG. 10 illustrates a graphical representation of Doppler tracking according to one or more embodiments; [0048] FIG. 11 illustrates a graphical representation of measured Doppler differences according to one or more embodiments; [0049] FIG. 12 illustrates a graphical representation of residual error according to one or more embodiments; [0050] FIG. 13 illustrates a graphical representation of position estimates according to one or more embodiments; [0051] FIG. 14 illustrates a graphical representation of an experimental setup according to one or more embodiments; [0052] FIG. 15 illustrates a graphical representation of a likelihood function and Doppler frequency according to one or more embodiments; [0053] FIG. 16 illustrates a graphical representation a likelihood function and Doppler frequency according to one or more embodiments; [0054] FIG. 17 illustrates a graphical representation a likelihood function and Doppler frequency according to one or more embodiments; [0055] FIG. 18 illustrates a graphical representation a likelihood function and Doppler frequency according to one or more embodiments; and [0056] FIG. 19 illustrates a graphical representation of UAV trajectory and the estimated trajectory according to one or more embodiments. [0057] FIG. 20 illustrates an example computing device. DETAILED DESCRIPTION Overview and Terminology [0058] One aspect of the disclosure is directed to opportunistic navigation. In one embodiment, processes and configurations are provided for use of signal parameters and signal structures, such as low earth orbit (LEO) downlink signals, to determine navigation observables and aid in navigation. According to embodiments, processes and configurations are provided to leverage one or more communication signal features, such as features of LEO downlink communications waveforms and periodic communication signals transmitted with reference signals. Processes and frameworks are also provided for using downlink communication signals without network registration and in the presence of interfering sources. Although processes and operations are described herein as relating to LEO downlink communications signals, it should be appreciated that the principles of the disclosure may be applied to other signals of opportunity. [0059] According to embodiments, processes and device configurations may be configured to identify and select LEO satellite vehicles (SVs) using a generalized likelihood ratio (GLR) The generalized likelihood ratio may be used to detect an unknown source in the presence of interfering sources. Experimental results are described illustrating successful use of a GLR for processing of downlink signals. According to embodiments, a GLR test is provided to include a sequential detector to detect the presence of multiple LEO satellites on a same channel and provide an estimate of the number of active LEO satellites. The detector may be based on matched subspace detection, where the signal subspace is defined by the Doppler frequencies of the LEO satellites. According to embodiments, sequential GLR detector operations estimate a number of LEO satellites along with their Doppler frequencies, and provide an initial estimate of unknown timing signals. Embodiments provide a closed-form solution to the probability of false alarm based on presence of Doppler estimation error. Experimental results are described herein to illustrate a receiver capable of acquiring a plurality of Starlink satellites, an in particular three satellites, and tracking their Doppler frequencies despite the unknown nature of Starlink satellite signals. Experimental results are also presented in which a base with a known position and a stationary rover with an unknown position were equipped with the proposed receiver. Two baselines between the base and rover receivers were considered: 1 km and 9 m. Despite the fact that the satellites' ephemerides are poorly known (with errors on the order of several kilometers since they are predicted from two line element (TLE) and an SGP4 propagator), differential framework according to embodiments is able to estimate a rover's two dimensional (2-D) position with an error of 5.6 m and 2.6 m, respectively. Experimental results with signals from two Orbcomm LEO satellites are presented, demonstrating an unmanned aerial vehicle (UAV) navigating via the proposed framework. The UAV traversed a total trajectory of 782 m, achieving a three-dimensional (3-D) position root mean squared error (RMSE) of 18.87 m. [0060] Methods are provided herein for extracting navigation observables from a downlink communications signals. Extraction of observables may be based on signal structure, including a frame structure and system information. According to embodiments, a method for extracting navigation observables from a downlink communications signal can include acquisition and tracking of downlink signal Doppler for selection of downlink signals and determining position estimates. In additional position estimates may be used for controlling device navigation. Embodiments are also directed to device configurations and systems for determining and using Doppler estimates and a general likelihood ratio. [0061] As used herein, the terms “a” or “an” shall mean one or more than one. The term “plurality” shall mean two or more than two. The term “another” is defined as a second or more. The terms “including” and/or “having” are open ended (e.g., comprising). The term “or” as used herein is to be interpreted as inclusive or meaning any one or any combination. Therefore, “A, B or C” means “any of the following: A; B; C; A and B; A and C; B and C; A, B and C”. An exception to this definition will occur only when a combination of elements, functions, steps or acts are in some way inherently mutually exclusive. [0062] Reference throughout this document to “one embodiment, certain embodiments, an embodiment,” or similar term means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment. Thus, the appearances of such phrases in various places throughout this specification are not necessarily all referring to the same embodiment. Furthermore, the particular features, structures, or characteristics may be combined in any suitable manner on one or more embodiments without limitation. Exemplary Embodiments [0063] FIG. 1 is a graphical representation of downlink communication signals and a device configuration according to one or more embodiments. According to embodiments, systems, methods and device configurations are configured to detect one or more downlink communication signals from one or more satellite vehicles, such as low Earth Orbit (LEO) satellite vehicles. According to embodiments, detection and use of an unknown source may be provided based on system and device configurations and processes described herein. According to embodiments, LEO communication signals may be detected by a device. According to other embodiments, a differential framework is provided including use of a base and a rover, wherein each of the base and rover detect downlink communication signals from the same LEO SV. FIG. 1 illustrates system 100 including a device 105 and a base 108. Device 105 and base 108 may be configured to detect downlink communication signals from one or more LEO satellites 110 1-n . According to embodiments, device 105 and base 108 are configured to use a generalized likelihood ratio (GLR) to detect at least one source, such as one or more of LEO satellites 1101-n in the presence of interfering sources. Embodiments include providing a framework for device 105 and one or more processes to determine position estimates, control navigation and for opportunistic navigation. [0064] As used herein, opportunistic navigation may relate to using communication signals, which are non-positioning signals, to aid in navigation and/or one or more navigation operations In addition opportunistic navigation functions described herein may be applied to one or more autonomous vehicles, such as autonomous ground vehicles and unmanned aerial vehicles. Device 105 may be a vehicle, such as an autonomous vehicle. According to embodiments, device 105 may include a receiver (e.g., communications module) 106 configured to detect one or more LEO signals and controller 107. Base 108 may similarly be configured as device 105 and may be configured to detect one or more LEO downlink communication signals. [0065] Embodiments are described herein for processes and device configurations which may be utilized by device 105 and controller 107 to determine observables, such as pseudorange estimates relative to one or more of LEO satellites110 1-n using one or more of communications signals 115 1-n . By way of example, receiver 106 of device 105 may detect one or more downlink transmissions which may be processed to determine one or more navigation observables. By way of further example, controller 107 may determine one or more of a Doppler frequency, and Doppler rate to determine a position estimate relative to one or more of LEO satellite vehicles 1101-n. Position estimates and observables may be determined based on matched subspace detection and decoding one or more parameters of one or more downlink signals 115 1-n . In that fashion, device 105 may be configured to perform opportunistic navigation using one or more communication signals. [0066] According to embodiments, configurations and processes are provided for a receiving device, such as device 105 including receiver 106 and controller 107, to determine position of a device and/or provide observables to aid in vehicle operation. In certain embodiments, device 105 may be configured to determine one or more observables from opportunistic signals received from LEO satellite vehicles 110 1-n transmitting on the same channel. [0067] According to embodiments, processes and a framework are provided for opportunistic navigation using LEO downlink signals. Downlink communication signals may relate to signals transmitted using orthogonal frequency division multiplexing (OFDM). In addition, opportunistic navigation can include use of downlink signals without requiring registration and/or subscription to a communication network. Opportunistic navigation may be performed as complement to and/or alternative to navigation using GNSS signals. [0068] According to embodiments, signal structure of downlink communication signals may be used for opportunistic navigation. FIG. 1 illustrates a plurality of LEO satellite vehicles 1101-n and downlink signals 1151-n. Satellite vehicles 1101-n may be viewed as sources. Each source may be configured to generate output for one or more spot beams 120. Selection of downlink signals may be relative to one or more sport beams. Satellite vehicles 1101-n may transmit downlink communications signals to one or more overlapping spot beams. According to embodiments, a framework and processes may be configured to select output, such as downlink communications signal 115 1 of LEO satellite vehicle 110 1 among one or more other sources, such as downlink communications signals 1152-n of LEO satellite vehicle 110 2-n . Accordingly, one or more non-selected sources may be nulled sources. According to embodiments, device 105 may utilize one or more processes, such as process 200, and a framework for extracting navigation observables, include a generalized likelihood ratio. [0069] Unlike existing receivers that are not able to operate when the signal is unknown, embodiments include a differential opportunistic navigation receiver to operate in scenarios where a received signal is unknown and multiple unknown sources are present in an environment. Device 105 and receiver 106 may be configured to operate in scenarios where size, weight, and power constraints (SWAPC) should not be violated, e.g., autonomous systems. Along with accuracy, processes described herein are faster and more accurate than existing blind processes and embodiments are capable of optimally detecting multiple unknown sources. [0070] FIG. 2 illustrates a process for extracting a navigation observable according to one or more embodiments. Process 200 may be performed by a device, such as device 105 and/or controller 107 of FIG. 1, to determine one or more observables (e.g., position estimate, pseudorange, carrier frequency, Doppler, etc.) for positioning or to aid in navigation. Process 200 may also be performed to control navigation of a vehicle or user equipment. Process 200 may be initiated by a device (e.g., device 105) detecting one or more downlink signals at block 201, such as LEO satellite downlink communications signals and transmissions. Downlink communication signals detected at block 201 may be from an unknown source, such that the receiving device may not be registered with a network of the source. By using a reference carrier frequency, such as the expected downlink carrier frequency of LEO satellites and minimum Doppler rate, one or more signals may be selected. Downlink signals detected at block 201 may be downlink communication signals transmitted with a periodic reference element, such as PSS in OFDMA-based and spreading codes in CDMA-based signals. Determined observables, such as carrier frequency and Doppler, and one or more known features of a transmitting source (e.g., base station position) may be used to determine pseudorange estimates having an accuracy that can support vehicle navigation. Downlink communications signals may be detected based on a baseband signal model. Although LEO satellite signals are discussed with respect to FIG. 2, it should be appreciated that the processes described herein may be applied to other signals of opportunity. [0071] At block 205, process 200 includes performing a generalized likelihood ratio (GLR) operation to estimate a Doppler frequency of a downlink communication signal and select at least one active downlink communication source. The generalized likelihood ratio may be used to detect the presence of multiple LEO satellite vehicles on the same channel and provide estimates of the number of active satellites. The generalized likelihood ratio operation includes estimating a number of active downlink communication signal sources. Generalized likelihood ratio operations can include performing matched subspace detection operations, wherein signal subspace is based on Doppler frequency of the at least one downlink communication signal. According to embodiments, a sequential detector is provided to determine initial estimates of detected signals, such as an estimate of Doppler frequency. Performing the generalized likelihood ratio operation includes selecting the at least one active downlink communication source based on power level of a received signal and nulling a previously detected source as interference. [0072] At block 210, process 200 includes tracking an estimate of Doppler frequency of the downlink communication signal. Tracking may be based on estimated Doppler and Doppler rate. Tracking may be performed for a signal over a plurality of time intervals. Tracking downlink communication signal Doppler may allow for comparison of received Doppler with that of a base (e.g., base 108) for differential detection. [0073] At block 215, process 200 includes determining a position estimate for a device (e.g., device 105). Position estimates may be determined for a device based on one or more of a determined Doppler, pseudorange and TLE files of satellite vehicles. A pseudorange estimate may be determined for the range (i.e., distance) between a receiver of the device and a source of the at least one downlink communications signal. According to embodiments, determining the pseudorange estimate includes using a determined carrier phase and wavelength for the downlink communication signal. The pseudorange estimate may be determined using fixed position of the base station transmitting the detected signal. [0074] According to embodiments, position estimates determined by process 200 may be based on a Doppler positioning model. Position estimates may be determined for a rover by differential Doppler positioning including use of a base receiver. The position estimate is determined based on resolving Doppler difference between a base receiver and the device. According to embodiments, determination of a position estimate at block 215 may be based on differential positioning to assess measurement errors for each satellite using a stationary surveyed reference antenna and broadcasted error corrections. Satellite errors removed by differential methods include clock calibration, ephemeris errors, ionospheric delays, and tropospheric delays. Theoretical and practical considerations of differential navigation methods have been studied in the navigation literature. In particular, studies focusing on LEO-based differential frameworks include: (i) joint GPS-LEO navigation (Rabinowitz, 2000), (ii) integrity monitoring of precise point positioning-realtime kinematic (PPP-RTK) positioning, (iii) LEO SVs flying in formation, (iv) ionospheric sensing, (v) single- differenced Doppler and angle of arrival (AoA), and (vi) differential carrier phase. [0075] At block 220, process 200 may optionally include outputting one or more of a control, observable, and/or navigation command based on pseudorange estimate determined at block 215. As such, position data and/or control outputs for navigation may be output based on pseudorange estimates. Process 200 may be employed for navigation of a vehicle. Based on a pseudorange estimate between a receiver of the device and a source of the at least one downlink communications signal, vehicle operation may be controlled using the pseudorange estimate. [0076] Process 200 and embodiments described herein provide a framework that exploits the LEO downlink communication signals. Process 200 may be implemented by a device, such as a receiver and/or controller to provide a more computationally efficient receiver, more accurate operations, and also allow for Doppler estimation in the presence of interference. [0077] FIG. 3 depicts a device configuration according to one or more embodiments. Device 300 may relate to a receiver or components of a device or vehicle configured to detect signals of opportunity such as LEO satellite downlink communication signals. According to one embodiment, device 300 includes controller 305, memory 310 and receiver 315. Device 300 may optionally include an output/navigation module 320. According to embodiments, device configuration 300 may be used by a device (e.g., device 105) such as a rover and/or a base (e.g., base 108). [0078] Controller 305 may relate to a processor or control device configured to execute one or more operations stored in memory 310, such as performing a generalized likelihood ratio (GLR) operation to estimate a Doppler frequency of a downlink communication signal and select at least one active downlink communication source. Optionally, the controller 305 can include any or all of the components of the computing device 2000 illustrated and described with reference to FIG. 20. Controller 305 may be coupled to memory 310 and receiver 315. Receiver 315 may be a communications module configured to detect one or more communication signals, such as LEO downlink communication signals. In certain embodiments, receiver 315 may be configured to include one or more software defined radio elements to acquire and track transmitted signals. Controller 305 may be configured to track the estimates of Doppler frequency of downlink communication signals for one or more intervals. Controller 305 may also be configured to determine position estimates for a device between a receiver of the device and a source of the at least one downlink communications signal. [0079] According to one embodiment, controller 305 may be configured to determine a position of device 300 based on one or more of Doppler estimates and differential positioning. Position determinations and/or observables may be used to output navigation commands or operate a device by way of optional output/navigation module 320. Device 300 may include one or more components for receiving and detecting communications signals such as experimental configurations described herein, including device configurations described in FIGs. 4A-4B. [0080] According to embodiments, processes and device configurations may be utilize a baseband signal model to detect and process LEO downlink communication signals. LEO downlink communication signals may be transmitted with a periodic references signal (RS), such as PSS in OFDMA-based signals and spreading codes in CDMA-based signals. Embodiments can utilize a model of LEO SV downlink signals an unknown periodic signal in the presence of interference and noise. If an RS, such as PSS in OFDMA-based signals, is being periodically transmitted, it will be detected and estimated by processes described herein. According to embodiments, a LEO downlink communications signal may be modeled as where is the received signal at the ^th time instant; ^ is the total number of LEO SVs; ( ) is the complex channel gain between the receiver and the th LEO SV; is the sample time expressed in the receiver time; represents the samples of the complex periodic RS with a period of samples; is the code-delay corresponding to the receiver and the th LEO SV at the ^th time instant; is the carrier phase in radians, where is the instantaneous Doppler frequency at the ^th time instant and is the sampling time; represents the complex samples of some data transmitted from the th LEO SV; and is a complex zero-mean independent and identically distributed noise with variance [0081] LEO SV signals suffer from very high Doppler shifts. Higher lengths of processing intervals require higher order Doppler models. In order for a Doppler estimation algorithm to provide an accurate estimation of the Doppler frequency, the processing interval should be large enough to accumulate enough energy. According to the considered processing interval length in experiments described herein, it is observed that during the k th processing interval, the instantaneous Doppler frequency is almost a linear function of time i.e., where is referred to as constant Doppler, is the Doppler rate at the th processing interval corresponding to the ^ th Starlink SV, and is the total number of processing intervals. According to embodiments, processes and device configurations may utilize a Doppler Frequency as a linear function of time. [0082] One or more determinations may be made during a coherent processing interval. The coherent processing interval (CPI) is defined as the time interval in which the channel gain Doppler and the Doppler rate , are all constant. Since it is assumed that the channel gain is constant during one CPI, it is assumed that the channel gain is a function of t he CPI index, where is in the th CPI. [0083] The received signal at the ^th time instant when the Doppler rate is wiped-off is denoted by One can define and the equivalent noise as [0084] Hence, the received signal at the nth time instant may be characterized as [0085] Due to the periodicity of the R has the following property where is the normalized Doppler at the ^ th CPI, corresponding to the th Starlik SV, and A vector of ^ observation samples corresponding to the ^ th period of the signal is formed as [0086] The kth CPI vector is constructed by concatenating M vectors of length L to form the [0087] Therefore, where ^ is an identity matrix, and is the equivalent noise vector. Embodiments may determine and/or estimate the normalized Doppler for one or more LEO Svs to determine position estimates. [0088] RECEIVER STRUCTURE [0089] According to embodiments, detection of LEO downlink communication signals may include operations for acquisition and operations for tracking downlink signals. Devices and processes for receiving signals may include performing one or more of the following operations. [0090] Acquisition by a device may include performing one or more matched subspace detection operations. According to embodiments, an acquisition stage is performed in the first CPI, Therefore, to simplify notation in the acquisition stage, the ^ index is dropped. At each stage of the acquisition, a test is performed to detect the most powerful LEO SV signal, while the subspace of the previously detected LEO SVs are nulled (see FIG. 1). The sequential matched subspace detection includes estimating the number of LEO SVs, the period of each RS, an initial estimate of normalized Doppler along with the Doppler rate, and the RSs, i.e., ^, ^,^ ^ ,^ ^ , and s ^ , respectively. Embodiments and the disclosure provide operations for nulling a previously detected sources at each stage and the connection to general linear detectors. In other words, the detection problem is formulated as a general linear detector in the presence of the interfering sources, and it will be shown that the resulting GLR involves nulling the subspace of previously detected sources at each stage. The following subsection, matched subspace detection is overviewed and the hypothesis test for detection of multiple LEO SVs is formulated. [0091] According to embodiments, a device (e.g., device 105, base 108, etc.) may be configured to perform one or more operations to identify LEO SVs and downlink signals that may be detected and tracked. Processes and devices may perform sequential matched subspace detection which can include nulling sources. FIG. 1 illustrates a plurality of sources and sources 110 2-n may be considered nulled sources. According to embodiments, the first step a sequential algorithm includes testing the presence of a single LEO SV. If a null hypothesis is accepted, then which means that no LEO SV is detected to be present in the environment under the test. If the test rejects the null hypothesis, the process verifies the presence of at least one source and performs the test to detect the presence of other LEO SVs in the presence of the previously detected LEO SVs. The unknown Doppler and the RS of each LEO SVs are estimated at each step. In general, if the null hypothesis at the ^ th level of the sequential algorithm is accepted, the algorithm is terminated and the estimated number of LEO SVs will be It should be noted that TLE files may be used to determine a nominal value for the Doppler rate of LEO SVs, which is the minimum possible Doppler rate for Starlink satellites or any other constellation of interest. Hence, at each step of the algorithm, if the Doppler rate, i.e., , of the detected source is less than , the detected source will be excluded from the acquired sources. [0092] In order to test the presence of s i , at the i th stage of the acquisition algorithm, the observation vector can be written as [0093] The following binary hypothesis test is used to detect the ^ th Starlink SV: [ 0094] For a given set of Doppler frequencies, Doppler rates, and period, i.e. where is the Hermitian transpose o denotes the projection matrix to the column space of and denotes the projection matrix onto the space orthogonal to the column space of X. [0095] A sequential matched subspace detector may be described as follows: [0096] DIFFERENTIAL POSITIONING WITH LEO SV SIGNALS [0097] According to embodiments, processes and device configurations are provided for differential Doppler positioning. Experimental results of differential Doppler positioning with signals from unknown LEO SVs (e.g., Starlink SVs) are described based on a framework, processes and device configurations according to embodiments. In the experiments, two baselines between the base and the rover are considered: a far baseline of around 1 km and a close baseline of around 9 m. An experimental setup is described and results from the acquisition and tracking stages of the LEO SV receivers are demonstrated. Receiver differential Doppler positioning results are also presented for both baselines. [0098] FIGs. 4A-4B illustrate a graphical representation of base and rover device components according to one or more embodiments. According to embodiments, device configurations and receivers may be configured for acquisition and tracking of LEO downlink communications signals. FIGs. 4A-4B illustrate graphical representations of experimental equipment for a base and rover for differential Doppler Starlink positioning. FIG. 4A illustrates base configuration 400 including downcoverter 401, clock 402 and software defined radio (e.g., receiver) 403. FIG. 4B illustrates rover configuration 405 including downcoverter 406, clock 407 and software defined radio (e.g., receiver) 408. To demonstrate the performance of embodiments, a stationary scenario is considered in which the base 400 is equipped with an Ettus E312 universal software radio peripheral (USRP) with a consumer-grade Ku antenna and low-noise block (LNB) downconverter to receive Starlink signals in the Ku band, and rover 405 is equipped with USRP 2974 with the same downconverter. An Octoclock may be used to synchronize between the clocks of the USRPs and the downconverters at base 400 and rover 405. The sampling rate was set to 2.5MHz, and the carrier frequency was set to 11.325GHz, which is one of the Starlink downlink frequencies. The samples of the received signals were stored for off-line post-processing. [0099] According to embodiments, devices and processes may operate using a differential Doppler Positioning framework. Pseudorange rate observables can be formed from the tracked Doppler frequencies. For the i th LEO SV, the pseudorange rate observable at time- time T, expressed in meters, is modeled a where is the speed of light; is the carrier frequency represents discrete-time at being the true time-of-flight of the signal from the th LEO SV to the receiver; and are the receiver's and th LEO SV 3-D position vectors; is the th LEO SV 3D velocity vector; is the Doppler ambiguity at the rover a re the clock drifts of receiver and th LEO SV, respectively Ǘ and Ǘ are the ionospheric and tropospheric delay rates, respectively; and is the measurement noise, which is modeled as a zero-mean, white Gaussian random sequence with variance . The value of is the first diagonal element of expressed in It is worth noting the introduction of the constant bias , due to the unknown Doppler frequency ambiguity , which was introduced since the exact carrier frequency is unknown. In what follows, the effect of time-of-flight in the LEO SV position is neglected, i.e., This approximation introduces an error in the LEO SV position which is approximately common between the base and the rover. It should also pointed out that the error introduced by this approximation is of the order of a few meters, which is negligible compared to the position error in the TLE files which can be as high as a few kilometers. LEO SVs' positions can be estimated through TLE files and orbit determination algorithms (e.g., SGP4). Assuming a first-order clock model for both the receiver and LEO SV, the clock drifts can be considered as constant. [00100] In differential Doppler positioning, in addition to the receiver whose position is to be estimated (denoted as the rover), embodiments include accessing Doppler measurements from the same LEO SV at another reference receiver (denoted as the base) whose position is known. Essentially, this framework includes a rover receiver (^) and a base receiver in an environment comprising ^ visible LEO SVs. The objective is to estimate the position of the rover receiver, given knowledge about the base's position and Doppler observables produced by the base on the same LEO SVs. Similarly, for the ^ th LEO SV, the pseudorange rate observable for the base at time-step ^, can be modeled as [00101] By subtracting the tracked Doppler frequencies measured at [00102] can be assumed that the difference between ionospheric and tropospheric delay rates at the base and rover are negligible, which is reasonable when the base and the rover are relatively close to each other (e.g., a few kilometers apart). The ambiguity at both the base and rover can be resolved by analyzing the Doppler profile for each SV. The variance of the measurement noise term [00103] Therefore, the final differential Doppler poisoning measurement model for the th LEO SV is obtained as [00104] In this framework, by increasing the number of LEO SVs, the number of unknowns remains constant, i.e., only the rover position vector and the difference between the base and rover clock drift, defined as should be estimated. It should be noted that the success of the differential Doppler positioning method is dependent on the capability of a receiver in resolving the Doppler difference between the base and rover [00105] Using a weighted nonlinear least squares (WNLS) estimator, one could estimate the vector Let ˜^ denote the vector of all pseudorange rate observables, and let denote the vector of all measurement noise, which is modeled as a zero-mean Gaussian random vector with a diagonal covariance R(^) whose diagonal elements are given by Subsequently, one can readily write the measurement equation where is a vectorvalued function that maps the vector ^ to the pseudorange rate observables. An iterative WNLS estimator with weight matrix yields an estimate of denoted b [00106] Acquisition Tracking and Positioning Results [00107] To evaluate the performance of the proposed differential Doppler positioning f ramework, two baselines between the base and rover are considered, namely 1.004 km and 8 .65 m. The ground truth with which the position estimate was compared was taken from the navigation solution produced by the USRP's on-board GPS receiver. Results are described with experimental Case 1 and Case 2. [00108] Experimental Case 1: Base-Rover Baseline of 1.004 km: Over the course of the experiment, the receivers on-board the base and the rover were listening to three Starlink LEO SVs, namely Starlink 44740,48295 , and 47728 . The satellites were visible for 320 seconds. [00109] FIG. 5 illustrates a graphical representation of satellite trajectories 500 for case 1 and downlink communication signals from the three Starlink LEO SVs. FIG. 5 demonstrates the likelihood in terms of Doppler frequency and period for Starlink downlink signals, shown as 501, 502, and 503. The CPI is considered to be 200 times the period. As can be seen in FIG.5, three Starlink LEO SVs were detected in the acquisition stage. The acquisition stage provides an initial value for the Doppler and the period of the downlink Starlink signals. The estimated Doppler and the Doppler rate were used in the tracking algorithm. [00110] FIG. 6 illustrates a graphical representation of Doppler tracking of downlink communication signals according to one or more embodiments. FIG. 6 illustrates Doppler shift over a period of time for three Starlink LEO SVs at the base and the rover compared with the TLE-based calculated Doppler. In the Doppler tracking results, three Starlink LEO [00111] FIG. 7 illustrates a graphical representation of measured and predicted Doppler differences according to one or more embodiments. Measured Doppler difference between the base and the rover are shown compared to predicted Doppler difference between WKH^EDVH^DQG^WKH^URYHU^EDVHG^RQ^7/(^6*3^^FDOFXODWLRQV for the three LEO SVs. The spike in the estimated differential Doppler is due to channel outage and burst error, which is common in satellite communications [00112] In the experiment for case 1, a rover's initial position estimate was set to be approximately 200 km away from the base. The rover's position was estimated via the differential Doppler positioning framework. FIG. 8 illustrates a graphical representation of residual error, an d in particular iterative WNLS algorithm residual error for a plurality of iterations. As shown in FIG. 8, after six iterations, the stopping criterion of the iterative WNLS algorithm was achieved. The 3-D position error was found to be 33.4 m. Upon equipping the receiver with an altimeter (to measure its altitude), the position error reduced to 5.6 m. [00113] FIG. 9 illustrates a graphical representation of position estimates and provides a summary of position results. Graphical representations are provided for a rover's initial position estimate 900, Base and rover position 905, and rover true and estimated position 910. [00114] Experimental Case 2: Base-Rover Baseline of 8.65 m: Similar to the previous case, over the course of this experiment, the receivers on-board the base and the rover were listening to three Starlink LEO SVs, namely Starlink 48466, 48295, and 45582. In the experiment, the satellites were visible for 600 seconds. The three Starlink LEO SVs were detected in the acquisition stage, when the CPI was set to be 200 times the period. The acquisition results were similar to those shown in FIG. 5 for Case 1. FIG. 10 illustrates a graphical representation of Doppler tracking results. It can be seen that three Starlink LEO illustrates a graphical representation of measured Doppler differences according to one or more embodiments. In FIG. 11, measured differential Doppler is shown for the three LEO SVs. It can be seen in FIG. 11 that the measured Doppler difference follows closely the [00115] In the experiment of Case 2, a rover's initial position estimate was set to be approximately 12 km away from the base. The rover's position was estimated through the differential Doppler positioning framework described in Section V-B. Fig. FIG. 12 illustrates a graphical representation of residual error including iterative WNLS algorithm residual error over time. In FIG. 12, after four iterations, the stopping criterion of the iterative WNLS algorithm was achieved. The 3-D position error was found to be 2.63 m. Upon equipping the receiver with an altimeter (to measure its altitude), the 2-D position error reduced to 2.56 m. FIG. 13 illustrates a graphical representation of position estimates including a Rover's initial position estimate 1305, Starlink LEO SVs' trajectories 1310, and base position and rover true and estimated position 1315. [00116] For the experimental results, a device configured as the rover included a small consumer-grade GPS antenna to discipline the onboard oscillator. The receivers were tuned to a 137MHz carrier frequency with 2.4MHz sampling bandwidth, which covers the 137-138 MHz band allocated to Orbcomm SVs. Samples of the received signals were stored for off- line postprocessing. The LEO Doppler measurements were produced at a rate of 4.8kHz and were downsampled to 10 Hz. For purposes of the experiment and evaluation, the base's position was surveyed on Google Earth, and the UAV trajectory was taken from its on-board navigation system, which uses GNSS SVs (GPS and GLONASS), an inertial measurement unit (IMU), and other sensors. The hovering horizontal precision of the UAV is reported by DJI to be 1.5 m. The experimental setup is shown in FIG. 12. The rover/UAV traversed a total trajectory of 782 m. [00117] Differential Doppler Navigation Framework [00118] According to embodiments, a base and rover are used for differential Doppler navigation. By way of example, over the course of an experiment, the receivers on-board the difference between the base and rover. A white noise acceleration model was used for the UAV's dynamics, and a standard double integrator driven by process noise was used to model the clock bias and drift dynamics. As such, the discrete-time dynamics model of is given by and ^ is the time interval between two measurements and ^ is the process noise, which is m odeled as a zero-mean white random sequence with covariance matrix where ^ denotes the Kronecker product, the , , acceleration process noise spectra of the white noise acceleration model were set to the time interval between two measurements was and the receiver's clock process noise spectra were chosen to be which is that of a typical temperature compensated crystal oscillator (TCXO). Note that ^ ^ is expressed in an ENU frame centered at the UAV's true initial position. A prior for the UAV position and velocity was obtained from the UAV's on-board navigation system. The prior was used to initialize the EKF. The initial covariance matrix was set to The measurement noise covariance was set to [00119] FIG. 14 illustrates a graphical representation of an experimental setup according to one or more embodiments. The experimental setup in FIG. 14 includes a rover 1405 and a base 1410. To demonstrate the differential LEO framework with Orbcomm satellites, the rover 1405 was a DJI Matrice 600 UAV equipped with an Ettus E312 USRP, a high-end VHF antenna, and a small consumer-grade GPS antenna to discipline the onboard oscillator. The base 1410 was a stationary receiver equipped with an Ettus E312 USRP, a custom-made VHF antenna, and a small consumer-grade GPS antenna to discipline the onboard oscillator. The receivers were tuned to a 137 MHz carrier frequency with 2.4 MHz sampling bandwidth, which covers the 137–138 MHz band allocated to Orbcomm SVs. Samples of the received signals were stored for off-line postprocessing. The LEO Doppler measurements were produced at a rate of 4.8 kHz and were downsampled to 10 Hz. [00120] Unlike OFDMA and CDMA-based signals where the signal power per degree of freedom is small, in classic modulation schemes, e.g., phase shift keying (PSK), a relatively larger power is dedicated to each degree of freedom. In other words, the allocated signal power per each time/frequency unit is relatively higher than spread spectrum techniques. The Orbcomm constellation utilizes the classic symmetric differential phase shift keying (SDPSK) as the modulation scheme for the downlink signals. SDPSK is defined by a "zero" data state causing to increase the effective power of the periodic beacon in the Orbcomm constellation, the observation samples are raised to a power-of-two, which turns the SDPSK modulated signal into a fixed sequence of binary samples, which is considered as the RS for the proposed receiver. [00121] FIG. 15 illustrates a graphical representation of a likelihood function and Doppler frequency according to one or more embodiments. In FIG. 15, a likelihood determination is demonstrated in terms of Doppler frequency and the period of the RS for Orbcomm downlink signals. The CPI was set to be 100 times the period. As can be seen from FIG. 15, the period of the Orbcomm LEO SV RS is estimated to be 1 ms. With respect to an acquisition phase, the likelihood function versus Doppler frequency and the period at Orbcomm downlink signal function versus Doppler frequency at two time instant . Three different sources are detected with Doppler rate The third source does not correspond to a LEO satellite; hence, it is excluded from the set of detected sources. Therefore, the number of detected LEO SVs is two. [00122] FIG. 16 illustrates a graphical representation a likelihood function and Doppler frequency according to one or more embodiments. As shown in FIG. 16, three sources are detected with The vertical lines are plotted to specify the location of the detected sources in the frequency domain based on curve 1610 . The dashed curve 1605 is plotted to show that the Doppler frequency of the detected LEO satellites change in time according to the corresponding Doppler frequency rates. [00123] FIGs. 17 and 18 illustrate a graphical representation a likelihood function and Doppler frequency for two different satellite vehicles according to one or more embodiments. FIG. 17 and FIG. 18 show the estimated differential Doppler tracking results and the differential Doppler from the TLE files for the two detected Orbcomm satellites. As can be seen in FIGs. 17 and 18, a UAV navigation solution is provided that is rather accurate, considering that only 2SVs where used without other sensors. [00124] FIG. 19 illustrates a graphical representation of UAV trajectory and estimated trajectory according to embodiments. In FIG. 19, trajectories of the 2 Orbcomm LEO SVS are shown as 1905. Experimental results showing a UAV navigating for 782 m with 2 Orbcomm LEO satellite signals using the proposed framework are shown in 1910. As shown in FIG. 19, true UAV trajectory and the estimated trajectory achieved with the proposed differential navigation framework. The 3-D position RMSE along the 782 m trajectory was Orbcomm LEO SV states. Despite the LEO SV position estimates suffering from errors on the order of kilometers, the measured Doppler difference between the base and the rover calculations for FM 108. [00125] Referring to FIG. 20, an example computing device 2000 upon which the methods described herein may be implemented is illustrated. It should be understood that the example computing device 2000 is only one example of a suitable computing environment upon which the methods described herein may be implemented. Optionally, the computing device 2000 can be a well-known computing system including, but not limited to, personal computers, servers, handheld or laptop devices, multiprocessor systems, microprocessor- based systems, network personal computers (PCs), minicomputers, mainframe computers, embedded systems, and/or distributed computing environments including a plurality of any of the above systems or devices. Distributed computing environments enable remote computing devices, which are connected to a communication network or other data transmission medium, to perform various tasks. In the distributed computing environment, the program modules, applications, and other data may be stored on local and/or remote computer storage media. [00126] In its most basic configuration, computing device 2000 typically includes at least one processing unit 2006 and system memory 2004. Depending on the exact configuration and type of computing device, system memory 2004 may be volatile (such as random access memory (RAM)), non-volatile (such as read-only memory (ROM), flash memory, etc.), or some combination of the two. This most basic configuration is illustrated in FIG. 20 by dashed line 2002. The processing unit 2006 may be a standard programmable processor that performs arithmetic and logic operations necessary for operation of the computing device 2000. The computing device 2000 may also include a bus or other communication mechanism for communicating information among various components of the computing device 2000. [00127] Computing device 2000 may have additional features/functionality. For example, computing device 2000 may include additional storage such as removable storage 2008 and non-removable storage 2010 including, but not limited to, magnetic or optical disks or tapes. Computing device 2000 may also contain network connection(s) 2016 that allow the device to communicate with other devices. Computing device 2000 may also have input device(s) 2014 such as a keyboard mouse touch screen etc Output device(s) 2012 such as a display, speakers, printer, etc. may also be included. The additional devices may be connected to the bus in order to facilitate communication of data among the components of the computing device 2000. All these devices are well known in the art and need not be discussed at length here. [00128] The processing unit 2006 may be configured to execute program code encoded in tangible, computer-readable media. Tangible, computer-readable media refers to any media that is capable of providing data that causes the computing device 2000 (i.e., a machine) to operate in a particular fashion. Various computer-readable media may be utilized to provide instructions to the processing unit 2006 for execution. Example tangible, computer-readable media may include, but is not limited to, volatile media, non-volatile media, removable media and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. System memory 2004, removable storage 2008, and non- removable storage 2010 are all examples of tangible, computer storage media. Example tangible, computer-readable recording media include, but are not limited to, an integrated circuit (e.g., field-programmable gate array or application-specific IC), a hard disk, an optical disk, a magneto-optical disk, a floppy disk, a magnetic tape, a holographic storage medium, a solid-state device, RAM, ROM, electrically erasable program read-only memory (EEPROM), flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices. [00129] In an example implementation, the processing unit 2006 may execute program code stored in the system memory 2004. For example, the bus may carry data to the system memory 2004, from which the processing unit 2006 receives and executes instructions. The data received by the system memory 2004 may optionally be stored on the removable storage 2008 or the non-removable storage 2010 before or after execution by the processing unit 2006. [00130] It should be understood that the various techniques described herein may be implemented in connection with hardware or software or, where appropriate, with a combination thereof. Thus, the methods and apparatuses of the presently disclosed subject matter, or certain aspects or portions thereof, may take the form of program code (i.e., instructions) embodied in tangible media, such as floppy diskettes, CD-ROMs, hard drives, or any other machine readable storage medium wherein when the program code is loaded into and executed by a machine, such as a computing device, the machine becomes an apparatus for practicing the presently disclosed subject matter. In the case of program code execution on programmable computers, the computing device generally includes a processor, a storage medium readable by the processor (including volatile and non-volatile memory and/or storage elements), at least one input device, and at least one output device. One or more programs may implement or utilize the processes described in connection with the presently disclosed subject matter, e.g., through the use of an application programming interface (API), reusable controls, or the like. Such programs may be implemented in a high level procedural or object-oriented programming language to communicate with a computer system. However, the program(s) can be implemented in assembly or machine language, if desired. In any case, the language may be a compiled or interpreted language and it may be combined with hardware implementations. [00131] While this disclosure has been particularly shown and described with references to exemplary embodiments thereof, it will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the scope of the claimed embodiments.