Method, system, and computer program product for GNSS receiver signal health and security analysis

Methods, systems, and computer program products are provided for analyzing a Global Navigation Satellite System (GNSS) receiver. The method includes receiving electronic diagnostic information from the GNSS receiver, the diagnostic information including observations at different times of signal strength of one or more satellites at each point in a visible sky. The method includes building a flat map of the visible sky including a track of the one or more satellites. The method includes calculating, for each point in the visible sky of the flat map, an aggregated signal strength of the one or more satellites over a predetermined interval. The method includes generating a heat map over the flat map of the visible sky and displaying a visualization of a flat heat map.

TECHNICAL FIELD

Aspects of this disclosure relate to the monitoring and analysis of the health and security of Global Navigation Satellite System (GNSS) receivers.

BACKGROUND

Global Navigation Satellite System (GNSS) receivers are electronic devices that receive and digitally process signals transmitted by satellites to, for example, estimate time and position data. Stationary receivers are primarily used to obtain precise time while mobile receivers often also calculate geospatial location of the receiver. Data produced by these receivers is often of critical importance in business operations, logistics, navigation, robotics, and other applications.

However, signals from GNSS, such as from the United States Global Positioning System (GPS), may be weak and can be blocked or compromised accidently or on purpose. For example, adding a new GPS antenna to a rooftop over a data center could produce interference that would partially or even completely interfere with operation of other antennas. Injection of false information into the satellite signal is also a danger. Researchers have demonstrated that it is possible to receive and then retransmit modified GPS signals in order to change the time or position information on a GPS receiver.

GNSS satellites may transmit messages encoding time and orbital information that receivers may digitally receive and process in order to calculate receiver position and precise time. In view of the fragility of these receivers and the critical nature of their operation, some methods have been proposed to monitor and detect problems.

Heat maps and azimuth or elevation maps may be used to depict which satellites are visible at a given instance in time using “current state” data. For example,FIG. 1depicts an azimuth/elevation chart of GPS satellite positions.

FIG. 1is a typical flat satellite azimuth/elevation map. It gives “current state” data about which satellites are currently visible or have been visible over some period of data collection. An azimuth/elevation map may depict the four cardinal directions (e.g., North “N,” South “S,” East “E,” West “W”) with circles at different coordinates in the map that indicate the positions of one or more satellites in a visible sky. However, the current state information in the map ofFIG. 1may be only of limited use because it does not show any information about satellite obstructions, only the current state of visible satellites.

FIG. 2depicts a heat map for visualizing satellite signal strength. A heat map may refer generally to any graphical representation of data where the individual values contained in a matrix may be represented as colors or by grayscale. InFIG. 2, the regions marked by lines spaced farther apart may indicate, for example, a higher satellite signal strength, whereas the regions marked by lines spaced closer together or cross hatched may indicate, for example, a lower satellite signal strength.FIG. 2depicts a heat map for visualizing signal strength that is overlaid over a geophysical map. Various techniques for collecting current state signal strength data and building a heat-map correlated to a geophysical map are known to those skilled in the art, as shown inFIG. 2.

FIG. 2is from an existing open source radio project that takes data that is output from a Register-transfer level chipset (e.g., RTL2832U) Software Defined Radio (RTL-SDR) Scanner (e.g., a program that collects signal strength data over any desired bandwidth) and at the same time records GPS coordinates using an external GPS receiver. See “Creating a Signal Strength Heatmap with an RTL-SDR,” available at http://www.rtl-sdr.com/creating-signal-strength-heatmap-rtl-sdr/ (Sep. 25, 2014), and “GSM heatmap using RTL-SDR” comments, available at http://www.reddit.com/r/RTLSDR/comments/2hbjyt/gsm_heatmap_using_rtlsdr/ (Sep. 24, 2014). Additionally, a paper in Science Reports, Xingxing Li et al., “Precise positioning with current multi-constellation Global Navigation Satellite Systems: GPS, GLONASS, Galileo and BeiDou Scientific Reports 5, Article number: 8328 doi:10.1038/srep08328 (Feb. 9, 2015), available at http://www.nature.com/srep/2015/150209/srep08328/full/srep08328.html (“Li”), which is hereby incorporated herein by reference in its entirety, describes some standard data collection and analysis methods applied to GPS systems.

FIG. 3depicts a time series of GPS satellite positions, taken from Li.FIGS. 4A and 4Bdepict a signal-to-noise ratio of different satellite systems and orbital types at the GMSD station (Japan), taken from Li.FIGS. 3 and 4A-B depict both the satellite tracks of visible satellites and the signal strength information being collected over time. However, since each point may correspond to signals from multiple satellites with configurations changing over time, there is no straightforward or optimal way to see whether there are obstructions from this data or to detect spoofing that could change signal strength over some spatial region.

SUMMARY

Accordingly, there exists a need in the art to correlate the satellite tracks of visible satellites and the signal strength information being collected over time in order to develop a flat map showing signal strength at points in the sky. Exemplary embodiments disclosed herein use a novel combination of data analysis techniques to provide robust and actionable signal health and security analysis of GNSS receivers. In exemplary embodiments, two or more levels of combined time series data may be used to replace the simple “current state” data in existing GNSS monitoring systems, and the time series data may then be used to provide diagnostics.

Diagnostic information can be retrieved from most receivers, and the diagnostic information may contain, for each visible satellite, the time, position (altitude and azimuth) and signal strength of the last or some number of recent messages digitally received at the receiver from the visible satellites.

According to one aspect, a computer-implemented method for analyzing a Global Navigation Satellite System (GNSS) receiver is provided. The method includes the steps of: receiving, by the computer, electronic diagnostic information from the GNSS receiver, the diagnostic information including a plurality of observations at different times of signal strength of one or more satellites at each point in a visible sky; building, by the computer, a flat map of the visible sky using the received diagnostic information, wherein the flat map includes a track of the one or more satellites; calculating, by the computer, for each point in the visible sky of the flat map, an aggregated signal strength of the one or more satellites over a predetermined interval using the received diagnostic information; generating, by the computer, a heat map over the flat map of the visible sky and the calculated aggregated signal strengths; displaying, by the computer, a visualization of a flat heat map on a graphical user interface of a display device, the flat heat map including the generated heat map over the flat map of the visible sky; and, storing, by the computer, the diagnostic information and the flat heat map in an observation database.

In some embodiments, the method further includes: analyzing, by the computer, the aggregated signal strengths of the one or more satellites in the flat heat map to detect one or more problems with the GNSS receiver; and, generating, by the computer, an alert if the one or more problems are detected in the flat heat map.

In further embodiments, the method includes: determining, by the computer, whether one or more conditions are present in the flat heat map, the conditions including: the clear signal areas in the flat heat map are too small; there are significant occlusions in the flat heat map; there are strong signals coming from areas where satellite signals would be unlikely or impossible in the flat heat map; and there are areas of signal strength in the flat heat map that are too uniform.

In other embodiments, the method includes: generating, by the computer, a time series of a plurality of flat heat maps, the plurality of flat heat maps including the generated flat heat map and one or more stored heat maps in the observation database; analyzing, by the computer, the time series of flat heat maps to detect one or more problems with the GNSS receiver; and generating, by the computer, an alert if the one or more problems are detected in the time series of flat heat maps.

In further embodiments, the method includes determining, by the computer, whether one or more conditions are present in the time series of flat heat maps, the conditions including: the time series of heat maps indicates a sudden increase or decrease in region signal strength, there are new or removed blocked regions in the time series of flat heat maps, and a plurality of areas of signal strength change by a uniform amount in the time series of flat heat maps.

In other embodiments, the method includes: associating, by the computer, the points in the visible sky of the flat heat map with a geophysical mapping database and, displaying, by the computer, the visualization of the flat heat map overlaid on a geophysical mapping database on the display device.

In further embodiments, the method includes: validating, by the computer, a quality of one or more radio signals from one or more GNSS satellites based on the diagnostic information and the flat heat map; and, detecting, by the computer, a problem with the one or more radio signals based on the validating. In some embodiments, the method includes triggering, by the computer, a failover operation in response to detecting a problem with the one or more radio signals. In some embodiments, the failover operation is one or more of: switching from a stream from the one or more GNSS satellites to an alternative GNSS satellite stream, validating a safety system, and replacing positioning, time, or a combination of positioning and time information from the one or more GNSS satellites with synthetic information.

In another aspect, a system for analyzing a Global Navigation Satellite System (GNSS) receiver is provided. The system includes an observation database in electronic communication with a network, a GNSS receiver analysis computer including a processor, a data storage unit, a network interface, and a display device in electronic communication with the network. The processor is configured to cause the server to perform the following steps: receive, over the network, electronic diagnostic information from the GNSS receiver, the diagnostic information including a plurality of observations at different times of signal strength of one or more satellites at each point in a visible sky; build a flat map of the visible sky using the received diagnostic information, wherein the flat map includes a track of the one or more satellites; calculate, for each point in the visible sky, an aggregated signal strength of the one or more satellites over a predetermined interval using the received diagnostic information; generate a heat map over the flat map of the visible sky and the calculated aggregated signal strengths; display a visualization of a flat heat map on a graphical user interface of the display device, the flat heat map including the generated heat map over the flat map of the visible sky; and store the diagnostic information and the flat heat map in the observation database.

In some embodiments, the processor is configured to cause the server to perform the additional steps of: analyze the aggregated signal strengths of the one or more satellites in the flat heat map to detect one or more problems with the GNSS receiver; and generate an alert if the one or more problems are detected in the flat heat map.

In further embodiments, the analyzing includes: determine whether one or more conditions are present in the flat heat map, the conditions including: the clear signal areas in the flat heat map are too small; there are significant occlusions in the flat heat map; there are strong signals coming from areas where satellite signals would be unlikely or impossible in the flat heat map, and there are areas of signal strength in the flat heat map that are too uniform.

In other embodiments, the processor is configured to cause the server to perform the additional steps of: generate a time series of a plurality of flat heat maps, the plurality of flat heat maps including the generated flat heat map and one or more stored flat heat maps in the observation database; analyze the time series of flat heat maps to detect one or more problems with the GNSS receiver; and generate an alert if the one or more problems are detected in the time series of flat heat maps.

In further embodiments, the processor is configured to cause the server to perform the additional step of: determine whether one or more conditions are present in the time series of flat heat maps, the conditions including: the time series of flat heat maps indicates a sudden increase or decrease in region signal strength, there are new or removed blocked regions in the time series of flat heat maps, and a plurality of areas of signal strength change by a uniform amount in the time series of flat heat maps.

In yet other embodiments, the processor is configured to cause the server to perform the additional steps of: associate the points in the visible sky of the flat heat map with a geophysical mapping database; and display, by the computer, the visualization of the flat heat map overlaid on a geophysical mapping database on the display device.

According to another aspect, a non-transitory computer readable medium storing computer readable program code executable by a processor of a computer system for analyzing a Global Navigation Satellite System (GNSS) receiver is provided. The computer readable program code executable by the processor causing the computer system to perform the steps of: receive electronic diagnostic information from the GNSS receiver, the diagnostic information including a plurality of observations at different times of signal strength of one or more satellites at each point in a visible sky; build a flat map of the visible sky using the received diagnostic information, wherein the flat map includes a track of the one or more satellites; calculate, for each point in the visible sky, an aggregated signal strength of the one or more satellites over a predetermined interval using the received diagnostic information; generate a heat map over the flat map of the visible sky and the calculated aggregated signal strengths; display a visualization of a flat heat map on a graphical user interface of a display device of the computer system, the flat heat map including the generated heat map over the flat map of the visible sky; and store the diagnostic information and the flat heat map in an observation database.

In some embodiments, the non-transitory computer readable medium causes the computer system to perform the steps of: analyze the aggregated signal strengths of the one or more satellites in the flat heat map to detect one or more problems with the GNSS receiver; and, generate an alert if the one or more problems are detected in the flat heat map.

In a further embodiment, the non-transitory computer readable medium causes the computer system to perform the steps of: determine whether one or more conditions are present in the flat heat map, the conditions including: the clear signal areas in the flat heat map are too small; there are significant occlusions in the flat heat map; there are strong signals coming from areas where satellite signals would be unlikely or impossible in the flat heat map; and there are areas of signal strength in the flat heat map that are too uniform.

In other embodiments, the non-transitory computer readable medium causes the computer system to perform the steps of: generate a time series of a plurality of flat heat maps, the plurality of flat heat maps including the generated flat heat map and one or more stored heat maps in the observation database; analyze the time series of flat heat maps to detect one or more problems with the GNSS receiver; and generate an alert if the one or more problems are detected in the time series of flat heat maps.

In a further embodiment, the non-transitory computer readable medium causes the computer system to perform the steps of: determine whether one or more conditions are present in the time series of flat heat maps, the conditions including: the time series of heat maps indicates a sudden increase or decrease in region signal strength, there are new or removed blocked regions in the time series of flat heat maps, and a plurality of areas of signal strength change by a uniform amount in the time series of flat heat maps.

In an additional embodiment, the non-transitory computer readable medium causes the computer system to perform the steps of: associate the points in the visible sky of the flat heat map with a geophysical mapping database and, display the visualization of the flat heat map overlaid on a geophysical mapping database on the display device.

In another aspect, a computer-implemented method for improving the reliability of a computer that performs time sensitive or time stamped data processing is provided. The method includes: receiving, by the computer, electronic diagnostic information from a Global Navigation Satellite System (GNSS) receiver, said diagnostic information including a plurality of observations at different times of signal strength of one or more satellites at each point in a visible sky; building, by the computer, a flat map of the visible sky using the received diagnostic information, wherein the flat map includes a track of the one or more satellites; calculating, by the computer, for each point in the visible sky of the flat map, an aggregated signal strength of the one or more satellites over a predetermined interval using the received diagnostic information; generating, by the computer, a heat map over the flat map of the visible sky and the calculated aggregated signal strengths; validating, by the computer, a quality of one or more radio signals from one or more GNSS satellites based on the diagnostic information and the flat heat map; and, synchronizing, by the computer, one or more system clocks to reference time carried by the one or more GNSS satellites based on the validating.

In some embodiments, the one or more system clocks are implemented on a network clock device that provides reference time to one or more client or slave computers over a computer network.

In another aspect, a computer-implemented method for improving the reliability of a system that distributes reference time information over a computer network is provided. The method includes: receiving, by the system, electronic diagnostic information from a Global Navigation Satellite System (GNSS) receiver, said diagnostic information including a plurality of observations at different times of signal strength of one or more satellites at each point in a visible sky; building, by the system, a flat map of the visible sky using the received diagnostic information, wherein the flat map includes a track of the one or more satellites; calculating, by the system, for each point in the visible sky of the flat map, an aggregated signal strength of the one or more satellites over a predetermined interval using the received diagnostic information; generating, by the system, a heat map over the flat map of the visible sky and the calculated aggregated signal strengths; transmitting, by the system, the flat heat map, the diagnostic information, or a combination of the flat heat map and the diagnostic information, over the network to one or more networked computers to permit the networked computers to determine whether the system is receiving reference time carried by one or more GNSS satellites in a reliable manner.

In another aspect, a computer-implemented method for validating and monitoring the performance of one or more Global Navigation Satellite System (GNSS) receivers is provided. The method includes: receiving, by a computer, electronic diagnostic information, said diagnostic information including a plurality of observations at different times of signal strength of one or more satellites at each point in a visible sky; receiving, by the computer, a flat heat map, wherein the flat heat map is based on the electronic diagnostic information and comprises: a combination of a heat map of aggregate signal strength of the one or more satellites over a predetermined interval, and a flat map of one or more tracks of the one or more satellites; and, validating, by the computer, a quality of reference time data carried by one or more radio signals from one or more GNSS satellites based on the diagnostic information and the flat heat map.

DETAILED DESCRIPTION

FIG. 5depicts a schematic diagram of a GNSS receiver analysis system. As shown inFIG. 5, one or more GNSS receivers120a-nmay process signals broadcasted by one or more satellites130a-nfrom space. In some embodiments, satellites130a-nmay comprise one or more global navigation satellite systems, such as, for example, NAVSTAR Global Positioning System (GPS), Galileo, BeiDou, and GLObal Navigation Satellite System (“GLONASS”). Since the satellites130a-nare constantly in motion, the GNSS receiver120may continuously acquire and track the signals from the satellites130a-n. For example, several GNSS systems (satellites130and receivers120) may use Code Division Multiple Access (CDMA) or Frequency Division Multiple Access (FDMA) technology known in the art to transmit and process several satellite signals.

The GNSS receiver120may comprise an antenna system for receiving and digitizing signals from satellites130a-nand a digital system for processing the received digital signals. In some embodiments, the digital system of GNSS receiver120may comprise a processor configured to convert the received signals from satellites130a-ninto position, velocity, and time estimates. Available techniques for converting such information are known to those skilled in the art. The GNSS receiver120may further comprise a non-transitory data storage unit for recording observation data associated with received signals from satellites130a-n. For example, in response to receiving and processing a signal from a satellite130a, the GNSS receiver120may store, in the data storage unit, observation data that includes the identity of the satellite130a, the strength of the signal received from the satellite130a, and the time, position, and velocity estimates.

The GNSS receiver's120position, velocity, and time estimates may be affected by noise and errors with the signals from satellites130a-ndue to, for example, the propagation of signals through atmospheric layers and noise measurements. The digital system of the GNSS receiver120may measure the signal strength of the different satellites130a-nit is tracking, for example, by calculating the signal to noise ratio (SNR) or the carrier to noise ratio (CNR or C/N) of a received signal.

A GNSS Receiver Analysis System100may periodically query the GNSS receiver120for diagnostic information. The diagnostic information may comprise output messages from the GNSS receiver120, the output messages comprising the observation data of satellites130a-n, including the time, position, velocity, and signal strength estimates. For example, the diagnostic information may be retrieved using one or more serial ports of a GNSS receiver. In some embodiments, the diagnostic information may comprise, for example, standard messages, according to, for example, the National Marine Electronics Association (“NMEA”) standards (e.g., NMEA-0183). NMEA format messages may comprise the position, velocity, and time information computed by GNSS receiver120, as well as position, number of satellites in view, elevation, azimuth, etc. In embodiments where the GNSS receiver120is connected to a network140, such as a cellular network or Internet network, the GNSS receiver analysis system may query the GNSS receiver120over the network140for diagnostic information. In some embodiments, diagnostic information from GNSS receiver120may be transmitted wirelessly over network140, or via a cable, such as an Ethernet cable. In other embodiments where the GNSS receiver120is not connected to a network140, the GNSS receiver120may be in electronic communication with GNSS receiver analysis system100through a direct hardwire connection via a serial port on the GNSS receiver120.

In some embodiments, GNSS receiver analysis system100may further comprise an observation database105for storing diagnostic information or output messages queried from GNSS receiver120. In some embodiments, observation database105may be in the same housing as GNSS receiver analysis system100, and in other embodiments, observation database105may be in separate housing from the GNSS receiver analysis system100and may be in electronic communication with the GNSS receiver analysis system100through a hardwire connection, a local wireless connection, or via network140.

FIG. 6depicts a flow diagram of a method for generating a flat map and heat map of satellite signal strength, according to some embodiments. In preferred embodiments, method600is performed by GNSS receiver analysis system100.

At step601, the GNSS receiver analysis system100may periodically query the GNSS receiver120for diagnostic information. The diagnostic information may comprise, for example, output messages from the GNSS receiver120, including observation data of one or more satellites130a-n, such as signal strength and estimated time and position data.

At step602, the GNSS receiver analysis system100may add the new diagnostic information to observation database105.

At step603, the GNSS receiver analysis system100determines if there is enough data in the observation database105to generate a sky survey, or flat heat map. In some embodiments, the GNSS receiver analysis system100may determine there is enough data if observation data over a pre-determined time interval is present in the observation database105. In some embodiments, the pre-determined time interval may be very short, such as a few minutes, and in other embodiments, the pre-determined time interval may span several hours, days, weeks, or months. As described in detail below, the time interval may be determined based on the desired analysis of the diagnostic information. If there is insufficient data for a sky survey, as determined in step603, then the GNSS receiver analysis system100will return to step601to query and process diagnostic information from the GNSS receiver120.

If there is sufficient data for a sky survey, as determined in step603, then the GNSS receiver generates and outputs a flat heat map of the satellite observations over an interval of time in step604. The flat map and heat map is generated based on a plurality of GNSS receiver messages, or diagnostic information, stored in observation database105.

FIG. 7depicts a flat map showing satellite tracks and a heat map of satellite signal strength, according to some embodiments. In preferred embodiments, the flat map and heat map700ofFIG. 7may be generated by the GNSS receiver analysis system100using a plurality of GNSS receiver100messages, or diagnostic information, stored in observation database105. The flat map700depicts portions of the visible sky, and may include, for example, the satellite tracks705of one or more satellites130a-ntracked by GNSS receiver120across the visible sky over a predetermined time interval.

The flat map700further depicts a heat map indicating average signal strength of the one or more satellites130a-nover the predetermined time interval. For ease of reference,FIG. 7includes a heat map legend750indicating average signal strength (dB Hz) over a predetermined interval. As depicted in the heat map legend750, areas in the heat map700of the visible sky with weaker signal strength (e.g., 35 dB Hz) are indicated by a darker color (e.g., black), whereas areas in the heat map700of the visible with stronger signal strength (e.g., 44 dB Hz) are indicated by a different or lighter color (e.g., gray). In some embodiments, the GNSS receiver analysis system100may perform a statistical aggregation technique (for example, averaging) to calculate an aggregate signal strength of one or more satellites'130a-nsignals over a pre-determined time interval using the plurality of GNSS receiver messages, or diagnostic information, stored in the observation database105.

The heat map700may identify signal strength in regions of the sky and may further be used to diagnose obstructions, interference, and other issues, as described below. As shown inFIG. 7, the GNSS receiver analysis system100may generate images of the heat/flat maps for display in a graphical user interface of a display device and store these images in observation database105. In preferred embodiments, the flat map700includes time series data from repeated queries of GNSS receiver120diagnostic information so that the flat map700shows the paths or tracks705and signal strengths of all visible satellites130a-nover a time interval.

FIG. 8is an illustrative workspace window depicting a web-browser view of a flat map and geophysical map, according to some embodiments. Illustrative workspace window800comprises a web browser display that may be visualized on a graphical user interface of a computing device. In some embodiments, GNSS receiver analysis system100may comprise a computer, such as, for example, a computer server, with a network interface for transmitting and receiving messages over a network140, such as the Internet. The GNSS receiver analysis system100may receive a request from a user, via the user's computing device (laptop, desktop, mobile device, tablet, etc.), over network140for diagnostic information regarding one or more GNSS receivers120. In response to the request, the GNSS receiver analysis system100may transmit a response to the user's computing device comprising data to generate the illustrative workspace window800shown inFIG. 8. In some embodiments, a user may transmit the request to the GNSS receiver analysis system100using web browser technology known in the art.

The illustrative workspace window, or web browser display800, may include one or more of a plurality of diagnostic information810regarding one or more GNSS receivers120, a flat/heat map700with heat map legend750, and a geophysical map820. The diagnostic information810may include, for example, a timing status, hardware status, sync source, source state, and source accuracy of one or more GNSS receivers120. The source state may comprise data indicating, for example, a jamming/noise percentage, the number of satellites130in view, the maximum signal strength of one or more satellites, etc., from the GNSS receiver120. The illustrative workspace window may further comprise a heat map700and accompanying heat map legend750for the GNSS receiver120over a predetermined interval of time, as described above in connection withFIG. 7.

In some embodiments, the GNSS receiver analysis system100may associate the position information from observation database105with a geophysical mapping database (e.g., Google Maps®, Google Earth®). For example,FIG. 8depicts a geophysical map820with an indication of the location of the GNSS receiver830. Visualizing the flat map700with the geophysical map820may enable a user to associate problem conditions of the GNSS receiver120with physical and electronic features, such as the presence of a tall building or an air-conditioning unit.

FIG. 9is a flow diagram of a method for GNSS receiver health and security analysis, according to some embodiments. Method900may be performed by the GNSS receiver analysis system100to detect health and/or security issues with a GNSS receiver120.

In step901, the GNSS receiver analysis system100generates a new flat heat map. In some embodiments, the GNSS receiver analysis system100may generate a new flat heat map as described above in connection withFIG. 6.

In step903, the GNSS receiver analysis system100analyzes the new flat heat map for a range of signal. In step905, the GNSS receiver analysis system100detects if there is a problem with the GNSS receiver120based on the analysis of the range of signal in step903. In some embodiments, as part of the analysis in step903, the GNSS receiver analysis system100may flag any conditions that would limit data accuracy, such as absence of sufficient regions of strong signal strength.

Several potential issues with a GNSS receiver120may be detected by analyzing the new heat map. For example, a problem may be detected if one or more of the following conditions are present: the clear signal areas in the heat map are too small; there are significant occlusions in the heat map; there are suspiciously strong signals coming from areas where satellite signals would be unlikely or impossible (e.g., the geophysical map database may indicate a structure that would block signal); and there are areas of signal strength in the heat map that are too uniform, which may indicate a synthetic or terrestrial signal. The above conditions are meant to be illustrative, and are not exhaustive. However, those skilled in the art will appreciate that the disclosed heat map analysis constitutes a significant improvement to GNSS receiver120issue detection since, for example, the heat maps provide a statistical average of GNSS receiver120messages over a time interval, rather than simple “current state” data.

For example, consider a situation where an unmanned aerial vehicle (“UAV”) with a GNSS receiver120is maneuvering in a given area where it will frequently change attitude and altitude, thereby changing GPS signal strength for each satellite130. By analyzing the observations in observation database105of the satellites130a-nover the last X observations (or over Y minutes, e.g., a predetermined interval), it can be determined that the highest signal strength has been a given amount (typically measured in dB/Hz or signal/noise). However, if the new flat map shows that the aggregate signal strength value is exceeded by a certain amount for that satellite, or for a majority of satellites, then it can be assumed that the signal being received is not genuine but is being generated by a non-genuine GPS satellite in a spoof attempt. Additionally, it is possible to calibrate a given receiver/antenna configuration to establish an absolute upper bound on signal strength possible for any satellite in any part of the sky. If any satellite signal strength exceeds this value, as indicated on the flat map, it can be assumed that the signal is not genuine and is thereby a spoof attempt and must be ignored.

Additionally, the UAV may find the physical location of the source of the interference or spoofing by using directional information about the source of interference or spoofing and computing heat maps from different locations. For example, triangulation techniques using known locations of the heat maps may be used to find a physical location of a source of interference or spoofing. This same technique could be implemented by a multiplicity of UAVs each computing heat maps in different locations so that the multiple maps can be used to pinpoint the location of the source of interference or spoofing. The same technique can be employed by moving vehicles or even by stationary receivers by combining directional information from a number of maps. For example, GNSS receivers with antennas on rooftops, each producing flat heat maps will produce sufficient information to find a source of interference or spoofing that is affecting several of them if their locations have sufficient geometrical coverage. The source of interference or spoofing can be either stationary or moving.

If a problem is detected in step905, then the GNSS receiver analysis system100may generate an alert906. In some embodiments, the generated alert may comprise a message that is transmitted to one or more user devices, such as an email, text message, page, automated call, etc. In some embodiments, an alert may be displayed on the graphical workspace window depicted inFIG. 8, for example, as a notice or pop-up window.

If no problem is detected in step905, then the GNSS receiver analysis system100compares a time series of a plurality of flat heat maps in step907. For example, the GNSS receiver analysis system100may compare the new flat heat map obtained in step901from a more recent time interval with one or more flat heat maps from earlier time intervals that have been stored in observation database105. In some embodiments, the GNSS receiver analysis system100may generate a time series of the plurality of heat maps for evaluation.

In step909, the GNSS receiver analysis system100determines whether a problem has been detected using a time series of the flat maps. In instances where a static GNSS receiver120is being analyzed, a problem may be detected if one or more of the following conditions are satisfied: the time series of flat maps indicates a sudden increase or decrease in region signal strength (e.g., caused by deliberating interference or changes in visibility); there are new or removed blocked regions in the time series flat heat map; and areas of signal strength change by a uniform amount in the time series flat heat map.

Mobile GNSS receivers120may also be analyzed by the GNSS receiver analysis system100. Mobile GNSS receivers120may experience frequent changes in signal strength from different satellites due to changes in altitude and position. Thus, it may be difficult to establish expected signal strength reception for areas of the sky since obstructions/interference relative to the receiver are not fixed. However, the GNSS receiver analysis system100, in using time series data of signal strength via heat maps, may generate an upper limit on signal strength based on historical observations in observation database105of specific satellites130in a region of the sky. Thus, a problem may be detected if the observed signal strength in the time series heat map indicates it is within a specified margin of the upper limit on a signal strength or exceeds the specified margin. For example, if the time series of heat map indicates that observed signal strength is exceeded, the GNSS receiver analysis system100may determine that the signal is not being generated by the satellite130itself, but by an attempt to jam/spoof the satellite signal.

For example, one method for “spoofing” GPS is to have a spoofing device receive data from GPS satellites130so that it “knows” what satellites130are currently visible and their positions and times, and then transmit a stronger signal with modified messages that appear to be from the same satellites130. The GNSS receiver120may then see continuity, but can be walked off of position. However, this spoofing process may produce an anomaly in the time series of flat maps showing contiguous regions of suddenly increased signal strength due to the transmission from the spoofing device. Thus, the GNSS receiver analysis system100may detect this anomaly and generate an appropriate alert.

In some embodiments, method900may further include a step of incorporating the use of a geophysical database to enhance information from the new flat map and/or the time series of flat maps (e.g., to show natural or man-made obstructions to satellite signals). Consider an example where a static flat map indicates that a GPS receiver120that was intermittently providing low quality time had only a small area of high quality signals and a dark (blocked) area to the north. The data from the flat map may be combined with geophysical data, which may indicate that a new building under construction to the north was producing a shadow, in order to better analyze the blocked area in the flat map.

If a problem with the flat heat map series is detected in step909, then the GNSS receiver analysis system100may generate an alert in step911in a similar manner as described above in connection with step906. However, if no problem is detected in step909, then the GNSS receiver analysis system100may proceed back to step901for continued analysis.

There are numerous immediate applications for the disclosed heat maps and time series of heat maps, including, for example:

Financial Trading (time data): The systems, methods, and computer program products of the present invention could be deployed to provide precise time for enterprise computer systems used, for example, in financial trading where time stamp validity is required by regulation and is necessary for forensic trace and proper system functioning. Flat map data and time series of flat map data can be used both to trigger failover operations when a problem is detected (for example to switch from one GNSS stream to another one if a possible compromise is indicated by a flat map analysis on the first GNSS stream) and to build a validation chain so that time data can be associated with a health assessment on the GNSS information. This assessment can be supplemented with analysis of the derived data, e.g. whether the derived timing information maintains a constant frequency or whether indications of suspicious changes in the heat map coincide with or precede changes in frequency that could confirm suspicions of an attempt to compromise time quality.

In some embodiments, a computer system may utilize the flat map to validate and monitor the performance of one or more GNSS receivers120. In some embodiments, the computer system may generate the flat map by obtaining the underlying reception information directly, and in others the computer system may obtain the flat map in some packet form by network communications with a second computer. For example, a dedicated GNSS receiver/network clock device120connected to a computer network may permit access via additional computer protocols (such as Secure Shell or Telnet) to query for signal information, and the computer system may use flat map information to validate the quality of time data being produced by the dedicated GNSS receiver/network clock.

Logistics (time and position data): The systems, methods, and computer program products of the present invention could be deployed to control logistics (e.g. to track movements and transport times of cargo containers or train cars or trucks). Flat map and time series of flat map data can be used to cross check position, to determine when failover is indicated, and to alert to diversion of goods or attempts to replace actual positioning information with synthetic information in an effort to conceal diversions.

Vehicle Operation (time and position data): GNSS systems are critical to operation of drones, human controlled aircraft, and other vehicles (including personal automobiles). Flat map data and Flat map time series data, in accordance with the systems, methods, and computer program products of the present invention, could be used to validate safety systems and to protect against diversion or sabotage of position and time data.

In some embodiments, the systems, methods, and computer program products of the present invention could be used to determine or find the source of an attempted compromise of a GNSS system.

FIG. 10is a schematic diagram illustrating a possible implementation for at least some components of a GNSS receiver analysis system, according to some embodiments of the present invention. As shown inFIG. 10, GNSS receiver analysis system1000may comprise: a computer system (CS)1002, which may include one or more processors1055(e.g., a microprocessor) and/or one or more circuits, such as an application specific integrated circuit (ASIC), field-programmable gate arrays (FPGAs), a logic circuit, and the like; a network interface1005for connecting GNSS receiver analysis system1000to network140; and a data storage system1012, which may include one or more non-volatile storage devices and/or one or more volatile storage devices (e.g., random access memory (RAM)).

In embodiments where GNSS receiver analysis system1000includes a processor1055, a computer program product (CPP)1033may be provided. CPP1033includes or is a non-transitory computer readable medium (CRM)1042storing a computer program (CP)1053comprising computer readable instructions (CRI)1044for performing steps described herein (e.g., one or more of the steps shown inFIGS. 6 and 9). CP1053may include an operating system (OS) and/or one or more application programs. CRM1042may include a non-transitory computer readable medium, such as, but not limited, to magnetic media (e.g., a hard disk), optical media (e.g., a DVD), solid state devices (e.g., random access memory (RAM), flash memory), and the like.

In some embodiments, the CRI1044of computer program1053is configured such that when executed by computer system1002, the CRI causes the system1000to perform steps described above (e.g., steps described above and below with reference to the flow charts shown in the drawings). In other embodiments, system1000may be configured to perform steps described herein without the need for a computer program. That is, for example, computer system1002may consist merely of one or more ASICs. Hence, the features of the embodiments described herein may be implemented in hardware and/or software.