Professional Documents
Culture Documents
Introduction
----------------------------------------------------------------------------1.1 Underwater Acoustic Communications
Digital communication in an underwater channel differs from communications
through other media such as radio channels where data is transmitted by means of
electromagnetic waves. Acoustic waves have superior propagation characteristics in
water and are most commonly used for wireless transmission of signals under water.
The reason for not using radio waves in the underwater channel is that only extra low
frequency radio waves (30 Hz - 300 Hz) can be propagated at any significant
distances through conductive sea water. These extra low frequencies also require large
antennae and high transmission power [1]. Though optical waves do not suffer from
such high attenuation, they are affected by scattering, which severely limits their link
distance in turbid waters [2]. Moreover, for accurate transmission, they require high
precision in pointing the narrow laser beams. Hence, underwater networks are based
on acoustic wireless communications.
The growing interest of researchers in underwater acoustic communications broadens
the application domain from military to commercial purposes such as remote control
in the off-shore oil industry, collection of scientific data recorded at ocean-bottom
stations and pollution monitoring in environmental systems. To make these
applications viable, there is a need for a communication system at the submerged ends
of the underwater communication link to achieve reliable communication in both
point-to-point and network scenarios. Underwater acoustic links are adversely
1.2 Motivation
The basic component needed to transmit and receive information via any
communication channel is a modem which means modulator and demodulator. The
modulator modulates an analog carrier signal to encode digital information. The
demodulator on the other hand, does the reverse work by extracting the original
digital transmitted information from the modulated carrier signal. Contemporary
underwater acoustic networks use low frequency modems and support long range
communication on each link. But the low operating frequency limits the available
1.4 Overview
This thesis proposes a High Data-Rate, Software-Defined FPGA Modem for
underwater acoustic communications. The main attractions of the modem are that it
supports high frequency, offers high data-rate and is implemented entirely in FPGA.
This differs from most existing modems which are based on DSP processors and
support relatively low data rates. Being software defined, the modem provides
flexibility since the parameters can be reconfigured with relatively less effort,
minimising the modification cost as the design evolves.
The modulator and demodulator have been implemented in the FPGA. The modulator
uses a root raised cosine pulse shaping filter [12] to reduce Intersymbol Interference.
The filters are implemented in FPGA as a 101 tap symmetric Finite Impulse Response
(FIR) filters, with filter weights implemented by a series of right shift and addition
operations. This avoids the use of multipliers and substantially reduces FPGA
Chapter Two
demodulation
techniques.
The
need
for
synchronization
in
digital
communications will then be discussed in detail in the second part. Finally, a short
description about some communication terms related to this thesis work concludes the
chapter.
The source encoder converts the output of a digital or analog source into a sequence
of binary digits. The sequence of binary digits from the source encoder is passed to
the channel encoder which is used to add redundancy to the transmitted signal so that
errors caused by noise and interference during transmission can be corrected at the
receiver. The added redundancy in the binary information sequence increases the
reliability of the received data and helps the receiver to decode the desired
information sequence. A well designed channel encoder uses a code which transmits
quickly, contains many valid code words and involves the removal of redundancy and
the correction (or detection) of errors in the transmitted data. For example, channel
encoding is performed by inserting constant bits (code word) into the bit stream at
particular positions with a value known to both the sender and the receiver. The
channel decoder recovers the original information by removing the known code word.
A simple encoding technique is to repeat each binary digit k times, where k is a
positive integer. For example, the encoder sends 000 instead of sending only one 0
to the communication channel. Due to noise or interference, the received bits can be
001 or 010. By majority logic of decoding, the decoder detects it as 000 and
decodes it as 0 having been sent.
A cos(2f c t )
x(t ) =
0
Binary 1
Binary 0
10
A cos(2f1t )
x(t ) =
A cos(2f 2 t )
Here,
f1 = f c + f 2 and
Binary 1
Binary 0
frequency f c .
11
A cos(2f ct + )
x(t ) =
A cos(2f ct )
Binary 1
Binary 0
13
14
(bits/sec).
The bit rate can be expressed in terms of the bandwidth efficiency b ((bits / sec) / Hz)
and bandwidth W (Hz) required for the signal as
R = b *W
[bits/sec]
15
) [joules/bit]
If the noise power density is N 0 [watts/Hz = joules], then noise power in a signal with
bandwidth W [Hz = 1/sec] is,
N = N 0 *W
[joules/sec = watts]
(b * W
* N 0 ) = SNR / b = (S N ) * (W R )
As the bit rate R increases, the transmitted signal power, relative to noise, must
increase to maintain the required Eb N 0 .
SNR [15] is thus a measure of signal strength relative to the background noise in
digital communications. If the signal power is denoted by Psignal and the noise power
by Pnoise , the signal-to-noise ratio is
SNR
= P signal
P noise
SNRs are often expressed using the logarithmic decibel scale since many signals have
a very wide dynamic range. In decibels, the SNR is defined as
SNR
dB
= 10
log
10
(P
signal
P noise
Signal-to-noise ratio is one of the important factors to decide how successful the
receiver will be in decoding the original signal. The estimated SNR can be employed
in soft decoding procedures; transmit power control, and handover. In a phase-
16
2.6 Synchronization
One of the basic requirements of all digital communication systems is to use some
form of synchronization at the receiver for correct decoding of the incoming signal.
Most receivers require synchronization to carrier frequency and phase, and symbol
timing of the received signal. The demodulation is also done after phase lock is
achieved.
17
The main component of a PLL is phase detector which measures the phase difference
between the incoming signal and the reference signal generated in the PLL [21]. The
output of the phase detector is proportional to the phase difference between the two
input signals. This output, the phase error, is time varying as the incoming signal and
the local carrier estimate at the receiver change with respect to each other. If the two
input signals differ in frequency, the output of the phase detector is a periodic wave
with frequency of the difference in frequency of the two signals. If the incoming
signal is not equal to the output signal of CO, the phase error signal causes the CO
phase to deviate towards the phase of incoming signal.
18
19
20
Figure 2.4: Block Diagram of LUT based NCO (Dotted Rectangle is the PA)
The carrier recovery circuit is used to estimate and compensate the phase difference
between the received signals carrier and local oscillator at the receiver for the
purpose of coherent demodulation. The most common carrier recovery PLL circuits
are the Squaring loop and the Costas loop [14]. The Squaring loop is a feed-forward
method, whereas the Costas loop relies on feedback technique related to the PLL [26].
The design of the Costas loop eliminates the square-law device used in the Squaring
loop, which can be difficult to implement at carrier frequencies and replaces it with a
multiplier and relatively simple low-pass filters [14]. A demodulator extracts the
original information bearing signal from the modulated carrier wave. In addition to
carrier recovery, the Costas loop demodulates the incoming BPSK signal. A detailed
discussion about the Costas loop is presented in Chapter 4.
21
22
23
24
2.10 Summary
This chapter has introduced digital communication and has also explained the role of
the modulator and demodulator in digital communication systems. Some common
modulation schemes used in digital communication have been listed in this chapter.
The need for synchronization and the fundamentals of various levels of receiver
synchronizations are also summarized here. This chapter also presented some general
terms required to estimate the efficiency of digital data transmission. The following
chapter will introduce underwater acoustic network along with some modulation
schemes used for data transmission in the underwater environment. The next chapter
also gives the categorization of some existing modems and their suitability for use
under water.
25
Chapter Three
Mobile Ad-hoc Networks (MANETs) are self-organizing and self-configuring multihop wireless networks where the structure of the network changes dynamically, for
example due to the node mobility [31, 32]. Nodes in these networks utilize the same
random access wireless channel, cooperating with each other to forward messages in a
multi-hop fashion. In contrast to a fixed wireless infrastructure network, a mobile adhoc network can be deployed in remote geographical locations and requires minimal
setup and administration costs. In addition, the coverage area and application domain
of the ad-hoc network can be increased by integrating an ad-hoc network with a
bigger network, such as the Internet or a wireless infrastructure network. The major
application areas of ad-hoc networks are: Battlefield, Conferencing, Home
Networking, Emergency Services, Personal Area Networks and Bluetooth [32].
As an example of a small ad-hoc network, consider Figure 3.1 (redrawn from [33])
illustrating a collection of 8 nodes, along with the links among them. Nodes are able
to move relative to each other and some links among the nodes are broken and other
links are established. The node MH1 moves away from MH2 and establishes new links
with MH7 and MH8.
27
A mobile ad-hoc network has similar pros and cons to wireless network. The
advantages of wireless multi-hop networks are given below:
The wireless network is easy and fast to set up and it eliminates the need for
cables.
Wireless networks are more flexible and can adapt easily to changes of
network configuration.
The network can be extended to any node within its communication range of
any node in the network.
28
A Wireless Sensor Network (WSN) consists of spatially distributed autonomous lowcost, low-power, multifunctional sensor nodes that are small in size and communicate
only over short distances. These tiny sensor nodes, which consist of sensing, data
processing, and communicating components, make the idea of sensor networks
practical, to cooperatively monitor physical or environmental conditions, such as
temperature, sound, vibration, pressure, motion or pollutants [36]. The position of
sensor nodes in the network need not be engineered or pre-determined.
In WSN, sensor nodes are capable of monitoring their neighbours in the network and
reporting observations to the node (called a sink) where sensed data is finally gathered
and processed. Sensor nodes are able to carry out simple computations locally using
their processing abilities and transmit only the required and partially processed data to
the sink node. This may reduce communication requirements as well as eliminating
the requirement for a central processing node. Wireless sensor nodes can
communicate directly with the sink in an infrastructure based WSN. Due to the
limited wireless coverage of sensor nodes, direct communication with the sensor node
is not always feasible for every node in the network, leading to the concept of ad-hoc
mode. In ad-hoc mode, nodes communicate with the sink via intermediate peers.
29
Mobile ad-hoc sensor networks are very beneficial in some scenarios, and improve the
operational efficiency of certain applications. For example, in a military operation, it
can be used to gather information about an enemy location and movement. This
network acts as a mobile traffic sensor network by monitoring vehicle traffic on
30
31
32
There are some challenges for transmission of acoustic waves in underwater. The
most important of which are discussed below.
Low Propagation Speed: The propagation speed in the underwater acoustic (UWA)
channel is low relative to potential source receiver velocities, leading to time-scale
changes (Doppler shifts) which, in relative terms, are significantly greater than those
encountered at radio frequencies. Doppler effects are therefore more severe than are
normally seen in terrestrial radio links. Acoustic waves travel much more slowly
(approximately 1500 m/s) than radio waves. It therefore takes a longer time to transfer
packets due to high propagation delay and this causes a drop in system performance.
Path Loss and Limited Bandwidth: The acoustic signal faces three types of losses
during its propagation: geometric, scattering and absorption loss. Path Loss (Path
Attenuation) is the reduction in power density (attenuation) of an acoustic wave as it
propagates through the underwater channel due to these three effects [49]. Geometric
33
Multipath and Doppler Effect: Underwater acoustic signals are subject to timevarying multipath [52], which may result in Intersymbol Interference and large
Doppler shifts and Doppler spreads that are large relative to those seen on radio
channels. Multipath problem occurs when a given signal propagates from a source to
a destination along multiple distinct paths, each path having different path length and
hence a different propagation delay. As shown in Figure 3.4 (redrawn from [53]), the
direct path arrives at the receiver along with a series of alternate paths due to surface
and bottom reflections. The number of alternate paths is variable depending on the
medium and topographic factors but can be large [53]. The length of each path, and
hence its propagation delay is time-varying. This means that, not only it is necessary
to track the multi-path delays in an equalizer, but each arrival will exhibit a different,
34
35
Underwater communication systems use signals for carrying data. The performance of
an underwater communication link depends on the use of signals that perform well in
all environmental conditions and the use of good processing techniques in the receiver
that take into account the characteristics of the signal and characteristics of the
medium. The choice must trade optimal performance against complexity and cost.
Because all of the above mentioned limitations of the underwater channel, the
selection of the type of modulation and error correction techniques has to be carefully
analyzed for successful transmission of information through water.
36
Early underwater acoustic telemetry used Amplitude Shift Keying (ASK) and
Frequency Shift Keying (FSK) for data transmission. ASK performs well when the
path is straight and reverberation is low e.g. vertical transmission. In a noisy channel
its performance can be improved by an error correction scheme [57] but this decreases
the data rate. Most underwater communications use some form of FSK or PSK due to
the difficulties with ASK in reverberant environment. FSK is a simple modulation
technique that has been used widely over the past two decades in underwater
communications due to its resistance to time and frequency spreading of the
underwater acoustic channel [58, 59]. FSK is immune to multipath problem and
performs well in reverberant environment. The robustness and simplicity of FSK
makes it suitable for low data rate applications and, furthermore, FSK is considered
appropriate for shallow water long - medium range channels that exhibit rapid phase
variation [57]. Although the carrier phase tracking problem can be eliminated by
noncoherent detection, this technique is still prone to reverberation problems which
causes a drop in system performance. In PSK, digital data is represented by phase
changes, so coherent detection is required at the receiver to recover the phase
information of input signal. PSK is typically used to achieve higher data rates. But
PSK is sensitive to multipath propagation, which causes phase and amplitude changes
to the signal. Equalizing PSK works much better with the spatial diversity provided
by an array of receivers [45].
37
38
The next three sections will discuss different types of underwater modems.
39
40
So, reconfigurable computing [68] based FPGAs are used to accelerate product
development and support evolution of fielded systems. Given the immaturity of the
field of underwater communication, a reconfigurable modem is a valuable tool for
development and testing modem techniques. FPGAs offer an opportunity to accelerate
digital signal processing applications up to 1000 times over traditional DSP
processors [69]. Like microprocessors, many FPGAs can be infinitely reprogrammed
in-circuit in only a fraction of a second. Design revisions, even for a fielded product,
can be implemented quickly and with minimal effort. Hardware can also be reduced
by taking advantage of reconfiguration. Despite all of these inherent benefits, due to
lack of knowledge, most of the existing modems are implemented based on DSP
processors. There is little published work on FPGA modems.
41
Most of the existing modems were implemented in hardware due to low processing
power which did not allow the modulation and demodulation in software. Recent
improvements of processing power enable us to run the modulation and demodulation
in software and thus the software modem becomes a viable alternative which
overcomes the drawbacks of a hardware modem. Recent approaches to software
modem design eliminate the need for specialized hardware for acoustic
communications and thus reduce the cost of network deployment and make acoustic
communication faster. A very widespread approach is the Software Defined Radio
(SDR) [71], whose modulation and demodulation techniques exist as programs either
in software in a dedicated processor (DSP) or logic in a programmable logic device
(FPGA). This provides a high degree of versatility in the equipment because different
modulations and demodulation schemes can be implemented using the same physical
hardware.
42
43
Iltis et al. at UC, Santa Barbara developed a hardware acoustic underwater telemetry
modem for ecological research applications [63] using the fixed point DSP board with
custom amplifiers, matching networks, and transducers. In an underwater ad-hoc
network, their modem is intended for interfacing to nodes, and achieves a 133 bps
data rate. In the transmitter, the digital signal generated by the DSP is applied to a pair
of DACs, one of which is dedicated to scale the transmitted signal (for power control).
In the receiver, the signal from the 25 kHz center frequency transducer is amplified
and filtered, with a large gain-adjust range in the amplifier. The filtered signal is
applied to the 12-bit ADC, which is a module on the DSP chip. Their future intention
was to implement the modem in reconfigurable hardware for supporting lower power
and large acoustic bandwidth and data rates.
Work discussed by Martos and Bonadero [71] shows the digital demodulation of
RBDS (Radio Broadcast Data System) information transmitted along with
commercial FM broadcast (88 MHz -108 MHz) using a FPGA device that can be
reprogrammed to support different modulations without changing the existing
hardware. In their demodulation method, they generated two base-band sinusoidal
signals (I and Q) from a ROM LUT and then multiplied each sample from the ADC
with a position of the table in a synchronized way. The products were passed by FIR
(Finite Impulse Response) low pass filters to eliminate the images from mixing. Then
the phase and frequency of the incoming signal is calculated using a ROM LUT. The
broadcast FM demodulated signal passes through a band pass filter of 4 kHz
44
modifiable
for
use
under
various
vehicle
power
systems,
signal
45
The BPSK modulation and demodulation technique described by Ruque et al. [74]
uses a multiplexer that selects the carrier either in phase or 180o out of phase
depending on the condition of binary input data. The simulation was done using
Simulink and the components of a system generator. In their work, they used the
system generator to create and verify a hardware design for Xilinx FPGAs, which
works together with Simulink and Matlab. They implemented the modulation and
demodulation in Xilinx Spartan3 which is intended for low cost and high volume
applications. The results obtained by the actual implementation in development board
are practically the same as those obtained from the simulation. Since the results
obtained from hardware are dependent on the simulation of software, it is much easier
to change the design by changing the software even after finishing the
implementation. Although their software simulations and FPGA implementation
provide many advantages, the carrier recovery technique and filter implementations
46
A theoretical analysis has been discussed by Bernal et al. [75] along with the design
guideline of a digital I&Q demodulator for a general antenna array receiver. FPGA
implementation issues were also discussed in their work. They compared the digital
I&Q demodulation with conventional I&Q demodulation and concluded that digital
I&Q demodulation reduces the number of inputs to a digital signal processing device.
No carrier recovery scheme and filter implementation are discussed in their work. The
bit detection part of the demodulator is also not covered here.
Nataraj et al. [76] have discussed the novel architecture for the Quadrature Phase
Shift Keying (QPSK) demodulator suitable for processing satellite data
communications. In their demodulator, the receiver algorithm is divided into two
parts: one is based on a FPGA and the other on a DSP processor. The entire modem
was coded in Matlab to validate the hardware results. They only discussed the FPGA
implementation details in their work, the DSP implementation was out of their scope.
Most existing commercial modems are designed for sparse long range applications
rather than dense short range communications. Benson et al. [77] presents the design
of a low cost short-range underwater acoustic modem which substitutes the expensive
commercial transducer with a home made underwater transducer using cheap piezoceramic material and builds the rest of the modems components according to the
properties of the transducer to get as much performance as possible. Their analog
transmitter was designed to support signals in the range of 0-100 kHz. They chose
FSK as the prototype of their low-cost, low-power, low data-rate applications due to
its simplicity and robustness. The carrier frequency was chosen as 35 kHz based on
47
P.-P. J. Beaujean at Florida Atlantic University [78], developed a one-way, highspeed, high-frequency acoustic modem (HS-HFAM) operating between 260 kHz and
380 kHz to transmit compressed underwater images and status information in realtime. They achieved high data rate using a high-resolution decision feedback
equalizer with parallel algorithm for tracking and compensating large Doppler. A
series of field experiments were conducted to test their modem in Port Everglades,
Florida, in very shallow water acoustic channels causing significant fading. The
experimentation took place in water depths of up to 3 metres and ranges of 15 to
118 metres. They used BPSK and QPSK as modulation techniques and achieved
maximum data rate of 87.7 kHz. Experimental results were obtained using a very
compact source with output power of 6.6 W, indicating that their HS-HFAM is
remarkably power efficient and ideal for small UUVs and divers.
Demodulators require filters to eliminate unwanted noise from the incoming received
signal. S. S and S. Y. Kulkarni [79] have discussed the high speed and low power
FPGA implementation of FIR filter for DSP applications. The major challenge of
higher order filter implementation is the large number of multiplications. The authors
generated the HDL code from FDA tool of Matlab and gave instructions to optimize
the HDL by using a variety of techniques like pipelining and distributed arithmetic.
48
Both of the works reported in [63] and [82] focus on developing underwater acoustic
modems with low cost and specialized affordable hardware, our work aims to reduce
the cost and make a completely software based acoustic modem with minimal
hardware support that can operate in a high frequency (100 kHz to 1 MHz)
underwater environment.
3.8 Summary
This chapter has discussed different categories of ad-hoc networks along with their
characteristics. Typical modulation schemes and their suitability in underwater
49
50
Chapter Four
The modulator operates by up-sampling (50 samples per bit) the input binary data
stream to produce a train of positive or negative impulses. The up-sampling is done
by inserting 49 zeros between consecutive symbols. The dirac-delta pulse generated
after up-sampling is sent to a 101 tap root raised cosine filter [12] to produce a raised
cosine pulse.
In signal processing, a Root Raised Cosine filter (RRC) [83], (also known as Square
Root Raised Cosine filter (SRRC), is frequently used as both the transmit and receive
filter in a digital communication system to do matched filtering. The combined
response of two such filters is that of the Raised Cosine Filter [84, 85] which is a low
pass filter commonly used for pulse shaping in data transmission systems. In our
modulator, a root raised cosine filter is used for pulse shaping and to reduce the
Intersymbol Interference (ISI) at the transmitter. Our receiver uses an identical root
raised cosine filter as a matched filter. Together, the two root raised cosine filters (one
at transmitter and one at receiver) provide a raised cosine filter response over the
channel for ISI removal.
52
The filtered signal is then multiplied with the locally generated carrier stored in a
look-up table (LUT). The LUT is a set of memory locations containing pre-calculated
values representing a sine-wave. The clock for the LUT is obtained from the master
oscillator on the FPGA board. Because the code (data) and carrier signal rates are
derived from the same reference oscillator they are guaranteed to be synchronized. In
fact the entire modulator circuit is synchronous which allows unique oscillator and
timing recovery at the demodulator.
The up-sampling process shown in Figure 4.1 changes the magnitude level of binary
input data before inserting zeros between sample values. For this particular design, a
binary data bit 0 is represented by the magnitude level of -8000 and binary 1 is
represented by the magnitude level of +8000. The sinusoidal generator is a simple
LUT used to store the sample values required to generate a desired sinusoid carrier.
For this particular design, there are 5 samples per carrier cycle. Because of this
conveniently chosen ratio, the LUT can be very sparse, requiring only 5 values. This
is because the modulator is driven by 4 MHz clock and the carrier generated from
LUT is 800 kHz.
The modulator is highly efficient to implement in an FPGA. The main reason for
choosing an FPGA as a design tool is because of its reconfigurable capability for
implementing DSP solutions. The design can easily be changed to add more features
without beginning from scratch. But FPGAs are not free from weakness.
53
54
The mechanism of the Costas loop carrier recovery is to adjust the LO until the Qsignal is minimised. This means that the LO matches the received BPSK signal in
phase and frequency. The incoming BPSK modulated signal is multiplied by the local
55
= (i) (i 1) = 2 / L (ii)
(i ) = * i . . . (iii)
56
The resolution of the LUT can be varied by changing the value of L. The amplitude of
the output waveform depends on A of equation (i). The sample values for sine and cos
LUT can be calculated from equation (iv) and (v) respectively. The value of A can be
selected and scaled to suit the design requirement and to maximize the synthesizers
output dynamic range. For the 14-bit resolution DAC, the maximum value of A can
be chosen as 2^14-1 =16383 if the output is generated as an unsigned integer.
The resolution (n-bit) of the phase accumulator, and hence frequency resolution, is
greater than the resolution (k-bit) of the LUTs. The upper k bits of the phase
accumulator are used to address into the LUTs, while the lower n-k bits are simply
used to carry forward the residual phase for future samples.
The current step size (n-bit) calculated from the output of LPF 2 and fixed step size is
added with the previous step size stored in the phase accumulator of the NCO. The
phase accumulator sends the upper k bits (k n) of the summation to address the look-
57
As shown in Figure 4.4, the filters in the Costas loop are designed as symmetric Finite
Impulse Response (FIR) filters, and are implemented in the FPGA as a tapped delay
line. However, instead of using multipliers, we implement the filter weights as a series
of right shifts and additions.
where, y(m) is the output signal, x(m) is the input signal, b(i) are filter coefficients and
n is the filter order.
58
To design our multiplier-free filter, the filter coefficients (<1) are generated in
MATLAB and then approximated as a summation of two inverse powers of two.
Multiplication by an inverse power of two is simple to implement as a right shift
operation in the FPGA.
To illustrate this operation, suppose the original coefficient generated from the
MATLAB filter design tool for a particular filter tap is 0.78. We approximate this
coefficient by producing two right bit-shifted versions of the input - in this case a 1bit (0.5) and 2-bit (0.25) shift, and then summing the resultant values. For example, if
the current input sample is 128, then 1-bit and 2-bit right-shifted values would be 64
and 32 respectively, which would produce a filter tap output of 96. If the filters are
implemented using a multiplication at full precision the (correct) answer would be
99.84 (128*0.78). Implementing the filter taps using this right shift and addition
technique requires substantially less FPGA resources than performing direct
multiplication. The decision to add only two right-shifted values for each tap is a
design choice; higher filter coefficient resolution could be obtained by using more
right-shifted values, provided the FPGA resources were available.
59
LPF 2 does not significantly contribute to the Costas loop locking response and its
response should be far outside the closed-loop response. This filter should have its
pole at a low enough frequency that the Costas loop will not be too noisy, nor be
subject to carrier phase reversals in the presence of noise (i.e., the loop is equally
stable in both phases), while high enough that it doesnt cause the loop to oscillate.
Setting this pole to eight times the LPF 1 pole is the point at which this filter
negligibly affects on the loop.
Our modem uses a 5 tap Chebyshev Type II IIR filter as the second filter (loop filter)
of the Costas loop. The cut off frequency of this filter is set to the 10 times the cut off
frequency of the data filter (LPF 1). As shown in Figure 4.5, we have designed this as
an IIR filter to implement in the FPGA as a tapped delay line and the filter output is
calculated using the following equation:
y (m) = b(1) * x(m) + b(2) * x(m 1) + b(3) * x(m 2) + b(4) * x(m 3) + b(5) * x(m 4)
a(2) * y (m 1) a(3) * y (m 2) a(4) * y (m 3)
60
This filter is implemented using the built in FPGA multipliers rather than any
methods of approximation (such as using right shift and addition operations used to
implement the LPF 1). This is because the second filter consists of only 5 taps,
compared to 101 taps for each of the three RRC filters, so it will not add much cost
and complexity to the design since we have sufficient resources to implement this
directly using the FPGA built in multipliers.
61
stream. This strips the modulation off and leaves the phase error for the phase-locked
loop (PLL). Since the feedback of the Costas loop forces the error towards zero, the
error channel is driven to zero, but either channel (the sine and cosine output of the
demodulator LO) could be the data channel. By hard-limiting one of the channels, this
automatically becomes the data channel since it produces a sign change. The other
channel becomes the error channel, which is driven to zero.
The Hard Limiter of the Costas loop implements the SIGN function (also known as
signum function) for the in-phase component. The SIGN function extracts the sign of
a real number. The SIGN function is defined as:
+1
SIGN(x) = 0
-1
if x > 0,
if x = 0,
if x < 0.
The Hard Limiter is placed in series between the upper LPF 1 and the third multiplier
of the Costas loop as shown in Figure 4.6 (a). The Hard Limiter implements the SIGN
function whereas the third multiplier of the costs loop adjusts the output of the Qchannel according to the hard-limited signal. Our design is simplified by combining
the operations of Hard Limiter and the third multiplier as shown in Figure 4.6 (b). The
Hard Limiter in our demodulator implements the SIGN function and also performs the
operation of third multiplier in the Costas loop. The output of the SIGN function is
either +1, 0 or -1 and multiplying these values with the Q-channel leaves the Qchannel unchanged, 0 or inverted respectively. So taking the I-channel as its input,
62
Figure 4.6 (b) shows that the Q-channel is passed to the input of LPF 2 based on the
sign of the I-channel and thus the third multiplier is omitted from the loop in the
actual design.
63
Figure 4.7 shows the algorithmic principle of the bit synchronization method used in
our design for decoding BPSK data bits. For each sample in the I-signal, the
synchronizer first checks whether this sample is in the middle of the symbol period. If
it is, then the sign of that sample value decides whether it is binary 0 or 1. The
positive sign indicates a binary 1 whereas the negative sign of the sample value
indicates a binary 0. To detect the exact bit position, the synchronizer keeps track of
the sample point in the I-signal where the last bit was detected. It then detects the
middle of the next bit period by adding half of the symbol length to the last bit
position detected. Once a binary 0 or 1 is detected, the synchronizer checks
whether the bit is in preamble mode or in the actual payload. If it is in the preamble
part, the synchronizer then checks if preamble detection is completed or not. If
completed, the phase of the data bits is detected from the phase of the preamble bits.
If the bit is not in preamble mode, then it is detected as a data bit and its phase is
decided from the phase of the preamble bits already detected. After detection, the
synchronizer counts the number of bits since last zero crossing is found. It also keeps
track of the last bit position detected in the demodulated signal. The synchronizer then
checks if the sample crosses zero and there is enough gap between two consecutive
zero crossings. The last bit position is also estimated from the information of actual
bit position and the zero crossing detected. The length of each bit period is also
calculated from this information.
64
65
4.5 Summary
This chapter has discussed the detailed functional design of our high frequency FPGA
acoustic modem for underwater communication. Since the modem consists of the
modulator and the demodulator, the detailed design architecture of the modulator and
the demodulator has also been presented here. The working procedure of each of the
blocks of the modem is explained in this chapter. The next chapter will introduce the
FPGA design framework and demonstrate the implementation details of this high
frequency modem in Altium Winter 09. The performance of the modem will also be
reviewed in the following chapter.
66
Chapter Five
To achieve this goal, a design environment is necessary - where engineers can capture
the hardware design, write the embedded software for the processor, and implement,
test and debug both the hardware and software on the target FPGA device. Altium
Designer provides this environment by bringing together the required tools and the
necessary communications systems. Hence, a complete FPGA design environment is
The design efficiency and flexibility offered by Altium Designer allows designers to
create complex custom designs more quickly and easily using their existing hardware
and software design skills. Altium provides flexibility to the designers to change the
way they think about developing electronic products and takes advantage of the
potential offered by today's large-capacity programmable devices [89].
Altium Designer provides a single, unified environment for the designers throughout
the development process. With relatively less effort, designers can synchronize the
schematic capture with the FPGA layout, maintain I/O synchronization between
FPGA designs and the boards they reside on, and automatically ensure consistency of
memory and peripheral definition between the hardware and software elements of the
design.
68
69
Our modem is based on a Cyclone III EP3C25 FPGA [94], containing approximately
25,000 logic gates, hosted on an Altera Starter Board. To use the Cyclone III FPGA
chip with Altium Designer Winter 09 software for compiling, synthesizing and
building of the FPGA project, we installed the USB blaster driver for the cyclone III
starter board to interface with a personal computer. The analog front end is provided
by a mating Terasic ADC/DAC card with dual high speed analog input and output
channels. Altera developed the specification for the HSMC (High Speed Mezannine
70
For our implementation, the ADA-HSMC package is used to work with Altera
Cyclone III FPGA starter kit. The package consists of the Terasic Analog-to-Digital
and Digital-to-Analog (ADA) board. This ADA board has dual AD channels with 14bit resolution and data rate up to 65 MSPS (Million Samples per Second), dual DA
channels with 14-bit resolution and data rate up to 125 MSPS (Million Samples per
Second) and dual interfaces include HSMC and GPIO, which are fully compatible
with the Cyclone III starter kit and DE1/DE2/DE3 respectively. The clock sources of
the ADA board include a 100 MHz oscillator [95], SMA clock input for AD and DA
each and a PLL input from either the HSMC or GPIO interface.
71
72
of
0001111101000000
two
and
different
magnitudes
1110000011000000
+8000
and
respectively.
-8000
Both
are
these
representations have their least significant 7 bits common which are 1000000. We
have changed only the upper 9 bits to reflect the corresponding magnitude level. To
change the magnitude level of binary data bit 0 we first represent it as 9 zeros
(000000000) and then XORing it with 111000001 produces the upper 9 bits of the
desired magnitude level of -8000 (111000001). To change the magnitude level of
binary data bit 1 we first represent it as 9 ones (111111111) and then XORing it
with 111000001 produces the upper 9 bits of the desired magnitude level of +8000
(000111110). Appending the remaining fixed 7 least significant bits 1000000 thus
produce the required magnitude level for binary data bits 0 and 1.
The upsampling is then done by inserting 49 zeros between consecutive symbols. The
dirac delta pulse train generated after upsampling is sent to the root raised cosine
filter for further processing.
73
For this particular implementation, a carrier of 800 kHz is generated from the predefined LUT. The samples stored in the LUT are generated in Matlab using equations
(i)-(iv) of Section 4.3.1.
74
The filter coefficients (<1) are generated in Matlab using the following function,
b = r cos ine( f d , f s , type _ flag , r , delay )
75
Each of the 101 taps of the filter is implemented by two right shifts and one addition
operation. All the operations in the filter are carried out on 16-bit signed numbers. As
mentioned in the previous chapter, using this right shift and addition techniques to
implement the filter operations consume considerably less FPGA resources rather
than doing the multiplications directly using FPGA multiplier blocks. In our
implementation, we avoid multiplication and quantize the coefficient as (2-x + 2-y),
where x and y are integers. For example, the original coefficient 0.78 is quantized as
(0.75 =2-1+2-2) to implement using 1 bit and 2 bit right shift operation in FPGA.
Figure 5.4 shows the implementation of one tap operation of the root raised cosine
filter using two right shift operations - x bit right shift and y bit right shift on the input
and then summing the results together. This avoids the need for an explicit
multiplication, which is expensive to perform in an FPGA.
76
For each clock pulse, the input x(m) is right-shifted according to the filter coefficient
and then is fed to the next tap. If the coefficient is negative then the right-shifted input
is twos complemented before feeding to the next tap. We have implemented 5 taps
per schematic sheet, except the last tap to simplify the design. This required 21
schematics (20 schematics each with 5 taps and one schematic for last tap) to
implement the 101 tap filter. The Altium built in Delay block (D flip-flop) is used to
delay the signal for one symbol period before sending it to the next tap.
77
5.5.5 Multiplication
The carrier signal (generated from Sinusoid Generator) and the filtered signal are
multiplied to generate the BPSK modulated signal as shown in Figure 5.6. All the
blocks in the modulator are implemented in 16-bit twos complement resolution. So,
every sample of the carrier as well as the filtered signal is a 16-bit twos complement
integer. To multiply these two 16-bit samples, a signed 16-bit Altium built in
multiplier is used. This multiplier takes two 16-bit signed integers as input and
produces a 32-bit signed integer as the output. Since, our DAC works on unsigned
resolution, a 32-bit adder is used next to the 32-bit multiplier to change the scale of
the multiplied signal from signed to unsigned resolution. An optimization is carried
out at the output of the adder to send the most significant 14-bits (carrying most of the
information) to the DAC which is of 14-bit resolution.
78
5.6.1 LPF 1
Two identical 101 tap root raised cosine low pass filters (LPF 1) are used in the I and
Q arms of the Costas loop. This is the same filter used in the modulator since two
such root raised cosine filters (one at the transmitter and one at the receiver) produce
the effect of a raised cosine filter at the receiver. This section avoids detailed
discussion of the implementation of this 101 tap root raised cosine FIR filter since it
has already been covered in Section 5.4.4.
5.6.2 LPF 2
Our demodulator uses a 5 tap Chebyshev Type II IIR filter as the second filter (loop
filter) of the Costas loop. The cut off frequency of this filter is set to 10 times the cut
off frequency of the data filter (LPF 1) as mentioned in Chapter Four. The filter
output is calculated using the following equation:
y (m ) = b(1) x(m ) + b(2) x(m 1) + b(3) x(m 2) + b(4) x(m 3) + b(5) x(m 4)
a(2 ) y (m 1) a(3) y (m 2) a(4) y (m 3)
To implement the filter in the FPGA, we have generated the filter coefficients in
Matlab using the following functions:
79
80
The binary values for the coefficients generated from Matlab are directly used in the
Altium schematic as wired lines to implement the filter. To avoid some unexpected
problems caused by Altium subtractors, we have replaced the subtraction operation in
the design by twos complement and adder operations. To do this, we have used 32-bit
Altium adders and VHDL code to perform the twos complement operation.
For our implementation, the filter coefficients generated from equation (ii) are
represented in 2:14 binary bit format where the upper 2 bits represent the integer part
of the coefficient and the lower 14 bits represent the fractional component of the
coefficient. The input signal is represented in 16:0 binary format to represent 16-bit
twos complement integer. The feedback coefficients a2 and a4 generated from Matlab
are negative. So, we did not need to use twos complement operation for negating
these two coefficients and we directly fed them to the 32-bit adders after multiplying
with 16-bit feedback coming out of the filter.
81
5.6.3 NCO
As shown in Figure 5.8, the feedback error calculated from the output of LPF 2
multiplied by the Costas loops gain is added with the fixed step size (64.0/5 = 12.8)
using a 16-bit built-in adder in Altium. The 16-bit adder (Adder-A) takes the input as
a fixed point number in 8:8 format, where the upper 8 bits represent the integer part
and the lower 8 bits represent the fractional component. The 16-bit output coming
from Adder-A is also in 8:8 format and is added with the previous step size coming
from the 16-bit D flip-flop using another 16-bit adder (Adder-B). The output of
Adder-B is sent to a 16-bit multiplexer (MUX) to check the sign of this number. The
MUX checks the sign of the output of Adder-B and sends the number as is if the
number is positive or if the number is negative, it sends the number added with 64.0
(01000000 00000000) using Adder-C to a 16-bit comparator.
The comparator compares the output of MUX with 64.0 ie, 0100000000000000 in
binary (8:8 format) to confine the index of the LUT within the range of 1-64. The one
bit output of the comparator (0/1) is sent to an Expansion block implemented using
schematic wired lines to expand 1 bit to 16 bits. The Expansion block generates either
0000000000000000
when
the
output
of
the
comparator
is
0or
82
The SUB block in the Figure 5.8 subtracts either 0/64 from the current step size
calculated from the MUX to limit the index of the LUT. The output of the SUB block
is the current step size and the upper 8 bits of it is used to address the look-up tables
and sends all 16 bits to a 16-bit D flip-flop (latch) to be added with the next step size
for getting the next numerical value to address the LUTs. Two LUTs with 64 samples
in each are used in the NCO for generating sine-wave and cos-wave for the I and Q
channel respectively. These two LUTs are implemented in Altium using logic blocks
written in VHDL codes.
83
84
Figure 5.10 (a) shows the sinusoid output of the NCO with frequency 390.6 kHz when
the step size (phase increment) of NCO was 0.5. For each clock pulse, the phase
accumulator scanned one sample value from the LUT for sine-wave (LUT_1). The
phase accumulator scanned 128 samples (each sample in the LUT was used twice per
cycle) from the LUT to generate the frequency of 390.6. The FPGA clock operates at
speed of 50 MHz. Dividing 50 MHz by 128 produced the desired frequency of 390.6
kHz.
85
Figure 5.10 (b) shows the sinusoid output of the NCO with frequency 588.2 kHz
when the current step size (calculated from the output of LPF 2 and previous step
size) was 0.75. The NCO scanned 85 samples from the LUT. Dividing 50 MHz by 85
produced the desired frequency of about 588.24 kHz. The accuracy and stability of
NCO were driven from the crystal on the FPGA board.
86
Figure 5.11(b) shows the frequency response of root raised cosine filter (LPF 1) with
the quantized coefficients approximated in the FPGA to implement the multiplicationfree filter. The response of the filter was calculated in MATLAB using both the
original filter coefficients as well as FPGA quantized coefficients.
Each tap of the 101 tap root raised cosine filter in our modem was implemented using
two right shifts and one addition operation to avoid expensive multiplication in the
FPGA. To do this, each filter coefficient was quantized to be represented as two
inverse powers of two. Each coefficient was then represented as two right-shifted
87
The impulse response of the root raised cosine filter with quantized filter coefficients,
but using multiplication throughout, is shown in Figure 5.12(b).
The multiplication-free filter on the FPGA was implemented with the quantized
coefficients and the impulse response is shown in Figure 5.12(c). Our result shows
88
The impulse response of the root raised cosine low pass filter shown in Figure 5.12(b)
does not exactly match Figure 5.12(c) due to quantization error of the filter
coefficients. Figure 5.12(c) shows the impulse response of a multiplication-free filter
implemented as a series of right shift operations and is different from Figure 5.12(b)
since the right shift operation causes loss of some precision at the output signal. If the
need to exactly match the response of Figure 5.12(b) is found to be important, then
rounding rather than the truncation could be considered when right-shifting.
Figure 5.12(d) shows the impulse responses of Matlab calculated root raised cosine
low pass filter (LPF 1) using original coefficients, quantized coefficients and FPGA
implemented multiplication-free filter with quantized coefficients together. It is
clearly evident from the figures that our multiplication-free filter implemented as a
series of right shifts produces correct impulse response with very little loss of
precision.
89
The design of the modulator was completed, and programmed into the FPGA. The
Matlab model of the demodulator was developed and tested on recordings of both
laboratory and open water signals. To test the modem performance, the binary data bit
generation block of the FPGA modulator generated a data packet of 62 bits to be sent.
The first 30 bits of the packet were used for carrier synchronization and the next 10
bits acted as a data preamble of the packet for bit synchronization at the receiver. The
packet contained 22 bits of actual data payload for transmission.
90
The BPSK modulated signal generated in the FPGA was sent through a DAC front
end provided by the Terasic daughter board to an amplifier which in turn forwarded
the amplified signal to the transducer (transmitter). The receiving hydrophone
captured the signal and passed it through several preamplifiers. Finally the modulated
signal was recorded by a PC oscilloscope device and stored in a computer for later
demodulation using the MATLAB model of the demodulator. The BPSK signal
recorded at the tank was generated from an erroneous square pulse BPSK data rather
than Dirac Delta pulse. This was generated with our initial design of the modulator
which generated square pulse from the binary input bits, rather than the dirac delta.
91
Figure 5.14: Sample BPSK Modulator for 80 kbps at 800 kHz Carrier in Tank
The Matlab model of the Costas loop was coded and tested to demonstrate the ability
to achieve synchronization even with substantial simulated carrier and phase offsets.
The modulated signal recorded (shown in Figure 5.14) in tank was demodulated using
the closed Costas loop and the output of the I and Q channels are shown in Figure
5.15. The output of the I channel produced the expected demodulated data. Bit
synchronization was also been achieved successfully for this particular test setup at
tank.
It is evident from Figure 5.15 that the Costas loop was well locked after 1500
samples/30 bits (used for carrier synchronization and test instrumentation purposes)
92
Open water testing of the modem was carried out at Lake Burley Griffin, Canberra,
Australia as shown in Figure 5.16. The performance of the modem was tested using
both transmitter and receiver in one boat. The test was carried out with various
combinations of distances and depths of the transmitter and receiver.
Figure 5.16 shows the test set-up at lake with the receiving hydrophone about 1 metre
away from the transmitter to capture the modulated signal. Both transmitter and
receiver were about 3 metres below the surface of the water. The signal captured by
the hydrophone was passed to a pre-amplifier followed by an amplifier. Finally the
modulated signal was recorded by a PC oscilloscope device and stored in a computer
for later processing by the Matlab model of the demodulator.
93
Figure 5.17 shows the modulated signal recorded with 1 metre distance between
transmitter and receiver. The signal was recorded using a Picoscope with sampling
rate of 160 ns, and resampled at 250 ns intervals for later processing.
Figure 5.17: Sample BPSK Modulator for 80 kbps at 800 kHz Carrier at Lake with 1 m Distance
The signal recorded from the lake was tested using the Matlab model of the open loop
demodulator and decoded successfully to recover the BPSK demodulated data. The
demodulated signal at the I channel and the error signal at the Q channel of the Costas
loop are shown in Figure 5.18. The Q channel does not go to zero in the figure. This is
because we deliberately ran the Costas loop with no feedback from the Q channel.
The NCO of the Costas loop was a free run oscillator (run with fixed constant
94
Figure 5.18: Demodulated BPSK Signal for Lake Recording with 1 m Distance
Figure 5.19 shows the BPSK modulated signal recorded in Lake Burley Griffin with 2
metre distance between the transmitter and the receiver. The test set-up was similar to
that shown in Figure 5.16 except for the distance between the transducer and the
hydrophone. This recording was taken by increasing the distance between transmitter
and receiver to check the maximum distance that we could cover with our modem.
The BPSK modulated signal captured by the hydrophone was passed to a preamplifier
and then to an amplifier. The final BPSK signal was recorded by a Picoscope for later
processing using MATLAB model of the demodulator.
95
The modulated signal recorded from the test set-up in lake with 2 metre distance
between transducer and hydrophone is shown in Figure 5.20. The modulated signal
recorded by increasing the distance between transmitter and receiver still had
sufficient SNR to be decoded by the decoder.
Figure 5.20: Sample BPSK Modulator for 80 kbps at 800 kHz Carrier at Lake with 2 m Distance
Figure 5.21 shows the output of the I and Q channel of the Costas loop for the BPSK
recorded signal with 2 metre distance between transducer and hydrophone at lake. The
bit synchronization follows on from the carrier recovery after the loop is locked. The
recorded signal was decoded here with the open loop Costas loop demodulator to test
the shape and behavior of the I and Q channel signals as shown in Figure 5.21. Bit
96
Figure 5.21: Demodulated BPSK Signal for Lake Recording with 2 m Distance
Another recording was taken in the lake with 10 metre distance between the
transmitter and the receiver as shown in Figure 5.22. The test set-up was also similar
to that shown in Figure 5.16 except for the distance between the transmitter and the
hydrophone.
A typical recording of the modulated signal is shown in Figure 5.23. The recorded
signal is much more noisy than the signal recorded with <10 metre distances.
97
Figure 5.23: Sample BPSK Modulator for 80 kbps at 800 kHz Carrier at Lake with 10 m Distance
Figure 5.24 shows the I and Q signal generated from the Matlab model of the open
loop demodulator. The decoding was also done with 0% BER. In this case the LO
offset was small.
Figure 5.24: Demodulated BPSK Signal for Lake Recording with 10 m Distance
The lake experiments were carried out for through-water transmission ranges from
1 metre to 20 metres. Figure 5.25 shows the signal-to-noise ratio of the modulated
signal calculated to test the signal power as the distance between transmitter and
98
It is evident from the above figure that the SNR decreases as the distance increases,
with one exception at 2 metre where a much stronger signal was received. The SNR
was very poor for weak signals recorded at 6, 11 and 12 metre distances. These might
be explained by interference for the transmitter framework. The decreasing nature of
the SNR with respect to the distances was due to the limited transmission power of
the amplifier we used to transmit the signal.
Figure 5.26 shows the absorption and spreading loss at fresh water from 1 metre to
20 metre distances between the transmitter and the receiver. The total loss calculated
is also shown in the graph. The figure shows that we should get 10 dB more spreading
loss, plus an extra 4 dB of absorption or an SNR that was 14 dB lower as the link
distance was increased from 5 to 20 metres.
99
The next test plan was to record the signal for a long duration to capture a large
number of packets and to eliminate the biasness of strong packets. We also changed
the amplifier to record the signal with more transmission power and used two boats
for separating the transmitter and the receiver.
Another test was carried out in Lake Burley Griffin, Canberra, Australia as shown in
Figure 5.27 using two boats and a new amplifier. The transducer and the hydrophone
were about 2.7 metre and 3 metre respectively below the surface of water. This tested
the modem performance by transmitting from one boat to another to cover ranges up
to 50 m. The performance of the modem was tested using various combinations of
distances (between transmitter and receiver) and depths of transmitter and receiver.
Signals were recorded at ranges between 10 m and 50 m. SNR and bit error rates were
also calculated as a function of link range.
100
Figure 5.28 shows the band-pass filtered received modulated signal recorded in the
lake with 15 m distance between transmitter (depth 2.7 m) and receiver (depth 3 m).
The figure shows 1 second of signal collection, containing approximately 10 packets,
each packet with 22 actual data bits. The signal was recorded using a PC based CRO
(Cleverscope) with sampling rate of 220 ns, and resampled at 250 ns intervals for
post-processing using Matlab model of the demodulator. The bandpass filter was
narrow, capturing the long sequence of unmodulated signal in the packet preamble.
Figure 5.28: Sample BPSK Modulator for 80 kbps at 800 kHz Carrier in Lake for 15 m Distance
101
Figure 5.29: Demodulated Data along with I and Q for 15 m Distance in Lake
Though the pattern of I and Q signals in Figure 5.29 is random, the Costas loop was
locked and data bits were detected with bit error rates down to 4.76%. This data was
affected by an AM radio signal at 846 kHz, broadcast from a radio tower (Black
Mountain Tower, Canberra, Australia), about 2 km from the test site as shown in
Figure 5.30. Upon investigation it was determined that the interference was
transferred into the received signal as a result of inappropriate earthing in the CRO
device.
102
Figure 5.30: Black Mountain Tower, Lake Burley Griffin, Canberra, Australia [98]
Although the communication was tested for up to 50 metres, the I and Q plots are
shown for up to 30 metre distance. Figure 5.31 shows the demodulated data along
with the I and Q response of the Costas loop for 20 metre distance in open water. The
PLL was locked and demodulated data bits were obtained with 4.76% BER.
103
Figure 5.31: Demodulated Data along with I and Q for 20 m Distance in Lake
Figure 5.32 shows the I and Q channel data of the Costas loop for signals recorded at
30 metre distance in open water. The BER obtained for this recording was 23.8%,
driven in large part by the AM radio interference.
Figure 5.32: Demodulated Data along with I and Q for 30 m Distance in Lake
The FPGA design of the modulator is easily adaptable to other carrier frequencies and
symbol rates. Tests in the open water were conducted to verify the modem
performance with various communication distances between transmitter and receiver.
A better understanding of the propagation characteristics of high frequency acoustic
104
The FPGA demodulator was also tested individually by storing the modulated signal
in a VHDL file and then using this signal as the input of the demodulator. The
operations of the demodulator were synchronous with the modulator, and carrier
recovery was achieved successfully.
A bench test was carried out to record the FPGA modulated signal in the lab. To test
the FPGA modem in the lab, we generated the BPSK modulated signal in one FPGA
Cyclone III board and then sent it to the DAC channel-A of that board. The analog
signal coming out of the DAC was sent to ADC channel-A of another FPGA Cyclone
III board. The ADC converted the signal back to digital. The digital signal was then
sent to the Costas loop for demodulation.
Figure 5.33 shows the BPSK modulated signal recorded in lab using one FPGA
board. The modulated signal was sent to an FPGA board and then recorded using a
105
Figure 5.33: Sample BPSK FPGA Modulator for 80 kbps at 800 kHz Carrier in Lab: Recording 1
The modulated signal containing one packet recorded using a Picoscope in the lab is
shown in Figure 5.34. The packet contains 62 bits, with 30 bits for carrier
synchronization, 10 bits for bit synchronization at the beginning and 22 bits: 1 0 1 1 0
Level
0 1 0 1 0 1 1 1 0 1 0 0 0 1 0 1 0 of actual payloads.
Time
Figure 5.34: BPSK Modulated Signal (One Packet) for 80 kbps at 800 kHz Carrier in Lab: Recording 1
106
Figure 5.35: BPSK Modulated Signal for 80 kbps at 800 kHz Carrier in Lab using
Two FPGA Boards: Recording 1
Figure 5.36 shows one packet of BPSK modulated signal recorded in lab using two
FPGA boards - one board acted as a transmitter and the other one as a receiver.
Figure 5.36: BPSK Modulated Signal (One Packet) for 80 kbps at 800 kHz Carrier
in Lab using Two FPGA Boards: Recording 1
107
Figure 5.38 shows one packet of the demodulated signal of the bench recording as
shown in Figure 5.37.
Figure 5.38: Demodulated BPSK Signal (Zoom in) for Bench Test: Recording 1
108
Figure 5.39: Sample BPSK FPGA Modulator for 80 kbps at 800 kHz Carrier in Lab:
Recording 2
Figure 5.40 shows zoom in view of one packet of the modulated signal recorded in
Figure 5.39. The packet contains data sequence of - 1, 1, 0, 1, 0, 0, 1, 0, 1, 0 with 5
bits for carrier synchronization and 5 bits for data preamble at the beginning.
Figure 5.40: BPSK Modulated Signal (One Packet) for 80 kbps at 800 kHz Carrier in Lab:
Recording 2
109
Figure 5.42 shows I and Q channel responses of the Costas loop for one packet (20
bits) of the modulated signal. The loop was locked after almost 5 bits/250 samples
and the Q signal oscillated around zero after this point forward.
Figure 5.42: Demodulated BPSK Signal (Zoom in) for Bench Test: Recording 2
110
Figure 5.43: Sample BPSK FPGA Modulator for 80 kbps at 800 kHz Carrier in Lab:
Recording 3
Figure 5.44 shows one packet of BPSK modulated signal recorded in lab using two
FPGA boards - one board acted as a transmitter and the other one as a receiver.
Figure 5.44: BPSK Modulated Signal (One Packet) for 80 kbps at 800 kHz Carrier
in Lab: Recording 3
111
Figure 5.46 shows one packet of the demodulated signal of the bench recording as
shown in Figure 5.45.
Figure 5.46: Demodulated BPSK Signal (Zoom in) for Bench Test: Recording 3
112
113
Figure 5.48 shows the constellation diagram of our BPSK signal for one packet
(shown in 5.36) with 22 bits of actual payloads. The x-axis represents amplitude of
each sample in the I-signal (in-phase component) and y-axis represents the
corresponding sample amplitude in the Q-signal (quadrature component). As long as
the constellation point of one symbol does not cross the vertical boundary along zero
axis, the feedback error to the NCO is small enough to detect correct bit/symbol at the
receiver.
114
Figure 5.49 shows the phase offset characteristics between the incoming and locally
generated signal of the Costas loop. The x-axis represents the phase difference
between the locally generated signal and the received signal and y-axis represents the
feedback error to the NCO.
115
The receiver also needs information about the frequency offset, f of the received
signal, which can be caused by Doppler shifts due to motion, or the fact that the
transmitter oscillator is not exactly equal to that of the receiver. If the frequency seen
by the receiver fr is higher than the frequency of the locally generated carrier fc, the
feedback error to the NCO is positive. It speeds up the NCO by decreasing the step
size, which defines the frequency to lock in frequency. If the frequency of the
received signal is smaller than the frequency of the locally generated carrier, the
feedback error is negative. It slows down the NCO by increasing the step size to lock
in correct frequency.
Figure 5.50 shows the frequency offset characteristics between the incoming and
locally generated signal of the Costas loop. The x-axis represents the frequency
difference between the received incoming signal and the locally generated carrier and
y-axis represents the feedback error to the NCO. The feedback error increases as the
frequency difference between the received signal and locally generated signal
increases and vice versa. The stable lock point (feedback error is zero) is found when
the frequency difference is zero.
116
Our Costas loop demodulator can acquire lock to the incoming signal and adjust the
phase of the locally generated signal to match it in phase. The loop does not directly
track the frequency of the received waveform. As the frequency is a rate of change of
phase, the loop has some ability to track frequency, such as a Doppler shift or a
difference in clock frequency between the transmitter and the receiver, by making
constant phase adjustments.
5.10 Summary
This chapter introduces Altium Design environment and gives the detailed description
of the implementation of the proposed high frequency FPGA modem for underwater
communication. All the necessary blocks needed to implement the modem in Altium
Winter 09 software are also given in this chapter. A general discussion about Altera
Cyclone III - the FPGA device needed to map the Altium design into the FPGA board
has also been carried out in this chapter. This chapter also analyzes the performance
of this modem. The observations obtained from different test results have also been
covered.
117
Chapter Six
shifts and one addition operation in the FPGA to avoid expensive multiplication
operations, which in turn leads to reduced FPGA resource consumption. The
demodulator uses a Costas loop for both carrier recovery and synchronous data
detection within the loop.
The modem has been implemented in a Cyclone III EP3C25 FPGA based on an
Altera Starter Board. The EP3C25 contains approximately 25,000 logic gates. The
modulator uses 3,623 (15%) and the demodulator uses almost 7,936 (32%) of the
available logic gates. Initially, the modulator was implemented in the FPGA, to
support laboratory and open water tests, the results of which conform to modelling.
The Matlab model of the demodulator then recovered the carrier, code
synchronization and data from recordings of both laboratory and open water tests.
Coding of the demodulator into the FPGA has then been completed and the
performance and behaviour of the modem was evaluated.
6.2 Conclusion
This thesis documents the design and FPGA implementation of a high data-rate
software-defined BPSK acoustic modem for underwater communication. The novelty
behind the design of the modem is the high operating frequency supported which is an
order of magnitude higher than conventional underwater acoustic modems. At such
high frequencies, much higher data rates can be achieved at relatively short
communication range. This high data rate enables new applications, and longer range
communication can be enabled by relay or non-acoustic backhaul.
The software implementation of the BPSK modem allows us to avoid the cost of
specialized hardware and makes modification of the design easier. In addition, the
filter implementation using right shifts and addition avoids multiplication which
119
120
121
References
----------------------------------------[1]
[2]
[3]
[4]
[5]
[6]
[7]
[8]
References
[9]
Root
Raised
Cosine
Filter,
available:
http://en.wikipedia.org/wiki/Root-raised-cosine_filter.
[13] Wikipedia, Costas Loop, available: http://en.wikipedia.org/wiki/Costas_loop.
[14] B. Sklar, Digital Communications: Fundamentals and Applications, Englewood
Cliffs, N. J.: Prentice-Hall, 1988.
[15] W. Stallings, Data and Computer Communications, 6th ed. Upper Saddle River,
N. J.: Prentice Hall, 2000.
[16] J. G. Proakis, Digital communications, 4th ed.: McGraw-Hill Science
Engineering, 2000.
[17] Tutorials in Communication Engineering, All About Modulation - part I,
available: http://www.complextoreal.com/chapters/mod1.pdf.
[18] L. W. Couch, II, Digital and Analog Communication Systems, 7th Edition:
Pearson Prentice Hall, 2007.
[19] M. S. Roden, Digital and Data Communication Systems, Englewood Cliffs,
N.J.: Prentice-Hall, 1982.
[20] S. V. Vaseghi, Advanced Signal Processing and Noise Reduction, 2nd ed.: John
Wiley & Sons 2000.
123
References
[21] J. L. Stensby, Phase Locked Loops: Theory and Applications, 1st Edition: CRCPress, 1997.
[22] H. Guan-Chyun and J. C. Hung, Phase-locked Loop Techniques. A Survey,
Industrial Electronics, IEEE Transactions on, vol. 43, pp. 609-615, 1996.
[23] H. -J. Pfleiderer and S. Lachowicz, Numerically Controlled Oscillators using
Linear Approximation, Field Programmable Logic and Applications, 2009.
FPL 2009. International Conference on, pp. 695-698, 2009.
[24] D. L. Jones, S. Appadwedula, M. Berry, M. Haun, D. Moussa and D. Sachs,
Digital
Receiver:
Carrier
Recovery,
available:
http://cnx.org/content/m10478/latest/.
[25] R. Ertl and J. Baier, Increasing the Frequency Resolution of NCO-Systems
using a Circuit based on a Digital Adder, Circuits and Systems II: Analog and
Digital Signal Processing, IEEE Transactions on, vol. 43, pp. 266-269, 1996.
[26] J. Feigin, Practical Costas Loop Design, RF Signal Processing, January 2002.
[27] Physics
Tutorial,
The
Doppler
Effect,
available:
http://www.physicsclassroom.com/class/waves/u10l3d.cfm.
[28] Wikipedia,
Pulse
Shaping,
available:
http://en.wikipedia.org/wiki/Pulse_shaping.
[29] A. S. Kang and V. Sharma, Pulse Shape Filtering in Wireless CommunicationA Critical Analysis, (IJACSA) International Journal of Advanced Computer
Science and Applications, vol. 2, March 2011.
[30] Tutorial, Pulse-Shape Filtering in Communications Systems, available:
http://zone.ni.com/devzone/cda/tut/p/id/3876.
[31] X. Hong, K. Xu and M. Gerla, Scalable Routing Protocols for Mobile Ad Hoc
Networks, IEEE Network, vol. 16, pp. 11-21, July-Aug 2002.
124
References
[32] C. E. Perkins, Ad hoc Networking: An Introduction, USA: Addison-Wesley
Longman Publishing Co., Inc. Boston, MA, USA 2001.
[33] C. E. Perkins and P. Bhagwat, Highly Dynamic Destination-Sequenced
Distance-Vector Routing (DSDV) for Mobile Computers, SIGCOMM Comput.
Commun. Rev., vol. 24, pp. 234-244, 1994.
[34] C. S. R. Murthy and B. S. Manoj, Ad Hoc Wireless Networks Architectures and
Protocols: Prentice Hall, 2004.
[35] T. Nilsson, Resource Allocation and Service Differentiation in Wireless Local
Area Networks, Department of Computing Science, Umea University, Sweden,
2005.
[36] I. F. Akyildiz, W. Su, Y. Sankarasubramaniam and E. Cayirci, Wireless Sensor
Networks: A Survey, Computer Networks, vol. 38, pp. 393-422, 2002.
[37] P. V. Rickenbach and R. Wattenhofer, Gathering Correlated Data in Sensor
Networks, 2nd ACM Joint Workshop on Foundations of Mobile Computing
(DIALM-POMC), pp. 60-66, 2004.
[38] Wireless Sensor Network, available: http://monet.postech.ac.kr/research.html.
[39] X. Yang, K. G. Ong, W. R. Dreschel, K. Zeng, C. S. Mungle and C. A. Grimes,
Design of a Wireless Sensor Network for Long-term, in-situ monitoring of an
aqueous environment, Sensors, pp. 455-472, 2002.
[40] N. N. Soreide, C. E. Woody and S. M. Holt, Overview of Ocean based Buoys
and Drifters: Present Applications and Future Needs, OCEANS, 2001.
MTS/IEEE Conference and Exhibition, vol. 4, pp. 2470-2472, 2001.
[41] L. Freitag, M. Grund, C. V. Alt, R. Stokey and T. Austin, A Shallow Water
Acoustic Network for Mine Countermeasures Operations with Autonomous
Underwater Vehicles, Underwater Defense Technology (UDT), 2005.
125
References
[42] I. F. Akyildiz, D. Pompili and T. Melodia, Underwater Acoustic Sensor
Networks: Research Challenges, Ad Hoc Networks, vol. 3, pp. 257-279, 2005.
[43] M. R. B and S. S. Manvi, Issues in Underwater Acoustic Sensor Networks,
International Journal of Computer and Electrical Engineering, vol. 3, February
2011.
[44] E. M. Sozer, J. G. Proakis, R. Stojanovic, J. A. Rice, A. Benson and M. Hatch,
Direct Sequence Spread Spectrum based Modem for Under Water Acoustic
Communication and Channel Measurements, OCEANS '99 MTS/IEEE. Riding
the Crest into the 21st Century, vol. 1, pp. 228-233, 1999.
[45] J. Partan, J. Kurose and B. N. Levine, A Survey of Practical Issues in
Underwater Networks, SIGMOBILE Mob. Comput. Commun. Rev., vol. 11, pp.
23-33, 2007.
[46] I. Vasilescu, K. Kotay, D.Rus, M. Dunbabin and P. Corke, Data Collection,
Storage, and Retrieval with an Underwater Sensor Network, Proceedings of
the 3rd international conference on Embedded networked sensor systems, San
Diego, California, USA, 2005.
[47] J. Heidemann, Y. Wei, J. Wills, A. Syed and Y. Li, Research Challenges and
Applications
for
Underwater
Sensor
Networking,
IEEE
Wireless
available:
http://www.eng.buffalo.edu/wnesl/underwater_sensor_networks.html.
[49] N. Nasri, L. Andrieux, A. Kachouri and M. Samet, Efficient Encoding and
Decoding Schemes for Wireless Underwater Communication Systems, Systems
126
References
Signals and Devices (SSD), 2010 7th International Multi-Conference on, pp. 16, 2010.
[50] L. M. Brekhovshikh and Y. P. Lysanov, Fundamentals of Ocean Acoustics,
New York: Springer-Verlag, 1982.
[51] A. Quazi and W. Konrad, Underwater Acoustic Communications,
Communications Magazine, IEEE, vol. 20, pp. 24-30, 1982.
[52] E. M. Sozer, M. Stojanovic and J. G. Proakis, Underwater Acoustic
Networks, IEEE Journal of Oceanic Engineering, vol. 25, pp. 72-83, Jan 2000.
[53] Y. Labrador, M. Karimi, D. Pan and J. Miller, Modulation and Error
Correction in the Underwater Acoustic Communication Channel, IJCSNS
International Journal of Computer Science and Network Security, vol. 9, no. 7,
July 2009.
[54] K. Romer and F. Mattern, The Design Space of Wireless Sensor Networks,
Wireless Communications, IEEE, vol. 11, pp. 54-61, 2004.
[55] N. Nasri, L. Andrieux, A. Kachouri and M. Samet, Surveys of Design
Considerations for Underwater Networks, 5th International Conference:
Sciences of Electronic, Technologies of Information and Telecommunications,
TUNISIA, 2009.
[56] G. M. Wenz, Acoustic Ambient Noise in the Ocean: Spectra and Sources, The
Journal of the Acoustical Society of America, vol. 34, pp. 1936-1956, 1962.
[57] R. S. H. Istepanian and M. Stojanovic, Underwater Acoustic Digital Signal
Processing and Communication Systems, Kluwer Academic, 2002.
[58] L. Freitag, M. Grund, S. Sing, J. Partan, P. Koski and K. Ball, The WHOI
Micro-Modem: An Acoustic Communications and Navigation System for
127
References
Multiple Platforms, OCEANS, 2005. Proceedings of MTS/IEEE, vol. 2, pp.
1086-1092, 2005.
[59] D. B. Kilfoyle and A. B. Baggeroer, The State of the Art in Underwater
Acoustic Telemetry, IEEE Journal of Oceanic Engineering, vol. 25, pp. 4-27,
January 2000.
[60] N. Parrish, S. Roy and P. Arabshahi, Poster Abstract: OFDM in Underwater
Channels,available:http://staff.washington.edu/paymana/papers/mobicom08.pdf.
[61] M. Stojanovic, OFDM for Underwater Acoustic Communications: Adaptive
Synchronization and Sparse Channel Estimation, IEEE International
Conference on Acoustics, Speech and Signal Processing, vol. 1-12, pp. 52885291, 2008.
[62] M. Stojanovic, Low Complexity OFDM Detector for Underwater Acoustic
Channels, IEEE OCEANS, 2006.
[63] R. A. Iltis et al., An Underwater Acoustic Telemetry Modem for EcoSensing, OCEANS 2005, vol. 1-3, pp. 1844-1850, 2005.
[64] M. Stojanovic and L. Freitag, Acquisition of Direct Sequence Spread Spectrum
Acoustic Communication Signals, vol. 1, pp. 279-286, OCEANS 2003.
Proceedings, 2003.
[65] N. Nowsheen, C. Benson and M. Frater, Design of a High Frequency FPGA
Acoustic Modem for Underwater Communication, IEEE OCEANS, Sydney,
2010.
[66] FPGA
vs.
DSP
Design
Reliability
and
Maintenance,
available:
Solutions,
available:
http://www.altera.com/literature/wp/wp-01023.pdf.
[67] FPGAs
Provide
Reconfigurable
DSP
http://www.altera.com/literature/wp/wp_dsp_fpga.pdf.
128
References
[68] G. R. Goslin, Guide to using Field Programmable Gate Arrays (FPGAs) for
Application-Specific Digital Signal Processing Performance, High-Speed
Computing, Digital Signal Processing, and Filtering Using Reconfigurable
Logic, vol. 2914, pp. 321-331, 1996.
[69] S. Ganesan, Advances in Real Time Digital Signal Processing Systems and
Applications, International Conference on Intelligent Information Systems and
Management (IISM2010), Jun 10-12, 2010.
[70] R. Jurdak, P Aguiar, P Baldi and C. V. Lopes, Software Modems for
Underwater Sensor Networks, Oceans 2007 - Europe, vols. 1-3, pp. 105-110,
2007.
[71] P. I. Martos and J. L. Bonadero, FPGA-Based Digital Demodulation, in XII
Reunin de Trabajo en Procesamiento de la Informacin y Control, Buenos
Aires, 2007.
[72] R. Jurdak, C. V. Lopes and P. Baldi, Software Acoustic Modems for Short
Range Mote-based Underwater Sensor Networks, OCEANS 2006 - Asia
Pacific, pp. 1-7, 2006.
[73] L. Freitag and S. Sing, Multi-User Frequency-Hopping Underwater Acoustic
Communication Protocol, Woods Hole Oceanographic Institution, Woods
Hole, MA, May 25, 2000.
[74] J. S. Ruque, D. I. Ruiz and C. E. Carrion, Simulation and Implementation of
BPSK Modulation on a FPGA Xilinx Spartan 3 xcs200-4ftp256 using Simulink
and
the
System
Generator
Blockset
for
DSP/FPGA,
available:
http://www.ece.unm.edu/xup/docs/collaboration/BPSK_Modulator.pdf.
129
References
[75] D. Bernal, P. Closas and J. A. Fernandez-Rubio, Digital I&Q Demodulation
Array Processing: Theory and Implementation, 16th European Signal
Processing Conference (EUSIPCO 2008), Lausanne, Switzerland, 2008.
[76] K. R. Nataraj, Dr S. Ramachandran and Dr B. S. Nagabushan, Development of
Algorithm, Architecture and FPGA Implementation of Demodulator for
Processing Satellite Data Communication, IJCSNS International Journal of
Computer Science and Network Security, vol. 9, 2009.
[77] B. Benson, Y. Li, R. Kastner, B. Faunce, K. Domond, D. Kimball and C.
Schurgers, Design of a Low-Cost, Underwater Acoustic Modem for ShortRange Sensor Networks, OCEANS 2010 IEEE - Sydney, pp. 1-9, 2010.
[78] P.-P. J. Beaujean, High-Speed High-Frequency Acoustic Modem for Image
Transmission in Very Shallow Waters, OCEANS 2007 - Europe, pp. 1-6, 2007.
[79] S. S and S. Y. Kulkarni, High Speed and Low Power FPGA Implementation of
FIR Filter for DSP Applications, European Journal of Scientific Research, vol.
31, pp. 19-28, 2009.
[80] M. Arroyuelo, J. Arroyuelo and A. Grosso, FPGA-Based Digital Filters using
Bit-Serial Arithmetic, CACIC, 2007.
[81] M. Shajaan, K. Nielsen and J. A. Sorensen Time-Area Efficient MultiplierFree Filter Architectures for FPGA Implementation, 1995 International
Conference on Acoustics, Speech, and Signal Processing - Conference
Proceedings, vol. 1-5, pp. 3251-3254, 1995.
[82] M. Johnson, J. Preisig, L. Freitag and M. Stojanovic, FSK and PSK
Performance of the Utility Acoustic Modem, OCEANS '99 MTS/IEEE: Riding
the Crest into the 21st Century, vol. 1-3, pp. 1512, 1999.
130
References
[83] P. V. Rao, C. R. Prasanna and S. Ravi, Design and ASIC Implementation of
Root Raised Cosine Filter, European Journal of Scientific Research, vol. 31,
pp. 319-328, 2009.
[84] Wikipedia,
Raised
Cosine
Filter,
available:
http://en.wikipedia.org/wiki/Raised-cosine_filter.
[85] K. Gentile, The Care and Feeding of Digital, Pulse-Shaping Filters, RF Mixed
Signal, April 2002.
[86] B. K. Upadhyaya, Design and Development of VHDL Based Tunable Sine
Wave Generator Using DDS Technique: Extension to FPGA Implementation,
NCC, IIT Guwahati, 2009.
[87] S. S. Prasad and S. K. Sanyal, A Novel Direct Digital Synthesis Technique to
Generate Low Frequency Acoustic Signal for Underwater Signal Processing
using Digital Signal Processor, Symposium on Ocean Electronics, Cochin,
India, 2005, pp. 170-175.
[88] FPGA Designers Quickstart Guide, GU0101 (v1.2), November 30, 2005,
available:http://www.altium.com/files/Altiumdesigner6/LearningGuides/GU010
1 FPGA Designers Quickstart Guide. PDF.
[89] Altium Designer - Bring the Future to Your Desktop, available:
http://www.directinsight.co.uk/downloads/tal/003/AltiumDesignerFullBrochure.
pdf.
[90] Working with Altera Devices and Place and Route Tools, Application Note,
AP0113
(v
1.3),
December
12,
2005,
available:
http://www.altium.com/files/Altiumdesigner6/LearningGuides/AP0113Working
with Altera Devices and Place and Route Tools. PDF.
131
References
[91] Altium Altium Designer Winter 09, Technical Review, A guide to the major
Designer
6,
available:
http://www.altium.com/files/PDF/AltiumDesignerWinter09TechnicalReview.pdf
June
15,
2005.
available:
http://www.altium.com/files/learningguides/TR0103%20Constraint%20File%2
0Reference.pdf.
[93] Altera
Cyclone
III
Design
Guidelines,
AN-466-1.2,
available:
Overview,
available:
http://www.altera.com/literature/an/an466.pdf.
[94] Altera
Cyclone
III
FPGA
Family
http://www.altera.com/products/devices/cyclone3/overview/cy3-overview.html.
[95] THDB-ADA, High-Speed A/D and D/A Development Kit, available:
http://www.cizgitagem.org/resource/vfiles/tagem/pms_product/4/thdb_ada_userguide_v1.0.pdf.
[96] Altera Cyclone III FPGA Starter Board Reference Manual, available:
http://www.de-brauwer.be/wastebasket/fpga/ref_manual.pdf.
[97] FPGA Generic Library Guide, Core Reference, CR0118 (v2.204) July 17,
2008,available:http://www.altium.com/files/Altiumdesigner6/LearningGuides/C
R0118%20FPGA%20Generic%20Library%20Guide.PDF.
[98] Wikipedia,
Black
Mountain
Tower,
Canberra,
Australia,
available:
http://upload.wikimedia.org/wikipedia/commons/b/b0/Black_Mountain_and_Bl
ack_Mountain_Tower.jpg.
[99] Wikipedia,
Constellation
Diagram,
available:
http://en.wikipedia.org/wiki/Constellation_diagram.
132
Appendix A
A constraint file is also used to store design and implementation specific constraints
for the implementation. This file defines the design constraints (specifying a port to be
a clock) and pin allocations of the FPGA. The following sections will show some of
the schematics, VHDL files and a snapshot of the constraint file used in our BPSK
modem design.
134
//Logicblock.vhd
Library IEEE;
Use IEEE.Std_Logic_1164.all;
use IEEE.std_logic_unsigned.all;
entity Logicblock is port
(
Loggic1
: out
std_logic;
Loggic01
: out
std_logic;
Loggic02
: out
std_logic
);
end entity;
------------------------------------------------------------------------------------------------------------------------------------------------------------architecture Structure of Logicblock is
begin
135
A small portion of the VHDL code test.vhd used to implement this part is shown
below.
//test.vhd
Wait until clk'event and clk='1';
if(check = 1) then
if (counter1 = "1001011101011110") then
--0.775 ms packet transmission
time
-- if(counter1 = "0011000011010100")
then
--20bits
counter1:="0000000000000001"; check := 0;
else
counter1 := (counter1 +'1');
--increment counter.
flag<='1' ;
end if;
else
if (counter2 = "00000000000000001001011101011110") then
ms delay between packet transmission
counter2 := "00000000000000000000000000000001";
-- for 0.775
136
Figure A.5: VHDL Code to Define Packet Transmission and Pause Time
137
138
//LUT.vhd
shared variable Counter: std_logic_vector(5 downto 0) := "000000";
begin
process
begin
Wait until CLK'event and CLK='0';
edge of the clock
END Process;
end architecture;
// LUT_Carrier.vhd
begin
process (address)
begin
case address is
when "000000"
when "000001"
when "000010"
when "000011"
when "000100"
=>
=>
=>
=>
=>
data
data
data
data
data
<=
<=
<=
<=
<=
my_rom(0);
my_rom(1);
my_rom(2);
my_rom(3);
my_rom(4);
139
The VHDL block Logicblock3.vhd implements a counter which counts through the
LUT implemented in a VHDL file Cacode_62.vhd, which stores the binary data bits.
The output H of the VHDL logic block Cacode_62.vhd is the binary data bits. These
two VHDL blocks are implemented using the same logic of LUT.vhd and
LUT_Carrier.vhd as shown in Figure A.8.
140
141
142
143
This
block
is
implemented
in
separate
schematic
144
145
146
147
148
149
Figure A.21 shows the potion of the schematic which expands 1-bit output of the
comparator to 16-bit using Altium built in AND gate AND2S. The AND operation
is carried out between the output A and the second input of the comparator as shown
in Figure A.20 is The 16-bit output of the expansion block is obtained at the output of
this figure labelled D.
150
Figure A.22 shows the subtraction operation of the NCO to subtract 0/64 from the
current step size calculated from the MUX labelled V. This operation is carried out
using Altium built in 16 bit Adder-Subtractor ADSU16B. The upper 8-bits of the
current step size are taken using Altium wired lines and lower 8-bits (fractional part)
are compared using Altium built in 16-bit comparator COMP16B with 0.5. The
output of this comparator is sent to an adder ADD16B to get the current index
labelled I of the LUT.
151
Figure A.23 shows the implementation of Sine and Cos LUTs in Altium using VHDL
codes Sin_table.vhd and Cos_table.vhd respectively. A small portion of the VHDL
code to implement SIN LUT is shown in Figure A.25. The COS LUT was
implemented using the same logic as the SIN LUT.
152
//Sin_table.vhd
architecture behavioral of ROM3 is
type mem is array ( 1 to 64) of std_logic_vector(15 downto 0);
constant my_Rom : mem := (
1 =>"0000000000000000",
2 =>"0000001100100011",
3 =>"0000011000111110",
4 =>"0000100101001010",
5 =>"0000110000111111",
6 =>"0000111100010101",
7 =>"0001000111000111",
153
154
155
Figure A.26: Schematic of the Hard Limiter and the Third Multiplier: Part 1
Figure A.27: Schematic of the Hard Limiter and the Third Multiplier: Part 2
The third part of the schematic is shown in Figure A.28. Here Q is the output of lower
LPF 1.
156
Figure A.28: Schematic of the Hard Limiter and the Third Multiplier: Part 3
157
Appendix B
Published Papers
----------------------------------------------------------------------------B.1 A High Data-Rate, Software-Defined Underwater
Acoustic Modem
Title: A High Data-Rate, Software-Defined Underwater Acoustic Modem
Conference Name: MTS/IEEE Oceans, Seattle, September, 2010.
Abstract: Most underwater acoustic modems offer only low data rates. This is largely
because they operate at low frequency, which limits the channel bandwidth available,
and hence the symbol rate. The low frequency acoustic channel suffers from
substantial multipath and doppler effects, which constrain the signal quality at the
receiver. As a result only 1 or 2 bits per symbol are achieved, with the effective data
rate further reduced by error control coding. High frequency acoustic signals are
heavily attenuated in water, severely constraining the range of high frequency links.
High frequency signals however offer substantially greater signal bandwidth, and
probably improved channel quality which guides our design choice of a high
frequency acoustic modem for underwater communication. Contemporary Field
Programmable Gate Arrays (FPGAs) can provide good system functionality at low
cost and with the flexibility to perform rapid testing and development of
communication algorithms. They may also be competitive in production systems. In
this paper we describe current progress in development of a high frequency, high
data-rate modem which is implemented entirely in FPGA. This differs from most
existing modems which are based on DSP processors. Being software defined, the
159
160