1818 IEEE TRANSACTIONS ON COMMUNICATIONS, VOL. 48, NO. 11, NOVEMBER 2000 Gallager Codes for CDMA Applications—Part II: Implementations, Complexity, and System Capacity Vladislav Sorokine, Member, IEEE, Frank R. Kschischang, Member, IEEE, and Subbarayan Pasupathy, Fellow, IEEE Abstract—We focus our attention on Gallager codes with parameters compatible with the IS-95 cellular radio standard. We discuss low complexity software and hardware implementations of an iterative decoder for Gallager codes. We estimate that by using Gallager codes, a factor of five improvement in the code-division multiple-access system capacity relative to an uncoded system can be achieved, equivalent to a factor of two improvement relative to state-of-the art orthogonal convolutional codes. Simulation results demonstrate the good performance of short-frame Gallager codes in the additive white Gaussian noise and certain fading channels. Index Terms—Complexity theory, decoder architecture, infor- mation rates, low-density parity-check codes. I. INTRODUCTION C ODE-DIVISION multiple access (CDMA) is one of the three most popular approaches (along with time-division multiple access and frequency-division multiple access) for al- locating the available signal space to multiple users. In the IS-95 CDMA standard, a particular type of CDMA called spread- spectrum multiple access is used. Briefly, the forward link of the system operates as follows. A binary data sequence is pro- duced by a data source at the rate of 9.6 kbits/s (in digital speech transmission), spread by a factor of 128, modulated and trans- mitted in a communications channel. Spreading is used partly to combat the multiple-access interference and partly to combat the channel noise with forward error-correction. The CDMA system capacity depends to a large degree on the efficiency of the error-control code. In the forward link, IS-95 uses a rate 1/2 convolutional code for error-protection. A much larger portion of the total bandwidth expansion can be allocated to error-control coding. Better codes will increase the system capacity [1], [2]. However, other factors, such as the decoding complexity, may negate the positive effect. Paper approved by W. E. Ryan, the Editor for Modulation, Coding, and Equal- ization of the IEEE Communications Society. Manuscript received February 16, 1999; revised May 20, 1999 and August 31, 1999. This work was supported in part by the Natural Sciences and Engineering Research Council, Canada. This paper was presented in part at the 1997 Canadian Workshop on Information Theory, Toronto, ON, Canada, June 1997, at the 1998 Information Theory Work- shop, Killarney, Ireland, June 1998, and at the Ninth International Symposium on Personal, Indoor and Mobile Communications (PIMRC’98), Boston, MA, September 1998. V. Sorokine was with the Department of Electrical and Computer Engi- neering, University of Toronto, Toronto, ON M5S 3G4, Canada. He is now with Qualcomm Inc., San Diego, CA 92121 USA (e-mail: vsorokin@qual- comm.com). F. R. Kschischang and S. Pasupathy are with the Department of Electrical and Computer Engineering, University of Toronto, Toronto, ON M5S 3G4, Canada. Publisher Item Identifier S 0090-6778(00)09883-4. We will argue that the , rate 1/8 Gallager codes of [part I] are good candidates to provide an enhanced error-protection scheme in CDMA systems. Good performance in additive white Gaussian noise (AWGN) and fading channels makes them particularly suitable for mobile communications. Moreover, one can devise low-complexity decoders for these codes, an important consideration for hand-held radio units where power consumption is at a premium. This paper is organized as follows. In Section II, we give a brief review of the sum–product decoding algorithm along with most of the relevant equations that are used extensively in later sections. In Sections III and IV, we discuss low complexity im- plementations of the sum–product decoder both in software and in hardware. In Section V, we discuss the computational com- plexity of encoding and iterative decoding for the , rate 1/8 Gallager codes. In Section VI, we present simulation results for Gallager codes for the AWGN and fading channels. We use simulation results for the AWGN channel in a simpli- fied analysis of the single cell capacity of a CDMA system in Section VII, and show that Gallager codes provide a twofold in- crease in the system capacity relative to state-of-the art orthog- onal convolutional codes [4]. Finally, we present the discussion of the results in Section VIII. II. SUM–PRODUCT ALGORITHM To decode Gallager codes, we use the sum–product algorithm [5], [6], a version of which was described in the original work of Gallager [7], and which is sometimes referred to as “belief propagation” [8], [9]. The sum–product algorithm operates by passing messages along the edges of a bipartite factor graph [10] that describes the conditional joint probability mass func- tion of the codeword symbols given the received channel output. The sum–product algorithm is known by various names in spe- cial cases and in different application areas. For example, in the special case when the factor graph represents a trellis or hidden Markov model, the sum–product algorithm is known (in coding) as the BCJR algorithm [11] or (in signal processing) as the for- ward/backward algorithm [12]; in statistics, it is an integral part of the Baum–Welch algorithm. For a tutorial treatment of factor graphs, the sum–product algorithm and applications, see [10]. MacKay [13] gives an excellent description of the sum–product algorithm that is used to decode Gallager codes, and we adopt his notation here. As in Section II, Part I, let be a low-density parity-check matrix for a Gallager code , let denote the transpose of , and let be a transmitted codeword. The channel adds a noise sequence to to pro- duce the channel output . Assuming 1 an- 0090–6778/00$10.00 © 2000 IEEE