Lecture Notes: EEEC6440315 Communication Systems - Information Theory
1. EEEC6440315 COMMUNICATION SYSTEMS
Information Theory
FACULTY OF ENGINEERING AND COMPUTER TECHNOLOGY
BENG (HONS) IN ELECTRICALAND ELECTRONIC ENGINEERING
Ravandran Muttiah BEng (Hons) MSc MIET
2. 1
Shannon Limit For Information Capacity
The information capacity of communication systems represents the number
of independent symbols that can be carried through the system in a given
unit of time. The most basic symbol is the binary digit (bit). Therefore, it is
often convenient to express the information capacity of a system in bits per
second (bps). The relationship among bandwidth, transmission time and
information capacity. Simply stated, Hartleyโs law is,
๐ผ โ ๐ต ร ๐
where,
๐ผ = information capacity (bits per second)
๐ต = bandwidth (Hertz)
๐ = transmission time (seconds)
It can be seen that the information capacity is a linear function of bandwidth
and transmission time and is directly proportional to both. If either the
bandwidth or the transmission time is changed, a directly proportional
change in information capacity will occur. Shannon limit is relating the
information capacity of a communications channel to bandwidth and signal
to noise ratio.
4. Concepts Related To Channel Capacity
Mathematically stated, the Shannon limit for information capacity is,
๐ผ = ๐ตlog2 1 + ๐
๐
๐ผ = 3.32log10 1 + ๐
๐
where,
๐
๐
= signal to noise power ratio (unitless).
Nyquist Bandwidth;
For binary signals (two voltage levels),
๐ผ = 2๐ต
With multilevel signaling (๐-ary signaling),
๐ผ = 2๐ตlog2 ๐
๐ = number of discrete signal or voltage levels and ๐ = number of bits.
โด ๐ = 2๐
3
5. 4
Example 1:
For a standard voice-band communications channel with a signal-to-
noise power ratio of 1000 30 dB and a bandwidth of 2.7 KHz. Find the
Shannon limit for information capacity.
๐ผ = 2700 log2 1 + 1000
= 26.9 Kbps
6. Example Of Nyquist And Shannon Formulations
Spectrum of a channel between 3 MHz and 4 MHz: SNRdB = 24 dB
๐ต = 4 MHz โ 3 MHz = 1 MHz
SNRdB = 24 dB = 10log10 SNR
SNR = 251
Using Shannonโs formula,
๐ผ = 106
ร log2 1 + 251 โ 106
ร 8 = 8 Mbps
How many signaling levels are required?
๐ผ = 2๐ตlog2๐
8 ร 106
= 2 ร 106
ร log2๐
4 = log2๐
๐ = 16
5
7. Linear Block Codes
We assume that the output of an information source is a sequence of binary
digits "0" or "1". In block coding, this binary information sequence is
segmented into message blocks of fixed length; each message block,
denoted by ๐ฎ, consists of k information digits.
There are a total of 2๐
distinct messages. The encoder, according to certain
rules transforms each input message ๐ฎ into a binary ๐-tuple ๐ฏ with ๐ > ๐
as shown in figure 1. This binary ๐-tuple ๐ฏ is referred to as the code word
(or code vector) of the message ๐ฎ , as shown in figure 2.
6
Block Coder
Figure 1: Block Code.
k information
digits
n encoded
digits
8. 7
Therefore, corresponding to the 2๐
possible messages, there are 2๐
code words. This set of 2๐
code words is called a block code. For a
block code to be useful, the 2๐
code words must be distinct. Therefore,
there should be a one-to-one correspondence between a message ๐ฎ and
its code word ๐ฏ.
Information Digits
Parity
Digits
Rate, ๐ =
๐
๐
๐ ๐ โ ๐
๐ digit codeword
Figure 2: Code word.
9. 8
A block code of length ๐ and 2๐
code words is called a linear ๐, ๐ code if
and only if its 2๐
code words form a ๐-dimensional subspace of the vector
space of all the ๐-tuples over the field GF(2). In fact, a binary block code is
linear if and only if the modulo-2 sum of two code words is also a code
word. The block code given in table 1 is a 7, 4 linear code. One can easily
check that the sum of any two code words in this code is also a code word.
Definition
(0 0 0 0) (0 0 0 0 0 0 0)
(1 0 0 0) (1 1 0 1 0 0 0)
(0 1 0 0) (0 1 1 0 1 0 0)
(1 1 0 0) (1 0 1 1 1 0 0)
(0 0 1 0) (1 1 1 0 0 1 0)
(1 0 1 0) (0 0 1 1 0 1 0)
(0 1 1 0) (1 0 0 0 1 1 0)
(1 1 1 0) (0 1 0 1 1 1 0)
(0 0 0 1) (1 0 1 0 0 0 1)
(1 0 0 1) (0 1 1 1 0 0 1)
(0 1 0 1) (1 1 0 0 1 0 1)
(1 1 0 1) (0 0 0 1 1 0 1)
(0 0 1 1) (0 1 0 0 0 1 1)
(1 0 1 1) (1 0 0 1 0 1 1)
(0 1 1 1) (0 0 1 0 1 1 1)
(1 1 1 1) (1 1 1 1 1 1 1)
Message Code Words
Table 1: Linear Block Code with ๐ = 4 and ๐ = 7
10. 9
Since an ๐, ๐ linear code ๐ถ is a ๐-dimensional subspace of the vector space
๐
๐ of all the binary ๐-tuples, it is possible to find ๐ linearly independent code
words, ๐0, ๐1, โฆ , ๐๐โ1 in ๐ถ such that every code word ๐ฏ in ๐ถ is a linear
combination of these ๐ code words, that is,
๐ฏ = ๐ข0๐ 0 + ๐ข1๐ 1 + โฏ + ๐ข๐โ1๐ ๐โ1 (1)
Where ๐ข๐ = 0 or 1 for 0 โค ๐ โค ๐. Let us arrange these linearly independent
code words as the row of a ๐ ร ๐ matrix as follows:
๐ =
๐ 0
๐ 1
โฎ
๐ ๐โ1
=
๐0,0 ๐0,1 ๐0,2 โฏ ๐0,๐โ1
๐1,0 ๐1,1 ๐1,2 โฏ ๐1,๐โ1
โฎ โฎ โฎ โฎ โฎ
๐๐โ1,0 ๐๐โ1,1 ๐๐โ1,2 โฏ ๐๐โ1,๐โ1
(2)
Where ๐ ๐ = ๐๐,0, ๐๐,1, โฆ , ๐๐,๐โ1 for 0 โค ๐ โค ๐.
If ๐ฎ = ๐ข0, ๐ข1, โฏ ๐ข๐โ1 is the message to be encoded, the corresponding code
word be given as follows:
๐ฏ = ๐ฎ โ ๐
11. 10
= ๐ข0, ๐ข1, โฏ , ๐ข๐โ1 โ
๐ 0
๐ 1
โฎ
๐ ๐โ1
= ๐ข0๐ 0 + ๐ข1๐ 1 + โฏ + ๐ข๐โ1๐ ๐โ1 (3)
Clearly, the rows of ๐ generate (or span) the ๐, ๐ linear code ๐ถ. For this
reason, the matrix ๐ is called a generator matrix for ๐ถ. It follows from (3)
that an ๐, ๐ linear code is completely specified by the ๐ rows of a
generator matrix ๐. Therefore, the encoder has only to store the ๐ row of ๐
and to form a linear combination of these ๐ rows based on the input
message.
12. 11
Example 2:
The 7, 4 linear code given in table 1 has the following matrix as a
generator matrix.
๐ =
๐ 0
๐ 1
๐ 2
๐ 3
=
1 1 0 1 0 0 0
0 1 1 0 1 0 0
1 1 1 0 0 1 0
1 0 1 0 0 0 1
If ๐ฎ = 1 1 0 1 is the message to be encoded, its corresponding code word,
according to (3), would be
๐ฏ = 1 โ ๐ 0 + 1 โ ๐ 1 + 0 โ ๐ 2 + 1 โ ๐ 3
= 1 1 0 1 0 0 0 + 0 1 1 0 1 0 0 + 1 0 1 0 0 0 1
= 0 0 0 1 1 0 1
13. 12
A desirable property for a linear block code to possess is the systematic
structure of the code words as shown in figure 3, where a code word is
divided into two parts, the message part and the redundant checking part.
The message part consists of unaltered information (or message) digits and
the redundant checking part consists ๐ โ ๐ parity-check digits, which are
linear sums of the information digits. A linear block code with this
structure is referred to as a linear systematic block code. The 7, 4 code
given in table is a linear systematic block code; the rightmost four digits of
each code are identical to the corresponding information digits.
Redundant
Checking Part
Message
Part
๐ โ ๐ digits ๐ digits
Figure 3: Systematic format of a code word
14. 13
A linear systematic ๐, ๐ code is completely specified by a ๐ ร ๐ matrix ๐ of the
following form:
๐ =
๐ 0
๐ 1
๐ 2
โฎ
๐ ๐โ1
=
๐0,0 ๐0,1 โฏ ๐0,๐โ๐โ1 1 0 0 โฏ 0
๐1,0 ๐1,1 โฏ ๐1,๐โ๐โ1 0 1 0 โฏ 0
๐2,0 ๐2,1 โฏ ๐2,๐โ๐โ1 0 0 1 โฏ 0
โฎ
๐๐โ1,0 ๐๐โ1,1 โฏ ๐๐โ1,๐โ๐โ1 0 0 0 โฏ 1
(4)
where ๐๐๐ = 0 or 1. Let ๐ผ๐ denote the ๐ ร ๐ identity matrix. Then ๐ = ๐ ๐๐ .
Let ๐ข = ๐ข0, ๐ข1, โฆ , ๐ข๐โ1 be the message to be encoded. The corresponding code
word is,
๐ฏ = ๐ฃ0, ๐ฃ1, ๐ฃ2, โฆ , ๐ข๐โ1
= ๐ข0, ๐ข1, โฆ , ๐ข๐โ1 โ ๐ (5)
P matrix ๐ ร ๐ identity matrix
15. 14
Example 3:
The matirx ๐ given in example 2 is in systematic form. Let ๐ฎ = ๐ข0, ๐ข1, ๐ข2, ๐ข3
be the message to be encoded and let ๐ฏ = ๐ฃ0, ๐ฃ1, ๐ฃ2, ๐ฃ3, ๐ฃ4, ๐ฃ5, ๐ฃ6 be the
corresponding code word. Then,
๐ฏ = ๐ข0, ๐ข1, ๐ข2, ๐ข3 โ
1 1 0 1 0 0 0
0 1 1 0 1 0 0
1 1 1 0 0 1 0
1 0 1 0 0 0 1
By matrix multiplication, we obtain the following digits of the code word ๐ฏ,
๐ฃ6 = ๐ข3
๐ฃ5 = ๐ข2
๐ฃ4 = ๐ข1
๐ฃ3 = ๐ข0
๐ฃ2 = ๐ข1 + ๐ข2 + ๐ข3
๐ฃ1 = ๐ข0 + ๐ข1 + ๐ข2
๐ฃ0 = ๐ข0 + ๐ข2 + ๐ข3
16. 15
The code word corresponding to the message 1 0 1 1 is 1 0 0 1 0 1 1 .
There is another useful matrix associated with every linear block code. For any
๐ ร ๐ matrix ๐ with ๐ linearly independent rows, there exists an ๐ โ ๐ ร ๐
matrix ๐ with ๐ โ ๐ linearly independent rows such that any vector in the row
space of ๐ is orthogonal to the rows of ๐ and any vector that is orthogonal to the
rows of ๐ is in the row space of ๐. Hence, we can describe the ๐, ๐ linear
code generated by ๐ in an alternative way as follows:
An ๐-tuple ๐ฏ is a code word in the code generated by ๐ if and only if ๐ฏ โ ๐๐
=
0. This matrix ๐ is called a parity-check matrix of the code. If the generator
matrix of an ๐, ๐ linear code is in the systematic form of (4), the parity-check
matrix may take the following form:
๐ = ๐๐โ๐ ๐๐
=
1 0 0 โฏ 0 ๐0,0 ๐1,0 โฏ ๐๐โ1,0
0 1 0 โฏ 0 ๐0,1 ๐1,1 โฏ ๐๐โ1,1
0 0 1 โฏ 0 ๐0,2 ๐1,2 โฏ ๐๐โ1,2
โฎ
0 0 0 โฏ 1 ๐0,๐โ๐โ1 ๐1,๐โ๐โ1 โฏ ๐๐โ1,๐โ๐โ1
(6)
17. 16
Example 4:
Consider the generator matrix of a 7, 4 linear code given in example 2. The
corresponding parity-check matrix is,
๐ =
1 0 0 1 0 1 1
0 1 0 1 1 1 0
0 0 1 0 1 1 1
Syndrome And Error Detection
Consider an ๐, ๐ linear code with generator matrix ๐ and parity-check matrix
๐. Let ๐ฏ = ๐ฃ0, ๐ฃ1, โฆ , ๐ฃ๐โ1 be a code word that was transmitted over a noisy
channel. Let ๐ซ = ๐0, ๐1, โฆ , ๐๐โ1 be the received vector at the output of the
channel. Because of the channel noise, ๐ซ may be different from ๐ฏ. The vector
sum,
๐ฏ = ๐ซ + ๐ฏ
= ๐0, ๐1, โฆ , ๐๐โ1 (7)
18. 17
Is an ๐-tuple where ๐๐ = 1 for ๐๐ โ ๐ฃ๐ and ๐๐ = 0 for ๐๐ = ๐ฃ๐. This ๐-tuple is
called the error vector (or error pattern). The 1โs in ๐ are the transmission errors
caused by the channel noise. It follows from (7) that the received vector ๐ซ is the
vector sum of the transmitted code word and the error vector, that is,
๐ซ = ๐ฏ + ๐ (8)
Of course, the receiver does not allow either ๐ฏ or ๐. Upon receiving ๐ซ, the
decoder must first determine whether ๐ซ contains transmission errors. If the
presence of errors is detected, the decoder will either take actions to locate the
errors and correct them (FEC) or request for a transmission of (ARQ). When ๐ซ is
received, the decoder computes the following ๐ โ ๐ -tuple:
๐ฌ = ๐ซ โ ๐๐
= ๐ 0, ๐ 1, โฆ , ๐ ๐โ๐โ1 (9)
Which is called the syndrome of ๐ซ. Then ๐ฌ = 0 if and only if ๐ซ is a code word,
and ๐ฌ โ 0 if and only if ๐ซ is not a code word. Therefore, when ๐ฌ โ 0, we know
that ๐ซ is not a code word and the presence or errors has been detected.
19. 18
When ๐ฌ = 0, ๐ซ is a code word and the receiver accepts ๐ซ as the transmitted code
word. It is possible that the errors in certain error vectors are not detectable (i.e.,
๐ซ contains errors but ๐ฌ = ๐ซ โ ๐๐
= 0). This happens when the error pattern ๐ is
identical to a nonzero code word. In this event, ๐ซ is the sum of two code words
which is a code word, and consequently ๐ซ โ ๐๐
= 0.
Error patterns of this kind are called undetectable error patterns. Since there are
2๐
โ 1 nonzero code words, there are 2๐
โ 1 undetectable error patterns. When
an undetectable error pattern occurs, the decoder makes a decoding error.
Based on (6) and (9), the syndrome digits are as follows:
๐ 0 = ๐0 + ๐๐โ๐๐00 + ๐๐โ๐+1๐10 + โฏ + ๐๐โ1๐๐โ1, 0
๐ 1 = ๐1 + ๐๐โ๐๐01 + ๐๐โ๐+1๐11 + โฏ + ๐๐โ1๐๐โ1, 1
โฎ
๐ ๐โ๐โ1 = ๐๐โ๐โ1 + ๐๐โ๐๐0, ๐โ๐โ1 + ๐๐โ๐+1๐1, ๐โ๐โ1 + โฏ + ๐๐โ1๐๐โ1, ๐โ๐โ1
(10)
20. (1) Thamer Muhammed Jamel, Information Theory, University of
Technology Iraq, 2012.
References
19