employed to aid in clock recovery at the receiver. A Maxim. MAX3701 chip ... delivering up to 200 mA of drive current. ... transmission the received data is saved to the PC hard-drive .... transmitted signal is attenuated and corrupted by AWGN.
An Underwater Optical Communication System Implementing Reed-Solomon Channel Coding William C. Cox, Jim A. Simpson, Carlo P. Domizioli, John F. Muth and Brian L. Hughes Department of Electrical and Computer Engineering North Carolina State University Raleigh, NC 27695-7914 {wccox,jasimps3,cpdomizi,muth,blhughes}@ncsu.edu
Abstract—An underwater optical communications system that implements forward error correction is demonstrated. The system uses a 405 nm diode laser to transmit on-off-keying (OOK) return-to-zero modulated data at a rate of 500 kbps to a photodiode receiver using a (255,129) Reed-Solomon code. The signal is digitized at the receiver and sent to a PC for postprocessing. Experimental measurements collected in an indoor water tank suggest that the coded system can reduce the power required to achieve a bit-error-rate of 10-4 by approximately 8 dB relative to an uncoded OOK system.
I. INTRODUCTION As scientific progress demands more and varied data from the earth’s oceans, and the military requires greater scrutiny of undersea traffic and threats, the need for reliable underwater communication links increases. The mobility requirements of submarines and autonomous underwater vehicles make tethered links infeasible, and radio frequency electromagnetic waves are highly attenuated in ocean water, preventing their widespread use. As sound waves undergo very little attenuation in the underwater channel, underwater acoustic communications has been a topic of research for some time [1, 2]. However, due to issues of multipath interference and lack of bandwidth, acoustic data rates are limited [3, 4]. Acoustic links also exhibit very long propagation delays. One potential solution for high bandwidth and low latency underwater wireless communications is the use of optical communication systems. Such systems have grown more popular in recent years with the creation of reliable, low-cost light sources, like LEDs [5] and diode lasers [6], that take advantage of the comparatively low attenuation of light in the 400 nm – 550 nm range in seawater [7-10]. Communication links have been demonstrated at rates of 10 Mbps [9] and 1 Gbps [11]. Researchers have also investigated the benefits of different modulation techniques on underwater optical communication systems [12-15]. This work was supported by Ambalux Corporation under Office of Naval Research STTR N00014-07-M-0308 and by the National Science Foundation under grants CCF-0515164 and ECCS-0636603.
978-1-4244-2620-1/08/$25.00 ©2008 IEEE
While researchers have examined the use of forward-errorcorrection (FEC) codes to improve acoustic underwater communication systems [3, 16], these techniques have not been applied to an underwater optical communication system. In principle, the use of such coding should allow the system to operate at a lower signal-to-noise ratio (SNR) for a given biterror-rate (BER). Since the received signal power directly corresponds to the amount of detected photons, absorption and scattering of photons is the main source of signal attenuation [17, 18]. This paper describes the application of a ReedSolomon (RS) FEC code to an underwater optical communication link, in order to reduce the power requirements and/or extend the range of such a link over a varying degree of water conditions. II. SYSTEM DESIGN The experimental setup consists of an indoor water tank with transmission windows on the long ends. The receiver and transmitter units transmit data through the water tank using a laser and a photodiode. A scattering agent, Maalox, is added to the water to increase the turbidity. The section below will cover the water tank, receiver and transmitter units, and post processing. A. Water Tank A water tank was constructed out of wood and fiberglass. The size of the tank is 1.2 m by 1.2 m on an end, 3.66 m long, and was designed to hold approximately 3,800 liters of water. Polycarbonate viewing windows were installed on the ends of tank. The transmitting window is 20 cm in diameter, and the receiver window is 38 cm by 53 cm. Municipal water is used to fill the tank and is filtered through a 10 μm cartridge filter to remove minerals. A standard 18” diatomaceous earth pool filter is used to circulate and further filter the water in the tank. This can filter particles down to approximately 3 μm, and can circulate the water at a rate of 300 liters per minute.
where z is the optical pathlength, Io is the initial optical irradiance before entering the water, and I is the received optical irradiance. c is measured by placing a receiver with a small aperture and narrow field-of-view in the beam path [17].
a USB port. The FPGA is an Alterra Cyclone II EP2C5 which interfaces with the USB port via a Cypress FX2 CY7C68013A USB controller chip. The FPGA internally buffers the received data and modulates the diode driver circuitry at the chosen data rate and laser power level. Since simple logic devices were used for optical pulse generation, the choice of modulation scheme was limited to binary on-off keying (OOK) with rectangular pulse shapes. In addition, return-to-zero (RZ) line coding with a 50% duty cycle was employed to aid in clock recovery at the receiver. A Maxim MAX3701 chip was used for the 405 nm laser driver board and is capable of driving the laser up to 100 MHz and delivering up to 200 mA of drive current. A pulse-widthmodulated output pin from the FPGA, driven through a lowpass-filter, is used to adjust the output power level of the laser driver chip. A 405 nm InGaN laser diode was used to transmit the signal through the water tank. The output power was set at 80 mW.
B. Transmitter The top half of Fig. 1 illustrates the transmitter system layout. The transmitter system was designed so that it could be used to drive a diode laser or a LED array for optical transmission. The system consists of a high-level C++ program, an FPGA for generating the drive signals, and a diode driver circuit. A high-level MATLAB program is used to generate a packet of data for transmission, which is stored on the computer to compare against the received data. A C++ program reads the file and streams the data to the FPGA over
C. Receiver The receiver setup, as shown in the bottom half of Fig. 1, amplifies and digitizes the transmitted signal for processing in MATLAB. Light is collected with a 2” focusing lens, with a field-of-view of 40 degrees. A custom pre-amplifier board, using a simple transimpedance amplifier, based around the Analog Devices AD8015, coupled with a PNZ334 photodiode is used to detect the transmitted optical signal. The transimpedance amplifier has a built-in gain of 40 dB, with a differential output.
Maalox antacid was added to the water as a scattering agent. This is a common practice and allows measurements taken in a laboratory setting to be compared to actual ocean environments as explored in [19] and further in [17]. Scattering of light directly contributes to loss of signal power as photons are directed out of the detection field-of-view of the receiver. Both scattering and absorption losses are added together to form an aggregate attenuation coefficient, c, expressed by 1 ⎛ I ⎞ c = − ln ⎜ ⎟ , z ⎝ Io ⎠
(1)
Fig. 1. Schematic of the hardware implementation of the underwater optical link.
Fig. 2. Schematic of the software portion of the Transmitter/Receiver, which includes a simulator for comparison to theoretical results. LabView and MATLAB are used as the higher level languages. The software is also modular which allows modifications to be made for future improvements.
The output of the pre-amplifier is coupled to a custom digitizer board that contains a variable gain amplifier (VGA) and a analog-to-digital converter (ADC). The AD8369 VGA is digitally controlled via the FPGA to amplify the signal from -5 dB to 40 dB, in 3 dB steps, which limits the dynamic range of the ADC input over varying water turbidities. The ADC samples the VGA output at 10 MSps and quantizes each sample to 8 bits. Due to the large spectral lobes of RZ rectangular pulse shapes and the desire to implement symbol synchronization digitally, we insisted that the received signal be over-sampled by a factor of 10, resulting in a 1 Mbps data rate, due to USB limitations discussed below. Using RZ encoding lowers the effective datarate to 500 kbps. The ADC output is read by the FPGA into an internal buffer, where it is then streamed out of the USB port to the receiver PC. Due to the streaming limitations of the USB protocol, the maximum sustainable streaming data rate between the receiver FPGA and the PC is approximately 16 MBps. A C++ program running on the PC receives the streaming data and buffers it. At the conclusion of the transmission the received data is saved to the PC hard-drive for processing. A LabView program is used on both the transmitter and receiver PCs to continuously collect data. After a packet has been transmitted and saved, the LabView program checks that the sampled data was received successfully, and then initiates another transmission. The receiver program monitors the digitized signal strength and adjusts the VGA gain to maintain at least 6 bits of precision over the course of an experiment. D. MATLAB Processing Synchronization, demodulation, detection, and decoding are implemented digitally in MATLAB, as illustrated in Fig. 2. The received samples are normalized and passed through a
finite-impulse response (FIR) digital filter matched to the RZ rectangular pulse shapes. In the absence of noise, the matched filter output will resemble a triangular pulse train whose peaks may be determined using a standard early-late gate algorithm (cf., [20, pp. 363]). A loop filter that performs a weighted average of the last 20 pulses is used to make the timing estimate robust in the presence of noise and other signal impairments. A hard decision of the early-late gate output is performed, resulting in an estimate of 0 or 1 for each received pulse. This data stream is passed to a RS decoder and, with knowledge of the original transmitted data and an estimate of the received signal-to-noise ratio (SNR), bit-error-rate (BER) computations are performed. The algorithm used to compute the SNR is discussed in Section IV. III. FEC SIMULATION AND THEORY Reed-Solomon coding was chosen for the system, since it is reasonably robust and relatively simple to implement. A (255,129) RS code was used for forward error correction. Data is encoded by mapping 129 8-bit data bytes into 255 8bit coded bytes, for a code rate of approximately 0.5.
Fig. 3. Transmitted packets for uncoded and coded data.
The data packet used in the experiments is illustrated in Fig. 3. In order to obtain BER estimates approaching 10-4 (the regime of interest for this particular RS code), on the order of 100,000 bits of data should be sent. We selected approximately 4 KB of randomly-generated source data so that the resulting packets were 8 KB after encoding, and applying a header. The header contains a 64 B
synchronization sequence of all 1s, which aids the synchronizer in acquiring the symbol-timing phase, and a 64 B flag sequence (known to the receiver) that marks the beginning of the data. The coding redundancy and header results in 52% overhead. It is desirable to compare the performance of this code with that of uncoded data, which would incur only 2% overhead from the header. In order to avoid sending two packets for the same water condition, the same packet is used to generate an estimate of the uncoded BER by simply calculating the BER prior to decoding. Since there is no well-established theoretical model for the underwater optical communication channel, we will use the standard additive white Gaussian noise (AWGN) channel (cf., [20, ch. 5]) as a rough benchmark for our experiments. The probability of error for this channel (with no coding) is given by
⎛ Eb ⎞ ⎟, Pb = Q⎜ ⎜ 2N 0 ⎟ ⎝ ⎠
(2)
where Q is the q-function (cf, [20, pp. 39]), Eb is the energy per bit, and N0 is the noise power spectral density. For a 50% duty cycle, unit pulse amplitude, and a data rate of R bps, Eb=1/2R. If the source data is encoded by an (n,k) RS code with m=log2(n+1) bits per byte, the probability of an m-bit byte error is
Ps =
m
⎛ m⎞
∑ ⎜⎜⎝ i ⎟⎟⎠P (1 − P ) i b
m −i
b
.
(3)
i =1
Assuming all the bits in an uncorrectable error are decoded in error results in the following upper bound for the bit-error rate of the coded data:
Pb ,coded ≤
n
⎛n⎞
∑ ⎜⎜⎝ i ⎟⎟⎠P (1 − P ) i s
s
n −i
,
(4)
i =t +1
where t=0.5(n-k) is the maximum number of correctable errors. The coding advantage that can be potentially obtained can be seen in Fig. 4. IV. ESTIMATING THE SNR OF THE SYSTEM In order to determine the BER performance of the experimental system it is necessary to estimate the SNR of the received signal. In general, the SNR will depend on many aspects of the electronics, the channel, and the receiver front end. For example, the transmitter power can be changed at the laser, or by attenuating the beam prior to entering the water.
Fig. 4. The solid line and circles show the theoretical and simulated performance of the software receiver with no coding. The dashed line and squares show coded performance. The performance gain of the (255,129) RS code is ~6 dB at a BER of 10-4. Note that for Eb/No of 9 dB and above the BER rate is less than 10-4. While below 9 dB the performance is comparable to the uncoded case. The points plotted on the axis have zero errors.
The signal can also be attenuated by the water channel through absorption and scattering, which is a function of the concentration of Maalox. At the receiver, the SNR can depend on the gain setting, field of view, and geometrical effects related to light collection efficiency. To provide a consistent point of reference, the SNR was measured directly from the received signal, at the output of the matched filter. Again, since there is no theoretical channel model for underwater optical communication, we assume the transmitted signal is attenuated and corrupted by AWGN. Under these assumptions, the received SNR may be estimated by the following algorithm. Let the signal sampled at the output of the matched filter be given by
y = s + n,
(5)
where s is the signal component and n is a zero-mean AWGN . The unknown signal and noise powers are denoted by S and N, respectively. Assuming the signal and noise are statistically independent, the 2nd and 4th moments of y are given by
Y2 = E[ y 2 ] = E[ s 2 + 2 sn + n 2 ] =S+N
(6)
Experiments were carried out by filling the tank with approximately 3,600 liters of water filtered with a 10 μm cartridge filter. The water was then filtered to 3 μm using a diatomaceous earth pool filter to remove any further impurities that were missed by the cartridge filter. The transmitter and receiver were then aligned to achieve maximum signal strength in clear water. The transmitter and receiver software were configured to automatically transmit and receive a packet of data approximately every thirty seconds. A standard medical syringe pump system was use to deliver 50 ml of Maalox into the water at a precisely controlled rate of 50 ml/hr. If, at the end of 50 ml, the received signal strength had not been sufficiently attenuated, another 50 ml of Maalox was added to the water in the same manner. Fig. 5 shows the experimental results of both the uncoded OOK system and the OOK system with RS forward error correction. Also shown for comparison are the theoretical
BER of the uncoded system in Eq. (2) and the bound of the BER of the coded system, from Eq. (4), for the ideal AWGN channel. From the figure, we see that the theoretical BER predicts a gain of at most 6 dB at a BER of 10-4. Note that the experimental results suggest a gain of about 8 dB, which is not far from the theoretical prediction, but may suggest additional non-AWGN sources of noise in the channel. Note that both the uncoded and coded systems perform about 2 – 3 dB worse than the theoretical formula. This is not unreasonable since the theoretical formulas omit the effects of synchronization errors caused by clock drift, and quantization of the received samples, which will certainly degrade performance. In addition to the SNR improvements obtained by using FEC, it is also useful to see how the system improves based on a measurable water metric, such as the attenuation coefficient. This shows how the effective range or reliability of the system would improve for a given water turbidity by using FEC. The attenuation coefficients were calculated by using a Fiber-Lite DC-950 halogen light source and an Ocean Optics USB-4000 spectrometer. A collimating lens was used to direct the light through the length of the tank, and the spectrometer optical fiber input was placed in the beam path on the other end of the tank. An iris was used to limit the spectrometers field of view to 7.87 mrad in order to limit the amount of scattered light entering the detector and thereby obtain a true estimate of the attenuation coefficient of the water [17]. Although the transmitter was 405 nm, due to lack of availability of a 405 nm filter, a 415 nm bandpass filter was placed in front of the spectrometer to measure the attenuation coefficient in the blue portion of the spectrum. Fig. 6 shows the BER of the collected
Fig. 5. Theoretical results compared with experimental results. Points on the x-axis have zero errors.
Fig. 6. BER vs. attenuation coefficient, c of the water. Points on the x-axis have zero errors.
Y4 = E[ y 4 ] = E[ s 4 + 4 s 3 n + 6 s 2 n 2 + 4sn 3 + n 4 ] = 3Y22 − 2 S 2
(7)
where we have made use of the relation E[n4] = 3N2. By solving for S and N we can find the SNR, which is defined as 10log10(S/N). Simulations suggest that this algorithm accurately estimates SNRs in the range 5 – 15 dB, but appears to underestimate the SNR elsewhere. V. EXPERIMENTAL RESULTS
data plotted against the measured attenuation coefficient. The results show that for a system operating at a fixed BER, the addition of Reed-Solomon error correcting codes will allow it to operate in water that has a c value that is 0.25 higher than a non-coded system. It should also be noted that many aspects of the system performance have not been optimized. Fig. 6 is presented to show improvements between coded and uncoded systems, and not to show the worst case at which the system can operate.
[3]
VI. CONCLUSION
[7]
In this work, we have demonstrated a 500 kbps OOK RZ optical communication link operating at 405 nm that utilizes Reed-Solomon forward error correction coding. We have created a low-cost platform for underwater optical communication that is suitable for laboratory experiments or for future implementation on an underwater vehicle. Additionally, we have created a laboratory setup for collecting data from a simulated underwater environment. The receiver and transmitter were used to determine the bit-error-rate of an optical communication system operating in an underwater environment over varying amounts of turbidity. The data is collected from the optical receiver and digitized using an ADC and an FPGA. The collected data is then passed on to a PC for post-processing in MATLAB. Channel coding is utilized to improve the bit-error-rate of the received data. A (255,129) RS code was used in experiments to validate the theoretical performance gain of such a system. The experimental results are consistent with theory and suggest an 8 dB improvement in SNR for a BER of 10-4. Using measured attenuation coefficient values over the experiments, the RS error correction code allows the system to operate at a BER of 10-4 for a c value that is 0.25 greater than in the uncoded case. It should be noted that these measurements were performed in a 3.66 meter tank, and it is unclear whether these results can be directly extrapolated to much longer communication links. Work will continue to increase the system data rate, and to move the software signal processing to an embedded system. In addition, we will explore the use of Turbo Codes in place of the Reed-Solomon code to further improve the system performance. REFERENCES [1]
[2]
M. Chitre, S. Shahabudeen and M. Stojanovic, "Underwater Acoustic Communications and Networking: Recent Advances and Future Challenges," The State of Technology in 2008, vol. 42, no. 1, pp. 103114, Spring 2008. M. Stojanovic, "Recent advances in high-speed underwater acoustic communications," IEEE Journal of Oceanic Engineering, vol. 21, no. 2, pp. 125-136, Apr. 1996.
[4] [5]
[6]
[8]
[9] [10] [11] [12] [13] [14]
[15]
[16] [17]
[18] [19] [20]
T. Oberg, B. Nilsson, N. Olofsson, M. L. Nordenvaad and E. Sangfelt, "Underwater communication link with iterative equalization," in OCEANS 2006, Boston, MA, Sept. 18-21, 2006. I. F. Akyildiz, D. Pompili and T. Melodia, "Underwater acoustic sensor networks: research challenges," Ad Hoc Networks, vol. 3, no. 3, pp. 257-279, May 2005. J. Simpson, "A 1 Mbps Underwater Communications System using LEDs and Photodiodes with Signal Processing Capability," M.S. thesis, Dept. of Elec. and Comp. Eng., North Carolina State University, Raleigh, NC, 2007. W. Cox, "A 1 Mbps Underwater Communication System Using a 405 nm Laser Diode and Photomultiplier Tube," M.S. thesis, Dept. of Elec. and Comp. Eng., North Carolina State University, Raleigh, NC, 2007. I. Vasilescu, K. Kotay, D. Rus, M. Dunbabin and P. Corke, "Data collection, storage, and retrieval with an underwater sensor network," in Proceedings of the 3rd International Conference on Embedded Networked Sensor Systems, San Diego, CA, pp. 154-165, Nov. 2-4 2005. I. Vasilescu, C. Detweiler and D. Rus, "AquaNodes: An underwater sensor network," in Proceedings of the Second Workshop on Underwater Networks, Montreal, QC, Canada, pp. 85-88, Sept. 9-14 2007. N. Farr, A. D. Chave, L. Freitag, J. Preisig, S. N. White, D. Yoerger and F. Sonnichsen, "Optical modem technology for seafloor observatories," in OCEANS 2006, Boston, MA, Sept. 18-21 2006. M. A. Chancey, "Short Range Underwater Optical Communication Links," M.S. thesis, Dept. of Elec. and Comp. Eng., North Carolina State University, Raleigh, NC, 2005. F. Hanson and S. Radic, "High bandwidth underwater optical communication," Appl. Opt., vol. 47, no. 2, pp. 277-283, Jan. 2008. B. Cochenour, L. Mullen and A. Laux, "Phase coherent digital communications for wireless optical links in turbid underwater environments," in Oceans 2007, Vancouver, BC, Canada, Oct. 2-3 2007. B. Srinivasan and V. Rodoplu, "Energy-efficient joint source-channel coding for optical wireless underwater networks," in Oceans 2007, Vancouver, BC, Canada, Oct. 2-3 2007. B. Cochenour, L. Mullen, A. Laux and T. Curran, "Effects of multiple scattering on the implementation of an underwater wireless optical communications link," in OCEANS 2006, Boston, MA, Sept. 18-21 2006. M. Chen, S. Zhou and T. Li, "The implementation of PPM in underwater laser communication system," in 2006 International Conference on Communications, Circuits and Systems, Guilin, China, pp. 1901-1903, June 25-28 2006. A. Goalic, J. Trubuil and N. Beuzelin, "Channel coding for underwater acoustic communication system," in OCEANS 2006, Boston, MA, Sept. 18-21 2006. A. Laux, R. Billmers, L. Mullen, B. Concannon, J. Davis, J. Prentice and V. Contarino, "The a, b, cs of oceanographic lidar predictions: a significant step toward closing the loop between theory and experiment," Journal of Modern Optics, vol. 49, no. 3, pp. 439-451, March 2002. J. W. Giles and I. N. Bankman, "Underwater optical communications systems. part 2: Basic design considerations," in MILCOM 2005, Atlantic City, NJ, pp. 1700-1705, Oct. 17-20 2005. T. J. Petzold, “Volume Scattering Functions for Selected Ocean Waters,” Scripps Institute of Oceanography, Visibility Laboratory, San Diego, CA, SIO Ref., pp. 72-78, Oct. 1972. J. G. Proakis, Digital Communications, 4th ed. Boston: McGraw-Hill, 2001.