Digital Selective Calling Error Detection

VHF Marine Band radios, protocol, radio communication theory, practical advice; AIS; DSC; MMSI; EPIRB.
jimh
Posts: 11673
Joined: Fri Oct 09, 2015 12:25 pm
Location: Michigan, Lower Peninsula
Contact:

Digital Selective Calling Error Detection

Postby jimh » Fri Jan 20, 2017 12:29 pm

In Digital Selective Calling (DSC) radios, such as the now very common VHF Marine Band CLASS-D DSC radio, information is transmitted with digital encoding. There is a general notion that when data is sent in digital encoding there will be some sort of error checking protocol used so that the receiver of the data can verify immediately that the data he has recovered was an accurate copy of the data that was sent. If the receiver detects an error in the data he has received, the data is usually discarded and a request is made to the sender to repeat transmission of the message. This method is quite useful when the sender and receiver have a bi-directional communication link between them. The method of sending a digital message with an error check encoding is very common in data communications when there are only two participants (one sender and one receiver) and there is a bi-directional communication link between them.

When a DSC radio makes a digital transmission, it is sending a BROADCAST transmission, that is, the radio is just transmitting; it is not engaged with a particular receiver in a bidirectional link. The DSC radio just sends its message, and it hopes that the receiver of the message gets an accurate copy. It is the nature of VHF radio that, absent some very special provisions, a radio can only either send or receive, and can't do both at once. (This is particularly difficult with DSC because all the transmissions are on one frequency, so when a DSC radio is transmitting it really cannot be effectively listening for another station to be replying.) When a message is being sent that is intended for only one recipient, it could be possible that the two stations could engage in a two-way conversation (if the protocol allowed for that, which DSC does not). The receiver could ask the sender to retransmit all or part of the message if it was not received accurately. However, in DSC the sending of some messages, particularly the most import ones called DISTRESS ALERT messages, the message is sent to ALL STATIONS. It is impractical for the sender to interact with all other stations in a bi-directional link to verify each receiver got the message correctly.

To increase the probability the message will be received accurately, a method of error detection is used. The manner in which the message is encoded is chosen to provide for some content of the message encoding to allow for the receiver to detect errors. In the case of DSC messages, the techniques used are explained in the applicable recommendation from the International Telecommunications Union, ITU-R. M.493-14.. (See Annex 1, paragraph 1.1 through paragraph 1.2.1.)

The error detection method used in DSC is to limit the data to be encoded to 128 symbols. The 128 symbols are represented by seven-digits of binary code. To these seven-digits are added three more digits of error-correction code. The three-digit error correction code represents a binary number encoding of values of 0 to 7, and the code indicate the number of zeros that occurred in the seven data bits. For example, if the data bits were 0000000 then the error-correction code bits would be 111 (presenting (1 x 1) + (1 x 2) + (1 x 4) or 1+2+4 or) 7 zeros. If the data bits were 1111111 then the number of zeros would be 0 and the error-correction code would be 000.

In addition to the error detection encoding of the data, the DSC protocol also adds further redundancy: each ten-digit symbol is transmitted twice in the radio message. When a symbol is initially transmitted, it is retransmitted a second time after four other symbols have been sent. This provides time diversity. At the rate of data transmission used for VHF (1,200-baud) the interval between symbols being initially sent and then re-sent will be about 33.5-milliSeconds. If some burst of noise at the receiver wipes out a symbol's initial transmission, it can be received again 33.5-milliseconds later.

I can see that this method should give the receiver a good chance to detect errors, but I haven't quite figured out how (or if) this encoding of seven data bits into a ten bit data string allows error correction of all possible errors. The answer to that seems to involve a lot of mathematics--more than I can handle or explain. If any mathematician or computer scientist or data communication expert is reading this, feel free to elaborate on the capacity of this ten bit coding to be able to correct errors. The recommendation also includes the advice to use an "iterative decoding process," which, again, is something about which I lack any insight. So readers should feel free to jump in on that topic, too. At first glance it seems to me to mean that the receiver ought to look for that retransmitted byte if the first one he got turns out to have an error in it.

jimh
Posts: 11673
Joined: Fri Oct 09, 2015 12:25 pm
Location: Michigan, Lower Peninsula
Contact:

Re: Digital Selective Calling Error Detection

Postby jimh » Sun Jan 22, 2017 10:48 am

In addition to the error-checking coding used for every 10-bit symbol transmitted in a DSC message, the entire message content is then used to create a separate error-detection code to check the integrity of the whole message. This additional error check will detect any errors not discovered by the individual 10-bit error-checking codes. (See Section 10 of the ITU recommendation; linked above.)

A further burden is placed on calls whose FORMAT SPECIFIER is either ALL SHIPS or DISTRESS ALERT in order to prevent false alerts. The receiver must properly decode both the initial and the repeated transmission of this symbol in the received message in order to consider the message to be valid. For DSC calls of other formats, such as calls to an individual recipient (where the recipient's MMSI or address is part of the message), other fields in the message serve to verify the format, and calls of those types can be considered valid if only one of the two transmission of the data is correct. (See Section 4.2 of the ITU recommendation; linked above.)

The practical effect of this: if your DSC radio alerts you to a DISTRESS ALERT call, there is very high probability that you received a completely valid transmission of a distress alert or MAYDAY situation from another vessel.