Patent Description:
<CIT> discloses a position validation method which includes receiving versions of a message from a first satellite-based receiver and a second satellite-based receiver that both received an RF transmission of the message, the message comprising a self-reported position of a transmitter of the message The method also includes determining a time difference between a first arrival time of the RF transmission of the message at the first satellite-based receiver and a second arrival time of the RF transmission of the message at the second satellite-based receiver. The method further includes determining a measure of the likelihood that the self-reported position of the transmitter is valid based on the time difference between the first and second arrival times. The method still further includes transmitting an indication of the measure of the likelihood that the self-reported position is valid.

<CIT> discloses a position validation method wherein a pair of messages are received from one or more space-based receivers that each received the pair of messages The pair of messages comprise encoded position information of a transmitter, and a plurality of candidate locations for the transmitter is determined therefrom. A location of the transmitter is determined by eliminating candidate locations until only one remains. In particular, each candidate location that is not within a coverage area of each of the space-based receivers is eliminated, and each candidate location that is not within a predetermined distance of at least one previous candidate location is eliminated. In addition, it is determined that the remaining candidate location is within the coverage area of each of the space-based receivers as well as within the predetermined distance of at least one previous candidate location Upon determining the location of the transmitter, it is transmitted to a subscriber system.

According to the invention there is provided a method and a non-transitory, computer-readable storage medium storing computer-readable instructions, as defined by the appended claims.

Other features of the present disclosure will be apparent in view of the following detailed description of the disclosure and the accompanying drawings. Implementations described herein, including the above-described implementations, may include a method or process, a system, or computer-readable program code embodied on computer-readable media.

For a more complete understanding of the present disclosure, reference now is made to the following description taken in connection with the accompanying drawings.

Automatic dependent surveillance-broadcast ("ADS-B")-based systems are being widely adopted for modern flight surveillance technology. In these systems, an aircraft-borne transponder broadcasts periodic messages including position and other information that is received and used for flight surveillance purposes, such as, for example, air traffic control. Different examples of ADS-B-based systems for aircraft surveillance, air traffic control, and flight management systems - including both terrestrial and space-based systems - are described below in connection with <FIG>, <FIG>, and <FIG>.

ADS-B transponders may transmit position information encoded according to the Compact Position Reporting ("CPR") scheme, and the position information may be encoded in one of two different formats. One format may be used when the aircraft is airborne, while a second format may be used when the aircraft is not airborne but instead is located on the Earth's surface.

Both formats for CPR-encoded position information encode latitude and longitude values into compliant ADS-B position reports. CPR encoding is advantageous in that it may reduce the number of bits required to transmit a given position while maintaining a high position resolution. For example, without CPR encoding, <NUM> bits may be required to report a given position to within a <NUM> meter resolution (a potentially desirable resolution for airborne position reporting), while <NUM> bits may be sufficient to report the same position information to within the same resolution using CPR encoding. Thus, at least for airborne position reporting, CPR encoding may save as many as <NUM> bits for each position report.

CPR-encoded position reports included in ADS-B messages may be transmitted in pairs of messages referred to as "even" and "odd" messages that together constitute a message "pair. " Two different techniques may be performed to decode a position from a CPR-encoded position report included in an ADS-B message, which may be referred to as either a global decode or a local decode. The global decode technique may be used when a reference position for the transmitter is unknown or otherwise unavailable, for example, because a previous position of the target is unknown or has timed out (e.g., too much time has elapsed since a previous reference position was determined). The local decode technique may be used when there is a suitable reference position available for the transmitter, for example a previously determined position for the transmitter that was determined within a predefined period of time. The local decoding operation has the benefit relative to the global decoding operation of being able to decode a position for the transmitter based on a single message (along with a valid reference position for the transmitter). By contrast, the global decoding operation takes as input a complete odd/even message pair in order to decode a position for the transmitter. For example, if a valid reference position is not available for a transmitter, the global decode operation may be used to determine a position for the transmitter based on a pair of messages (one odd and one even). Thereafter, a "global reasonableness test" also may be performed in order to confirm the result of the global decode operation. The global reasonableness test itself may take another complete pair of odd/even CPR-encoded position reports in order to confirm the position previously determined by the global decode operation.

Following confirmation of the position determined by the global decode operation, the decoded location then may be used as a reference position that is then subsequently updated based on additional CPR-encoded position reports included in ADS-B messages transmitted by the transmitter using the "local decode" operation. The local decode operation may leverage the previously confirmed reference position to decode the position of the transmitter. The local decode operation does not take as input a complete "pair" of odd and even CPR-encoded position reports but instead may operate with only a single CPR-encoded position report. Because the local decode operation is dependent on previously decoded reference positions being correct, a single incorrectly determined position could cause all subsequent decoded positions to be incorrect. To prevent this from happening, a "local reasonableness test" may be performed to confirm if the result of the local decode operation makes sense. For example, in some implementations, this may involve comparing the new position to the reference position and verifying that the new position is possible assuming a maximum aircraft speed and the time between when the transmitter was located at the reference position and the time of the new CPR- position report. However, the local reasonableness test may break down if that time is too long because the longer the time between the updates the greater the likelihood the aircraft may have maneuvered (e.g., changed direction) in the time between the updates and, therefore, the less likely the local reasonableness test is to be definitive. Thus, in some implementations, the local decode operation only may be performed if the two CPR-encoded position reports corresponding to the reference position and the position to be decoded are received within a relatively short time of each other, such as, for example, <NUM>, <NUM>, or <NUM> seconds. In such implementations, if more time than that elapses, the global decode operation may be performed in order to reestablish the position of the transmitter, but, as described above, that may involve waiting for receipt of two complete pairs of CPR-encoded position reports.

In areas where there is relatively high probability of detection of ADS-B messages, including CPR-encoded position reports, this approach may result in reliable tracking of an aircraft's airborne position. However, in areas where there is relatively low probability of detection of ADS-B messages, including CPR-encoded position reports, this approach of reverting to the global decode operation after a relatively short gap in messages may be problematic. For example, in areas where there is relatively low probably of detection, longer gaps between messages may be more likely than in regions of higher probability of detection, leading to more global decode operations (e.g., in the event that gaps in between messages exceed <NUM>, <NUM>, or <NUM> seconds). However, this also may be problematic in regions of relatively low probability of detection because, as discussed above, the global decode operation takes two complete message pairs as inputs, and successfully receiving two complete message pairs in regions of relatively low probability of detection may prove difficult. Thus, the above-described approach to decoding CPR-encoded position reports may lead to difficulty reinitiating the track of an aircraft, resulting in gaps in tracking the position of aircraft, particularly in regions of relatively low probability of detection.

In some implementations of space-based ADS-B systems, a target aircraft's track can be maintained using techniques for decoding CPR-encoded position reports included in ADS-B messages even when gaps between ADS-B messages exceed <NUM>, <NUM>, or <NUM> seconds or longer, using any two, relatively closely-spaced ADS-B messages including CPR-encoded position reports (e.g., odd/odd, even/even, or odd/even).

<FIG> is a flowchart that illustrates an example of the above-described local decode operation for decoding a CPR-encoded position report M1. First, at step <NUM>, the system determines whether a previous position PR (e.g., a reference position) of a target aircraft has been established, such as, for example, through a previous global decode or local decode with local reasonableness test. If no position PR has been established for the target aircraft, the system proceeds to step <NUM> to perform a global decode operation, where, as described above, two complete pairs of CPR-encoded position reports will be taken as inputs. For example, the global decode operation may be performed in accordance with the Minimum Operational Performance Standards (MOPS) for <NUM> Extended Squitter Automatic Dependent Surveillance - Broadcast (ADS-B) and Traffic Information Services - Broadcast (TIS-B) (the "DO-260B Supplement") (see, e.g., Appendix A, Section A. <NUM>; and Appendix T). If a reference position PR has been established, the system proceeds to step <NUM>, where it is determined whether the time of message reception (TOMR) of the current message M1 (referred to as M1. TOMR) is within a predetermined period of time (e.g., <NUM> seconds as illustrated in <FIG>) of the time of message reception of the position PR (PR. If the current message M1 was not received within <NUM> seconds of the time of message reception for the position PR, then the system proceeds to step <NUM> to perform a global decode operation. However, if the current message M1 was received within <NUM> seconds of the time of message reception for the position PR, then the system proceeds to step <NUM>.

At step <NUM>, a local decode operation is performed using the current message M1 and the position PR to decode the new position P1. For example, the local decode operation may be performed in accordance with the MOPS for <NUM> Extended Squitter ADS-B and TIS-B (the "DO-260B Supplement") (see, e.g., Appendix A, Section A. <NUM>) and/or as described further below in connection with <FIG>. At step <NUM>, a local reasonableness check is performed on the newly decoded position P1 using the position PR. For example, as illustrated in <FIG>, the local reasonableness check determines if the newly decoded position P1 is within <NUM> nautical miles of the position PR. If the new position P1 passes the local reasonableness test, then the target aircraft may be considered to be at P1 and the position for the target aircraft may be updated to P1 at step <NUM>. Otherwise, if the new position fails the local reasonableness test, then the system proceeds to step <NUM> to perform the global decode operation.

As discussed above, however, having to fall back to the global decode operation, for example, because of gaps in between messages or other issues, may be problematic and lead to loss of an aircraft's track, particularly in areas of relatively low probability of detection of ADS-B messages. However, this issue may be mitigated with reference to the processes and techniques for decoding CPR-encoded position reports in a space-based ADS-B system described below. These processes and techniques may address certain limitations associated with decoding CPR-encoded position reports, for example according to approaches specified in the MOPS for <NUM> Extended Squitter ADS-B and TIS-B (the "DO-260B Supplement"), which principally focuses on the decoding of CPR-encoded position reports by terrestrial systems. The example processes and techniques described below may incorporate certain aspects of the decoding approaches specified in the DO-260B Supplement, but they modify, supplement, and extend such approaches in a number of ways that yield improvements that address the aforementioned limitations. Those of ordinary skill in the art will appreciate that the techniques described in reference to each process may be implemented in any of a variety of different manners to suit any specific context for space-based ADS-B systems and may not be limited to the specific implementations described herein.

<FIG> is a flow chart that illustrates an example of a process for performing CPR-encoded position report decoding even in the case of extended gaps between messages in accordance with a non-limiting implementation of the present disclosure. A position message MP is transmitted from a transmitter mounted on a target, such as, for example, an aircraft, and the message MP is received at a space-based ADS-B receiver. At step <NUM>, a determination is made as to whether a previous position PR (e.g., a reference position) has been established for the target. For example, the position PR may have been established for the target through a global decode operation or a local decode operation, for example, according to the process illustrated in <FIG>. If no reference position PR has been established for the target, then the process proceeds to step <NUM> to perform a global decode operation to establish a position for the target. However, if a position PR already has been established for the target, the process continues to step <NUM>, where it waits for a position message MP. For example, a position message MP may be transmitted from a transmitter mounted on a target, such as, for example, an aircraft, and the message MP may be received by a space-based ADS-B receiver. After the position message MP has been received, the process proceeds to step <NUM>, where a determination is made as to whether the TOMR of the newly received position message MP is within a predetermined period of time (e.g., <NUM> seconds as illustrated in <FIG>) of the TOMR of the position PR. (The <NUM> second time limit illustrated in <FIG> is not limiting and is used merely as an example. Other time limits may be used without deviating from the scope of the present disclosure.

If the TOMR of the position message MP is not within the predetermined period of time of the TOMR of the position PR, then the process proceeds to <NUM> to perform a global decode operation. However, if the TOMR of the position message MP is within the predetermined period of time of the TOMR of the position PR, then the process proceeds to step <NUM>, which determines if M1 is already populated. If it is not, then M1 is set to the newly received position message MP at step <NUM>, and the process returns to step <NUM> to wait for another position message. If M1 is already populated at step <NUM>, then M2 is set to the newly received position message MP at step <NUM>, and the process proceeds to step <NUM>. Step <NUM> checks whether the messages M1 and M2 were received within a predetermined period of time (e.g., <NUM> seconds as illustrated in <FIG>) of each other. If the time between the TOMRs of M2 and M1 is greater than the predetermined period of time, then the process proceeds to step <NUM>, where M1 is set to M2, and then the process returns to step <NUM> to wait for another position message. However, if the time between the TOMRs of M2 and M1 is less than the predetermined period of time, the process proceeds to step <NUM>.

At step <NUM>, a local decode operation is performed using the message M1 and the position PR, and, at step <NUM>, a local decode operation is performed using the message M2 and the position PR. The output of the local decode operation at step <NUM> is stored as P1, and the output of the local decode operation at step <NUM> is stored as P2. At step <NUM>, the process determines whether P1 and P2 are within a predetermined distance (e.g., <NUM> nautical miles as illustrated in <FIG>) of each other. This check serves as a reasonableness check on the decoded locations P1 and P2. If the positions decode to values that are farther apart than the predetermined distance, then it may be assumed that there is an error in at least one of the positions. The process, therefore, returns to step <NUM> and sets M1 to M2, and then returns to step <NUM> to wait for the next position message MP. However, if the reasonableness check passes at step <NUM>, then the process proceeds to step <NUM>, where a local decode operation is performed on the M2 message using the position P1 obtained from the local decode operation performed on message M1 to obtain a new position for the target PT. The risk of obtaining an erroneous position, therefore, may be decreased, for example, because elements of both messages M1 and M2, which have already been validated by the reasonableness test of step <NUM>, are used as inputs to the local decode operation to obtain position PT. At step <NUM>, an additional reasonableness check is performed on the updated position PT by checking if PT is within a predetermined distance (e.g., <NUM> meters as illustrated in <FIG>) of the position P2 obtained from performing a local decode operation on message M2 using the previous position PR at step <NUM>. If this final reasonableness test passes, then the position of the target is updated to the value of P2.

<FIG> and <FIG> collectively illustrate an example of a process for performing a local decode operation on a CPR-encoded position report received by a space-based ADS-B system. As discussed above, CPR-encoded position reports typically are transmitted as a pair of messages (an even message and an odd message). In <FIG>, i represents the CPR message format extracted from a CPR-encoded position report, with <NUM> representing an even message and <NUM> representing an odd message. In addition, XZ represents the CPR-encoded longitude value extracted from a CPR-encoded position report to be decoded, YZ represents the CPR-encoded latitude value extracted from the CPR-encoded position report to be decoded, lat represents the latitude value for a previously determined reference position, and lon represents the longitude value for the previously determined reference position. The process illustrated in <FIG> and <FIG> decodes and solves for the latitude and longitude components of the CPR-encoded position report of the target aircraft, which are designated as Rlat and Rlon, respectively.

Lines <NUM>-<NUM> of <FIG> illustrate a process for decoding a value of the latitude component of a CPR-encoded position report based on whether the CPR-encoded position report is an odd or even message, the latitude of the reference position lat, and the CPR-encoded latitude value extracted from the CPR-encoded position report YZ. Decoding the longitude component of a CPR-encoded position report involves calculating a number of longitude zones, NL, which is a function of a given latitude (e.g., Rlat). An example of such a process for determining the number of longitude zones is illustrated <FIG>, and may return values between <NUM> and <NUM>. Additional information related to determining the number of longitude zones based on the determined latitude may be found in the MOPS for <NUM> Extended Squitter ADS-B and TIS-B (the "DO-260B Supplement") (see, e.g., Section A. Lines <NUM>-<NUM> of <FIG> illustrate a process for decoding a value of the longitude component of a CPR-encoded position report after the number of longitude zones, NL, has been determined based on the number of longitude zones NL, whether the CPR-encoded position report is an odd or even message, the longitude of the reference position lon, and the CPR-encoded longitude value extracted from the CPR-encoded message XZ.

In particular implementations, the various different processing steps for decoding the latitude and longitude components of a CPR-encoded position report described in connection with <FIG>, <FIG>, <FIG> and <FIG> can be performed in a variety of different orders. In some implementations, the processing steps may be performed by or in conjunction with a computing apparatus such as, for example, computing apparatus of ground segment <NUM> of <FIG>, computing apparatus of satellite communication network earth terminal <NUM> and/or air traffic management system <NUM> of <FIG>, and/or computing apparatus on board a satellite.

After latitude and longitude values have been successfully decoded from an aircraft's CPR-encoded position report, for example, according to the techniques described herein, the decoded position for the aircraft may be transmitted to one or more appropriate destinations (e.g., subscribing systems that subscribe to position reports or other information for the aircraft), such as, for example, an ANSP or other air traffic control authority, the airline to which the aircraft that transmitted the position report belongs, or any other entity or system that has an interest in the aircraft. For instance, they may be used to track the aircraft's flight track (e.g., on a terminal or display for an air traffic controller).

The techniques for decoding position information in CPR-encoded position reports described herein can be implemented in a variety of different ADS-B-based systems, particularly space-based ADS-B systems. Accordingly, to provide better context for and understanding of the decoding techniques, various examples of such ADS-B systems in which the techniques may be implemented are described below. In a typical ADS-B-based system, an aircraft determines its position using a satellite-based navigation system (e.g., the Global Positioning System ("GPS")) and, as described above, periodically broadcasts its position, thereby enabling the aircraft to be tracked by systems that receive the aircraft's ADS-B broadcasts. In some particular implementations, an ADS-B equipped aircraft uses onboard equipment and sensors to determine its horizontal position, altitude, and velocity and then combines this information with its aircraft identification and call sign into the ADS-B messages that it transmits.

ADS-B-based transponders, which may operate on the same frequency as traditional Mode A/C/S transponders (e.g., <NUM>), may utilize different data links and formats for broadcasting ADS-B messages, including, for example, DO-<NUM>, DO-260A and DO-260B (Link Versions <NUM>, <NUM> and <NUM>, respectively) and DO-260B/ED-102A. <NUM> Mode S ES is a particular example of one such data link that has been adopted in many jurisdictions. For example, in the United States, the Federal Aviation Administration ("FAA") has mandated <NUM> Mode S ES for use by air carrier and private or commercial operators of high-performance aircraft. Like traditional radar-based systems, ADS-B-based systems require appropriate infrastructure for receiving ADS-B messages broadcast by aircraft. As a result, even as numerous jurisdictions transition to terrestrial, ADS-B-based systems, air traffic in vast airspaces remains unmonitored where such infrastructure does not exist.

As described in this disclosure, to address this limitation of terrestrial ADS-B systems (or to supplement terrestrial ADS-B systems), ADS-B receivers may be hosted on satellites and used to receive ADS-B messages broadcast by aircraft. Such ABS-B messages received by the satellites then can be relayed back down to earth terminals or other terrestrial communications infrastructure for transmission to and use by air traffic control, aircraft surveillance, and flight path management services.

For example, as illustrated in <FIG>, a space-based ADS-B system <NUM> includes one or more satellites <NUM> in orbit above the Earth and a ground segment <NUM>. Each satellite <NUM> is equipped with one or more receivers <NUM> configured to receive ADS-B messages transmitted by aircraft, including, but not limited to, airplanes <NUM> and helicopters <NUM>, and the ground segment <NUM>, among other things, is configured to communicate with the one or more satellites, including, for example, to receive ADS-B messages that the satellites <NUM> receive from the aircraft and then relay to the ground segment <NUM>. As illustrated in <FIG>, ADS-B messages transmitted by aircraft may be received by terrestrial ADS-B infrastructure, if within range of the aircraft and not obstructed (e.g., by a topographical feature like a mountain or a man-made structure), and/or by ADS-B receivers <NUM> on board one or more of the satellites <NUM>.

When an ADS-B message transmitted by an aircraft is received by an ADS-B receiver on a satellite <NUM>, the satellite <NUM> may retransmit the received ADS-B message to the space-based ADS-B system's ground segment <NUM>, for example via a ground station, earth station, earth terminal, teleport, and/or similar terrestrial component configured to communicate with the satellite(s) <NUM>. From there, the space-based ADS-B system's ground segment may route (e.g., via one or more terrestrial communications networks) the ADS-B message (or some or all of the information contained therein) to one or more appropriate destinations <NUM>, such as, for example, an air navigation service provider or other air traffic control authority, the airline to which the aircraft that transmitted the ADS-B message belongs, or any other entity with an interest in the ADS-B message. In some implementations, the information included in the ADS-B message may be combined with ground-based surveillance data and/or flight plan information for integration within air traffic control systems to provide air traffic controllers a single representation of a given aircraft. The space-based ADS-B system's ground segment <NUM> may transmit the information included in a received ADS-B message to a destination in one of a variety of different formats, including, for example, ASTERIX CAT021, CAT023, CAT025, CAT238 and FAA CAT033 and CAT023.

In some implementations, individual satellites <NUM> within the space-based ADS-B system <NUM> may retransmit ADS-B messages that they receive directly to the ground segment <NUM>. Additionally, or alternatively, and as illustrated in <FIG>, in some implementations, communications crosslinks <NUM> may be established between two or more satellites <NUM> within the space-based ADS-B system <NUM>, thereby enabling the satellites <NUM> to communicate with one another. In such implementations, a satellite <NUM> that receives an ADS-B message may retransmit the ADS-B message to the ground segment <NUM> indirectly through one or more additional satellites <NUM> within the space-based ADS-B system <NUM> via the communications crosslinks <NUM>.

Notably, as illustrated in <FIG>, ADS-B messages transmitted by aircraft flying over regions where terrestrial ADS-B infrastructure does not exist, for example over oceans <NUM> or rugged or remote terrain like the poles or mountain ranges <NUM>, may be received by ADS-B receivers <NUM> on board one or more of the satellites <NUM>. As a result, tracking, monitoring, and/or surveilling aircraft flying over these regions still may be possible even in the absence of terrestrial ADS-B infrastructure in these regions. Space-based ADS-B systems may provide a number of additional advantages as well. For example, traditional radar-based air traffic control systems may be limited in their ability to service high-traffic environments, such as, for example, at or near airports. In contrast, space-based ADS-B systems may provide better service at or near airports and in high traffic areas, thereby enabling, for example, more efficient ground control and flight takeoff and landing schedules and more flexible aircraft maneuvers in congested environments. Additionally, or alternatively, a space-based ADS-B system that provides global ADS-B coverage may enable an airline to have up-to-date and real-time or near real-time visibility of its entire fleet of aircraft at any given moment.

<FIG> is a high-level block diagram that provides another illustration of an example of a space-based ADS-B system <NUM>. As illustrated in <FIG>, system <NUM> includes satellite <NUM> in communication with and part of satellite network <NUM>, and aircraft <NUM>. In some implementations, satellite network <NUM>, including satellite <NUM>, may be a low-Earth orbit ("LEO") constellation of cross-linked communications satellites. As illustrated in <FIG>, terrestrial ADS-B ground station <NUM>, air traffic management system <NUM> and satellite communication network earth terminal <NUM> are located on Earth <NUM>'s surface.

Aircraft <NUM> carries an on-board ADS-B transponder <NUM> that broadcasts ADS-B messages containing flight status and tracking information. Satellite <NUM> carries payload <NUM> to receive ABS-B messages broadcast by aircraft <NUM> and other aircraft. In some implementations, multiple or all of the satellites in satellite network <NUM> may carry ADS-B payloads to receive ADS-B messages broadcast by aircraft. Messages received at receiver <NUM> are relayed through satellite network <NUM> to satellite communication network Earth terminal <NUM> and ultimately to air traffic management system <NUM> through terrestrial network <NUM>. The air traffic management system <NUM> may receive aircraft status information from various aircraft and provide additional services such as ground and/or air traffic control and scheduling or pass appropriate information along to other systems or entities.

In some implementations, ADS-B payload <NUM> may have one or more antennas and one or more receivers for receiving ADS-B messages broadcast by aircraft. Additionally, or alternatively, in some implementations, ADS-B payload <NUM> may have a phased array antenna formed from multiple antenna elements that collectively are configured to provide multiple different beams for receiving ADS-B messages.

Terrestrial ADS-B ground station <NUM> provides aircraft surveillance coverage for a relatively small portion of airspace, for example, limited to aircraft within line of sight of ground station <NUM>. Even if terrestrial ADS-B ground stations like ground station <NUM> are widely dispersed across land regions, large swaths of airspace (e.g., over the oceans) will remain uncovered. Meanwhile, a spaced-based ADS-B system <NUM> utilizing a satellite network like satellite network <NUM> may provide coverage of airspace over both land and sea regions without being limited to areas where ground-based surveillance infrastructure has been installed.

Thus, a space-based ADS-B system may be preferable (or a valuable supplement) to terrestrial approaches.

As described above, in some implementations, a space-based ADS-B system may include a constellation of multiple satellites equipped with one or more ADS-B receivers in low-Earth orbit ("LEO") (e.g., <NUM>-<NUM>,<NUM> miles above the Earth's surface). For example, as illustrated in <FIG>, in one particular implementation, a space-based ADS-B system <NUM> may include <NUM> LEO satellites <NUM> equipped with one or more ADS-B receivers (not shown) arranged in <NUM> orbital planes <NUM> (e.g., in substantially polar orbits) of <NUM> satellites each. In this arrangement, the satellites <NUM> collectively may provide global (or substantially global) ADS-B coverage. For example, the individual satellites <NUM> of the constellation may have ADS-B coverage footprints that collectively are capable of covering every square inch (or nearly every square inch) of the Earth's surface. As further illustrated in <FIG> and as also discussed above in connection with <FIG> and <FIG>, in some implementations, communications crosslinks may be established between individual satellites <NUM>, thereby effectively forming a wireless mesh network in space that may enable the satellites <NUM> to communicate with each other and to relay ADS-B messages received by individual satellites <NUM> through the network. In the particular implementation illustrated in <FIG>, each satellite is cross-linked to four satellites <NUM>: one satellite <NUM> in each of the fore and aft direction of its orbital <NUM> plane and one satellite <NUM> in each of the adjacent orbital planes <NUM> to the left and right. Although the specific implementation illustrated in <FIG> is shown as including <NUM> LEO satellites <NUM> arranged in <NUM> orbital planes <NUM> (e.g., in substantially polar orbits) of <NUM> satellites <NUM> each, space-based ADS-B systems may include different numbers of satellites <NUM> (e.g., more or less than <NUM>), arranged in different plane configurations (e.g., in different numbers of planes and/or in planes having different inclinations), and in different orbits (e.g., mid-Earth orbit ("MEO"), geostationary orbit ("GEO"), geosynchronous, and/or sun synchronous).

The techniques for decoding position information described herein have been described generally in the context of decoding position information for aircraft. However, they can be applied more generally to decode position information for any type of vehicle or transponder that transmits such position information.

Aspects of the present disclosure may be implemented entirely in hardware, entirely in software (including firmware, resident software, micro-code, etc.) or in combinations of software and hardware that may all generally be referred to herein as a "circuit," "module," "component," or "system. " Furthermore, aspects of the present disclosure may take the form of a computer program product embodied in one or more machine-readable media having machine-readable program code embodied thereon.

Any combination of one or more machine-readable media may be utilized. The machine-readable media may be a machine-readable signal medium or a machine-readable storage medium. A machine-readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of such a machine-readable storage medium include the following: a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an appropriate optical fiber with a repeater, an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a machine-readable storage medium may be any tangible medium that can contain or store a program for use by or in connection with an instruction execution system, apparatus, or device, such as, for example, a microprocessor.

A machine-readable signal medium may include a propagated data signal with machine-readable program code embodied therein, for example, in baseband or as part of a carrier wave. A machine-readable signal medium may be any machine-readable medium that is not a machine-readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device. Program code embodied on a machine-readable signal medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF signals, etc., or any suitable combination of the foregoing.

Computer program code for carrying out operations for aspects of the present disclosure may be written in any combination of one or more programming languages, including object oriented programming languages, dynamic programming languages, and/or procedural programming languages.

The figures illustrate examples of the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various aspects of the present disclosure. In this regard, each step in a process or block in a diagram may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the process steps may occur out of the order illustrated in the figures. For example, two process steps shown in succession may, in fact, be executed substantially concurrently, or the process steps may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each process step or block of the block diagrams, and combinations of the process steps or blocks in the block diagrams, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and machine-readable instructions.

Claim 1:
A method, comprising:
receiving, from one or more space-based receivers (<NUM>) on one or more satellites (<NUM>), both a first message (M1) and a second message (M2), the first and second messages (M1; M2) having been received by the one or more space-based receivers (<NUM>) from, and both comprising encoded position information for, a transmitter on an aircraft (<NUM>, <NUM>) of the first and second messages (M1; M2) that sent the first and second messages (M1; M2) at different times, the first and second messages (M1; M2) being first and second automatic dependent surveillance-broadcast, ADS-B, messages including compact position reporting, CPR, encoded airborne position information for the aircraft (<NUM>, <NUM>);
determining that both the first message (M1) and the second message (M2) were received by the one or more space-based receivers (<NUM>) within a first predetermined period of time of a previous message that was used to determine a previous location of the transmitter;
determining that the second message (M2) was received by the one or more space-based receivers (<NUM>) within a second predetermined period of time from the time that the first message (M1) was received by the one or more space-based receivers (<NUM>);
determining a first location (P1) of the transmitter identified by the encoded position included in the first message (M1) based on the previously determined location of the transmitter;
determining a second location (P2) of the transmitter identified by the encoded position included in the second message (M2) based on the previously determined location of the transmitter;
determining that the first location (P1) and the second location (P2) are within a first threshold distance of each other;
determining an updated second location (P2) of the transmitter identified by the encoded position information included in the second message (M2) based on the first location (P1) of the transmitter;
determining that the second location (P2) of the transmitter and the updated second location (P2) of the transmitter are within a second threshold distance of each other; and
transmitting the updated second location (P2) of the transmitter to a subscriber system that subscribes to position reports for the transmitter.