PARITY CHECK MATRICES OF CONVOLUTIONAL CODES OVER RINGS HERBERT SALUDES PALINES SUBMITTED TO THE FACULTY OF THE GRADUATE SCHOOL UNIVERSITY OF THE PHILIPPINES LOS BA ˜ NOS IN PARTIAL FULFILLMENT OF THE REQUIREMENTS FOR THE DEGREE OF MASTER OF SCIENCE (Mathematics) June 2011
175
Embed
Parity Check Matrices of Convolutional Codes Over Rings
Herbert S. Palines MS Thesis Institute of Mathematical Sciences and Physics College of Arts and Sciences Graduate School University of the Philippines Los Baños
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
PARITY CHECK MATRICES OFCONVOLUTIONAL CODES
OVER RINGS
HERBERT SALUDES PALINES
SUBMITTED TO THE FACULTY OF THE GRADUATE SCHOOLUNIVERSITY OF THE PHILIPPINES LOS BANOS
IN PARTIAL FULFILLMENT OF THEREQUIREMENTS FOR
THE DEGREE OF
MASTER OF SCIENCE(Mathematics)
June 2011
ii
BIOGRAPHICAL SKETCH
Herbert S. Palines was born on March 8, 1984 as the second eldest child of Spouses
Thelma DA. Saludes and Peter D. Palines. He attended his primary education at
Paaralang Elementarya ng Lucban in Quezon. He got his secondary education at
Southern Luzon Polytechnic College Laboratory High School also located in Lucban,
Quezon and graduated as salutatorian. With his love to learn mathematics, he contin-
ued his college education at University of the Philippines Los Banos with the degree
of Bachelor of Science in Mathematics. After his graduation, he became an instructor
of mathematics. It is his hope that teaching and learning mathematics can help solve
problems in our lives.
HERBERT SALUDES PALINES
iii
ACKNOWLEDGEMENTS
I would like to extend my gratitude to the following:
Math Division, for supporting me to go on study leave.
Graduate School of UPLB and DOST, for giving the thesis grant.
Coding Theory Cluster of IMSP, especially to Prof. Cerezo, for the helpful con-versations on MAGMA routines.
Members of my guidance committee, for their time, especially to Dr. Cuaresma,for her valuable inputs in this manuscript.
My adviser, Dr. Sison, for his guidance and patience that enabled me to developan understanding of my thesis.
My family and friends, for their immeasurable support.
My wife, Kareen, for her love and understanding.
Above all, to Almighty God, who made all things possible.
iv
TABLE OF CONTENTS
Page
Title Page i
Approval Page ii
Biographical Sketch iii
Acknowledgements iv
List of Tables viii
List of Figures ix
Abstract x
1 INTRODUCTION 1
1.1 Coding Theory 1
1.2 Applications 3
1.3 Objectives of the study 4
1.4 Synopsis 4
2 THEORETICAL BACKGROUND 11
2.1 Groups, Rings and Fields 11
2.2 Modules and Vector Spaces 20
2.3 Matrices 23
2.4 Linear Block Codes 29
2.5 Summary 31
v
3 CONVOLUTIONAL CODES OVER RINGS 32
3.1 Definition of a Convolutional Code 32
3.2 Structural Properties of Convolutional Encoders 36
3.3 Estimating Free Distance 42
3.4 Summary 44
4 THE PARITY CHECK MATRIX OF ACONVOLUTIONAL CODE 45
4.1 Definition of a Parity Check Matrix 45
4.2 Deriving a Parity Check Matrix 48
4.2.1 A parity check matrix from a systematic encoder 48
4.2.2 A parity check matrix from a square polynomial matrix withpolynomial inverse (PMPI) 57
4.2.3 A parity check matrix from the subdeterminants of a generatormatrix 83
4.3 Summary 87
5 NEW EXAMPLES OF ENCODERS FOR SELF-DUALCONVOLUTIONAL CODES 88
5.1 Self-Dual Convolutional Codes 88
5.2 The Algorithm for Constructing the Examples 91
6.2 Structural Properties of a Parity CheckMatrix From a Generator Matrix over Zpr(D) 118
6.3 Summary 123
7 LOW-DENSITY CONVOLUTIONAL (LDC) CODES 124
7.1 Definition of LDC codes 124
7.2 Construction of an LDC code 127
7.3 Encoder of an LDC code 129
7.4 Summary 133
SUMMARY AND RECOMMENDATIONS 135
REFERENCES 138
A MAGMA PROGRAMS 141
A.1 Computing for the subdeterminants of a generator matrix 141
A.2 Checking basicity of a PGM 144
A.3 Checking reducedness of a PGM 148
A.4 Checking predictable degree property of a PGM 152
A.5 An estimation of the free distance of a code 156
A.6 For the new examples of encoders of self-dual convolutional codes 160
B LIST OF SYMBOLS 164
vii
LIST OF TABLES
Table Page
2.1 The Lee weight function on Z4 30
viii
LIST OF FIGURES
Figure Page
7.1 Illustration of the Jimenez - Zigangirov method for constructing thesyndrome former of a semi-homogeneous LDC (2, 2.5, 5)-code 128
ix
ABSTRACT
PALINES, HERBERT S. University of the Philippines Los Banos, June 2011.Parity Check Matrices of Convolutional Codes Over Rings
Major Professor: Virgilio P. Sison
We extend the block code case of deriving a parity check matrix from a sys-tematic generator matrix to convolutional codes over rings. We show that if G(D) =(I, A) is a k×n generator matrix of a convolutional code C over a ring R where n = 2k(i.e. I, A ∈ R(D)k×k), A is invertible over R(D) and A−1 = −At, then the paritycheck matrix H(D) = (−At, I) for C is equivalent to G(D) and C is self-dual. Newexamples of encoders of self-dual convolutional codes over Z2 and Z4 are constructed.In the Zpr case, we show that the systematicity of the generator matrix implies thesystematicity, right invertibility, basicity, noncatastrophicity, and minimality of theparity check matrix. We consider specific conditions where a parity check matrix anda generator matrix are both minimal-basic.
By completing a basic encoder G(D) into a square polynomial matrix with poly-nomial inverse (PMPI) matrix B, a basic parity check matrix H(D) is taken fromB−1. This construction is obtained by proving that an encoder G(D) over Zpr [D] isbasic if and only if it is a submatrix of a square PMPI matrix over Zpr [D]. We showthat the minors of G(D) and H(D) are equivalent up to units in Zpr [D]. It is alsoproved that each i-th constraint length of H(D) is bounded above by the sum of rowdegrees of B.
From a given (n − 1) × n encoder G(D), we derive a 1 × n parity check matrixH(D). We prove that if G(D) is basic, then H(D) is basic. Given a polynomialgenerator matrix G(D), we show that the overall constraint length of H(D) is equalto the maximum degree of the minors of G(D).
Finally, a thorough discussion of the classical theory of low-density convolutional(LDC) codes is given. For time-invariant LDC codes, it has been observed that anencoder of a code can be obtained from the syndrome former H(D)t of the code ifthe parity check matrix H(D) is systematic and basic.
x
Chapter 1
INTRODUCTION
In this chapter, we introduce a brief background of coding theory and its applications.
Then, we state the objectives of the study and discuss the synopsis of this material.
1.1 Coding Theory
Coding, in its broadest sense, is the transformation of information from one form to
another. On the other hand, the term coding theory pertains to a special kind of
coding that allows error detection and correction. According to the paper by Massey
[14], coding theory was initially a special tool in telegraphy and its development was
slow. It became a compact theory as a consequence of the Channel Coding Theorem
by Claude E. Shannon (1916-2001) as discussed in his 1948 paper entitled, “A Math-
ematical Theory of Communication” [20]. Because of this breakthrough, information
theory and its branch coding theory started to grow rapidly. It was further developed
by the work of R. W. Hamming who was stimulated by his colleague’s (Shannon)
discovery. Hamming then discovered the first general class of error correcting codes
(ECC). Originally, ECCs came about in response to practical problems in reliable
communication. The main idea in information theory is that every information is in
its digital form. Now, the given problem is that when the information is produced
2
from a source and it passed through a noisy channel, it must be possible that the
original information can be recovered.
Coding theorists found out that in the construction of ECCs, sophisticated math-
ematics is required. At present, coding theory in the form of algebraic coding is also
a mathematical subject.
One of the oldest forms of coding for error control is the addition of parity check
bits to an information string. In a digital communication system, it is in source
coding where the original message is divided into sequences and then transformed in
its digital form using the symbols from a suitable alphabet, usually a ring. What
follows is channel coding or simply encoding where adding the parity check bits or
redundancy digits occurs. In this process, the message becomes a code. Then the
code is ready to combat noise in the channel.
The fundamental challenge in coding theory is to find good codes with both rea-
sonable information content and error handling ability. It is being done since it is
known that a message can be corrupted when it passes through a noisy channel or
it can be distorted when stored on a device with unreliable memory. To put it sim-
ply, there exists no perfect channel. By Shannon’s channel coding theorem, finding
good codes became possible. In other words, the theorem implies that an arbitrarily
reliable communication is possible.
3
1.2 Applications
It has been said that the main motivation of coding theory comes from its practical
engineering applications, particularly in digital telecommunications. Coding is used
in compact discs and in Wi-fi and Wi-Max technologies, to mention some.
Philipsr invented the Compact Disc Digital Audio system that uses the so-
called Reed-Solomon codes that make the CDs still playable even after experiencing
scratches, cracks or other similar damages, to some extent.
The International Telecommunication Union (ITU) adopted Wi-Fi and Wi-Max as
one of the International Mobile Telecommunications-2000 (IMT-2000) Technologies
due to increasing demand of low complexity and higher performance systems. Wi-Fi
and Wi-Max technologies are major global cellular wireless standards. IEEE 802.16e
standards use low density parity check (LDPC) codes based on single frequency net-
work (SFN). LDPC codes with the help of high frequency powerful processors are
error correcting codes which allow transmission at rates in close proximity to Shan-
non’s limit for large block length. Gupta and Virmani [8] described various LDPC
codes for Wi-Fi and Wi-max technologies.
4
1.3 Objectives of the study
This study aims to do the following:
1. Prove additional duality properties for convolutional codes over rings.
2. Construct new examples of convolutional codes over rings with desirable parity
check matrices.
3. Derive the induced structural properties of parity check matrices of convolu-
tional codes over rings from the structural properties of the generator matrices.
4. Observe the effect of using low density parity check matrix on the encoder of
the code.
1.4 Synopsis
In Chapter 2, we discuss the theoretical concepts needed in this thesis. We introduce
convolutional codes over rings in Chapter 3. Particularly, in Section 3.1, we describe
convolutional encoding and highlight its connection to the ring of Laurent series.
What follows is a definition of a convolutional code C over a ring R and a definiton
of a generator matrix over the ring of rational functions R(D). In Section 3.2, we
focus on the structural properties of convolutional encoders and consider polynomial
generator matrices (PGMs). The free distance of a code is an important parameter
5
for the goodness of a code. Hence, a discussion on estimating the free distance based
on the truncation method by Sison [22] is given in Section 3.3.
The main results in this thesis are found in Chapters 4 to 7. To be guided in these
chapters, the definitions, examples, theorems, lemmas or corollaries without names
after it are formulated by the authors. Moreover, some theorems/lemmas/corollaries
in these chapters are classic results. However, we provide alternative proofs for them.
Particularly, we give our own proofs for Lemma 4.2, Corollary 6.1, Corollary 6.2,
Corollary 6.3 and Theorem 6.3. In the case of Theorem 6.5, we provide the details of
its proof.
In Chapter 4, we discuss parity check matrices of a convolutional code. In Section
4.1, we give the definition of a parity check matrix and a sufficient condition for its
existence. The main method in this thesis, which is on deriving a parity check matrix
from a generator matrix of a code, is discussed in Section 4.2. Specifically, in Section
4.2.1, a parity check matrix is derived from a systematic generator matrix (CI); in
Section 4.2.2, we complete a k×n basic encoder over Zpr [D] into a n×n polynomial
matrix with polynomial inverse (PMPI) matrix B over Zpr [D], then obtain a (n−k)×n
parity check matrix from the last (n− k) columns of B−1 (CII); and in Section 4.2.3,
a parity check matrix H(D) is taken from the (n− 1)× (n− 1) subdeterminants of a
(n− 1)× n encoder G(D) (CIII). Note that CII is attained by showing that a k × n
encoder G(D) over Zpr [D] is basic if and only if G(D) is a submatrix of a n×n PMPI
6
matrix over Zpr [D]. The given constructions CI, CII and CIII are used repeatedly in
the succeeding chapters. CI is utilized in Sections 5.2, 5.2.1, 5.2.2, 6.1.2, 6.1.2 and
7.3, while CII and CIII are used in Sections 6, 6.1.2, 6.1.2 and 7.3.
In Chapter 5, we consider the dual of convolutional codes. Note that there are
two notions of duality for convolutional codes (see [23]). In our case, we define the
dual of a convolutional code in Section 5.1 as an analog to the dual of a linear block
code. Based on this definition and using CI, we show that if G(D) = (I, A) is a
k × n generator matrix of a convolutional code C over a ring R where n = 2k (i.e.
I, A ∈ R(D)k×k), A is invertible over R(D) and A−1 = −At, then the parity check
matrix H(D) = (−At, I) for C is equivalent to G(D) and C is self-dual. Moreover, we
consttuct new examples of 4 × 8 encoders for self-dual convolutional codes over Z2
and Z4 (see Sections 5.2.1 and 5.2.2, respectively). The said encoder over Z2(D) is
minimal-basic while the encoder over Z4(D) is a systematic PGM. In Section 5.2, the
algorithm for constructing these examples is given. We created a MAGMA program
to construct these examples (see Appendix A.6). Since MAGMA do not have an
intrinsic function that generates the ring of rational functions Z4(D), the constructed
encoder over Z4(D) is limited to polynomial entries.
A parity check matrix H(D) of a code C is an encoder of the the dual code C⊥. So,
in Chapter 6, we study the structural properties of H(D) and consider polynomial
7
parity check matrices (PPCMs). Initially, in Section 6, we discuss connections be-
tween equivalent encoders of a code in terms of their subdeterminants and constraint
lengths. In Section 6, we show in the ring case that the k×k subdeterminants of two
equivalent generator matrices are equal up to units in R(D). Consequently, we prove
that the k×k minors of two equivalent basic generator matrices are equal up to units
in R[D]. Thus, in the field case, it is clear that the k × k minors of two equivalent
basic generator matrices are equal up to nonzero elements in the field. Verifying that
µ (the maximum degree among the k×k minors of a PGM) is invariant overall equiv-
alent basic encoders of convolutional codes over fields. Interestingly, we can extend
this idea among basic PGMs and PPCMs of a code. We show that if G(D) and H(D)
are both basic encoders over Zpr [D], then the (n− k)× (n− k) minors of H(D) are
equal to the k × k minors of G(D), up to units in Zpr [D]. In addition, we show that
if G(D) and H(D) are submatrices of unimodular matrices B and B−1 over Zpr [D],
that is det(B) and det(B−1) are units in Zpr , then µG = µH , where µG and µH are
the maximum degree among the k × k minors of G(D) and H(D), respectively. In
Section 6.1.2, we determine the connections of encoders in terms of their constraint
lengths. In the field case, the constraint lengths of equivalent minimal-basic encoders
are equal, except for the order. As a result, we show that the overall constraint
length ν is invariant among minimal-basic PGMs and PPCMs of a code. While in
the Zpr case, we show that if a k×n PGM G(D) and a (n− k)×n PPCM H(D) are
both basic such that they are submatrices of n × n PMPI matrices B and B−1 (see
CII), respectively, then the i-th constraint lengths of H(D) are bounded above by
8
the sum of row degrees of B. In the context of CIII, it is immediate that the overall
constraint length νH of the 1 × n parity check matrix H(D) is exactly µG. In Sec-
tion 6.1.2, we focus on parity check matrices over Zpr(D) and study their structural
properties. We show that the systematicity of the encoder G(D) over Zpr [D] causes
the parity check matrix H(D) (derived from G(D) using CI) to be systematic, right
invertible, basic, noncatastrophic and minimal. Also, we consider a k × n (n = 2k)
PGM G(D) = (Ik, A) and a PPCM H(D) = (−At, Ik) of a code over Zpr(D) and give
conditions where G(D) and H(D) are both minimal-basic.
Chapter 7 is a thorough exposition of the theory of low-density parity check con-
volutional codes (LDPC-CCs) or low-density convolutional (LDC) codes. In Section
7.1, the definition of LDC code is introduced. A specific construction of LDC code
using Jimenez-Zigangirov method is given in Section 7.2. In Section 7.3, we focus
on time-invariant binary LDC code which is defined by a n × (n − k) polynomial
syndrome former H(D)t, the transposed of PPCM H(D). Note that an LDC code,
say C, is completely determined by its sparse syndrome former H t (in semi-infinite
matrix form). Nevertheless, an encoder G of C can be described by H t through
vjHt0 + vj−1H
t1 + · · ·+ vj−msH
tms = 01×(n−k) (1.1)
where v = v0v1v2 . . . vj . . . is a causal codeword of C and H t0, H
t1, . . . , H
tms are n×(n−k)
submatrices of H t over Z2. In particular, we observe the connections between the
syndrome former H(D)t and an encoder G(D) of C where H(D) is systematic and
basic. As a consequence of CI, if H(D) is systematic, then we can derive a systematic
9
encoder G(D). We illustrate this through an example. Moreover, we verify that the
first k components of every codeblock vj, encoded by G at time j, coincide with the
information block uj and the last (n − k) components of vj are defined by (1.1). In
this situation, the memory of the syndrome former H(D)t is equal to the memory
of G(D). If H(D) is minimal-basic with overall constraint length νH , then C can be
encoded by a minimal-basic encoder with overall constraint length νH . Finally, we
show that if the n× (n− k) syndrome former H(D)t is basic, then using CII, a basic
k × n encoder G(D) can be obtained from a n× n PMPI matrix. It is shown that if
H(D)t is a submatrix of a n× n PMPI matrix B′, then the i-th constraint lengths of
G(D) are bounded above by the column degrees of B′ (or the row degrees of (B′)t).
We constructed MAGMA programs that helped us in the analysis of certain prob-
lems in this thesis and they are found in Appendix A. The subroutine given in Ap-
pendix A.1 is for computing the k× k subdeterminants of a k×n matrix, 1 ≤ k ≤ 4.
The subroutines in Appendix A.2 are used to check for the basicity of a k × n PGM
over F[D] via the minors, 1 ≤ k ≤ 4. In the field case, reducedness is equivalent to
µG = νG where G(D) is a PGM, µG is the maximum degree among the k × k minors
of G(D) and νG is the overall constraint length of G(D). Please note that we will not
use the notion of reducedness in this thesis so the reader is referred to [15]. However,
we created subroutines, found in Appendix A.3, to test for the reducedness of a given
k×n PGM G(D) through µG and νG. In Appendix A.4, the subroutines are intended
10
to verify the predictable degree property (PDP) of a k×n PGM over the ring of poly-
nomials, where 1 ≤ k ≤ 4. Technically, the program on PDP works over any rings
defined in MAGMA. The subroutines given in Appendix A.5 are meant to estimate
the free distance of convolutional codes over Z2 and Z4. In this program, we use the
truncation method introduced by Sison [22]. Finally, the subroutines in Appendix
A.6 are used to construct examples of 4× 8 encoders of self-dual convolutional codes
over Z2 and Z4.
11
Chapter 2
THEORETICAL BACKGROUND
In this chapter we introduce groups, rings, fields, modules, vector spaces, matrices,
and linear block codes. We look closely on the special kind of rings, the ring of Laurent
series and its subrings which are of great use in the discussion of the succeeding
chapters. These mathematical concepts are necessary for the understanding of this
thesis. The references for this chapter are the works by Hungerford [10] and Sison
[21]. Proofs and some details are excluded so the reader is referred to [10] and [21],
accordingly.
2.1 Groups, Rings and Fields
Definition 2.1. A group is a non-empty set G together with a binary operation ∗
on G such that the following three properties hold:
(i) ∗ is associative, that is, for any a, b, c ∈ G,
a ∗ (b ∗ c) = (a ∗ b) ∗ c;
(ii) there is an identity element eG in G such that for all a ∈ G,
a ∗ eG = eG ∗ a = a;
12
(iii) for each a ∈ G, there exists an inverse element a−1 ∈ G such that
a ∗ a−1 = a−1 ∗ a = eG.
If the group also satisfies
(iv) for all a, b ∈ G, a ∗ b = b ∗ a,
then the group is called abelian.
Example 2.1.
1. The set Z2 = {0, 1} is an abelian group under addition modulo 2. We can also
use the notation F2 for Z2.
2. Similarly, the set Z4 = {0, 1, 2, 3} is an abelian group under addition modulo 4.
3. The set of all n-tuples over F2 [resp. Z4], denoted by Fn2 [resp. Zn4 ] is an abelian
group under componentwise addition modulo 2 [resp. addition modulo 4].
A non-empty subset H of a group G is said to be a subgroup of G if properties
(i)-(iii) hold for arbitrary elements a, b, c ∈ H.
Theorem 2.1. A non-empty subset H of a group G is a subgroup if and only if
a ∗ b−1 ∈ H for all a, b ∈ H.
Definition 2.2. A ring is a non-empty set R together with two binary operations,
usually denoted as addition (+) and multiplication (·), such that:
13
(i) (R,+) is an abelian group;
(ii) (ab)c = a(bc) for all a, b, c ∈ R;
(iii) a(b+ c) = ab+ ac and (a+ b)c = ac+ bc for all a, b, c ∈ R.
If in addition:
(iv) ab = ba for all a, b ∈ R,
then R is said to be a commutative ring. If R contains an element 1R such that
(v) 1Ra = a1R = a for all a ∈ R,
then R is said to be a ring with identity (unity), and the identity is the element
1R. The additive identity of R is called the zero element and is denoted by 0.
From this point up to the last part of this section, the ring R under consideration
is assumed to be a commutative ring with identity, unless otherwise specified. A zero
divisor is a nonzero element a ∈ R such that ab = 0 for some nonzero b ∈ R. An
element c ∈ R is called nilpotent if there is a positive integer n such that cn = 0.
A ring R has no zero divisor if and only if the cancellation laws hold in R. If a
commutative ring R with identity 1R 6= 0 has no zero divisor, then R is said to be an
14
integral domain.
If there is a smallest positive integer n such that na = 0 for all a in a ring R,
then R is said to have characteristic n, denoted by charR = n. If no such n exists,
then R is said to have characteristic zero, charR = 0. If R has identity 1R and
charR = n > 0, then n is the order of 1R in the additive group of R. Furthermore,
if R is an integral domain, then n is prime.
An element a ∈ R is said to be left [resp. right] invertible if there exists c ∈ R
[resp. b ∈ R] such that ca = 1R [resp. ab = 1R]. The element c [resp. b] is called a left
[resp. right] inverse of a. If an element a of R is both left and right invertible, then a
is said to be invertible or a unit in R. The set of units in R form a multiplicative
group. From this point, we denote that group by Ru.
A nonzero element q of R is said to divide an element p ∈ R, or to be a divisor
of p, denoted q|p, if there exists x ∈ R such that qx = p. In this case, we say that p is
a multiple of q, or that p is divisible by q. Further if q|p and p|q, then we say that
q and p are associates. A nonzero nonunit element c of R is said to be irreducible
if c = ab, then a or b is a unit in R.
A ring D with identity 1D 6= 0 in which every nonzero element is a unit is called
a division ring. A field is a commutative division ring. Every field is an integral
domain, and every finite integral domain is a field. A finite field of order q is usually
15
called as Galois field, denoted by GF (q). Henceforth, we use F or GF (q) to denote
an arbitrary field.
A nonempty subset I of a commutative ring R is called an ideal if and only if,
for all a, b ∈ I and r ∈ R, the following conditions hold:
a, b ∈ I =⇒ a− b ∈ I
r ∈ R and a ∈ I =⇒ ra ∈ I .
Let a ∈ R, then the set Ra = {ra | r ∈ R} is an ideal, called the principal ideal
generated by a which can be denoted by (a). If every ideal of a ring is principal,
that ring is called a principal ideal ring. The ring ZM is a principal ideal ring. A
principal ideal ring which is an integral domain is called a principal ideal domain
(PID).
Example 2.2.
1. The set of integers Z is an infinite ring under the usual addition and multipli-
cation.
2. The set of integers ZM = {0, 1, 2, . . . ,M − 1} together with addition modulo M
and multiplication modulo M is a finite commutative ring with identity. This
ring is usually called the ring of integers modulo M If M = pr, where p is a
prime and r ∈ Z, r > 0, then we have Zpr .
16
3. In the set Z4 = {0, 1, 2, 3} together with addition and multiplication modulo 4,
2 is a zero divisor while 1 and 3 are both units. Hence, Z4 is not a field since 2
is not a unit.
4. Z2 = {0, 1} under addition and multiplication modulo 2 is a field and commonly
known as the binary field.
5. Consider a commutative ring R with unity and the indeterminate D. We intro-
duce the ring of Laurent Series and its subrings.
(a) A Laurent Series is an infinite sum in D with a finite number of negative
powers of D. For instance,
x(D) =+∞∑i=−∞
xjDj
where the coefficients xj are in R, is a Laurent series over R in indetermi-
nate D. We denote the ring of Laurent Series over R in indeterminate
D as R((D)) where an element of this ring is given by x(D) above. If R is
a field, then R((D)) is also a field. A Laurent series is said to be causal if
it contains no negative powers of D.
(b) The ring of formal power series, denoted by R[[D]] , contains an ele-
ment of the form
x(D) =+∞∑i=0
xjDj
where xj ∈ R. A formal power series is nothing more than a causal Laurent
series.
17
(c) The ring of polynomials is denoted by R[D] where each element contains
no negative power and only finite number of positive powers of D. That
is, every element p(D) in R[D] is of the form
p(D) = a0 + a1D + a2D2 + . . .+ anD
n =n∑i=0
aiDi
where ai ∈ R and n is a nonnegative integer.
Consider f(D), g(D) ∈ R[D] given by f(D) =n∑i=0
aiDi and g(D) =
m∑i=0
biDi, respectively, then addition is defined as
f(D) + g(D) =
max(n,m)∑i=0
(ai + bi)Di
and multiplication is given by
f(D)g(D) =n+m∑k=0
ckDk ,
where ck =k∑i=0
ak−ibi.
The leading coefficient of a nonzero polynomial is the nonzero coefficient
of the term with the largest power of D. On the other hand, the trailing
coefficient of a nonzero polynomial is the nonzero coefficient of the term
with the smallest power of D. For p(D) ∈ R[D], if an 6= 0 and ai = 0
for all i > n, then n is the degree of the polynomial p(D), denoted by
deg(p(D)). The leading coefficient of the polynomial p(D) shown above is
18
an if an 6= 0.
A polynomial p(D) is said to be a monic polynomial if the leading coeffi-
cient of p(D) is 1R. The additive identity of R[D] is the zero polynomial,
the polynomial whose coefficients are all zero. A root of a nonzero poly-
nomial p(D) ∈ R[D] is an element w in a ring S ⊃ R, such that p(w) = 0.
Given that p(D) ∈ R[D] is not a unit, p(D) is said to be irreducible over
R[D] if for every factorization p(D) = r(D)s(D), either r(D) or s(D) is a
unit in R[D].
(d) We let the ring of rational functions R(D) be the set
{p(D)q(D)
p(D), q(D) ∈ R[D], q(D) 6= 0 and the trailing coefficient of
q(D) is a unit in R} .
The condition that the trailing coefficient of q(D) is a unit in R allows us
to treat a rational function as an equivalence class in the relation
p1(D)
q1(D)∼ p2(D)
q2(D)if and only if p1(D)q2(D) = p2(D)q1(D).
Note that we can expand p(D)q(D)
by performing long division and thus, every
rational fraction is uniquely expressible as a Laurent series with at most
finitely many negative powers of D.
(e) F(D) is a field and F[D] is a PID.
(f) Z4(D) is a principal ideal ring [5] while Z4[D] is not a field since it contains
zero divisors.
19
(g) A considerable subring of R(D) is the ring of realizable functions Rr(D)
. This ring consists of rational functions p(D)/q(D), where q(0) is a unit
in R. A realizable function when expanded into a Laurent series is a causal
rational function. That is, the ring Rr(D) can be seen as the intersection
of R(D) and R[[D]].
If R and S are rings, a function f : R → S is a ring homomorphism provided
that for all a, b,∈ R, we have
f(a+ b) = f(a) + f(b) and f(ab) = f(a)f(b) .
We focus our attention on a specific ring homomorphism α on Zpr , called mod-p
reduction map, given by
α : Zpr −→ Zp
x 7→ x mod p .
We also consider a natural extension of α to Zpr [D] defined by
Where adj(A) is the so-called adjoint of A. So, getting the determinants
of both sides of (2.4) will result to
det(A) det(adj(A)) = [det(A)]n or det(adj(A)) = [det(A)]n−1. (2.5)
From (2.3) and (2.5), it follows that
det(A−1) =∑σ∈Sn
(sgnσ)Aσ(1)1Aσ(2)2 · · ·Aσ(n)n
[det(A)]n
= 1[det(A)]n
·∑σ∈Sn
(sgnσ)Aσ(1)1Aσ(2)2 · · ·Aσ(n)n
= 1[det(A)]n
· det(adj(A))
= 1[det(A)]n
· [det(A)]n−1
= 1det(A)
∈ Ru
since det(A) ∈ Ru. Thus, A−1 ∈ U(n,R[D]).
The theorem above simply says that a unimodular matrix is a square polynomial
matrix over R[D] with determinant in Ru, thus its inverse is also a polynomial matrix.
29
Since the units in R[D], where R is a commutative ring with unity, are not only the
nonzero units in R, apparently, there is a larger set of square polynomial matrices
which are invertible over R[D]. It is also immediate from the proof of Theorem 2.4
that this set of square polynomial matrices over R[D] forms a group. We call such a
matrix as square polynomial matrix with polynomial inverse (PMPI).
2.4 Linear Block Codes
A block encoder is described by a linear map that is completely determined by a
k×nmatrixG over R, wherein a k-tuple u of symbols in R, called information word,
is sent to an n-tuple v of symbols over R, called a codeword, via the relationship
v = uG .
A rate-k/n linear block code B over R generated by G is the set of those codewords
given by
B = {v ∈ Rn | v = uG, u ∈ Rk} .
The matrix G is called a generator matrix for B if the rows of G span B and if no
proper subset of the rows of G generates B. In general, a block code B over R is a
subset of Rn, but, if B is linear, then B can be regarded as an R-submodule of Rn
which may not be necessarily free.
One of the indicators of the goodness of a code is its minimum distance. The
30
distance measures the capability of the code to detect and correct errors. A linear
block code can be equipped with a suitable distance metric through a weight function
wt defined on B and is given by
wt : Rn −→ R .
We discuss the Hamming metric and Lee metric.
The Hamming weight of an element x ∈ R is given by
wtH(x) =
1 if x 6= 0
0 if x = 0
. (2.6)
Let y = (y1, y2, . . . , yn) ∈ Rn, then the Hamming weight of y is given by
wtH(y) = wtH(y1) + wtH(y2) + . . .+ wtH(yn) .
We consider a quaternary linear block code to be a linear block code whithalphabet Z4. The Lee weight of an element x ∈ Z4, denoted by wtL(x) , is given
below:
Table 2.1: The Lee weight function on Z4
x wL(x)0 01 12 23 1
Suppose y = (y1, y2, . . . , yn) ∈ Zn4 , the Lee weight of y is extended as follows:
wtL(y) = wtL(y1) + wtL(y2) + . . .+ wtL(yn) .
31
The minimum (Hamming, Lee, etc.) distance d of a linear block code B is
given by
d = min{wt(v − v′)|v, v′ ∈ B, v 6= v′}
where wt is a weight function (Hamming, Lee, etc.) defined on B and wt(v − v′) is
the (Hamming, Lee, etc.) distance between v and v′.
Consider a linear block code over a field and codewords v and v′. The number of
coordinates where v and v′ are different is precisely given by wtH(v − v′). So if v is
a sent codeword and v′ is the received codeword after transmission, then wtH(v− v′)
is the number of errors that occurred during the transmission. A linear block code B
with minimum distance d can correct up to⌊d−12
⌋number of errors. Thus, the higher
the minimum distance, the better the code is. Thus, for most practical applications,
the minimum distance of a code is one of the most important parameters. However,
determining the minimum distance of a code is not an easy problem.
2.5 Summary
The basic algebraic structures such as groups, rings, fields, modules and vector spaces
have been discussed. A special kind of rings, the ring of Laurent series and its subrings,
especially the ring of rational functions and ring of polynomials, were considered since
they will be of great use in the discussion of the succeeding chapters. Some properties
and notations on matrices were established. A general background on linear block
codes have been presented.
32
Chapter 3
CONVOLUTIONAL CODES OVER RINGS
In this chapter, we discuss convolutional encoder. Then we adopt a specific definition
of a convolutional code. We also give the structural properties of generator matrices
and the free distance of a convolutional code. The references used in this chapter are
the works by McEliece [15], Mittelholzer [16, 17], Sison [21, 22] and Wittenmark [23].
3.1 Definition of a Convolutional Code
A convolutional encoder over R is a linear mapping where the input sequence
u is possibly an infinite sequence of information blocks uj , denoted by
u = . . . u−2u−1u0u1u2 . . .
where each block uj has k symbols, that is
uj = (u(1)j , u
(2)j , . . . , u
(k)j )
where u(i)j ∈ R, i = 1, . . . , k.
At a given time-instant j, a k-ary block uj is fed into the convolutional encoder
and an n-ary block vj, called the code block is produced. Consequently, after
33
each information block has passed through the convolutional encoder, the output
sequence v is obtained, which is given by
v = . . . v−2v−1v0v1v2 . . . ,
where
vj = (v(1)j , v
(2)j , . . . , v
(n)j )
and v(i)j ∈ R, i = 1, . . . , n. It should be noted that the information sequence and code
sequence u and v, respectively, should start at some finite time j (conveniently at
j = 0) but may or may not end.
In convolutional encoding, the code block vj uses not only the current informa-
tion block uj, but also uses a fixed number, say m, of earlier information blocks
uj−1, uj−2, . . . , uj−m. Specifically, at each time-instant j, the code block vj is gener-
ated as
vj = ujG0 + uj−1G1 + . . .+ uj−mGm (3.1)
where each generator submatrix Gi is a k×n matrix over R, i = 1, 2, . . . ,m. Unlike
the block encoder, convolutional encoder has the so-called memory, which is given
by the integer m. We can think of a linear block code as a degenerate special case of
a convolutional code. That is, we can say that a linear block code is a memory-less
(m = 0) convolutional code.
Consider an information sequence u. The code sequence v is determined through
m:=Matrix([g[f],g[s]]); // a 2x2 submatrixd:=Determinant(m); // a 2x2 minorDT:=Append(DT,d); // collects the minors as a sequence
end for;end for;
when 3:
for f:=1 to (n-2) dofor s:=f+1 to (n-1) do
for t:= s+1 to n dom:=Matrix([g[f],g[s],g[t]]); // a 3x3 submatrixd:=Determinant(m); // a 3x3 minorDT:=Append(DT,d); // collects the minors as a sequence
end for;end for;
end for;
when 4:
for f:=1 to (n-3) dofor s:=f+1 to (n-2) do
for t:= s+1 to n-1 dofor q:=t+1 to n do
m:=Matrix([g[f],g[s],g[t],g[q]]); // a 4x4 submatrixd:=Determinant(m); // a 4x4 minorDT:=Append(DT,d); // collects the minors as a sequence
end for;end for;
end for;end for;
end case;
143
return DT;
end function;
cmr
Example A.1
> g1;[ D + 1 3*D 1][ D^2 D^2 + D + 1 1]> Minors(g1);[
These subroutines will test for the basicity of a k×n PGM G(D) over F(D).
Recall that G(D) is basic if and only if the gcd of the k×k minors of
G(D) is 1 (see [15]). Basically the algorithm for this program is based
on that theorem.
forward Minors, gd;
Minors:=function(g1)
k:=Nrows(g1);
n:=Ncols(g1);
GT:=Transpose(g1);
DT:=[];
d:=0;
for i:=1 to n do
g:=RowSubmatrix(GT,i); // the ith row of a PGM as a sequence
end for;
case k:
when 1:
DT:=Eltseq(g1);
when 2:
for f:=1 to (n-1) do
for s:=f+1 to n do
m:=Matrix([g[f],g[s]]); // a 2x2 submatrix
d:=Determinant(m); // a 2x2 minor
DT:=Append(DT,d); // collects the minors as a sequence
end for;
end for;
when 3:
145
for f:=1 to (n-2) do
for s:=f+1 to (n-1) do
for t:= s+1 to n do
m:=Matrix([g[f],g[s],g[t]]); // a 3x3 submatrix
d:=Determinant(m); // a 3x3 minor
DT:=Append(DT,d); // collects the minors as a sequence
end for;
end for;
end for;
when 4:
for f:=1 to (n-3) do
for s:=f+1 to (n-2) do
for t:= s+1 to n-1 do
for q:=t+1 to n do
m:=Matrix([g[f],g[s],g[t],g[q]]); // a 4x4 submatrix
d:=Determinant(m); // a 4x4 minor
DT:=Append(DT,d); // collects the minors as a sequence
end for;
end for;
end for;
end for;
end case;
return DT;
end function;
// This subroutine will compute for the gcd of the kxk minors
forward gd, IsBasic;
gd:=function(g1)
GTCD:=[];
gcd:=0;
m:=Minors(g1); // m is a sequence of kxk minors of g1 (m := DT)
for i:=1 to #m do // #m is the number of elements in the sequence
gcd:=GCD(m[i],gcd); // get the GCD of the minors
if gcd ne 1 then
146
gcd:=gcd;
end if;
end for;
return gcd,m;
end function;
// This subroutine will test for the basicity of a given PGM using
the subroutines Minors and gd.
IsBasic:=function(g1);
k:=Nrows(g1);
n:=Ncols(g1);
gcd,m:=gd(g1);
print g1,"is a",k,"x",n,"matrix";
print "there are",#m, "(",k,"x",k,")-","minors given below";
print m;
if gcd eq 1 then
return "The given PGM is BASIC since the gcd of the
minors is", gcd;
else
return "The given PGM is NOT BASIC. The gcd of the
minors is", gcd,".";
end if;
end function;
Example A.2
> g2;
[ D + 1 D 1]
[ D^2 D^2 + D + 1 1]
> IsBasic(g2);
[ D + 1 D 1]
[ D^2 D^2 + D + 1 1]
is a 2 x 3 matrix
there are 3 ( 2 x 2 )- minors given below
[
1,
D^2 + D + 1,
147
D^2 + 1
]
The given PGM is BASIC since the gcd of the minors is 1
> g3;
[ 1 D^2 + D + 1 D^2 + 1 D + 1]
[ D D^2 + D + 1 D^2 1]
> IsBasic(g3);
[ 1 D^2 + D + 1 D^2 + 1 D + 1]
[ D D^2 + D + 1 D^2 1]
is a 2 x 4 matrix
there are 6 ( 2 x 2 )- minors given below
[
D^3 + 1,
D^3 + D^2 + D,
D^2 + D + 1,
D^2 + D + 1,
D^3 + D^2 + D,
D^3 + 1
]
The given PGM is NOT BASIC. The gcd of the minors is D^2 + D + 1
148
A.3 Checking reducedness of a PGM
This program will check the reducedness of a k×n PGM G(D) over F(D).The property of G(D) being reduced is equivalent to µG = νG where µGis the maxmimum degree among the k×k minors of G(D) and νG is the overall
constraint length of G(D) (see [15]).
forward Minors, intdeg;
Minors:=function(g1)
k:=Nrows(g1);
n:=Ncols(g1);
GT:=Transpose(g1);
DT:=[];
d:=0;
for i:=1 to n do
g:=RowSubmatrix(GT,i); // the ith row of a PGM as a sequence
end for;
case k:
when 1:
DT:=Eltseq(g1);
when 2:
for f:=1 to (n-1) do
for s:=f+1 to n do
m:=Matrix([g[f],g[s]]); // a 2x2 submatrix
d:=Determinant(m); // a 2x2 minor
DT:=Append(DT,d); // collects the minors as a sequence
end for;
end for;
when 3:
for f:=1 to (n-2) do
for s:=f+1 to (n-1) do
for t:= s+1 to n do
149
m:=Matrix([g[f],g[s],g[t]]); // a 3x3 submatrix
d:=Determinant(m); // a 3x3 minor
DT:=Append(DT,d); // collects the minors as a sequence
end for;
end for;
end for;
when 4:
for f:=1 to (n-3) do
for s:=f+1 to (n-2) do
for t:= s+1 to n-1 do
for q:=t+1 to n do
m:=Matrix([g[f],g[s],g[t],g[q]]); // a 4x4 submatrix
d:=Determinant(m); // a 4x4 minor
DT:=Append(DT,d); // collects the minors as a sequence
end for;
end for;
end for;
end for;
end case;
return DT;
end function;
// This subroutine will compute for the internal degree
(:=maximum degree among the kxk minors) of a PGM
forward intdeg, IsReduced;
intdeg:=function(g1)
k:=Nrows(g1);
m:=Minors(g1);
intd:=0;
for i:=1 to #m do
if Degree(m[i]) gt intd then
intd:=Degree(m[i]); // gets the maximum degree among
end if; // the kxk minors
end for;
return intd; // the maximum degree as the internal degree of the PGM
150
end function;
// This subroutine will compute for the external degree
// (:=overall constraint length) of a PGM
forward extdeg, IsReduced;
extdeg:=function(g1)
k:=Nrows(g1);
rd:=0;
ed:=0;
for i:=1 to k do
g:=RowSubmatrix(g1,i); // the ith row of a PGM as a sequence
rs:=Eltseq(g[i]); // for each row, access each entry by expressing
for j:=1 to #rs do // each row as a sequence
if Degree(rs[j]) gt rd then
rd:=Degree(rs[j]); // the maximum degree among the
end if; // entries in each row
end for;
ed:=ed+rd;
rd:=0;
end for;
return ed; // return the sum of the maximum degrees
end function;
// This subroutine will test for the reducedness of a given PGM
// using the subroutines Minors,intdeg and extdeg.
IsReduced:=function(g1);
k:=Nrows(g1);
n:=Ncols(g1);
intd:=intdeg(g1);
extd:=extdeg(g1);
m:=Minors(g1);
print g1,"is a",k,"x",n,"matrix.";
print "There are",#m, "(",k,"x",k,")-","minors given below.";
print m;
print "The EXTERNAL degree of G(D) is", extd,".";
print "and the INTERNAL degree of G(D) is", intd,".";
if extd eq intd then
151
return "Hence the given PGM is REDUCED.";
else
return "Hence the given PGM is NOT REDUCED.";
end if;
end function;
Example A.3
> g4;
[D^2 + D + 1 D^2 + 1]
> IsReduced(g4);
[D^2 + D + 1 D^2 + 1]
is a 1 x 2 matrix.
There are 2 ( 1 x 1 )- minors given below.
[
D^2 + D + 1,
D^2 + 1
]
The EXTERNAL degree of G(D) is 2 .
and the INTERNAL degree of G(D) is 2 .
Hence the given PGM is REDUCED.
> g2;
[ D + 1 D 1]
[ D^2 D^2 + D + 1 1]
> IsReduced(g2);
[ D + 1 D 1]
[ D^2 D^2 + D + 1 1]
is a 2 x 3 matrix.
There are 3 ( 2 x 2 )- minors given below.
[
1,
D^2 + D + 1,
D^2 + 1
]
The EXTERNAL degree of G(D) is 3 .
and the INTERNAL degree of G(D) is 2 .
Hence the given PGM is NOT REDUCED.
152
A.4 Checking predictable degree property of a PGM
This program will check whether a PGM satisfies PDP or not. The algorithm
in this program is based on the result of Wittenmark [23]: a k×n PGM
G(D) over R(D) satisfies PDP if [G(D)]h contains a submatrix whose determinant
is a unit in R.
forward rowd, indicatormatrix;
rowd:=function(g)
k:=Nrows(g);
rd:=0;
rowdeg:=[];
for i:=1 to k do
g1:=RowSubmatrix(g,i); // the ith row of a PGM as a sequence
rs:=Eltseq(g1[i]); // for each row, access each entry by
for j:=1 to #rs do // expressing each row as a sequence
if Degree(rs[j]) gt rd then
rd:=Degree(rs[j]); // the maximum degree among the
end if; // entries in each row
end for;
rowdeg:=Append(rowdeg,rd);
rd:=0;
end for;
return rowdeg; // return row degrees
end function;
forward indicatormatrix, HasPDP;
indicatormatrix:=function(g)
c:=CoefficientRing(BaseRing(g));
k:=Nrows(g);
n:=Ncols(g);
seqpdp:=[];
rowdegrees:=rowd(g);
blockrow:=[];
blockg:=[];
153
for i:=1 to k do
g1:=RowSubmatrix(g,i); // the ith row of a PGM as a sequence