A List-Decoding Approach to Low-Complexity Soft Maximum-Likelihood Decoding of Cyclic Codes
Total Page:16
File Type:pdf, Size:1020Kb
A List-Decoding Approach to Low-Complexity Soft Maximum-Likelihood Decoding of Cyclic Codes Hengjie Yang∗, Ethan Liang∗, Hanwen Yaoy, Alexander Vardyy, Dariush Divsalarz, and Richard D. Wesel∗ ∗University of California, Los Angeles, Los Angeles, CA 90095, USA yUniversity of California, San Diego, La Jolla, CA 92093, USA zJet Propulsion Laboratory, California Institute of Technology, Pasadena, CA 91109, USA Email: {hengjie.yang, emliang}@ucla.edu, {hwyao, avardy}@ucsd.edu, [email protected], [email protected] Abstract—This paper provides a reduced-complexity approach Trellises with lower complexity than the natural trellis can to maximum likelihood (ML) decoding of cyclic codes. A cyclic be found using techniques developed in [7]–[9] that identify code with generator polynomial gcyclic(x) may be considered a minimum complexity trellis representations. Such trellises terminated convolutional code with a nominal rate of 1. The trellis termination redundancy lowers the rate from 1 to the are often time varying and can have a complex structure. actual rate of the cyclic code. The proposed decoder represents Furthermore, at least for the high-rate binary BCH code gcyclic(x) as the product of two polynomials, a convolutional examples [10] in this paper, the minimum complexity trellis code (CC) polynomial gcc(x) and a cyclic redundancy check representations turn out to have complexity similar to the (CRC) polynomial gcrc(x), i.e., gcyclic(x) = gcc(x)gcrc(x). This natural trellis. representation facilitates serial list Viterbi algorithm (S-LVA) decoding. Viterbi decoding is performed on the natural trellis for As a main contribution, this paper presents serial list gcc(x), and gcrc(x) is used as a CRC to determine when the S-LVA Viterbi algorithm (S-LVA) as an ML decoder for composite should conclude. At typical target frame error rates, the expected cyclic codes that, at least for our high-rate BCH examples, list size of S-LVA is small, and the average decoding complexity has complexity similar to that of the Viterbi decoder used is dominated by the trellis complexity of gcc(x) rather than in communication devices today. The proposed decoding gcyclic(x). Some high-rate binary Bose-Chaudhuri-Hocquenghem (BCH) examples show that the proposed use of S-LVA via algorithm also supports complete hard decoding as opposed factorization significantly lowers complexity as compared to to the bounded distance decoding of the Berlekamp-Massey using the minimum-complexity trellis representation of gcyclic(x) and Euclidean algorithms. for soft ML decoding. In [11] the concatenation of a convolutional code with an outer cyclic redundancy check (CRC) was recognized as being I. INTRODUCTION a new convolutional code with a larger constraint length. This paper makes the dual observation: when a cyclic code The Berlekamp-Massey [1], [2] and Euclidean [3] algo- has a composite a generator polynomial gcyclic(x), it can be rithms provide bounded-distance hard decoding for Bose- factored into a “convolutional encoder” polynomial gcc(x) and Chaudhuri-Hocquenghem (BCH) codes [4]. For soft decod- an “outer CRC” polynomial gcrc(x). Factoring gcyclic(x) into ing, Guruswami and Sudan developed a ground-breaking (but gcc(x) and gcrc(x) facilitates S-LVA decoding. complex) list decoding approach for Reed-Solomon codes in The paper also studies the complexity of the S-LVA decoder [5] that identifies all codewords within a defined Hamming and shows that for high-rate binary BCH examples S-LVA has distance of the received word. lower complexity than soft decoding based on the minimal- Separately, maximum-likelihood (ML) decoding can be complexity trellis of the original cyclic code. performed by the Viterbi algorithm [6] on any trellis repre- This paper is organized as follows: Section II describes sentation of the cyclic code. The natural trellis implied by the the decoding approach and presents examples and simulations r generator polynomial gcyclic(x) has 2 states where r is the for several high-rate binary BCH codes. Section III explores degree of gcyclic(x). Decoding on the natural trellis essentially the complexity of the new decoding approach, showing that treats the BCH generator polynomial as the generator polyno- decoding complexity for S-LVA depends on the expected list mial of a terminated convolutional code. However, for most size, which decreases as signal-to-noise ratio improves. At cyclic codes of interest, the number of states in the natural typical frame error rate (FER) operating points, the expected trellis induces a complexity that is not practical. list size is small and the average decoding complexity is dominated by the complexity of the natural trellis for gcc(x). This research is supported in part by National Science Foundation (NSF) Section IV investigates the minimal trellis representations for grant CCF-1618272 and a grant from the Physical Optics Corporation (POC). Any opinions, findings, and conclusions or recommendations expressed in our high-rate BCH examples and shows that these minimal this material are those of the author(s) and do not necessarily reflect the trellises will not have significantly lower complexity than views of the NSF or POC. The work of H. Yao and A. Vardy was supported the natural trellises. In our examples, S-LVA achieves a in part by the NSF under grants CCF-1719139 and CCF-1764104. Research was carried out in part at the Jet Propulsion Laboratory, California Institute complexity much lower than Viterbi decoding on the minimal of Technology, under a contract with NASA. trellis. Section V concludes the paper. TABLE I 100 EXAMPLE BINARY BCH CODES THAT CAN BE VIEWED AS BINARY CONVOLUTIONAL CODES 10-1 m r Conjugate δ gcyclic(x) KNR 6 6 α 3 (103)8 57 63 0:90 10-2 7 7 α 3 (211)8 120 127 0:94 8 8 α 3 (435)8 247 255 0:97 9 9 α 3 (1021)8 502 511 0:98 -3 10 10 α 3 (2011)8 1013 1023 0:99 10 10-4 II. SERIAL LIST VITERBI ON FACTORED CYCLIC CODES This section describes how a cyclic code can be represented 10-5 as a rate-1 terminated convolutional code and how factoring 6 6.5 7 7.5 8 8.5 9 9.5 10 the cyclic code generator polynomial into the product of two polynomials facilitates S-LVA decoding. This section also Fig. 1. FER performance of BCH convolutional codes of degree m = presents examples and simulations for several high-rate binary 6; 7;:::; 10 decoded using the Viterbi algorithm. Both soft decoding and complete hard decoding are shown. BCH codes. A. Cyclic Codes as Rate-1 Convolutional Codes It is well known that a natural trellis that has 2r states exists Table I presents example high-rate binary BCH codes for each degree-r generator polynomial gcyclic(x). See, for where each gcyclic(x) is a minimal polynomial of degree example, [12]. The decoder design proposed in this paper can m = 6; 7;:::; 10. Note that the polynomials are described be best understood by using this result to view the cyclic code in octal form with degree decreasing from left to right. For 6 as a terminated rate-1 convolutional code. This is presented example, x + x + 1 is represented by (103)8. The rate R below as a theorem. is greater than or equal to 0.9 for all these examples. For each code, is the base-2 logarithm of the field size over Theorem 1. Every cyclic code is a terminated convolutional m which the binary BCH code was designed. The degree of code. r gcyclic(x) for these examples is also equal to m. In each case, Proof: Consider the cyclic code with degree-r generator gcyclic(x) is the minimal polynomial for the conjugate element polynomial gcyclic(x) and codewords c(x) = w(x)gcyclic(x) provided in the column identified as “Conjugate”, where α is where w(x) is the message polynomial. The codeword pro- a primitive element that is a root of the primitive polynomial duced by multiplying the polynomials w(x) and gcyclic(x) is used to define the Galois field. The designed distance of the identical to the codeword produced by passing w(x) followed BCH code is denoted δ. by r zeros through the rate-1 feedforward convolutional Fig. 1 provides simulation results from applying the Viterbi encoder circuit defined by g (x). cyclic algorithm to the BCH convolutional codes of Table I. The We use the term BCH convolutional code to refer to a BCH system model is as follows: Let w(x) be the K-bit infor- code represented as a terminated rate-1 convolutional code, mation sequence, and c(x) = w(x)g (x) is the N-bit i.e., a convolutional code where the number of input symbols cyclic BCH convolutional codeword. After BPSK modulation, the k per encoder operation and the number of output symbols constellation points are transmitted over the additive white n per encoder operation are both 1. The trellis termination Gaussian noise (AWGN) channel. The signal-to-noise ratio redundancy lowers the rate from 1 to the actual rate of the (SNR) is defined as the amplitude of a single BPSK signal cyclic code. This is distinct from the notion in [13] of a divided by the variance of a one-dimensional, zero-mean BCH convolutional code as a standard rate-k=n (k < n) Gaussian. convolutional code designed using ideas from BCH theory. We focus on binary BCH codes, but the approach general- If hard Viterbi decoding is employed, the noisy constel- izes to non-binary BCH codes such as Reed-Solomon codes. lation points are first hard decoded to the nearest BPSK Although we refer to the convolutional code as having rate symbol and the corresponding bits are used by the hard one, the rate is, of course, actually below one because of Viterbi decoder.