Low Power Ad-Hoc Network for Ground to Air Communication by Joshua J. Stults Submitted to the Department of Electrical Engineering and Computer Science in Partial Fulfillment of the Requirements for the Degrees of Bachelor of Science in Electrical Engineering and Computer Science and Master of Engineering in Electrical Engineering and Computer Science at the Massachusetts Institute of Technology May 22, 2000 Copyright 2000 Joshua J. Stults. All rights reserved. The author hereby grants to M.I.T. permission to reproduce and distribute publicly paper and electronic copies of this thesis and to grant others the right to do so. Author art ent of Electrical Engineering and Computer Science May 17, 2000 Certified by Michael A. Deaett Carles Stark Draper Laboratory Thesis Supervisor Certified by Steven G. Finn The~supervisor Accepted by Arthur C. Smith Chairman, Department Committee on Graduate Theses MASSACHUSETTS INSTITUTE OF TECHNOLOGY ENG JUL 2 7 2000 LIBRARIES Low Power Ad-Hoc Network for Ground to Air Communication by Joshua J. Stults Submitted to the Department of Electrical Engineering and Computer Science on May 22, 2000 in Partial Fulfillment of the Requirements for the Degrees of Bachelor of Science in Electrical Engineering and Computer Science and Master of Engineering in Electrical Engineering and Computer Science at the Massachusetts Institute of Technology Abstract In this thesis we consider the design of a multi-subscriber, ground-to-air communications system for guidance of unmanned aircraft or aerial users. The system consists of a central controlling node called a Grid Coordinating Station (GCS) and a multihop, wireless network of low power data relay stations, termed Grid Reference Stations (GRSs). In addition to relaying destination update messages, GRSs generate and transmit Global Position System (GPS) differential correction messages to the aircraft. Communications is conducted at 10 Ghz using CDMA and a slotted half-duplex approach. A significant feature of our system is the Ad-hoc deployment and setup of the relay network. The throughput, latency, message reliability and user capacity of the proposed system are evaluated by analysis and simulation, to demonstrate that acceptable performance is achievable. Faculty Thesis Supervisor: Steven G. Finn Draper Thesis Supervisor: Michael A. Deaett 2 ACKNOWLDEDGMENT May 22, 2000 This Thesis was prepared at The Charles Stark Draper Laboratory, Inc., under project 15085 - Distributed Platform Data Link Network Design, contract number 00-0-2012. Publication of this thesis does no constitute approval by Draper or the sponsoring agency of the findings or conclusions contained herein. It is published for the exchange and stimulation of ideas. ( I' 3 A ' (au ~r's signature) [This Page Intentionally Left Blank] 4 Acknowledgements I would like to thank the Charles Stark Draper Laboratory for sponsoring my research on this project. I would like to thank my advisor at Draper, Michael Deaett, for his help and guidance during the project. I would also like to thank Professor Steven Finn, my MIT faculty thesis advisor for his assistance on this project. 5 Table Of Contents Table Of Contents ............................................................................................................................ 6 List of Figures ................................................................................................................................... 8 List of Tables .................................................................................................................................... 9 1 Introduction .............................................................................................................................. 10 1.1 Past W ork ........................................................................................................................ 11 Problem Description ......................................................................................................... 12 1.2 Thesis Outline and Approach ........................................................................................... 13 1.3 2 Prelim inary Analysis ................................................................................................................ 16 *- 16 *"*'*"*... ..... ****"****** .... .................. :**-- ...... 2.1 Link Issues ... Traffic Analysis ................................................................................................................. 17 2.2 2.3 A Simple Deployed System Example .............................................................................. 19 2.4 TDMA Solution and Performance .................................................................................... 19 GRS MAC ................................................................................................................................ 23 3 Multi-Access & Scheduling .............................................................................................. 23 3.1 3.2 CDMA ............................................................................................................................... 25 3.3 Scheduling ....................................................................................................................... 27 4 LINK ........................................................................................................................................ 30 4.1 Data Rates ....................................................................................................................... 30 4.2 Coding for Processing Gain ............................................................................................. 32 Modulation ........................................................................................................................ 35 4.3 Link Budgets .................................................................................................................... 35 4.4 4.5 Processing Gain ............................................................................................................... 37 4.6 Time Slot Size .................................................................................................................. 43 5 Routing .................................................................................................................................... 45 Transm ission Priority ....................................................................................................... 48 5.1 6 Additional Topics ..................................................................................................................... 51 6.1 Network Setup ................................................................................................................. 51 6.2 Propagation ...................................................................................................................... 51 7 Analysis ................................................................................................................................... 54 8 Sim ulation ................................................................................................................................ 61 8.1 High Uplink Load .............................................................................................................. 62 8.2 Uplink Capacity Limit ....................................................................................................... 63 8.3 Medium System Load ...................................................................................................... 64 8.4 High System Load ............................................................................................................ 66 9 Conclusion ............................................................................................................................... 70 10 Appendix 1 - OpNet ................................................................................................................. 72 10. 1 N etwo rk Leve I.................................................................................................................. 72 10.1.1 Overview ................................................................................................................... 72 10.1.2 Options ..................................................................................................................... 73 10.2 GCS ................................................................................................................................. 75 10.2.1 Overview ................................................................................................................... 76 10.2.2 Packet Generator ...................................................................................................... 77 10.2.3 Router Object ............................................................................................................ 78 10.2.4 MAC Object .............................................................................................................. 81 10.2.5 Radio Objects ........................................................................................................... 82 10.2.6 Receive Module ........................................................................................................ 82 10.3 GRS ................................................................................................................................. 83 10.3.1 Overview ................................................................................................................... 83 10.3.2 Generator Object ...................................................................................................... 83 10.3.3 Router Object ............................................................................................................ 84 10.3.4 GRS MAC Object ..................... I................................................................................ 85 10.3.5 Radio Objects ........................................................................................................... 87 6 10.3.6 User .......................................................................................................................... 88 88 11 *1*1* 1*1 11, ..... *.... -110.4 Matlab ........... :*,** ... 11 Appendix 2 - Terrain ................................................................................................................ 90 12 References .............................................................................................................................. 93 7 List of Figures Figure Figure Figure Figure Figure Figure Figure Figure Figure Figure Figure Figure Figure Figure Figure Figure Figure Figure Figure Figure Figure Figure Figure Figure Figure Figure 19 1: Sample scenario containing one GCS and four GRS's. ............................................. 2: Power efficiency is greater when multiple hops are made........................................ 24 3: Scheduling Example .................................................................................................. 27 4: Example of an orthogonal and biorthogonal codeword set........................................ 33 5: Signal to Interference ratio seen at a GRS 1/d 2 (a) and 1/d 4 (b) path loss.................39 6: Signal to Interference ratio seen at a user................................................................ 41 7: Illustration of possible modified antenna patterns to reduce user S/I ratio.................42 8: Routing example using deterministic (a) and probabilistic (b) distributed algorithms.... 46 9: Capacity limit as a function of the amount of user and routing data...........................56 10: Network view of scenario in which 80 users are all serviced by one GRS ............... 62 11: Packet latency versus simulation time for 80 users ................................................ 62 12: Final queue size after 10 seconds versus number of users. .................................... 64 13: Packet latency versus simulation time for 240 users............................................... 65 14: Network level view of simulation with 240 users..................................................... 64 15: Packet latency versus simulation time for 480 users............................................... 67 16: Number of messages lost as a function of Khz of spectrum used............................68 17: OpNet screen capture of the network level view of the 240 user simulation............72 18: Rule for determining the next node of a message ................................................... 74 19: OpNet screen capture of the GCS node model ....................................................... 75 20: OpNet screen capture of the packet generator settings .......................................... 77 21: OpNet screen capture of the GCS router process model........................................ 79 22: OpNet screen capture of the GRS node model. ...................................................... 83 23: OpNet screen capture of the GRS router process model FSM. ............................... 84 24:OpNet screen capture of the GRS MAC process model FSM...................................86 25: OpNet screen capture of User node model .............................................................. 88 26: Terrain generated by gforge and rendered by POV-RAY........................................ 90 8 List of Tables Table Table Table Table Table Table Table Table 1: 2: 3: 4: 5: 6: 7: 8: Link budget for a 25 km line of sight link from a GRS to a user.................................. Maximum bit rate with Gr = 3dB and various distances .............................................. Message types and characteristics .............................................................................. Link budgets for uplink and crosslink radio links.......................................................... Estimated transmitter utilization percentages. ............................................................. Simulated transmitter utilization percentages. ............................................................. Transmitter utilizations for a high load simulation ....................................................... Number of lost messages for different amounts of spectral usage............................. 9 16 17 18 36 60 66 68 69 1 Introduction The aim of this project is to design a data link network for a real-time unmanned aircraft navigation system. The system consists of aerial users, often referred to as simply users, Grid Reference Stations (GRSs), and a central control node called the Grid Coordinating Station (GCS). The aerial users employ onboard Global Positioning System (GPS) receivers and other guidance equipment to guide them to a destination. To obtain a more accurate position location, the user GPS receiver receives GPS differential corrections from the nearest GRS. The user also wants to receive updated destination coordinates, enabling destination changes during flight. For the aerial user to accurately reach its destination, these coordinates and the GPS differential corrections must be reliably transmitted to the user in a timely fashion. The coordinates are transmitted to the user through a network of GRSs. The data is transmitted through the network until it reaches the GRS nearest to the aerial user. The GRS knows its position accurately and generates GPS differential corrections for the area it services. The destination update data and the differential corrections are then transmitted up to the user. Each GRS may communicate with many users and there may be many GRS's in the system. In the system, there is one GCS which manages the network and interfaces with external communications systems to obtain updated destination coordinates. The GCS is in communication with each of the GRS's to query their status and to provide them with updated destination coordinates. There are many systems that use communications networks for navigational updates, but this system differs in how the network is deployed. The GRS's will be 10 arranged in a grid extending from the location of the departure sites out to and covering the area containing the destination sites. This creates an area in which the aerial users, can precisely find their positions, and receive data updates (such as destination coordinates). The terrain may be unknown and, as the grid may be located in or near an undeveloped area, we may have many restrictions when designing and laying out the grid. The GRSs may be disposable and battery powered, and may even be simply dropped from airplanes rather than actually being accurately placed. This places tight constraints on the transmission power of the devices. This distribution of transmitting devices into a grid is similar to a cell phone network, except that the careful planning involved in placing a cell tower is not possible in this environment and wireline links between the cells are not available. The network should be designed to maximize the reliability of data delivery while at the same time allowing communication with many users simultaneously. The guidance accuracy also depends on the rate and latency at which the data is received. This accuracy should also be optimized as much as possible given the constraints. The data rate of the communications link is somewhat limited due to the physical characteristics of the users and the low power output of the GRS's. The routing and multi-access methods should be efficient to meet these requirements. 1.1 Past Work Since this application is similar to the design of a cellular phone network there is applicable prior work in the area of cellular communications system design. This can be used in estimating the capacity of the system, in terms of the number of users that it can 11 support [2, 10]. Past work can be helpful in deciding how the spectrum can be reused. Research in the area of packet radio is also applicable to both the GRS to GRS communications and in communications with the users, which we now define as crosslink and uplink communications respectively [4,12]. Past work also exists in the area of Ad-hoc networks [3,5,12]. Most of this applies to networks in which the nodes are mobile and therefore the connections may be changing frequently. The links between the GRSs aren't very dynamic, but some of the ad-hoc network concepts are still applicable. As the system will be deployed in a variety of environments we must take into account the effects of terrain and foliage. A great deal of material is available in both of these areas [1,6]. This material is useful in designing the system to function well in a variety of environments. It may also be used to model real world environments for simulating the system once it has been designed. 1.2 Problem Description The focus of the project is to design a method of efficiently transmitting destination updates from the GCS to aerial users through the GRS network. The GRSs are arranged to provide full coverage to a large area so that users can be guided to destinations anywhere in the area. Since the individual components have limited transmission range, multi-hop is used to transmit data to a distant GRS, which then relays the update data and sends the differential corrections to the users. The network must be able to reliably transmit the destination updates from the GCS to a user and GPS differential updates from a GRS to a large number users. Basic system performance 12 requirements have already been laid out1 . We now define uplink capacity as the maximum number of users supported simultaneously within the coverage area of a single GRS, and the system capacity as the maximum number of users supported simultaneously by the entire network. Our uplink and system capacity goals are 90 and 200 respectively. We would like to support a grid size of 150x50 km and transmit data to users with altitudes as high as 17km. The user flight times vary between one and a half and two and a half minutes. 1.3 Thesis Outline and Approach We begin with a preliminary analysis, in section 2, to get a general idea of what the issues are. Here we analyze the message sizes and frequencies to obtain a basic model of the network traffic. We also analyze the communication links and determine realistic bit rates. A simple system approach is then proposed and various design choices are explored. We get some initial capacity measurements, which are below our goals. We then proceed by investigating how to improve on the simple approach. In section 3 we look at the organization of the network in general. We discuss using multi-hop to transmit data to a distant GRS. We discuss using Code Division Multiple Access CDMA (CDMA) to allow multiple GRSs to transmit simultaneously and share the communications channel. The GRSs are half-duplex so scheduling is required to ensure that a node is not transmitting while it should be receiving data. Here we introduce our method of scheduling and discuss the size of the transmission time slots. 1These specifications are from personal conversations with Draper employees and unpublished Draper internal documents 13 In section 4 we develop improvements to the link level portion of the system. We begin by calculating desired bit rates to reach our target capacity. We then propose improvements to reach these bit rates and recalculate the link budgets. Finally we analyze the how much extra spectrum will be required to implement CDMA. In section 5 we focus on routing in the GRS network. We propose various methods, discuss advantages and disadvantages, and choose an algorithm to be used for the later analysis and simulation. This section also contains a discussion of how to prioritize messages to reduce latency. In section 6 we discuss two areas which are not specifically addressed in our final design. The first is the setup and initialization of the network once it is deployed. The network topology needs to be determined by the GCS and various parameters need to be set before our design can operate. Second we discuss the possibility that we are not able to model the propagation characteristics between the GRSs as free space loss. We discuss the impact of this on the design and propose some possible ways overcome this obstacle. Next, in sections 7 and 8, we combine the elements we have proposed in the earlier sections and we analyze and simulate our design. Using several different scenarios we analytically estimate the capacity of the system and the latency that can be expected. We follow this with measurements of system capacity and performance through simulation. This data is compared with the predicted data from the analysis section. Finally, in section 9, we summarize our results and discuss areas for future work. 14 Appendix A provides a more detailed description of the simulation design. Appendix B describes some additional research about vegetation and terrain and their effects on communications. 15 Preliminary Analysis 2 Before we can design a good network we need to get a rough idea of the requirements. This includes an estimate of how much data will need to be sent across the network and how many users should be supported. Prior work2 places some restrictions on the capabilities of the receiver and transmitter hardware. It also defines basic message sizes and their frequencies for both the differential corrections and for the destination updates. This data is outlined below and a simple system approach is presented to illustrate the system concept. After an initial analysis, we see that our simple approach does not meet our goals, and we begin making improvements, to arrive at a design that better meets our requirements. 2.1 Link Issues One of the major restrictions in the system is the rate at which data can be transmitted to the users. The GRSs are battery powered devices with limited transmission power (<10W), and the users have very low gain antennas at the desired frequency of 10Ghz. Table 1 shows an approximate link budget for a 25km line-of-sight Variable EIRP Gr EdNo kTj L, Lo Margin R Description Effective power output of the transmitter Gain of the receiver antenna Bit energy to noise ratio Thermal noise factor Space loss Noise Loss EIRP + Gr - Eb/No - Margin - kT 0 - Ls - Lo Value 1OdbW -10dB 11dB -204dBW/Hz 140.4 dB (f = 10GHz, d =25 km) 4dB 3dB 45.6 dB = 36.3 Kbps Table 1: Link budget for a 25 km line of sight link from a GRS to a user. Based on results in [9]. 2 Unpublished Draper Internal Document 16 link between a GRS and an aerial user, based on formulas developed in [9]. To simplify our discussion, we call the link between the GRS and a user the uplink, and the links between GRSs and between the GCS and GRSs crosslinks. As can be seen from the table, the maximum data rate for the 25 km uplink is 36.3 Kbps. As will be seen in the following sections, this data rate does not satisfy our capacity goals, given the traffic requirements. Because the GRSs and GCS do not have . . .25 this same limitation on their antenna gains as the user receiver, we can transmit data between them Distance km Bit Rate 720 Kbps 54km 154Kbps 34 km 391 Kbps Table 2: bit rate with G, = 3dB and higher rate. Table 2 shows the maximum bit various distances. (other parameters equal to table 1) rates for various distances with G, = 3dB (this is assuming line-of-site communications with l/d2 propagation loss). 2.2 Traffic Analysis The message traffic between the GRS and the GCS and messages sent from the GRS to the users have been defined 3. This data is summarized in Table 3. Most messages are sent either once every 10 seconds or once every second, depending on the proximity of the user to the destination. As the user nears the destination, the updates must occur more rapidly. Some documentation also seems to indicate that increases in accuracy could be obtained by further increasing this rate 3 . For the current analysis we assume that updates occur once per second throughout the user's flight. 3 Unpublished Draper Internal Document 17 Message Type GRS Destination Update GCS Status GRS Control GRS Status1 GRS Status2 GPS Differential Corrections User Destination Update Frequency 1Hz Size (bits) 296/destination Link GCS to GRS 124 115 95/destination 29 1440 GCS GCS GRS GRS GRS GRS GRS GCS GCS User 1Hz 1Hz 1Hz 1Hz 1Hz 267/destination GRS to User 1Hz to to to to to Table 3: Message types and characteristics. Below we calculate the message traffic that must occur between the GCS and one GRS, and between that GRS and any users it is servicing. These calculations are therefore per GRS and to find the total traffic in the system one would need to sum up the traffic required for each GRS. Communication between the GRS and the GCS occurs according to the following rates: n = the number of users being serviced simultaneously by the GRS. Total data sent from GCS to GRS per second: RCR = 296n + 124 + 115 bits (2.1) Total data sent from GRS to GCS per second. RRC = 29 + 95n bits (2.2) Total data sent between GRS and GCS (both directions). RTOT = RCR + RRC = 268 + 391n bits (2.3) Total data sent by GRS to the users it is currently servicing: RRU = 1440 + 267n bits (2.4) 18 2.3 A Simple Deployed System Example A simple deployment is a front of about 100 km in width with the destinations in range of the aerial users (25-30 km). To form this grid, four GRSs are arranged in a line. For this example the GRS are 34 km apart completely covering a rectangular area of 34 x 136 km. The distance between the GCS and GRS2 and GRS3 is therefore about 24 km, and the distance between GCS and GRS 1 and GRS4 is 54 km. GRSI Radius of Communication (25km) ... ........ RS4 GRS3 RS .. .. GCS A Departure Site Figure 1: Sample scenario containing one GCS and four GRS's spread across a 100 km front. 2.4 TDMA Solution and Performance A simple solution is to use Time Division Multiple Access (TDMA) across the whole network, so that no GCS or GRS node interferes with another node's transmission. All GCS, GRS and user nodes transmit and receive at the rate of 36.3 Kbps, calculated in section 2.2. Based on the data rate and message traffic requirements, section 2.2, we can calculate an upper bound for the system and uplink capacities. In this section we assume that the users are evenly distributed across the network. We calculate the uplink capacity by considering only the traffic sent to and sent by GRS 1. Since this traffic associated with GRS 1 is 1/4 of the total traffic sent in the network, it can use 9.075 Kbps of bandwidth. 19 The bound on uplink capacity is then calculated by summing equation 2.3 and 2.4, setting this equal to 9.075Kbps and solving for n. The uplink capacity is 11 and the system capacity is 44. nu = (9075 - 1440 - 268)/(391 + 267) = 11 users/GRS ns = 44 users total where nu = uplink capacity ns= system capacity The limit on the bit rate is primarily due to the low gain (-10dB) antenna on the user receiver. Since the GCS and GRS antennas have a +3dB gain, the crosslink bit rate can be increased to 154Kbps, assuming that the GCS communicates directly with each GRS and the maximum distance from GCS to GRS is 54km (Table 2). One way to increase system capacity is to use a data rate of 154Kbps for the crosslinks, continuing to use 36.3Kbps for the uplink. We now calculate the uplink and system capacities with this modification. We will analyze this by calculating the fraction of a unit of time that must be spent transmitting at the slower bit rate (2.5), and then the fraction of time that must be spent transmitting at the higher rate (2.6), for n users. The sum of these two fractions is then set to 1, and the equation is solved for n to calculate the uplink capacity. The system capacity is four times the uplink capacity. F1 = Fraction of channel utilization to transmit to users F1- (# of GRS's).(Bit Rate per GRS) _ 4(1440+267on) 36300 (Channel Bit Rate) (2.5) F2 = Fraction of channel utilization for GCS-GRS communication F2 Rate per GRS) _ _ (# of GRS's).(Bit (Channel Bit Rate) F1 +F2= 1 4(1440+267en) 154,00 (2.6) (2.7) 20 Now solving for n: nu ~21 users/GRS n_ 84 users total By using separate uplink and crosslink data rates we have nearly doubled the uplink and system capacities. A further improvement is to use multi-hop to communicate between distant GRS's and the GCS. For example, if GRS 1 and GRS4 do not communicate directly with the GCS, then the maximum distance between stations is 34 km (between GRS 1 and GRS2 or GRS3 and GRS 4), and the maximum bit rate for this range would be 391 Kbps (Table 2). Repeating the calculations above, F1 is the same as (2.5), and F2 is as follows: F2 = (#of GRS's).(Bit Rate per GRS) _ 6(268+391*n) 391,000 (Channel Bit Rate) (2.8) We note in (2.8) # of GRSs parameter is has been modified to reflect the effective number of GRSs. Here the number # of GRS's is six, because all data to and from GRS 1 and GRS4 must be transmitted over the channel twice. F1 +F2= 1 Now solving for n: nu =23 users/GRS n, ~92 users total The capacity has again increased slightly, but latency will increase due to the retransmission of messages destined for GRS 1 and GRS4. 21 Note that capacities are still well below our goals of n, = 90 and n, = 200. In the sections that follow we will further develop the design to increase the uplink and system capacities. 22 3 GRS MAC The Medium Access Control, or MAC, portion of the system determines how the GRS and GCS transmitters share the channel. For this analysis, we assume the GRSs are arranged in a regular square grid and there are no line of sight issues. In other words, if GRSs are in range of each other, communication is possible. These constraints allow some simplification of the problem, which facilitate greater efficiency. Some of these constraints may have to be relaxed when line-of-site issues are considered, but the current analysis will be made under these assumptions. 3.1 Multi-Access & Scheduling The initial analysis assumed that all stations shared the same channel, but it also assumed perfectly efficient use of the channel. This is not usually the case. Many different medium access protocols exist to allow multiple users to share a communications channel. The simple Aloha protocol is probably the most primitive [7]. Each station simply transmits when it has information to transmit. If a collision occurs the transmission is repeated. The maximum channel efficiency for this protocol is only about 18%. For our application, this is unacceptable. Slotted aloha improves on the aloha protocol by requiring that transmission begin only in set time slots. This avoids collisions in the middle of packet transmission and increases the maximum channel utilization to about 37%. This can still be improved upon greatly. Ethernet, which is commonly used in local area networks, is a carrier sensing protocol. Simply stated, this protocol listens to see if the channel is free, and if so, it 23 begins transmission. 10Mbps wireline ethernet can obtain an efficiency of 85% or more. IEEE 802.11 is an Ethernet type protocol for wireless LANs that has recently gained popularity [8]. 802.11 is a complete system specification which is much more than simply a medium access control protocol. Its link level specifications have elements to overcome multi-path and fading which are important factors in wireless networks, and especially indoor networks. This protocol could be a viable option for our system, but there is one major difference between these systems and ours. In our system the GRSs'main purpose is to provide communications to the user. Therefore they are located to provide communications (as long as they are within 25 km of each other). In the other types of LANs, the nodes are placed according to other requirements (where a desk or piece of machinery is located). Many nodes of P =4 the LAN may directly communicate this is not needed. The ideal layout of our system would have the nearest the neighbors of each node exactly at P =1 P =1 with many other nodes. In our system Node 1 Node 2 Node 3 Figure 2: Power efficiency is greater when multiple hops are made. limit of the node's transmission radius. Transmitting farther than that is a waste of power. For instance, suppose there are three nodes in a line and they are each spaced 1 unit of distance apart as in Figure 2. Also assume that it takes one unit of power to transmit a unit of data across one unit of distance. Now if node 1 transmits 1 unit of data to node 2 and then node 2 transmits that unit of data to node 3, 2 units of power have 24 been used. Now if node 1 transmits this unit of data directly to node 3, covering 2 units of distance, 22 = 4 units of power will be used. It is therefore advantageous, from a power standpoint, for a node to communicate only with its closest neighbors. In our system, a node only communicates with a limited set of its closest neighbors and packets are routed to the desired node, using multi-hop. 3.2 CDMA CDMA is used as a multi-access protocol, to avoid interference from adjacent nodes with which communication is not desired. In a CDMA system, multiple users transmit simultaneously, all using the same frequency band, but using separate codes [9]. A receiver can then detect the signal associated with a specific code, amplify it with respect to noise and the other signals, and receive the data. TDMA and Frequency Division Multiple Access (FDMA) schemes, other options that were considered, provide completely orthogonal channels between users. This means that separate frequencies or time slots would be required for each communication link in the system. If TDMA were used, each node would be allowed to transmit for only a short percentage of the time. As our bit rate is limited, the amount of bandwidth available to each node would quickly decrease as nodes were added to the system. In an FDMA system, each node would transmit in a separate region of the frequency spectrum. Frequency reuse, allowing multiple nodes to transmit on the same frequency if they are located sufficiently far apart, could also be employed to conserve spectrum. One advantage of CDMA is that it allows us to continuously adjust our spectrum usage while designing the system. Since many nodes can transmit 25 simultaneously a node will receive interference in addition to the desired signal. As will be discussed in section 4.5, the receiver can more accurately receive the desired signal when the spectral usage is increased. In FDMA, increasing the number of unique frequencies decreases interference and also allows the receiver to more accurately receive the desire signal, but the number of frequencies can obviously only be adjusted by integer amounts, making CDMA more attractive. Since CDMA nodes all transmit using the same frequency band, all nodes have identical hardware except for the spreading code being used. FDMA requires that different frequency bands be used to communicate with different users, increasing the transmitter and receiver complexity. In addition, CDMA inherently protects against jamming and interception of the signals. This feature could be critical for certain applications. We propose that each GRS and GCS have its own unique code used for transmitting, both to the users and to neighboring GRSs. It is capable of receiving from its four nearest neighbors on four distinct codes. This scheme is different from most CDMA schemes in which each user has its own spreading code. There are several reasons for choosing this type of scheme. The first reason is to efficiently broadcast the GPS differential corrections. All users within a GRS's radius of communication must receive the same GPS differential corrections each second. As less bits are actually transmitted, it is much more power efficient to simply transmit using one code that can be received by all of the users rather than simultaneously transmitting the information using many different codes. This scheme also permits extending the system to allow users to simultaneously receive from multiple GRSs. The user would simply have multiple receiver channels that receive using different spreading codes. Multiple GRSs could 26 transmit redundant messages to a user for added reliability, especially in an environment with irregular terrain. 3.3 Scheduling The GRSs are half-duplex (they cannot simultaneously transmit and receive), because they transmit and receive in the same frequency band and the radiated power during transmission would drown out any signals being received. Scheduling is needed to ensure that a GRS does not transmit while it should be receiving data. Using a square grid and allowing a GRS to transmit to, at most, its nearest four neighbors we can meet our scheduling requirements with only two slots. The stations are simply divided into two groups. While group one is transmitting, group two is receiving and vice-versa. This is illustrated in Figure 3. During a GRS's transmission slot, it can transmit either uplink or crosslink data, but not both simultaneously. In [12], scheduling is further explored for environments in which there is no order to the node locations, and nodes can communicate with more than four of their neighbors. For this work, we consider only our two slot scheduling algorithm. There are two important trade-offs in Slot 1 Slot 2 choosing the time slot length. Since messages make multiple hops through the network, the message latency will increase as we increase Figure 3: During time slot 1 the dark nodes transmit while the white nodes receive and during time slot 2 the white nodes transmit while the dark nodes receive. 27 the slot length. As we make the slot length smaller, the ratio of overhead to data becomes larger. The messages would also have to be split up and transmitted in pieces if the slot is made to short to transmit an entire message. In choosing the slot size, we need to balance these two effects. As will be discussed later, there are various methods of routing the data in our network, requiring different amounts of overhead to be placed in the packet header. For now we assume 16-bits of routing overhead, and 4 bits overhead for priority information. The priority field is used to ensure that the most important packets reach their destination. I will also assume that 4 bits of data, used to tell the GRS the approximate altitude of the user, is added to the GRS Destination Update message. The system message types and sizes are listed in Table 3. The GRS Destination Message is 296 bits, and is the largest crosslink message. Adding the 20 bits of routing overhead and the additional 4 bits of data, its total size is 320 bits. For reasons that will be discussed in section 4, we set the crosslink bit rate to 3.2 times the uplink bit rate. We now analyze how efficiently the transmission time can be utilized for various time slot lengths. One obvious choice for the time slot size is the size required to transmit one full 320 bit GRS Destination Update packet. This is smallest possible slot size without fragmenting any of the crosslink messages. The GRS Status 1 messages are 95 bits each, so three messages plus the routing overhead, could be contained in one time slot, using 305 bits. This requires that the GRS collect the GRS Status 1 messages and form them into packets of three messages each. If this is not done then each packet will have a size 28 of 115bits. This will reduce efficiency, but may be simpler than attempting to decide how long to wait for additional messages to form a full three-message packet. Since the uplink data rate is lower than the crosslink data rate, messages sent in a single slot on a crosslink will not fit into a single uplink time slot. Therefore, they must be fragmented and transmitted in multiple time slots. The User Destination Update message will require 2.67 uplink slots and the GPS Differential Corrections message will require 14.4 uplink time slots. Sending a User Destination Update message leaves 11% of the available transmission time unused, and sending a GPS Differential Corrections message leaves 4% of the available transmission time unused, yielding efficiencies of 89% and 96% respectively. One possible improvement is to more efficiently pack the User Destination Update messages by transmitting several consecutively. Three 267 bit GRS to user messages would fit into 8.01 time slots. This is close enough that added efficiency would be gained by slightly increasing the slot size. The slot size is now set to allow transmission of 321 bits per slot at the crosslink data rate. Now 7.98 time slots are required to transmit three User Destination Update messages, for an efficiency of 99.8%. The 320 bit GRS Destination Update messages are now 99.7% efficient, and the 305 bit messages containing the 3 GRS Status 1 messages are 95% efficient. The above scheme significantly improves efficiency, and could be used when the arrival rate of user data is sufficiently high. 29 4 Link In This section we explore options for improving the performance over the initial design and begin to arrive at a design to be used in the later analysis and simulation. 4.1 Data Rates Based on the traffic requirements from section 2.2 and desired uplink and system capacity from section 1.2, we can calculate necessary bit rates for the uplinks and crosslinks. As stated in section 3.3 and further discussed in section 4.2, the crosslink rate is 3.2 times the uplink rate. We use an analysis similar to equations (2.5)-(2.7) to calculate the bit rate required to obtain an upper bound of 90 users for the uplink capacity. Equation (4.1) says that the percentage of time required to transmit uplink traffic plus the percentage of time required to transmit crosslink traffic equals the percentage of time that the GRS is allowed to transmit. The percentage of time the GRS is allowed to transmit is always 50% for our scheduling scheme. Equation (4.2) solves (4.1) for the uplink rate, and (4.3) is filled in with values from Table 3. Finally (4.4) gives us the required uplink rate to support an uplink capacity of 90 users. (users) -(msgu ) + (diff ) rated (users) -(msg,) + (status) rater - tx% (4.1) ratec=3.2-rateu rateu = (users) -(msgu)+(diff) 1 (users) -(msgc)+(status) tx% 3.2 rateu = (90) -(267) + (1440) + (90) -(95)+ (29)}1 1 3.2 ).5 30 (4.2) (4.3) rateu =56,301 bps (4.4) rateu = uplink bit rate rate, = crosslink bit rate users = number of users msgu = the size of the User Destination Update message msgc= the size of the GRS Status] message status = the size of the GRS Status2 message diff= the size of the GPS Differential Correctionsmessage tx% = the percentage of time that the node is transmitting(50% for our scheduling scheme) Since overhead and inefficiency will reduce uplink capacity, we set the uplink bit rate to 60Kbps. The crosslink bit rate is then 192 Kbps. We define the crosslink capacity as the number of users whose data can be routed through a GRS, to then be uplinked by other GRSs. The maximum crosslink capacity is attainable when the GRS is not uplinking any data. We calculate an upper bound on this capacity in (4.5) by setting RTOT (2.3) equal to one half of the crosslink bit rate, because the GRS only transmits 50% of the time due to the scheduling scheme. 192,000 users - 2 268 391 (4.5) - 244 We now calculate the upper bound on the number of users whose data can be transmitted into the network by the GCS. We calculate this bound in (4.6) by setting RCR (2.1) equal to one half of the crosslink bit rate. 192,000 -239 users = 2 296 = 323 (4.6) The upper bound on the system capacity depends the uplink capacity limit and the bounds in (4.5) and (4.6), depending on the configuration of the grid and the distribution of the users within the grid. If there are sufficient GRSs, on the order of 4 to 5, and the users are evenly distributed in the grid, the uplink capacity will not limit the system 31 capacity. In this case the system capacity will be limited by the GRS or GCS crosslink capacity. If the GCS communicates only with a single GRS, then the upper bound on the system capacity is the upper bound on the GRS crosslink capacity. If the GCS communicates with more than one GRS, the system capacity bound will be the GCS crosslink capacity bound. In this case, the system capacity could be improved by allowing the GCS to simultaneously communicate with all of its neighbors by transmitting with different spreading codes. The upper bound on the system capacity would then depend on the number of neighbors, and the upper bound on the GRS crosslink capacity. Specifically, if there were n neighbors, the upper bound on system capacity would be n times the upper bound on the GRS crosslink capacity. For the rest of this work we assume that the GCS transmits to only one GRS at a time. Based on our assumption that the crosslink data rate is 3.2 time the uplink data rate and our system capacity goals, we have chosen an uplink data rate of 60 Kbps and a crosslink data rate of 192 Kbps. We continue by designing the link and determining how much power and bandwidth is be required to transmit at these rates. 4.2 Coding for Processing Gain From analysis in section 2.4 and section 4.1 we see that a crosslink data rate of 3- 4 times the uplink rate will satisfy our system capacity goals. In this section we discuss using this data rate difference to conserve power in the uplink. We also discuss why we have chosen the crosslink to uplink data rate ratio to be specifically 3.2. Both uplink and crosslink communications occur in the same frequency band, but assuming that both use the same modulation scheme, the uplink will use less spectrum than the crosslink. The 32 extra spectrum used by the crosslink would be unused during uplink transmission. By increasing the spectrum used by the uplink, we can take advantage of this unused spectrum to reduce the power required for uplink transmissions. Using bi-orthogonal codes is one simple way of expanding the uplink spectrum usage. Biorthogonal codes map groups of bits into longer sequences of bits, or code words [9]. Several bits may be sent across the link to communicate one bit of useful data. We define an actual bit of message data to be an information bit. Using bi-orthogonal codes, the channel bit rate is increased, but the information bit rate remains the same. The energy per bit of information that must be seen at the receiver to obtain a given information bit error rate is reduced. This Data Set reduction in required received energy is 00 0 0 0 0 = 0 1 0 1 0 0 1 1 0 referred to as coding gain. Bi-orthogonal Orthogonal codewords 1 0 1 1 codes are very simple, reducing the need for complicated coding and decoding logic. L0 Data Set Bi-Orthogonal codes are most easily explained by first defining orthoganal codes. Orthogonal codes function by mapping k bits into 2k orthogonal code words. An example 1 1 oj Biorthogonal codewords 0 0 0 0 0 1 0000 0 1 0 1 0 1 0 0 0 1 1 0 1 1 0 0 1 1 1 0 0 1 0 1 1 0 1 1 1 0 1 1 0 0 1 11 1 0 0 B= 1 1 11 0 1_ of an orthoganol codeword set is shown in figure Figure 4. Biorthogonal codes are Figure 4: Example of an orthogonal codeword set for k = 2 and a biorthogonal codeword set for k = 3. formed from a set of orthogonal code words and their inverses. For instance, to form a set of biorthogonal codes to represent 3 bits of data (k=3), 8 code words are needed. These code words are the 4 orthogonal code 33 words representing 2 bits of data, and their 4 inverses. This is illustrated in Figure 4. A more detailed explanation of orthogonal codes, bi-orthogonal codes and coding in general is provided in [9]. The bandwidth required when using biorthogonal codes is 2k/2k times the bandwidth required without coding, for equal information bit rates [9]. Coding with k = 5, increases the bandwidth by 3.2 times over the uncoded case and gives a coding gain of about 3.5 dB [9], reducing the uplink transmission power. Using bi-orthogonal coding to expand the uplink spectrum usage, also simplifies the hardware implementation. Although the uplink has an information bit rate of 60 Kbps, both the uplink and crosslink have data rates of 192 Kbps. The same receiver hardware can be used for both uplink and crosslink communications. The only difference is that the uplink data is coded before being transmitted. An alternative to using bi-orthogonal coding is to use different spreading codes for uplink and crosslink. As discussed in section 4.5 the gain from spreading codes is equal to the bandwidth expansion, so an expansion of 3.2 yield a gain of 5dB. This is more efficient than the 3.5dB from bi-orthogonal codes, but would require more complicated hardware. We consider both approaches in our work, but choose the more power efficient, separate spreading code method in the simulation. In spite of using this alternative approach we continue using a crosslink information rate 3.2 times the uplink information rate. 34 4.3 Modulation For simplicity, we only consider BPSK modulation in this work. BPSK is commonly used and would be less difficult to implement in hardware than more complex schemes. It is worth nothing, that there are many types of modulation that could have been considered. There are various modulation techniques which provide more resistance to errors due to doppler shift and others which help overcome problems associated with multi-path. For example, OFDM, the modulation technique used by the IEEE 802.11 standard is designed to be resistant to multipath and fading [8]. Other modulation techniques may also be more resistant to fading caused by tress and vegetation [14]. 4.4 Link Budgets The link budget calculations in our initial analysis showed that we were limited to 36.3 Kbps for uplink communication, but as discussed in section 4.1, we need 60Kbps to meet our capacity goals. We can improve the uplink bit rate, by modifying the user's receivers, the GRS's, and the layout of the system. Through options discussed in section 4.2 we can increase the uplink bit rate by expanding its spectrum use. As seen in section 4.2 the bandwidth expansion using biorthogonal coding gives us a coding gain of 3.5dB, and using separate spreading codes gives a gain of 5dB. The -10dB gain of the user's receive antenna at 10Ghz is one of the major reasons that the bit rate is low. If the user receiver's antenna gain, Gr. were greater, the bit rate could be much higher. It is not clear whether this is a possible modification to the aerial 35 users's communications system. For now we assume that the antenna remains the way it is. The space loss can also be reduced if the maximum distance between a GRS and a user were decreased. This could be accomplished by laying out the GRS's in a more tightly spaced grid. For instance, if the distance between the GRSs were 17 km, the maximum distance between a GRS and a user would be 19km. We now recalculate the power required by rearranging the link budget equation in Table 1, to solve for power, and adding our coding/processing gain parameter, G. A more detailed discussion of link budget calculation is provided in [9]. As seen in Table 4, only 2.136 Watts of power is required for GRS to user communications and only about Link Budget Gr EJNO Gc = Coding/Processing Crosslink Uplink (using biorthogonal Uplink (using seperate coding) spreading codes) 3 11 0 -10 11 5 -10 11 3.5 gain -204 -204 -204 19000 19000 17000 Ls 138.015072 138.015072 137.0489784 LO 4 4 4 3 60000 2.136281366 3 60000 1.512371387 3 192000 0.614043405 KTO distance (m) Margin R = Rate (Kbps) Pt (Watts) (Pt= R - Gr - G+ EN + Margin + kT + L, + Lo - G) in dB Table 4: Link budgets for uplink and crosslink radio links. .614 Watts are required to transmit between GRS's. Table 5 also lists the power that would be required if we used different codes and therefore gain 5dB due to the bandwidth expansion. The required output power is much lower than our original limit of 1OW, but as the nodes are battery powered this additional power reduction is advantageous. 36 4.5 Processing Gain The crosslink communications run at a data rate of 192Kbps using uncoded BPSK. Since BPSK uses about 1Hz/bit/s spectrum usage is 192KHz [9]. The uplink communications use the same amount of spectrum, but at a lower information bit rate. The CDMA spreading codes transmit at a much higher rate than the data stream and therefore use significantly more spectrum. When the code is applied to the data stream the total spectral usage is essentially the spectrum required by the spreading code. The processinggain is the amount of power gain that the coding scheme gives to the desired signal, against noise and signals using other codes. The processing gain for direct sequence spread spectrum is equal to the code rate divided by the data rate, or equivalently the spectrum used by the spreading code divided by the spectrum required for the data sequence [9]. For instance, if a processing gain of 20dB were needed, then 19.2Mhz of bandwidth would be required for our 192Kbps link. The amount of processing gain required depends on the signal to interference ratios seen at nodes in the network and by the users in the air. There are several factors that affect this ratio, including the path loss characteristics, the grid size and the space between GRSs in the grid. An analysis of signal to interference is carried out below using various values for these parameters, first in the ground network and then for the air, to determine a realistic figure for the required processing gain. To determine how much processing gain is required, it is necessary to determine how interference from adjacent nodes affects the Eb/N 0 at the receiver. We start with equation (4.7) from [9] and then treat the interference as noise in equation (4.8). 37 Eb/No = required energy per bit to noise spectral density BW = the amount of bandwidth or spectrum used R = the bit rate S = the signal power N = the noise power No BW S R N Eb BWS Eb I0 N -- = Eb 10 =EBWS - R I +10 Eb R I (4.8) BW S +- =R Eb R N BW S N BW S Lb (4.9) S 1 R No N0 +10 (4.10) I BW S Eb For our system E/N >>I (about 11dB), S/I is < E S b No +10 If G E = 1 andfor BPSK modulation R/BW is ]. (4.11) 1 =the E/N 0 required by the receive, the requiredprocessing gain, Gp, is: b S (4.12) (the above analysis is based on equationsfrom [9]) The ground propagation characteristics have a significant effect on signal to interference ratio seen at the GRSs and by the users. As discussed in the literature [20], the loss rate for radio waves propagating across the ground can be proportional to between l/d2 and 1/d6. If the space loss for the crosslink were proportional to 1/d 4 versus l/d2 there would be much less interference from adjacent GRSs, and the processing gain 38 and therefore spectrum usage could be reduced. However, since the path loss for the uplink is proportional to 1/d 2 , the interference received by a user is greater than that seen by a GRS on the ground. This is further analyzed later. Another factor affecting the 2 S/I for 1/d -4.5 amount of processing gain required is the loss -5 -5.5 number of GRS's in the grid. This -6 - becomes less important as the path loss -6.5 ;Z-7.5 exponent increases, but is still a factor. -8 -8.5 We also need to determine whether the -9 0 50 100 150 200 250 Number of nodes (square grid) crosslink or the uplink places the (a) constraint on the processing gain. For S/I for 1/d 4 loss instance, if crosslinks only requires 15dB -4.8 of processing gain, but the uplinks require -4.9 m -5 20dB, then 20dB of processing gain S~ -5.1 would be required (although the C -5.2 -5.3 crosslinks would then require less -5.4 -5.5 transmit power). Ideally the required 0 50 100 150 200 250 Number of nodes (square grid) (b) processing gain for each would be the same so that neither portion of the system has Figure 5: Signal to Interference ratio at the4 2 center of a square grid for 1/d (a) and 1/d (b) path loss. significantly more gain than necessary. First we analyze the spectrum required for the crosslinks, using various parameters. The first thing that needs to be determined is the worst case signal to interference ratio. This is done by assuming that all nodes in the slot are transmitting 39 simultaneously and that the desired receiving node is at the center of the grid. The results will depends both on the size of the grid and the propagation model used. A matlab function was written to calculate these values and the resulting graphs are shown in Figure 5. The matlab script implements the following equation: S I 1 d'd n 1 1"i0d di = distance between center of the gridand the i'h interfering node. dd . distance to the desired transmittingnode n =the number of interferingnodes in the grid 1 path loss exponent (all nodes transmit with equal power) (4.13) Comparing the two graphs, It can be seen that the crosslink signal to interference for a given grid size is lower for the 1/d 4 path loss. However, higher path loss would require the nodes to be closer together, requiring more nodes to cover the same area. Further study is necessary to determine exactly what the propagation characteristics of Xband (10 Ghz) is in various environments. It can be seen that although increasing the number of nodes increases the interference, interference increases at a lower and lower rate as the number of nodes increases. To illustrate how to choose the processing gain, we present an analysis assuming a maximum grid size of 15x15 GRSs. As illustrated in the graph this yields a worst case S/I of -9.06dB for l/d 2 loss and -5.44dB for l/d 4 loss. An Eb/NO of approximately 11dB is required to receive uncoded BPSK at a bit error rate of 10-6 . Therefore, from (4.12), 20.06dB of processing gain would be needed in the l/d 2 case and 16.44dB in the 1/d case. This is a worst case figure because it is unlikely that all nodes would be transmitting simultaneously. 40 4 S/ at shell (alt: 17 15x1 5 grid) S/I at shell (alt: 17 spacing: 17) -1 -2 ' -2 -4 -3 -6 -4 -8 -5 -10 -6 -12 -7 -14 80 50 100 150 200 250 -16 35 30 25 20 15 10 5 Distance between nodes (b) Number of nodes (square grid) (a) Figure 6: Signal to Interference ratio seen at a user for grid spacing of 17km (a) and for a 15x15 square grid (b). Now we use the same approach to analyze the signal to interference seen by an aerial user in flight. We calculate the interference seen at a user directly above the center GRS in a square grid. Again using matlab scripts we create graphs (Figure 6) that show the signal to interference for different numbers of GRSs and grid spacings. The equation used for this analysis is as follows: 1 a2 S di = distance between the center of the grid and the i'h interfering node. a n I i (s .~ 2 2 a2 + s *di 2. n = altitude of user = spacing between the GRSs = number of interfering nodes in the grid (4.14) (all nodes transmit with equal power) Figure 6a assumes a user altitude of 17km and a spacing of 17km between the GRS's for a grid with various numbers of GRSs. Figure 6b assumes an altitude of 17km and 225 GRSs in a square grid, with various distances for the spacing between GRSs. These results will change if the altitude or grid spacing is changed. If the grid spacing is 34km and the altitude is 17km, as in our initial example, the S/I for 225 nodes would be only -2.14dB, compared with -7.64dB for a spacing of 17km. When terrain is 41 considered, it may be necessary to reduce the distance between the GRSs due to obstacles and increased path loss. Figure 6b illustrates that as the grid size is reduced the interference increases. This could be compensated for by increasing the processing gain, but then the spectral usage would become large. One solution to compensate for this increase in interference is to use separate antennas for the uplink and crosslink A transmissions. For uplink transmissions, 19Km an antenna with a higher gain in the 50Km vertical direction could be used to allow Isotropic Antennas more closely spaced GRS's without A 19Km increasing the interference. This is illustrated in Figure 7. This would allow 50Km the same uplink signal to interference values obtained with a spacing of 17km Modified Antennas Figure 7: Illustration of possible modified antenna patterns to reduce user S/I ratio. in a much more closely spaced grid. One of these methods for reducing uplink interference will probably be necessary when terrain issues are considered and when we consider the fact that the crosslink path loss may be greater than 1/d 2 . Another solution would be to place the GRS to GRS communications in separate frequency bands. This would increase the spectral usage, but would allow the GRSs to be placed arbitrarily close without increasing the interference seen by the users. An additional factor to consider is the probability that a user will actually be 17km up in the air. The system must be designed for this, but it is a worst case which 42 may not happen often. As the altitude increases the S/I ratio will go down, but the message could be duplicated or a lower bit rate could be used to obtain the same message error rate. For the rest of the work, we assume isotropic antennas and that both uplink and crosslink communication is done in the same frequency band. 4.6 Time Slot Size Using 192Kbps for the crosslink and 60Kbps uplink (section 4.1), the time required to transmit 321 bits is 321/192,000 = 1672 usec. This is the time required to transmit the data, but to ensure that a GRS does not begin transmitting before it has finished receiving data, the time slot size must be the transmission time plus the maximum crosslink propagation delay. As a worst case figure we choose 30km, (17km for the maximum propagation distance plus some margin to account for synchronization inaccuracies), as the maximum transmission distance, yielding a propagation delay of: td 30,000 , 3-10' 8.3-10-5 s=100ps The minimum slot size would therefore be 1772 microseconds. The optimal size will depend on what scheme is chosen for grouping packets. As outlined in section 3.3, an optimal slot size is a function of how messages are grouped together into packets. The first option is to set the time slot size to the minimum required to transmit a User Destination Update message. As stated in section 3.3, using this scheme, 2.67 slots would be required to transmit the update to the user. Since we are not doing any grouping of messages, the 95 bit messages are transmitted as single packets. 43 With the routing data included, their total size will be 115 bits. This would require 115/320=.359 time slots to transmit one packet. From these initial calculations there is one obvious improvement. The slot size could be set so that in 3 time slots, 1 User Destination Update message and 1 GRS Status 1 message can be transmitted. This helps because any time that GRS User Update message is received, a User Update Message and a GRS Status 1 message are transmitted. Therefore, this ordering will occur with out any extra work. If both message can be transmitted in 3 time slots rather than four, the efficiency will be increased. This new slot size is calculated as follows: 267 = 60,000 115 3 192,000 1683k Adding the 100 microseconds per slot, that we use to account for propagation delay yields a time slot size of: ts = 1,783ps This last scheme is that which is used in the rest of this design and in the simulation. 44 5 Routing Routing in this system is an interesting problem. Because the GCS is the central controlling node and has knowledge of the status of traffic in the network, it can make many routing decisions. This makes source routing attractive. On the other hand only each node will immediately know the actual status of a link (whether it exists and how good it is). It is often not desirable to put the complete route in the packet header as this can become large if there were many hops. One possible distributed method would be to route based on location. Since the grid is regular, a location field could be placed in the header of the packet and each node would simply forward the packet on in the correct direction. One method is to send the packet in the direction in which the greatest distance remains. We will refer to this as the deterministicpath approach. A 16-bit field in the header would support a grid as large as 256 by 256 GRS's. One drawback of the deterministic path approach might be congestion. Because the route to a particular GRS would be constant, the nodes along the route could become congested and other adjacent GRSs may not be used. One option to alleviate this congestion is to vary the path randomly. We refer to this as the random path approach. The following example illustrates the concept. A GRS has a packet that is destined for the node at location (5,2) and it's location is (1,1). Using the deterministic path approach, it would transmit the packet to the GRS at (2,1), (3,1), (4,1), (5,1) and finally (5,2). Now, to vary the path, the GRS could use a probability function to choose between transmitting to (2,1) and (1,2). The probabilities could simply each be would yield a shortest path, and this would create greater path diversity. 45 if both paths -~ ~.r -- ~ -- We compare the deterministic and (6) 33% (7) (6 (7,8) (6 ld 33% 17% (6,7) (6) (6,7,8) (6,7) (6) (6,7) 100% random path (6,7,8) approaches with an 100% 17% -66% (6 8% (6,7) 42% (6) (6,7) (6,7,8) 100% 33% example. The example consists (a) (b) Figure 8: Routing example using deterministic (a) and probabilistic (b) distributed algorithms. of one GCS and 8 GRSs. It is illustrated in Figure 8. The example assumes that the GCS is sending out enough traffic to use all of a GRS's transmission slots. Nodes 6, 7 and 8 are the recipients of this traffic and they all receive it in equal amounts. This example considers only the traffic transmitted from the GCS to the GRSs. The numbers in parenthesis indicate the destination GRSs of the traffic flowing over a given link, and the percentages indicate what percentage of a node's transmission time is being used for routing traffic. Figure 8a uses the deterministic routing approach so a message at 5, destined for 6 would be routed to node 4. If both the horizontal and vertical distances are equal, the message is routed vertically. Figure 8b uses the random path approach. If there are two options which will give a shortest path, the routing algorithm will randomly choose between the two using probability of 1/2 for each choice. As illustrated in the figure, the traffic is much more evenly distributed in the second example. There would still be room to improve, and more optimally choose the path by using source routing, but this algorithm is a good compromise because only the location of the destination GRS, rather than the 46 whole route, is stored in the header. It offers greater path diversity while still using a distributed, shortest path scheme. Another option is to base these probabilities on a congestion measurement received from the neighbors. This may increase the routing overhead, but may yield better congestion control. This could also aid in dealing with lost links. If a link goes down the probability of transmitting over that link would simply be set to 0. There is very minimal routing required in uplinking to a user, when terrain is not considered. When a packet reaches its destination the GRS simply transmits it up to the user. When terrain is considered, the GRS that is physically closest to the user may not be able to communicate with it. One option is for the user message to propagate out to a number of GRSs surrounding the actual destination. Those GRSs could all transmit to the user, providing added redundancy and reducing the probability of a missed message. A factor in transmission to the aerial users is the user altitude. The system must be able to support users as high as 17km, but the majority of the time, they will probably not be that high. Power can be conserved by only transmitting with enough power to reach the user. This could be accomplished by including an approximate user altitude field in the GRS Destination Update message, and using this value to set the GRS's uplink transmission power. The actual design and simulation implementation do not include the broadcast option and do not consider the altitude of a user in deciding the power levels. The simulation uses the deterministic routing approach outlined above, and illustrated in figure 8a. 47 For this design a distributed routing algorithm has been chosen, but it is worth mentioning and contrasting source routing with our chosen design. Source routing definitely has its advantages. Since the GCS knows what users are where and what communication is required, it can very accurately determine how congested particular links are. The GCS could efficiently distribute the traffic across all available links in the network. This is not possible in our distributed routing scheme because an individual GRS does not have detailed information about the congestion in other parts of the network. One of the disadvantages of such a scheme is that it requires the GCS to know which links are enabled and whether a particular GRS has failed. The route is determined before the packet leaves whereas the more distributed method simply finds a path through the network based on available links. This reduces the overhead traffic needed to keep the GCS updated. Another disadvantage of source routing is that as the network size increases, the route sizes will increase, increasing the message header size. If the routes become too large this becomes inefficient. Source routing is attractive for reducing congestion and would be worth considering in future work, especially given that the GCS has detailed knowledge of the network activity. 5.1 Transmission Priority In addition to deciding the route for each message, the GRS also may have to decide based on some type of priority scheme when and in what order messages should be transmitted. For instance, to improve timeliness of destination update information a packet that has to make 100 hops through the network probably should be placed in the beginning of the queue, ahead of messages that may only need to make 5 hops before 48 reaching their destination. There must also be a method of deciding how to allocate the available transmission time between data destined for other GRS's and data to be forwarded to users. The problem of deciding which messages should be forwarded first could be difficult and there could be many possible solutions with varying degrees of complexity. The first issue is ensuring that messages that must travel a long distance are forwarded promptly, and the second issue is ensuring that messages with lower priorities don't sit in queues indefinitely. One method is to place a priority field in the outgoing messages of the GCS. This priority, along with a measure of how long a message had been in a GRS's queue would be used to determine the order in which the messages are transmitted. As a message spends more time in a GRS queue, the GRS will try harder to place it ahead of incoming traffic. One problem with this method is that it does not capture any knowledge of how much time a message has spent in the queues of previous GRSs on the route. One way of overcoming this and still keeping the message header size small would be to modify the priority set by the GCS, as the packet progresses through its path. As a packet spends more time in a GRS's queue its priority field is increased. The time that it has spent waiting can then be considered in making priority decisions later in the route. This seems like a reasonable approach, but the current 4 bits that have been allocated for message priority may be insufficient. 8 bits might be a more realistic size. Another issue is how to decide between transmitting uplink data and transmitting crosslink data. A simple approach would be to use separate queues for uplink and crosslink data, and to transmit from whichever queue contains the most messages. One 49 problem here is that it takes a long time to transmit uplink messages. If there is crosslink data waiting in the queue and a packet containing three User Destination Update messages is uplinked, the GRS will have to wait 8 transmission slots or a total of 16 time slots before transmitting the crosslink data. If this happened at many of the nodes during a message's path to its destination, the latency could very quickly become unacceptable. The priority field could also be used for this decision. If an uplink message has a high priority (because it is very important, or has spent a lot of time reaching its destination, or both) it will be transmitted before crosslink messages. If a crosslink message has a higher priority, it will be transmitted first. These priority schemes are optimizations that could improve the performance, especially in high loads or networks with many nodes, but they will not be considered in the initial design. The simulation will therefore not use the priority field in routing. The only priority decisions that are made in the current design are whether to send uplink or crosslink data based on the relative sizes of the respective queues. Data is taken first from the queue with the most messages. 50 6 6.1 Additional Topics Network Setup The methods that have been chosen for scheduling and routing require the GCS and the GRSs to know certain information such as their assigned time slot and the topology of the network. This information will need to be obtained, during a setup and initialization stage, before the network can operate properly. This is done manually in the simulation and analysis to follow, but in a real world implementation this will need to be handled automatically. There are various methods of accomplishing this, but here we outline one possible implementation. The first problem is scheduling. Our scheduling scheme cannot function if the nodes have not been assigned their proper time slots. One way to accomplish this is to simply use an Aloha type medium access protocol at system startup. This is inefficient, but that isn't really important at this stage. Using this type of basic mode of operation the GCS can query all accessible GRSs for their positions. Once it has built a map of the network it can assign each node its time slot and integer coordinate within the grid. Once this information has been correctly set, a message can be broadcast instructing all nodes to change to the normal mode of operation and the network will function as described in the rest of this document. 6.2 Propagation The current design, analysis and simulation has been done assuming a path loss proportional to 1/d 2 . If the GRSs are resting on the ground the conditions will probably 51 not be this good. The loss may be proportional to something closer to l/d 4 [20]. Although this design has been done assuming l/d 2 loss, we discuss the effects that 1/d 4 loss would have on the system, and we suggest some solutions. This higher path loss rate will greatly reduce the maximum distance between GRSs. With simply isotropic antennas the maximum range is only a few hundred meters, with other parameters being the same as our current design. Using multiple antenna beams for both the receiver and transmitters, each with a gain of around 20dB, crosslink transmissions of over a kilometer may be achieved. As was discussed in the section on processing gain, the signal to interference ratio seen by the users increases as the density of the GRS grid increases. Two solutions, using directional antennas or separate frequency bands for GRS to user and inter-GRS communications, were suggested. Using multiple antenna beams may eliminate the need to use either of these solution, although using multiple antenna beams is similar to the first solution. If multiple antenna beams were used, then the interference seen by users from crosslink communication would be low because very little power would be radiated up into the air. If 1km spacing were achievable it would still require a very large number of GRSs. The 50km x 150km grid that was used for the analysis and simulation would require a grid of GRSs covering a 34km x 120km area. This would require over 4000 GRSs if the area were to be completely covered. This could be greatly reduced by removing GRSs and thinning out the grid to provide communications to certain GRS which are needed for providing user communication. If the GRSs from our original grid were used for user communication, and rather than filling in the whole grid with a 1km spacing, GRSs were simply added along the links between these existing GRSs, links 52 could be established to all neighbors using a total of 592 + 23 GRSs. This is because 16 GRS would be required to provide communications between 2 GRSs 17km apart and in our 8x3 grid there are 37 links between GRS. This number is still very high, but may be acceptable. This would greatly increase the number of hops required for a message to reach its destination, but the existing design uses very small transmission time slots to minimize the delay due to multi-hop, possibly allowing the latency to stay within acceptable limits. The latency due to 5 hops in our current system is l8ms. If there were GRSs every 1km we would have 17 times the number of hops yielding a latency of 308ms which may still be acceptable. The actual acceptable latency values will be dependent on the specific requirements of the user guidance hardware. Another solution to the 1/d 4 crosslink propagation, is to use a system that does not have to transmit across the ground. There are many possibilities. UAV's could be used in place of GRS to provide communications. The GRS could simply send out the differential corrections and a network of UAV's in the air could provide communications to the users. This would give us line of site communications with 1/d 2 propagation loss. Maintaining the UAV's is certainly more difficult than simple ground stations, but the number of units required would be greatly reduced because of the much more efficient communications. 53 7 Analysis Now that the various elements of the system have been discussed, we analyze the performance of an example system. We assume l/d 2 loss for the crosslink communications. The system consists of 24 nodes (23 GRS's and 1 GCS) arranged in an 8 x 3 grid. The spacing between nodes is 17km, covering an area in excess of 150 x 50 km. Using the matlab scripts that implement (4.13) and (4.14), the signal to interference figures for crosslink and uplink are -6.2dB and -3.2dB respectively, assuming all nodes are transmitting during their transmission slots. From (4.12) the processing gain required, Gp, is: Gp= 11dB + 6.2dB = 17.2dB This figure, multiplied by the 192Khz required for BPSK modulation of a 192Kbps link yields a spectrum usage of about 10Mhz. Since all nodes within a time slot could be transmitting simultaneously, the system capacity is simply limited by the bit rates of the links. Based on the estimates of packet sizes calculated above, we now estimate the capacity of the system. Using equation 4.1, the maximum uplink capacity is calculated as follows: 115 192,000 267 60,000 (29+20) 192,000 1440 60,000 1 2 n = the number of users The left half of the equation is the sum of the number of seconds needed to transmit each type of data which equals 1/2. (because transmission only occurs half of the time) = n = 94 users 54 This assumes perfect efficiency, but our current design will be somewhat less than this. For now, the 29 bit GRS Status2 messages will be ignored and we will focus only on the user updates, return messages and differential corrections. As discussed in section 4.6, 3 time slots are required to transmit one GRS Destination Update message and one GRS Status 1 message, and 15 slots are required to transmit a GPS Differential Corrections. If the time slot size is 1784 microseconds, as calculated in section 4.6, there will be 560 time slots per second, half of which are transmission slots. Subtracting the slots used by differential corrections leaves 265 slots for update and status data. The total number of users is therefore: 265 n = -- ~ 88 users 3 Now we calculate the network traffic by adding the routing data to (2.1), (2.2) and (2.3). In (7.4) we calculate the new upper bound on the crosslink capacity of a GRS. RCR = 320n + (124+20) + (115+20) bps (7.1) (7.2) RRC = (29+20) + 115n bps Total traffic between GRS and GCS: RTOT= 3 2 8 users- + 4 3 5 n bps (7.3) 192,000 /2 - 328 = 220 435 (7.4) The capacity in (7.4) assumes perfectly efficient use of the availabe transmission time. If efficient methods are used to pack the data into time slots this number will 55 remain virtually unchanged, but without these methods, the crosslink capacity will decrease. Our current implementation simply transmits packets as they are received. A worst case figure for this g implementation can be obtained by assuming that o each message requires a full Uplink Loa time slot even if it is only a 115 bit return message. If the . .. ... . ue rs) Figure 9: Capacity limit as a function of the amount of user and routing data. time slot size is 1784 microseconds, there will be 560 time slots per second. 280 of these are transmission slots and 15 of these are used for differential corrections. This leaves 265 slots available for data. Since there is one outgoing and 1 return message per user, the upper bound on the GRS crosslink capacity is 133 users. These upper bounds on the uplink and crosslink capacities assume that the GRS is either transmitting only crosslink or only uplink data. In the real system the GRSs will be transmitting both uplink and crosslink data and the limit at which a GRSs capacity will be reached is a function of both. Figure 9 shows where the capacity limit occurs, assuming 1 message per time slot. It shows the uplink capacity limit as a function of the crosslink load in number of users. 56 The GCS only transmits GRS Destination Update messages so its capacity is higher. The GCS can transmit data into the network to handle a certain maximum number of users, calculated as follows: users - 192,000 /2 = 300 320 We now estimate the expected error rates in sending a message from GCS to user. BPSK modulation, at our chosen power levels, should gives a bit error rate of 10-6, or 1 bit error every 106 bits of data. Considering only the 320 bit User Destination Update messages, there would be on bad packet for every 106/320= 3125 sent. The probability of successful transmission is (1-1/3125). This number is only for a single transmission and will go down as multiple hops are made. For instance, 5 hops would yield a probability of successful packet reception of (1-1/3125)5=.9984 which translates to 1 bad packet per 625 packets sent. This is the probability of correct reception at the destination GRS. The packet error rate for uplink of a User Destination Update message transmission will be 1 per 10 6/267=3745. Considering both the crosslink and uplink transmissions, the probability of correct reception at the user is (1-1/3125)'(1-1/3745)=.9981, corresponding to 1 bad packet per 536 sent. This error rate seems high, but for now we continue the analysis in this manner. Performance will probably improve in the simulation results because the assumption that all nodes are always transmitting is a worst case assumption. This will probably not occur, causing less interference in the network and decreasing the message error rate. The interference analysis was done assuming equal power output for uplink and crosslink transmissions so another likely improvement is due to the fact, that although the crosslinks only need to transmit at .6W, they will probably transmit with 57 same power as the uplink. This will result in a higher signal to noise ratio and lower error rate for crosslink communications. The latency in the system will be dependent primarily on the time slot size and the number of hops required until the traffic levels begin to increase. As the traffic increases the latency will begin to be affected by queuing delays. If the time slot size is 1800 microseconds then the delay to make 4 hops and then transmit up to the user would be about 5*3.6ms =18ms. The service time, or time required for a GRS to re-send a received message, for a message is essentially constant in this system. The once per second differential correction and user messages take several slots to transmit, but all other messages will be sent out in only one time slot. The service time is therefore essentially constant. The arrival rate is also essentially constant for a certain number of users being serviced. The updates simply occur once per second per user. Since the arrival rate and the service time are constant and deterministic the queue will only grow if messages are arriving faster than they can be sent. If not, the queue size will be essentially zero in steady state. We can easily calculate this limit and if we can stay below it, the message latency will be dependent almost entirely on the time slot size and the number of hops taken. We now analyze two specific scenarios, to gain an idea of the actual performance characteristics of the system. The first scenario consists of many users leaving from one location. This scenario is illustrated in Figure 10. In this scenario, all users begin flight and begin communications at the same time. This is an unlikely scenario, but it is an easy way to test the expected performance of the system with one heavily loaded GRS, and to test the GRS uplink capacity. This scenario will consist of 80 users all leaving 58 from one point and reaching their destinations, which are all contained within a second GRS's coverage area. As calculated above, the absolute limit should be about 88 users so this scenario should function without problems. The minimum latency will be 1 Sms and will occur when a message is immediately transmitted at each node that it is routed through. The maximum latency will occur when a message is en route to its destination during a differential correction broadcast. A differential correction broadcast takes 15 time slots or about 54ms. The maximum latency should be the sum of this value and latency due to the multihop. This sum is about 72ms. The second scenario will consist of users leaving from several different locations across the grid. In this scenario there is a total of 240 users, but they are distributed across the network. The scenario is illustrated below in Figure 13. The users leave according to a poisson process. In this example, the inter-arrival rate is 1 user per second. With this inter-arrival rate and the user flight times varying between about one and a half and two and a half minutes, the maximum number of users in the system at a given time is about 120. The system maintains a steady state user count of between 100 and 120 for about a minute and a half until the last user begins flight. This scenario allows us to do a more realistic performance analysis and later simulation. The GCS can send data for up to 300 users at a time, so there should be no bottleneck leaving the GRS. It appears that the largest bottleneck will occur at the nodes immediately ahead of the GCS: Nodes 11, 12, 13 and 14 in the figure above. These nodes have to uplink data to users, but they also have to route data to several GRSs that are farther out in the network. An estimate of the loading of each GRS is made by assuming that the 120 active users are evenly divided between the 12 GRSs that are 59 servicing the users. This means that each GRS is sending data to 10 users in addition to whatever routing it may be doing. Using the deterministic routing scheme that is implemented in the simulation, we can calculate the crosslink traffic and determine the utilization of each node. The results of this analysis are listed in Table 5. The first column lists the percentage of the Actual TX Node Tx Slot GRS 3 Utilization 19% Utilization9% GRS 5 34% 19% GRS 6 GRS 10 GRS 11 GRS 12 GRS 14 4% 15% 30% 42% 30% 4% 13% 23% 39% 23% 11% 11% GRS 15 GRS 18 11% 11% GRS 19 15% 15% 19% 19% GRS 20 GRS 21 15% 15% 16% 19% GRS 22 GRS 23 11% 11% 45% 45% GCS Table 5: Estimated transmitter utilization percentages. (unlisted nodes are unused and have 5% utilization due to differential corrections) time slots used and the second column estimates the actual percentage of transmission time spent transmitting. The estimate in the second column considers the fact that when a smaller return message is transmitted in a time slot, transmission is only occurring for about 1/3 of the total time slot period. This analysis shows that this scenario should be well within the capabilities of the system. The capacity should begin to be reached when there are about twice as many users in the system. 60 8 Simulation The simulations serve two purposes. First, they verifies that the design as proposed could function. It verifies that the capacities proposed are possible, given the latency requirements, and that the proposed error rates can be met. It serves to back up the estimated results from the above section. Second, it can be used to optimize the design. Many worst case assumptions were used in designing the system. Real world use may cause less interference than was used in previous calculations and may allow reduction of spectrum usage and/or power while still meeting the desired performance and capacity. The simulation is done using OpNet and Matlab. Matlab scripts are used to generate the user trajectories that are then used by OpNet during the actual simulation run. The Matlab scripts generate the trajectories by first generating random destinations within a user defined rectangular area. A user supplied list of take-off site locations is then used to create a flight path from the nearest site to the destination. The flight paths were created according the specifications of a potential draper internal application for this system. The trajectories are then read by OpNet when the simulation is started. The simulation uses the same basic scenario that was outlined in the section 7, an 8 x 3 grid of GRSs. Several different types of statistics including latency and transmitter utilization are recorded during simulation. Simulations were done with various parameters to verify the results of the above analysis and to discover further optimizations. 61 - 8.1 -, ir -'----~ High Uplink Load Figure 10: Network view of scenario in which 80 users are all serviced by one GRS. The first simulation contains o ....... ,.'". ... .----. ... 80 users all departing from one location and travelling across two ............................. . .......... GRSs. All users leave at the same......... time. Although this is not realistic (a) behavior, it is an easy way to determine the performance when a certain number of users are being serviced simultaneously. This is what we are concerned with in this simulation. We want to determine performance and verify A .. ... (b) Figure 11: Packet latency versus time for total simulation time (a) and an 8 second view of the same data (b). functionality near the capacity limit of a single GRS. Figure 10 shows the network level OpNet view of this scenario. The lines near nodes 15 and 23 are the user flight paths. 62 Figure 11 is a graph of the packet latency versus time. This is a wide view of the results as the time axis includes the whole simulation time of over two and a half minutes. This graph shows us that the latency is almost constantly varying between about .018 seconds and about .07 seconds between simulation time 0 and a simulation time of about 60 seconds and then slightly increases after 60 seconds. As discussed in the analysis section above, the .018 second latency occurs when a message is routed directly to the destination and then increases to about .07 seconds when a message has to wait in a GRS queue for differential corrections to be transmitted. This is further illustrated in Figure 11b. The slight increase at about 60s occurs when the users transition from node 15's cell into node 22's cell. There is a slight increase in latency due to the additional hop. Finally, the thinning of data near the end of the simulation time is due to the fact that the users have different flight times and as the simulation nears its end there are fewer users in the air. There are therefore fewer data points per time on the graph. In the simulation, the GRS sends out 9,469 packets and the same number are successfully received by the users. There were therefore no bit errors over the simulation time. This high reliability is probably due to the fact that there is almost no activity in other parts of the network and therefore very little interference. 8.2 Uplink Capacity Limit To further test the limit of the single GRS capacity several 10-second simulation runs of the scenario in section 8.1, were made using different numbers of users. At the end of each simulation the number of messages in the GRS queue of node 15 was 63 recorded. Figure 12 is a graph of ' IBM .0. this data. When there are 80-88 ... users in the system the final queue R size is 1, but when there are 89 . users the queue size ends at 6. . With 90 users the queue size is 15 and with 95 users there are over Figure 12: Final queue size after 10 seconds versus number of users. Shows single GRS capacity limit of 88 users. 60 messages in the queue. This data seems to support our prediction that the queue size would stay relatively constant, near zero until the capacity is reached, at which point it will begin to grow. The capacity limit of 88 is exactly what was predicted in the analysis section. 8.3 Medium System Load ...... . .. . . .... ............... ........ ... ......' Figure 13: Network level view of simulation with 240 users. This scenario is to test various parameters when the system is more evenly loaded. The matlab scripts were used to generate 240 destinations and trajectories uniformly 64 distributed in a rectangular area serviced by 6 GRSs. The user departures occur according to a Poisson process with an arrival rate of one per second. As was described in the analysis section, this yields a maximum simultaneously active user count of about 120. This network level view, including the trajectories, is shown in. The simulation run has a total of 240 users departing according to an exponential interarrival rate. This is the same scenario that was used in section 7 section. The analysis estimated that (a) this load would be within the systems capabilities and that the . ... latency would therefore be acceptable. The latency graph in an figure 14 supports this analysis. The results are similar to the 80 (b) 4i v si I Figure 14: Packet latency (a) and moving average of packet latency with a 1 second window size. user case. The latency varies between a minimum of about .01s and a maximum of about .08 seconds. Figure 14b shows that the average is about .18 and that there are only occasional messages with a higher latency due to GPS Differential Corrections messages being sent. The more detailed view of the latency spikes due to differential corrections is not shown here, but is identical to the graph shown above for the 80 user simulation. This is the same affect seen in the analysis for 80 users. It is obvious from this data that the latency is relatively 65 constant, that the queues are not filling up and that the system is still operating within its capacity. OpNet includes a utilization statistic for each transmitter and receiver module. These statistics have been captured and can be compared to the predicted load for each grs that was calculated in the analysis section. The actual simulation implementation has a separate transmitter module for transmitting to users and transmitting to other GRS. For our current design these modules differ only be their bit rate and cannot both transmit simultaneously. Therefore the total transmitter utilization for a GRS will simply be the sum of the utilization statistics for each of the two modules. The actual utilization statistic that is captured is Node also 1/2 of the actual GRS3 GRS5 GRS6 GRS10 GRS11 GRS12 GRS13 GRS14 GRS15 GRS18 GRS19 GRS20 GRS21 GRS 22 GRS 23 GCS value because the transmitter is only allowed to transmit 1/2 of the time. The numbers in the table have already been doubled to GRS Tx Utilization 3% 16% 3% 2% 12% 30% 18% 8% 1% 1% 4% 12% 7% 6% 1% 43% User TX Utilization 5% 5% 5% 14% 22% 16% 20% 20% 14% 14% 22% 16% 27% 19% 13% N/A Total TX Utilization 8% 21% 8% 16% 34% 46% 38% 28% 15% 15% 26% 28% 34% 25% 14% 43% Predicted Utilization 9% 19% 4% 13% 23% 39% 29% 23% 11% 11% 15% 19% 15% 16% 11% 45% compensate for this. Table 6: Simulated transmitter utilization for active used GRSs. 8.4 High System Load To further test the capacity of the system a simulation, which contains 480 users has been setup and run. In other respects, the simulation is identical to the 240 users simulation except that it has more users and the user departure rate is 2 rather than 1. 66 With this arrival rate, the maximum number of simultaneously active users is 228. During the busiest portion of the simulation there is a two minute period in which there are at least 200 simultaneously active users. Figure 15 is a graph of the latency over the entire simulation time. The results are similar to the 240 user case,, but it is obvious that the system . . . is nearing capacity. Up until .. about 1 minute the maximum latency appears to be about 73 Figure 15: Global latency for simulation of 480 users. ms, but then it starts to increase. Most packets still have a latency below 100ms and a few are as high as 150ms. The worst latencies appear to be between about 2 and 4 minutes. This makes sense as it is the period with the largest concentration of users. By about five minutes the latency has become lower and does not again exceed 73ms. These latency figures should still allow acceptable performance, but it does appear that the system may be nearing its capacity. 67 The utilization statistics Node Total TX GRS Tx User TX Utilization Utilization Utilization 5% 11.5% captured from OpNet, listed in GRS 3 6.5% GRS 5 GRS 6 34% 8% 5% 5% 39% 13% table 8, seem to indicate that GRS 10 4% 22% 26% GRS 11 21% 27% 48% GRS 12 49% 30% 79% GRS 13 36% 18% 54% GRS 14 22% 30% 52% GRS 15 3% 27% 30% The statistics could be a bit GRS 18 2% 23% 25% deceiving though because they GRS 21 8% 26% 34% GRS 22 12% 32% 44% GRS 23 3% 28% 31% most nodes are still not that close to reaching their capacity. record the actual percentage of 9% GRS 19 37% 76% 76% GCS time spent transmitting. 28% Table 7: Transmitter utilizations for a 480 user simulation . Therefore if a time slot is half only half used but another packet can not fit it, the statistic will record that slot as only being 50% utilized. Based on the latency figures above and the utilization statistics it appears that for the current implementation, the capacity is being neared, but that the capacity could be increased by more efficiently packing messages into the time slots. . We now conduct an analysis of the error rate for messages being sent from the GCS to a user in flight. In the ... analysis section we estimated that a packet making 5 hops Figure 16: Number of messages lost as a function of Khz Af before being uplinked to a user spectrum used 68 would have a probability of error of Bandwidth Messages Message 1/536 if the bit error rate of the (1,K0 links was 10-6 Our simulation 05000 2500 Lost 41 2579 4s2Rate 1/1268 1/20 results are actually better than this. 1000 500 17862 28256 1/3 1/2 Table 8: Number of lost messages for different Probably due to the over-designed amounts of spectral usage. The total number of messages sent was 51,989. processing gain. Figure 16 shows the number of messages lost for several different runs of the 480 user simulation. The simulations runs use different amounts of spectrum and therefore different amounts of processing gain. The total number of messages sent out by the GCS is 51,989. We can conclude from these results that we can reduce the spectrum used by our system and still have an acceptable error rate. The exact error rate required will depend on the specific application, but it can simply be changed by increasing or decreasing the processing gain. 69 9 Conclusion An analysis of many different components of this wireless communications system including, routing, scheduling and the radio links has been done. We identified specific designs which seemed reasonable for this particular application. We chose these designs so that the system can reliably supply an adequate number of users with the proper data to guide themselves to their destinations. The communication system protocols have been designed to ensure that the data arrives in a timely fashion, and that the transmission power levels are kept to a minimum. Terrain issues, radio propagation issues and other routing schemes, which have not been specifically incorporated into this design, have also been discussed during this process. A final system was designed was then analyzed and its performance was estimated. This performance was then further explored using OpNet and Matlab simulations. The OpNet simulation essentially is a software implementation of the system. Each node is defined to act as it would if it were an actual piece of hardware. These nodes are then arranged in what could be a real world deployment and the OpNet environment simulates all of the communications between the nodes to predict the system's behavior. The final system satisfies the performance goals of a preliminary system design, discussed in the introduction. About 88 users can be serviced by a single GRS and in excess of 200 users can be serviced by the whole network. This corresponds to a user departure rate of about 2 departures per second. Even with a load of over 200 simultaneous users the latency from the time a message is transmitted from the GRS until it is received by a user has a peak of just over 100ms and an average of about 30 ms. The transmission power levels required are about 2.1 watts, significantly lower than the 10 70 watts that had originally been set as our upper limit. The 10Mhz of bandwidth occupied by the design is large, but may be acceptable at the intended center frequency of 10GHz. The proposed design achieves acceptable performance under the assumed ideal RF propagation characteristics. Additional work is required to mitigate the higher propagation losses commonly experienced by near ground communications links. This issue was briefly examined in the section 6.2, but more work in this area is required. First, a more detailed analysis of the propagation characteristics of X-band (10 Ghz) radio waves across the ground would help determine how close the GRSs actually need to be. This may be accomplished using existing research, but it may be necessary to conduct field tests to obtain accurate models for our specific application. The affects of trees, foliage and terrain should also be incorporated into the propagation models, as discussed in Appendix B. Development of improved antenna designs is a key to making a ground network of this type work. If multi-beam antenna's with sufficient gain can be designed, this ground network model may be feasible even in an environment with much higher path loss and channel fading. 71 10 Appendix 1 - OpNet 10.1 Network Level Figure 17: OpNet screen capture of the network level view of the 240 user simulation. 10.1.1 Overview The network level is the highest level in the simulation and contains the nodes of the network and their locations. The simulation that I chose to create consists of 23 GRSs and one GCS arranged in an 8 x 3 grid. The GRSs are named based on a node number and the time slot in which they transmit. For instance node_1_0 is GCS number 1 and it transmits during time slot 0. The simulation uses the node numbers only for printing information messages and the time slot value is actually set as a node option, its inclusion in the name is simply as a reference aid. 72 The users are the nodes arranged at the bottom of the screen. OpNet does not allow nodes to be created during the running of the simulation, so the maximum number of nodes that will be required during simulation is created beforehand. Each user node has a trajectory associated with it. The dark black lines represent these trajectories. The positions of the nodes during the running of the simulation are dependent on these trajectories and not on their placement at the bottom of the network view window. These trajectories are generated externally by Matlab scripts. The files conform to a format specified by OpNet. Once the trajectory file parameters of the user nodes have been set, these files can be regenerate by the Matlab scripts to run the simulation using different trajectory data. 10.1.2 Options There are several simulation options that can be set from this level of the simulation. The first type of options are simulation wide variables which can be set to change the behavior of the simulation. These may be used to control the length of the simulation or to change system wide parameters. It may be desirable to change these parameters to determine how they affect the performance of the system. max-packets This option sets the maximum number of packets which will be transmitted by the GCS. This can be used to regulate the length of the simulation. Time Slot Size This option is used to change the length of the transmission time slot. The parameter is an integer and specifies the length of the transmission slot in microseconds. 73 slots affect efficiency This parameter can be varied to determine how different sized time and latency. but are The second types of options are those which affect individual nodes, affect all nodes of a promoted up to this level of the simulation. There are options that only each individual certain type, which will be discussed later, but these options affect simulation is created. copy of a node. These options generally need to be set up when the and what spreading They specify options such as which time slot a node transmits in codes are used by transmitter and receiver channels. receive The spreading code options control which node a receiver channel will data from. The GCS has three receiver channels and Receiving Transmitting 1 3 each GRS has four. The number of the receiver 2 2 channel corresponds to the direction from which it receives (north, south, east, west). For instance, if 1 3 (a) (b) Figure 18: Rule for determining the next node of a message. The numbers in (a) indicate the number that must be placed in the node 20 is located to the packet header to transmit in the direction specified. The north of node 12 and specified direction is received. numbers in (b) indicate on which receiver channel data from the receiver channel 1 receives using the data from the north, then receiver channel 1 will receive communications set up correctly spreading code associated with node 20. These parameters all need to be is for the simulation to function. The correct method for setting up these parameters 74 shown in Figure ?. The transmitting diagram illustrates the what number needs to be placed in the packet header to transmit in a particular direction. For instance, the router would place a 2 in the packet header to transmit to the node to its right. The receiving diagram illustrates what channels are used for receiving from what directions. This is what is used to set up the spreading codes. Since packets coming in from the left should be received on channel 2, the spreading code for channel 2 must correspond to the transmit spreading code of the node to the left. The same method is used to set the other 2 channels. In a real world system this would be automatically done during the network setup and initialization phase rather than being user inputs. The transmitter power levels of both the GRS and the GCS can be set at this level to allow the simulation, as it may be desirable to run the simulation with different values of these parameters. 10.2 GCS GCS rcv gen GCS-router rr_0 a_1 rt_0 a-0 GCSMAC Figure 19: OpNet screen capture of the GCS node model 75 10.2.1 Overview The GCS is responsible for sending out all correction data to the users. It is the central control unit and therefore knows how many GRS there are and what their locations are. In the simulation environment this is simply accomplished by various function calls to query information about the other nodes in the network. Since there is only one GCS it is also used for storing global information about the simulation, such as how many packets have been sent into the network and how many have been successfully received by users. The diagram above is a screen capture of the node description of the GCS. Then gen object is what generates the packets to be sent out to the users. The rate at which it generates packets is modified when users begin or finish their flight. The GCSrouterobject takes the packet in from the generator and fills in the packets routing information to send it to the correct GRS. The GCS knows the trajectories of the users and therefore routes the packet to the GRS that is currently nearest to the user. It keeps track of how many active users there are and controls the packet generation rate. This node also fills in the creation time of the packet and the packet number. It will discard all packets if the maximum number of packets has already been exceeded. The GCSMAC object controls the access to the medium. This is where the time slot scheduling is implemented. When this object receives a packet from the router it places it in a queue. Then it reads packets from this queue and, based on the global time slot size, the current simulation time and the slot that the GCS is assigned to, it transmits these packets into the network. It also receives return data from the GRS network and passes it to the GCS_rcv object. 76 The GCS_rcv object simply receives incoming packets, calculates the time that has passed since that packet was sent out and prints out an informational message, if this debugging option is enabled. The packet is then simply discarded. The GCSMAC sends and receives data through the radio receiver and transmitter objects, which are then connected to antenna modules. The antennas are simply isotropic but other patterns could be used to test additional antenna options. The receiver and transmitter objects specify the radio link parameters used for communicating with the GRS's. This is where the channel models are set and also all of the communications parameters and power levels. As can be seen in the figure, there is one packet stream from the MAC to the transmitter object and three receiver streams coming from the receiver object to the MAC. These correspond to the single transmitter channel and the three receiver channels. 10.2.2 Packet Generator The generator module is where the packets are actually created. Figure ? lists some of the options that can be set for this Attribute Value name gen interarrival pdf constant interarrival args 1000000 pk size pdf constant pk size args 175 field (0) pdf constant field (0) args 0.0 packet format object. The interarrival MTK.packet.locr V Figure 20: OpNet screen capture of the packet generator settings. pdf is currently set to constant so that the packets will be generated and sent at regular times. This could be changed depending on how the system was to be modeled. 77 Currently it is assumed that the GCS receives updated destination data and then at regular intervals this data is transmitted out to the users. This destination data may arrive at the GCS in a more random fashion and could then be immediately transmitted to users upon arrival. This could be simulated by changing the interarrival pdf to a function that models the arrival of destination data. The interarrival args parameter simply specifies the interarrival time of the pdf. It is initially set to a very large value so that no packets will be generated. When a user begins its flight, this parameter will be modified by the GCSrouter. It will be modified whenever a user begins or ends its flight to maintain a generation rate of 1 packet/sec/user that is currently in flight. The pk size args parameter sets the size of the packet. The total size of the packet is this number plus the size of the fields described by the packet format. The total size is 320 bits to simulate the estimated size of the destination update packets. The packetformat parameter simply specifies which type of packet will be generated. This packet contains fields for storing routing data and other useful information such as creation time and packet number, which are used for informational purposes in the simulation. 10.2.3 Router Object The router object's primary function is to receive packets from the generator, decide which user to send them to, decide which GRS should communicate to the user, and then fill in the appropriate routing fields and send the packet. To accomplish this, it must also keep track of what users are in the air at a given time, information about the 78 GRS grid and other simulation information. The router object'functionality is described by the finite state machine in Figure 21. When the .E,..:* E E simulation begins, the FSM begins in the init state. This state is responsible for querying other parts of the simulation an .... initializing several pieces of data which Figure 21: OpNet screen capture of the GCS router process model. will be later used in deciding where generated packets should be sent. It initializes the total packet count to zero and retrieves the maximum packet count simulation attribute. It also retrieves the grid location parameter for this node. This parameter specifies where the GCS is located in the grid and is a parameter that is set at the network level. The state then determines how many GRS's are in the grid and allocates and array of data to store information about each GRS. The information that is stored includes the GRS locations in x, y and z coordinates, the integer i and j coordinates within the grid and the spreading code that is used for sending data to users. This state also has to maintain information about the users. This data is read in from an external file, generated by matlab scripts. This file contains a list of the start and end times of the user trajectories. This file is read in and interrupts are generated at each 79 of these times. Each time the simulation encounters one of these interrupts, the interarrival rate of the generator object is updated to reflect the change in the number of active users. The idle state is where the FSM spends most of it's time. It simply waits there for interrupts to occur. When a packet is received, it moves to the route state which determines where to route the packet and fills in the header data. This state also sets the receive spreading code of the user to correspond with the transmitting code of the nearest GRS. This function would be done within the user in a real world system, but for our purposes it simplifies the simulation design to place the code here and doesn't affect the functionality. If the maximum packet count has not been exceeded, the state then increments the total packet count parameter, logs this variable as a statistic and sends the packet to the MAC. The user-change state is responsible for processing the interrupts that occur when a user begins or ends its flight. A variable specifying the total number of active users is maintained. When a user begins flight this value is increased and when it ends the value is decreased. This value is then used to set the interarrival parameter of the packet generator. 80 10.2.4 MAC Object (def ault) (i FR E E)/schedsl ot_-in t rp t-gc s 0E OWT.FREE (de f ault) itWAIT uinmX (FREE) (!QUEUE-EMPTY) -- -- - - -- -- ----- (FREE) K- (TX-END & CTX-END &&QUEUEEMPTY)/sched-slot -- -- --- ------ ------- TX.PKT !QUEUEEMPTY) -intrptgcs 0 (def aul t) This object is essentially a simplified version of the MAC processor contained in the module, but its basic functionality and the differences will be outlined here. A more detailed description of the MAC will be included in the section describing the GRS. This object controls the interaction with the radio channel. It queues outgoing packets and sends them during the proper time slot and forwards incoming packets to the router. Each of the light colored states in the diagram (TX.WAIT, TXENDWT, WTFREE) calls a function to process interrupts before leaving the state. This function puts any packets coming from the router into an output queue and forwards any packets received from the radio link up to the router. 81 When there is no data to be sent, the FSM will be in the TXWAIT state. When a packet arrives it is placed in the queue. The queue is then not empty and the transition to the GETPKT state will be made. The FREE condition is then used to determine whether the current time corresponds to a valid transmission slot for this node. If it does, and the packet can be transmitted before the end of the slot, it will transition to the TXPKT state. If not, it will transition to the WTFREE state and an interrupt will be scheduled at the beginning of the next valid transmission slot. When that interrupt executes, the FSM will transition to the TXPKT state and the packet will be sent to the radio transmitter. The state then sets an interrupt to indicate the end of the packet transmission and transitions to the TXENDWT state. It remains in this state until the packet has finished. At this point the TXEND condition will be true and the FSM will transition to the GETPKT state if there are packets remaining in the queue or the TXWAIT state if the queue is empty. The cycle then simply repeats. 10.2.5 Radio Objects The radio receiver and transmitter objects are fairly straightforward. They control which modules are used for the modeling of the radio channel. The simulation just uses the default modules included in OpNet. These modules also specify the bit rate of the channel, the spectrum usage and processing gain for the channel. 10.2.6 Receive Module This module simply receives the return packets from the router and discards them. It also prints out status information such as the packet number and the time that has passed since the packet was created and sent out to the network. 82 I Ii 10.3 GRS 10.3.1 Overview The GRS node description is shown in Figure 22. It receives data from the network and then u. routes it either to another GRS or sends Figure 22: OpNet screen capture of the GRS node model. it directly to a user. Each GRS has four receiver channels that can receive from up to four neighboring GRS's. It also has two transmitter channels. One for transmitting to users and a second for transmitting to other GRSs. These two channels could be essentially combined if desired, but for now they are left separate. This allows simulation of separate frequency bands for inter-GRS communication and GRS to user communications if desired. As seen in the figure above, there are two packet streams from the router to the GRSMAC. One is for data destined for users and the other is for data being sent to another GRS. 10.3.2 GeneratorObject The generator object creates packets to simulate the differential corrections. This generator creates a formatted packet to be sent to the user. The total size of the packet is 1440 bits and the packet is generated once per second. 83 10.3.3 Router Object The router (def aul t) object is what controls where -init -d --- (K. V -- rout packets received by the GRS will be forwarded to. The Figure 23: OpNet screen capture of the GRS router process model FSM. FSM consists only of three states. The init state initializes several pieces of data that are later used during simulation. It sets up statistics used to log how many packets have been received by the node and how many packets have been dropped due to excess latency. The router is currently set to drop any packet that it encounter which is more than 5 seconds old. Next this state retrieves its location in the grid and the location of the GCS and stores them in local variables. The GCS location is needed for routing status and return data back to the GCS. Finally the state fills in an array specifying which links are enabled and which are disabled. Disabled links are specified by setting the receiver spreading code to 255. (This setting is done at the network level) Whenever a packet arrives, either from the packet generator or the MAC, the FSM transitions from the idle state to the route state. If the packet is being sent from the generator, then it is immediately sent out to the MAC, to be sent to the users. If the packet is being received from the MAC it is passed to the routing function to be processed. The routing algorithm is as follows. First the creation time is checked against the current time to determine if the packet is too old. If so, it is discarded. If the packet is valid its destination field is read and compared with the current GRSs location. If they match, then the packet has reached its destination. The destination fields of the packet 84 will then be changed to send it back to the GCS and its size will be changed to correspond to the size of the return message. Next a user packet will be created. Its destination user fields and creation time fields will be filled in using data from the original packet and it will be sent to the MAC through the user data stream. Now the packet will be forwarded to the next GRS based on it's destination fields. This portion is the same whether the packet is being sent back to the GCS or being forwarded on further. The routing is done by examining the (ij) coordinates of the current node and those of the destination node. The next node field is then set to forward the packet in the direction in which the greatest distance remains. If there are links disabled it will try to forward it in the best available direction. The next node field is only a 2 bit field corresponding to the four possible direction in which the packet could be transmitted. This number corresponds to the receiver channel number on which the adjacent node will be receiving this GRSs code. For instance, to transmit a packet northwards the next node field would be set to 3. The network setup will have already set receiver channel three of the node to the north to receive using the current node's spreading code. This method allows the space required by the next node routing info to be minimized and simplifies the routing functions because no additional tables are needed. Only the next node field and the receiver channel number are required to determine if a packet should be accepted or discarded by a MAC. Once the next node has been determined and the field has been set, the packet is sent to the MAC through the GRS packet stream. 10.3.4 GRS MAC Object 85 Figure 24:OpNet screen capture of the GRS MAC process model FSM. The GRSMAC object controls the access to the radio channel. It receives data from the radio links and then forwards it to the router and accepts data from the router and sends it to the appropriate node. It contains three subqueues. One for storing packets to be sent to users, one for storing packets to be sent to other GRSs and a third to hold packets that are about to be transmitted. The operation is similar to that of the GCS MAC but it is slightly more complicated. It still schedules interrupts at the beginning of slots in the same manner and determines whether the channel is free using the same method, but it has the additional complexity of also having to transmit user data. The init state reads the time slot and slot size and also stores the bit rates used for communicating with users and other GRSs in local variables. These values are used in determining how long it will take to transmit a packet. 86 As in the GCS, the unforced states all call an interrupt function upon exit. This function receives data coming in from the radio link and determines if it has reached its intended destination. If not it is discarded and if so it is sent up to the router module. Packets that are received from the router over the user data stream are placed in the user queue and packets received over the GRS data stream are placed in the GRS queue. If either queue is non-empty, the FSM will transition to the GETPKT state. Both queues will then be examined and a packet will be removed from the largest queue. The design allows for fragmentation of packets being sent to users so if a packet is greater than the maximum size allowable, given the time slot size, it will be fragmented and each smaller packet will be placed in the transmission queue. If the packet is smaller than this maximum it will simply be placed in the transmission queue. The next few steps are identical to the GCS MAC. The FSM transitions to the READY state and a packet is removed from the transmission queue. When the channel becomes free the packet is transmitted and then the process waits for the transmission to finish. At this point the FSM will transition back to the READY state if there are still packets left in the transmission queue. This ensures that all fragments of a user message are sent consecutively. Once all fragments have been transmitted the FSM will transition to either the TX_WAIT or GETPKT state depending on whether there is data in either the user or GRS queues. 10.3.5 Radio Objects The radio receiver and transmitter objects are essentially the same as for the GCS. There is an additional transmitter channel, but otherwise, they are identical. They control which modules are used for the modeling of the radio channel. The simulation just uses 87 the default modules included in OpNet. These modules also specify the bit rate of the channel, the spectrum usage and processing gain for the channel. 10.3.6 User The user object is fairly simple. I consists of an antenna, a receiver - module and a single processor. This processor simply receives the packets Figure 25: OpNet screen capture of User node model from the receiver module and modifies statistical and informational data. If the packet is the last packet in a fragmented destination update message, then the global packet received counter is incremented and the time since the packet's creation is logged as the global latency statistic. The packet is then discarded. All other types of packets are simply discarded. 10.4 Matlab Matlab is used to generate the user trajectories to be used by the simulation. The script takes in several arguments: " A list of coordinates specifying the placement of departure sites * A rectangular area where the destinations are located * The number of users in the simulation * The inter-arrival rate of the user departures appearances " Output file prefix (simulation currently expects 'user') The scripts first generate random destination locations within the specified rectangular area. Uniform PDFs over the dimensions of the specified area are used for the x and then the y coordinates. The script then starts a loop that examines each 88 destination and determines the closest departure site. A flight path is then generated between the departure site and destination locations. Within this loop there is a time value which increments at each termination of the loop according to an exponential PDF using the specified inter-arrival rate. This time value specifies when the user will begin its flight. Each trajectory is then written out to a file conforming to an OpNet trajectory file. OpNet trajectory files use a constant time step, which is placed in a header. To limit the file size and the redrawing time of the simulation windows, a value of 2.5 seconds has been chosen. Therefore times used in the scripts are rounded to the nearest 2.4 seconds. The scripts additionally create two more output files. The first is used by the simulation to retrieve general information about the user trajectories. It lists the start and end times of each user trajectory. This is used by the GCS to determine how many users will be used in the simulation. It is also used to schedule simulation interrupts to change the message generation rate based on the number of currently active users. The last file is an informational file that is not used by the simulation. It is for use by the user in setting up and analyzing the simulation. It gives information such as the time of the last user departure and last user landing. It also lists the number of active users in the system at 2.5 second increments. 89 11 Appendix 2 - Terrain Although the simulation does not simulate the terrain, some research was done in this area. There have been papers which illustrate the use of random noise in simulation of ad-hoc network performance [1]. This method would be perfect for simulation of our system. Various software tools, available in the public domain, have been found and could be used to simulate the system performance in various types of terrain. The first thing that is required is a tool to generate terrain. This is a very common requirement in the world of computer graphics and that is where the most information appears Figure 26: Terrain generated by gforge and rendered by POV-RAY. to be available. I have found a program called gforge which allows a random terrain to be created using various parameters to set it's basic characteristics. The program outputs the data as an image file, sometimes called a height field file. The height and width determine the horizontal dimensions of the terrain area and the color values specify the terrain height. As this is a common format used in computer graphics, the terrain can then be easily visualized by rendering it using a ray tracer. Figure 26 shows an example of terrain generated by gforge and rendered using POV-RAY. These images are useful for visualizing the terrain that is being used in the simulation, but the simulation will probably use the actual height field file. Some 90 investigation was done to determine how to best implement this in the simulation. I found some code examples that could be used to determine, based on square grid of height values and the three dimensional locations of two points, whether line of sight exists between them. This code could then be added to the OpNet radio pipeline module which determines whether or not a communications link exists between two nodes. A method for reading in and storing the image file that describes the terrain will need to be developed, but it appears that OpNet is flexible enough that a solution can be found. Another option is to actually use real world terrain data. As greater efficiency is sought, communications systems are further analyzed before being deployed. Digital terrain models can be used to determine propagation characteristics in an actual real world site. These are used to predict the optimal placement of transmitters [17,18]. This same method could be used to simulate the performance of our system, using real terrain. This concept could even be used in a final system to automatically decide the optimum locations of the nodes in the grid. Thereby automatically planning the deployment of the system, based on digital terrain maps of the destination area, rather than simply simulating it. The second factor in modeling the environment is the affect of trees and vegetation on the signal propagation. There has been a large amount of research done in this area, although there seems to be very little at the 10Ghz range. Some research has been done into these affects at lower frequency bands. Many of the same results should apply at 10Ghz. Using this past research and possibly during some testing at 10Ghz, it should be possible to come up with models for the signal behavior in various environments. This data could be used to predict a loss due to vegetation and could be 91 incorporated in to the simulation. Based on the literature it seems that the best way to implement this would be to have different probabilistic loss functions for different types of vegetation [6, 11]. The type of vegetation would be a simulation input. When the radio pipeline is executed a sample of this probabilistic function will be included in the calculation of the received power. 92 12 References [1] Christiaan Roobol, "Multihop Radio Networks in Random Terrains: Connectivity and Some Terrain Adaptive Routing Agorithms", Military Communications Conference, 1993. MILCOM '93. Conference record. Communications on the Move., IEEE Volume: 2, 1993 , Page(s): 428 -431 vol.2 [2] David W. Matolak, Steven L. Smith, "Estimation of TDMA and CDMA Capacities for an Air-To-Ground Communication System", MILCOM 97 Proceedings Volume: 1 , 1997 , Page(s): 424 -428 vol.1 [3] Zygmunt J. Haas, Siamak Tabrizi, "On Some Challenges and Design Choices in AdHoc Communications", Military Communications Conference, 1998. MILCOM 98. Proceedings., IEEE Volume: 1 , 1998 , Page(s): 187 -192 vol.1 [4] Barry M. Leiner, Donald L. Nielson, Fouad A. Tobagi, "Issues in Packet Radio Network Design", Proceedings of the IEEE, Vol. 75, No. 1, January 1987. [5] Vincent D. Park, M. Scott Corson, "A Highly Adaptive Distributed Routing Algorithm for Mobile Wireless Networks", INFOCOM '97. Sixteenth Annual Joint Conference of the IEEE Computer and Communications Societies. Driving the Information Revolution., Proceedings IEEE Volume: 3, 1997 , Page(s): 1405 -1413 vol.3 [6] Julius Goldhirsh, Wolfhard J. Vogel, "Handbook of Propagation Effects for Vehicular and Personal Mobile Satellite Systems", http://www.utexas.edu/research/mopro/ [7] Andrew S. Tanenbaum, Computer Networks, 191 93 2 nd Edition, Prentice-Hall, 1989, pp 183- [8] "IEEE Std 802.11-1997 Information Technology-telecommunications And Information exchange Between Systems-Local And Metropolitan Area Networks-specific Requirements-part 11: Wireless Lan Medium Access Control (MAC) And Physical Layer (PHY) Specifications", IEEE Std 802.11-1997, 18 November 1997 , Page(s): i -445 [9] Bernard Sklar, DigitalCommunicationsFundamentalsand Applications, Prentice Hall, 1988, pp 195-206, 251-257, 478-493 [10] Szu-Lin Su, Wen-Chang Pan, "3D Cellular Systems for Air-land Communications", Universal Personal Communications, 1994. Record., 1994 Third Annual International Conference on , 1994 , Page(s): 485 -489 [11] Dr K Benzair, "Measurements and Modeling of Propagation Losses through Vegetation at 1-4GHz", Antennas and Propagation, 1995., Ninth International Conference on (Conf. Publ. No. 407) Volume: 2, 1995 , Page(s): 54 -59 vol.2 [12] Hisham Ibrahim Kassab, "Low-Energy Mobile Packet Radio Networks: Routing Scheduling, and Architecture", MIT Ph.D. Thesis. [13] Young-Bae Ko, Nitin H. Vaidya, "Using Location Information in Wireless Ad-hoc Networks", Vehicular Technology Conference, 1999 IEEE 49th Volume: 3, 1999, Page(s): 1952 -1956 vol.3 [14] Junghwan Kim, D. Haschart, S. C. Kwatra, Mark J. Vanderaar, G. H. Stevens, "Performance Evaluation of Land Mobile Satellite System under Vegetative Shadowing using Differential Multiple TCM and QPSK", Military Communications Conference, 1990. MILCOM '90, Conference Record, A New Era. 1990 IEEE, 1990 , Page(s): 263267 vol.1 94 [15] Mr. Martin Hope, Prof. Nigel Linge, "Determining the Propagation Range of IEEE 802.11 Radio LAN's for Outdoor Applications", Local Computer Networks, 1999. LCN '99. Conference on, 1999 , Page(s): 49 -50 [16] Jyrki Leskeli, "Deterministic Multihop Radio on the top of 802.11 MAC", RealTime Systems, 1998. Proceedings. 10th Euromicro Workshop on, 1998 , Page(s): 71 -78 [17] F. Pirez-Fontin, J. M. Hernando-Ribanos, "Comparison of Irregular Terrain Propagation Models for using in Digital Terrain data Based Radiocommunication System Planning Tools", Broadcasting, IEEE Transactions on Volume: 39 3 , Sept. 1993, Page(s): 335 -343 [18] M. Lebherz, W Wiesbeck, H-J Basberg, W. Krank, "Calculation of Broadcast Coverage Based on a Digital Terrain Model", Antennas and Propagation, 1989. ICAP 89., Sixth International Conference on (Conf. Publ. No.301) , 1989 , Page(s): 355 -359 vol.2 [19] Marvin Silver, "Modular Hybrid Avionic System for Precision Tactical Weapons", Position Location and Navigation Symposium, 1988. Record. Navigation into the 21st Century. IEEE PLANS '88., IEEE , 1988 , Page(s): 402 -407 [20] Ramjee Prasad, CDMA for Wireless PersonalCommunications, Artech House, Boston-London, 1996, pp 145. 95