Linear Codes and Syndrome Decoding

Total Page:16

File Type:pdf, Size:1020Kb

Linear Codes and Syndrome Decoding Linear Codes and Syndrome Decoding José Luis Gómez Pardo Departamento de Matemáticas, Universidade de Santiago de Compostela 15782 Santiago de Compostela, Spain e-mail: [email protected] Introduction This worksheet contains an implementation of the encoding and decoding algorithms associated to an error-correcting linear code. Such a code can be characterized by a generator matrix or by a parity- check matrix and we give procedures to compute a generator matrix from a spanning set of the code and to compute a parity-check matrix from a generator matrix. We introduce, as examples, the [7, 4, 2] binary Hamming code, the [24, 12, 8] and [23, 12, 7] binary Golay codes and the [12, 6, 6] and [11, 6, 5] ternary Golay codes. We give procedures to compute the minimum distance of a linear code and we use them with the Hamming and Golay codes. We show how to build the standard array and the syndrome array of a linear code and we give an implementation of syndrome decoding. In the last section, we simulate a noisy channel and use the Hamming and Golay codes to show how syndrome decoding allows error correction on text messages. The references [Hill], [Huffman-Pless], [Ling], [Roman] and [Trappe-Washington] provide detailed information about linear codes and, in particular, about syndrome decoding. Requirements and Copyright Requirements: Maple 16 or higher © (2019) José Luis Gómez Pardo Generator matrices and parity-check matrices Linear codes are vector spaces over finite fields. Maple has a package called LinearAlgebra:- Modular (a subpackage of the LinearAlgebra m (the integers modulo a positive integer m, henceforth denoted , whose elements we will denote by {0, 1, ... m-1}). If p is a prime number, is a field and the -vector spaces which are k- dimensional subspaces of and are called [n,k] (or [n,k,d]) linear p-ary codes, where n is the length, k the dimension and d the minimum distance of the code. Our examples will be binary and ternary codes, i.e., - and - vector spaces, which include the most important error-correcting codes. > > The usual ways to describe a linear code is by giving either a generator matrix (namely, a matrix whose row vectors form a basis of the code) or a parity-check matrix (a generator matrix of the dual code, i.e., of the orthogonal space of the code). The following procedure produces a generator matrix for the code generated over (where the prime p is the first parameter) by a set of vectors (the vectors parameter) which can be given either as a list or as a matrix whose files are the vectors of the generating set. > Suppose now that we have the following list of binary vectors: > Then we can obtain a generator matrix of the binary code generated by these vectors as follows: > Alternatively, we can build the matrix whose row vectors are those on the list and then use the procedure to obtain the generator matrix: > Observe that the relevant command that has been used to build the generator matrix is the Basis command of the LinearAlgebra[Modular] package which, as its name already indicates, computes a basis of the space generated by a set of vectors. Thus the rows of the generator matrix previously constructed are obtained with the following command: > Here, the first paramater indicates the modulo (2 in this case), te second one is the list of vectors, the third one specifies the format of the output vectors (row in this case) and the last one is to indicate the format of the null space vectors in case the null space is computed. The value false used here serves to tell the command to not compute it (recall that the null space is the kernel of the linear map defined by the matrix or, in other words, the solution space of the homogeneous system of equations defined by these vectors). It is important to note that we cannot use for this purpose the command Basis of the LinearAlgebra package because what it would compute would be the basis of the real vector space generated by these vectors, quite a different thing! In this case we would obtain: > Thus we see that the list itself is already a basis of the real vector space that these vectors generate, i. e., the vectors in the list l , where they generate a 4-dimensional subspace of The code defined by the generator matrix constructed above is the [7,4] binary Hamming code, which is a systematic code ([Roman]). For a systematic [n,k] code the GeneratorMatrix procedure provides a standard generator matrix of the form G = [ |P] of size kxn, where is the kxk identity matrix. We next give procedures to generate the parity-check matrix of a linear code from a generator matrix. The next function computes the parity-check matrix by finding a basis of the dual code. The input is a prime p that defines the field , and the vectors of a generating set of the code, which can be given in a list or as the rows of a matrix. In the particular case in which these vectors form a basis of the code and are given in matrix form, the second argument will simply be a generator matrix of the code. > For example, a parity check matrix of the binary Hamming code is the following: > The same result is obtained if we compute the parity-check matrix obtained from the vector list l defined above (which, as we have seen, generates the Hamming code): > > If the generator matrix is systematic (a standard matrix), then the parity-check matrix can be directly computed by the following procedure: > For example, since the matrix G is a standard matrix, we can compute: > Observe that, since a parity-check matrix of the code C is simply a generator matrix of the dual code , we can obtain a generator matrix given a parity-check matrix H by applying the procedure ParityCheckMatrix to H (since the dual code of is C itself). If we apply this procedure to a generator matrix G to obtain H and then we apply it again to H, we can obtain a generator matrix of C different from G. However, if G is a standard matrix (all the codes that we will use will be systematic and hence will have standard generator matrices) and we apply the GeneratorMatrix procedure to the generator matrix thus obtained, we will recover the original standard matrix. For example, the following computation recovers the generator matrix G1 from the parity-check matrix H1: > A standard generator matrix can also be easily obtained from a standard parity-check matrix by means of the following procedure that reverses the steps performed in StandardParityCheckMatrix: > Now, the standard generator matrix of the Hamming code can be obtained from its standard parity- check matrix as follows. > > Our next examples will be the Golay codes. In order to display large matrices on screen, we set: > The Golay codes were introduced by Marcel Golay in the following one-page article, published in 1949: Marcel J. E. Golay: Notes on Digital Coding The generator matrices of the (extended) [24, 12, 8] binary Golay code the [23, 12, 7] binary Golay code and the [12, 6, 6] and [11, 6, 5] ternary Golay codes, are given by the following procedure which takes as inputs the prime p (2 in the binary case and 3 in the ternary) an the length n of the code. > The extended binary Golay code was used in the transmission of color pictures of Jupiter and Saturn from the Voyager spacecrafts in the years 1979-81 ([Huffman-Pless], [Ling-Xing], [Roman], [Trappe-Washington]). The generator matrix of this code (which has length 24) is obtained as follows: > > From this generator matrix we can build a parity-check matrix for the binary Golay code using the procedure ParityCheckMatrix given above: > The binary Golay code of length 23 is obtained by puncturing the extended binary Golay code in the last coordinate and has the following generator matrix: > The parity-check matrix of the [23, 12, 7] Golay code is: > Since the generator matrix G2 is in standard form, we could also have used the procedure StandardParityCheckMatrix to obtain the parity-check matrix from G2. Now, a standard generator matrix for the dual code of the extended binary Golay code can be obtained as follows: > By direct observation one notices that this matrix is the same as the generator matrix displayed above but we can use Maple to check that this is indeed the case: > This shows that the Golay code is self-dual and hence being a generator matrix is equivalent to being a parity-check matrix for this code. Since the dimension of this code is exactly equal to half its length, the fact that the code is self-dual can also be checked by multiplying the generator matrix G2 by its transpose and observing that the result is the zero matrix. Next, we compute a generator matrix of the (extended) [12,6,6] ternary Golay code, which is also self-dual as it can be easily seen: > From this we can obtain a parity-check matrix for this code: > Similarly, we obtain the generator and parity-check matrices of the [11, 6, 5] ternary Golay code: > > > > The minimum distance The minimum distance of a code is an important concept since it serves to determine the error- correcting capability of the code. The minimum distance of a linear code is equal to the minimum weight of the code, i.e., to the minimum number of nonzero entries in a nonzero codeword.
Recommended publications
  • Mceliece Cryptosystem Based on Extended Golay Code
    McEliece Cryptosystem Based On Extended Golay Code Amandeep Singh Bhatia∗ and Ajay Kumar Department of Computer Science, Thapar university, India E-mail: ∗[email protected] (Dated: November 16, 2018) With increasing advancements in technology, it is expected that the emergence of a quantum computer will potentially break many of the public-key cryptosystems currently in use. It will negotiate the confidentiality and integrity of communications. In this regard, we have privacy protectors (i.e. Post-Quantum Cryptography), which resists attacks by quantum computers, deals with cryptosystems that run on conventional computers and are secure against attacks by quantum computers. The practice of code-based cryptography is a trade-off between security and efficiency. In this chapter, we have explored The most successful McEliece cryptosystem, based on extended Golay code [24, 12, 8]. We have examined the implications of using an extended Golay code in place of usual Goppa code in McEliece cryptosystem. Further, we have implemented a McEliece cryptosystem based on extended Golay code using MATLAB. The extended Golay code has lots of practical applications. The main advantage of using extended Golay code is that it has codeword of length 24, a minimum Hamming distance of 8 allows us to detect 7-bit errors while correcting for 3 or fewer errors simultaneously and can be transmitted at high data rate. I. INTRODUCTION Over the last three decades, public key cryptosystems (Diffie-Hellman key exchange, the RSA cryptosystem, digital signature algorithm (DSA), and Elliptic curve cryptosystems) has become a crucial component of cyber security. In this regard, security depends on the difficulty of a definite number of theoretic problems (integer factorization or the discrete log problem).
    [Show full text]
  • The Witt Designs, Golay Codes and Mathieu Groups
    The Witt designs, Golay codes and Mathieu groups 1 The Golay codes Let V be a vector space over Fq with fixed basis e1, ..., en. A code C is a subset of V .A linear code is a subspace of V . The vector with all coordinates equal to zero (resp. one) will be denoted by 0 (resp. 1). The Hamming distance dH (u, v) between two vectors u, v ∈ V is the number P P of coordinates where they differ: when u = uiei, v = viei then dH (u, v) = |{i | ui 6= vi}|. The weight of a vector u is its number of nonzero coordinates, i.e., dH (u, 0). The minimum distance d(C) of a code C is min{dH (u, v) | u, v ∈ C, u 6= v}. The support of a vector is the set of coordinate positions where it has a nonzero coordinate. Theorem 1.1 There exist codes, unique up to isomorphism, with the indicated values of n, q, |C| and d(C): n q |C| d(C) name of C (i) 23 2 4096 7 binary Golay code (ii) 24 2 4096 8 extended binary Golay code (iii) 11 3 729 5 ternary Golay code (iv) 12 3 729 6 extended ternary Golay code Let us assume that the codes have been chosen such as to contain 0. Then each of these codes is linear. (The dimensions are 12, 12, 6, 6.) 1 The codes (i) and (iii) are perfect, i.e., the balls with radius 2 (d(C) − 1) around the code words partition the vector space.
    [Show full text]
  • The Theory of Error-Correcting Codes the Ternary Golay Codes and Related Structures
    Math 28: The Theory of Error-Correcting Codes The ternary Golay codes and related structures We have seen already that if C is an extremal [12; 6; 6] Type III code then C attains equality in the LP bounds (and conversely the LP bounds show that any ternary (12; 36; 6) code is a translate of such a C); ear- lier we observed that removing any coordinate from C yields a perfect 2-error-correcting [11; 6; 5] ternary code. Since C is extremal, we also know that its Hamming weight enumerator is uniquely determined, and compute 3 3 3 3 3 3 12 6 6 3 9 12 WC (X; Y ) = (X(X + 8Y )) − 24(Y (X − Y )) = X + 264X Y + 440X Y + 24Y : Here are some further remarkable properties that quickly follow: A (5,6,12) Steiner system. The minimal words form 132 pairs fc; −cg with the same support. Let S be the family of these 132 supports. We claim S is a (5; 6; 12) Steiner system; that is, that any pentad (5-element 12 6 set of coordinates) is a subset of a unique hexad in S. Because S has the right size 5 5 , it is enough to show that no two hexads intersect in exactly 5 points. If they did, then we would have some c; c0 2 C, both of weight 6, whose supports have exactly 5 points in common. But then c0 would agree with either c or −c on at least 3 of these points (and thus on exactly 4, because (c; c0) = 0), making c0 ∓ c a nonzero codeword of weight less than 5 (and thus exactly 3), which is a contradiction.
    [Show full text]
  • Geometry of the Mathieu Groups and Golay Codes
    Proc. Indian Acad. Sci. (Math. Sci.), Vol. 98, Nos 2 and 3, December 1988, pp. 153-177. 9 Printed in India. Geometry of the Mathieu groups and Golay codes ERIC A LORD Centre for Theoretical Studies and Department of Applied Mathematics, Indian Institute of Science, Bangalore 560012, India MS received 11 January 1988 Abstraet. A brief review is given of the linear fractional subgroups of the Mathieu groups. The main part of the paper then deals with the proj~x-~tiveinterpretation of the Golay codes; these codes are shown to describe Coxeter's configuration in PG(5, 3) and Todd's configuration in PG(11, 2) when interpreted projectively. We obtain two twelve-dimensional representations of M24. One is obtained as the coUineation group that permutes the twelve special points in PC,(11, 2); the other arises by interpreting geometrically the automorphism group of the binary Golay code. Both representations are reducible to eleven-dimensional representations of M24. Keywords. Geometry; Mathieu groups; Golay codes; Coxeter's configuration; hemi- icosahedron; octastigms; dodecastigms. 1. Introduction We shall first review some of the known properties of the Mathieu groups and their linear fractional subgroups. This is mainly a brief resum6 of the first two of Conway's 'Three Lectures on Exceptional Groups' [3] and will serve to establish the notation and underlying concepts of the subsequent sections. The six points of the projective line PL(5) can be labelled by the marks of GF(5) together with a sixth symbol oo defined to be the inverse of 0. The symbol set is f~ = {0 1 2 3 4 oo}.
    [Show full text]
  • Review of Binary Codes for Error Detection and Correction
    ` ISSN(Online): 2319-8753 ISSN (Print): 2347-6710 International Journal of Innovative Research in Science, Engineering and Technology (A High Impact Factor, Monthly, Peer Reviewed Journal) Visit: www.ijirset.com Vol. 7, Issue 4, April 2018 Review of Binary Codes for Error Detection and Correction Eisha Khan, Nishi Pandey and Neelesh Gupta M. Tech. Scholar, VLSI Design and Embedded System, TCST, Bhopal, India Assistant Professor, VLSI Design and Embedded System, TCST, Bhopal, India Head of Dept., VLSI Design and Embedded System, TCST, Bhopal, India ABSTRACT: Golay Code is a type of Error Correction code discovered and performance very close to Shanon‟s limit . Good error correcting performance enables reliable communication. Since its discovery by Marcel J.E. Golay there is more research going on for its efficient construction and implementation. The binary Golay code (G23) is represented as (23, 12, 7), while the extended binary Golay code (G24) is as (24, 12, 8). High speed with low-latency architecture has been designed and implemented in Virtex-4 FPGA for Golay encoder without incorporating linear feedback shift register. This brief also presents an optimized and low-complexity decoding architecture for extended binary Golay code (24, 12, 8) based on an incomplete maximum likelihood decoding scheme. KEYWORDS: Golay Code, Decoder, Encoder, Field Programmable Gate Array (FPGA) I. INTRODUCTION Communication system transmits data from source to transmitter through a channel or medium such as wired or wireless. The reliability of received data depends on the channel medium and external noise and this noise creates interference to the signal and introduces errors in transmitted data.
    [Show full text]
  • A Parallel Algorithm for Query Adaptive, Locality Sensitive Hash
    A CUDA Based Parallel Decoding Algorithm for the Leech Lattice Locality Sensitive Hash Family A thesis submitted to the Division of Research and Advanced Studies of the University of Cincinnati in partial fulfillment of the requirements for the degree of MASTER OF SCIENCE in the School of Electric and Computing Systems of the College of Engineering and Applied Sciences November 03, 2011 by Lee A Carraher BSCE, University of Cincinnati, 2008 Thesis Advisor and Committee Chair: Dr. Fred Annexstein Abstract Nearest neighbor search is a fundamental requirement of many machine learning algorithms and is essential to fuzzy information retrieval. The utility of efficient database search and construction has broad utility in a variety of computing fields. Applications such as coding theory and compression for electronic commu- nication systems as well as use in artificial intelligence for pattern and object recognition. In this thesis, a particular subset of nearest neighbors is consider, referred to as c-approximate k-nearest neighbors search. This particular variation relaxes the constraints of exact nearest neighbors by introducing a probability of finding the correct nearest neighbor c, which offers considerable advantages to the computational complexity of the search algorithm and the database overhead requirements. Furthermore, it extends the original nearest neighbors algorithm by returning a set of k candidate nearest neighbors, from which expert or exact distance calculations can be considered. Furthermore thesis extends the implementation of c-approximate k-nearest neighbors search so that it is able to utilize the burgeoning GPGPU computing field. The specific form of c-approximate k-nearest neighbors search implemented is based on the locality sensitive hash search from the E2LSH package of Indyk and Andoni [1].
    [Show full text]
  • On the Algebraic Structure of Quasi Group Codes
    ON THE ALGEBRAIC STRUCTURE OF QUASI GROUP CODES MARTINO BORELLO AND WOLFGANG WILLEMS Abstract. In this note, an intrinsic description of some families of linear codes with symmetries is given, showing that they can be described more generally as quasi group codes, that is as linear codes with a free group of permutation automorphisms. An algebraic description, including the concatenated structure, of such codes is presented. Finally, self-duality of quasi group codes is investigated. 1. Introduction In the theory of error correcting codes, the linear ones play a central role for their algebraic properties which allow, for example, their easy description and storage. Quite early in their study, it appeared convenient to add additional algebraic structure in order to get more information about the parameters and to facilitate the decoding process. In 1957, E. Prange introduced the now well- known class of cyclic codes [18], which are the forefathers of many other families of codes with symmetries introduced later. In particular, abelian codes [2], group codes [15], quasi-cyclic codes [9] and quasi-abelian codes [19] are distinguished descendants of cyclic codes: they have a nice algebraic structure and many optimal codes belong to these families. The aim of the current note is to give an intrinsic description of these classes in terms of their permutation automorphism groups: we will show that all of them have a free group of permutation automorphisms (which is not necessarily the full permutation automorphism group of the code). We will define a code with this property as a quasi group code. So all families cited above can be described in this way.
    [Show full text]
  • Error Detection and Correction Using the BCH Code 1
    Error Detection and Correction Using the BCH Code 1 Error Detection and Correction Using the BCH Code Hank Wallace Copyright (C) 2001 Hank Wallace The Information Environment The information revolution is in full swing, having matured over the last thirty or so years. It is estimated that there are hundreds of millions to several billion web pages on computers connected to the Internet, depending on whom you ask and the time of day. As of this writing, the google.com search engine listed 1,346,966,000 web pages in its database. Add to that email, FTP transactions, virtual private networks and other traffic, and the data volume swells to many terabits per day. We have all learned new standard multiplier prefixes as a result of this explosion. These days, the prefix “mega,” or million, when used in advertising (“Mega Cola”) actually makes the product seem trite. With all these terabits per second flying around the world on copper cable, optical fiber, and microwave links, the question arises: How reliable are these networks? If we lose only 0.001% of the data on a one gigabit per second network link, that amounts to ten thousand bits per second! A typical newspaper story contains 1,000 words, or about 42,000 bits of information. Imagine losing a newspaper story on the wires every four seconds, or 900 stories per hour. Even a small error rate becomes impractical as data rates increase to stratospheric levels as they have over the last decade. Given the fact that all networks corrupt the data sent through them to some extent, is there something that we can do to ensure good data gets through poor networks intact? Enter Claude Shannon In 1948, Dr.
    [Show full text]
  • Error-Correction and the Binary Golay Code
    London Mathematical Society Impact150 Stories 1 (2016) 51{58 C 2016 Author(s) doi:10.1112/i150lms/t.0003 e Error-correction and the binary Golay code R.T.Curtis Abstract Linear algebra and, in particular, the theory of vector spaces over finite fields has provided a rich source of error-correcting codes which enable the receiver of a corrupted message to deduce what was originally sent. Although more efficient codes have been devised in recent years, the 12- dimensional binary Golay code remains one of the most mathematically fascinating such codes: not only has it been used to send messages back to earth from the Voyager space probes, but it is also involved in many of the most extraordinary and beautiful algebraic structures. This article describes how the code can be obtained in two elementary ways, and explains how it can be used to correct errors which arise during transmission 1. Introduction Whenever a message is sent - along a telephone wire, over the internet, or simply by shouting across a crowded room - there is always the possibly that the message will be damaged during transmission. This may be caused by electronic noise or static, by electromagnetic radiation, or simply by the hubbub of people in the room chattering to one another. An error-correcting code is a means by which the original message can be recovered by the recipient even though it has been corrupted en route. Most commonly a message is sent as a sequence of 0s and 1s. Usually when a 0 is sent a 0 is received, and when a 1 is sent a 1 is received; however occasionally, and hopefully rarely, a 0 is sent but a 1 is received, or vice versa.
    [Show full text]
  • The Binary Golay Code and the Leech Lattice
    The binary Golay code and the Leech lattice Recall from previous talks: Def 1: (linear code) A code C over a field F is called linear if the code contains any linear combinations of its codewords A k-dimensional linear code of length n with minimal Hamming distance d is said to be an [n, k, d]-code. Why are linear codes interesting? ● Error-correcting codes have a wide range of applications in telecommunication. ● A field where transmissions are particularly important is space probes, due to a combination of a harsh environment and cost restrictions. ● Linear codes were used for space-probes because they allowed for just-in-time encoding, as memory was error-prone and heavy. Space-probe example The Hamming weight enumerator Def 2: (weight of a codeword) The weight w(u) of a codeword u is the number of its nonzero coordinates. Def 3: (Hamming weight enumerator) The Hamming weight enumerator of C is the polynomial: n n−i i W C (X ,Y )=∑ Ai X Y i=0 where Ai is the number of codeword of weight i. Example (Example 2.1, [8]) For the binary Hamming code of length 7 the weight enumerator is given by: 7 4 3 3 4 7 W H (X ,Y )= X +7 X Y +7 X Y +Y Dual and doubly even codes Def 4: (dual code) For a code C we define the dual code C˚ to be the linear code of codewords orthogonal to all of C. Def 5: (doubly even code) A binary code C is called doubly even if the weights of all its codewords are divisible by 4.
    [Show full text]
  • Arxiv:Math/0311319V1
    Modular and p-adic cyclic codes* A. R. Calderbank and N. J. A. Sloane Mathematical Sciences Research Center AT&T Bell Laboratories Murray Hill, NJ 07974 ABSTRACT This paper presents some basic theorems giving the structure of cyclic codes of length n over the ring of integers modulo pa and over the p-adic numbers, where p is a prime not dividing n. An especially interesting example is the 2-adic cyclic code of length 7 with generator polynomial X3 + λX2 + (λ 1)X 1, where λ satisfies λ2 λ + 2 = 0. This is the 2-adic − − − generalization of both the binary Hamming code and the quaternary octacode (the latter being equivalent to the Nordstrom-Robinson code). Other examples include the 2-adic Golay code of length 24 and the 3-adic Golay code of length 12. 1. Introduction This paper was prompted by the following questions. It is known [14], [16] that the binary polynomial X3 +X +1 that generates the cyclic Hamming code of length 7 lifts to a polynomial 3 2 X + 2X + X + 3 over Z4 that generates the octacode, equivalent to the binary nonlinear Nordstrom-Robinson code. What codes are obtained if we continue to lift this polynomial to Z8, Z16,..., and even to the 2-adic integers Z2∞ ? What is the general structure of cyclic codes over these rings? (Sol´e[23] had already suggested in 1988 that p-adic cyclic codes should be investigated.) arXiv:math/0311319v1 [math.CO] 18 Nov 2003 The answer to the first question is given in Example 1 of Section 4, where we describe the “2-adic Hamming code” of length 7 in detail.
    [Show full text]
  • Iterative Decoding of Product Codes
    Iterative Decoding of Product Codes OMAR AL-ASKARY RADIO COMMUNICATION SYSTEMS LABORATORY Iterative Decoding of Product Codes OMAR AL-ASKARY A dissertation submitted to the Royal Institute of Technology in partial fulfillment of the requirements for the degree of Licentiate of Technology April 2003 TRITA—S3—RST—0305 ISSN 1400—9137 ISRN KTH/RST/R--03/05--SE RADIO COMMUNICATION SYSTEMS LABORATORY DEPARTMENT OF SIGNALS, SENSORS AND SYSTEMS Abstract Iterative decoding of block codes is a rather old subject that regained much inter- est recently. The main idea behind iterative decoding is to break up the decoding problem into a sequence of stages, iterations, such that each stage utilizes the out- put from the previous stages to formulate its own result. In order for the iterative decoding algorithms to be practically feasible, the complexity in each stage, in terms of number of operations and hardware complexity, should be much less than that for the original non-iterative decoding problem. At the same time, the perfor- mance should approach the optimum, maximum likelihood decoding performance in terms of bit error rate. In this thesis, we study the problem of iterative decoding of product codes. We propose an iterative decoding algorithm that best suits product codes but can be applied to other block codes of similar construction. The algorithm approaches maximum likelihood performance. We also present another algorithm which is suboptimal and can be viewed as a practical implementation of the first algorithm on product codes. The performance of the suboptimal algorithm is investigated both analytically and by computer simulations. The complexity is also investigated and compared to the complexity of GMD and Viterbi decoding of product codes.
    [Show full text]