Error Coding For Wireless Communication
Error Coding For Wireless Communication
1 INTRODUCTION
802.16 or commonly called Worldwide Interoperability for Microwave access (WiMAX) provides specifications for both fixed Line of sight (LOS) communication in the range of 10-66GHz (802.16c), and fixed, portable, NonLOS communication in the range of 2-11GHz (802.16a, 802.16d). This system supports a high data rate communication (typically 75Mbps). At a high rate, error coding methods can be used to reduce the Bit Error Rate (BER).
The limit on data rate given by Shannons limit is as follows R<W log2 (1 + S/N) [Bits/sec] Efficient communication systems are systems that permit a high rate of information to be communicated with the lowest possible power and least BER. This can be achieved by using error coding techniques before modulating the data at the transmitter. These codes make it possible to detect and correct errors by adding redundant bits to the message. Commonly used error correcting methods for a wireless medium are Convolutional Turbo Codes (CTC). Turbo Product Codes (TPC) can be used instead of CTC and the performance of the wireless communication system can be analysed. TPC with eBCH as a constituent code provides further benefits because e BCH codes can be decoded easily using the syndrome method and it can be used for multiple random error correction.
17
a parallel concatenated Convolutional Code. Figure. 1 illustrates the structure of the CTC encoder in 802.16 specifications. The encoder is fed by each block (encoder packet) consisting of N bits and the block is divided into two subblocks (A, B) consisting of N/2 bits. The encoder generates the subblocks (A, B) encoded systematically, the subblocks (Y1, W1) encoded by A and B, and the subblocks (Y2, W2) encoded by the interleaved versions of A and B [2]. The decoding algorithm for CTC employs two softin, soft out (SISO) decoding modules to iteratively improve the confidence metric for each transmitted information bit. The SISO, in its full form, requires a forward and reverse traversal of a trellis which increases the complexity of decoding.
codes can be built with large minimum Hamming distance. Figure. 2 shows the procedure for construction of a 2D product code using two block codes C1 and C2. All the rows of matrix P are the code words of C1 and all the columns of matrix P are code words of C2.
2.3 Turbo Product Codes Another iterative decoding algorithm, known as Turbo Product Codes (TPCs), has been shown to provide performance equivalent to the CTC, but with a much lower level of complexity, suitable for hardware applications. TPCs are constructed from simple linear block codes (typically simple parity or Hamming codes). A Turbo Product Code is a concatenation of two block codes on which the principle of turbo or iterative soft-input/soft-output (SISO) decoding can be applied in a phased manner. The decoding process is iterated several times feeding the output of second component decoder back to the input of the first decoder. A product code may be viewed as a relatively large code built from smaller block codes. [3] 2.4 Encoding of TPC A two-dimensional product code is built from two component codes with parameters C 1 (n 1, k1, d1) and C2 (n 2, k2, d2), where n i, ki, di stand for code word length, number of information bits, and minimum hamming distance respectively [3].The product code P = C1 X C2 is obtained by placing (K1 X K2) information bits in an array of K1 rows and K2 columns. The parameters of product code P are n =n1 X n2, K=K1 X K2, d=d1 X d2 and code rate is R = R1XR2, where Ri is the code rate of Ci, Thus very long block
2.5 Other benefits of using TPC The benefits of using TPC are as follows: Longer battery life - Less transmit power required from the battery operated device using TPC. IP free encoder - No IP license required for encoding. Cores and inexpensive decoding IC's available Standard ICs are available providing the required functionality thus, the TPC implementation price increase is minimal. Lowest cost solution - A very low cost encoder, smaller batteries, smaller packages; it all adds up to reduced cost and improved performance [4].
3 DECODING OF TPC
3.1 Soft Decoding of Linear Block Codes In Hard decision decoding, received pulses are sampled and the resulting voltages are compared with a single threshold. If a voltage is greater than the threshold it is considered to be definitely a 'one' say regardless of how close it is to the threshold. If it is less, it is definitely zero. In soft decision decoding we get not only the 1 or 0 decision but also an indication of how certain we are that the decision is correct.
18
One way of implementing this would be to make the threshold detector generate instead of 0 or 1, say: 000 (definitely 0), 001(probably 0), 010 (maybe 0), 011 (guess 0), 100 (guess 1), 101 (maybe 1), 110 (probably 1), 111(definitely 1). We may call the last two bits 'confidence' bits. This is easy to do with eight voltage thresholds rather than one. Turbo Product codes can be decoded by sequentially decoding the rows and columns of P in order to reduce decoding complexity. However, to achieve optimum performance, one must use Maximum Likelihood Decoding (soft decoding) of the component codes. Thus, we need softinput/ soft-output decoders to maintain optimum performance when decoding the rows and columns of P. 3.2 Chase Algorithm The Trellis based Maximum A posteriori Probability( MAP) decoding (soft decoding), used for CTC decoding, provides a good BER performance but it is very much computationally intensive. Instead of using trellis based MAP algorithm, the Chase algorithm is repeatedly applied along rows/columns for TPC in order to obtain extrinsic information for each bit position. Chase algorithm is used to obtain soft output. Chase initially used a method of finding the Euclidean distance between code words (2k) for filtering them for decoding. Each codeword is surrounded by a sphere of radius (d - 1)/2. Thus, a unique codeword, or equivalently a unique error pattern, is obtained by a binary decoder if the received sequence is within one of these spheres. In our case there is a unique error pattern Z = Y EXORXa within the sphere of radius (d - 1)/2 which surrounds Y as shown in Figure 3. [5]
3.3 Chase Pyndiah Algorithm This algorithm generates Test patterns using least reliable bits p (p least reliable bits are found using a reliability sequence obtained by soft decoding of received signal). Test patterns for p=2 are shown in Figure 4.
3.4 Steps for Chase Pyndiah Algorithm Generate a reliability sequence rabs = (|r1|, |r2|, . . .|rn+1|) and a binary received sequence y = (y1, . . . , yl . . , yn). Determine the p least reliable bit positions of sequence y using rabs. Form 2p test pattern sequences tj, j = 1, ... 2p which consist of all combinations of binary sequences containing the p least reliable bits of y.
19
Determine the 2p perturbed sequences zj = y tj, j = 1, 2, . . . , 2p Decode perturbed sequences zj and obtain valid codeword set cj , where j = 1, 2, . . . , 2p Calculate analog weight of valid codeword set Estimate the maximum likelihood (ML) codeword d from valid codeword set Compute extrinsic information for receivedsignal and is used to arrive at a solution i.e the decoded message.[3]
The BER Verses Eb/N0 is plotted for a TPC(eBCH) (64, 51, 6) with code rate of 0.635 and 6 iterations as shown in Figure 6.
4 ITERATIVE DECODING
The decoding procedure described below is generalized by cascading elementary decoders illustrated in Figure 5. Let us consider the decoding of the rows and columns of a product code P described above and transmitted on a Gaussian channel using BPSK signalling. On receiving matrix [R] corresponding to a transmitted codeword [E], the first decoder performs the soft decoding of the rows (or columns) of P using as input matrix [R]. Soft-input decoding is performed using the Chase algorithm (as given in above Section) and the soft output is computed.[6]
Fig. 6 BER versus Eb/N0 of product code [BCH(64, 51) on a AWGN channel using QPSK
TPCs are the most efficient known codes for high code rate applications. For code rates greater than 0.95, digital transmission systems can transmit data on a Gaussian channel at more than 98% of channel capacity R/C > 0.98 by guarantee of a minimum distance of 16, 36 (or more), while the minimum distance of a CTC can be relatively small. Because of high dmin (typically 16 or higher) there is no error floor for TPC. Another attractive application for TPC concerns highdata-rate systems. Indeed, the decoding speed of a TPC can be increased by using several elementary decoders for the parallel decoding of the rows (or columns) of a product code since they are independent. [3] 4.2 TPC in 802.16 Systems
4.1 TPC with Iterations TPC code (Hamming code as constituent code) with number of iteration has been tested in an AWGN channel. The iterative decoding of product codes is also known as Block Turbo Code (BTC) because the concept is quite similar to turbo codes based on iterative decoding of concatenated recursive convolutional codes. Performance on the Gaussian channel indicates that data transmission at 0.8 dB of Shannons limit or more than 98% (R=C > 0.98) of channel capacity can be achieved with high-code rate BTC using only four iterations.[3]
IEEE 802.16 standard for Broadband Wireless Access and its associated industry consortium, Worldwide Interoperability for Microwave Access (WiMAX) forum promise to offer high data rate over large areas to a large number of users where broadband is unavailable. Taking the advantage of Orthogonal Frequency Division Multipleing (OFDM) technique the PHY layer is able to provide robust broadband service. The basic principle of OFDM, is to divide a high-rate data stream into N lower rate streams and to transmit them at the same time over a number of subcarriers. In OFDM high bit rate data is divided into N low bit rate parallel data streams and then transmitted simultaneously with deferent frequencies
20
OFDM systems are implemented using a combination of fast Fourier Transform (FFT) and inverse fast Fourier Transform (IFFT) blocks. The effect of ISI on an OFDM signal can be further improved by the addition of a guard period to the start of each symbol. This guard period is a cyclic copy that extends the length of the symbol waveform. The block diagram of a general Wimax system is as follows:
TPCs have an inherent flexibility in code rate (0.2 to 0.98) and large block sizes to meet all most any requirement whether it be a single carrier or multiple carrier (OFDM) system.
REFERENCES
1] http://www.aha.com. Improving Bandwidth Utilization with Turbo Product Codes [2] Sung-Joon Park, Member, IEEE, and Jun-Ho Jeon Interleaver Optimization of Convolutional Turbo Code for 802.16 Systems IEEE Communication Letters, Vol. 13, No. 5, May 2009 [3] R. Pyndiah, Near-Optimum Decoding of Product Codes: Block Turbo Codes IEEE Trans. Comm., vol. 46, pp.1003-1010 [4] Brian A. Banister, Ph.D Using Turbo Product Codes in Client Station Uplink for Reduced Power Consumption Comtech AHA Corporation.
Fig.7 OFDM
4.3 Results of Implementing TPC in 802.16 Systems TPC is used as the Forward Error Correction (FEC) method at the transmitter. TPC block is created using eBCH (64,39) code. Chase algorithm is applied for 5 iterations for decoding the TPC at the receiver. TPC when implemented in a 128 point FFT OFDM system, with QPSK modulation, for 5 iterations at the receiver, provides the following total number of errors for given Eb/N0. The block size is fixed at 1024 bytes.
[5] D. Chase A class of algorithms for decoding block codes with channel measurement information IEEE Transactions on Information Theory, IT-18 No.1, 1972. [6] Yejun He, Francis C.M. Lau *, Chi K. Tse, Study of bifurcation behaviour of two-dimensional turbo product code decoders [7] Digital Communications Fundamentals and Applications 2ND Edition by Bernard Sklar. [8] Richard E. Blahut Theory and Practice of Error Control Codes Addison-Wesley, 1983.
Iteration 4 0 0 13 73 380
Itertion 5 0 0 0 24 242
CONCLUSION
With the above results, TPC can be implemented in 802.16 systems for high code rate and data rate applications. The Chase Algorithm used in iterations, to decode TPC, helps to improve the Bit error rate to a large extent. The number of errors has been observed to drop down to zero in less than 4 iterations for Eb/N0 being 1 db and above.