DC Channel Coding

download DC Channel Coding

of 80

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