Channel Coding

Due to the unstable nature of the radio media, especially in case of HF links a number of techniques have been designed to protect data and ensure a high degree of error free transmission. This is especially important for the transmission of encrypted information.

Channel coding is about improving performance by providing techniques which can be used to combat fading, jitter, noise and other perturbations which are properties of time-varying channels as radio channels.

To protect the data extra (redundant) information must be added to the (source encoded) data to be protected. Bits are either added to existing source code, or the source alphabet is converted into a completely new alphabet before channel transmission. In addition certain procedures, protocols, are used for the exchange of information.

Depending on the nature of the radio link – simplex, half-duplex or duplex - channel coding and protocols have been devised to detect and/or correct transmission errors.

Traffic between users may be handled in a number of ways depending on requirements and equipment available.

niels

Top – Simplex (one-way), transmission in only one direction

Middle – Half-duplex, transmission in either direction, not simultaneously

Down – Full-duplex, simultaneous transmission in both directions

ARQ is a technique by which the Information Sending Station (ISS) transmits information in such a way that the Information Receiving Station (IRS) is able to detect transmission errors and then ask for repetition of the character or block of characters in error. This technique is used in half-duplex and duplex channels.

Several methods are used for error detection and possible error correction. One method is the use of parity-check codes. One such code in international use for ARQ is the balanced ITA-3 code, consisting of seven bits with a constant mark-space ratio of 3:4. A ratio different from 3:4 in a received codeword will be an error and a RQ (Request for Repetition) is issued. This code has no correcting capability.

ASCII is also a parity checking code. The Russian CIS-36 mode combines m-ary modulation with parity checking. In this case, the data to be sent is formed into blocks and parity is calculated for both rows and columns – horizontal and vertical parity check.

Another ARQ code is the ARQ-1A parity code. The code words of this code also consist of seven bits; 6 data bits and 1 parity bit. The parity bit is set to 1 or 0 depending on the number of logical '1's in the six data bits of the codeword.

The Bulgarian ASCII system uses yet another form of parity check called block coding. A checksum is calculated for a data block and appended to the transmitted block. The IRS calculates the checksum once again and compares the result with the checksum received. If the checksums are not equal a RQ is issued. The checksum calculation is often done using a method called a Cyclic Redundancy Check (CRC).

In simplex systems there is of course no return channel, so the IRS cannot request repetitions. Therefore the codes used must be very robust and be able to correct errors at the receiving end - Forward Error Correction (FEC) is used.

Intensive research has led to the development of a large number of block codes with superior error detection and correction features, e.g., Hamming, BCH, Golay and Reed-Solomon codes.

One of the worst enemies of simplex links is burst noise, which may corrupt many successive bits. To combat this type of noise, bit spreading or bit interleaving is used. The bits of successive code words are spread in time. In this way burst errors will only influence a few bits of each codeword, and the error correcting code may have a decent chance to correct the errors. The HNG-FEC and RUM-FEC channel codes use this method.

Another method is codeword repetition, in which a code word is repeated several characters later in the transmission. To improve error detection and correction, the repeated character may be bit-inverted. The original character and the repeated character are then compared at the IRS. SI-FEC and SITOR-B are examples of this type of code.

One code type has been successful in particular; that is the convolutional code, in which the value of the parity bits depends of the values of a number of preceding data bits. The data bits are shifted through a shift-register with taps. The output of the taps is EXORed to form the value of the parity bits. After convolution the bits are interleaved to further improve noise immunity. FEC-A uses this method. Convolutional coding and the related Viterbi decoding have found widespread use in satellite communication.

Modern communication systems often utilize a combination of coding schemes to obtain higher invulnerability against errors at a lower complexity level. Thus in satellite communication, codes are concatenated; that is to say, a convolutional inner code towards the modulator is concatenated with a Reed-Solomon outer code, with an interleaver inserted in between. Recent research has refined the concatenated coding and added an iterative decoding algorithm to achieve what is called turbo coding. Further research has led to the discovery of so called Low Density Parity Codes (LDPC), the use of which has enabled communicators to come very close to the theoretical bandwidth limit of a communication channel.

Modern technology has enabled more sophisticated approaches to combat the challenges of radio communication. Inter-symbol interference is one such challenge. Due to the time-varying nature of fading channels one symbol may be delayed in such a way that it interferes with the next symbol at the receiving end. By shaping the digital pulses in certain patterns, the level of ISI may be reduced. The raised cosine pulse shape is the shape most frequently used in conjunction with equalization.