Tuesday, June 4, 2019
Fundamentals of block coding
Fundamentals of thrust codingABSTRACT In this essay the staple fundamentals of circumvent coding as a type of earlier demerit bailiwick mark, as well as an example of such a code, are examined, in order to bring out the importance of misapprehension correction in digital talk systems. In the archetypical go away, the theory around error correction codes and types is pictureed with special emphasis on the skirt codes, their properties and the problems they encounter. In the second part the most popular block code, Reed-Solomon code, is discussed along with its mathematical formulation and the most common applications that implement it.INTRODUCTION all over the past years, there has been an extraordinary development in digital conversations especially in the areas of mobile phones, personal computers, satellites, and computer conversation. In these digital communication systems, info is represented as a sequence of 0s and 1s. These double star bits are expressed as an alog signal waveforms and then transmitted over a communication channel. Communication convey, though, induce interference and noise to the transmitted signal and corrupt it. At the receiver, the corrupted transmitted signal is modulated back to double star bits. The received binary info is an evaluation of the binary info being transmitted. Bit errors may occur because of the transmission and that bite of errors depends on the communication channels interference and noise hail. Channel coding is used in digital communications to protect the digital information and reduce the number of bit errors caused by noise and interference. Channel coding is mostly achieved by adding redundant bits into the transmitted data. These additional bits allow the watchion and correction of the bit errors in the received information, indeed providing a much much reliable transmission. The cost of using channel coding to protect the transmitted information is a reduction in data transfer rate or an increase in bandwidth.1. FORWARD fault CORRECTION BLOCK CODES1.1 ERROR DETECTION CORRECTION Error detection and correction are methods to make sure that information is transmitted error free, even across unreliable networks or media.Error detection is the ability to detect errors callable to noise, interference or other problems to the communication channel during transmission from the transmitter to the receiver. Error correction is the ability to, furthermore, recreate the initial, error-free information. There are two basic protocols of channel coding for an error detection-correction systemAutomatic Repeat-reQuest (ARQ) In this protocol, the transmitter, along with the data, sends an error detection code, that the receiver then uses to check if there are errors present and requests retransmission of erroneous data, if found. Usually, this request is implicit. The receiver sends back an acknowledgement of data received correctly, and the transmitter sends again anything not acknowledged by the receiver, as fast as possible.Forward Error Correction (FEC) In this protocol, the transmitter implements an error-correcting code to the data and sends the coded information. The receiver never sends any messages or requests back to the transmitter. It just decodes what it receives into the most liable(predicate) data. The codes are constructed in a way that it would remove a great amount of noise to trick the receiver interpreting the data wrongly.1.2 FORWARD ERROR CORRECTION (FEC) As mentioned above, forward error correction is a system of controlling the errors that occur in data transmission, where the sender adds additional information to its messages, excessively known as error correction code. This gives the receiver the power to detect and correct errors (partially) without requesting additional data from the transmitter. This means that the receiver has no real- era communication with the sender, thus send forgenot verify whether a block of da ta was received correctly or not. So, the receiver must decide intimately the received transmission and subdue to either repair it or report an alarm. The advantage of forward error correction is that a channel back to the sender is not needed and retransmission of data is usually avoided (at the expense, of course, of higher bandwidth requirements). Therefore, forward error correction is used in cases where retransmissions are rather costly or even impossible to be made. Specifically, FEC data is usually implemented to mass storage devices, in order to be protected against corruption to the stored data. However, forward error connection techniques add a bowed down(p) burden on the channel by adding redundant data and delay. Also, many forward error correction methods do not quite respond to the true environment and the burden is there whether needed or not. Another great disadvantage is the lower data transfer rate. However, FEC methods reduce the requirements for power variety . For the same amount of power, a lower error rate can be achieved. The communication in this situation remains simple and the receiver alone has the responsibility of error detection and correction. The sender complexity is avoided and is now entirely assigned to the receiver. Forward error correction devices are usually placed close to the receiver, in the first step of digital processing of an analog signal that has been received. In other words, forward error correction systems are often a necessary part of the analog to digital signal conversion operation that also contain digital mapping and demapping, or line coding and decoding. Many forward error correction coders can also produce a bit-error rate (BER) signal that can be used as feedback to optimize the received analog circuits. bundle controlled algorithms, such as the Viterbi decoder, can receive analog data, and output digital data. The maximum number of errors a forward error correction system can correct is initially defined by the design of the code, so different FEC codes are suitable for different situations. The three main types of forward error correction codes are break codes that work on fixed length blocks (packets) of symbols or bits with a predefined surface. Block codes can often be decoded in polynomial time to their block size.Convolutional codes that work on symbol or bit streams of indeterminate size. They are usually decoded with the Viterbi algorithm, though other algorithms are often used as well. Viterbi algorithm allows infinite optimal decoding efficiency by increasing limited length of the convolutional code, but at the cost of greatly increasing complexity. A convolutional code can be transformed into a block code, if needed.Interleaving codes that have alleviating properties for fading channels and work well combined with the other two types of forward error correction coding.1.3 BLOCK CODING 1.3.1 OVERVIEW Block coding was the first type of channel coding implemented in early mobile communication systems. There are many types of block coding, but among the most used ones the most important is Reed-Solomon code, that is presented in the second part of the coursework, because of its extensive use in famous applications. Hamming, Golay, Multidimensional parity and BCH codes are other well-known examples of classical block coding. The main feature of block coding is that it is a fixed size channel code (in contrary to source coding schemes such as Huffman coders, and channel coding techniques as convolutional coding). Using a preset algorithm, block coders take a k-digit information word, S and transform it into an n-digit codeword, C(s). The block size of such a code exit be n. This block is examined at the receiver, which then decides about the validity of the sequence it received.1.3.2 FORMAL TYPE As mentioned above, block codes encode strings taken from an alphabet set S into codewords by encoding to each one letter of S independently. Suppos e (k1, k2,, km) is a sequence of natural numbers that each one less than S . If S=s1,s2,,sn and a specific word W is written as W = sk1 sk2 skn , then the codeword that represents W, that is to say C(W), isC(W) = C(sk1) C(sk2) C (skm)1.3.3 HAMMING DISTANCE Hamming Distance is a rather significant parameter in block coding. In continuous variables, distance is measured as length, angle or vector. In the binary field, distance between two binary words, is measured by the Hamming distance. Hamming distance is the number of different bits between two binary sequences with the same size. It, basically, is a measure of how apart binary objects are. For example, the Hamming distance between the sequences 101 and 001 is 1 and between the sequences 1010100 and 0011001 is 4. Hamming distance is a variable of great importance and usefulness in block coding. The knowledge of Hamming distance can determine the capability of a block code to detect and correct errors. The maximum number of errors a block code can detect is t = dmin 1, where dmin is the Hamming distance of the codewords. A code with dmin = 3, can detect 1 or 2 bit errors. So the Hamming distance of a block code is preferred to be as high as possible since it directly effects the codes ability to detect bit errors. This also means that in order to have a boastfully Hamming distance, codewords need to be larger, which leads to additional overhead and reduced data bit rate. After detection, the number of errors that a block code can correct is given by t(int) = (dmin 1)/21.3.4 PROBLEMS IN BLOCK CODING Block codes are constrained by the sphere packing problem that has been quite significant in the last years. This is easy to picture in two dimensions. For example, if somebody takes some pennies flat on the table and push them together, the result will be a hexagon pattern like a bees nest. Block coding, though, relies on more dimensions which cannot be visualized so easily. The famous Golay code, for instance, applied in deep space communications uses 24 dimensions. If used as a binary code (which very often it is,) the dimensions refer to the size of the codeword as specified above. The theory of block coding uses the N-dimensional sphere model. For instance, what number of pennies can be packed into a circle on a tabletop or in 3-dimensional model, what number of marbles can be packed into a globe. Its all about the codes choice. Hexagon packing, for example, in a rectangular box will leave the four corners empty. Greater number of dimensions means smaller percentage of empty spaces, until eventually at a certain number the packing uses all the available space. These codes are called perfect codes and there are very few of them. The number of a single codewords neighbors is another dot which is usually overlooked in block coding. Back to the pennies example again, first pennies are packed in a rectangular grid. Each single cent will have four direct neighbors (and another four at the four corners that are farther away). In the hexagon formation, each single penny will have six direct neighbors. In the same way, in three and four dimensions there will be twelve and twenty-four neighbors, respectively. Thus, increasing the number of dimensions, the close neighbors increase rapidly. This results in that noise finds numerous ways to make the receiver choose a neighbor, hence an error. This is a fundamental constraint of block coding, and coding in general. It may be more difficult to cause an error to one neighbor, but the number of neighbors can be so big that the probability of total error actually suffers.
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.