European Journal of Scientific Research ISSN 1450-216X Vol.38 No.2 (2009), pp.337-350 EuroJournals Publishing, Inc. 2009 http://www.eurojournals.com/ejsr.htm Hardware Implementation for Error Correction Using Software-Defined Radio Platform Hamood Shehab School of Electrical and Electronic Engineering, Universiti Sains Malaysia Pinang, Malaysia E-mail: hash_30165@yahoo.com Tel: +601-74854339 Widad Ismail School of Electrical and Electronic Engineering Universiti Sains Malaysia Pinang, Malaysia E-mail: eewidad@eng.usm.my Tel: +6 0124252683 Abstract Real time hardware is implemented, by connection the Simulink design to the texas instrument Lyrtech s. A coded-ofdm with RS code is done, simulation simulate wireless Coded OFDM over mobile multipath fading channel, the model use quadrature phase-shift keying modulation (QPSK). R-S coded OFDM gains 10dB improvement at BER level of 10-3 when R-S code rate=0.73. In this paper, the performance of Reed Solomon codes (RS code) is presented, so as to make it perform better to choose the effective parameters that can improve Orthogonal Frequency Division Multiplexing (OFDM) system. The results show that the code gain with high code rate is better than that of low code rate, the results also showed that the error-correcting codes become more efficient as the block size increases. Our simulations indicate that at 10-3 BER, the R-S codes with code rate 0.9 is outperform no code curve by 1.4dB, while there is 1dB between 0.8 and 0.9 code rate and so it degreases as code rate goes to low value Simulations results also confirms that 15dB R-S code gains at 10-4 BER level for Raylrigh selective fading channel while 5dB for flat and AWGN channel because of lower error level, where the code rate is 0.5. Keywords: Channel Coding, Forward error correction( FEC),OFDM, QAM Technique, Reed-Solomon codes, Simulink. 1. Introduction In the current and future mobile communication systems, data transmission at high bit rates is essential for many services such as video, high-quality audio, and mobile integrated service digital network (ISDN). When the data is transmitted at high bit rates over mobile radio channels, the channel impulse response can extend over many symbol periods, which leads to inter symbol interference (ISI)( Schulze and Luders, 2005). Orthogonal frequency division multipl-exing (OFDM) is one of the effective techniques to mitigate the ISI. The main idea is to send data in parallel over a number of spectrally overlaping temporally orthogonal subchannels. OFDM system also suffers from (ISI), especially in mobile
Hardware Implementation for Error Correction Using Software-Defined Radio Platform 338 Communication environments. It might deal with this problem by increasing the individual symbol duration for each subcarrier together with the use of guard time Nevertheless, this does not solve the problem completely in multipath fading channel, because all subcarriers will arrive at the receiver with different amplitudes. Unfortunately, some sub- carriers may be completely lost because of deep fades (Luise, 2000). To remedy this problem, OFDM based systems usually employ a special techniques like error correction coding. The use of forward error-correcting (FEC) codes in communication systems is an integral part of ensuring reliable communication (Wicker, 1995). The use of Forward Error Correction (FEC) schemes shall therefore not only be considered as a way to improve communication robustness but also as a system of error control for data transmission, without the need to ask the sender for additional data. A back-channel is not required, or that retransmission of data can often be avoided.reed- Solomon (RS) codes are particularly useful for burst-error correction, that is, they are effective for deep fades channel, it is useful to improve OFDM performance by using Reed-Solomon code. Some approaches review of RS codes implementations in today s environment to give a good idea on how RS codes being implemented. Since this work was investigated the nature of the gap between theoretical and practical sides of OFDM system, applying channel coding to improve such system. Real time hardware is implemented coded-ofdm with RS code using the the small form factor (SFF) software-defined radio (SDR) development platforms (DP), to enhance the performance of the OFDM system, a lot more study can be carryout to further improved RS codes and thus, improved its applications. The rest of the paper is organized as follows. Section 2 presents the previous work, Section 3 presents motivation toward a Forward Error Correction (FEC), section 4 presents R-S code definition. Section 5 presents the encoding and decoding process R-S Code, including the Galois Field Concept, Field generator Polynomial, and Constructing the Galois Field. The System model used in the present work is presented in Section 6, the testing phase I: as the R-S with single carrier transceiver, testing phase II: as the Reed-Solomon coded OFDM (COFDM), and testing phase III: as the Real-time hardware implementation Reed Solomon codes. Simulation and results are done in section 7, for the testing in phase I, phase II, and phase III. Finally section 8 states the conclusions drawn from the investigation. 2. Previous Work Shannon, 1948 showed that arbitrarily reliable communication is possible as long as the signal transmission rate does not exceed a certain limit called the channel capacity. This stimulated numerous research efforts on error control coding. Following the first class of error control codes, namely Hamming codes (Hamming, 1950; Roman,1995) powerful algebraic codes such as Golay codes, Bose- Chaudhuri-Hocquenghem (BCH) codes, and Reed-Solomon (RS) codes were found. As coding theory evolved, various important properties of codes were identified and studied such as minimum distance and weight distribution. The discovery of convolutional codes, which were originally called recurrent codes, is an another important landmark in the history of error control coding. Convolutional codes have many important properties such as the existence of effcient encoding and decoding algorithms and the impressive performance over an additive white Gaussian noise (AWGN) channels. Another important landmark of error control coding theory is the discovery of concatenated coding schemes. For example, Forney showed that the weakness of convolutional codes against bursty errors can be compensated with RS codes by serially concatenating a convolutional code with an RS code (Forney, 1966). The most recent breakthrough in coding theory is the discovery of a class of codes called turbo codes (Berrou, et. al, 1995) that exhibit near Shannon limit performance with iterative decoding algorithms. The astounding performance of turbo codes resulted in a surge in the research activity on iterative de-coding. For example, Gallager's low parity density check (LDPC) codes (Gallager, 1962) discovered with iterative decoding in the 60's by R. G. Gallager, has drawn tremendous attention in the
339 Hamood Shehab and Widad Ismail past few years. Although the above mentioned turbo codes have excellent bit error performance, there still exists some problems. First of all, their error performance tails of, or exhibits an error floor" at high signal-to-noise ratio (SNR). Moreover, the complexity of the required soft-input, soft-output (SISO) decoder is such that a cost-effcient decoder was unavailable for most commercial applications. For these reasons, RS codes are still be widely employed in many practical applications because of its effcient decoder implementation (Blahut, 1983) and excellent error correction capabilities. In this work, Richardson, Shokrollahi, and Urbanke, 2001 showed that the bit error performance deteriorates as the codeword length becomes smaller, while (Nakanishi and Ikegami, 2000) has shown that the throughput performance of mobile satellite Communications is better for short packet, therefore, long packet length is not always a default choice to use in communications, In some applications the use of short packet lengths are required in their systems. it is especially good for real time voice and video. 3. Motivation Toward Forward Error Correction (FEC) Forward Error Correction (FEC) is an effective tool to mitigate OFDM influences which stems from multipath fading channel, high speed data rate, and frequency Doppler shift emanated due to user movements (Boseman, 2007). Among the popular coding techniques are block codes and convolutional codes. These techniques, however, improve system performance at the expense of expanding the bandwidth by an amount proportional to the reciprocal of the code rate (Proakis, 2001). There are two basic types of error correction and detection codes: block codes, and convolutional codes. Block Codes, in block codes, parity bits are added to blocks of message bits to make codewords or code blocks. In a block encoder, k information bits are encoded into n code bits. A total of n-k redundant bits are added to the k information bits for the purpose of detecting and correcting errors. One of most important types of block codes is Reed-Solomon (RS) codes(wicker, 1983). The ability of a block code to correct errors is a function of the code distance. Many families of codes exist that provide varying degrees of error protection (Rappapor, 1996). Convolutional Codes, have many important properties such as the existence of effcient encoding and decoding algorithms and the impressive performance over an additive white Gaussian noise (AWGN) channels. 4. Reed-Solomon Code Definitions Reed-Solomon codes have been largely employed as channel codes due to their excellent error detection and correction properties (Thomas and Edgington, 1999). A Reed-Solomon code is a block code, meaning that the message to be transmitted is divided up into separate blocks of data. Each block then has parity protection information added to it to form a self-contained code word. It is also, as generally used, a systematic code, which means that the encoding process does not alter the message symbols and the protection symbols are added as a separate part of the block. This is shown diagrammatically in Figre1. A Reed-Solomon (R-S) code is linear code (adding two code words produces another code word) and it is cyclic (cyclically shifting the symbols of a code word produces another code word). It belongs to the family of Bose-Chaudhuri-Hocquenghem (BCH) codes (Berlekamp, 1968; Pretzel, 1992), but is distinguished by having multi-bit symbols. This makes the code particularly good at dealing with bursts of errors because, although a symbol may have all its bits in error, this counts as only one symbol error in terms of the correction capacity of the code. Choosing different parameters for a code provides different levels of protection and affects the complexity of implementation. Thus a Reed-Solomon code can be described as an ( n, k) code where n is the block length in symbols and k is the number of information symbols in the message(clarke, 2002). Also n 2 m 1 (1)
Hardware Implementation for Error Correction Using Software-Defined Radio Platform 340 where m is the number of bits in a symbol. When equation (1) is not equality, this is referred to as a shortened form of the code (Blahut, 1983). Figure 1: Reed-Solomon Code 5. Reed-Solomon Encoding and Decoding Process The R-S encoding and decoding require a considerable amount of computation and arithmetical operations over a finite number system with certain properties, i.e. algebraic systems, which in this case is called fields. R-S s initial definition focuses on the evaluation of polynomials over the elements in a finite field (Galois field GF) (Blahut, 1983). 5.1. Galois Field Concept The Reed-Solomon codes (RS codes) are nonbinary cyclic codes with code symbols from a Galois field A Galois field consists of a set of elements (numbers). These elements are based on a primitive element, usually denoted α, and take the values: 0 1 2 N 1 ο, α, α, α,... α (2) to form a set of 2 m elements, where m is any positive integer having a value greater than 2, and = 2 m m N 1. The field is then known as GF( 2 ). Each field element can also be represented by a polynomial expression of the form: m 1 am 1 x +... + a1x + a0 (3) where the coefficients a m 1 to a 0 take the values 0 or 1. Thus we can describe a field element using the m m binary number a m 1... a1a0 and the ( 2 ) field elements correspond to the ( 2 ) combinations of the m- bit number, therefore if m = 4 then the Galois field is known as GF(16), and the polynomial representation is:
341 Hamood Shehab and Widad Ismail 3 2 1 0 a 3x a2x + a1x + a0x 3a2a1a + (4) with a 0 corresponding to the binary numbers 0000 to 1111, which can refer to the field elements by the decimal equivalents 0 to 15, (Clarke, 2002). 5.2. Field Generator Polynomial Before constructing the Galois field, an important part of the definition of finite field, and therefore of a Reed-Solomon code, is field generator polynomial or primitive polynomial, p (x). This is a polynomial of degree m which is irreducible, that is, a polynomial with no factors. It forms part of process of multiplying two field elements together. For a Galois field of a particular size, there is sometimes a choice of suitable polynomials. For GF (8), the polynomial: 3 p ( x) = x + x + 1 (5) An alternative which could have been used for GF(16) is: 4 3 P ( x) = x + x + 1 (6) 5.3. Constructing the Galois Field All the non-zero elements of the Galois field can be constructed by using the fact that the primitive element α is a root of the field generator polynomial, so that: p ( α) = 0 (7) Thus, for GF(8) with field generator polynomial shown in (3.4), we can write: 3 3 α + α + 1 = 0 or α = α + 1 (8) (not that + and are the same in a Galois field). 3 Multiplying by α at each stage, using α + 1 to substitute for α and adding then resulting terms can be used to obtain the complete field as shown in Table 1. 3 Table 1: The field elements for GF(8) with p ( x) = x + x + 1
Hardware Implementation for Error Correction Using Software-Defined Radio Platform 342 6 7 0 8 1 If the process is continued beyond α, it is shown that α = α, α = α,..so that the sequence repeats with all values remaining valid field elements, which means that the Galois Field is cyclic (Stolpman, et. al, 2005). 6. The System Model Used in the Present Work: Phase I, Phase II, and Phase III 6.1. Testing Phase I: R-S with Single Carrier Transceiver In this subsection as we mention above this testing is applied to single carrier system with (AWGN) channel model using (QAM) technique, where it is amplitude is allowed to vary with phase.qam can be viewed as a combination of amplitude shift keying(ask) as well as phase shift keying (psk). Also, it can be viewed as ASK in two dimension (Proakis, 2001). Figure 2 demonstrates the simulation model employed by this section. The assumptions parameters of an OFDM system are in Table 2. Figure 2: Single Carrier Transceiver Table 2: OFDM Parameters
343 Hamood Shehab and Widad Ismail 6.2. Testing Phase II: Reed-Solomon Coded OFDM (COFDM ) The parameters of conventional OFDM used in this section are identical to those in Table 2 over the same three types of channels used previously. The new scheme will evaluated and compare all results with conventional performances for every step, and consequently to clear out the improvements stem from applying R-S codes. A block diagram of evaluated COFDM system is shown in Figure 3 where is the k integer data source with m-bit symbol is encoded by R-S block which produces n symbols code word and permits a transmission of n-k additional information to enable the decoder at receiver to detect an error symbols. For each error one redundant symbol is used to locate the error, and another redundant symbol is used to find its correct value. The encoded symbols are then changed to a binary aspect and mapped using virtually any of the common M-array modulation scheme, onto a complex word consisting of a real and imaginary part, the so called Gray coding allocates the bits to the respective constellation points. In OFDM modulator each sub-carrier will be assigned one base band symbol, the OFDM modulator and demodulator can be achieved by employing an Inverse Fast Fourier Transform (IFFT), and Fast Fourier Transform (FFT) at the transmitter and receiver respectively. Figure 3: Block diagram of R-S Coded OFDM 6.3. Testing Phase III: Real-time hardware implementation Reed Solomon Codes The hardware implementation is started by connecting a computer to the small form factor softwaredefined radio (SFFSDR ) development platform ( DP) board(figure 4) from Lyrtech using an Ethernet cable. This Coded OFDM (COFDM) simulation replicates a wireless COFDM over a mobile multipath fading channel. The system model (Figure 5) use QPSK, RS Channel Coding, 11/15 RS code rate, 2 Symbol Error correction, 200Hz Doppler shift, and training-based channel estimation. A QPSK-OFDM signal is simulated. Then the sample error rate (SER) performance of the OFDM is evaluated. Realtime hardware implementation of COFDM with RS is performed to improve the system.
Hardware Implementation for Error Correction Using Software-Defined Radio Platform 344 Figure 4: The SFFSDR DP board Figure 5: Design connection to the Lyrtech development platform 7. Simulation &Results 7.1. Results Testing Phase I: 7.1.1. R-S Performance as a Function of Code Rate Here the evaluation of Bit Error Rate (BER) performance for R-S code where the code length n is held at a constant 63 symbols, while the number of data symbols decreases which result in minimize in the code rate from CR=0.9 to 0.5 (redundancy increase from 5 to 32 symbols). Here the field size is 64,
345 Hamood Shehab and Widad Ismail and the information and code symbols can be regarded as 6-bit symbols. Let's seek a d min increases from 6 to 33. The field generator polynomial for this case over GF(2 6 6 ) is x + x + 1, (67 decimal). The error performance improves (error correcting codes become more efficient) as the redundancy increases (lower code rate) as can be seen in Figure 6. Figure 6: R-S (62,k) decoder performance as a function of redundancy For a low code rate of an R-S code, its implementation grows in complexity (especially for high-speed devices). Also, the bandwidth expansion must grow for any real time communications application by a factor 1/(code rate), this may incur an implementation penalty as well as a large energy efficiency penalty, requiring higher phase and amplitude accuracy in both transmitter and receiver systems. However the benefit of increased redundancy is the improvement in bit-error performance. It is clear from Figure 6 that code gain with high code rate is better than that of low code rate, for example, at 10-3 BER, the R-S codes with code rate 0.9 is outperform no code curve by 1.4dB, while there is 1dB between 0.8 and 0.9 code rate and so it degreases as code rate goes to low value.. 7.1.2. R-S Performance as a Function of Block Size As seen the family of curves in Figure 7 where the rate of the code is held at a constant 0.8, while its block size increases from n=7 symbols (m=3 bits per symbol) to n=127 symbols (with m=7 bits per symbol). Thus, the block size increases from 21, 60 bits to 889 bits.
Hardware Implementation for Error Correction Using Software-Defined Radio Platform 346 Figure 7: Reed-Solomon performance as a function of symbol It is seen that the error-correcting codes become more efficient (error performance improves) as the block size increases because the effect of noise becomes less than that for small block size, the noise duration has to represent a relatively small percentage of the large code word, where the received noise should be averaged over a long period of time. This makes R-S code an attractive choice whenever long block lengths are desired, so the optimum chosen is large code word as it is possible to approach better performance. On the other hand, very large code word will increase complexity implementations. 7.2. Results Testing Phase II 1. BER Performance over Rayleigh Selective Channel In this subsection R-S codes with m=7, n=127 and variable code rate CR = 0.9, 0.7, and 0.5 are used. Figure 8 illustrates the benefit of R-S code considering bad channel. It is clear that the scheme shown in Figure 8 becomes robust to combat frequency selective fading which stem from multipath channels there are evident code gain by using R-S codes.
347 Hamood Shehab and Widad Ismail Figure 8: R-S Coded FDM performance over Rayleigh selective fading channel It is clear from Figure 8that R-S coded OFDM gains 8dB improvement at BER level of 10-5 when R-S code rate CR=0.9, and it can achieve some more winning by increasing the parity chick, for example 13, and 16 db code gain of 10-5 BER over uncoded OFDM can achieved for 0.7, and 0.5 R-S code rate respectively. However the cost of expanding the spectral stem from code redundancy met up by suitable lowing SNR. 2. Performance over Flat Fading Channels Various BER versus SNR are plotted to depict the performance of R-S COFDM over Rayliegh flat fading and AWGN without fading channels, as shown in Figure 9 and 10 respectively. The same parameters of R-S codes for the previous subsection is applied here, it is clear that such code is active for various types of channels. It can be seen from Figure 9 that the scheme shown in Figure 3 gains 4, and 5 db improvement at BER level of 10-4 for code rate 0.7, and 0.5, respectively. Figure 9: R-S COFDM performance over Rayleigh flat fading channel
Hardware Implementation for Error Correction Using Software-Defined Radio Platform 348 3. Performance of AWGN Channel Without Fading In case of AWGN channel without fading, Figure 10 shows the same amount of code gain at that BER level of flat fading, but with various ranges of SNR. Comparing such results with previous subsection shows that R-S codes is convenient for selective fading channel which suffers from robust corrupted, it can be treated with burst errors, that is clear from Figure 8 which confirms that 15 db R-S code gains at 10-4 BER level while 5dB for flat and AWGN channel because of lower error level, where the code rate is 0.5. Figure 10: R-S COFDM performance over AWGN channel 7.3. Results Testing Phase III Lyrtech was one of the first digital signal processing solution providers to combine the power of DSPs and FPGAs on the same platforms as shown as in the Figure 4, complementing the processing power of DSPs with the flexibility of FPGAs (Texas Instrument Website, 2009). The selection of a code needs to be made in accordance with the modulation choice and the available SNR. Moreover, very high and very low code rates generally perform poorly in a real-time communication system. Channel coding refers to a class of signal transformations designed to improve communication performance by enabling the transmitted signal to better withstand the effects of channel impairments such as noise, interference, and fading, which occur during transmission. Furthermore, the system facilitates real-time communication and thus the message may not be delayed. The additional redundant bits in the system also dictate a faster rate of transmission, that is, faster signaling, less energy per channel symbol, and more errors out of the demodulator, which of course connote greater bandwidth (Sklar, 2001). It is clear from Figure 11 that an RS-coded OFDM gains 10dB improvement at the BER level of 10-3 when the RS code rate=0.73. The performance of the OFDM system is improved by using RS code especially when the SNR is increased to more than 10 db, as shown in Figure 11. The utilization of the RS code significantly enhances performance.
349 Hamood Shehab and Widad Ismail Figure 11: RS Coding Gain Coded-OFDM 10-1 RS OFDMQPSK RS OFDMQPSK WC RS OFDMQPSK WOC 10-2 SER 10-3 10-4 10 15 20 25 30 35 SNR(dB) 6. Conclusion In order to investigate the nature of the gap between theoretical and practical sides of OFDM system, applying channel coding to improve such system. Real time hardware is implemented coded-ofdm with RS code to enhance the performance of the OFDM system. In the present study we investigated the performance of Reed Solomon codes (RS code) as a flexible single code. The analysis showed that code gain with high code rate is better than that of low code rate. We also show that the error-correcting codes become more efficient as the block size increases because the effect of noise becomes less than that for small block size. The analysis shows that the proposed new R-S COFDM scheme becomes robust to combat frequency selective fading which stem from multipath channels there are evident code gain by using R- S codes, more winning R-S COFDM gains can achieved by increasing the parity chick from 38 to 64. 13, and 16dB code gain of 10-5 BER over uncoded OFDM for 0.7, and 0.5 R-S code rate respectively. It can be confirmed that 15dB R-S code gains at 10-4 BER level for selective fading channel while 5dB for flat and AWGN channel because of lower error level, where the code rate is 0.5. Acknowledgement The authors would like to thank School of Electrical & Electronic Engineering, USM and the FRGS, Grant by Ministry of Higher Education for sponsoring this work.
Hardware Implementation for Error Correction Using Software-Defined Radio Platform 350 References [1] Berlekamp, E. R., 1968. "Algebraic Coding Theory". McGraw-Hill, New York R. W. [2] Bernard, S., 2001. "Digital Communications Fundamentals and Applications" Prentice Hall. [3] Berrou, C., A.,Glavieux and P., Thitimajshima, 1993. Near Shannon limit error-correcting coding and decoding: Turbo-codes " Proceedings of the 1993 International Conference on Communications, pp. 1064 1069. [4] Boseman, J. F., 2007. "FEASIBILITY OF A DYNAMIC DATA RATE SATELLITE LINK FORINMARSAT"MASTER OF SCIENCE IN ELECTRICAL ENGINEERING, Naval Postgraduate School, MONTEREY, CALIFORNIA. [5] Blahut, R. E., 1983. Theory and Practice of Error Control Codes. Reading, MA: Addison- Wesley [6] Clarke, K.P., 2002. "Reed-Solomon error correction", Research & development British Broadcasting Corporation, WHP 031 BBC. [7] Forney, G. D., 1966. Performance of concatenated codes," Concatenated Codes, pp.16, 8290S. Roman, 1992. Coding and Information Theory Springer-Verlag. [8] Gallage, R., 1962. Low density parity check codes " IEEE Trans. on Information The-ory, vol. IT-8, pp. 21-28. [9] Hamming, R. W., 1950. Error detection and error correction codes," Bell Syst. Tech. Journal, vol. 29, pp. 147-160. [10] Luise, A., 2000. " Orthogonal Frequency Division Multiplexing for Wireless Networks", Report submitted to university of California [11] Nakanishi,T. and T., Ikegami, 2000. Throughput performance of CDMA-ALOHA in S-band land mobile satellite channel," Proceeding of the 2000 IEEE Sixth Interna-tional Symposium on Spread Spectrum Techniques and Applications, pp. 383-386. [12] Pretzel, O., 1992. Error-correcting codes and finite fields". Clarendon Press Oxford. [13] Proakis, J. G., 2001. Digital Communications 2nd Ed., McGraw-Hill, Boston. [14] Rappaport, T. S., 1996. "Wireless Communications Principle and Practice", Prentice-Hall, Inc. [15] Richardson,T. J., M. A., Shokrollahi, and R. L., Urbanke, 2001. Design of capacityapproaching irregular low-density parity-check codes," IEEE Trans. on Information Theory, vol. 47, pp. 619-637. [16] Roman, S., 1992. Coding and Information Theory Springer-Verlag. [17] Schulze, H. and C., Luders, 2005. "Theory and Applications of OFDM and CDMA Wideband Wireless Communications", John Wily & Sons, Ltd. [18] Shannon,C. E., 1948. A mathematical theory of communication," Bell Syst. Tech Jour-nal, vol. 27, pp. 623-656. [19] Stolpman. V. J, J., Terry., and C. O., Geoffrey, 2005."Approaches to Adaptive Reed-Solomon Coding for OFDM Systems", Vehiular Technology Conference, IEEE 62 nd, Volume 1, Page(s):453-457 [20] Texas instrument: TMD SS FF SDR DP Website: www.ti.com/sdr. (Accessed 5/2009) [21] Thomas and F. M., Edgington, 1999. "Digital Basics for Cable Television Systems", Prentice- Hall, Inc. [22] Wicker, S.B., 1983. "Reed-Solomon Codes and their Applications", Piscataway, NJ: IEEE Press. [23] Wicker, S.B.,1995. Error Control Systems for Digital Communication and Storag. Prentice Hall, Upper Saddle River, NJ.