DC Channel Coding
-
Upload
basir-usman -
Category
Documents
-
view
226 -
download
0
Transcript of DC Channel Coding
-
8/10/2019 DC Channel Coding
1/80
Chapter 6: Channel Coding I
Waveform CodingTypes of Error Control
Structured Sequences
Linear Block Codes
Error Detecting and Correcting Capability
Cyclic Codes
Block Codes
-
8/10/2019 DC Channel Coding
2/80
Channel Coding
Channel coding refers to the class of signal
transformations designed to improvecommunications performance by enabling the
transformed signals to better withstand the effects of
various channel impairments, such as
Noise Interference
Fading
These signal processing techniques can be thought
of as vehicles for accomplishing desirable systemtrade-offs such as
Error performance versus bandwidth
Power versus bandwidth
-
8/10/2019 DC Channel Coding
3/80
Waveform Coding
Channel coding can be partitioned into two study
areas:
Waveform coding or signal design coding
Waveform coding deals with transforming waveform
into better waveforms to make the detectionprocess less subject to errors.
Structure sequence or structure redundancy
Structured sequences deals with transforming data
sequences into better sequences , havingstructured redundancy (redundant bits). The
redundant bits can then be used for the detectionand correction of errors.
The encoding procedure provides the coded signal
(whether waveforms or structured sequences) with
better distance properties than those of their uncoded
counterparts.
-
8/10/2019 DC Channel Coding
4/80
-
8/10/2019 DC Channel Coding
5/80
Generalized One Dimensional Signals
One Dimensional Signal Constellation
-
8/10/2019 DC Channel Coding
6/80
Binary Baseband Orthogonal Signals
Binary Antipodal Signals
Binary orthogonal Signals
-
8/10/2019 DC Channel Coding
7/80
Constellation Diagram
Is a method of representing the symbol states of modulatedbandpass signals in terms of their amplitude and phase
In other words, it is a geometric representation of signals There are three types of binary signals:
Antipodal
Two signals are said to be antipodal if one signal is thenegative of the other
The signal have equal energy with signal point on thereal line
ON-OFF Are one dimensional signals either ON or OFF with
signaling points falling on the real line
)()( 01 tsts
-
8/10/2019 DC Channel Coding
8/80
8
With OOK, there are just 2 symbol states to map onto the
constellation space
a(t) = 0 (no carrier amplitude, giving a point at the origin)
a(t) = A cos wct (giving a point on the positive horizontal
axis at a distance A from the origin)
Orthogonal
Requires a two dimensional geometric representation since
there are two linearly independent functions s1(t) and s0(t )
-
8/10/2019 DC Channel Coding
9/80
6.1.1 Antipodal and Orthogonal Signals
Antipodal: s1(t) = - s2(t)
Orthogonal pulse waveforms:
s1(t) = p(t) 0 < t < T
s2(t) = p(t - T/2) 0 < t < T
where p(t) is a pulse with duration is the symbol duration.
Another orthogonal waveform set frequently used in
communication systems is sin x and cos x.
In general, a set of equal-energy signals si(t) , i = 1, 2, M,constitutes an orthonormal (orthogonal, normalized to unity)
set if and only if:
The signal energy is
T
jiijotherwise
jif ordttsts
Ez
0 0
1)()(
1(6.1)
T
i dttsE0
2 )( (6.2)
-
8/10/2019 DC Channel Coding
10/80
Figure 6.2: Antipodal signal set
Figure 6.3: Binary Orthogonal signal set
-
8/10/2019 DC Channel Coding
11/80
6.1.3 Waveform coding
Waveform coding procedures transform a waveform set
(representing a message) into an improved waveform set.
The most popular of such waveform codes are referred to asorthogonal and bi-orthogonal codes
The goal is to render the cross-correlation coefficient among all
pairs of signals as small as possible
The smallest possible value of the cross-correlation coefficient
occurs when the signals are anticorrelated ( zij= -1); this can beachieved only when the number of symbols in the set is two
(M=2) and the symbols are antipodal.
In general, it is possible to make all the cross-correlation
coefficients equal to zero
The set is then said to be orthogonal
Antipodal signal sets are optimum in the sense that each signal
is most distant from the other signal in the set (as shown in the
figure); where the distance d between signal vectors is seen to
be d = 2 E, where E represents the signal energy during asymbol duration T.
-
8/10/2019 DC Channel Coding
12/80
6.1.3 Waveform coding
Compared with antipodal signals, the distance properties of
orthogonal signal sets can be thought as prettygood(for a
given level of waveform energy). As shown in figure, thedistance between the orthogonal signal vectors is seen to be
d = 2E The cross-correlation between two signals is a measure of the
distance between the signal vectors.
The smaller the cross-correlation, the more distant are the
vectors from each other.
-
8/10/2019 DC Channel Coding
13/80
Another form of orthogonality condition for sequence of pulses:
Orthogonal Codes
A one-bit data set can be transformed, using orthogonal codewordsof two digits each, described by the rows of matrix H1as follows
Data set Orthogonal codeword set
otherwise
jifor
sequencetheindigitsofnumbertotal
ntsdisagreemedigitofnumberagreementdigitofnumerzij
0
1 (6.3)
1
0
10
001H
-
8/10/2019 DC Channel Coding
14/80
Data set Orthogonal codeword set
Data set Orthogonal codeword set
11
01
10
00
1 1
21 1
0 0 | 0 0
0 1 | 0 1
0 0 | 1 1
0 1 | 1 0
H H
H H H
111
011
101001
110
010
100
000
2 2
3
2 2
0 0 0 0 | 0 0 0 0
0 1 0 1 | 0 1 0 1
0 0 1 1 | 0 0 1 1
0 1 1 0 | 0 1 1 0
0 0 0 0 | 1 1 1 1
0 1 0 1 | 1 0 1 0
0 0 1 1 | 1 1 0 0
0 1 1 0 | 1 0 0 1
H HH
H H
-
8/10/2019 DC Channel Coding
15/80
In general, we can construct a codeword set Hk, of dimension 2kx 2k,
called a Hadamard matrix, for a k-bit data set from the Hk-1matrix,
as follows:
Each pair of words in each codeword set H1, H2, . Hk, has as
many digit agreements as disagreements . Hence, in accordance
with equation 6.3, zij =0 (for I j), and each of the set is orthogonal.
Just as in M-ary signaling with an orthogonal format (such as MFSK),
the error performance improves. The probability of codeword error,
PE, can be upper bounded as
where Es=kEb
11
11
kk
kk
kHH
HHH (6.4)
0
)1()(N
EQMMP sE (6.5)
-
8/10/2019 DC Channel Coding
16/80
Biorthogonal Codes
A biothogonal signal set of M total signals or codewords can be
obtained from an orthogonal set of M/2 signals by augmenting it with
the negative of each signals as
Data set Biorthogonal codeword set
111
011
101
001
110
010
100
000
1001
0011
0101
1111
0110
1100
10100000
3B
1
1
k
k
k
H
HB
-
8/10/2019 DC Channel Coding
17/80
The biorthogonal set is really two sets of orthogonal codes such that
each codeword in one set has its antipodal codeword in the other
set
Advantages
The biorthogonal code requires one-half as many code bits per codeword as required by orthogonal codes
Since the antipodal signal vectors have better distance properties
than orthogonal ones, biothogonal codes perform slightly better than
orthogonal ones
Probability of codeword error can be upper bounded as:
2/||,0
2/||,11
Mjijifor
Mjijiforjifor
zij (6.8)
00
2)2()(
N
EQ
N
EQMMP ssE (6.9)
-
8/10/2019 DC Channel Coding
18/80
6.1.4 Waveform Coding System Example
Figure 6.4: Waveform-encoded system (transmitter)
Tcis code bit duration
-
8/10/2019 DC Channel Coding
19/80
Figure 6.4 illustrates the example of assigning a k-bit
message from a message set of M=2k
, with a coded-pulse sequence from a code set of the same size.
Each k-bit message chooses one of the generatorsyielding a coded-pulse sequence or codeword.
The sequences in the coded set that replace the
messages from a wave-form set with good distanceproperties (e.g., orthogonal, biorthogonal).
For the orthogonal code, each codeword consists ofM=2kpulses (representing code bits).
Hence, 2k
code bits replace k message bits.The chosen sequence then modulates a carrier waveusing binary PSK, such that the phase (= 0, ) ofthe carrier during each code-bit duration, 0 t Tc,corresponds to the amplitude ( j = -1 or 1) of the jth
bipolar pulse in the codeword.
6.1.4 Waveform Coding System Example
-
8/10/2019 DC Channel Coding
20/80
Figure 6.5: Waveform-encoded system with coherent detection (receiver)
-
8/10/2019 DC Channel Coding
21/80
At the receiver in Figure 6.5, the signal isdemodulated to baseband and fed to M correlators(or matched filters).
For orthogonal codes, such as those characterizedby Hadamard matrix, correlation is performed over a
codeword duration that can be expressed as T = 2k
Tc.For a real-time communication system, messagesmay not be delayed; hence, the codeword durationmust be the same as the message duration, and thus,T can also be expressed as T (log2M)Tb= kTb, where
Tbis the message-bit duration.Time duration of a message bit is M/k times longerthan that of a code bit.
6.1.4 Waveform Coding System Example
-
8/10/2019 DC Channel Coding
22/80
In other words, the code bits or coded pulses (whichare PSK modulated) must move at a rate M/k fasterthan the message bits.
For such orthogonally coded waveforms and anAWGN channel, the expected value at the output of
each correlator, at time T, is zero, except for thecorrelator corresponding to the transmittedcodeword.
6.1.4 Waveform Coding System Example
-
8/10/2019 DC Channel Coding
23/80
Error control Coding
Errors are introduced in the data when it passes through the
channel. The channel noise interfere the signal. The signal
power is reduced. Hence errors are introduced.
Rationale for Coding and Types of codes
Transmission of data over the channel depends upon following
two parameters:
transmitter power channel bandwidth
The power spectral densityof channel noise andthese two
parameters determine signal to noise power ratio.
The signal to noise power ratio determine the probability of error
of the modulation scheme. For the given signal to noise ratio, the error probability can be
reduced further by using coding techniques.
The coding techniques also reduce signal to noise power ratio
for fixed probability of error.
-
8/10/2019 DC Channel Coding
24/80
Error control Coding
Figure: Digital communication system with channel encoding
Channel encoder
The channel encoder adds extra bits (redundancy) to the message bits.The encoded signal is then transmitted over the noisy channel.
Channel decoder
The channel decoder identifies the redundant bits and uses them to detectand correct the errors in the message bits if any.
Thus the number of errors introduced due to channel noise are minimizedby encoder and decoder.
Due to the redundant bits, the overall data rate increases. Hence channelhas to accommodate this increased data rate.
The systems become slightly complex because of coding techniques.
-
8/10/2019 DC Channel Coding
25/80
6.2 Types of Error control
There are two basic ways for using redundancy for controlling
errors:1. Error detection and retransmission
2. Forward error correction (FEC)
Error detection and retransmission
It utilizes parity bits (redundant bits added to the data) to
detect that an error has been made. The receiving terminal does notattempt to correct the error; it simply requests that the transmitter
retransmit the data
Note that a two-way link is required for such dialogue
between the transmitter and receiver.
Forward error correction (FEC)
FEC requires a one-way link only, since in this case the
parity bits are designed for both the detection and correction of
errors.
-
8/10/2019 DC Channel Coding
26/80
6.2 Types of Error control
Terminal Connectivity
Simplex
Half duplex
Full duplex
Figure 6.6: Terminal connectivity classifications (a) Simplex (b) Half-duplex(c) Full-duplex
-
8/10/2019 DC Channel Coding
27/80
Automatic Repeat Request
When the error control consists of error detection
only, the communication system generally needs to
provide a means of alerting the transmitter that anerror has been detected and that a retransmission is
necessary.
ARQ vs. FEC
ARQ is much simpler than FEC and need noredundancy.
ARQ is sometimes not possible if
A reverse channel is not available or the delay with
ARQ would be excessive The retransmission strategy is not conveniently
implemented
The expected number of errors, without corrections,
would require excessive retransmissions
-
8/10/2019 DC Channel Coding
28/80
Figure 6.7: Automatic Repeat Request (ARQ) (a) Stop and wait ARQ (b)Continuous ARQ with pullback (c) Continuous ARQ with selective repeat
(a) Stop and wait ARQ
(b) Continuous ARQ with pullback
(c) Continuous ARQ with selective repeat (full duplex)
-
8/10/2019 DC Channel Coding
29/80
6.3 Structured Sequences
Parity-check coding procedures are classified as
structured sequences because they represent
methods of inserting structured redundancy into the
source data so that the presence of errors can be
detected or the errors corrected.
Structured sequences are partitioned into three sub-
categorries:
Block codes
Convolutional codes
Turbo codes
-
8/10/2019 DC Channel Coding
30/80
Block codes In case of block codes, encoder transforms each k-bit data
block into a larger block or codeword of n-bits called code bits
or or channel symbol
The block or codeword consists of k message bits and (n-k)
redundant bits.
The (n-k)-bits added to each data block are called redundant
bits, parity bitsor check bits. Such block codes are called (n, k)
block codes.
They carry no new information.
Ratio of redundant bits to data bits: (n-k)/kis called redundancy
of code
Ratio of data bits to total bits, k /nis called code rate
6.3.2 Code Rate and Redundancy
-
8/10/2019 DC Channel Coding
31/80
Block codes
6.3.2 Code Rate and Redundancy
-
8/10/2019 DC Channel Coding
32/80
Block codes
6.3.2 Code Rate and Redundancy
Illustration:
The generating set for the (7,4)
code:
1000 ===> 1101000
0100 ===> 0110100
0010 ===> 1110010
0001 ===> 1010001
-
8/10/2019 DC Channel Coding
33/80
Convolutional codes The coding operation is discrete time convolution of input
sequence with the impulse response of the encoder.
The convolutional encoder accepts the message bits
continuously and generates the encoded sequence
continuously.
The codes can be classified as linear or nonlinear codes.
Linear code:
If the two codewords of the linear code are added by modulo-2
arithmetic, then it produces third codeword in the code.
This is very important property of the codes, since other codewords
can be obtained by addition of existing codewords.
Nonlinear code:
Addition of the nonlinear codewords does not necessarily produce
third codeword.
6.3.2 Code Rate and Redundancy
-
8/10/2019 DC Channel Coding
34/80
6.3.3 Parity-Check Codes
Single-parity-Check Code
Parity check codes use linear sums of the information bits, called
parity symbols or parity bits, for error detection or correction.
Even Parity Example:
Two-dimensional
Parity-check Code
-
8/10/2019 DC Channel Coding
35/80
Rectangular Code
Also called a product code, can be thought of as a parallel code
structure. The rate of the code k/n is
( 1)( 1)
MNkn M N
Figure 6.8: Parity checks for parallel structure
-
8/10/2019 DC Channel Coding
36/80
6.3.4 Why Use Error Correction Coding
Ideal PB(Probability ofbit error) versus Eb/N0
Bit error probability for coherently
detected M-ary orthogonal signalingBit error probability of coherently
detected multiple phase signaling
-
8/10/2019 DC Channel Coding
37/80
-
8/10/2019 DC Channel Coding
38/80
6.3.4 Why Use Error Correction Coding
Trade-Off 1: Error Performance vs. Bandwidth (A to C rather than B)
Error performance improvement can be achieved at the expense of
bandwidth.
Aside from the new components (encoder and decoder) needed, the
price is more transmission bandwidth.
Error-correction coding needs redundancy.
If we assume that the system is a real-time communication system (such
that the message may not be delayed), the addition of redundant bits
dictates a faster rate of transmission, which of course means morebandwidth.
-
8/10/2019 DC Channel Coding
39/80
6.3.4 Why Use Error Correction Coding
Trade-Off 2: Power versus Bandwidth (D to E)
If error correction coding is introduced, a reduction in the required Eb/N0
can be achieved.
Thus, the trade-off is one in which the same quality of data is achieved,
but the coding allows for a reduction in power or Eb/N0.
What is the cost? The same as before- more bandwidth.
-
8/10/2019 DC Channel Coding
40/80
6.3.4 Why Use Error Correction Coding
-
8/10/2019 DC Channel Coding
41/80
6.3.4 Why Use Error Correction Coding
-
8/10/2019 DC Channel Coding
42/80
6.3.4 Why Use Error Correction Coding
-
8/10/2019 DC Channel Coding
43/80
6.3.4 Why Use Error Correction Coding
-
8/10/2019 DC Channel Coding
44/80
6.4 Linear block Codes
Linear block codes are a class of parity-check codes thatcan be characterized by the (n, k) notation.
The encoder transforms a block of kmessage digits (a
message vector) into a longer block of ncodeword digit
(a code vector) constructed from a given alphabet ofelements.
When the alphabet consists of two elements (0 and 1),
the code is a binary code comprising binary digits (bits).
The k-bit messages form 2kdistinct messagesequences, referred to as k-tuples(sequences of k
digits).
The n-bit blocks can form as many as 2ndistinct
sequences, referred to as n-tuples.
-
8/10/2019 DC Channel Coding
45/80
6.4 Linear block Codes
The encoding procedure assigns to each of the 2kmessage k-tuples one of the 2nn-tuples.
A block code represents a one-to-one assignment,
whereby the 2kmessage k-tuples are uniquely mapped
into a new set of 2kcodeword n-tuples. The mapping can be accomplished via a look-up table.
-
8/10/2019 DC Channel Coding
46/80
6.4 Linear block Codes
6.4.1 Vector Spaces
011101
110
000
111001
010
000
-
8/10/2019 DC Channel Coding
47/80
6.4 Linear block Codes
-
8/10/2019 DC Channel Coding
48/80
6.4 Linear block Codes
6.4.2 Vector Subspaces For example, the vector space V4is totally populated by the
following 24 = sixteen 4-tuples:
0000 0001 0010 0011 0100 0101 0110 0111
1000 1001 1010 1011 1100 1101 1110 1111
An example of a subset of V4that forms a subspace is
0000 0101 1010 1111
-
8/10/2019 DC Channel Coding
49/80
The subset chosen for the code should include as many as
elements to reduce the redundancy but they should be as apart as
possible to maintain good error performances
Figure 6.10: Linear block-code structure
-
8/10/2019 DC Channel Coding
50/80
6.4.3 A (6.3) Linear Block Code Examples
Message Vector Codeword
000 000000
100 110100
010 011010
110 101110
001 101001
101 011101
011 110011
111 000111
Table 6.1: Assignment of Codewords to Messages
Examine the following coding assignment that describes a (6, 3)code. There are 2k = 23 = 8 message vectors, and therefore eight
codewords. There are 2k= 26= sixty-four 6-tuples in the V6vector space.
6 4 4 G M i
-
8/10/2019 DC Channel Coding
51/80
6.4.4 Generator Matrix
If k is large, a lookup table implementation of the encoder becomes
prohibitive.
For a (127, 92) code there are 292or approximately 5 x 1027code
vectors.
If the encoding procedure consists of a simple look-up table, imagine
the size of the memory necessary to contain such a large number of
codewords. Fortunately, it is possible to reduce complexity by
generating the required codeword as needed, instead of storing them.
Since a set of codewords that forms a linear block code is a k-
dimensional subspace of the n-dimensional binary vector space (k < n),
it is always possible to find a set of n-tuples, fewer than 2k, that can
generate all the 2kcodewords of the subspace.
The generating set of vectors is said to span the subspace.
The smallest linearly independent set that spans the subspace is called
a basis of the subspace, and the number of vectors in this basis set is
the dimension of the subspace.
6 4 4 G M i
-
8/10/2019 DC Channel Coding
52/80
6.4.4 Generator Matrix
Any basis set of k linearly independent n-tuples V1, V2, ..,
Vkcan be used to generate the required linear block code
vectors, since each code vector is a linear combination of
V1, V2, , Vk.
Let the set of 2kcodewords {U} be described as:
U = m1V1+m2V2+..+mkVk
where mi= (0 or 1) are the message digits and i = 1,, k.
In general, generator matrix can be defined by the following
k x n array:
knkk
n
n
k vvv
vvvvvv
V
VV
G
21
22221
11211
2
1
(6.24)
6 4 4 G M i
-
8/10/2019 DC Channel Coding
53/80
6.4.4 Generator Matrix
Code vectors are usually designated as row vectors.
Thus, the message m, a sequence of k message bits, is
shown below as a row vector (1xk matrix having one row and
k columns):
m= m1, m2, .., mk
Generation of codeword Uis written in matrix notation as theproduct of m and G:
U = m G (6.25)
-
8/10/2019 DC Channel Coding
54/80
100101
010110
001011
3
2
1
V
V
V
G (6.26)
6.4.5 Systematic Linear Block codes
-
8/10/2019 DC Channel Coding
55/80
6.4.5 Systematic Linear Block codes
A systematic (n,k) linear block code is a mapping from a k-
dimensional message vector to an n-dimensional codeword in such
a way that part of the sequence generated coincides with the kmessage digits. Thus remaining (n-k) digits are parity digits.
A systematic linear code will have a generator matrix of the form
Where P is the parity array portion of the generator matrix
pij= (0 or 1), andIkis the kx kidentity matrix (ones on themain diagonal and zeros elsewhere).
100
010
001
)(,21
)(,22221
)(,11211
knkkk
kn
kn
k
ppp
ppp
ppp
IPG (6.27)
G P | Ik
1 1 0
0 1 1
1 1 1
1 0 1
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1k n k k k ( )
Storage requirement reduced from2k(n+k) to k(n-k).
6 4 5 S t ti Li Bl k d
-
8/10/2019 DC Channel Coding
56/80
6.4.5 Systematic Linear Block codes
Combining (6.26) and (6.27):
where
ui = m1p1i+ m2p2i+ .mkpki for i=1,(n-k)
= mi-n+k for i=(n-k+1).n
Given the message k-tuple
m= m1, m2, .., mk
and the general code vector n-tuple
U= u1, u2, .., un
100
010
001
].m,m,[mu,....u,u
)(,21
)(,22221
)(,11211
k2121
knkkk
kn
kn
n
ppp
ppp
ppp
-
8/10/2019 DC Channel Coding
57/80
Example
-
8/10/2019 DC Channel Coding
58/80
Example
For (6,3) code example in sec.6.4.3, the codewords can be described
as:
Equation (6.31) depicts that the first parity bit is the sum of the first andthird message bits; the second parity bit is the sum of the first and
second message bits; and the third parity bit is the sum of the second
and third message bits.
Such structure, compared with single-parity checks or simple digit-
repeat procedures, may provide greater ability to detect and correcterrors.
3
100
010
001
101
110
011
,, 321
IP
mmmU
654321
321322131 ,,,,,
uuuuuu
mmmmmmmmm
(6.30)
(6.31)
-
8/10/2019 DC Channel Coding
59/80
Example
We see structure of linear block code (Equation (6.31)) that the redundant
digits are produced in a variety of ways.
The first parity bit is the sum of the first and third message bits; the second
parity bit is the sum of the first and second bits; and the third parity bit is
the sum of the second and third message bits.
Intuition tells us that such structure, compared with single-parity checks or
simple digit-repeat procedures, may provide greater ability to detect and
correct errors.
6 4 6 Parity Check Matrix
-
8/10/2019 DC Channel Coding
60/80
6.4.6 Parity-Check Matrix
Let H denote the parity check matrix, that will enable us to decode
the received vectors
For each (k x n) generator matrix G, there exists an (n-k) x n matrix
H, such that rows of Gare orthogonal to the rows of Hi.e., GHT=0
Fulfilling the orthogonality requirements:
and
T
kn PIH | (6.32)
(6.33)
)(,21
)(,22221
)(,11211
100
010
001
knkkk
kn
kn
kn
T
ppp
ppp
pppP
I
H
-
8/10/2019 DC Channel Coding
61/80
It is easy to verify that the product UHTof each codeword U,generated by G and the HTmatrix, yields
UHT
=p1+p1, p2+p2, . Pn-k+ Pn-k = 0where the parity bits p1, p2, .pn-kare defined earlier in Eq.6.29. Uis a code word generated by matrix Giff UHT= 0
-
8/10/2019 DC Channel Coding
62/80
6.4.7 Syndrome Testing
Let r = r1, r2, .., rn be received vector (one of 2n
n-tuples)resulting from the transmission of vector U = u1, u2, .., un(one of 2kn-tuples). We can therefore describer as
r = U + e
where e =e1, e2, .., en is an error vector or error pattern
introduced by the channel. There are a total of 2n-1 potential nonzero error patterns in in the
space of 2nn-tuples.
The syndrome of r is defined as:
S = r HT
The syndrome is the result of a parity check performed on rtodetermine whether ris a valid member of the codeword set.
If, in fact,r is a member, the syndrome Shas a value 0. If r containsdetectable errors, the syndrome has some nonzero value.
(6.34)
(6.35)
-
8/10/2019 DC Channel Coding
63/80
Requirements of the parity-check matrix
-
8/10/2019 DC Channel Coding
64/80
Requirements of the parity-check matrix
No column of H can be all zeros, or else an error in the
corresponding codeword position would not affect the syndrome
and would be undetectable
All columns of H must be unique. If two columns of H were
identical, errors in these two corresponding codeword positions
would be indistinguishable
Example
Codeword U = 1 0 1 1 1 0 , and r = 0 0 1 1 1 0 Find S=rHT
00111,11,1101
110011
100
010
001
011100
TrHS
001
000001
T
T
H
eHS
6 4 8 Error Correction
-
8/10/2019 DC Channel Coding
65/80
6.4.8 Error Correction
Arranging 2n n-tuples; representing possible received vectors, in an
array is called standard array. Standard array for (n,k) code is:
Each row, called a cosetconsists of an error pattern in the first
column called coset leader
If error pattern is not a coset leader, erroneous decoding will result
knkkni
knkn
j
k
jijj
k
i
k
i
k
i
eUeUeUe
eUeUeUe
eUeUeUe
eUeUeUe
UUUU
222222
22
323323
222222
221
(6.38)
-
8/10/2019 DC Channel Coding
66/80
The syndrome of a Coset
Coset is a short for a set of numbers having a common feature
If ej is the coset leader then Ui+ejis an n-tuple in this coset.
Syndrome of this n-tuple is:S = (Ui+ ej) H
T= ejHT
The syndrome must be unique to estimate the error pattern
Error Correction Decoding Calculate the syndrome of R using S=rHT
Locate the coset leader ( error pattern) ej, whose syndrome
equals rHT
This error pattern is assumed to be the corruption caused by the
channel The corrected received vector, or code word, is identified as
U=r+ej. We retrieve the valid codeword by subtracting(adding) the
identified error
Locating the Error Pattern
-
8/10/2019 DC Channel Coding
67/80
Locating the Error Pattern
Example of a standard array for a (6,3) code is shown:
Computing ejHT for each coset leader
101
110
011100
010
001
jeS
-
8/10/2019 DC Channel Coding
68/80
-
8/10/2019 DC Channel Coding
69/80
Error Correction Example
Error pattern is an estimate of error, the decoder addes the
estimated error to received signal to obtain an estimate of
transmitted code word as:
Example: let U=101110, and r=001110, then show how the
decoder can correct the error using look-up table 6.2
eeUeeUerU (6.40)
011101
000001011100
:byestimatedisvectorcorrectedThe
000001
:errorestimated
001011100
erU
e
HS T
Implementation of decoder
-
8/10/2019 DC Channel Coding
70/80
Implementation of decoder
Figure 6.12: Implementation of the (6,3) decoder
-
8/10/2019 DC Channel Coding
71/80
6.5 Error Detection and Correcting Capability
6.5.1 Weigh and Distance of Binary Vector
Hamming distance between two codewords is the number of
elements in which they differ
Hamming weight is the number of nonzero elements
Example:
U = 1 0 0 1 0 1 1 0 1V = 0 1 1 1 1 0 1 0 0
w(U) = 5
d(U,V) = w(U+V) = 6
6.5.2 Minimum Distance of a Linear Code
-
8/10/2019 DC Channel Coding
72/80
6.5.2 Minimum Distance of a Linear Code
The minimum distance (dmin)among all the distances between each
pair of codes in the code set
6.5.3 Error Detection and Correction
The error-correcting capability t of a code: the maximum number of
guaranteed correctable errors per codeword
Error detecting capability defined in terms of dmin
2
1mindt
1minde
6.7 Cyclic Codes
-
8/10/2019 DC Channel Coding
73/80
6.7 Cyclic Codes
An (n,k) linear code is called a cyclic code if it can be described by
the following property: the code with shifted version being in the
code set, so if we have a code word:
Then its shifted version:
is also a code word.
1
1
2
210)(
n
n XuXuXuuXU
n
nn XuXuXuXuuXU 13
2
2
101)(
6.7.2 Binary Cyclic Codes Properties
-
8/10/2019 DC Channel Coding
74/80
6.7. a y Cyc c Codes ope t es
Cyclic code can be generated using a generator polynomial:
where g0and gpmust be equal to 1. (n-p=k)
If the message polynomial is given by:
The codeword polynomial in (n,k) cyclic code can be expressed as:
U is said to be a valid codeword of the subspace S iff g(X) dividesinto U(X) without a remainder. A generator polynomial g(X) of an
(n,k) cyclic code is a factor of Xn+1, that is:
Xn+1=g(X)h(X)
p
pXgXgXggXg 2
210)( (6.57)
1
1
2
210)(
pn
pn XmXmXmmXm (6.58)
XgXmXmXmmXU kk 112210 (6.59)
6.7.3 Encoding in Systematic Form
-
8/10/2019 DC Channel Coding
75/80
g y
Message vector:
Multiply m(k) with Xn-k
Divide by g(X)
Adding p(X) to both sides, we have:
Where:
112
210
k
k XmXmXmmXm
11
1
10
nk
knknknXmXmXmXmX
XpXgXqXmX kn
XUXgXqXmXXp kn
),,,,,,,( 110)(
110
bitsmessagek
k
bitsparitykn
kn mmmpppU
Example (on the board)
-
8/10/2019 DC Channel Coding
76/80
p ( )
6.8 Well-Known Block Codes
-
8/10/2019 DC Channel Coding
77/80
6.8.1 Hamming Codes
Simple class of block codes characterized by the structure:
These codes have a minimum distance of 3 and are capable of
correcting single errors
For hard-decision decoding, bit error probability is:
Where p is channel symbol error probability
Equivalent equation:
For performance over Gaussian channel using coherently
demodulated BPSK, channel symbol error probability is:
mkn mm 12,12,
n
j
jnj
B ppjnj
nP
2
)1(1
1)1( nB pppP
0
2
N
EQp c
6.8.2 BCH Codes
-
8/10/2019 DC Channel Coding
78/80
Bose-Chadhuri-Hocquenghem (BCH) codes are generalization of
Hamming Codes
Powerful class of cyclic codes that provide large selection of block
lengths, code rates, alphabet sizes, and error correcting capability
Table 6.4 lists some code generators g(X) for various values of n,k
and t upto block length of 255
-
8/10/2019 DC Channel Coding
79/80
Table 6.4: Generators of BCH Codes
-
8/10/2019 DC Channel Coding
80/80