Cyclic Code - PowerPoint PPT Presentation

About This Presentation
Title:

Cyclic Code

Description:

Linear Block Code means that the codeword is generated by multiplying the ... Trellis code. Not block code. More closely coupled with modulation. Turbo code. ... – PowerPoint PPT presentation

Number of Views:542
Avg rating:3.0/5.0
Slides: 16
Provided by: zhen6
Learn more at: http://www.cs.fsu.edu
Category:
Tags: code | cyclic | trellis

less

Transcript and Presenter's Notes

Title: Cyclic Code


1
Cyclic Code
2
Linear Block Code
  • Hamming Code is a Linear Block Code. Linear Block
    Code means that the codeword is generated by
    multiplying the message vector with the generator
    matrix.
  • Minimum weight as large as possible. If minimum
    weight is 2t1, capable of detecting 2t error
    bits and correcting t error bits.

3
Cyclic Codes
  • Hamming code is useful but there exist codes that
    offers same (if not larger) error control
    capabilities while can be implemented much
    simpler.
  • Cyclic code is a linear code that any cyclic
    shift of a codeword is still a codeword.
  • Makes encoding/decoding much simpler, no need of
    matrix multiplication.

4
Cyclic code
  • Polynomial representation of cyclic codes. C(x)
    C_n-1xn-1 C_n-2xn-2 C_1x1
    C_0x0, where, in this course, the
    coefficients belong to the binary field 0,1.
  • That is, if your code is (1010011) (c6 first, c0
    last), you write it as x6x4x1.
  • Addition and subtraction of polynomials --- Done
    by doing binary addition or subtraction on each
    bit individually, no carry and no borrow.
  • Division and multiplication of polynomials. Try
    divide x3x2x1 by x1.

5
Cyclic Code
  • A (n,k) cyclic code can be generated by a
    polynomial g(x) which has degree n-k and is a
    factor of xn-1. Call it the generator
    polynomial.
  • Given message bits, (m_k-1, , m_1, m_0), the
    code is generated simply as
  • In other words, C(x) can be considered as the
    product of m(x) and g(x).

6
Example
  • A (7,4) cyclic code g(x) x3x1.
  • If m(x) x31, C(x) x6x4x1.

7
Cyclic Code
  • One way of thinking it is to write it out as the
    generator matrix
  • So, clearly, it is a linear code. Each row of the
    generator matrix is just a shifted version of the
    first row. Unlike Hamming Code.
  • Why is it a cyclic code?

8
Example
  • The cyclic shift of C(x) x6x4x1 is C1(x)
    x5x2x1.
  • It is still a code polynomial, because it the
    code polynomial if m(x) x21.

9
Cyclic Code
  • Given a code polynomial
  • We have
  • C1(x) is the cyclic shift of C(x) and (1) has a
    degree of no more than n-1 and (2) divides g(x)
    (why?) hence is a code polynomial.

10
Cyclic Code
  • So, to generate a cyclic code is to find a
    polynomial that (1) has degree n-k and (2) is a
    factor of xn-1.

11
Generating Systematic Cyclic Code
  • A systematic code means that the first k bits are
    the data bits and the rest n-k bits are parity
    checking bits.
  • To generate it, you let

where
  • The claim is that C(x) must divide g(x) hence is
    a code polynomial. 33 mod 7 6. Hence 33-628
    can be divided by 7.

12
Division Circuit
  • Division of polynomials can be done efficiently
    by the division circuit. (just to know there
    exists such a thing, no need to understand it)

13
Remaining Questions for Those Really Interested
  • Decoding. Divide the received polynomial by g(x).
    If there is no error you should get a 0 (why?).
    Make sure that the error polynomial you have in
    mind does not divide g(x).
  • How to make sure to choose a good g(x) to make
    the minimum degree larger? Turns out to learn
    this you have to study more its the BCH code.

14
Cyclic code used in IEEE 802
  • g(x) x32 x26 x23 x22 x16 x12 x11
    x10 x8 x7 x5 x4 x2 x 1
  • all single and double bit errors
  • all errors with an odd number of bits
  • all burst errors of length 32 or less

15
Other codes
  • RS code. Block code. Used in CD, DVD, HDTV
    transmission.
  • LDPC code. Also block code. Reinvented after
    first proposed 40 some years ago. Proposed to be
    used in 802.11n. Achieve close-to-Shannon bound
  • Trellis code. Not block code. More closely
    coupled with modulation.
  • Turbo code. Achieve close-to-Shannon bound.
Write a Comment
User Comments (0)
About PowerShow.com