THE THEORY OF CODING AND DECODING OF
BINARY INFORMATION AND ERROR DETECTION
Abstract: A communication process may take place in a variety of ways e.g. by making a telephone call, sending a message by a telegram or a letter , using a sign language etc. In all such cases the process involves the flow of some information carrying commodity which is conveyed from a sender to receiver. The information carrying commodity can vary from music to speech to electricity to water to a sequence of binary digits etc. In this paper we introduce some new coding and decoding functions and minimize the error in a distortion of the commodity being transmitted and correct the error.
Keywords: Code word, encoding functions, decoding functions, weight, and parity check code & distance function.
1. INTRODUCTION
In today’s modern world of communication, data items are constantly being transmitted from point to point. This transmission may result from the simple task of a computer terminal interacting with the mainframe 200 feet away via satellite that is parked in an orbit 20,000 miles from the earth, or from a telephone call or letter to another part of the country. The basic problem in transmission of data is that of receiving the data as sent and not receiving a distorted piece of data. Distortion can be caused by a number of factors. Coding theory has developed techniques for introducing redundant information in transmitted data that help in detecting, and sometimes in correcting, errors. Some of these techniques make use of group theory. Another entirely different problem that arises frequently in the transmission of data is that modifying the data being sent so that only the intended recipient is able to reconstitute the original data. These messages are transmitted in terms of codes. These transmitted messages to be corrupted by the presence of noise. Peripherals equipment associated with such system is by far the most unreliable component of these systems, and both error detection and error correcting codes is important first, it facilitates finding the properties of a code second and more importantly it makes the hardware
Jayesh Tiwari Associate Professor Department of Computer science Shri Vaishnav Institute of Management Devi-Ahilya University, Indore -452009
Madhya Pradesh, India.
Rajendra Tiwari Professor
Department of Mathematics Govt. Madhav Science College
Vikram University
realization of such codes which have been designed. The first part of this section is concerned with a simple communication models and the basic notion of error correction. The second part of the section deals with the design of codes. The last subsection is concerned with the topic of error recovery in which Lagrange’s theorem and the theory of Cossetsplay an important role.
2. OBJECTIVES
(1) To introduce some new coding and decoding functions. (2) Minimize the error in a distortionof the commodity being transmitted. (3) Correct the error.
Preliminaries:Now we begin with some definitions & basic theorems.
Definition 1.1:Word– A word is sequence of letters (symbols) from alphabets.
Definition 1.2 :Code- A collection of words, used to represent distinct messages is called a code.
Definition 1.3:Codeword’s:- codeword’s is a word in a code.
Definition 1.4 :Block code A block code is a code which consists of the words of same length.
Definition 1.5Sentences:Group of words with proper meaning is called a sentence.
Definition 1.6 Weight of the word: For any word x є Bm the numbers of 1’s in word x is called the
weight of the word x and is denoted by │x│.
Find the weight of each of the following words in B5:
(1) x=01000 (2) x=11100 (3) x=00000 (4) x=11111 .
Here weights of the word x are │x│=1, │x│= 3, │x│=0, │x│=5. Respectively
Definition 1.7 Messages: The basic unit of information, called a message, is a finite sequence of characters from a finite alphabet.
Definition 1.8Encoding Function:A one-to-one function f : Bm→ Bnthe function f is called an (m,n)
encoding function if every word in Bmas a word in Bn.
Definition 1.9Decoding Function: Suppose f : Bm→ Bn, is an (m,n) encoding function. If we define
onto function f-1: Bn→ Bmsuch that if f-1(xt)= b’ є Bmand transmission channel has no noise , then
Definition 2.0 Composition table:wechoose our alphabet the set { 0,1} every character or symbol that we want to transmit is now represented in binary form a word is a sequence of m 0’s and 1’s. The set B is a group under binary operation + whose composition table is shown. Since B is a group Z2 then + is
merely mod 2 addition then Bm = B B B……. B(m factors) is a group under the operation + defined
by
(x1,x2,x3,,,,,,,,,,,,,,,,xm) + (y1,y2,y3,,,,,, ym,) = (x1 +y1, x2+y2,,,,,,,,,,,,,,xm+ym) Its identity is 0=(0,0,0,…..0)
and every element is its own inverse. An element in Bm will be written as (b1,b2,b3,…..bm) observe that
Bm has 2m elements. That is , the order of the group Bmis 2m.
Table 1:Composition Table
+ 0 1
0 0 1
1 1 0
Methodology (The Process of sending Messages):The basics process of sending a word from one point to another point over a transmission channels an element x є Bmis sent through the transmission channel
as an element xtє Bm.
Figure 1:Process of sending Messages
In the actual practice, the transmission channel may suffer disturbances, which are generally called noise, due to weather inference, electrical problems, and so on, that may cause a 0 to be received as a 1, or vice versa. This erroneous transmission of digits in a word being sent give rise to the situation where the word received is different from the word that was sent that is, x ≠ xt.If an error does occur, then xtcould be any
element of Bm. The basic task in the transmission of information is to reduce the likelihood of receiving a
word that differs from the word that was sent. We define a one-to-one function f : Bm→ Bnthe function f
is called an (m,n) encoding function if every word in Bmas a word in Bn. If b є Bm, then f(b) is called
Word x є B
mtransmitted
Word x
received
tє B
nWord x є B
mtransmitted
the code word representing b. The additional 0’s and 1’s can provide the means to detect or correct errors produce in the transmission channels. We transmit the code words by means of a transmission channel then each code word x= f(b) is received as the word xtin Bn. This situation is illustrated
following figure.
Figure 2: Transmission of encoding function
Observe that we want an encoding function f to be one to one so that different words in Bm will be
assigned different code words. If the transmission channel is noiseless, then xt= x for all x in Bn. in this
case x=f(b) is received for each b є Bmand since f is a known function , b may be identified. In general
errors in transmission do occur. We will say that the code word x=f(b) has been transmitted with k or fewer errors if x and xt is not a code word ( thus xtcould not be x and therefore could not have been
transmitted).
Theorem 1.1: An (m,n) encoding functionf : Bm → Bn can detect k or fewer errors if and only if its
minimum distance is at least k+1.
Proof: Suppose that the minimum distance between any two code word is at least k+1. Let Word b є Bm
and let x=f(b) є Bnbe the code word representing b. Then x is transmitted and is received as xt. If xtwere
a code word different from x, then xt)≥ K+1, so x would transmitted with k+1 or more errors. Thus,
if x is transmitted with k or fewer errors, then
xtcannot be code word. This means that f can detect k or fewer errors.
Conversely, suppose that the minimum distance between code words is r≤k, and let x and y be code words with y)=r. If xt=y, that is,if x is transmitted and mistakenly received as y, then r≤k errors have been
committed and have not been detected. Thus it is not true that f can detect k or fewer errors.
MAIN RESULTS
Here we define encoding functions .i.e( f. : Bm → Bn) and find out the error in a distortion of the
commodity being transmitted.
Encoded Word
x=f(b) є B
nWord b є B
mtransmitted
Word x
tє B
a) Consider the following (m, 4m) encoding function f. : Bm→ Bn.
If b=b1b2b3…….bmє Bm,
Define by f(b) = f(b1b2b3….bm)=b1b2….bmb1b2…bmb1b2..bmb1b2..bm. That is, the encoding
function f repeats each word of Bmfour times.
Let m=4 then following code words are possible.
f(0000)=0000000000000000 f(0001)=0001000100010001 f(0010)=0010001000100010
f(0100)= 0100010001000100 code word f(1000)=1000100010001000
f(0011)=0011001100110011 f(1100)=1100110011001100 f(1010)= 1010101010101010 f(1001)= 1001100110011001 f(0110)= 0110011001100110 f(0101)= 0101010101010101
f(1110)= 1110111011101110 code words f(1101)= 1101110111011101
f(1011)= 1011101110111011 f(0111)= 0111011101110111 f(1111)= 1111111111111111
Suppose now that b=0101. Then f (b) i .e. f(0101)= 0101, 0101, 0101,0101. Assume now that the transmission channel makes an error in darkened number and we receive the word 0111010101010101. This is not a code word, so we have detected the error. It is not hard to see that any single error and any two errors can be detected.
b) Consider the following encoding function f : Bm→ Bm+1is called parity(m, m+1) check code.
f(b) =f(b1b2…bm)= b1b2….bmbm+1,
where bm+1= { 0 if │b│is even
{ 1 if │b│ is odd.
Observe that bm+1is zero if and only if the numbers of 1’s in b is an even number .It then follows
that every code word f(b) has even weight. A single error in the transmission of a code word will change the received word to a word of odd weight and therefore we can easily detect the error code words. Similarly we can see bm+1is 1 if and only if the number of 1’s in b is an odd number.
It then follows that every code word of f(b) has odd weight. A single error in transmission of a code word will change the received word to a word of even weight and therefore we can easily detect the error code word.
For a concrete illustration of this encoding function, let m=3. Then
f(000) = 0000 f(001) = 0011 f(010) = 0101 f(011) = 0110
f(100) = 1001 Code word f(101) = 1010
f(110) = 1100 f(111) = 1111
Suppose now that b=111. Then the code word x= f(b)=f(111)=1111. If the transmission channel transmits code word x as xt=1101, then │xt│ =3 and we know that an odd number of errors has
occurred. It should be noted that if the received word has even weight, then we cannot conclude that the code word was transmitted correctly, since this encoding function does not detect an even number of errors. Despite this limitation, the parity check code is widely used.
(a) 0100 (b) 1100 (c) 0010 (d) 1001
Yes No Yes No
2) Consider the (6,7) parity check code. For each of the received words, determine an error will be detected.
(a)1101010 – No (since even weight, so no error will be detected). (b)1010011– No (since even weight, so no error will be detected). (c)0011111 – Yes (since odd weight, so an error will be detected). (d)1001101– No (since even weight, so no error will be detected)
(2 ) Consider x and y be two words in Bm then the hamming distance y) between x and y is
weight, │x+y│ of x+y where distance between x=x1x2….xm and y=y1y2…ym is the number of
values of i such that xi≠yi, that is, the number of positions in which x and y differ. Using the
weight of x+y is a convenient way to count the number of different positions. We can easily check the error between two words.
1) Find the distance between x and y: where
(a) x= 110110, y=000101 (b) x=001100, y=010110
(b) (c) x=1100010, y= 1011100 (d) 1111000, y= 0000111
Solution : (a) x+y = 110110+000101 = 110011, so │x+y│ = 4.
a) x+y = 001100+010110 =011010, so │x+y│ = 3.
b) x+y = 1100010+1011100 =0111110, so │x+y│ = 5.
c) x+y = 1111000+ 0000111 =1111111,so │x+y│ = 7.
(d) (i) Consider the (2,6) encoding function ( f. : B2→ B6) define by
(a) f(00)= 000000 (b) f(10)=101010
(c ) f(01)=011110 (d) f(11)= 111000
Then find the minimum distance of f & how many errors will f detect?
Solution: (f(00), f(10)) = │(000000)+ (101010)│ = │101010│=3
(f(00), f(01))= │(000000)+ (011110)│ = │011110│=4
(f(00), f(11)) =│(000000)+ (111000)│ = │111000│=3
(f(10), f(01)) =│(101010)+ (011110)│ = │110110│=4
(f(10), f(11)) =│(101010)+ (111000)│ =│010010│=2
(f(01), f(11)) =│(011110)+ (111000)│ =│100110│=3
Hence we observed that minimum distance between all distinct pairs of code words is 2.
By Theorem1.1 we know that a code will detect k or fewer errors if and only if its minimum distance is at least k+1. Since here the minimum distance is 2,so we have,
2≥k+1
k+1≤2
k≤1.
So, the code will detect one or fewer errors.
f(000) = 00000000 f(001) = 10111000 f(010) = 00101101
f(011) = 10010101 Code words f(100) = 10100100
f(101) = 10001001 f(110) = 00011100 f(111) = 00110001
Then find the minimum distance of f & how many errors will f detect?
Solution: (f(000), f(001)) = │10111000│=4
(f(000), f(010))= │00101101│=4
(f(000), f(011)) = │10010101│=4
(f(000), f(100)) = │10100100│=3
(f(000), f(101)) = │10001001│=3
(f(000), f(110)) = │00011100│=3
: (f(000), f(111)) = │00110001│=3
(f(001), f(010))= │10010101│=4
(f(001), f(011)) = │00101101│=4
(f(001), f(100)) = │00011100│=3
(f(001), f(110)) = │10100100│=3
(f(001), f(111))= │10001001│=3
(f(010), f(011)) = │10111000│=4
(f(010), f(100)) = │10001001│=3
(f(010), f(101)) = │10100101│=4
(f(010), f(110)) = │00110001│=3
(f(010), f(111))= │00011100│=3
(f(011), f(100)) = │00110001│=3
(f(011), f(101)) = │00011100│=3
(f(011), f(110)) = │10001001│=3
(f(011), f(111)) = │10100100│=3
(f(100), f(101))= │00101101│=4
(f(100), f(110)) = │10111000│=4
(f(100), f(111)) = │10010101│=4
(f(101), f(110)) = │10010101│=4
(f(110), f(111)) = │00101101│=4
Hence we observed that minimum distance between all distinct pairs of code words is 3.
By Theorem1.1 we know that a code will detect k or fewer errors if and only if its minimum distance is at least k+1. Since here the minimum distance is 3,so we have,
3≥k+1
k+1≤3
k≤2.
So, the code will detect two or fewer errors, as the minimum distance is 3.
(e) An (m,n) encoding function f. : Bm→ Bnis called a group code if the encoding function defined
f(Bm)= { f(b) : b є Bm } = range of f is a subgroup of Bn.
Consider the (2,5) encoding function f. : B2→ B5defined by
f(00)= 00000 f(10)= 10101
f(01)= 01110 code words
f(11)= 11011 is a group code.
Solution: We must show that the set of all code words
(i) Since 00000 belongs to the set, hence check for the identity is satisfied.
(ii) For closure:
( 00000) + (10101) = (10101) ( 00000) + (01110) = (01110) ( 00000) + (11011) = (11011) ( 10101) + (01110) = (11011)
( 10101) + (11011)= (01110) ( 01110) + (11011) = (10101)
Hence we have observed that if x and y are the elements of in N then x + y is in N. Hence N is a subgroup of B5and therefore given encoding function is a group code.
Decoding and Error correction : Consider an (m,n) encoding function f : Bm → Bn once the encoded
word x= f(b) є Bn, for b є Bmis received as the word xt, we are faced with problem of identifying
the word b that was the original message . If transmission channels has no-noise, then b’=b that is f-1of = 1Bm.
Where 1Bm is the identity function on Bm. The decoding function f-1is required to be onto so that every
received word can be decoded to give a word in Bm. It decodes properly received word correctly,
but the decoding of improperly received words may or may not be correct.
Now we will define some decoding function f-1: Bn→ Bmsuch that if f-1(xt)= b’ є Bmand transmission
channel has no noise, then b’=b then f-1onto function is called an (n,m) decoding function associated with
the encoding function f and correct the error in a distortion of the commodity being received.
a) Consider the parity check code that is defined in example (b) of encoding function. We now define decoding function f-1: Bm+1→ Bn. If y= y1y2y3………ymym+1є Bm+1,then f(y) =
f (y1y2y3………ymym+1)= y1y2y3………ymobserve that if b=b1b2b3……bmє Bm, then
(f-1of)(b) = f-1(f(b)) = f-1(f(b1b2b3….bm)= f-1(b1b2b3……bm+1)
= b1b2b3……bm
For a concrete example, let f-1be the (4,3 ) decoding function we will determine f-1(y) for
the word y in B4
f-1(0000) = 000
f-1(0011) = 001
f-1(0101) = 010
f-1(0110) = 011
f-1(1001) = 100 Decode word
f-1(1010) = 101
f-1(1100) = 110
f-1(111) = 111
b) Consider the following (m,3m) encoding function f. : Bm → B3m.If b=b1b2b3….bm є Bm
define f(b) =f(b1b2b3….bm)= b1b2b3….bm b1b2b3….bm b1b2b3….bm. We now define the
decoding function f-1: B3m→Bm. Let y= y1y2y3…..ymym+1….y2m……y3m.
Then d(y) = z1z2…….zm,
Where zi = { 1 if { yi,yi+m,yi+2m} has at least two 1’s
{ 0 if { yi, yi+m,yi+2m} has less than two 1’s
For a concrete example, let m=3 f-1(000000000) = 000
f-1(001001001) = 001
f-1(010010010) = 010
f-1(011011011) = 011
f-1(100100100) = 100 Decode word
f-1(101101101) = 101
f-1(110110110) = 110
now suppose that b=011. Then f(011) = 011011011. Assume now that the transmission channel makes an error in the red digit and we receive the word xt= 011111011.Then the first digits in two
out of the three blocks are 0, the first digit is decoded as 0. Similarly, the second digit is decoded as 1, since all three second digits in the three blocks are 1. Finally, the third digit is also decoded as 1, for the analogous reason. Hence d(xt)=011that is the decoded word is 011, which is the word that was sent. Therefore the single error has been corrected.
c) Consider the (3,6) encoding function f. : B3→ B6defined by
f(000) = 000000 f(001) = 001100 f(010) = 010011
f(011) = 011111 Code words f(100) = 100101
f(101) = 101001
f(110) = 110110 Code word f(111) = 111010
Here we obtained (3,6) group code N={000000, 001100, 010011, 011111, 100101, 101001,110110, 111010}. Now implement the decoding procedure for f. For each i, locate the coset leader єi, єi+001100 ,
єi+010011 , єi+011111 …………. єi+111010
The result is shown in Table.
Table 2: Decoding Table
000000 001100 010011 011111 100101 101001 110110 111010
000001 001101 010010 011110 100100 101000 110111 111011
000010 001110 010001 011101 100111 101011 110100 111000
000100 001000 010011 011011 100001 101101 110010 111110
010000 011100 000011 001111 110101 111001 100110 101010
100000 101100 110011 111111 000101 001001 010110 011010
000110 001000 010101 011001 100011 101111 110000 111100
If we receive the word 110101, we decode it by first locating it in decoding table; it appears in the fifth column where it is in red color. The word at the top of the fifth column is 100101. Since f(100)=100101, we decode 110101 as 100. Similarly, if we receive the word 110011,we first locate in the third column of the decoding table, where it is in red color. The word at the top of the third column is 010011. Since f(010)=010011,we decode 110011 as 010.
In determining the decoding table there was more than one candidate for coset leader of the last two cosets. In row 7 we chose 000110 as coset leader. If we had chosen 001010 instead, row 7 would appear in the rearranged form.
001010 , 001010+ 001100 , 001010+010011………. 001010+111010
Or
001010 , 000110 , 011001 ,010101 ,101111 ,100011 ,111100 , 110000
The new decoding table is shown in Table.
Table 3:Decoding Table
000000 001100 010011 011111 100101 101001 110110 111010
000001 001101 010010 011110 100100 101000 110111 111011
000010 001110 010001 011101 100111 101011 110100 111000
000100 001000 010011 011011 100001 101101 110010 111110
010000 011100 000011 001111 110101 111001 100110 101010
100000 101100 110011 111111 000101 001001 010110 011010
001010 000110 011001 010101 101111 100011 111100 110000
010100 011000 000111 001011 110001 111101 100010 101110
Now, if we receive the word 001011, we first locate it in the forth column of table no.2. The word at the top of the forth column is 011111. Since f(011)=011111, we decode 001011 as 011.
Conclusion: We have explained various methods for Encoding and Decoding functions for the data during transmission and receive i.e. coding and decoding function and minimize the error in a distortion of the commodity being transmitted and correct the error.
ACKNOWLEDGEMENT
The authors are thankful to Dr. K. N. Rajeshwary Professor & HOD School of Mathematics, DAVV, Indore for her useful and valuable suggestions.
REFERENCES
1) Abboott James C.: “Sets,Lattices,and Boolean Algebra”, Allyn and Bacon,Inc.,Boston,1969. 2) Abramson, N.: “Information Theory and Coding” Mcgraw-Hill Book company, New York,1963 3) Barwise, J. (1985). Model theoretical logics; background and aims. Model Theoretic Logics.
Springer-Verlag.
4) R. Hamming, Coding and Information Theory, Prentice-Hall, 1980.
5) J. Gallian, contempory Abstract Algebra, D.C.Heath and company,Lexington,MA,third ed.,1994. 6) J.H. VAN LINT, Introduction to coding theory, springer-verlag Berlin, third ed., 1999.
7) S.B. Wicker, error control system for digital communication and storage, Prentice-Hall upper saddle River, first ed. 1995.