0% found this document useful (0 votes)
45 views11 pages

Cyclic Code Vectors and Matrices

The document discusses the properties and generation of cyclic codes, specifically focusing on a (7,4) cyclic code with a generator polynomial G(P) = P^3 + P + 1. It provides solutions for generating code vectors in both nonsystematic and systematic forms, detailing the polynomial representations and the corresponding code vectors. Additionally, it verifies the cyclic property of the code vectors and outlines the construction of generator and parity check matrices for the cyclic code.

Uploaded by

BALAJI D
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
45 views11 pages

Cyclic Code Vectors and Matrices

The document discusses the properties and generation of cyclic codes, specifically focusing on a (7,4) cyclic code with a generator polynomial G(P) = P^3 + P + 1. It provides solutions for generating code vectors in both nonsystematic and systematic forms, detailing the polynomial representations and the corresponding code vectors. Additionally, it verifies the cyclic property of the code vectors and outlines the construction of generator and parity check matrices for the cyclic code.

Uploaded by

BALAJI D
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

3.

30 Communication Systems

xrG) : Mr (P) G(P)


xzG) = M2 (P) G(P)

X:(P) : M: (P) G(P)

All the above code vectors X,, X, X, ... are is nonsystematic form and thel
satisfy cyclic property Note the generator polynomial G(p) remains the same for a1-

code vectors.

Problems:

1. The generator polynomial of a (7,4) cyclic code is G(P) : F + p + 1. Finat


all tlte code vectors for the code in nonsystematic form.
i
Solution:
fr:7, k:4 q: n-k:3
2k = 24=16 message vectors of 7 bits each.
M=(mt nz mt mo) = (0 1 0l)
Then the message polynomial will be (k: 4)

M(P)= *t P3 * mz P' *, P+ ms
M(P)= P2 +1
Generator polynomial is.

G(P)= P3 +P+1
To obtain non systematic code vectors

The non systematic cyclic code is given by equation as

X(P)=M(p)c(p) =7p2+t)(p3 + p+t)


=P5+P3+P2+P3+P+1
=P5+P'*p'+p2+p+l
=P5 + (1@1) P' * p' + p+l
Digital Techniques
3.31

=p5+p2+p+l
0P6 + Ps +Tpa +0p3 + p2 +p +l
Note that the degree to above polynomiar
is n-r:6. The code vector
corresponding to above polynomial is.

X=(xo xsx4x3x2x1xs):(0 I 00 I I l)
This is the code vector for message vector
[Link] code vector is non
systematic cyclic code vector. Similarly
other code vectors can be obtained using
- 1. Frn,m the same as below Table

Message bits Non systematic code vectors


glo
m3 ffiz ffit ho x6 x_5 xq 13 x2 xl xo
1 0 0 0 0 0 0 0 0 0 0 0
2 0 0 0 I 0 0 0 I 0 I I
J 0 0 I 0 0 0 I 0 I I 0
4 0 0 1 I 0 0 1 1 1 0 I
5 0 I 0 0 0 I 0 I I 0 0
6 0 1 0 1 0 1 0 0 1 1 1
7 0 1 I 0 0 I I I 0 I 0
8 0 I I
1 0 I I 0 0 0 1
9 I 0 0 0 I 0 I I 0 0 0
10 I 0 0 I I 0 I 0 0 I 1
11 I 0 1 0 I 0 0 I I I 0
t2 I 0 I I I 0 0 0 I 0 1

13 I 1 0 0 I 1 I 0 I 0 0
t4 I 1 0 I
1 I I I I I I
15 I I I 0 I I 0 0 0 I 0
l6 I I I 1
I
I I 0 I 0 0 I
To check whether cyclic property
is satisfied:
Let us consider code vector xg
which is given in above table
as,
X" = (1011000)
).JZ
Communication SYstems

Let us shift this code vector cyclically to left side by 1 bit position. Then we
get.

Xl:0110001
From table, observe that
Xr:X8:(0110001)
Thus cyclic shift ofxe produces [Link]., be verified for other code vectors also.

Verified for code vectors also.

Generation of the vectors in systematic form


The systematic form of the block code is

-
f - /k message bits: (z-ft) check bits)
- ( D) vtlvvLr vl'r,

: (mttm*-2"'mImo: cq-tcq-2 "'cI co)


Here the check bits form a polynomial as

c(P) : cq-t Pq-r + P'-t + "'c1 P + cs


"n-z
The check bit polynomial is obtained by.

c(p)=remirygl
L crpl l
2. The generator polynomial of a(7,4) cyclic code is G(p) : lt + p+1. Find all the
code vectorsfor the code in systemaiicform.

Solution:
Heren=7 &k:4q:n-k:3
2k: 2a : 16 message vectors of 7 bits each.
consider message vector as.
M =(mt mz mt mo) = (0101)
M(p)=mt p3 + *z p2 +
^t P*mo
M(P) = p2 +1
generator polynomial is

G(P) = p3 +P +l
Systems Digital Techniques
[Link]
n we sei. fo obtain pq MG)
q:3, pqM(p) will be .

Ps M(P) : P3 M1p.y
,(p, * t)
rs also.
:p5+p3
: ps +op4 + p3 +opz + op +o
G(p)= p3 + p+t

:p3+0p2+p+l

To perform the division r')4:lTq)


G(P)

Let's perform the division to find remainder


of this division.
P2+9:6 , <- Quotient
p3 +op2+p+l
'[':1..!.:i+0p+0
d all thc

1
p'+op+O
Remainter
-Y+

c(p)=rrr,f-&".1=P'+op+O
-'
L GG) J
q :3 the polynomial c(p)

c(p)=cz p2 * c1 p*cs

czp2*ctp*ca = p2+0p+O
3 "34
Communication Systems

The reform the check bits are.

,: (czc, co) : (100)

X = (mrq mk_2 ....mt mg : cq_t cq_z .... I co)

X= (mt tfi2 m1 ffio tc2 cr co) = (0101 :100)


This is the required cyclic code vectors in systematic form. The other code
vectors can be obtained as.

The message bits and systematic code vectors are given below table.

[Link] Message bits Systematic code vectors

t m^ m2 ffil ffio nl"J nlz ml mo c2 cl co


-t

1 0 0 0 0 0 0 0 0 0 0 0

2 0 0 0 1 0 0 0 1 0 I 1

a
J 0 0 1 0 0 0 I 0 1 1 0

4 0 0 I 1 0 0 1 1 1 0 I
5 0 1 0 0 0 1 0 0 I I 1

6 0 1 0 1 0 1 0 1 I 0 0

7 0 1 1 0 0 1 1 0 0 0 I
8 0 1 1 1 0 I I I 0 I 0

9 1 0 0 0 1 0 0 0 I 0 1

10 1 0 0 I I 0 0 I 1 1 0

11 1 0 1 0 1 0 1 0 0 I 1

t2 I 0 1 1 1 0 I I 0 0 0

13 I I 0 0 I 1 0 0 0 1 0
t4 1 1 0 I 1 1 0 1 0 0 I
15 1 I I 0 1 I I 0 I 0 0
t6 1 1 1 1 1 I I 1 I I 1
)n Syster: Digital Techniques
3.3 s

Generator and parity check matrices of cyclic code.

Non systematic form of generator matrix

Since cyclic codes are subclass of linear block codes,


generator and parity
;heck matrices can also be defined for cyclic codes
the generator matrix has the
size of kxn.
other co;:
That means there are ,k, rows and 'n' columns Let the generator matrix G(p)
ce given by
ble.

Ggl: G(p)= pq + gq_t pq-l+....+ gt p+l


multiply both the sides of the polynomial by pi
co
n'Gp; = p'*n * gr-, pi+q-l+...+g,p,+r + p,

i = (k -t),(k -2).....2, t, 0
Obtuin the generator matrix corresponding to
G(p) = J, + p, + I for a (7, 4)
cyclic code.

fr : 7, k: 4, q : 7 _4 = 3 prG(p)
P' Ge) - P'+: + P#2 + p'
k_l:3;i:3,2,1,0
Thus we will obtain four polynomials corresponding to values of 'I'. Tliere
-our polynomials corresponding to values
of ,I,. These four polynomials represent
:ows of generator matrix.

For rowl:i = 3+ p3 G(p) = p6 + ps + p3

For row2:i = 2= p2G(p) = ps + pa + p2

Forrow3:i = l=>pc(p) - pa+p3+p


Forrow4:i = 0=G(p)=p3 + pz +l
Communication SYstems
3.36

The generation matrix (n, k)code is of size kxn' For this (7,4) cyclic code
the

size will be [Link] to 4 rows we have obtained four


polynomials given

by above equation.

Rorul p3 G@) = p6 + p5 +\pa + p3 + Op' *0p +0


=
[Link]}= p2 G(p) = 0P6 + ps * po +0p3 + p2 + 0p + 0
+ PG(p) - 0P +Tps + p4 + p3 + Tpz + p+ 0
Rorv3

Row4= G(P) =0P6 +)ps+\pa + p3 + p2 +0p+l


Rowl ) p3 G@) =P6 + p5 +Lpa + p3 +0p' *07r + 0
F.ow2) p2 G@) =opu -, pt + p4 +0p' * pz +Op +0
Rorv3+PG(p) :0P6 +\ps + p4 + p3 +0p2+p+0
flow4+ G(p) =0P6 +Tps + Tpa + p3 + p2 + 0p +1'
Let's transform the above set of polynomials into a matrix of 4x7

pu p' pop'p'p'po

u4*7-

4. Fincl ortt the generator motrix coffesponcling to G(p)


: p3 + p+l firtd oui
the code vectors for (7, 4) cyclic code

(i) To obtain generator matrix.

pi G(p) = pi*3 + p'*t +pi o, i =3,2,1,0.

i=3=p3 GG) = p6 + po * p'


i:2+p2 GG) =p5 + p3 *p2

i=l=PG(P) = p4 + pz +p'
o n Syste rr : )igital Techniques
3.37
:lic code tl-"
rmials gir e-
i =0=> G(P) =p3 + p +l

p6 p5 pa p3 p'p, po
Ro,,l[t o I I o o ol
"- Row3jo oI oi oi ii oi 6lol
"_Row2lo
Row4l0 0 0 I 0 1 t)o*,
Since cycric code is a subcrass a
of rinear block code it s code vectors can be
:rtained by equation

X: MG

(ii) To obtain the code vectors

M : (nt, :
m2tn
| *o) (1001)

The code vector corresponding


to trris message vector w,r be,

[rolloool
X=MG=r'oo,i/f
; i ; I I ;/=,,0,00,,)
Systematic from of Generator
L;;;;;;,]
matrix.
G =[Ik: p1,*n]1,*,

rl find aa tt, row of this matrix will be

G - or-r + Rr(p) t =1,2,3, ...1{

Re mainder
#
u(r)= Qtnriettt *
G(P)
h-l

ffi=''(P)*H?
pn-t = Q,(p) G(p) + R,(p)and
t =1,2, ...k.
p'-, @ R, (p) = O/(p) G(p)
3.3 B
Com mu n ication Syste rr :

5. Find out the generator matrix for a systematic (7r4) cyclic code ;-'
G(p) : F + p + 1. Atso find out the parity check matrix.

1. To obtain generator polynomial

The t'' row to generator matrix

pn-t + R, (P): Qr(P) G(P) r =1,2,...k

fl:7, k:4 &, q: n-k:3.


p7'' +R,(P) :Q,G) @', * p+ 1) & t : 1,2,3,4
with r : 1, the above equation becomes.
pu*
\ (P): Q,(P11p3 + p+l)

To obtain RT (p) and at(p) for 1" row

p3+p+l e Quotient
p3+p+l p6 + 0+0
p6+p4+p3
0 +pa +p3+0+0
p4+o+p2+p
\pa + p3+ p2+ p+0

p3+O+p+l
t'* t * Remainder

Q,(P):p3+p+l R/(p)= p2+l


p6 + p2 +l = (p3 + p+l) 93 + p+l)

The RHS or LHS of the above eqn represents 1"' row of generator ma:-:.

1t'row polynomial: p(' + p2 +l


Digital Techniques 3.39
on SYsten:
Other row polynomials
clic code j-"

t=2= ps + p2 + pl
t=)-)po*p'*p
+
-1 -

t=4=p3+p+l
Conversion of row polynomials into matrix
o
p6 pt po p' p2 pl p'
Rowl[1 o o o :10 1l
Q=
I
nrrzl o o o :11 1l ,
- I

Roru3l0 0I 0 :11 ol
Row4[0 00 I :01 I lo.,

X: MG
M : (rr, m2mr*o) : (1100)

[t ooo il
X=MG=rrlooll 3 I? 3
Loool ?l
X:(1100010)
This code vector is obtained by performing matrix multiplication and mod -2
:ddition

To obtain Parity check matrix (H)

G : [o: pp,, )y,n

[toll
l' 1rl
'=ltt, r ol
:rator matn]
L0 r llo,,
H = Lr'r: Irf,*u
PT is the transpose ofp submatrix
Communication SYs:=-
3.40

is the q x4 identify matrix

[r I l0:100
1i:010
H =lot
L1 I 01:001 3x'l

Thisistherequiredparityclreckmatrixfor(7,4)cycliccodeinSyste:-,*
fornr.

g-to coNVOLUTIqN coDES

ConvolutionalcodesgenerateencodedSequenceforinputSeqtlenceon',
For successive input bits output bits are
generated' It consists of dal" -:;
bit basic.
check bits.
help of maximum likelihood algc: -:n
convolution codes are decodecl with the
suoh as viterbi algorithm'

3.10.1 Definition of Convolution:

Aconvolutioncodirrgisdonebycombiningthefixednumberofinpu::"
shift register and they are com:.-
The input bits are stored in the fixed length
is equivalent to binary cor\ t-r' -
with the help of mod - 2 adder. This operation
and hence it is called convolution coding'

Previous two successive messa:.


bits are stored in those 2 fliPflo:'
The bit rePresent Those trvo bits rePresent state i -
n'l t11 ffl2 shift repister
;hift regis
|

rr
".b
Y
l_
1

2
+
x

Fig. 3.17 Convolution Codes

Common questions

Powered by AI

A cyclic code is a type of linear block code that has the property where cyclic shifts of any codeword are also codewords. The generator polynomial G(p) is pivotal as it is used to generate the code vectors by multiplying it with a message polynomial M(P) to produce non-systematic code vectors. Specifically, for a (7,4) cyclic code, the generator polynomial G(P) = p^3 + p + 1 is used to determine code vectors like these: X(P) = M(P)G(P), where M(P) is a representation of the message bits. The generator polynomial remains constant across different code vectors, ensuring the cyclic properties are satisfied, such as in Source 1 and Source 2 where shifting code vectors cyclically confirms this property .

The parity check matrix (H) in cyclic codes is crucial for error detection. It is established by placing the identity matrix on one side and the parity bits on the other, corresponding to the orthogonal complement of the generator matrix rows. H is constructed by ensuring its product with any valid codeword yields zero, validating the error-free transmission of codewords. For a systematic (7,4) cyclic code, H is formed by a kxn matrix transposition and alteration as described in Source 4 and Source 5, typically involving the generator polynomial and cyclic mechanics to ensure all matrix transformations maintain the properties required for cyclic code functionalities .

The generator polynomial directly influences the structure and error-correcting capabilities of cyclic codes, as it dictates how codewords are formed and ensures systematic redundancy. A specific G(p) like p^3 + p + 1 ensures every valid codeword is a polynomial multiple of G(p), thus enforcing the cyclic property and enabling cyclic shifts to still represent valid codevectors. It determines the minimum distance, thus affecting error detection/correction capacity. In Source 1, the generator polynomial's consistent application ensures that any cyclic shift yields another codeword from the set .

Converting polynomials into the row form of a generator matrix requires: (1) Determining the generator polynomial G(p) for the code. (2) For each row, calculate piG(p) for i from 0 to k-1, where G(p) is multiplied with a decaying power of p. (3) Express each result as a binary polynomial, converting to a binary vector. (4) Compose these vectors as rows in a k×n matrix, assembling the generator matrix. This is illustrated in Source 3 where polynomials like p^3G(p) yield specific binary vectors that line up to rows in the generator matrix .

Cyclic shift in cyclic codes refers to the property that allows any cyclic rotation (shift) of a codeword to still be another valid codeword within the same code set. This property is significant because it strengthens the cyclic code's ability to detect and correct errors through these predictable transformations. In practice, these shifts confirm code validity and help in simplifying the design and analysis of the coding scheme. Examples where this property is verified include shifting code vectors like in Source 2, showing that a cyclic left shift of a vector results in another known vector, maintaining the cyclic property .

To ensure that each code vector in cyclic block codes retains the cyclic property, each vector must remain a legit codeword upon any number of cyclic shifts. Techniques include systematic matrix checks where shifted vectors are recalculated and validated against pre-established cyclic codes, often involving polynomial division and modular arithmetic checks. As demonstrated in Sources 1 and 2, specific examples of tables and cyclic transformations are used to confirm these properties, with shifts producing known equivalents like X0 transforming to X8 (0110001) through verified routines .

Constructing a generator matrix for a cyclic code involves several steps: (1) Identify the generator polynomial G(p), for instance, G(P)= p^3 + p +1 for a (7,4) cyclic code. (2) Derive a set of polynomials by multiplying G(p) by powers of p corresponding to the number of rows needed, i.e., k-rows. (3) Each polynomial (like p^3G(P), p^2G(P), pG(P), G(P)) becomes a row in the generator matrix. (4) Transform these polynomials into binary form to construct a matrix of size k x n. This generator matrix is pivotal in encoding messages into code vectors through multiplication with message vectors, ensuring systematic encoding if arranged appropriately. This process is elaborated across Sources 3 and 4, emphasizing the conversion of polynomials into matrix form .

Convolutional codes differ from cyclic block codes primarily in their encoding process and structure. While cyclic codes use linear combinations of fixed block sizes, convolutional codes encode data using shift registers and generate output sequences based on current and previous input bits, providing continuous encoding. Transmission in convolutional coding is bit-by-bit, leveraging algorithms like the Viterbi algorithm for decoding, unlike cyclic codes that handle blocks at a time. Convolution codes use feedback through shift registers for encoding, whereas cyclic codes rely on algebraic encoding via polynomials, as described in Source 5 .

Systematic code vectors are generated by arranging message vectors directly in part of the codeword and then appending check bits at the end. The check bits are derived as a remainder when the message polynomial is divided by the generator polynomial, ensuring the message part stays unchanged in the encoded vector. In Source 2, this process involves taking message vectors like (0101), deriving the polynomial, and performing division to get the remainder (check bits), resulting in a systematic vector like (0101:100).

In cyclic codes, non-systematic formats involve direct multiplication of the message polynomial with the generator polynomial to get the codewords. In contrast, systematic cyclic codes are structured where message bits form part of the codeword directly followed by check bits, ensuring that the message bits appear unchanged. This often involves manipulation of the message using polynomial division to derive check bits, forming parts of codewords, allowing the code to maintain a systematic structure (message bits intact) within the vector. This structure contrast is highlighted in Source 2, where the systematic form is described with the message vector directly forming a portion of the code vector .

You might also like