You are on page 1of 3

CODING THEOREM CYCLIC CODE

• A cyclic code is a linear block code where if c is a codeword,


Coding theory so are all cyclic shifts of c
- study of the properties of codes and their fitness for a – E.g., {000,110,101,011} is a cyclic code
specific application. • Cyclic codes can be dealt with in the very same way as all
- Codes are used for data compression, cryptography, other LBC’s
error-correction and more recently also for network – Generator and parity check matrix can be found
coding. • A cyclic code can be completely described by a generator
- Codes are studied by various scientific disciplines— string G
such as information theory, electrical engineering, – All codewords are multiples of the generator string
mathematics, and computer science—for the purpose • In practice, cyclic codes are often used for error detection
of designing efficient and reliable data transmission (CRC)
methods. This typically involves the removal of – Used for packet networks
redundancy and the correction (or detection) of errors
in the transmitted data. Definition:
AFq[n, k, d] code (linear) C is called cyclic if any cyclic shift
Linear codes of a codeword is a codeword, i.e.

Algebraic coding theory is basically divided into two major (c0. . .cn−1) 2 C) (cn−1, c0. . . cn−2) 2 C
types of codes:
1. Linear block codes Example
2. Convolutional codes. 1 C = {(0000), (1111)} is cyclic
2 C = {(000), (110), (101), (011)} is cyclic
It analyzes the following three properties of a code – mainly: 3 C = {(000), (100), (011), (111)} is not cyclic
• code word length
• total number of valid code words
• the minimum distance between two valid code words, using
mainly the Hamming distance, sometimes also
otherdistances like the Lee distance.

A. Linear block codes

- Linear block codes have the property of linearity, i.e


the sum of any two codewords is also a code word,
and they areapplied to the source bits in blocks,
hence the name linear block codes.

- Linear block codes are summarized by their symbol


alphabets (e.g., binary or ternary) and parameters
(n,m,dmin)where :
1. nis the length of the codeword, in symbols,
2.m is the number of source symbols that will be used
for encoding at once,
3. dminis the minimum hamming distance for the
code.

There are many types of linear block codes, such as


1. Cyclic codes (e.g., Hamming codes)
2. Repetition codes
3. Parity codes
4. Polynomial codes (e.g., BCH codes)
5. Reed–Solomon codes
6. Algebraic geometric codes
7. Reed–Muller codes
8. Perfect codes.
CONVOLUTIONAL CODE

2. Tree-Diagram Representation
- The tree diagram representation shows all possible
information and encodedsequences for the
convolutional encoder

A convolutional code introduces redundant bits into the data


stream through the use of linear shift registers as shown in
Figure 1

- The information bits are input into shift registers and


the output encoded bits are obtained by modulo-2
addition of the input information bits and the contents
of the shift registers.
- The connections to the modulo-2 adders were
developed heuristically with no algebraic or
combinatorial foundation

- The constraint length K for a convolutional code is


defined as - a solid line represents input information bit 0 and a
K = m+ 1 (2.2) dashed line represents input information bit 1.
Where: m is the maximum number of stages (memory - The corresponding output encoded bits are shown on
size) in any shift register. the branches of the tree. An input information
sequence defines a specific path through the tree
- The shift registers store the state information of the diagram from left to right.
convolutional encoder and the constraint length - x={1011} produces the output encoded sequence
relates the number of bits upon which the output c={11, 10, 00, 01}.
depends. For the convolutional encoder shown in - Each input information bit corresponds to branching
Figure 1, the code rate r=2/3, the maximum memory either upward (for input information bit 0) or
size m=3, and the constraint length K=4. downward (for input information bit 1) at a tree node.
ENCODER REPRESENTATION 3. State Diagram Representation
The encoder can be represented in several different but - The state diagram shows the state information of a
equivalent ways. They are convolutional encoder. The state information of a
1. Generator Representation convolutional encoder is stored in the shift registers
2. Tree Diagram Representation
3. State Diagram Representation

1. Generator Representation
- Generator representation shows the hardware
connection of the shift register tapsto the modulo-2
adders.
- A generator vector represents the position of the taps
for anoutput. A ―1‖ represents a connection and a ―0‖
represents no connection.
- For example,the two generator vectors for the
encoder in Figure 2.2 are g1 = [111] and g2 =
[101]where the subscripts 1 and 2 denote the
corresponding output terminals.
- the state information of the encoder is shown in the - if the input to the second encoder is interleaved,its
circles. Each new input information bit causes a output is usually quite different from the output of the
transition from one state to another. first encoder
- The path information between the states, denoted as - the divide-and-conquer strategy can be employed for
x/c, represents input information bit x and output decoding. If the input to the second decoder is
encoded bits c. scrambled, also its output will be different, or
- It is customary to begin convolutional encoding from ―uncorrelated‖ fromthe output of the first encoder.
the all zero state. This means that the corresponding two decoders will
- For example, the input information sequence gain more from information exchange
x={1011} (begin from the all zero state) leads to the
state transition sequence s={10, 01, 10, 11} and
produces the output encoded sequence c={11, 10, 00, Different Interleaver Designs
01}. 1. A “row-column” interleaver: data is written row-wise and
read column-wise. While very simple, it also provides little
randomness.
2. A “helical” interleaver: data is written row-wise and read
diagonally.
3. An “odd-even” interleaver: first, the bits are left
uninterleaved and encoded, but only the odd -positioned
coded bits are stored. Then, the bits arescrambled and
encoded, but now only the even-positioned coded bits are
stored. Odd-even encoders can be used, when the second
encoder produces one output bit per one input bit.
4. A pseudo-random interleaverdefined by a pseudo-random
number generatoror a look-up table.

TURBO CODES

- new codes were sought that would allow for easier


decoding. One way of making the task of the decoder
easier is using a code with mostly high-weight code
words.
- High-weight code words, i.e. code words containing
more ones and less zeros, can be distinguished more
easily.
- divide-and-conquer strategy - involves combining
simple codes in a parallel fashion, so that each part of
the code can be decoded separately with less complex
decoders and each decoder can gain from information
exchange with others.
- a turbo code is formed from the parallel
concatenation of two codes separated by an
interleaver.

• The two encoders used are normally identical;


• The code is in a systematic form, i.e. the input bits also occur
in the output
• The interleaver reads the bits in a pseudo-random order.

- The interleaver scramble bits in a (pseudo-) random

You might also like