Why does ADS-B broadcast velocity?

I just read on opensky-network (scroll down to the section "facts") that ADS-B transmits roughly as many velocity as position messages.

Since the velocity of an aircraft can be computed from two successive position broadcasts, why is the velocity transmitted directly?

3 Answers

The "position" and "velocity" include more than what the title would suggest.

Airborne position gives you:

• Latitude/longitude
• Altitude

Airborne velocity gives you:

• Horizontal ground speed vector
• Vertical rate
• Air speed (when ground speed not available, can be true or indicated)
• Heading (when ground speed is not available)

Together these two message types give you all the basic information you need about an aircraft's location and velocity. You are correct that given two lat/lon/altitude points, you can calculate the average horizontal speed, heading, and vertical rate. Keep in mind that ADS-B is already using the Compact Position Reporting format which calculates position with either two sequential messages or a reference position.

In addition to the additional computation cost, the measurement accuracy also needs to be considered. ADS-B broadcasts a "Navigation Integrity Category" or NIC, which expresses the accuracy of the GPS position. In terminal airspace, ADS-B is required to have about +/-300 feet in positional accuracy. While this is sufficient for giving general position and providing separation, it would create a lot of error in computing velocity. In reality the positions are fairly consistent but data errors still happen.

• The reasons why successive position estimates are NOT utilized on GPS receivers for determining velocity vectors include: 1,) position updates are 1Hz and have substantial individual position errors, 2.)velocity estimates utilizing Doppler with 4 or more SA and the local clock, is continuous, and with an extremely low computational cost, 3.) ALL modern aviation GPS units have internal velocity estimates which are intrinsically MUCH more accurate than simple positional estimates. Nov 7, 2017 at 16:03
• Why is airspeed only transmitted if ground speed is not available? Mar 23, 2023 at 19:27

GPS receivers can get very accurate velocity vector information. It is part of the receiver architecture, and does not require a separate processing of prior positions.

So the velocity information is "free" and actually is much more accurate than the position information.

From a global architecture standpoint, it is far preferable to provide the velocity vector than it is to defer the calculation to a ground station, and because of the accuracy, it is desirable to use the velocity vector from the receiver rather than to rely of historical points to calculate that velcity vector value.

Those are factors in the architecture of ADS-B and the data fields.

Addendum #1: The OP asks, "Since the velocity of an aircraft can be computed from two successive position broadcasts, why is the velocity transmitted directly?" There are two parts of the answer. The first is that the velocity information is available from the GPS receiver and is magnitudes more accurate than the position estimation, and happens at a much higher rate than the position estimations needed for a velocity estimation. The OP surmises that successive position estimates can be used for a velocity estimation, but a velocity estimate determined that way will have substantial error, and latency. The second is that the standard says that velocity information will be transmitted. Of course it was designed that way because the continuous, low latency and high accuracy velocity information was available from the GPS (utilizing the Doppler of each SA L1 carrier against the local clock or other method).

• I was not aware of the fact that using a GNSS yielded an accurate velocity vector. This explains a lot, thanks. I will read more about the receiver architecture.
– Gab
Nov 7, 2017 at 7:27
• Within the industry, this is well known, but for a variety of reasons, not well written about in the open literature. The single channel receiver on the Garmin 90, a couple of decade old aviation single channel GPS unit, was accurate to nearly millimeter velocity determinations even when SA was turned on. In the mid-1990's I was developing GMTI algorithms. To test accuracy we would push a car on a flat country road, and test our radar algorithms. We verified the speeds, which were well under 1km/hr using GPS velocity estimations. Nov 7, 2017 at 15:38
• While almost all the designs are proprietary, a common method employs Doppler off SA, using the pseudo range rate equations. The velocity information from the 1Hz position updates is very noisy and not very accurate. The Doppler can be calculated with the local clock, and is a couple of magnitudes more accurate. Only older very cheap handheld GPS use successive positions for velocity, and for decades marine and aviation units have used Doppler or similar methods for very accurate velocity estimations. The \$9 GPS chips I get use a TDCP methods. ref: insidegnss.com/node/4433 Nov 7, 2017 at 15:51
• If you have someone trying to tell you that GPS utilize successive position estimates for velocity vectors, I suggest that you consider other sources of expertise, as this has not been the engineering practice for decades, and those sources are not providing information representative of the current practice in the art. Nov 7, 2017 at 15:53
• @Gab, it is a big deal in quite a few sectors of position, navigation and time (PNT). For example, if you are navigating a rocket, and controlling the trajectory, the rapid velocity estimate updates are far more useful than the rather spaced out (1Hz) position estimates. That means one can effectively manipulate the control surfaces on the rocket with tighter tracking control. It is less of a big deal when there is a hiker in the woods, and spurious position or velocity estimates can be tolerated. Nov 7, 2017 at 22:37

It sounds logical to have the velocity (speed) data in the ADS-B messages rather than computing it.

One of the reasons is the computational cost on the receiver side. In order to calculate the speed of a broadcaster from position data, the receiver must first translate(convert) the difference of consecutive positions into a distance unit (meters?). Then it must divide that value to the time-difference between two messages. It's totally unnecessary if the broadcaster is not a concern at all. However, if the speed is high enough, you'd have to mark it as a potential threat (for collision).

Now, suppose that you're receiving signals from 1000 broadcasters simultaneously, you'd have to 1000 computations simultaneously and continuously. This is a problem of scales.

On the broadcaster side, speed is a readily available value, and it takes little effort to broadcast it.

• Why would a GPS receiver system "translate" position information to velocity information when the User Range Rate Error of US GPS is <0.006m/sec over any 3 second interval, with 95% probability? Simple knowledge of GPS receiver attributes and the ADS-B application of GPS data makes the "translate/convert" mentioned superflous! In reality it does not happen that way. Stated differently, show me an ADS-B and GPS pair which do it the way described. Nov 7, 2017 at 16:10
• @mongo maybe my answer is misunderstood. I emphasized the same as you said. Doing the mentioned calculation off-board (on another aircraft) is a waste of resources. Nov 7, 2017 at 16:12
• A fine point is that there is no need to do a calculation locally, the data is already there in the GPS receiver, using the Doppler shift of each satellite off the local clock, and it is far more accurate than utilizing successive range estimates. Nov 7, 2017 at 16:46
• Sure, the question is essentially asking about calculating the speed of one aircraft A on another aircraft B using position of aircraft A only. I assumed that self speed is already known by aircraft A, in the last paragraph this can be seen. I didn't want to go into details of GPS and other systems. I think the question would be sufficiently answered by the architectural considerations. Nov 7, 2017 at 16:57
• And why would this be difficult for the receiver to do, exactly? 1000 simple calculations per second is nothing. Do 1000 simple calculations per nanosecond, and you have a small problem. Jan 10, 2020 at 12:55