# Patent

## Title
Method and arrangement for use in a single user detector for a CDMA multi-path system

## Abstract

A method and arrangement for use in a single user detector in a CDMA multi-path system, comprising providing a finite impulse response (FIR) filter; and configuring the FIR filter to derive at least a first, then a second, then a third, then a fourth of the following parameters for single user detection: R (auto-correlation) function; L (Cholesky decomposition) value; X value representative of the complex conjugate of a channel impulse response multiplied and summed with time shifted versions of a received signal; back substitution value Y (function of R, X and L); and back substitution value S (function of R, X, Y and L).

## Background
FIELD OF THE INVENTION
This invention relates to code division multiple access (CDMA) multi-path systems, and particularly to Single User Detectors for use in such systems.
BACKGROUND OF THE INVENTION
In the field of this invention it is known that Single User detection is a method of applying signal processing to a received CDMA input signal to improve the signal quality before the CDMA signal is despread. A Single User detector typically consists of a channel equalizer to exploit the multipath diversity and a code matched filter which is matched to the spreading and scrambling codes of the codes to be despread. A Single User detector exploits the fact that all the codes originate from the same transmitter and so the codes will all be convolved by the same channel impulse response.
The idea behind this approach is to equalize the multipath channel such that the received CDMA codes are forced into orthogonality. The algorithm used is based on the Minimum Mean Squared Error (MMSE) criterion. This algorithm comprises the calculation of several parameters (commonly referred to as R, L, X, Y, and S values) which typically involves considerable complexity and compromises for the sake of efficiency.
A need therefore exists for a method and arrangement for a single user detector for use in a CDMA multi-path system wherein the above-mentioned disadvantage(s) may be alleviated.
STATEMENT OF INVENTION
In accordance with a first aspect of the present invention there is provided a method for use in a single user detector in a CDMA multi-path system, comprising:
providing a finite impulse response (FIR) filter; and
configuring the FIR filter to derive at least a first, then a second, of the following parameters for single user detection:

    R (auto-correlation) function,
    X value,
    Y value, and
    S value.


In accordance with a second aspect of the present invention there is provided an arrangement for use in a single user detector in a CDMA multi-path system, comprising:
a finite impulse response (FIR) filter; and
means for configuring the FIR filter to derive at least a first, then a second, of the following parameters for single user detection:

    auto-correlation (R) function,
    X value,
    Y value, and
    S value.


Such an arrangement may be comprised in a single user detector for use in a CDMA multi-path system.
Such an arrangement may be comprised in user equipment for use in a universal mobile telecommunications system (UMTS) system.
Such an arrangement may be comprised in a base station for use in a UMTS system.



BRIEF DESCRIPTION OF THE DRAWINGS
One method and arrangement for a single user detector, based on calculation of R, L, X, Y, S parameters (functions and values), for use in a CDMA multi-path system incorporating the present invention will now be described, by way of example only, with reference to the accompanying drawings, in which:
FIG. 1 shows a schematic diagram of a channel model for single user detection;
FIG. 2 shows a block-schematic diagram of a single user detector;
FIG. 3 shows a block-schematic diagram of a standard FIR filter structure;
FIG. 4 shows a block-schematic diagram of an Inverse Filter Structure;
FIG. 5 shows a block-schematic diagram of a single user detector in accordance with the invention;
FIG. 6 shows a block-schematic diagram of the Inverse Filter structure of FIG. 5 as used for L value calculation;
FIG. 7 shows a block-schematic diagram illustrating the Inverse Filter structure of FIG. 5 as used for Y value calculation;
FIG. 8 shows a block-schematic diagram, similar to FIG. 7, illustrating the Inverse Filter structure of FIG. 5 as used for S value calculation; and
FIG. 9 shows a block-schematic diagram of a UMTS system in which the invention is used.



DESCRIPTION OF PREFERRED EMBODIMENT
Single User detection is a method of applying signal processing to a received CDMA input signal to improve the signal quality before the CDMA signal is despread. A Single User detector consists of a channel equalizer to exploit the multipath diversity and a code matched filter which is matched to the spreading and scrambling codes of the codes to be despread. A Single user detector exploits the fact that all the codes originate from the same transmitter and so will all be convolved by the same channel impulse response.
FIG. 1 illustrates that in a CDMA transmission the data d1 . . .dK for each of k user codes is spread by the user spreading codes c1 . . . cK and then summed in the transmitter. The channel model is depicted by putting the transmitted data through the channel impulse response hd, and then by adding Gaussian noise n to give the data that is received at the joint detector ed.
As represented schematically in FIG. 2, a Single User detector 200 can be partitioned into three separate blocks: a channel equalizer 210, a code matched filter 220 and a channel estimator 230. The idea behind this approach is to equalize the multipath channel such that the received CDMA codes are forced into orthogonality. The algorithm used in such a detector is based on the Minimum Mean Squared Error (MMSE) criterion, such that the estimate of the MMSE block linear equalizer can be described by the following equation:




  
    d
    ^
  
  =
  
    
      1
      Q
    
    ⁢
    
      
        
          C
          d
          
            *
            T
          
        
        ⁡
        
          (
          
            
              
                H
                d
                
                  *
                  T
                
              
              ⁢
              
                H
                d
              
            
            +
            
              
                ασ
                2
              
              ⁢
              I
            
          
          )
        
      
      
        -
        1
      
    
    ⁢
    
      H
      d
      
        *
        T
      
    
    ⁢
    
      e
      d
    
  




where

    I is the identity matrix
    Hd contains the channel impulse response, hd 
    σ2 is the noise variance
    Q is the spreading factor
    Cd is the spreading code matrix
    α is a suitable scaling factor
    ed is the received data
    {circumflex over (d)} is the equalized despread output data
    ŝ is equalized data before despreading.


The output of the block linear equalizer can be written as

sd=(Hd*THd+ασ2I)−1Hd*Ted 

which can be rewritten as

(Hd*THd+ασ2I)sd=Hd*Ted.

The left hand side of the above equation can be factorised by performing a Cholesky decomposition, which can be written as

Ly=X  (A)

L*Tsd=y  (B)

where X=Hd*Ted 

and L is a lower triangular matrix of the form





  L
  =
  
    (
    
      
        
          
            l
            11
          
        
        
          0
        
        
          ⋯
        
        
          0
        
      
      
        
          
            l
            21
          
        
        
          
            l
            22
          
        
        
          0
        
        
          0
        
      
      
        
          ⋮
        
        
          ⋮
        
        
          ⋰
        
        
          0
        
      
      
        
          
            l
            n1
          
        
        
          
            l
            n2
          
        
        
          ⋯
        
        
          
            l
            nn
          
        
      
    
    )
  




and (Hd*THd+ασ2I)=LL*T. In the process of data estimation, the above equations are first solved for y and then solved for sd. In both cases, factorisation means that back substitution can be employed. Once sd has been determined, it is straightforward to obtain an estimate of the data using





  
    d
    ^
  
  =
  
    
      1
      Q
    
    ⁢
    
      C
      d
      
        *
        T
      
    
    ⁢
    
      
        s
        d
      
      .
    
  




The first step in the algorithm is to perform the Cholesky decomposition. Since (Hd*THd+ασ2I) is block Toeplitz in structure, and N (the order of the matrix) is quite large (>69), the elements of the matrix L converge quickly, consequently, it is only necessary to compute the first W block rows of the matrix L, where W is the length of the channel impulse response used in the Single User Detector.

Firstly, the first W×W elements of the matrix (Hd*THd+ασ2I) are computed. This is a simple procedure, as it is only necessary to compute the auto-correlation function of the channel estimate, and then fill in the appropriate elements of the matrix. The auto-correlation function is given by




  
    R
    u
  
  =
  
    
      
        ∑
        
          k
          =
          1
        
        
          W
          -
          u
          +
          1
        
      
      ⁢
      
        
          h
          k
        
        ⁢
        
          h
          
            k
            +
            u
            -
            1
          
          *
        
        ⁢
        
          
        
        ⁢
        for
        ⁢
        
          
        
        ⁢
        u
      
    
    =
    
      1
      ⁢
      ...
      ⁢
      
        
      
      ⁢
      W
    
  




and the W×W elements of the matrix (Hd*THd) are given by





  
    (
    
      
        H
        d
        
          *
          T
        
      
      ⁢
      
        H
        d
      
    
    )
  
  =
  
    (
    
      
        
          
            R
            1
          
        
        
          
            R
            2
          
        
        
          
            R
            3
          
        
        
          ⋯
        
        
          
            R
            W
          
        
      
      
        
          
            R
            2
            *
          
        
        
          
            R
            1
          
        
        
          
            R
            2
          
        
        
          
            R
            3
          
        
        
          ⋯
        
      
      
        
          
            R
            3
            *
          
        
        
          
            R
            2
            *
          
        
        
          
            R
            1
          
        
        
          
            R
            2
          
        
        
          
            R
            3
          
        
      
      
        
          ⋮
        
        
          
            R
            3
            *
          
        
        
          
            R
            2
            *
          
        
        
          
            R
            1
          
        
        
          
            R
            2
          
        
      
      
        
          
            R
            W
            *
          
        
        
          ⋮
        
        
          ⋮
        
        
          
            R
            2
            *
          
        
        
          ⋰
        
      
    
    )
  




In forming the elements of the matrix L it is only necessary to consider the lower triangular portion of the above matrix; in fact, by careful inspection it is found that only the first column of the above matrix is required, giving




  
    
      (
      
        
          H
          d
          
            *
            T
          
        
        ⁢
        
          H
          d
        
      
      )
    
    ′
  
  =
  
    
      (
      
        
          
            
              R
              1
            
          
          
            0
          
          
            0
          
          
            0
          
        
        
          
            
              R
              2
            
          
          
            
              R
              1
            
          
          
            0
          
          
            0
          
        
        
          
            
              R
              3
            
          
          
            
              R
              2
            
          
          
            
              R
              1
            
          
          
            0
          
        
        
          
            
              R
              W
            
          
          
            
              R
              3
            
          
          
            
              R
              2
            
          
          
            
              R
              1
            
          
        
      
      )
    
    .
  




Then for i=1 . . . W, j=(i+1) . . . W, and l11=√{square root over (R1)}; i=j=1, the elements of the matrix L up to the ith column are given by the recursive relationships:



  
    
      
        
          l
          ji
        
        =
        
          
            R
            j
            *
          
          
            l
            11
          
        
      
      ;
      
        i
        =
        1
      
    
    ,
    
      j
      =
      
        2
        ⁢
        ...
        ⁢
        
          
        
        ⁢
        W
      
    
  




  
    
      
        l
        u
      
      =
      
        
          (
          
            
              R
              1
            
            -
            
              
                ∑
                
                  k
                  =
                  1
                
                
                  i
                  -
                  1
                
              
              ⁢
              
                
                  
                  
                    l
                    ik
                  
                  
                
                2
              
            
          
        
      
    
    ;
    
      i
      >
      1
    
  




  
    
      
        
          l
          ij
        
        =
        
          
            (
            
              
                R
                
                  j
                  -
                  
                    (
                    
                      i
                      -
                      1
                    
                    )
                  
                
                *
              
              -
              
                
                  ∑
                  
                    k
                    =
                    1
                  
                  
                    i
                    -
                    1
                  
                
                ⁢
                
                  
                    l
                    jk
                  
                  ⁢
                  
                    l
                    ik
                    *
                  
                
              
            
            )
          
          /
          
            l
            u
          
        
      
      ;
      
        i
        >
        1
      
    
    ,
    
      j
      ≠
      i
    
  



which results in the sub-matrix





  
    (
    
      
        
          
            l
            11
          
        
        
          0
        
        
          ⋯
        
        
          0
        
      
      
        
          
            l
            21
          
        
        
          
            l
            22
          
        
        
          0
        
        
          0
        
      
      
        
          ⋮
        
        
          ⋮
        
        
          ⋰
        
        
          0
        
      
      
        
          
            l
            n1
          
        
        
          
            l
            n2
          
        
        
          ⋯
        
        
          
            l
            nn
          
        
      
    
    )
  
  .




The complete NQ×NQ L matrix is constructed by taking the Wth row of the above sub-matrix, and inserting it row-wise at column positions given by i−W, where i is the current column position. In fact, when estimating the data, the complete L matrix need never be constructed. To solve for yj using eqn. (A), the following equations are used:




  
    y
    1
  
  =
  
    
      x
      1
    
    
      l
      11
    
  




y2=(x2−y1l21)/l22

y3=(x3−[y1l31+y2l32])/l33

y4=(x4−[y1l41+y2l42+y3l43])/l44

y5=(x5−[y2l41+y3l42+y4l43])/l44

y6=(x6−[y3l41+y4l42+y5l43])/l44

yj=(xj−[yj−3l41+yj−2l42+yj−1l43])/l44

where

xj=hd*Tedj; j=1 . . . NQ  (C)

and

edj=(edj+1,edj+2, . . . , edj+W)T.

From the above, it can be observed that when j≧W, back substitution can be generalised for any W or NQ, such that




  
    y
    j
  
  =
  
    
      (
      
        
          x
          j
        
        -
        
          
            ∑
            
              i
              =
              1
            
            
              
                W
                f
              
              -
              1
            
          
          ⁢
          
            
              l
              Wi
            
            ⁢
            
              y
              
                j
                ⁡
                
                  (
                  
                    W
                    -
                    i
                  
                  )
                
              
            
          
        
      
      )
    
    /
    
      
        l
        WW
      
      .
    
  




It is apparent that the second term in the brackets of this equation can be considered as an FIR filter function with coefficients given by lWt, over a span of W−1 chip periods. To determine the output of the channel equalizer, sd, eqn (B) is used, but the form of L*T is now upper triangular. This means that the order of processing has to be reversed. Again, the set of equations is written out, starting from the bottom up, as follows




  
    s
    NQ
  
  =
  
    
      y
      NQ
    
    
      l
      44
    
  




sNQ−1=(yNQ−1−sNQl43*)/l44

sNQ−2=(yNQ−2−[sNQ−1l43*+sNQl42*])/l44

sNQ−3=(yNQ−3−[sNQ−2l43*+sNQ−1l42*+sNQl41*])/l44

sNQ−4=(yNQ−4−[sNQ−3l43*+sNQ−2l42*+sNQ−1l41*])/l44

sNQ−5=(yNQ−5−[sNQ−4l43*+sNQ−3l42*+sNQ−2l41*])/l44

sNQ−(j−1)=(yNQ−(j−1)−[sNQ−(j−2)l43*+sNQ−(j−3)l42*+yNQ−(j−4)l41*])/l44

Here j=(1 . . . NQ−W+1), and again a generalisation can be made for W≦j≦NQ−W+1, such that




  
    s
    
      NQ
      -
      
        (
        
          j
          -
          1
        
        )
      
    
  
  =
  
    
      (
      
        
          y
          
            NQ
            -
            
              (
              
                j
                -
                1
              
              )
            
          
        
        -
        
          
            ∑
            
              i
              =
              1
            
            
              
                W
                f
              
              -
              1
            
          
          ⁢
          
            
              l
              
                
                  W
                  f
                
                ⁢
                i
              
              *
            
            ⁢
            
              s
              
                NQ
                -
                
                  (
                  
                    j
                    -
                    
                      (
                      
                        i
                        +
                        1
                      
                      )
                    
                  
                  )
                
              
            
          
        
      
      )
    
    /
    
      l
      
        
          W
          f
        
        ⁢
        
          W
          f
        
      
    
  




where the second term in the brackets can be considered as an FIR filter function with coefficients given by l*Wt, over a span over W−1 chip periods. For j>NQ−W+1, the W−1 values of the vector sd are computed using the modified L*T matrix with back substitution. This is generalised, such that





  
    L
    
      *
      T
    
  
  =
  
    (
    
      
        
          
            l
            11
          
        
        
          
            l
            21
            *
          
        
        
          
            l
            31
            *
          
        
        
          ⋯
        
        
          
            l
            
              
                W
                f
              
              ⁢
              1
            
            *
          
        
        
          0
        
        
          0
        
        
          ⋯
        
        
          0
        
      
      
        
          0
        
        
          
            l
            22
          
        
        
          
            l
            32
            *
          
        
        
          ⋯
        
        
          
            l
            
              
                W
                f
              
              ⁢
              2
            
            *
          
        
        
          
            l
            
              
                W
                f
              
              ⁢
              1
            
            *
          
        
        
          0
        
        
          ⋯
        
        
          0
        
      
      
        
          0
        
        
          0
        
        
          ⋰
        
        
          ⋰
        
        
          ⋮
        
        
          
            l
            
              
                W
                f
              
              ⁢
              2
            
            *
          
        
        
          ⋰
        
        
          ⋰
        
        
          ⋮
        
      
      
        
          0
        
        
          0
        
        
          0
        
        
          ⋰
        
        
          ⋮
        
        
          ⋮
        
        
          ⋰
        
        
          ⋰
        
        
          0
        
      
      
        
          0
        
        
          0
        
        
          0
        
        
          0
        
        
          
            l
            
              
                W
                f
              
              ⁢
              
                W
                f
              
            
          
        
        
          
            l
            
              
                W
                f
              
              ⁡
              
                (
                
                  
                    W
                    f
                  
                  -
                  1
                
                )
              
            
            *
          
        
        
          ⋯
        
        
          
            l
            
              
                W
                f
              
              ⁢
              2
            
            *
          
        
        
          
            l
            
              
                W
                f
              
              ⁢
              1
            
            *
          
        
      
    
    )
  




For Wf=4 and NQ=1104, this gives the set of equations:

s4=(y4−[l43*s5+l42*s6+l41*s7])/l44

s3=(y3−[l43*s4+l42*s5+l41*s6])/l33

s2=(y2−[l32*s3+l42*s4+l41*s5])/l22

s1=(y1−[l21*s2+l31*s3+l41*s4])/l11

Referring now also to FIG. 3, an FIR filter can be implemented as a delay pipe for the input data where each delayed element is multiplied by the filter tap coefficient before summing the results. It will be understood that as depicted in this figure, n is the number of filter taps, τ represents a delay element, and c1 . . . cn are the filter tap coefficients.
Here

y1=x1*c1

y2=x1*c2+x2*c1

y3=x1*c3+x2*c2+x3*c1





  
    y
    j
  
  =
  
    
      
        ∑
        
          p
          =
          1
        
        n
      
      ⁢
      
        
          x
          
            p
            +
            j
            -
            n
          
        
        *
        
          c
          
            n
            -
            p
            +
            1
          
        
        ⁢
        
          
        
        ⁢
        for
        ⁢
        
          
        
        ⁢
        j
      
    
    >=
    n
  




As shown in FIG. 4, an inverse FIR filter 410 has n filter tap stages 420(1), 420(2) . . . 420(n). Each of the filter tap stages has a multiplier 430 and a summation and delay element 440. The outputs of the summation and delay elements are respectively coupled to the inputs of summation and delay elements to immediately to their right. Examination of the inverse filter structure illustrated in FIG. 4 reveals that this structure is equivalent to the standard FIR filter structure.
For example,
Let n=4 giving a 4 tap filter
When x1 is input to the filter, the values into each of the 4 delay elements from left to right are

    X1*C4, X1*C3, X1*C2, X1*C1, and

the output taken from the right hand side is X1*C1.



When x2 is input to the filter, the values into each of the 4 delay elements from left to right are

    X2*C4, X1*C4+X2*C3, X1*C3+X2*C2, X1*C2+X2*C1, and

the output taken from the right hand side is

    X1*C2+X2*C1.


When x3 is input to the filter the values into each of the 4 delay elements from left to right are

    X3*C4, X2*C4+X3*C3, X1*C4+X2*C3+X3*C2, X1*C3+X2*C2+X3*C1, and

the output taken from the right hand side is

    X1*C3+X2*C2+X3*C1.


When x4 is input to the filter the values into each of the 4 delay elements from left to right are

    X4*C4, X3*C4+X4*C3, X2*C4+X3*C3+X4*C2,
    X1*C4+X2*C3+X3*C2+X4*C1, and

the output taken from the right hand side is

    X1*C4+X2*C3+X3*C2+X4*C1.


Thus, it will be understood, this is the same output as for the standard FIR filter structure.
The inventor of the present invention has realised, through examination of the steps required to implement the joint detection process, that there are a number of similarities which allow reuse of a common FIR filter structure. It can be shown that by using a single FIR filter structure with W taps it is possible to implement the auto correlation function (R), the Cholesky decomposition L, the X value calculation and to solve the Y and S matrixes. This is accomplished by modifying the filter structure and the way that the filter coefficients are applied to the filter.
The five different filter configurations are:

    Auto-correlation (R),
    Cholesky decomposition L,
    X value calculation,
    Y back substitution, and
    S back substitution.


FIG. 5 shows a single user detector 500 incorporating a single inverse filter 510 for receiving input data and for producing the desired output values R, L, X, Y and S for use in the single detection process to recover the single user data d. As will be explained in greater detail below, in the FIR filter 510, the filter tap coefficients of its different stages and the connection paths of delay elements in the different stages may be configured as desired. As will also be explained in greater detail below, the single user detector 500 also includes a substractor 550 and a divider 560 for use in a particular configuration of the filter to derive the Y value for use in single user detection.
Auto-Correlation Function (R)
The autocorrelation function is given by




  
    R
    u
  
  =
  
    
      ∑
      
        k
        =
        1
      
      
        W
        -
        u
        +
        1
      
    
    ⁢
    
      
        h
        k
      
      ⁢
      
        h
        
          k
          +
          u
          -
          1
        
        *
      
    
  




Which can be expanded to

R1=h1*h1*+ . . . +hW*hW*

RW−2=h1*hW−2*+h2*hW−1*+h3*hW*

RW−1=h1*hW−1*+h2*hW*

RW=h1*hW*

It can be seen from the above expansion that the auto-correlation function is a FIR filter of length W where the coefficients of the filter are given by h1*, h2*, . . . hW−1*, hW* which is the complex conjugate of the channel impulse response, and the input data is given by h1, h2, . . . hw which is the channel impulse response time reversed. The W outputs are the auto-correlation sequence, time reversed.
The auto-correlation function is performed in this manner so that the same filter taps can be used to calculate the X vector, as will be explained in more detail below.
Cholesky Decomposition L
Cholesky decomposition is concerned with solving the equations given below:
l11=√{square root over (R1)}; i=j=1, the elements of the matrix L up to the ith column are given by the recursive relationships:




  
    
      
        
          
            
              l
              ji
            
            =
            
              
                R
                j
                *
              
              
                l
                11
              
            
          
          ;
          
            i
            =
            1
          
        
        ,
        
          j
          =
          
            2
            ⁢
            ...
            ⁢
            
              
            
            ⁢
            W
          
        
      
    
    
      
        (
        D
        )
      
    
  
  
    
      
        
          
            l
            u
          
          =
          
            
              (
              
                
                  R
                  1
                
                -
                
                  
                    ∑
                    
                      k
                      =
                      1
                    
                    
                      i
                      -
                      1
                    
                  
                  ⁢
                  
                    
                      
                      
                        l
                        ik
                      
                      
                    
                    2
                  
                
              
            
          
        
        ;
        
          i
          >
          1
        
      
    
    
      
        (
        E
        )
      
    
  
  
    
      
        
          
            
              l
              ji
            
            =
            
              
                (
                
                  
                    R
                    
                      j
                      -
                      
                        (
                        
                          i
                          -
                          1
                        
                        )
                      
                    
                    *
                  
                  -
                  
                    
                      ∑
                      
                        k
                        =
                        1
                      
                      
                        i
                        -
                        1
                      
                    
                    ⁢
                    
                      
                        l
                        jk
                      
                      ⁢
                      
                        l
                        ik
                        *
                      
                    
                  
                
                )
              
              /
              
                l
                ii
              
            
          
          ;
          
            i
            >
            1
          
        
        ,
        
          j
          ≠
          i
        
      
    
    
      
        (
        F
        )
      
    
  




which results in the following sub-matrix





  
    (
    
      
        
          
            l
            11
          
        
        
          0
        
        
          ⋯
        
        
          0
        
      
      
        
          
            l
            21
          
        
        
          
            l
            22
          
        
        
          0
        
        
          0
        
      
      
        
          ⋮
        
        
          ⋮
        
        
          ⋰
        
        
          0
        
      
      
        
          
            l
            n1
          
        
        
          
            l
            n2
          
        
        
          ⋯
        
        
          
            l
            nn
          
        
      
    
    )
  
  .




This is a recursive algorithm where the matrix values are calculated a column at a time from left to right. j are the row indexes and i are the column indexes. The diagonal value lii cannot be calculated until the l values in the same row have been calculated.
Investigation of equation (F) above shows that for each column of Lji values (i.e., for a particular i value) and for each term (k) in the summation, the lik* value is the same.
Referring now to FIG. 6, the inverse filter structure can be modified by disconnecting the delay elements from each other and connecting each delay element back to its input, thus implementing an accumulator. As shown in the figure, in each of the W filter tap stages (520 (1) 520 (2) . . . 520 (W)) of the FIR 510 the summation and delay element (540 (1), 540 (2) . . . 540 (W)) has its output configured to feed back to its own input. The outputs from the w delay elements are now the L value for one column in the L matrix. The number of accumulations required before the L value is calculated is the number of terms in the summation of equation (F). As the column number of the L values being calculated increases, the number of accumulations required increases.
For example:

W=5

The first column i=1 is calculated first and does not use the structure above since there is no summation term in equation (D).
For i=2
The expanded summation from equation (F) is given by

l32=(R2*−l31*l21*)/l22

l42=(R3*−l41*l21*)/l22

l52=(R4*−l51*l21*)/l22

so the input_data in FIG. 6 is loaded with l21* and the coefficients are

c1=l31

c2=l41

c3=l51

For i=3
The expanded summation from equation (F) is given by

l43=(R2*−[l41*l31*+l42*l32*])/l33

l53=(R3*−[l51*l31*+l52*l32*])/l33

so the input_data in FIG. 6 is loaded with l31* and the coefficients are

c1=0

c2=l41

c3=l51

Then the input_data in FIG. 6 is loaded with l32* and the coefficients are

c1=0

c2=l42

c3=l52

These results are added to the previous outputs giving the summation results.
For i=4
The expanded summation from equation (F) is given by

l54=(R2*−[l51*l41*+l52*l42*+l53*l43*])/l44

so the input_data in FIG. 5 is loaded with l41* and the coefficients are

c1=0

c2=0

c3=l51

Then the input_data in FIG. 6 is loaded with l42* and the coefficients are

c1=0

c2=0

c3=l52

These results are added to the previous outputs giving the summation results.
Then the input_data in FIG. 6 is loaded with l43* and the coefficients are

c1=0

c2=0

c3=l53

These results are added to the previous outputs giving the summation results.
Extra processing is required to take the summation output and subtract it from the R* value and divided it by the Lii value.
It will be understood that in the above procedure for generating outputs from the structure shown in FIG. 6, as the value of i increases from 1 to W, if the i value for a given Iji does not exist in the L matrix, then that output from the structure is not used.
X Value Calculation
Equation (C) above gives

xj=hd*Tedj; j=1 . . . NQ

This is the complex conjugate of the channel Impulse response multiplied and summed with time shifted versions of the input data over the length of the input data.
Re writing this equation gives:




  
    x
    j
  
  =
  
    
      
        ∑
        
          n
          =
          1
        
        w
      
      ⁢
      
        
          h
          n
          *
        
        *
        
          e
          
            n
            +
            j
            -
            1
          
        
        ⁢
        
          
        
        ⁢
        j
      
    
    =
    
      1
      ⁢
      ...
      ⁢
      
        
      
      ⁢
      NQ
    
  




As referred to above, it can be shown that if the filter structure used in producing the auto-correlation function described above is loaded with the same coefficients as to produce the auto-correlation function, but the ed vector is inputted as data, then the j outputs after the first W−1 outputs have been ignored is xj.
This allows calculation of the X values using the same filter structure as the R vectors with the same filter coefficients.
Y Back Substitution
Examination of the following Y equations




  
    y
    1
  
  =
  
    
      x
      1
    
    
      l
      11
    
  




y2=(x2−y1l21)/l22

y3=(x3−[y1l31+y2l32])/l33

y4=(x4−[y1l41+y2l42+y3l43])/l44

y5=(x5−[y2l41+y3l42+y4l43])/l44

y6=(x6−[y3l41+y4l42+y5l43])/l44

yj=(xj−[yj−3l41+yj−2l42+yj−1l43])/l44

shows that to solve the y vector requires a FIR filter structure of W−1 taps with a feedback loop. This is shown in FIG. 7.

As shown in the figure, in this configuration the FIR 510 uses W filter tap stages (520 (W) . . . 520 (1)), and the outputs of the stages' summation and delay elements 540 (W) . . . 540 (1) are respectively connected to the input of the summation and delay elements in the adjacent stage to the right. Additionally, for deriving the Y value a subtractor 550 and a divider 560 are provided. The filter coefficients are changed for each iteration of the feedback loop and are selected from the L matrix as described below.
As will be understood more fully from the detailed description below, for L, Y and S calculations a filter length of W−1 is used, and for X and R calculations a filter length of W is used.
The Lij divisor is changed for the first W iterations from L11 to Lww. Once W iterations have been completed the Ljj value is kept constant at Lww (L44 in the example above).
It is to be noted that the algorithm described below assumes that the filter is implemented as the inverse filter structure. There is a similar algorithm for selecting the filter coefficients for a normal filter structure.
The coefficients for the filter are selected by columns from the L matrix, starting with the left hand column at the row below the diagonal. The diagonal is not used. W−1 coefficients must be selected. For rows >1 when the bottom of the L matrix is reached the remaining tap coefficients in the filter are kept the same as the previous iteration. Once W−1 iterations have been completed the filter coefficients are not changed.
For y1:
This is simply given by y1=x1/l11.
For y2:
The filter coefficients are given the reading the first column of the L matrix top to bottom ignoring the first diagonal element, L21,L31,L41 . . . LW1. The divisor is l22.
This gives

y2=(x2−y1l21)/l22

For y3:
The filter coefficients are given by reading the second column of the L matrix top to bottom ignoring the first diagonal element, L32,L42,L52 . . . LW2,LW1 (it may be noted that the final coefficient is the last coefficient used in calculating y2 as there are only W−1 rows in column 2 of the L matrix below the diagonal). The divisor is l33. This gives

y3=(x3−[y1l31+y2l32])/l33

For y4:
The filter coefficients are given by reading the third column of the L matrix top to bottom ignoring the first diagonal element, L43,L53,L63 . . . LW−2 3,LW 2,LW 1 (it may be noted that the last 2 coefficients are the last 2 coefficients used in calculating y3 as there are only W−2 rows in column 3 of the L matrix below the diagonal). The divisor is l44.
This gives

y4=(x4−[y1l41+y2l42+y3l43])/l44

For j>W−1 the filter coefficients remain constant and Lww is used as the divisor.
S Back Substitution
As shown in the FIR configuration of FIG. 8, the S value calculation is similar to the Y value calculation, with the difference being the way that the filter coefficients are loaded and the way that the Ljj divisor is selected; also, for S calculation the input to the subtractor 550 is Y rather than X.
It is to be noted that the s results are computed from SNQ to S1. It is also to be noted that the algorithm described below assumes that the filter is implemented as the inverse filter structure. There is a similar algorithm for selecting the filter coefficients for a normal filter structure.
For the first NQ−W−1 iterations the Ljj value is set at Lwŵ.
The filter coefficients are L*w 1, L*w 2, L*w 3, . . . L*w w−1 
For sw−1 the filter coefficients are not changed but the divisor used is Lw−1 w−1.
For the last W−2 values of s the divisor is changed from Lw−2 w−2 to L11 
The filter coefficients are changed for each iteration by selecting the L matrix values by moving up diagonally to the left through the L matrix for each filter tap. When the left hand column has been reached, the filter taps can be set to any value as they no longer contribute to the output (Denoted by ‘?’ below).
For example
The L matrix for W=6 is shown below




  L
  =
  
    (
    
      
        
          
            l
            11
          
        
        
          0
        
        
          0
        
        
          0
        
        
          0
        
        
          0
        
      
      
        
          
            l
            21
          
        
        
          
            l
            22
          
        
        
          0
        
        
          0
        
        
          0
        
        
          0
        
      
      
        
          
            l
            31
          
        
        
          
            l
            32
          
        
        
          
            l
            33
          
        
        
          0
        
        
          0
        
        
          0
        
      
      
        
          
            l
            41
          
        
        
          
            l
            42
          
        
        
          
            l
            43
          
        
        
          
            l
            44
          
        
        
          0
        
        
          0
        
      
      
        
          
            l
            51
          
        
        
          
            l
            52
          
        
        
          
            l
            53
          
        
        
          
            l
            54
          
        
        
          
            l
            55
          
        
        
          0
        
      
      
        
          
            l
            61
          
        
        
          
            l
            62
          
        
        
          
            l
            63
          
        
        
          
            l
            64
          
        
        
          
            l
            65
          
        
        
          
            l
            66
          
        
      
    
    )
  




The filter taps for the first NQ−W−1 values of s are L*6 1,L*62,L*63,L*64,L*65. The divisor is L66. For S5 the filter coefficients are not changed but the divisor used is L55.
For S4 the filter coefficients are ?,L*5 1,L*52, ,L*53,L*54. The divisor used is L44.
For S3 the filter coefficients are ?,L*41, L*42,L*43. The divisor used is L33.
For S2 the filter coefficients are ?,L*31, L*32. The divisor used is L22.
For S1 the filter coefficients are ?,?,?,?, L*21. The divisor used is L11.
It will be appreciated that although it is possible to remove the Cholesky decomposition value (L) from the above process, with some simplification, the L value calculation must then be performed separately, reducing the optimal quality of the process described above in allowing all the necessary values for single user detection to be performed by use of a single, re-configurable FIR scheme.
It will further be appreciated that the R, L, X, Y and S parameters may be derived in any order, provided that the values necessary for the certain calculations are available in advance of those calculations being performed, the requirements being as follows:

    L calculation requires R,
    Y calculation requires L, X and R, and
    S calculation requires L, X, Y and R.


Referring now also to FIG. 9, a UMTS system 700 includes a user terminal 710 (commonly referred to as ‘User Equipment’) which communicates over a CDMA radio link with a base station 730 (commonly referred to as a ‘Node B’). The Node B 730 is controlled by a radio network controller 740, which communicates with other system infrastructure shown collectively as 750. Such a system (insofar as it has been described up to this point) is well known and need not be described further. However, it will be understood that the single user detector 500 described above may be advantageously implemented in either a UE 710 or a Node B 730 of the system as shown in the figure.
It will be appreciated that the method described above for deriving the R, L, X, Y and S parameters for use in single user detection may be carried out in software running on a processor (not shown), and that the software may be provided as a computer program element carried on any suitable data carrier (also not shown) such as a magnetic or optical computer disc. It will also be appreciated that the method described above may alternatively be carried out in hardware such as an integrated circuit, e.g., a Field Programmable Gate Array (FPGA) or Application Specific Integrated Circuit (ASIC).
In conclusion, therefore, it will be understood that the method and arrangement described above for use in a single user detector for a CDMA multi-path system provides the advantages that the five parameters R, L, X, Y and S the steps required to implement the single user detector can be implemented using a single re-configurable FIR filter, simplifying the method and arrangement required to implement the single user detector.

## Claims

1. A method for utilizing a single configurable finite impulse response (FIR) filter for use in a single user detector in a code division multiple access (CDMA) multi-path system, comprising:
providing a single finite impulse response (FIR) filter;
configuring the FIR filter to derive at least a first, then a second, then a third, then a fourth of the following parameters for single user detection:
auto correlation function R,
X value representative of the complex conjugate of a channel impulse response multiplied and summed with time shifted versions of a received signal,
back substitution value Y determined from a first set of linear equations, wherein the back substitution value Y is a function of the auto correlation function R, the X value, and a Cholesky decomposition value L, and
back substitution value S determined from a second set of linear equations, wherein the back substitution value S is a function of the auto correlation function R, the X value, the back substitution value Y, and the L value; and
using the auto correlation function R, the X value, the back substitution value Y, and the back substitution value S in the single user detector to recover single user data transmitted from a transmitter.

2. The method of claim 1, further comprising configuring the FIR filter to derive the Cholesky decomposition value L for single user detection.

3. The method of claim 1, wherein the step of configuring the FIR filter comprises configuring the filter coefficients and the connection paths of summation elements in a plurality of stages of the FIR filter.

4. The method of claim 3, wherein the step of configuring the connection paths of summation elements in a plurality at stages of the FIR filter comprises selecting connection paths from summation elements' outputs respectively to summation elements' input in adjacent stages.

5. The method of claim 4, further comprising configuring the FIR filter to derive a Cholesky decomposition value L for single user detection, and wherein the step of configuring the connection paths of summation elements in a plurality of stages of the FIR filter comprises selecting feedback paths between output and input of the summation element within each stage.

6. The method of claim 1 wherein the FIR filter is in user equipment for use in a universal mobile telecommunications system (UMTS) system.

7. The method of claim 1 wherein the FIR filter is in a base station for use in a universal mobile telecommunications system (UMTS) system.

8. An arrangement for utilizing a single configurable finite impulse response (FIR) filter for use in a single user detector in a code division multiple access (CDMA) multi-path system, comprising:
a single finite impulse response (FIR) filter;
means for configuring the FIR filter to derive at least a first, then a second, then a third, then a fourth of the following parameters for single user detection:
auto correlation function R,
X value representative of the complex conjugate of a channel impulse response multiplied and summed with time shifted versions of a received signal,
back substitution value Y determined from a first set or linear equations, wherein the back substitution value Y is a function of the auto correlation function R, the X value, and a Cholesky decomposition value L, and
back substitution value S determined from a second set of linear equations, wherein the back substitution value S is a function of the auto correlation function R, the X value, the back substitution value Y, and the L value; and
means for using the auto correlation function R, the X value, the back substitution value Y, and the back substitution value S to recover single user data transmitted from a transmitter.

9. The arrangement of claim 8, further comprising means for configuring the FIR filter to derive the Cholesky decomposition value L for single user detection.

10. The arrangement of claim 8, wherein the means for configuring the FIR filter comprises means for configuring the filter coefficients and the connection paths of summation elements in a plurality of stages of the FIR filter.

11. The arrangement of claim 10, wherein the means for configuring the connection paths of summation elements in a plurality of stages of the FIR filter comprises means for selecting connection paths from summation elements' outputs respectively to summation elements' input in adjacent stages.

12. The arrangement of claim 11, further comprising means for configuring the FIR filter to derive a Cholesky decomposition value (L) for single user detection, and wherein the means for configuring the connection paths of summation elements in a plurality of stages of the FIR filter comprises means for selecting feedback paths between output and input of the summation element within each stage.

13. An integrated circuit comprising the arrangement of claim 8.

14. A single user detector for use in a CDMA multi-path system, the single user detector comprising the arrangement of claim 8.

15. User equipment for use in a universal mobile telecommunications system (UMTS) system, the user equipment comprising the arrangement of claim 8.

16. A base station for use in a universal mobile telecommunications system (UMTS) system, the base station comprising the arrangement of claim 8.