Abstract:
A system and method for maximizing channel utilization by efficiently allocating codes and frequencies based on estimated relative interference between subscriber units in a wireless communications network, such as an ad-hoc wireless communications network, in such a way as to minimize multiple access interference. The system and method perform the operations of collecting existing and proposed transmission information between nodes in the network, and calculating a respective interference factor for each existing transmission between certain nodes and each proposed transmission by a transmitting node. The interference factors can be calculated based on, for example, respective distances between certain nodes. The system and method then assign the communications channel configuration, including a frequency channel and code channel, to the transmitting node for communications to other nodes as designated by a minimum of the calculated respective interference factors.

Description:
BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     The present invention relates to a system and method for assigning protocols for reuse of frequencies and codes in a wireless communication system utilizing spread spectrum technology. More particularly, the present invention relates to a system and method for maximizing channel utilization by efficiently allocating codes and frequencies based on estimated relative interference between subscriber units in a wireless communications network, such as an ad-hoc wireless communications network. 
     2. Description of the Related Art 
     Wireless communications networks, such as mobile wireless telephone networks, have become increasingly prevalent over the past decade. These wireless communications networks are commonly referred to as “cellular networks”, because the network infrastructure is arranged to divide the service area into a plurality of regions called “cells”. 
     Specifically, a terrestrial cellular network includes a plurality of interconnected base stations that are distributed geographically at designated locations throughout the service area. Each base station includes one or more transceivers that are capable of transmitting and receiving electromagnetic signals, such as radio frequency (RF) communications signals, to and from user terminals, such as wireless telephones, located in its coverage area. The communications signals include, for example, voice data that has been modulated according to a desired modulation technique and transmitted as data packets or frames. As can be appreciated by one skilled in the art, the transceiver and user terminals transmit and receive the data frames in multiplexed format, such as time-division multiple access (TDMA) format, code-division multiple access (CDMA) format, or frequency-division multiple access (FDMA) format, which enables a single transceiver at the base station to communicate simultaneously with several user terminals in its coverage area. 
     In addition, in a cellular wireless system, the base stations typically communicate with the user terminals over channels. The channel resources are assigned in order to limit interference between units and thus, minimize collisions between signals. The word “collision” will hereafter refer to the presence of two code/frequency combinations in the same geographical area that renders communication between units using such combinations ineffective, thus indicating that a better code/frequency combination should have been selected instead. In a Global System for Mobile Communications (GSM) network, for instance, frequencies are assigned to specific cell towers, allowing for a large-scale reuse pattern to take place. In CDMA/IS-95, spreading codes are dynamically assigned by the cell tower to neighboring units. 
     In general, in networks employing handheld multimedia terminals (HMT) as discussed below, conventional practice in performing collision avoidance was to simply verify whether a channel was used or not, which is also referred to as “carrier sensed/collision avoidance”. To overcome problems when collision could not be avoided, a different spreading code was chosen using the address of the desired receiving unit. Unfortunately, this code-planning technique only mitigated interference from other units, without taking advantage of the intrinsic properties of spreading codes. 
       FIG. 1  is a conceptual diagram illustrating a first network configuration in which channel utilization is determined based on a technique which will be hereafter referred to as “frequency collision threshold”. Each unit (displayed as a darkened circle within a second circle) includes a transceiver that is associated with a code/frequency pair. The number “ab” associated with each transceiver corresponds to the code/frequency pair assigned to each transceiver, in which “a” is the frequency (1 through 3) and “b” is the code (1 through 7). A 0 indicates that none (either frequency and/or code) is available. In certain cases, the interference will be such that no transmission will be possible without critically affecting other transmissions. In this event, the unit will elect not to transmit. 
     In a traditional carrier sense multiple access/collision avoidance (CSMA/CA) system, each unit is able to determine if a frequency channel is available. A “frequency collision threshold” method is designed to prevent units from reusing the same frequency channel at the same time when the amount of interference created would prevent successful communication from occurring. The threshold used in such a method would be selected in such a way that interference can still be mitigated by the use of different spreading codes. The advantage over a standard CSMA/CA system therefore resides in a greater channel utilization, since frequency channel resources are used more frequently as the frequency collision threshold is lowered. 
     As can be appreciated by one skilled in the art, common pathologies for the “frequency collision threshold” technique include code/frequency-reuse collisions. That is, as indicated in the circled area C 1 , there are four scheduled transmission using the “ 32 ” code/frequency pair. Also, another pathology is extensive frequency collisions, as indicated in the circled area C 2 , where code/frequency pairs “ 23 ”, “ 22 ” and “ 26 ” are inadequately located one next to another. To prevent such undesirable situations from occurring, one could increase the threshold. However, the outcome would be a dramatic reduction in network capacity as more units become unable to transmit for lack of available frequency channels.  FIG. 2  therefore illustrates a second network configuration in which channel utilization is determined based on another technique which will hereafter be referred to as “code/frequency collision threshold”. The numbering and other terminology shown in  FIG. 2  uses the same convention as that shown in  FIG. 1  as discussed above. 
     The code/frequency collision threshold technique is similar to the “frequency collision threshold” technique demonstrated in  FIG. 1 , because it also probes the channel to prevent frequency collisions from occurring, yet also performs the same analysis for code collisions. Since codes do not usually provide sufficient processing gain to compensate for a lack of frequency separation, the threshold used to avoid code collisions is significantly higher than the one used to avoid frequency collisions. Thus, units using the same code/frequency pair are likely to be geographically further apart from one another. This phenomenon is illustrated in  FIG. 2  with the triangles highlighting code/frequency pair “ 27 ”, squares highlighting the code/frequency pair “ 13 ”, and hexagons highlighting the code/frequency pair “ 31 ”. 
     However, other pathologies remain unresolved. For example, frequency reuse is far from optimized as indicated in circled area C 3  in  FIG. 2  (i.e., frequency 2 could be advantageously used in area C 3 ). Accordingly, as can be appreciated from the above examples, a threshold approach cannot resolve these issues because it does not make judicious decisions; it only prevents catastrophic situations from occurring. 
     Other known techniques are also available for allocating channels. For example, one technique is described in a document by Arvind R. Raghavan entitled “An Unslotted Multichannel Channel-Access Protocol For Distributed Direct Sequence Networks”,  Mobile Networks and Applications , Vol. 5, pp. 49–56 (2000), the contents of which is herein incorporated by reference. Specifically, this document describes a fully-connected system in which transceivers can transmit or receive on one frequency channel at a time. Transceivers monitor each frequency channel to ensure that they are appropriately used. Since each transceiver is given only one code, there is no possibility of “code-collision”. However, the question arises in a non-fully connected system as to what criterion may be used to prioritize the use of specific code/frequency pairs. 
     Other techniques for allocating channels in a communications network are also described in U.S. Pat. No. 6,229,796 to Dent, and in U.S. Pat. No. 6,128,500 to Rhaghavan et al., the entire contents of both being incorporated herein by reference. The Dent patent describes a method to allocate code, frequency and time slots in an optimal way for cellular systems. However, this method is entirely static and therefore makes assumptions about the geometry of the infrastructure which is not compatible with a self-forming ad hoc network. The Rhaghavan et al. patent provides an adaptive method to increase capacity in a cellular system, but it only modifies cell boundaries based on a measure of interference. It is not implementable in a self-forming network where there are no fixed base stations. 
     That is, in recent years, a type of mobile communications network known as an “ad-hoc” network has been developed for use by the military. In this type of network, each user terminal (hereinafter “mobile node”) is capable of operating as a base station or router for the other mobile nodes, thus eliminating the need for a fixed infrastructure of base stations. Accordingly, data packets being sent from a source mobile node to a destination mobile node are typically routed through a number of intermediate mobile nodes before reaching the destination mobile node. Details of an ad-hoc network are set forth in U.S. Pat. No. 5,943,322 to Mayor, the entire content of which is incorporated herein by reference. 
     More sophisticated ad-hoc networks are also being developed which, in addition to enabling mobile nodes to communicate with each other as in a conventional ad-hoc network, further enable the mobile nodes to access a fixed network and thus communicate with other types of user terminals, such as those on the public switched telephone network (PSTN) and on other networks such as the Internet. Details of these types of ad-hoc networks are described in U.S. patent application Ser. No. 09/897,790 entitled “Ad Hoc Peer-to-Peer Mobile Radio Access System Interfaced to the PSTN and Cellular Networks”, filed on Jun. 29, 2001, in U.S. patent application Ser. No. 09/815,157 entitled “Time Division Protocol for an Ad-Hoc, Peer-to-Peer Radio Network Having Coordinating Channel Access to Shared Parallel Data Channels with Separate Reservation Channel”, filed on Mar. 22, 2001, and in U.S. patent application Ser. No. 09/815,164 entitled “Prioritized-Routing for an Ad-Hoc, Peer-to-Peer, Mobile Radio Access System”, filed on Mar. 22, 2001, the entire content of each of said patent applications being incorporated herein by reference. 
     As with conventional wireless networks discussed above, it can be necessary to allocate frequency and code channels to the nodes via which the nodes communicate with each other. It is also therefore necessary for these channels to be allocated in such a manner as to limit interference between neighboring nodes while also avoiding collision between signals transmitted by the nodes. Thus, a need exists to provide an improved systematic methodology for allocating channels in a communications network, in particular, a wireless ad-hoc communications network, which selects a code/frequency pair for communication between two nodes in the network in such a way that multiple access interference is minimized. 
     SUMMARY OF THE INVENTION 
     An object of the present invention is to provide a system and method for assigning protocols for reuse of frequencies and codes in a wireless communication system utilizing spread spectrum technology. 
     Another object of the present invention is to provide a system and method for maximizing channel utilization by efficiently allocating codes and frequencies based on estimated relative interference between subscriber units in a wireless communications network, such as an ad-hoc wireless communications network. 
     A further object of the present invention is to provide a system and method that uses a systematic methodology to select code and frequency pairs for use for communication between nodes in an ad-hoc communications network in such a way to minimize multiple access interference. 
     These and other objects are substantially achieved by providing an improved system and method for allocating communication channel configurations including code/frequency pairs in an ad-hoc network using spread spectrum modulation. The system and method perform the operations of collecting existing and proposed transmission information between nodes in the network, and calculating a respective interference factor for each existing transmission between certain nodes and each proposed transmission by a transmitting node. The interference factors can be calculated based on, for example, respective distances between the certain nodes. The system and method then assign the communication channel configuration, including a frequency channel and a code channel, to the transmitting node for communications to other nodes as designated by a minimum of the calculated respective interference factors. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The invention, as well as other features and advantages thereof will be best understood by reference to the detailed description of the preferred embodiment which follows, when read in conjunction with the accompanying drawings, in which: 
         FIG. 1  is a conceptual diagram illustrating a wireless communications network configuration in which channel utilization is determined based on a frequency collision threshold technique; 
         FIG. 2  is a conceptual diagram illustrating a wireless communications network configuration in which channel utilization is determined based on a code/frequency collision threshold technique; 
         FIG. 3  is a block diagram of an example of an ad-hoc packet-switched wireless communications network employing a system and method for allocating codes and frequencies to nodes for communication according to an embodiment of the present invention; 
         FIG. 4  is a block diagram illustrating an example of components of a node employed in the network shown in  FIG. 3 ; 
         FIG. 5  illustrates a conceptual diagram of a plurality of nodes in the network shown in  FIG. 3  that are communicating with each other and for which codes and frequencies are allocated according to an embodiment of the present invention; and 
         FIG. 6  illustrates is a conceptual diagram illustrating a configuration of nodes of the network shown in  FIG. 3  in which channel utilization is determined based on a minimum interference technique according to an embodiment of the present invention. 
     
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS 
       FIG. 3  is a block diagram illustrating an example of an ad-hoc packet-switched wireless communications network  100  employing an embodiment of the present invention. Specifically, the network  100  includes a plurality of mobile wireless user terminals  102 - 1  through  102 - n  (referred to generally as nodes or mobile nodes  102 ), and a fixed network  104  having a plurality of access points  106 - 1 ,  106 - 2 , . . . ,  106 - n  (referred to generally as nodes  106  or access points  106 ), for providing the nodes  102  with access to the fixed network  104 . The fixed network  104  includes, for example, a core local access network (LAN), and a plurality of servers and gateway routers, to thus provide the nodes  102  with access to other networks, such as the public switched telephone network (PSTN) and the Internet. The network  100  further includes a plurality of fixed routers  107 - 1  through  107 - 1  (referred to generally as nodes  107 ) that are capable of routing data packets to other nodes  102 ,  106  or  107 . 
     As can be appreciated by one skilled in the art, the nodes  102 ,  106 ,  107  are capable of communicating with each other directly, or via one or more other nodes  102  operating as a router or routers for data packets being sent between nodes  102 ,  106  or  107 , as described in U.S. Pat. No. 5,943,322 to Mayor and in U.S. patent application Ser. Nos. 09/897,790, 09/815,157 and 09/815,164, referenced above. Specifically, as shown in  FIG. 4 , each node  102 ,  106 ,  107  includes a transceiver  108  which is coupled to an antenna  110  and is capable of receiving and transmitting signals, such as packetized data signals, to and from the node  102 ,  106 ,  107 , under the control of a controller  112 . The packetized data signals can include, for example, voice, data or multimedia. 
     Each node  102 ,  106 ,  107  further includes a memory  114 , such as a random access memory (RAM), that is capable of storing, among other things, routing information pertaining to itself and other nodes  102 ,  106 ,  107  in the network  100 . The nodes  102 ,  106 ,  107  exchange their respective routing information, referred to as routing advertisements or routing table information, with each other via a broadcasting mechanism periodically, for example, when a new node  102  enters the network  100 , or when existing nodes  102  in the network  100  move. A node  102 ,  106 ,  107  will broadcast its routing table updates, and nearby nodes  102 ,  106 ,  107  will only receive the broadcast routing table updates if within radio frequency (RF) range of the broadcasting node  102 ,  106 ,  107 . Each of the nodes  102 ,  106 ,  107  that receive the routing table information from a neighboring node  102 ,  106 ,  107  can store all or a relevant portion of that routing table information in their respective memory  114 . The routing advertisements that are transmitted to other nodes through regular broadcasts may contain additional information such as position, measured path loss or any criterion that may be used to estimate the amount of interference that a unit will generate in the network. 
       FIG. 5  is a conceptual diagram which will now be used to demonstrate a manner in which a system and method according to an embodiment of the invention operates in network  100 . For purposes of this discussion, five nodes of the network  100 , which can be any of nodes  102 ,  106  or  107  are acting as transmitters and are identified as transmitters {circle around (1)}, {circle around (3)}, {circle around (4)}, {circle around (6)}, and {circle around (8)} and five other nodes, which can also be any of nodes  102 ,  106  or  107  are acting as potential receivers and are identified as receivers            ,          ,          ,           and          . Four of the transmitters {circle around (3)}, {circle around (4)}, {circle around (6)} and {circle around (8)} have already scheduled transmissions in the same time slot (timing issues are not relevant since transmissions are assumed to be concurrent in time, thereby inducing maximum interference) represented by the solid lines with arrows. Transmitter {circle around (1)} is planning transmissions to receivers          ,           and          , as indicated by the dashed lines with arrows.
     Table 1 below shows the relative interference between existing and proposed links and, in particular, indicates the effects of interference in transmission from transmitter {circle around (1)}. The “IN” column indicates the amount of incoming interference, that is, the interference that the scheduled transmissions would cause on the attempted transmission. The “OUT” column indicates the amount of outgoing interference, that is, the interference that the attempted transmission would cause on the scheduled transmissions. 
     
       
         
               
             
               
               
             
               
               
               
               
             
               
               
               
               
               
               
               
               
               
               
             
               
               
               
               
               
               
               
               
               
               
             
           
               
                 TABLE 1 
               
             
             
               
                   
               
               
                 Relative Interference Between Planned Links 
               
             
          
           
               
                   
                 Attempted Transmission To: 
               
             
          
           
               
                 Interference Table for Unit {circle around (1)} 
                 
                           
                 
                 
                           
                 
                 
                           
                 
               
             
          
           
               
                 FROM 
                 TO 
                 FREQ 
                 CODE 
                 IN 
                 OUT 
                 IN 
                 OUT 
                 IN 
                 OUT 
               
               
                   
               
             
          
           
               
                 {circle around (3)} 
                 
                           
                 
                 1 
                 7 
                 0.3 
                 0.016 
                 0.138 
                 0.646 
                 1.000 
                 1.000 
               
               
                   
                   
                   
                   
                 23 
               
               
                 {circle around (4)} 
                 
                           
                 
                 3 
                 6 
                 1.2 
                 0.846 
                 1.256 
                 0.159 
                 0.089 
                 0.045 
               
               
                   
                   
                   
                   
                 31 
               
               
                 {circle around (6)} 
                 
                           
                 
                 2 
                 1 
                 1.1 
                 0.648 
                 2.486 
                 1.345 
                 0.130 
                 0.189 
               
               
                   
                   
                   
                   
                 23 
               
               
                 {circle around (8)} 
                 
                           
                 
                 2 
                 2 
                 0.6 
                 0.564 
                 0.237 
                 0.984 
                 0.018 
                 0.020 
               
               
                   
                   
                   
                   
                 87 
               
               
                   
               
             
          
         
       
     
     On the left hand side of the table, four existing transmissions are recorded, together with the code/frequency pair they are using. It should be noted that this method can be used regardless of whether multiple transmissions can originate from or be received by the same node. For example, transmitter {circle around (1)} may or may not be able to transmit to receiver            , and receiver           may or may not receive messages from transmitters {circle around (6)} and {circle around (8)} simultaneously.
     On the right hand side of Table 1 are potential transmissions or, in other words, those which are present in the transmit buffer of transmitter {circle around (1)}, shown as dashed lines in  FIG. 5 . That is, in Table 1, these are potential transmissions from transmitter {circle around (1)} to receivers            ,           and          . The controller  112  of the node that makes the decision (the “deciding node”) on which code/frequency pair to use calculates the estimated interference values. As can be appreciated by one skilled in the art, the receiving terminal in a CSMA/CA system traditionally decides what code/frequency pair that the terminal about to transmit to it should use. However, in a multicast addressing system, the transmitter can determine which code/frequency pair to use for transmission.
     There are several methods in which the deciding node can calculate estimated interference values. For example, the deciding node may use the relative distances between transceivers to calculate estimated interference values. Alternatively, the deciding node may calculate estimated interference values based on the estimated received power from transmitters, as long as power control is used and path loss is measured. In either case, the estimated interference factor at a given node is a measure of the estimated power received by this node from another node which has adjusted its output power. 
     In one example, for a scenario where A transmitting to B affects a transmission from C to D, the interference factor is determined to be the ratio of the square of the distance between A and B by the square of the distance between A and D. It is noted that the square of the distance accounts for propagation loss and assumes unity power received regardless of the distance or, in other words, power control is assumed to work perfectly. For example, transmission between transmitter {circle around (3)} to receiver             will affect transmissions from transmitter {circle around (1)} to receiver           by a factor of the square of the distance between transmitter by a factor of d({circle around (3)},         ) 2 /d({circle around (3)},         ) 2 =0.323, as indicated in Table 1 above. The formula for the OUT value is the same. “IN” corresponds to (for example) the interference caused by the transmission from {circle around (3)} to           on the transmission from {circle around (1)} to          . “OUT” corresponds to (for example) the interference caused by the transmission from {circle around (1)} to           on the transmission from {circle around (3)} to          . The interference factor would thus be d({circle around (1)},         ) 2 /d({circle around (1)},         ) 2 . Interference factor calculations (such as those presented in the current example) can be summarized using the following equations:
     
       
         
           
             
               
                 
                   
                     Equation 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     for 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     interference 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     factor 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     calculations 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     Equation 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     1 
                   
                   ⁢ 
                   
                       
                   
                   ⁢ 
                   
                     
                       Interference 
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       factor 
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       
                         ( 
                         IN 
                         ) 
                       
                     
                     = 
                     
                       
                         
                           
                             
                               ( 
                               
                                 
                                   dist 
                                   . 
                                   
                                       
                                   
                                   ⁢ 
                                   between 
                                 
                                 ⁢ 
                                 
                                     
                                 
                                 ⁢ 
                                 scheduled 
                                 ⁢ 
                                 
                                     
                                 
                                 ⁢ 
                                 
                                   T 
                                   x 
                                 
                                 ⁢ 
                                 
                                     
                                 
                                 ⁢ 
                                 and 
                                 ⁢ 
                                 
                                     
                                 
                                 ⁢ 
                                 scheduled 
                                 ⁢ 
                                 
                                     
                                 
                                 ⁢ 
                                 
                                   R 
                                   x 
                                 
                               
                               ) 
                             
                             2 
                           
                           
                             
                               ( 
                               
                                 
                                   dist 
                                   . 
                                   
                                       
                                   
                                   ⁢ 
                                   between 
                                 
                                 ⁢ 
                                 
                                     
                                 
                                 ⁢ 
                                 scheduled 
                                 ⁢ 
                                 
                                     
                                 
                                 ⁢ 
                                 
                                   T 
                                   x 
                                 
                                 ⁢ 
                                 
                                     
                                 
                                 ⁢ 
                                 and 
                                 ⁢ 
                                 
                                     
                                 
                                 ⁢ 
                                 tentative 
                                 ⁢ 
                                 
                                     
                                 
                                 ⁢ 
                                 
                                   R 
                                   x 
                                 
                               
                               ) 
                             
                             2 
                           
                         
                         ⁢ 
                         
                           
 
                         
                         ⁢ 
                         Interference 
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         factor 
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         
                           ( 
                           OUT 
                           ) 
                         
                       
                       = 
                       
                         
                           
                             ( 
                             
                               
                                 dist 
                                 . 
                                 
                                     
                                 
                                 ⁢ 
                                 between 
                               
                               ⁢ 
                               
                                   
                               
                               ⁢ 
                               tentative 
                               ⁢ 
                               
                                   
                               
                               ⁢ 
                               
                                 T 
                                 x 
                               
                               ⁢ 
                               
                                   
                               
                               ⁢ 
                               and 
                               ⁢ 
                               
                                   
                               
                               ⁢ 
                               tentative 
                               ⁢ 
                               
                                   
                               
                               ⁢ 
                               
                                 R 
                                 x 
                               
                             
                             ) 
                           
                           2 
                         
                         
                           
                             ( 
                             
                               
                                 dist 
                                 . 
                                 
                                     
                                 
                                 ⁢ 
                                 between 
                               
                               ⁢ 
                               
                                   
                               
                               ⁢ 
                               tentative 
                               ⁢ 
                               
                                   
                               
                               ⁢ 
                               
                                 T 
                                 x 
                               
                               ⁢ 
                               
                                   
                               
                               ⁢ 
                               and 
                               ⁢ 
                               
                                   
                               
                               ⁢ 
                               scheduled 
                               ⁢ 
                               
                                   
                               
                               ⁢ 
                               
                                 R 
                                 x 
                               
                             
                             ) 
                           
                           2 
                         
                       
                     
                   
                 
               
               
                 
                     
                 
               
             
           
         
       
     
     The estimated interference factor should also be qualified by the nature of the transmission. For example, if the same frequency or code channel is used, interference will be proportionally higher. Thus, interference coefficients can be used to account for such differences, as indicated in Table 2 below. 
     
       
         
               
             
               
               
               
             
           
               
                 TABLE 2 
               
             
             
               
                   
               
               
                 Interference Coefficient For Code/Frequency Reuse 
               
             
          
           
               
                 SAME 
                   
                   
               
               
                 FREQUENCY 
                 SAME CODE 
                 INTERFERENCE COEFFICIENT 
               
               
                   
               
               
                 ✓ 
                 ✓ 
                 γ s  = 1 
               
               
                 ✓ 
                 χ 
                 γ f  = .25 (ca. 6 dB) 
               
               
                 χ 
                 ✓/χ 
                 γ n  = .0025 (ca. 26 dB) 
               
               
                   
               
             
          
         
       
     
     It should be noted that γ s  is always equal to one as it corresponds to the case where interference is maximized. Coefficient γ f  is, however, a function of the code division multiple access (CDMA) spreading gain for the system considered, while coefficient γ n  is related to adjacent channel interference, dependent on filtering properties. Using information in Table 1, it is possible for the controller  112  of a node  102 ,  106  or  107  to calculate the estimated interference generated by itself that is received by other nodes  102 ,  106  or  107  for every code/pair possibility. Results for an initial interference factor of 0.323 in Table 1 which is multiplied by the above coefficients as appropriate are set forth in Table 3 below. 
     
       
         
               
             
               
               
               
               
               
               
               
               
             
           
               
                 TABLE 3 
               
             
             
               
                   
               
               
                 Interference Factor For Each Code/Frequency Pair (one link only) 
               
             
          
           
               
                 Freq/ 
                   
                   
                   
                   
                   
                   
                   
               
               
                 Code 
                 1 
                 2 
                 3 
                 4 
                 5 
                 6 
                 7 
               
               
                   
               
               
                 1 
                 8.07E-2 
                 8.07E-2 
                 8.07E-2 
                 8.07E-2 
                 8.07E-2 
                 8.07E-2 
                 3.23E-1 
               
               
                 2 
                 8.07E-4 
                 8.07E-4 
                 8.07E-4 
                 8.07E-4 
                 8.07E-4 
                 8.07E-4 
                 8.07E-4 
               
               
                 3 
                 8.07E-4 
                 8.07E-4 
                 8.07E-4 
                 8.07E-4 
                 8.07E-4 
                 8.07E-4 
                 8.07E-4 
               
               
                   
               
             
          
         
       
     
     When a node  102 ,  106 ,  107  attempts transmission, its controller  112  must consider every neighboring node  102 ,  106 ,  107  when calculating the overall interference. This is shown in Table 4 below for two other simultaneous transmissions. To simplify Table 4, is it assumed that the transmissions from transmitter {circle around (6)} to receiver             and from transmitter {circle around (8)} to receiver           in Table 1 do not occur simultaneously with the attempted transmission from transmitter {circle around (1)} to receiver          , otherwise, their associated values shown in Table 1 would need to be included in Table 4 as well.
     
       
         
               
             
               
               
             
               
               
               
             
               
               
               
               
               
               
               
               
               
               
               
               
             
               
               
             
               
               
             
               
               
               
               
               
               
               
               
               
             
               
               
               
               
               
               
               
               
               
             
               
               
               
               
               
               
               
               
               
             
           
               
                 TABLE 4 
               
               
                   
               
             
             
               
                 Final interference factor estimation for one attempted transmission 
               
             
          
           
               
                   
                 Attempted Transmission to 
               
               
                   
                 
                           
                 
               
             
          
           
               
                 Interference Table for Unit {circle around (1)} 
                   
                 IN 
               
             
          
           
               
                 FROM 
                 TO 
                 FREQ 
                 CODE 
                 F/C 
                 1 
                 2 
                 3 
                 4 
                 5 
                 6 
                 7 
               
               
                   
               
               
                 {circle around (3)} 
                 
                           
                 
                 1 
                 7 
                 1 
                 8.07E-2 
                 8.07E- 
                 8.07E- 
                 8.07E- 
                 8.07E- 
                 8.07E- 
                 3.23E- 
               
               
                   
                   
                   
                   
                   
                   
                 2 
                 2 
                 2 
                 2 
                 2 
                 2 
               
               
                   
                   
                   
                   
                 2 
                 8.07E- 
                 8.07E- 
                 8.07E- 
                 8.07E- 
                 8.07E- 
                 8.07E- 
                 8.07E- 
               
               
                   
                   
                   
                   
                   
                 4 
                 4 
                 4 
                 4 
                 4 
                 4 
                 4 
               
               
                   
                   
                   
                   
                 3 
                 8.07E- 
                 8.07E- 
                 8.07E- 
                 8.07E- 
                 8.07E- 
                 8.07E- 
                 8.07E- 
               
               
                   
                   
                   
                   
                   
                 4 
                 4 
                 4 
                 4 
                 4 
                 4 
                 4 
               
               
                 {circle around (4)} 
                 
                           
                 
                 3 
                 6 
                 1 
                 3.08E- 
                 3.08E- 
                 3.08E- 
                 3.08E- 
                 3.08E- 
                 3.08E- 
                 3.08E- 
               
               
                   
                   
                   
                   
                   
                 3 
                 3 
                 3 
                 3 
                 3 
                 3 
                 3 
               
               
                   
                   
                   
                   
                 2 
                 3.08E- 
                 3.08E- 
                 3.08E- 
                 3.08E- 
                 3.08E- 
                 3.08E- 
                 3.08E- 
               
               
                   
                   
                   
                   
                   
                 3 
                 3 
                 3 
                 3 
                 3 
                 3 
                 3 
               
               
                   
                   
                   
                   
                 3 
                 3.08E-1 
                 3.08E- 
                 3.08E- 
                 3.08E- 
                 3.08E- 
                 3.08E- 
                 3.08E- 
               
               
                   
                   
                   
                   
                   
                   
                 1 
                 1 
                 1 
                 1 
                 0 
                 1 
               
             
          
           
               
                   
                 Attempted Transmission to 
               
               
                   
                 {circle around (7)} 
               
             
          
           
               
                   
                 OUT 
               
             
          
           
               
                   
                 1 
                 4E-3 
                 4E-3 
                 4E-3 
                 4E-3 
                 4E-3 
                 4E-3 
                 1.6E- 
               
               
                   
                   
                   
                   
                   
                   
                   
                   
                 2 
               
               
                   
                 2 
                 4E-5 
                 4E-5 
                 4E-5 
                 4E-5 
                 4E-5 
                 4E-5 
                 4E-5 
               
               
                   
                 3 
                 4E-5 
                 4E-5 
                 4E-5 
                 4E-5 
                 4E-5 
                 4E-5 
                 4E-5 
               
               
                   
                 1 
                 2.11E- 
                 2.11E- 
                 2.11E- 
                 2.11E- 
                 2.11E- 
                 2.11E- 
                 2.11E- 
               
               
                   
                   
                 3 
                 3 
                 3 
                 3 
                 3 
                 3 
                 3 
               
               
                   
                 2 
                 2.11E- 
                 2.11E- 
                 2.11E- 
                 2.11E- 
                 2.11E- 
                 2.11E- 
                 2.11E- 
               
               
                   
                   
                 3 
                 3 
                 3 
                 3 
                 3 
                 3 
                 3 
               
               
                   
                 3 
                 2.11E- 
                 2.11E- 
                 2.11E- 
                 2.11E- 
                 2.11E- 
                 8.46E- 
                 2.11E- 
               
               
                   
                   
                 1 
                 1 
                 1 
                 1 
                 1 
                 1 
                 1 
               
               
                   
                 1 
                 6.11E- 
                 6.11E- 
                 6.11E- 
                 6.11E- 
                 6.11E- 
                 6.11E- 
                 6.11E- 
               
               
                   
                   
                 3 
                 3 
                 3 
                 3 
                 3 
                 3 
                 3 
               
               
                   
                 2 
                 2.15E- 
                 2.15E- 
                 2.15E- 
                 2.15E- 
                 2.15E- 
                 2.15E- 
                 2.15E- 
               
               
                   
                   
                 3 
                 3 
                 3 
                 3 
                 3 
                 3 
                 3 
               
               
                   
                 3 
                 2.11E- 
                 2.11E- 
                 2.11E- 
                 2.11E- 
                 2.11E- 
                 8.46E- 
                 2.11E- 
               
               
                   
                   
                 1 
                 1 
                 1 
                 1 
                 1 
                 1 
                 1 
               
             
          
           
               
                 SUM 
                 1 
                 8.38E-2 
                 8.38E- 
                 8.38E- 
                 8.38E- 
                 8.38E- 
                 8.38E- 
                 3.54E- 
               
               
                   
                   
                   
                 2 
                 2 
                 2 
                 2 
                 2 
                 2 
               
               
                   
                 2 
                 3 9E 3 
                 3.9E- 
                 3.9E-3 
                 3.9E-3 
                 3.9E-3 
                 3.9E-3 
                 3.9E- 
               
               
                   
                   
                   
                 3 
                   
                   
                   
                   
                 3 
               
               
                   
                 3 
                 3.09E- 
                 3.09E- 
                 3.09E- 
                 3.09E- 
                 3.09E- 
                 1.23E- 
                 3.09E- 
               
               
                   
                   
                 1 
                 1 
                 1 
                 1 
                 1 
                 0 
                 1 
               
             
          
           
               
                   
                 F/C 
                 1 
                 2 
                 3 
                 4 
                 5 
                 6 
                 7 
               
               
                   
               
               
                 FINAL RESULT 
                 1 
                 8.99E- 
                 8.99E- 
                 8.99E- 
                 8.99E- 
                 8.99E- 
                 8.99E- 
                 8.99E- 
               
               
                 (sum of IN and OUT) 
                   
                 2 
                 2 
                 2 
                 2 
                 2 
                 2 
                 2 
               
               
                   
                 2 
                 6E- 
                 6E- 
                 6E- 
                 6E- 
                 6E- 
                 6E- 
                 6E- 
               
               
                   
                   
                 3 
                 3 
                 3 
                 3 
                 3 
                 3 
                 3 
               
               
                   
                 3 
                 5.20E- 
                 5.20E- 
                 5.20E- 
                 5.20E- 
                 5.20E- 
                 2.08E- 
                 5.20E- 
               
               
                   
                   
                 2 
                 2 
                 2 
                 2 
                 2 
                 2 
                 2 
               
               
                   
               
             
          
         
       
     
     It should be noted that the set of values in the “SUM” section are equal to the sums of the respective set of values in the above two sections. For example, the value of 8.38E-2 (which is interpreted as 8.38*10 −2 ) in row 1, column 1, of the “IN” portion of the “SUM” section is equal to the sum of the value 8.07E-2 in row 1, column 1, of the “IN” portion showing the interference for transmission from transmitter {circle around (3)} to receiver             on frequency channel 1, code channel 7, and the value 3.08E-3 in row 1, column 1, of the “IN” portion showing the interference for transmission from transmitter {circle around (4)} to receiver           on frequency channel 3, code channel 7.
     For each possible code/frequency pair, the system determines how much incoming and outgoing interference would be generated if this code/frequency pair was to be used concurrently with other code/frequency pairs that neighboring units are scheduled to use. The final result is used to determine the best possible code/frequency pair combinations by selecting the lowest available interference value, which corresponds to the impact of the current transmission on overall Multiple Access Interference (MAI). The values in the FINAL RESULT section are equal to the sum of the values in the rows and columns of the “IN” portion of the SUM section and the values in the corresponding rows and columns of the “OUT” portion of the SUM section. For example, the value 8.99E-2 in row 1, column 1 of the FINAL RESULT section is equal to the value of 8.38E-2 in row 1, column 1 of the “IN” portion of the SUM section plus the value of 6.11E-3 in row 1, column 1 of the “OUT” portion of the SUM section. In the present scenario, the obvious result is that frequency 2 with any code 1 through 7 should be used, because the estimated interference is 6E-3 for any code. 
     Although the interference calculation method presented herein only provides a measure of the impact of a tentative transmission on overall MAI by summing individual interference factors (weighted by interference coefficients), a different mathematical combination of individual interference factors may also be used. For example, packets minimizing outgoing interference (instead of both outgoing and incoming interference) may be given priority by applying a greater weight to the outgoing interference factors. 
     In addition, regardless of whether concurrent transmissions originating from the current unit are possible or not, this methodology is also a means of prioritizing data packets in a queue in, for example, the memory  114  of a node  102 ,  106 ,  107 , with the most favorable data packets being sent first. It is also possible to group those that may be transmitted at the same time when a multicast addressing mode is considered. 
     As will now be discussed, a simulation was run to determine how the algorithm performs in dense geometries where frequency/code collisions are very likely to occur. It also provides a means to compare the effectiveness of this method with previous implementations. 
       FIG. 6  is a conceptual diagram illustrating a configuration of nodes  102 ,  106 ,  107  of the network  100  in which channel utilization is determined based on the technique according to the embodiment of the present invention discussed above, which can be referred to as the “minimum interference” technique. By estimating relative interference between all neighboring nodes  102 ,  106 ,  107  in the manner described above, the best code/frequency pair can be selected to ensure that planned transmissions will be able to occur. As indicated, the pathologies previously described with regard to  FIGS. 1 and 2  in the Background section above are not present when this minimum interference technique is performed. Furthermore, as indicated by the triangles, squares and hexagons, the identical code/frequency pairs are used by nodes that are far apart. 
     In addition, tests were performed to compare the number of idle nodes out of a total of 144 equally spaced nodes in a 12-by-12 grid. An idle node is a unit that elects not to transmit any packet either because the estimated interference (incoming or outgoing) is above a certain threshold (for the “frequency collision threshold” and the “code/frequency collision threshold” methods) or because the minimum estimated interference (for the “minimum interference” method) is too high. Multiple access interference is defined here as the mean of the relative interference factors (as defined in equation 1) weighted by their respective interference coefficient (as defined in Table 2) at every node in the network. It can thus be calculated knowing the interference factor IF(l,k) and the interference coefficient γ(l,k) between each node pair l and k, using the following formulae: 
                       Multiple   ⁢           ⁢   access   ⁢           ⁢   Interference   ⁢           ⁢   calculations     ⁢     
     ⁢     MAI   total     =         ∑     k   =   1     N     ⁢           ⁢     MAI   k       N       ⁢           ⁢     
     ⁢       MAI   k     =       ∑       l   =   1     ⁢     
     ⁢     l   ≠   k       N     ⁢           ⁢       IF   ⁡     (     l   ,   k     )       ×     γ   ⁡     (     l   ,   k     )                     Equation   ⁢           ⁢   2               
where N is the total number of units in the network.
 
     In this test (where the number of idle units is measured), multiple access interference is kept constant (at an arbitrary value of 0.018). Results of the testing are set forth in Table 5 below, which demonstrates that careful planning improves channel usage significantly. 
     
       
         
               
             
               
               
               
             
               
               
               
             
           
               
                 TABLE 5 
               
             
             
               
                   
               
               
                 Number of Idle Unit 
               
             
          
           
               
                   
                 Method 
                 No of Idle Units 
               
               
                   
                   
               
             
          
           
               
                   
                 Frequency collision 
                 12 
               
               
                   
                 threshold 
               
               
                   
                 frequency/code collision 
                 8 
               
               
                   
                 threshold 
               
               
                   
                 Minimum interference 
                 5 
               
               
                   
                   
               
             
          
         
       
     
     An identical test was performed where the number of idle units was kept at an arbitrary value of 12 (by varying various thresholds). Table 6 below shows that multiple access interference is greatly reduced by careful frequency/code allocation, enabling higher data rates to be used. 
     
       
         
               
             
               
               
               
             
           
               
                 TABLE 6 
               
             
             
               
                   
               
               
                 Multiple Access Interference 
               
             
          
           
               
                   
                 Method 
                 MAI 
               
               
                   
                   
               
               
                   
                 Frequency collision 
                 0.018 
               
               
                   
                 threshold 
               
               
                   
                 Frequency/code collision 
                 0.014 
               
               
                   
                 threshold 
               
               
                   
                 Minimum interference 
                 0.013 
               
               
                   
                   
               
             
          
         
       
     
     It should be further noted that the channel allocation techniques according to the embodiments of the invention discussed above are not limited to a CDMA/FDMA/TDMA combination, but could be included in any multiple-access system. Specifically, these techniques can be adapted to any multiple-access system which has various degrees of interference levels, since they provide a simple, effective way of achieving a completely automated resource reuse protocol. However, as demonstrated above, the techniques are preferably usable in systems which require resources to be dynamically allocated, such as ad-hoc networks. Additionally, the techniques can be simplified to a “frequency selection scheme” where codes are assigned randomly, as long as there is a sufficient number of codes available. Furthermore, the techniques according to the embodiments of the invention discussed above are applicable to slotted/unslotted network protocols and to unicast/multicast addressing modes. 
     Although only a few exemplary embodiments of the present invention have been described in detail above, those skilled in the art will readily appreciate that many modifications are possible in the exemplary embodiments without materially departing from the novel teachings and advantages of this invention. Accordingly, all such modifications are intended to be included within the scope of this invention as defined in the following claims.