Abstract:
A method and system for multi-user wireless communications between a sender and a receiver enables effective blocking of interference signals by other senders and improving the channel data rate. The receiver uses two or more receiving devices, such as antennas or smart antennas, to receive multiple wireless input signals. By performing a noise-transparent autocorrelation matching analysis on the multiple input signals, the receiver derives an anti-interference filter for interference-blocking action, without the need for information of the interfering and its transmission channel. In a multi-user environment, the noise-transparent autocorrelation matching analysis is implemented by the Autocorrelation Division Multiple Access (ADMA) system that includes the design and the implementation of ADMA code, the ADMA encoder, the ADMA algorithm and the ADMA decoder.

Description:
RELATED APPLICATIONS 
       [0001]    This application claims the priority of U.S. Provisional Patent Application No. 60/940,330 filed May 25, 2007. This is also a continuation-in-part of U.S. patent application Ser. No. 12/123,992, filed May 20, 2008, which is a continuation of U.S. patent application Ser. No. 11/002,161, now issued U.S. Pat. No. 7,376,394 entitled “METHOD AND SYSTEM FOR WIRELESS COMMUNICATIONS USING ANTI-INTERFERENCE TO INCREASE DATA TRANSMISSION RATE,” which claims priority to U.S. Provisional Patent Application No. 60/526,512, filed Dec. 3, 2003, all of which are hereby incorporated by reference in their entirety for everything that they describe. 
     
    
     FIELD OF THE INVENTION 
       [0002]    This invention relates generally to wireless communications, and more particularly to Autocorrelation Division Multiple Access (ADMA) system and autocorrelation matching algorithms that blocks multiple access interference and co-channel interference to achieve improved channel data rate and increased number of users within limited spectrum. 
       BACKGROUND 
       [0003]    Wireless communications have become a major way of communications and in many applications are replacing conventional land-based communication systems. There are many kinds of wireless communication systems, such as the cellular phone system, the wireless LAN, and the WiMAX. The most commonly used system is the cellular system, and the other wireless communication systems such as WiFi and WiMax are growing rapidly. 
         [0004]    The users of a wireless channel may be, for instance, a cellular phone, a laptop computer, etc. Many users may share same communication channel. Therefore, they interfere with each other. A typical communication objective is for the receiver to receive the transmitting signal from a specific user with whom the receiver wants to communicate. In order to achieve this objective, multiple access systems are used. Typical multiple access systems are the Frequency Division Multiple Access technology (FDMA), the Time Division Multiple Access technology (TDMA), and the Code Division Multiple Access technology (CDMA). Each multiple access system establishes its own rules for their users and uses base stations to regulate their users to achieve this objective. 
         [0005]    One common problem frequently encountered in wireless communications is the presence of interfering signals transmitted by devices other than the particular sender with which the receiver wants to communicate. Depending on the types of the wireless communications, interferences can be classified in many ways. It may be intentional, such as the jamming of military wireless transmissions. It may be accidental and resulting from having multiple users who are sharing a common wireless channel with or without the same base station that regulates the particular user. The interferences resulting from users with the same base station are called the multiple access interferences (MAI). All others are called the co-channel interferences. For simplicity, both interferences are lumped into one word interferences. 
         [0006]    The presence of interferences can severely compromise the ability of the receiver to discern the signal from the intended sender, resulting in a significant reduction of the channel data rate for the wireless transmissions from the sender to the receiver. In the cellular system, multiple access systems have been used to combat the multiple access interference with the support of a base station. The three commonly used multiple access technologies are the FDMA, the TDMA, and the CDMA. In FDMA, the users are assigned non-overlapping frequency slots (by the base station), and hence the multiple access interference can be avoided. Similarly, in TDMA the users are assigned non-overlapping time-slots, and in CDMA users are assigned ‘non-overlapping’ orthogonal codes. Because of the power limitation of the base station, the area of the cell it controls is limited to its neighborhood. Therefore, any user outside the cell can not be controlled by this base station, and hence may interfere with the users in the cell. 
         [0007]    Interferences in wireless transmissions are also a serious issue for Wireless Local Area Network (LAN). A wireless LAN uses part of the frequency spectrum that is free to everybody and hence it costs nothing to use the spectrum. It uses the internet to reach the outside world and hence it again costs nothing. However, the interferences between the users can be significant because this part of spectrum is unregulated. This is one of the major challenges for wireless LAN. The current technology confines it to be in a local area with limited users. It does not allow it to be developed to reach its full commercial potential value. WiFi is one kind of Wireless LAN and hence shares the same advantages and challenges. Interferences between the users also exist in ad hoc network, a closed wireless communication network but without a based station for central command. 
         [0008]    The number of users that is allowed within a fixed spectrum is also limited by the interference. Each company is assigned a total spectrum for its exclusive use. According to its multiple access system, the total spectrum is then divided into a number of “personal spectrums”. These personnel spectrums are preferred to be non-overlapping so that there are no interferences between users. This limits the number of users that is allowed within a fixed spectrum. However, higher data rate would demand a wider personal spectrum for the users. This could cause serious interferences between the users because of the heavy overlapping of their personal spectrums. Therefore, an effective way of blocking these interferences would have the potential of increasing the number of users within a fixed spectrum. 
         [0009]    In view of the foregoing, there is a vital need for a way to effectively counter the negative effects of interfering signals and to enhance the channel data rate of wireless communications between a sender and a receiver in the presence of interfering signals, and to increase the number of users within a fixed spectrum. 
         [0010]    With the thirst of ever increasing higher data rate by demand, the current multiuser wireless communications systems have difficult to fulfill the challenge for future generations of multiple access systems. For example, the required data rate for digital voice is less than 64 Kbps, Standard Digital TV (SDTV) is 3-6 Mbps, and High Definition TV (HDTV) is 18-24 Mbps. On the other hand, the data rate of 2 G cellular system is about 140 kbps that is enough to support digital voice and text transmission. The 3 G standards call for data rates up to 2 Mbps which can support the transfer of SDTV. Future wireless data applications such as broadband Internet access, interactive 3D gaming, and high quality audio and video entertainment, each of them may require a date rate of 1-5 Mbps, which is much higher than current cellular phone system can provide. 
         [0011]    The invention of the specific MIMO multiple access system described in this patent application can reduce substantially the interferences at the receiver and hence increases significantly the channel data rate, without the increase of spectrum bandwidth. A positive consequence of this is the increase of number of users within a fixed spectrum. 
       BRIEF SUMMARY OF THE INVENTION 
       [0012]    The presented invention provides a multiple access system and algorithms, called the Autocorrelation Division Multiple Access system (ADMA) and ADMA Algorithms, which substantially block interferences at the receiver; thereby allowing the channel data rate to be significantly improved. This multiple access system and the algorithms provide an implementation of the Noise-Transparent Autocorrelation Matching Analysis given in U.S. patent application Ser. No. 11/002,161. 
         [0013]    In the invention of ADMA System, the signal of each user is encoded with a unique code, called the ADMA code. The coded signal, called the ADMA signal, is used for the transmission through the wireless channel to the receiver from one or more transmitting antennas. The receiver receives a plurality of input signals by using, for example, two or more receiving devices (e.g., antennas or smart antennas). Each received signal contains a signal component that is from the designated user signal corresponding to wireless transmissions from an intended sender, and an interference component that is from one or more interferences corresponding to wireless transmissions from other users (i.e. multiple access interference) and/or to co-channel interference sources. The signal component is then extracted from the received signals by a filter, called the ADMA Filter, by which the interference component is substantially blocked. This is possible because the filter is designed to be orthogonal to the channel vectors of interferences. In this invention the ADMA filter is obtained without the knowledge of the channel vectors of interferences which sometimes are neither known to the receiver nor can be accurately estimated using pilot signal techniques under heavy interferences. Finally, the designated signal is recovered from the signal component by a decoder, call the ADMA decoder. 
         [0014]    According to the invention, the ADMA filter is derived in the following way: Each user signal is first coded with a unique ADMA code. Then the coded signal is used to be transmitted through the channel. The Noise-Transparent Autocorrelation Matching Analysis is then implemented at the receiver by applying specially designed algorithms to the unique ADMA code assigned to the designated signal, by which the ADMA filter is obtained. The filter obtained is of a high degree of accuracy because the accuracy is not compromised by the noise. The algorithms and the ADMA codes are part of the invention. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0015]      FIG. 1  is a scenario of the wireless communications. The wireless LAN system is represented by the computer users  1  and  2  and the wireless router. The mobile system is represented by the mobile phone users  1 ,  2 ,  3 , and a base station not shown in the Figure. Any two users can communicate with each other via the wireless router, the base station (not shown) or via the internet (not shown). Besides the mobile phone system and wireless LAN system, the same spectrum is also shared by Bluetooth and remote controller users. These users cause co-channel interference to the mobile phone and wireless LAN systems. The communication between any pair can be interfered by other users. 
           [0016]      FIG. 2  is the schematic diagram of the ADMA System, showing an embodiment of the invention in which the channel data rate of wireless communications between a sender and a receiver is enhanced by an ADMA filter that blocks interference signals in accordance with the invention. 
           [0017]      FIG. 3  is the schematic diagram of the ADMA Filter and its Control Module, showing an embodiment of the invention in which the interference component of the received signal ( 3 - 1 ) is substantially blocked by the ADMA Filter at the receiver in accordance with the invention. 
           [0018]      FIG. 4  is the schematic diagram of the ADMA transmitter showing an embodiment of the invention in which the user signals are coded by ADMA encoder to make them ADMA signals that is used to be transmitted into the channel in accordance with the invention. 
           [0019]      FIG. 5  is the schematic diagram of the ADMA receiver showing an embodiment of the invention in which the component of interferences of the received signals is blocked by the ADMA Filter to give the component of the signal from which the desired user signal is obtained by the ADMA Decoder, in accordance with the invention. 
           [0020]      FIG. 6  provides an illustration on how multiple ADMA transceivers may be positioned with respect to each other and to co-channel interferences in a typical multi-user wireless system. 
           [0021]      FIG. 7  is the ADMA Encoder for Natural ADMA Code implemented by a Feedforward Shift Register 
           [0022]      FIG. 8  is the ADMA Decoder for Natural ADMA Code implemented by a Feedback Shift Register. 
           [0023]      FIG. 9  is the Feedforward Shift Register in the general form to be designed for the ADMA Encoder for a PLI ADMA code. 
           [0024]      FIG. 10  is the Feedback Shift Register in the general form to be designed for the ADMA Decoder for a PLI ADMA code. 
       
    
    
     DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS 
     I. Description of the ADMA Systems 
       [0025]    The ADMA System has the potential to be used to almost all wireless system, such as cellular systems, wireless LAN, and ad hoc systems. In  FIG. 1 , the mobile system is represented by mobile phone user  1 ,  2 ,  3 , and a base station (not shown). Any two mobile users can communicate with each other via the base station. The Ad Hoc system is represented by mobile user  1 ,  2 , and  3  but without base station. The wireless LAN system is represented by two computer users  1 ,  2  and the wireless router. Any two computer users can communicate with each other via the wireless router. Any communication between a pair of users (the solid line) can be interfered by any other user (dotted line) including Bluetooth user and remote controller user. 
         [0026]    A cellular system is a closed mobile system that operates in a (private) licensed spectrum. No other user without the license can operate in this spectrum. Therefore the interference from outside of the system can be kept to a minimum. However, limited spectrum put a limit on the number of users to be operated at the same time. Any extra users would become interferences to others. Therefore, one way to increase the number of users beyond this limit is to have a new multiple access system that can reduce these interferences. 
         [0027]    From another point of view, wireless communication in the unlicensed spectrum such as in 2.4 GHz, where is operated by wireless LAN, Bluetooth, wireless remote controller and microwave oven. All these systems can operate in this spectrum without a license. Therefore, interferences can be a major concern which put a direct impact to the data rate. It is needed to have a new multiple access system that can reduce these interferences. 
         [0028]    ADMA is a multiple access system that substantially reduces the interference and hence increases the number of users in the licensed spectrum and increases the date rate in the unlicensed spectrum. ADMA can be implemented by one or more computer processors. The instruction can be stored on a computer readable medium such as hard drive or flash memory. 
       1. The Architecture of ADMA System: 
       [0029]    By invention, the architecture of the Autocorrelation Division Multiple Access system (ADMA) is shown in  FIG. 2 . It consists of the ADMA Transmitter ( 2 - 2  and  2 - 11 ; also,  4 - 2  and  4 - 4  in  FIG. 4 ), the ADMA Receiver ( 2 - 12 ,  2 - 6 , and  2 - 8 ; also  5 - 1 ,  5 - 3 ,  5 - 5  in  FIG. 5 ) and the wireless channel ( 2 - 4 ). The ADMA Transmitter consists of the ADMA Encoder ( 2 - 2 ; also  4 - 2  in  FIG. 4 ) and the multiple-antenna transmitting system ( 2 - 11 ; also  4 - 4  in  FIG. 4 ). The ADMA Receiver consists of the multiple-antenna receiving system ( 2 - 12 ; also  5 - 1  in  FIG. 5 ), the ADMA Filter and the Control Module ( 2 - 6 ; also  5 - 3  in  FIG. 5 ), and the ADMA Decoder ( 2 - 8 ;  5 - 5  in  FIG. 5 ). The ADMA Filter and its Control Module is imbedded in ( 2 - 6 ) for  FIG. 2 , and described in detail in  FIG. 3  as ( 3 - 2 ) and ( 3 - 4 ) respectively. 
         [0030]    The autocorrelation of a signal u(t), denoted by ρ u (τ) is a sequence of numbers that is uniquely determined by the signal itself. Mathematically, it is defined by 
         [0000]      ρ u (τ)= Ex{u ( t ) u *( t−τ )}, for τ=0, 1, 2, . . . 
         [0000]    where u* is the complex conjugate of u, Ex{ } is the expectation operator, and τ is called the time-lag variable of the autocorrelation. The significance of the autocorrelation of a signal is that it carries the information of the power distribution of the signal in the frequency spectrum. 
         [0031]    Noise signal n exists everywhere and it is a major handicap for wireless communication. The distribution of noise signal is white and Gaussian with variance ρ n   2 . Therefore, its autocorrelation, denoted by ρ n  has the property that 
         [0000]    
       
         
           
             
               
                 ρ 
                 n 
               
                
               
                 ( 
                 τ 
                 ) 
               
             
             = 
             
               { 
               
                 
                   
                     
                       σ 
                       n 
                       2 
                     
                   
                   
                     
                       
                         for 
                          
                         
                             
                         
                          
                         τ 
                       
                       = 
                       0 
                     
                   
                 
                 
                   
                     0 
                   
                   
                     
                       
                         for 
                          
                         
                             
                         
                          
                         τ 
                       
                       &gt; 
                       0 
                     
                   
                 
               
             
           
         
       
     
         [0000]    Note that the autocorrelation of noise is zero on the set of time-lag variables, τ&gt;0, or τ=1,2, . . . . This set of time-lag variables is called the noise-transparent set because the autocorrelation of noise is zero on this set. We will later show as an invention how the computation of the ADMA filter is performed on the noise-transparent set and hence the accuracy of the computation is not much compromised by the noise. 
       2. The ADMA Transmitter 
       [0032]    The ADMA Transmitter first assigns each user a unique identification number, called the ADMA code. By invention, these ADMA codes are specially designed and the Natural code, the Pairwise Linearly Independent code and the Zero-Block code are presented. The next objective of the ADMA transmitter is to transform each user signal to a coded signal, called the ADMA signal in such a way that the autocorrelation of the coded signal is the same as the respective ADMA code on the noise-transparent set of time-lag variables. These ADMA signals are then transmitted by the multiple-antenna transmitting system to the wireless channel. 
         [0033]    Each user signal is fed into a respective encoder, called the ADMA encoder ( 2 - 2 ). The ADMA encoder transforms the user signal into a coded signal, called the ADMA signal. By invention, the ADMA encoder is designed in such a way that the autocorrelation of the ADMA signal on a noise-transparent set is the same as the ADMA code assigned to the respective user. Therefore, each ADMA signal carries an identification number in the form of ADMA code, and these ADMA signals are then transmitted by the multiple-antenna transmitting system ( 2 - 11 ) into the wireless channel ( 2 - 4 ). Based on these ADMA codes, the receiver is able to identify the ADMA signals. 
         [0034]    Among the user signals, one of them is the designated one (heavy  2 - 1 ) that is the one the receiver intends to communicate with. Correspondingly, the designated ADMA signal is then transmitted together with other ADMA signals through the wireless channel ( 2 - 4 ). The co-channel interferences ( 2 - 10 ) are then mixed with these ADMA signals in the wireless channel. 
       3 The ADMA Receiver 
       [0035]    In the receiving side, at least two received signals ( 2 - 5 ) are received by multiple-antenna (at least two) receiving system ( 2 - 12 ). Each of the received signals ( 2 - 5 ) is a mixture of ADMA signals, the co-channel interferences ( 2 - 10 ) and the noise (not shown). One of the ADMA signals is the designated one. These received signals are then fed into the receiver of ADMA. The function of the receiver is to isolate the desired user signal from other user signals and co-channel interferences by implementing the Noise-Transparent Autocorrelation Matching Analysis on the multiple received signals as shown in U.S. Pat. No. 7,376,394. 
         [0036]    The receiver of ADMA contains at least four components: the multiple receiving antennas ( 2 - 12 ), the ADMA Filter ( 3 - 2 ), the Control Module ( 3 - 4 ) and they are all limped in ( 2 - 6 ), and the ADMA decoder ( 2 - 8 ). 
         [0037]    There are at least two received signals from at least two antennas. Each received signal is a mixture of all the ADMA signals and the co-channel interferences. As shown in  FIG. 3 , all these received signals ( 3 - 1 ) are fed into a filter, called the ADMA Filter ( 3 - 2 ). The output ( 3 - 6 ) of ADMA Filter is a weighted sum of these received signals ( 3 - 1 ). The objective of the ADMA Filter is to assign proper weights to the incoming received signals, in such a way that all signals other than the designated ADMA signal are essentially cancelled and only the designated ADMA signal is retained essentially in the output of the ADMA filter. 
         [0038]    The function of the Control Module ( 3 - 4 ) of the ADMA Filter is to compute and instruct ( 3 - 5 ) the ADMA filter ( 3 - 2 ) its proper weight. This is achieved by the invention ADMA algorithm to match the autocorrelation of the output signal of the filter to the designated ADMA code on the noise-transparent set, with the information of the input signals ( 3 - 1 ) and the output signal ( 3 - 6 ) of the ADMA Filter and the ADMA code of the designated users ( 3 - 3 ) As such, based on the U.S. patent application Ser. No. 11/002,161 on Noise-Transparent Autocorrelation Matching Analysis, the proper weight of the ADMA Filter is computed and its accurately is not much compromised by the noise. Consequently, all the ADMA signals other than the designated ADMA signal and the co-channel interferences are substantially blocked. Hence, the output of the ADMA Filter consists of essentially the designated ADMA-signal ( 2 - 7 ). 
         [0039]    This designated ADMA signal is then fed into the ADMA decoder ( 2 - 8 ). The function of ADMA decoder is to perform the inverse of the ADMA encoder. Therefore, with the designated ADMA signal as its input, its out is essentially the designated user signal ( 2 - 9 ). 
         [0000]    4. Multi-User System with ADMA Transceivers 
         [0040]    A typical implementation of ADMA is illustrated in  FIG. 6 . In the closed multi-user system, each user uses an ADMA transceiver ( 6 - 1 ). Each ADMA transceiver is assigned an ADMA code known to all the transceiver in the closed system. There is an ADMA transmitter ( 6 - 2 ) and an ADMA receiver ( 6 - 3 ) built in the transceiver. The co-channel interferences are transmitted from separate sources ( 6 - 5 ). The communication between any two users (transceivers) is represented by the heavy double header arrow, while the interferences from other users (multiple access interference) and co-channel interferences are represented by solid arrows. By using of the ADMA transceivers, the communication between any two users will have little interferences. 
       II. Components of ADMA Systems 
       [0041]    The invention Autocorrelation Division Multiple Access system (ADMA) is a multiple access system that includes (1) ADMA Code, (2) ADMA Encoder, (3) ADMA Filter, (4) Control Module of ADMA Filter, and (5) ADMA Decoder. The combination of them creates an implementation of the noise-transparent Autocorrelation Matching Analysis, in the following manner. At the transmission side, as an invention all transmitting signals are ADMA signals each of which carries the identification, or the ADMA code of the respective user signal. At the receiving side, the received signals from the multiple-antenna receiving system are the input to the ADMA Filter. Based on the invention, this filter is adjusted and determined by its Control Module in such a way that the autocorrelation of the output of the filter matches the designated ADMA code on a noise-transparent set of time lag values. Based on U.S. patent application Ser. No. 11/002,161 on noise-transparent Autocorrelation Matching Analysis, the ADMA Filter substantially removes the interference components from the received signal. 
         [0042]    In the following, as an illustration of the general method, some of the ADMA codes, their ADMA matching algorithms and their ADMA encoder/decoder are given. As an invention, the ADMA codes given below has the property that the weights of ADMA Filter can have a closed form solution computed by ADMA algorithms. The first ADMA system is given below: 
       (1) The Natural ADMA Code ( 2 - 13 ) 
       [0043]    Each user who accesses the ADMA system is assigned a unique identification number, called the ADMA code ( 2 - 13 ). An ADMA code C is a sequence of say K numbers, represented by 
         [0000]        C =( c   1   ,c   2   , . . . c   k ) 
         [0000]    For N number of users ( 2 - 1 ), there will be N number of ADMA codes, represented by 
         [0000]        C   i =( C   i1   ,c   i2   , . . . , c   iK ), i= 1,2, . . . ,  N    
         [0000]    where C i  represents the ADMA code for the i th  user. The design of ADMA codes is unique. 
         [0044]    As an invention, the natural ADMA codes is first presented here, 
         [0000]    
       
         
           
             
               
                 
                   
                     C 
                     1 
                   
                   = 
                     
                    
                   
                     ( 
                     
                       
                         1 
                         , 
                         0 
                         , 
                         0 
                       
                       , 
                       … 
                        
                       
                           
                       
                       , 
                       0 
                     
                     ) 
                   
                 
               
             
             
               
                 
                   
                     C 
                     2 
                   
                   = 
                     
                    
                   
                     ( 
                     
                       
                         0 
                         , 
                         1 
                         , 
                         0 
                       
                       , 
                       … 
                        
                       
                           
                       
                       , 
                       0 
                     
                     ) 
                   
                 
               
             
             
               
                 
                   ⋮ 
                    
                   
                       
                   
                 
               
             
             
               
                 
                   
                     C 
                     N 
                   
                   = 
                     
                    
                   
                     ( 
                     
                       
                         0 
                         , 
                         0 
                          
                         
                             
                         
                          
                         … 
                       
                        
                       
                           
                       
                       , 
                       
                         0 
                         , 
                         1 
                       
                     
                     ) 
                   
                 
               
             
           
         
       
     
         [0000]    The i th  user is assigned the i th  ADMA code C i . 
       (2) ADMA Encoder ( 2 - 2 ) for Natural ADMA Codes 
       [0045]    In order to achieve a better data rate, the user signals are usually chosen to be white with unit variance. 
         [0046]    As an invention, the ADMA encoder is designed to transform the user signal to an ADMA signal the autocorrelation of which is the same as the ADMA code of the user signal on the noise-transparent set. Specifically, the i th  ADMA Encoder ( 2 - 2 ) for natural ADMA codes is a shift register as shown in  FIG. 7 . The input signal to the shift register is the i th  user signal u i  and the output signal s i  of the shift register is the ADMA signal for the i th  ADMA encoder. The mathematical relation between the two is given by 
         [0000]    
       
         
           
             
               
                 S 
                 i 
               
                
               
                 ( 
                 t 
                 ) 
               
             
             = 
             
               
                 2 
                  
                 
                   
                     u 
                     i 
                   
                    
                   
                     ( 
                     t 
                     ) 
                   
                 
               
               + 
               
                 
                   1 
                   2 
                 
                  
                 
                   
                     u 
                     i 
                   
                    
                   
                     ( 
                     
                       t 
                       - 
                       i 
                     
                     ) 
                   
                 
               
             
           
         
       
     
         [0000]    It can be shown that for any user signal u i , the autocorrelation of the output signal s i (t), denoted by ρ s     i    (τ) is the same as the i th  natural code C i  on the noise-transparent set, i.e., for τ=1,2, . . . 
         [0000]    
       
         
           
             
               
                 ρ 
                 
                   s 
                   i 
                 
               
                
               
                 ( 
                 τ 
                 ) 
               
             
             = 
             
               { 
               
                 
                   
                     1 
                   
                   
                     
                       
                         for 
                          
                         
                             
                         
                          
                         τ 
                       
                       = 
                       i 
                     
                   
                 
                 
                   
                     0 
                   
                   
                     
                       
                         for 
                          
                         
                             
                         
                          
                         τ 
                       
                       ≠ 
                       i 
                     
                   
                 
               
             
           
         
       
     
         [0000]    So, the i th  ADMA Encoder converts any i th  user signal to an ADMA signal of which the autocorrelation is the same as the i th  ADMA code. 
       (3) ADMA Filter ( 3 - 2 ) 
       [0047]    From the received signals x ( 3 - 1 ), the objective of ADMA filter w ( 3 - 2 ) is to compute in its output y ( 3 - 6 ) a weighed sum of the received signals by 
         [0000]        y ( t )= w   H   x ( t )= w   1   x   1 ( t )+ w   2   x   2 ( t )+ . . . + w   L   x   L ( t ) 
         [0000]    where (x 1 , x 2 , . . . , x L ) are the L number of received signals and (w 1 , w 2 , . . . , w L ) are the L number of weights that are to be designed. Each received signal x i (t) is a mixture of the ADMA signals and co-channel interferences. A proper weight is one that yields in the weighted sum y(t) essentially the designated ADMA signal. 
       (4) Control Module of ADMA Filter ( 3 - 4 ) 
       [0048]    The essential objective of the Control Module ( 3 - 4 ) is to compute the proper weight of the filter. Based on the U.S. patent application Ser. No. 11/002,161 on Noise-Transparent Autocorrelation Matching Analysis, this is achieved by computing the weight w so that the autocorrelation of the filter output signal y(t) is the same as the ADMA code on the noise-transparent set. 
         [0000]    As an invention, the computation of the proper weight is given in following steps. First, find a matrix R that contains all the information concerning all the interferences but not the designated user. Then, find the proper weight w such that Rw=0. 
         [0049]    Let the first user be the designated user. 
         [0000]    1. From the receiver signal x(t) ( 3 - 1 ), compute the matrix R, by the Equation shown below 
         [0000]    
       
         
           
             R 
             = 
             
               
                 ∑ 
                 
                   k 
                   = 
                   2 
                 
                 N 
               
                
               
                 Ex 
                  
                 
                   { 
                   
                     
                       x 
                        
                       
                         ( 
                         t 
                         ) 
                       
                     
                      
                     
                       
                         x 
                         H 
                       
                        
                       
                         ( 
                         
                           t 
                           - 
                           k 
                         
                         ) 
                       
                     
                   
                   } 
                 
               
             
           
         
       
     
         [0000]    Note that the case k=1 is omitted from the summation because the first user is the designated user. The matrix R contains all the auto- and cross-correlations of all the interference signals, but not that of the designated user.
 
2. The proper weight w is found by the equation
 
         [0000]      Rw=0 
         [0000]    Therefore, all the auto- and cross-correlations of all the interference signals are eliminated by the filter w, but not that of the designated user. The filter w is derived as follows. Do singular value decomposition (SVD) on the matrix R, i.e., 
         [0000]    
       
         
           
             R 
             = 
             
               
                 
                   [ 
                   
                     
                       U 
                       1 
                     
                      
                     
                       U 
                       2 
                     
                   
                   ] 
                 
                  
                 
                   [ 
                   
                     
                       
                         
                           Λ 
                           11 
                         
                       
                       
                         0 
                       
                     
                     
                       
                         0 
                       
                       
                         0 
                       
                     
                   
                   ] 
                 
               
                
               
                 [ 
                 
                   
                     
                       
                         V 
                         1 
                         H 
                       
                     
                   
                   
                     
                       
                         V 
                         2 
                         H 
                       
                     
                   
                 
                 ] 
               
             
           
         
       
     
         [0000]    where V 2  εC L×L−(M+N−1) . Then Construct the filter by 
         [0000]      w=αV 2 z 
         [0000]    for any zεC L−(M+N−1) , where α=((V 2 z) H R x (τ 1 )(V 2 z)) −1/2 . It can be shown that any filter w so constructed provides the proper weight. As such, the output of the filter is essentially the designated ADMA signal. 
         [0050]    When the solution w in Step 2 is not unique, choose the best solution according to some criterion, such as the maximum signal-to-noise ratio. 
       (5) ADMA Decoder ( 2 - 8 ) 
       [0051]    As an invention, the ADMA Decoder performs the inverse of the ADMA encoder. The ADMA decider for Natural code is a shift register as shown in  FIG. 8 . Mathematically, it can be represented by the equation, 
         [0000]    
       
         
           
             
               
                 
                   u 
                   ^ 
                 
                 1 
               
                
               
                 ( 
                 t 
                 ) 
               
             
             = 
             
               
                 
                   1 
                   2 
                 
                  
                 
                   y 
                    
                   
                     ( 
                     t 
                     ) 
                   
                 
               
               - 
               
                 
                   1 
                   4 
                 
                  
                 
                   
                     
                       u 
                       ^ 
                     
                     1 
                   
                    
                   
                     ( 
                     
                       t 
                       - 
                       
                         τ 
                         1 
                       
                     
                     ) 
                   
                 
               
             
           
         
       
     
         [0000]    where the input of this decoder is the output signal of the filter y and its output is denoted by û 1 , which is the estimation of the designated user signal u 1 . It can be shown that when the input signal is the designated ADMA signal, its output is essentially the designated user signal. 
         [0052]    It can be shown that the ADMA system with Natural ADMA code, so are the ones given below, satisfies the conditions for the noise-transparent Autocorrelation Matching Analysis. Therefore, the ADMA filter substantially removes the interference component from the received signal. 
       III. Alternative Implementation of ADMA Systems 
       [0053]    As an invention, two families of ADMA codes are given here. They are (A) the Pairwise Linearly Independent ADMA code and (B) the Zero-Block ADMA code. As an invention, they can be encoded by either the Shift Register Method or the Insertion Method, followed by specially designed ADMA algorithm and decoded respectively by Feedback Shift Register method or the Deletion method. 
         [0054]    There are alternative ADMA codes other than the natural ADMA code. Two of them are given in here as part of the invention. They are the Pairwise Linearly Independent (PLI) ADMA code as the ones given in (A) and (B), and the zero-block code as the one given in (C). There are also different ways to encode a user signal to give a specified ADMA code. Two methods are given here. They are (A) the Shift Register method and (B) the Signal Insertion method. There are also different ways to decoder a specific ADMA signal to give the user signal. The Inverse Shift Register method is used to decode the ADMA signals obtained by the Shift Register method, and the Signal Deletion method is used to decode the ADMA signals obtained by the Signal Insertion method. 
       A 
     The Pairwise Linearly Independent (PLI) Codes 
     (1) ADMA Codes ( 2 - 13 ) 
       [0055]    As an invention, the family of pair-wise linearly independent (PLI) ADMA code is presented. Consider a set of ADMA codes in the general form 
         [0000]        C   i =( c   i1   ,c   i2   , . . . , c   iK ) for i=1,2, . . . , N 
         [0000]    where K is the length of the code. The set of codes is pair-wise linearly independent (PLI) if no two codes in the set of N ADMA codes are linearly dependent. This is a very large family of codes. Almost any arbitrarily chosen set of codes is PLI. The natural code is a special case of PLI code. Once a specific PLI code is chosen, assign a unique ADMA code to each user. 
       (2a) ADMA Encoder-Shift Register ( 2 - 2 ) 
       [0056]    Given an ADMA code, there are many ways to design an ADMA encoder. One way is to design a shift register to fulfill the purpose of ADMA encoder. The general form of shift register is shown in  FIG. 9 . The input of the shift register is the user signal u(t) and its output is denoted by s(t). The mathematical relation for the general shift register is given by, 
         [0000]        s ( t )=α 0   u ( t )+α 1   u ( t− 1)+ . . . +α P   u ( t−P ) 
         [0000]    As an invention, the coefficients (α 0 , α 1 , . . . , α P ) of the Shift register is chosen so that the autocorrelation ρ s (τ) of the output s(t) is the same as the given ADMA code 
         [0000]        C =( c   1   ,c   2   , . . . , c   K ) 
         [0000]    on a noise-invariant set of time-lag variables, i.e., ρ s (τ)=c τ  for τ=1,2, . . . K. As such, the shift register converts the user signal to its ADMA signal. Such ADMA encoder exists because the shift register that implements the natural codes given in  FIG. 7  is a special case. 
       (2b) ADMA Encoder—Insertion Method 
       [0057]    For a given ADMA code, C=[c 1  c 2  . . . c K ], the ADMA encoder requires the autocorrelation ρ s (τ) of the ADMA signal s(t) to match the code words of the ADMA code on the noise-transparent set, i.e., ρ s (i)=c i  for τ=1,2, . . . , K. 
         [0058]    In a more general setting, the matching criterion of the ADMA encoder can be applied on a selected noise-transparent set τ=τ 1 ,τ 2 , . . . , τ K &gt;0. For example, the set can be a set of odd numbers τ=1,3,5, . . . , L, or a set of even numbers τ=2,4,6, . . . , L. In this more general setting, the ADMA encoder requires the autocorrelation ρ s (τ) of the ADMA signal s(t) to match the code words of the ADMA code on the selected noise-transparent set, i.e., ρ s (τ)=c i  for τ=τ 1 ,τ 2 , . . . , τ K . 
         [0059]    As an invention, the Insertion method for the ADMA encoder is presented in the more general setting. Given an ADMA code C=[c 1  c 2  . . . C K ], the objective of Insertion method is to insert more code words into the user signal u(t) in such a way that the autocorrelation of the resulting signal s(t) is the same as the ADMA code at a selected time-lag variables on the noise-transparent set τ=τ 1 ,τ 2 , . . . , τ K ≧0, i.e. ρ s (τ j )=c j  for j=1, 2, . . . , K. 
         [0060]    As part of the invention, a particular insertion sequence for the insertion method is presented here. We first construct a sequence d T =[d 1  d 2  . . . d K ], whose circular convolution at the time-lag variables 1, 2, . . . , K is the same as a given ADMA code C in the following way, 
         [0000]    Step 1 From the given ADMA code C, construct a vector {tilde over (c)} by inserting a reflecting image of C as shown 
         [0000]    
       
         
           
             
               c 
               ~ 
             
             := 
             
               [ 
               
                 
                   
                     
                       A 
                        
                       
                           
                       
                        
                       ⋮ 
                        
                       
                           
                       
                        
                       
                         c 
                         1 
                       
                     
                   
                   
                     
                       c 
                       2 
                     
                   
                   
                     … 
                   
                   
                     
                       
                         c 
                         K 
                       
                        
                       
                           
                       
                        
                       ⋮ 
                        
                       
                           
                       
                        
                       
                         c 
                         K 
                         * 
                       
                     
                   
                   
                     … 
                   
                   
                     
                       c 
                       2 
                       * 
                     
                   
                   
                     
                       c 
                       1 
                       * 
                     
                   
                 
               
               ] 
             
           
         
       
     
         [0000]    where A is a positive value that satisfies 
         [0000]    
       
         
           
             
               A 
               ≥ 
               
                 2 
                  
                 
                   
                     ∑ 
                     
                       k 
                       = 
                       1 
                     
                     K 
                   
                    
                   
                      
                     
                       C 
                       k 
                     
                      
                   
                 
               
             
             , 
           
         
       
     
         [0000]    and α* denote the complex conjugate of α.
 
Step 2 Take discrete Fourier transform of {tilde over (c)}, i.e.
 
         [0000]        {tilde over (c)}   F   :=DFT ( {tilde over (c)} ) 
         [0000]    Step 3 Construct the vector d F  whose elements are square roots of respective elements of {tilde over (c)} F .
 
Step 4 Calculate inverse discrete Fourier transform of d F , i.e. d:=IDFT(d F ).
 
It can be shown that the circular convolution at the time-lag variables 1, 2, . . . , K is the same as a given ADMA code C
 
Step 5 We now insert the sequence d alternatively into a given user signal u(t) in the following way: insert the first element of d between the 1 st  and the 2 nd  position of u(t), the second element of d between the 2 nd  and 3 rd  position of u(t), and so on until all elements of d exhausted. Then repeat the above to the end of user sequence. The resulting sequence is the ADMA signal s(t) in the general setting on a selected noise-transparent set for τ k =2 k. It can be verified that
 
         [0000]    
       
         
           
             
               
                 ρ 
                 s 
               
                
               
                 ( 
                 
                   τ 
                   j 
                 
                 ) 
               
             
             = 
             
               
                 Ex 
                  
                 
                   { 
                   
                     
                       s 
                        
                       
                         ( 
                         t 
                         ) 
                       
                     
                      
                     
                       
                         s 
                         * 
                       
                        
                       
                         ( 
                         
                           t 
                           - 
                           
                             τ 
                             j 
                           
                         
                         ) 
                       
                     
                   
                   } 
                 
               
               = 
               
                 
                   c 
                   
                     j 
                      
                     
                         
                     
                   
                 
                 
                   4 
                    
                   
                     ( 
                     
                       K 
                       + 
                       1 
                     
                     ) 
                   
                 
               
             
           
         
       
     
         [0000]    for j=1, 2, . . . , K, i.e., the autocorrelation ρ s  of the ADMA signal s(t) at the even number of noise-transparent set τ j =2j is same as the j th  code word of the ADMA code, c j , by a constant factor 
         [0000]    
       
         
           
             
               1 
               
                 4 
                  
                 
                   ( 
                   
                     K 
                     + 
                     1 
                   
                   ) 
                 
               
             
             . 
           
         
       
     
       (3) ADMA Filter ( 3 - 2 ) 
       [0061]    The ADMA Filter for the PLI codes is same one as that for the Natural Codes 
       (4) Control Module of ADMA Filter ( 3 - 4 ) 
       [0062]    As an invention, we present the ADMA algorithm for the ADMA signals on the selected noise-transparent set τ=τ 1 , τ 2 , . . . , τ K . Let the designated user be the first user. The ADMA Filter for the designated ADMA signal s 1  is computed by the following steps: 
         [0000]    1 From the receiver signal x(t)( 3 - 1 ), compute the covariance matrix R x , i.e. 
         [0000]        R   x (τ)= Ex{x ( t ) x   H ( t −τ)} for τ=τ 1 ,τ 2 , . . . , τ K    
         [0000]    2 Find the null-space of the designated ADMA code, C 1   T :=[c 11  C 12  . . . C 1K ] T  in the following way. Use the SVD algorithm to find the singular value decomposition of 
         [0000]    
       
         
           
             
               C 
               1 
               T 
             
             = 
             
               U 
                
               
                 [ 
                 
                   
                     
                       
                         
                            
                           
                             C 
                             1 
                             T 
                           
                            
                         
                         2 
                         2 
                       
                     
                   
                   
                     
                       0 
                     
                   
                   
                     
                       ⋮ 
                     
                   
                   
                     
                       0 
                     
                   
                 
                 ] 
               
             
           
         
       
     
         [0000]    where U is an unitary matrix. Decompose 
         [0000]    
       
         
           
             U 
             = 
             
               [ 
               
                 
                   u 
                   1 
                 
                  
                 ⋮ 
                  
                 
                     
                 
                  
                 
                   U 
                   2 
                 
               
               ] 
             
           
         
       
     
         [0000]    where u 1  is the first column of U and U 2  consists of the remaining columns.
 
3 Project the ADMA codes other than the designated one, C i   T ,i≠1, on the null space of the designated ADMA code C 1   T  obtaining p i , for i≠1
 
         [0000]        p   i   :=U   2 ( U   2   H   U   2 ) −1   U   2   H   C   i   T  for i=2,3, . . . N 
         [0000]    4 Construct the matrix R by: 
         [0000]    
       
         
           
             
               R 
               ∷ 
             
             = 
             
               [ 
               
                 
                   
                     
                       
                         ∑ 
                         
                           k 
                           = 
                           1 
                         
                         K 
                       
                        
                       
                         
                           P 
                           
                             2 
                             , 
                             k 
                           
                           * 
                         
                          
                         
                           
                             R 
                             x 
                           
                            
                           
                             ( 
                             
                               τ 
                               k 
                             
                             ) 
                           
                         
                       
                     
                   
                 
                 
                   
                     
                       
                         ∑ 
                         
                           k 
                           = 
                           1 
                         
                         K 
                       
                        
                       
                         
                           P 
                           
                             3 
                             , 
                             k 
                           
                           * 
                         
                          
                         
                           
                             R 
                             x 
                           
                            
                           
                             ( 
                             
                               τ 
                               k 
                             
                             ) 
                           
                         
                       
                     
                   
                 
                 
                   
                     ⋮ 
                   
                 
                 
                   
                     
                       
                         ∑ 
                         
                           k 
                           = 
                           1 
                         
                         K 
                       
                        
                       
                         
                           P 
                           
                             N 
                             , 
                             k 
                           
                           * 
                         
                          
                         
                           
                             R 
                             x 
                           
                            
                           
                             ( 
                             
                               τ 
                               k 
                             
                             ) 
                           
                         
                       
                     
                   
                 
               
               ] 
             
           
         
       
     
         [0000]    where p i,k * denotes the conjugate of the k th  element of p i . The matrix R has the property that the elements of covariance matrix of the designated user for τ=τ 1 ,τ 2 , . . . , τ K  are not included, and information of the auto- and cross-correlation matrices of the interferences are kept.
 
5 Calculate a vector w that satisfies
 
         [0000]      Rw=0 
         [0000]    It can be shown that the vector w is the ADMA filter for the designated ADMA signal. 
       (5) ADMA Decoder ( 2 - 8 ) 
       [0063]    (5a) The ADMA Decoder for the Shift Register Method is a feedback Shift Register. The general form of feedback shift register is shown in  FIG. 10 . The input to the feedback shift register y(t) is the output of the ADMA filter. The output signal û(t) of the feedback shift register is given by 
         [0000]        û   1 ( t )= b   0   y ( t )+ b   1   û   1 ( t− 1)+ b   2   û   12 ( t− 2)+ . . . + b   P   û   1 ( t−P ) 
         [0000]    In order for the feedback shift register to be the ADMA encoder, the coefficients (b 0 ,b 1 , . . . , b P ) have to be designed so that it performs the inverse function of the ADMA encoder. Therefore, when the input is the ADMA signal, its out should be the user signal. The feedback shift register given in  FIG. 8  for the natural code is a special case. 
         [0064]    The ADMA decoder for the Insertion method is simply by deleting some code word from the output of the ADMA Filter s(t). In particular, the user sequence u(t) can be obtained from s i (t) by simply deleting the inserted symbols of d at positions  2 ,  4 ,  6 , . . . The attraction of the Insertion Method is the simplicity of the decoder. 
       B 
     The Zero-Block ADMA Code 
     (1) Zero-Block ADMA Code ( 2 - 13 ) 
       [0065]    As an invention, a zero-block code is presented here. Consider a set of N number of codes in the general form, 
         [0000]        C   i =( c   i1   ,c   i2   , . . . , c   iK ) for i1,2 , . . . , N    
         [0000]    where K is the code length. A zero-block code is obtained by assigning each code, say the i th  code a zero-block I i  and non-zeroes elsewhere in the code, i.e., 
         [0000]    
       
         
           
             
               c 
               ij 
             
              
             
               { 
               
                 
                   
                     
                       
                         = 
                         0 
                       
                     
                     
                       
                         
                           for 
                            
                           
                               
                           
                            
                           j 
                         
                         ∈ 
                         
                           I 
                           i 
                         
                       
                     
                   
                   
                     
                       
                         ≠ 
                         0 
                       
                     
                     
                       
                         
                           for 
                            
                           
                               
                           
                            
                           j 
                         
                         ∉ 
                         
                           I 
                           i 
                         
                       
                     
                   
                 
                 . 
               
             
           
         
       
     
         [0000]    The zero-blocks are not necessarily continuous. Further, the zero-blocks satisfy the overlapping rule that every zero-block overlaps with the non-zero blocks of another, i.e., I i ∩Ī j ≠φ for every i≠j. The natural code is a special case of zero-block code. The advantage of zero-block code is in the simplicity of its ADMA algorithm. 
       (2) ADMA Encoder ( 2 - 2 ) 
       [0066]    The ADMA encoder for the zero block codes can be either the Shift Register Method or the Insertion Method. 
       (3) ADMA Filter ( 3 - 2 ) 
       [0067]    The ADMA filter for the zero-block code is the same as the one for Natural code. 
       (4) Control Module of ADMA Filter ( 3 - 4 ) 
       [0068]    The Control Module for Zero-Block code is the same as the one for PLI code, except that the matrix R is computed by the equation below 
         [0000]    
       
         
           
             R 
             = 
             
               
                 ∑ 
                 
                   i 
                   ∈ 
                   
                     I 
                     1 
                   
                 
               
                
               
                 Ex 
                  
                 
                   { 
                   
                     
                       x 
                        
                       
                         ( 
                         t 
                         ) 
                       
                     
                      
                     
                       
                         x 
                         H 
                       
                        
                       
                         ( 
                         
                           t 
                           - 
                           
                             τ 
                             i 
                           
                         
                         ) 
                       
                     
                   
                   } 
                 
               
             
           
         
       
     
         [0000]    The advantage of the zero-bloc code is the simplicity of the ADMA Algorithm. 
       (5) ADMA Decoder ( 2 - 8 ) 
       [0069]    The ADMA decoder for the zero-block code is the same as that for the PLI code.