A Guide to Decoding Mode S and ADS-B Signals

There are many parameters in ADS-B that define the quality of data in the position and velocity reports. These parameters serve as accuracy and confidence indicators for aircraft position and speed information transmitted in ADS-B messages.

With each evolution of the ADS-B versions, these parameters have been renamed and redefined. These updates complicate the understanding and analysis of uncertainties in ADS-B. This chapter is designed to give a better overview of the uncertainty indicators in different ADS-B versions, and it also gives a clear mapping between the the indicators and actual uncertainty values.

In general, there are three types of data quality indicators:

**Uncertainty indicators**: These indicators are introduced in the ADS-B version 0. Parameter values indicate that at least 95% of measurements are within the allowed uncertainty bounds.**Accuracy indicators**: These indicators are first introduced in version 1 and are intended to be a drop-in replacement for uncertainty indicators in version 0. Parameter values also indicate that at least 95% of measurements are within the allowed accuracy bounds.**Integrity indicators**: These indicators are also first introduced in version 1, replacing the uncertainty indicators from version 0.

Commonly, two parameters are related to the position and velocity separately in each group of indicators. Table 1.1 shows the six major uncertainty indicators related ADS-B versions and their value ranges.

Indicator |
Acronym |
Version |
Values |
---|---|---|---|

Navigation uncertainty category–position | NUCp | 0 | 0–9 |

Navigation uncertainty category–rate (velocity) | NUCr | 0 | 0–4 |

Navigation accuracy category–position | NACp | 1, 2 | 0–11 |

Navigation accuracy category–velocity | NACv | 1, 2 | 0–4 |

Navigation integrity category | NIC | 1, 2 | 0–11 |

Surveillance integrity level | SIL | 1, 2 | 0–3 |

Each quality indicator also relates to a set of parameters that express the exact amount of uncertainties, errors, or probabilities. Table [tb:uncertainty-parameters] lists these parameters.

|l|p8cm|l| & **Parameter** &

NUCp (V0) & Horizontal protection limit & HPL

& 95% containment radius on horizontal position error & Rc/μ

& 95% containment radius on vertical position error & Rc/v

NUCr (V0) & Horizontal velocity error (95%) & HVE

& Vertical velocity error (95%) & VVE

NACp (V1,2) & Estimated position uncertainty (95% horizontal accuracy - p). a.k.a. horizontal figure of merit (HFOM) in GNSS & EPU

& Vertical estimated position uncertainty (95% vertical accuracy - p). a.k.a. vertical figure of merit (VFOM) in GNSS & VEPU

NACv (V1,2) & Horizontal figure of merit (95% horizontal accuracy - v) & HFOMr

& Vertical figure of merit (95% horizontal accuracy - v) & VFOMr

NIC (V1,2) & Horizontal containment radius limit & RC

& Vertical protection limit & VPL

SIL (V1,2) & Probability of exceeding horizontal containment radius & P-RC

& Probability of exceeding vertical integrity containment region & P-VPL

These parameters are identified by different bits from different messages. Due to the evolution of ADS-B versions, the definitions can also differ. In order to correctly obtain these parameters, the ADS-B transponder version must be identified. This can be based on the logic explained in Chapter [chap:adsb-basic].

In the rest of this chapter, these parameters are explained in detail according to different ADS-B versions. The changes in the same parameters between different versions are also indicated.

In ADS-B version 0, only uncertainties are defined. Two sets of parameters are related to the position and velocity (or rate) separately.

NUCp is directly related to ADS-B Type Code with one-to-one mapping. The mapping between Type Code and NUCp in surface position messages and the two types of airborne position messages is shown in Table 1.4.

0.7

Surface position | |||||
---|---|---|---|---|---|

TC | 0 | 5 | 6 | 7 | 8 |

NUCp | 0 | 9 | 8 | 7 | 6 |

0.7

Airborne position (Barometric altitude) | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|

TC | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |

NUCp | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |

0.7

(GNSS altitude) | |||
---|---|---|---|

TC | 20 | 21 | 22 |

NUCp | 9 | 8 | 0 |

In general, a higher NUCp number (lower TC number) represents higher confidence in the position measurement. When dealing with position uncertainty, the horizontal protection limit (HPL), the containment radius on horizontal position error (denoted as Rc/μ), and the containment radius on vertical position error (denoted as Rc/v) are used to quantify the uncertainties. All values are shown in Table 1.5.

TC |
NUCp |
HPL |
Rc/μ |
Rc/v |
---|---|---|---|---|

0 | 0 | N/A | N/A | N/A |

5 | 9 | <7.5 m | <3 m | N/A |

6 | 8 | <25 m | <10 m | N/A |

7 | 7 | <0.1 NM (185 m) | <0.05 NM (93 m) | N/A |

8 | 6 | >0.1 NM (185 m) | >0.05 NM (93 m) | N/A |

9 | 9 | <7.5 m | <3 m | N/A |

10 | 8 | <25 m | <10 m | N/A |

11 | 7 | <0.1 NM (185 m) | <0.05 NM (93 m) | N/A |

12 | 6 | <0.2 NM (370 m) | <0.1 NM (185 m) | N/A |

13 | 5 | <0.5 NM (926 m) | <0.25 NM (463 m) | N/A |

14 | 4 | <1 NM (1852 m) | <0.5 NM (926 m) | N/A |

15 | 3 | <2 NM (3704 m) | <1 NM (1852 m) | N/A |

16 | 2 | <10 NM (18520 m) | <5 NM (9260 m) | N/A |

17 | 1 | <20 NM (37040 m) | <10 NM (18520 m) | N/A |

18 | 0 | >20 NM (37040 m) | >10 NM (18520 m) | N/A |

20 | 9 | <7.5 m | <3 m | <4 m |

21 | 8 | <25 m | <10 m | <15 m |

22 | 0 | >25 m | >10 m | >15 m |

It is worth noting that, in the case of airborne position with GNSS height (TC=20–22), HPL, and Rc/μ are defined with slight differences compared to other types of position messages. In addition, the containment radius for the vertical position (Rc/v) is also defined in this message. This is possible because the altitude is obtained from GNSS sources.

The Navigation Uncertainty Category - rate (NUCr) is used to indicate the uncertainty of the horizontal and vertical speeds. The bits representing NUCr can be found in the airborne velocity message (TC=19). The NUCr is located at message bits 43–45 (or ME bits 11–13), which defines the 95% of the error in horizontal and vertical speed as shown in Table 1.6.

NUCp |
HVE (95%) |
VVE (95%) |
---|---|---|

0 | N/A | N/A |

1 | <10 m/s | <15.2 m/s (50 fps) |

2 | <3 m/s | <4.5 m/s (15 fps) |

3 | <1 m/s | <1.5 m/s (5 fps) |

4 | <0.3 m/s | <0.46 m/s (1.5 fps) |

In ADS-B version 1, the uncertainty category is removed, replaced by the accuracy category and the integrity category. Both NUCp and NUCr from version 0 no longer exist in version 1. New indicators introduced in version 1 are NACp, NACv, NIC, and SIL.

NIC is designed to replace NUCp from version 0, but with more levels included. Like NUCp in version 0, the Navigation Integrity Category (NIC) is related to the Type Code. However, Type Code and NIC no longer have a one-to-one mapping relationship. With more levels defined, a supplemental bit is required to distinguish two levels represented by some of the same Type Codes.

The NIC Supplement bit (NICs) is introduced in the operation status messages (TC=31) and located at the message bit 76 (or ME bit 44). The relationship between TC, NIC, and Rc are listed in Table 1.7.

TC |
NICs |
NIC |
RC |
VPL |
---|---|---|---|---|

0 | N/A | N/A | N/A | N/A |

5 | 0 | 11 | <7.5 m | N/A |

6 | 0 | 10 | <25 m | N/A |

7 | 1 | 9 | <75 m | N/A |

0 | 8 | <0.1 NM (185 m) | N/A | |

8 | 0 | 0 | >0.1 NM or Unknown | N/A |

9 | 0 | 11 | <7.5 m | <11 m |

10 | 0 | 10 | <25 m | <37.5 m |

11 | 1 | 9 | <75 m | <112 m |

0 | 8 | <0.1 NM (185 m) | N/A | |

12 | 0 | 7 | <0.2 NM (370 m) | N/A |

13 | 0 | 6 | <0.5 NM (926 m) | N/A |

1 | <0.6 NM (1111 m) | N/A | ||

14 | 0 | 5 | <1.0 NM (1852 m) | N/A |

15 | 0 | 4 | <2 NM (3704 m) | N/A |

16 | 1 | 3 | <4 NM (7408 m) | N/A |

0 | 2 | <8 NM (14.8 km) | N/A | |

17 | 0 | 1 | <20 NM (37.0 km) | N/A |

18 | 0 | 0 | >20 NM or Unknown | N/A |

20 | 0 | 11 | <7.5 m | <11 m |

21 | 0 | 10 | <25 m | <37.5 m |

22 | 0 | 0 | >25 m | >112 m |

NACp is introduced in ADS-B version 1 as a complementary indicator of NIC. The NACp can be obtained from the operational status message, message frame bits 77–80 (or ME bits 45–48).

With NACp, the 95% horizontal and vertical accuracy bounds can be determined. They are the estimated position uncertainty (EPU) and the vertical estimated position uncertainty (VEPU), which are also known as the horizontal figure of merit (HFOM) and the vertical figure of merit (VFOM) in GNSS.

EPU and Rc in NIC have the following relationship:

\[\begin{split} \mathrm{EPU} &\approx \mathrm{Rc} / 2.5 \qquad \text{for NACp} \ge 9 \\ \mathrm{EPU} &\approx \mathrm{Rc} / 2.0 \qquad \text{for NACp} < 9 \end{split}\]

NACp and its related parameter values are defined in Table 1.8.

NACp |
EPU (or HFOM) |
VEPU (or VFOM) |
---|---|---|

11 | <3 m | <4 m |

10 | <10 m | <15 m |

9 | <30 m | <45 m |

8 | <0.05 NM (93 m) | N/A |

7 | <0.1 NM (185 m) | N/A |

6 | <0.3 NM (556 m) | N/A |

5 | <0.5 NM (926 m) | N/A |

4 | <1.0 NM (1852 m) | N/A |

3 | <2 NM (3704 m) | N/A |

2 | <4 NM (7408 m) | N/A |

1 | <10 NM (18520 m) | N/A |

0 | >10 NM or Unknown | N/A |

NACv is introduced in version 1 to replace the NUCv from version 0. The bits are located at the same location and have the same definitions of values. These bits are contained in airborne velocity message (TC=19) message bits 43–45 (or ME bits 11–13). It defines the 95% of the errors in horizontal and vertical speeds. The detailed definitions of the Horizontal Figure of Merit for rate (HFOMr) and Vertical Figure of Merit for rate (HFOMr) are shown in Table 1.9.

NACv |
HFOMr |
VFOMr |
---|---|---|

0 | N/A | N/A |

1 | <10 m/s | <15.2 m/s (50 fps) |

2 | <3 m/s | <4.5 m/s (15 fps) |

3 | <1 m/s | <1.5 m/s (5 fps) |

4 | <0.3 m/s | <0.46 m/s (1.5 fps) |

SIL is introduced in version 1 and used to indicate the probability of measurements exceeding the containment radius. The SIL value can also be found in the operational status message (TC=31), message bits 83–84 (or ME bits 51–52)

Each SIL value corresponds to two probabilities that describe the horizontal (P-RC) and vertical (P-VPL) components respectively. The definitions are as follows:

SIL | P-RC | P-VPL |
---|---|---|

0 | unknown | unknown |

1 | \(< 1 \times 10^{-3}\) | \(< 1 \times 10^{-3}\) |

2 | \(< 1 \times 10^{-5}\) | \(< 1 \times 10^{-5}\) |

3 | \(< 1 \times 10^{-7}\) | \(< 2 \times 10^{-7}\) |

The unit for P-RCu and P-VPL can be per flight hour or per sample, except when SIL=3, the unit for P-VPL becomes per 150 seconds per sample.

There are fewer changes between version 1 and version 2 when compared to the earlier update. The major changes are the further refined NIC levels and minor updates of SIL parameters.

In version 2, NIC levels can be obtained with three additional supplement bits named NIC supplement bit A (NICa), NIC supplement bit B (NICb), and NIC supplement bit C (NICc). These bits can be found as follows:

NICa is located in the operational status message (TC=31) (message bit 76 or ME bit 44), which is the same as in ADS-B version 1.

NICb is located in the airborne position message (TC=9–18), message bit 40 or ME bit 8), where the Single Antenna Flag was located in previous ADS-B versions.

NICc is also located in the operational status message (TC=31) (message bit 52 or ME bit 20).

With these supplemental bits and the Type Code, the NIC value in version 2 can be calculated. NIC values and their related Rc values are shown in Table 1.11.

TC |
NICa |
NICb |
NICc |
NIC |
Rc |
---|---|---|---|---|---|

5 | 0 | N/A | 0 | 11 | <7.5 m |

6 | 0 | N/A | 0 | 10 | <25 m |

7 | 1 | N/A | 0 | 9 | <75 m |

0 | N/A | 0 | 8 | <0.1 NM (185 m) | |

8 | 1 | N/A | 1 | 7 | <0.2 NM (370 m) |

1 | N/A | 0 | 6 | <0.3 NM (556 m) | |

0 | N/A | 1 | <0.6 NM (1111 m) | ||

0 | N/A | 0 | 0 | >0.6 NM or unknown | |

9 | 0 | 0 | N/A | 11 | <7.5 m |

10 | 0 | 0 | N/A | 10 | <25 m |

11 | 1 | 1 | N/A | 9 | <75 m |

0 | 0 | N/A | 8 | <0.1 NM (185 m) | |

12 | 0 | 0 | N/A | 7 | <0.2 NM (370 m) |

13 | 0 | 1 | N/A | 6 | <0.3 NM (556 m) |

0 | 0 | N/A | <0.5 NM (926 m) | ||

1 | 1 | N/A | <0.6 NM (1111 m) | ||

14 | 0 | 0 | N/A | 5 | <1.0 NM (1852 m) |

15 | 0 | 0 | N/A | 4 | <2 NM (3704 m) |

16 | 1 | 1 | N/A | 3 | <4 NM (7408 m) |

0 | 0 | N/A | 2 | <8 NM (14.8 km) | |

17 | 0 | 0 | N/A | 1 | <20 NM (37.0 km) |

18 | 0 | 0 | N/A | 0 | >20 NM or unknown |

20 | N/A | N/A | N/A | 11 | <7.5 m |

21 | N/A | N/A | N/A | 10 | <25 m |

22 | N/A | N/A | N/A | 0 | >25 m |

In version 2, an additional SIL supplement bit (SILs) is introduced to better distinguish whether the value has the unit of per flight hour or per sample. The SILs bit can also be found in the operational status message, message bit 87 (or ME bit 55). The definitions are:

SILs=0: probability is

*per hour*basedSILs=1: probability is

*per sample*based

The values related to SIL remain the same as shown in Table 1.10.

NACp and NACv in version 2 remain the same as in version 1. Related parameters and definitions can be found in the previous Table 1.8 and Table 1.9, respectively.