Abstract:
The cross-correlation between spreading sequences in a CDMA cellular telephone may be determined by generating a pilot code and a channel code. The pilot and channel code are passed to an exclusive OR gate that indicates to a binary counter the number of times that the codes are the same or different. This information may then be utilized to determine the cross-correlation values.

Description:
BACKGROUND  
         [0001]    The present invention relates to spread spectrum communication systems generally and to determining cross-correlation values in mobile handsets of such communication systems in particular.  
           [0002]    A conventional spread spectrum signal can be viewed as the result of mixing a narrowband information-bearing signal i[t] with an informationless wideband “spreading” signal p[t]. If B i  and B p  denote the bandwidths of i[t] and p[t], respectively, then the “processing gain” available to the receiver is B p /B 1 . The receiver synchronizes the incoming signal to a locally generated version p 0 [t] of p[t] and mixes the received signal with p 0 [t], thereby removing p[t] from the signal and “collapsing” the signal to the “information bandwidth” B i .  
           [0003]    The spreading signal p[t] is typically a coding sequence of some kind, such as a pseudo-random code. In cellular code division multiple access (CDMA) systems, the code is an M-sequence or a Gold Sequence which has good “noise like” properties yet is very simple to construct.  
           [0004]    For example, in the IS-95 standard for cellular communication, the forward channel (base to mobile units) employs, as a spreading code, the product of a 64 chip Walsh code (aimed at separating up to 64 different users per base) and a periodic pseudorandom noise (PN) sequence (aimed at separating the different bases). See TIA/EIA IS-95A “Mobile System-Base Station Compatibility Standard for Dual-Mode Wideband Spread Spectrum Cellular System” Telecommunication Industry Association. Thus, the spreading signal p[t] for each user is its Walsh code combined with the current 64 chips of the PN sequence of its base station.  
           [0005]    In a number of instances, a cross-correlation between signature sequences needs to be calculated. One such example is in connection with the cancellation of pilot channel interference. See, for example, U.S. Pat. No. 6,034,986 to Yellin. However, in a wide variety of other applications in connection with spreading sequences, cross-correlation between signature values needs to be computed. Other examples of multi-user detection techniques that involve cross-correlation values are set forth in “Multi-User Detection” by S. Verdu, Cambridge University Press, 1998 and the references therein.  
           [0006]    In a variety of multi-user detection techniques, there is a need for a better way to calculate the cross-correlation between signature sequences. In particular, there is a need for ways to calculate cross-correlation values that may be implemented in efficient hardware designs, for example. 
       
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0007]    [0007]FIG. 1 is a schematic depiction of hardware for calculating cross-correlation terms in accordance with one embodiment of the present invention;  
         [0008]    [0008]FIG. 2 is a schematic depiction of hardware for calculating cross-correlation terms in accordance with another embodiment of the present invention; and  
         [0009]    [0009]FIG. 3 is a schematic depiction of hardware for calculating cross-correlation terms in accordance with one embodiment of the present invention.  
     
    
     DETAILED DESCRIPTION  
       [0010]    The cross-correlation between the spreading sequence S d (m) to the spreading sequence S 0 (m) is given by the following Equation 1:  
               R        (     α   ,   n     )       ≡       ∑     l   =   1     SF              S   d          (     l   +     n   ·   SF       )       *     ·       S   0          (     l   +     n   ·   SF     -   α     )                     Equation                 1                               
 
         [0011]    where S d (m) stands for the “m”th chip of the spreading sequence associated with one user, S 0 (m) stands for the “m”th chip of the spreading sequence associated with another user, SF is the spreading factor, and (·)* stands for the complex conjugation of the bracketed term.  
         [0012]    The cross-correlations appearing in Equation 1 may be calculated using the assumption that the spreading sequences are Binary Phase-Shift Keying (BPSK) or Quadrature Phase-Shift Keying (QPSK) modulated (as is the case in all CDMA cellular standards).  
         [0013]    Assuming the more general case of QPSK spreading, and breaking Equation 1 into its real and imaginary parts, immediately yields:  
                       Re        {     R        (     α   ,   n     )       }       ≡                  ∑     l   =   1     SF          Re        {               S   d     (     l   +     n   ·   SF         }     ·   Re          {       S   0          (     l   +     n   ·   SF     -   α     )       }       +                                      ∑     l   =   1     SF          Im          {       S   d          (     l   +     n   ·   SF       )       }     ·   Im          {       S   0          (     l   +     n   ·   SF     -   α     )       }                      
                  Im        {     R        (     α   ,   n     )       }       ≡                    ∑     l   =   1     SF          Re          {       S   d          (     l   +     n   ·   SF       )       }     ·   Im          {       S   0          (     l   +     n   ·   SF     -   α     )       }         -                                ∑     l   =   1     SF          Im          {       S   d          (     l   +     n   ·   SF       )       }     ·   Re          {       S   0          (     l   +     n   ·   SF     -   α     )       }                         Equation                 2                               
 
         [0014]    Now, each of the above four summation terms can be efficiently calculated via the logic circuit  110  depicted in FIG. 1. As an example examine the first sum in Equation 2:  
               ∑     l   =   1     SF          Re        {             S   d     (     l   +     n   ·   SF         }     ·   Re          {       S   0          (     l   +     n   ·   SF     -   α     )       }                   Equation                 3                               
 
         [0015]    The result of the summation in Equation 3 equals the number of times the two spreading chips are identical minus the number of times they differ. With the binary representation of the two spreading sequences, this equation may be implementable via a single XOR gate  116 , whose output drives a binary counter  118  that receive the chip rate clock  120 . The end result is that the binary counter  118  counts the number of times the corresponding (binary valued) chips of the two spreading sequences were identical minus the number of times they differed. In one embodiment, the counter  118  is an up/down counter that counts up, for example, for sequences that are identical and down for sequences that differ. Thus, the output of the counter  118  is a cross-correlation value.  
         [0016]    The counter  118  is cleared once every SF chips via the symbol rate clock  119 , since one symbol equals SF chips. Clearing the counter  118  guarantees that the summation is appropriately performed over SF chips. Altogether, four blocks of the type presented in FIG. 1 may be used to calculate the four different elements of Equation 2.  
         [0017]    If BPSK spreading is used, then all the imaginary values appearing in Equation 2 are zero, and Equation 2 collapses to the following  
         R        (     α   ,   n     )       ≡                  ∑     l   =   1     SF                S   d          (     l   +     n   ·   SF           }     ·       S   0          (     l   +     n   ·   SF     -   α     )                                 
 
         [0018]    which can be efficiently implemented with the logic circuit  110  using single counter.  
         [0019]    In a multi-user detection embodiment, the first spreading sequence generator  112  may be the dedicated channel of one user and the second spreading sequence generator  114  may be the dedicated channel of another user.  
         [0020]    In one embodiment of this invention, shown in FIG. 2, the cross-correlation that needs to be calculated is between the signature sequence of a desired user to the signature sequence of a pilot channel. In this case, the symbols k, n, m, q user (), q pilot , and N in Equation 2 in U.S. Pat. No. 6,034,986, are −α, n, l−1, S d (), S 0 () and SF, respectively, in Equation 1. The constant 1/2N in Equation 2 in U.S. Pat. No. 6,034,986 is irrelevant for purposes of Equation 1. The pilot code generator  112   b  generating the signature sequence associated with the pilot channel may be a Gold code generator, for example, for the WCDMA cellular communication standard, and a maximal length shift register (MLSR), for example, in the case of the IS-95 and CDMA-2000 cellular standards. The generator  112   b  outputs are two streams of binary chips corresponding to the real and imaginary binary versions of the corresponding pilot spreading sequence. These outputs may be delayed, via a shift register  121  in one embodiment, depicted in FIG. 3, to generate the relative delay of α chips appearing in Equations 1 and 2.  
         [0021]    Alternatively, the pilot spreading sequence can be generated with the desired delay thus avoiding the need for the additional shift register. However, with regard to pilot cancellation and/or multi-user detection, multiple cross-correlation values are used, and the latter approach would use multiple pilot code generators. Therefore, the implementation in FIG. 2, that uses a single pilot code generator  112   b  to calculate several cross-correlation values, may be more efficient.  
         [0022]    The dedicated channel (DCH) code generator, generating the signature sequence of the desired user,  114   b  is similar to the pilot code generator  112   b  with an additional Walsh/Hadamard code generator and with the specific code corresponding to the dedicated channel (user) of interest.  
         [0023]    In another embodiment, a multi-user receiver is used and the cross-correlation between the signature sequences of two arbitrary users (that may or may not belong to different base stations) needs to be calculated. In this case, the proposed invention is also applicable by letting S d (m) denote the spreading sequence (or signature) of one of the users and S 0 (m) denote the spreading sequence of the other.  
         [0024]    For completeness, an example of one common algorithm for translating from binary to BPSK or from binary to QPSK is given by the following equations: 
           A   BPSK =1−2 ·A   BINARY   
         and 
           A   QPSK =[1−2 ·Re{A   BINARY   }]+j·[ 1−2 ·Im{A   BINARY }] 
         [0025]    Thus, if {tilde over (S)} 0 (m) stands for the binary outputs of one code generator  112 , then: 
           S   0 ( m )=[1−2 ·Re{{tilde over (S)}   0 ( m )}]+ j ·[1−2 ·Im{{tilde over (S)}   0 ( m )}] 
         [0026]    and similarly if {tilde over (S)} d (m) stands for the binary output of the other code generator  114 , then: 
           S   d ( m )=[1−2 ·Re{{tilde over (S)}   d ( m )}]+ j ·[1−2 ·Im{{tilde over (S)}   d ( m )}] 
         [0027]    Of course, other algorithms may also be used.  
         [0028]    While the present invention has been described with respect to a limited number of embodiments, those skilled in the art will appreciate numerous modifications and variations therefrom. It is intended that the appended claims cover all such modifications and variations as fall within the true spirit and scope of this present invention.