WAAS correction message

pstan

Pre-takeoff checklist
Joined
May 17, 2009
Messages
168
Display Name

Display name:
Stan
The below quote is from the US AIM. Just looking for some information on what this correction message would actually contain.


Thought 1 wonders if the waas unit in the aircraft somehow takes this message (essentially a displacement correction dependant on lat and long), applies the lat long of the airport, and comes up with the local displacement error which is then applied to the gps position produced?


Thought 2 wonders if (as stated in the AIM) the correction message is not a distance, but includes the corrections to be applied for satellite clock errors (ie, a time correction), ehpemeris errors (ie a satellite position correction), and effects of ionosphere propagation (ie a time adjustment). The aircraft waas unit then uses these small corrections in satellite position and time, and thus calculates on it's own a more accurate position?


Is either Thought the correct one?


3. Unlike traditional ground-based navigation aids, WAAS will cover a more extensive service area. Precisely surveyed wide-area ground reference stations (WRS) are linked to form the U.S. WAAS network. Signals from the GPS satellites are monitored by these WRSs to determine satellite clock and ephemeris corrections and to model the propagation effects of the ionosphere. Each station in the network relays the data to a wide-area master station (WMS) where the correction information is computed. A correction message is prepared and uplinked to a geostationary satellite (GEO) via a ground uplink station (GUS). The message is then broadcast on the same frequency as GPS (L1, 1575.42 MHz) to WAAS receivers within the broadcast coverage area of the WAAS GEO.
 
The below quote is from the US AIM. Just looking for some information on what this correction message would actually contain.
It is message that is not available to the user. It is a formatting message to the GPS similar to the RTCM messages:

1.1 [Rb] WAAS DGPS corrections in a format similar to RTCM message 1.
Binary message

struct WaasDgpsRtcmData {
+ u1 n; // Total number of corrections (satellites)
+ DgpsRtcmData[n]; // Satellite data
+ u1 cs; // Checksum
};

Where DgpsRtcmData has the following format:

struct DgpsRtcmData {
+ u1 prn; // Satellite PRN
+ u2 Zcount; // Z count
+ f4 RangeCor; // Range correction [meters]
+ f4 RangeRateCor; // Range rate correction [meters/sec]
+ u1 Udre; // User defined range accuracy [meters].
// Computed using WAAS ICD
+ u1 Issue; // Iode (ephemeris issue number).

This is also is some background on the message format

http://kom.aau.dk/~borre/masters/receiver/rtcm2asc.htm
 
Last edited:
Thought 1 wonders if the waas unit in the aircraft somehow takes this message (essentially a displacement correction dependant on lat and long), applies the lat long of the airport, and comes up with the local displacement error
Your WAAS unit doesn't compute displacement error - it is given the correction in a message from a WAAS satellite then it applies this correction to every computed position.
 
It is message that is not available to the user. It is a formatting message to the GPS similar to the RTCM messages:

1.1 [Rb] WAAS DGPS corrections in a format similar to RTCM message 1.
Binary message

struct WaasDgpsRtcmData {
+ u1 n; // Total number of corrections (satellites)
+ DgpsRtcmData[n]; // Satellite data
+ u1 cs; // Checksum
};

Where DgpsRtcmData has the following format:

struct DgpsRtcmData {
+ u1 prn; // Satellite PRN
+ u2 Zcount; // Z count
+ f4 RangeCor; // Range correction [meters]
+ f4 RangeRateCor; // Range rate correction [meters/sec]
+ u1 Udre; // User defined range accuracy [meters].
// Computed using WAAS ICD
+ u1 Issue; // Iode (ephemeris issue number).

This is also is some background on the message format

http://kom.aau.dk/~borre/masters/receiver/rtcm2asc.htm

Those copy and pasted structs aren't of any use when it comes down to answering his question of what the message would actually contain. That is after their code has already parsed the message and they're building their data type.

I don't think there is any rate information in a WAAS message. I think they're calculating that in their code and then populating that struct..which is why that struct isn't a good indicator.

The actual message is 250 bits long and is transmitted at 250 bits per second, taking one second. It will contain the message type (there are many), the message, some parity bits, and a checksum. There are different messages that are sent. There are fast error estimates, longer term error estimates, etc. If you're *THAT* interested in it..the spec is out there.

It's been awhile since I've looked at this. At one point I thought it'd be cool to build my own GPS receiver and write the code for it when I was more into amatuer radio.
 
Those copy and pasted structs aren't of any use when it comes down to answering his question of what the message would actually contain. That is after their code has already parsed the message and they're building their data type.

I don't think there is any rate information in a WAAS message. I think they're calculating that in their code and then populating that struct..which is why that struct isn't a good indicator.

The actual message is 250 bits long and is transmitted at 250 bits per second, taking one second. It will contain the message type (there are many), the message, some parity bits, and a checksum. There are different messages that are sent. There are fast error estimates, longer term error estimates, etc. If you're *THAT* interested in it..the spec is out there.
Look closer. I posted the link to an excerpt of the message construct. The only database I found the actual standard was a pay per view one. I had access to it, but the copyright agreement also stated that info was not to be released to non-subscribers.

Here is the excerpt form the link I had posted that I think you missed.
The RTCM standard

The message format is illustrated in figure 1.1:

gpsword.gif

[SIZE=-1]Fig 1.1: The thirty-bit GPS word[/SIZE]

Each message consists of two or more thirty-bit words. The first two words of any message contains the header information which is common to all message types.
Of the thirty bits, 24 carry the data and 6 are used for parity. The parity algorithm used is identical to the one used in standard GPS data transmission3. This means that for each word to be decoded correctly bits 29 and 30 from the previous word must be known, which poses some initialization problems.
When these thirty-bit words must be represented in an eight-bit environment a special "6 of 8" format must be used. Each byte contains 6 bits from the GPS word, setting the remaining 2 bits "marking" and "spacing" respectively (1 and 0) as shown in figure 1.2:

sixof8.gif

[SIZE=-1]Fig 1.2: The five byte representation using the "6 of 8" format[/SIZE]

The RTCM standard specifies that the bits must be ordered according to the "Most Significant Bit First Rule" whereas the ANSI X3.15-1976 standard requires the bits to be arranged according to the "Least Significant Bit First Rule". This results in a "byte roll" where the order of the bits within the byte is reversed.
As a result of the "6 of 8" format each GPS word takes up 5 bytes which means the entire message must have a size which is a whole multiple of five.
Couple that with what each of the fields is and you have a pretty good idea of the construct of the message.
 
Last edited:
Mr Pumpkin, off of the link you gave about all I understand is:

Command line parameters
Satellite ID number
Pseudorange corrections
Range-rate corrections
Delta Pseudorange corrections
Delta Range-rate corrections
Uncorrected Pseudranges
Uncorrected Carrier Phases
ECEF Position
Special GPS message

So...I presume then that my "Thought 1" is fairly correct, and not "Thought 2"?

Olasek,
Isn't the correction different depending on your lat and long? If the unit just applies the correction given, as you said, how does the waas satelite that is sending this correction know my lat long in order to send the correct one?

and Jesse,
can you tell me if thought1 is essentially correct, or thought2? Or perhaps your own thoughts?
 
The one thing of which I am certain on this issue is that you should never be asked this question on an IR practical test or IPC.
 
Smigaldi,
Perhaps I should apoligize, because I did say in my initial post I was looking for what information was in the message from the geostationary satelite, and this is what you replied with.

Actually, I was looking for the a simple explanation of what the waas unit on board an aircraft would do with this information, which are what my Thoughts1, and Thoughts2 were considering.

And now I'm wondering if the correction is necessarily different depending on the lat and long on the aircraft. If I understand correctly, an aircraft in Maine would receive information from the same waas satellite as an aircraft in Forida. But, would the correction be the same?
 
And now I'm wondering if the correction is necessarily different depending on the lat and long on the aircraft. If I understand correctly, an aircraft in Maine would receive information from the same waas satellite as an aircraft in Florida. But, would the correction be the same?
I don't think so, because the effects of things like ionospheric bending vary depending on where you are in relation to the satellite and the ionosphere, and due to the difference in view, you'll be using different satellites when you're in Florida vs Maine.
 
Smigaldi,
Perhaps I should apoligize, because I did say in my initial post I was looking for what information was in the message from the geostationary satelite, and this is what you replied with.
No need to apologize. I was only able to answer that part of the question. I have no idea how it is used once in the unit. That is why I edited out that part of you post when I replied. What you are asking is an implementation issue and both ideas require some thought. My guess is that your thought 1 is the more likely solution as thought 2 would create some propagation that may need some feedback and presumes that at least a position is known precisely. But if the position is precisely known then why is a correction needed? Hmmmm. I am still thinking it through.
 
Last edited:
Ron, that's what I was thinking. But then, how would a waas unit in an aircraft in Maine get a different correction message from a waas unit in Forida?
 
Ron, that's what I was thinking. But then, how would a waas unit in an aircraft in Maine get a different correction message from a waas unit in Forida?
It's not the content of the message, it's how it's used in combination with the other data. If, for example, the message is that satellite 23 is off by .01 nanoseconds, then the x, y, and z corrections in my position will be different from those 1500 miles away depending on the relationship of my position and the other position to that of the satellite.
 
The GPS system will never tell you where you're at. The WAAS messages mostly consist of clock and ephemeris corrections. It also sends estimates for the ionospheric delay for a grid of different locations.

A single geostationary WAAS satellite sends correction messages for all 24 satellites. Those correction messages are provided by the ground reference stations which the waas satellite repeats.

So yes, the ionospheric delay is different depending on where you're at..But it is blasted down for all locations.

In my opinion, your thought 2, is the most correct. I could be totally wrong on all of this though :D
 
I'm with Jesse. The WAAS satellite sends messages about known errors with the constellation satellites. The receiver uses that "error correction" data in combination with the received data from the constellation, and corrects as necessary.

Put another way, the WAAS info doesn't say "if you're over florida, you're 20 meters east of where you think you are". It says "If you're using satellite 21, it's 20 milliseconds behind and it's orbit is off by XXX". The receiver can then say "I think I'm 500 miles from satellite 21, but with this correction I'm really 500.234 miles" and then get a different circle of position. Repeat 3 more times with 3 more satellites and you know where you are!.

Also like Jesse, I'm guessing, but it seems consistent and logical based on the data given.
 
Olasek,
Isn't the correction different depending on your lat and long?
It depends on a rather large area. So the correction is specific to that area (actually to be very precise correction is specific to every ground reference station). Also your GPS unit will perform interpolation if it happens to straddle two (or more) different nearby areas, it will compute correction for your particular area based on all the known corrections for every nearby reference station. I think there are about 15-20 such stations in the US. So a WAAS satellite doesn't have to know what is your lat,long.

But then, how would a waas unit in an aircraft in Maine get a different correction message from a waas unit in Forida?
No, they all get the same message, in this message they get a list of all current corrections for all reference stations. Based on that info a unit in Maine will compute a different correction than a unit which is in Florida using interpolation which I mentioned earlier.

Personally, I neither like your Thought #1 nor #2. They both contain ambiguous or misleading statements.

EDIT: there are 25 ground reference stations
 
Last edited:
Stan,

Your explanation number two is the closest. The WAAS geo satellites transmit error corrections for the entire constellation, including the ranging signal that comes from the GEO satellites. Some errors are of short duration and are sent more frequently and others are of longer duration, such as the ionospheric corrections which are transmitted as a grid covering the service area. Each receiver then corrects each satellite for its errors and applies the ionospheric correction based on where the satellite is and where the aircraft is located.

As noted before, the two Geo satellites provide the WAAS correction information, but also provide the ranging information that regular GPS satellites provide. Currently there are 31 GPS satellites of which #1, #24, #25 and sometimes #30 are not being used, leaving 27 active satellites plus the two extra geo satellites.
 
Stan,

Your explanation number two is the closest. The WAAS geo satellites transmit error corrections for the entire constellation, including the ranging signal that comes from the GEO satellites. Some errors are of short duration and are sent more frequently and others are of longer duration, such as the ionospheric corrections which are transmitted as a grid covering the service area. Each receiver then corrects each satellite for its errors and applies the ionospheric correction based on where the satellite is and where the aircraft is located.

As noted before, the two Geo satellites provide the WAAS correction information, but also provide the ranging information that regular GPS satellites provide. Currently there are 31 GPS satellites of which #1, #24, #25 and sometimes #30 are not being used, leaving 27 active satellites plus the two extra geo satellites.

So which SV#s are the geostationary ones?
 
OK thanks all, I've done some reading the last few weeks. And the thread on waas and its benefits has good info too.

Collins, Metzinger, Olasek, Ron, Jesse, you all seem to have been spot on.

This link below is interesting, if you ever want to see how good the coverage is for NPAs.

http://www.nstb.tc.faa.gov/RT_NPACoverage.htm
 
I've always thought of WAAS as having a bunch of ground stations that take GPS signals and say "OK, I know exactly where I am, and I know where the GPS satellites are telling me that I am, so if I apply these corrections to the GPS signals, they'll match up...so if you apply those corrections, you'll get a more accurate position too."

Mathematically, don't ask me how it happens, but think of it this way:

GPS Position + Corrections = Actual Position

The WAAS ground stations know the GPS Position and the Actual Position, so Corrections = Actual - GPS.

Now the WAAS broadcasts out that correction, and you have a GPS, so you can calculate your Actual.
 
Back
Top