Abstract:
Multipath delay estimation of a direct sequence spread spectrum (DS-SS) signal transmitted in a multipath fading channel is accomplished by measuring the envelope of the signal to determine a new delay estimate. Delay estimates are also obtained in ray strength order, by subtracting out the influence of the stronger rays on the weaker ones. This subtraction approach can be performed iteratively, allowing further refinement of the delay estimates. Delay estimates can also be determined by minimizing the mean square error (MSE) between a measured correlation function and a modeled correlation function. The minimum mean square error (MMSE) approach can performed iteratively, to further refine the delay estimates. Maximum likelihood (ML) delay estimates can also be obtained by exploiting side information regarding the transmit and receive pulse shapes.

Description:
FIELD OF THE INVENTION 
     The present invention relates to a method and apparatus for estimating multipath radio signal transmission delays, and more particularly to a method and apparatus for estimating multipath signal delays in telecommunications systems that use direct sequence spread spectrum techniques. 
     BACKGROUND OF THE INVENTION 
     The field of wireless communications is expanding at a phenomenal rate, as more radio spectrum becomes available for commercial use and as cellular phones become commonplace. In addition, there is currently an evolution from analog communications to digital communications. In digital communications, speech is represented by a series of bits which are modulated and transmitted from a base station to a phone. The phone demodulates the received waveform to recover the bits, which are then converted back into speech. There is also a growing demand for data services, such as e-mail and Internet access, which require digital communications. 
     There are many types of digital communications systems. Traditionally, frequency division-multiple-access (FDMA) is used to divide the spectrum up into a plurality of radio channels corresponding to different carrier frequencies. These carriers may be further divided into time slots, a technique referred to as time-division-multiple-access (TDMA), as is done in the D-AMPS, PDC, and GSM digital cellular systems. 
     If the radio channel is wide enough, multiple users can use the same channel using spread spectrum (SS) techniques and code-division-multiple-access (CDMA). IS-95 and JSTD-008 are examples of CDMA standards. With direct sequence spread spectrum (DS-SS), information symbols are represented by sequences of symbols referred to as chips. This spreads the information symbols in the frequency band. At the receiver, correlations to the chip sequences are used to recover the information symbols. Spreading allows the system to operate at a low chip signal-to-noise ratio (SNR). If thermal noise is not too great, then noise from other users is tolerable and multiple user signals can occupy the same bandwidth at the same time. 
     The radio signal is reflected and scattered off of various objects, giving rise to multipath propagation. As a result, multiple images of the signal arrive at the receive antenna. When these images have roughly the same delay, relative to the chip period, then they give rise to fading. Fading occurs because the images add sometimes constructively, and sometimes destructively. When these images arrive with different delays relative to the chip period, they can be viewed as echoes of the signal and are often referred to as “resolvable multipaths”, “rays”, or simply “multipaths”. 
     To communicate efficiently and reliably, the receiver should exploit the multipath fading channel by collecting signal energy from the different multipaths. This is achieved by employing a RAKE receiver, which individually detects each echo signal using a correlation method, corrects for different time delays, and combines the detected echo signals coherently. The RAKE receiver includes a number of processing elements or “fingers”. The receiver must estimate the delays of the multipaths and assign a finger to each delay. The finger then despreads that signal image. The finger outputs are RAKE combined by weighting them and adding them together. 
     For mobile communications, the phone or the environment moves, so that multipath delays change over time. To maintain performance, the delay estimation procedure must be able to track the multipath delays. Traditional approaches to delay tracking are the early/late gate and tau-dither approaches. With these approaches, the signal energy is measured slightly before and slightly after the estimated delay. When the estimated delay is correct, then the early and late measurements should be approximately equal, as the chip pulse waveform falls off symmetrically about its peak. When an imbalance is detected, the delay estimate is adjusted to restore balance. 
     Specifically, an early-late gate (ELG) for each RAKE receiver finger operates as follows. Each ELG is provided with an initial estimate of the delay, τ est , of one of the channel paths. The initial delay estimates for each path are typically within half a pseudo-noise (PN) code chip from the exact delay, τ exact , of that path, i.e., |τ exact −τ est |≦0.5T c . The ELG makes two correlations between the local PN code and the received DS-SS signal. One correlation uses a delay τ est +δ, i.e., early correlation, while the other uses a delay, τ est −δ, i.e., late correlation. The value of δ is typically 0.5T c , or slightly less.  FIG. 1  shows an example of the correlation function of the received SS signal versus τ. The early and late correlations are given by C(τ est +δ) and C(τ est −δ), respectively. 
     The results of the early and late correlations, C(τ est +δ) and C(τ est −δ), are compared and the initial estimation τ est  is updated. For example, in  FIG. 1  the early correlation result C(τ est +δ) is larger than the late correlation result C(τ est −δ). Hence, the initial assigned delay τ est  is increased by a small value ε&lt;δ, and the new estimate becomes τ est/new =τ est/old +ε. The process is continuously repeated. Eventually, the estimated delay τ est  converges to the exact channel path delay τ exact  after a number of iterations. In this case, i.e., when rest τ est =τ exact  the results of the early and late correlations become equal and τ est  is not changed any more. The ELG relies on the fact that the correlation function resulting from the correlation of the transmitted SS code and the local code is symmetrical. Hence, when τ est =τ exact  the early and late correlation results at τ est +δ and τ est −δ are equal. This is the case when the channel, shown by block  304  in  FIG. 3 , is a single path.  FIG. 1  shows an example of the correlation function in this case. However, when the channel shown in block  304  of  FIG. 3  is a multipath fading channel, the correlation function is no longer symmetrical. 
     For example,  FIG. 2  shows the correlation function in a two path fading channel. The total correlation function due to the combination of two paths is given by the dashed line. If the channel has two paths at delays τ 1,exact  and τ 2,exact , where τ 1,exact &lt;τ 2,exact , then the ELG assigned to track the second path will have different correlation values at the early correlation at τ 2,est +δ and the late correlation at τ 2,est −δ even if τ 2,est =τ 2,exact . The late correlation is more influenced by interference from the other path than the early correlation. Hence, as shown in  FIG. 2 , even if τ 2,est =τ 2,exact  the early and late correlations are not equal and τ 2,est  will be increased or decreased by ε until the early and late correlations are equal. When the early and late correlations are equal, τ 2,est ≠τ 2,exact . Hence, in a multipath fading channel the conventional ELG is not able to track the multipath delays accurately. This shortcoming is reported in “Frequency Selective Propogation Effects on Spread Spectrum Receiver Tracking” by Robert L. Bogusch, Fred W. Guigliano, Dennis L. Knepp, and Allen H. Michelet, Proceedings of the the IEEE, Vol. 69, No. 7, July 1981, but no solution is provided. 
     An alternative to the ELG approach is given in Baier et al., “Design study for a CDMA-based third-generation mobile radio system”, IEEE Journal on Selected Areas in Communications, vol. 12, pp. 733-743, May 1994. In this paper, the baseband signal is sampled twice per chip period. Delays are estimated on a frame by frame basis. Data are despread using data-dependent despreading sequences and a matched filter (sliding correlator). This provides a sequence of correlation values corresponding to delays spaced T c /2 apart, where T c  is the chip period. The magnitude squared of this sequence is taken and then averaged with other measurements, providing an estimated delay power spectrum. This delay spectrum is then searched for the strongest rays. 
     One concern with this approach is that, when the chip pulse shape is fairly broad, the approach will find several peaks next to each other, which really correspond to only one ray. This problem would become more pronounced should more samples per chip be taken. 
     Another concern, which was also a concern for the ELG approach, is the interpath interference. This can cause peaks to be selected that do not correspond to the actual delays. 
     SUMMARY OF THE INVENTION 
     The present invention solves the problem of multipath delay estimation when a direct sequence spread spectrum (DS-SS) signal is transmitted in a multipath fading channel. In one embodiment, the envelope of the signal about the delay estimate is measured and used to determine a new delay estimate. In another embodiment, delay estimates are obtained in ray strength order, subtracting out the influence of the stronger rays on the weaker ones. The subtraction approach can be performed iteratively, allowing further refinement of the delay estimates. Delay estimates can also be determined by minimizing or maximizing a metric. The metric-based approach can also be performed iteratively. In particular, two metrics are considered; minimum mean square error (MMSE) and maximum likelihood (ML). 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       Other objects and advantages of the invention will become apparent to those skilled in the art from the following detailed description of preferred embodiments, when read in conjunction with the accompanying drawings. Like elements in the drawings have been designated by like reference numerals. 
         FIG. 1  illustrates a correlation function corresponding to a single path channel; 
         FIG. 2  illustrates correlation functions corresponding to a dual path fading channel; 
         FIG. 3  is a block diagram of a direct sequence spread spectrum communication system consistent with the invention; 
         FIG. 4  is a block diagram showing the baseband processor of  FIG. 3  in greater detail; 
         FIG. 5  illustrates correlation results for two correlators in an embodiment of the invention; 
         FIG. 6  is a block diagram of a system that performs envelope-based estimation consistent with the invention; 
         FIG. 7  is a block diagram of a system that performs envelope-based estimation with subtraction, consistent with the invention; 
         FIG. 8  is a block diagram of a system that performs envelope-based estimation with subtraction and iteration, consistent with the invention; 
         FIG. 9  is a block diagram of a system that performs metric-based delay estimation, consistent with the invention; 
         FIG. 10  illustrates a process for performing metric-based delay estimation, consistent with the invention; 
         FIG. 11  is a block diagram of a system that performs iterative metric-based delay estimation, consistent with the invention; 
         FIG. 12  illustrates a process for performing iterative metric-based delay estimation, consistent with the invention; and 
         FIG. 13  is a block diagram signal model of a maximum likelihood estimation system, consistent with the invention. 
     
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     The present invention will now be described in conjunction with a pilot channel based system, such as the IS-95 downlink. The pilot channel for such a system is unmodulated. However, the present invention is also applicable to other systems, such as systems which employ a modulated pilot channel, pilot symbols, or no pilot information at all. Also, the present invention is described in the context of delay tracking. However, the present invention can also apply to initial delay estimation, in which there are no previously estimated delays to update. 
     A DS-SS communication system employing the present invention is illustrated in  FIG. 3. A  DS-SS transmitter  303  transmits a DS-SS signal through the radio channel  304 . It is received by a receiver, which consists of an RF section  301  and a baseband processor  402 . The RF section amplifies, filters, and mixes the signal down to a baseband frequency, typically 0 Hz. The signal is also typically sampled and quantized, producing data samples. For illustration purposes, we assume that there are N samples per chip period T c . 
     The baseband processor  402  is shown in detail in FIG.  4 . The baseband signal is supplied to a delay searcher  421 , delay estimator  422  and a RAKE receiver  423 . The delay searcher  421  makes initial, coarse estimates of the multipath delays and provides the delay estimator  422  with these initial estimates. The RAKE receiver  423  includes a number of demodulating fingers. Each RAKE receiver finger needs to be continuously synchronized with one of the channel paths. This means that the misalignment between the local despreading code used in this finger and the received despreading code of one of the channel paths must be close to zero. Thus, the RAKE receiver must be provided with the delays of the multipaths in the channel. 
     The delay estimator  422  refines the multipath delay estimates provided by the delay searcher, and continues to track these delays and provide accurate delay estimates to the RAKE receiver fingers. The delay estimator  422  is the subject of this invention. 
     For purposes of presentation we assume, in general, a multipath fading channel with M paths with exact delays τ 1 , τ 2 , . . . , τ M . In most solutions we assume that the RAKE receiver has a number of L≦M correlators to estimate the strongest L paths. Correlator number l is assigned an initial estimated delay τ est , corresponding to channel path number l, where l=1, 2, . . . or L. This initial assignment is performed by the delay searcher block  421  of FIG.  4 . 
     Correlator number l performs a number of correlations at delays around τ 1,est . For example, it can perform N+1 correlations at delays λ l (n)=τ 1,est +nε, where l=1, 2, . . . L, and where ε is a sample period as shown in FIG.  5 . In this presentation we assume N is even and n is in the range [−N/2, N/2]. This means that the N+1 correlations are centered by the correlation at the estimated delay, τ 1,est .  FIG. 5  shows an example of the correlations for the case of L=M=2 and N=8 (i.e., 9 correlations). 
     Hence, the correlation result C l (n) is at delay λ l (n) and is performed by correlator number l. Hence, we have (N+1)L correlation results, as shown by vertical arrows in FIG.  5 . These correlation results, C l (n), are stored and processed. In this document we describe embodiments of the invention for processing the correlation results and deducing accurate estimates of the channel delays τ l , for the strongest L paths, where 1≦l≦L. Alternatively, we can use the correlation results to find accurate estimates for all channel delays τ l , where 1≦l≦M, and use only the L delays that correspond to the strongest L paths for demodulation purposes. The presentation in this document assumes the first case, i.e., 1≦l≦L. 
     In a first preferred embodiment, envelope-based estimation is used. For envelope-based estimation, the largest L values of |C l (n) | 2  are successively selected, given that the corresponding delays λ l (n) are separated by a minimum delay separation, which is typically on the order of one chip duration, T c . The corresponding delays λ l (n) are assigned to the L correlators as the new estimations for τ 1,est . 
       FIG. 6  shows a block diagram of a system that performs these operations. Each block from the L blocks  661  performs N+1 correlations at delays λ l (n) to produce the results C l (n). These correlation results are stored in blocks  662 . Once all correlations are completed, block  663  selects the largest of all |C l (n)| 2 , where 1≦l≦L and −N/2≦n≦N/2, and updates the first (strongest) delay estimate τ 1,est  to be equal to the corresponding λ l (n). Also, block  663  deletes (i.e., sets to zero) D correlations centered by the selected value of λ l (n). This guarantees that the next selected delay is at least Dε/2 away from the first one, thus preventing the delay estimates from bunching up. For example, the value of Dε/2 can be chosen to be equal to a chip period, half a chip period, or another appropriate value. Block  664  repeats the same process performed at block  663  to find the next delay estimate τ 2,est . The process is repeated L times until the L th  block  665  finds the estimate τ L,est . 
     The new estimates are fed back to block  666  which assigns them to the RAKE fingers and to the correlator blocks  661 . The process is continuously repeated with new correlations, using the new estimates, to provide delay estimations and track the multipath signals. To avoid sudden changes in delay, which adversely impact channel tracking, existing delays can be adjusted to move towards the new delays in one or more steps of size ε per delay update period. 
     In  FIG. 6 , the block of L correlators  661  provides the L(N+1) correlations needed. Each correlator can be a simple integrate and dump correlator, so that only one of the N+1 correlations is performed at a time. The correlator can also be a sliding correlator, which produces the N+1 correlations much faster. Finally, the block of L correlators  661  can be replaced by a single sliding correlator, that produces correlations in a window spanning N/2 samples before the earliest arriving ray to N/2 samples after the latest arriving ray. In this case, the selection devices  663 ,  664  and  665  have a contiguous set of correlations to work with, instead of a set of L, possibly noncontiguous subsets of N+1 correlations. Use of a single, sliding correlator applies to all subsequent embodiments as well. 
     Zeroing D correlations effectively keeps the associated D delay values from being considered. An alternative approach would be to not zero the correlation values, but to perform a search for largest correlation values over a subset of the correlation values. The subset would exclude those delay values center around previously selected values. 
     A second preferred embodiment uses envelope-based estimation with subtraction. For envelope-based estimation with subtraction, known characteristics of the correlation function between the transmitted signal and the local PN code are used. The correlation function is preferably the chip pulse shape autocorrelation function or the response of the transmit and receive filters collectively. It may also include the effects of the spreading code. The correlation function is a form of side information. Side information is information which aids the delay estimation process. In a multipath fading channel, each path in the channel generates one of the correlation functions. The correlation functions of all the paths interfere with each other. As described above,  FIG. 2  shows an example of correlation functions in a two path fading channel. Each individual path generates a correlation function that is similar in shape to the one shown in  FIG. 1  for a single path channel. However, in reality the two paths interfere with each other and the net correlation function is shown by a dashed line in FIG.  2 . Although the shape of the correlation function for one path is known in advance, the net correlation function is not known in advance since it depends on the path delays and gains, which are not known in advance. 
     A goal of this embodiment is to exploit the knowledge of the shape of the correlation function for each individual channel path, to remove the inter-path interference. Inter-path interference is interference that correlator number l receives due to other paths, i.e., paths ≠l. Let the correlation function between the received DS-SS signal and the local PN code, if the channel has only one path with unity gain, be denoted as p(τ). This p(τ) is shown in FIG.  1  and is known in advance, or is estimated when only one path is present. 
     The procedure in this method is as follows:
         1. Referring to  FIG. 7 , blocks  771  and  772  perform the same function of blocks  661  and  662  in  FIG. 6  to find C l (n) for each delay λ l (n). However, the deletion of D correlations is not done.   2. Also as in the first embodiment, block  773  finds the largest of |C l (n)| 2  and the corresponding delay λ l (n). This delay is used as the first estimate and is denoted as τ 1,est . The corresponding correlation value is denoted as C 1,est . For example, and referring to  FIG. 5 , |C 1 (3)| 2  is the largest. Accordingly, τ 1,est =λ l (3) and C 1,est =C l (3).   3. We assume that this first estimate is exact, and use it to subtract the one path correlation function effect from all other correlation results. Hence, we perform the subtraction:
 
 C   l ( n )| new   =C   l ( n )| old   −C   1,est   p [λ l ( n )−τ l,est ]
    for all calculated correlation values C l (n) for all values of l and n. For example since the first estimate was the pair C 1,est =C 1 (3) and τ 1,est =λ l (3), we subtract the function C l (3)p [λ l (n)−λ l (3)] from all calculated correlation values C l (n) for all values of l and n. This way, and referring back to FIG.  2 . we are trying to subtract the correlation function due to path  1 , which is the strongest path, from the net correlation function, shown by dashed line. If the first estimate is exact, subtraction is performed in the exact location with the exact weight and the remainder will be the correlation function of path  2 . Since the first estimate is made using the strongest path, the first estimate has a high probability of being correct.   4. After the first subtraction at block  774 , at block  775  the largest |C l (n)| 2  is selected again, and the corresponding delay λ 1 (n) is found. Say for example that |C 2 (1)| 2  is the largest. Then the second estimate is declared to be τ 2,est =λ 2 (1) and the corresponding correlation results C 2,est =C 2 (1).   5. Then, in block  776  the following subtraction is performed:
 
 C   l ( n )| new   =C   1 ( n )| old   −C   2,est   p [λ l ( n )−τ 2,est ]
    This subtraction is performed for all correlation results C l (n)| old  (which have already undergone a first subtraction) for all values of:
 
1 ≦l≦L  and − N/ 2 ≦n≦N/ 2
   6. The process is repeated using the blocks following block  776 , until in block  779  the L selected delays λ l (n) are assigned to the correlators as the new estimated values τ 1,est . After estimating all L paths the process is continuously repeated with new correlations to provide delay estimations and track the multipath signals.       

     A third preferred embodiment uses envelope-based estimation with subtraction and iteration. In this method one of the previous methods or any other method of estimation, is applied first to make an initial estimate of all the L delays. However, these delays are not assigned by blocks  666  or  779  to the RAKE fingers or the correlators yet. Instead, the original, unsubtracted correlation results C l (n) are iteratively used for more iterations of subtractions to improve the delay estimates before assigning them to the RAKE fingers and the correlators. 
     Referring to  FIG. 8 , the iteration process is as follows:
         1. All the original, unsubtracted correlation results C l (n) are stored. These will be denoted here as C l (n)| orig . This is done in block  881 . Block  881  can represent any delay estimation approach. A copy of the correlation results, C l (n)| orig  is delivered and stored in each of blocks  882 ,  883 , . . . to  884 , so that each block has its own copy. Also, initial delay estimates τ 1,est  and the corresponding correlation results C 1,est  for 1≦l≦L are generated using one of the previous methods (or the prior art methods).   2. Switch  885  is first set to the upper connection and the initial delay estimates are delivered to blocks  882 ,  883 , . . . to  884  as starting values for iterations. Afterwards, switch  885  is set to the lower position.   3. Each of the L blocks  882 ,  883 , . . . to  884  is used to re-estimate the delay for one path. For each block used to re-estimate a corresponding path number f (in block  882  f=1 while in block  883  f=2, and so on), the following subtraction is performed to re-estimate the delay τ f,est  of path number f. The subtraction is performed using all the original correlation results C l (n)| orig  stored in the block, for all values of 1≦l≦L and −N/2≦n≦N/2. 
             C   l     ⁡     (   n   )       ⁢            new     ⁢     =       C   l     ⁡     (   n   )              orig       -       ∑       k   =   1     ,     k   ≠   f       L     ⁢           ⁢       C     k   ,   est       ⁢     p   ⁡     [         λ   l     ⁡     (   n   )       -     τ     k   ,   est         ]               
    This is done in all blocks simultaneously. In effect, this subtraction process cancels or removes interference with path f caused by the other paths, i.e., all paths ≠f. A copy of the original, unsubtracted values of C l (n)| orig  is also retained.   4. After subtraction, the largest value of the updated |C l (n)| new | 2  is found, and its corresponding delay λ l (n) is selected as a new estimation for τ f,est . This process is done in blocks  882  to  884  for all values of 1≦f≦L.   5. The new estimates are fed back through switch  885  and the same procedure is repeated again many times to improve the estimation. The subtraction is always performed on the original values of C l (n)| orig  kept in memory.       

     For example, let L=3 and let the estimated delays from the previous method be τ 1,est  and τ 2,est  and τ 3,est . To improve the estimation of τ 1,est , i.e., f=1, we perform the following subtraction on C l (n):
 
 C   l ( n )| new   =C   l ( n )| orig   −C   2,est   p [λ l ( n )−τ 2,est ]−C 3,est   p [λ l ( n )−τ 3,est ]
 
     from all original correlation values C l (n)| orig  for all values of l and n. This process subtracts the interference caused by channel paths  2  and  3 . Then, the largest value of |C l (n)| new | 2  is found, and its corresponding delay λ l (n) is selected as a new estimation for τ 1,est . Similar subtraction is performed simultaneously for the second and the third delays. The new delay estimates can be used for more iterations of subtraction to further improve the estimates. 
     In a fourth preferred embodiment of the invention we find delays that minimize a metric, such as a mean square error between the correlation values and a weighted, delayed summation of the correlation function p(τ). In general, a metric is a cost function that provides performance measures for different solutions to a particular problem. Thus, a metric can be evaluated to determine a solution that satisfies a specific performance level or characteristic. 
     Referring to  FIG. 9 , blocks  991  and  992  perform the same functions as blocks  661  and  662  of FIG.  6  and blocks  771  and  772  of FIG.  7 . For each of the L correlators there are N+1 candidate delays where correlation results are generated. Hence, there is a total of (N+1)L possible candidate delay combinations. For each combination, block  993  calculates a metric that represents the squared error between the correlation values and weighted, delayed summation of the correlation functions. Block  994  stores the best metric, which is the smallest metric in this case. After calculating the metric for all possible combinations, block  994  will retain only the smallest metric and the corresponding combination of delays. These delays are delivered to block  995 . Block  995  assigns the delays to the RAKE receiver and the correlator blocks  991  to generate new (N+1)L correlations. 
     For example, assume L=3. An objective is to find the combination of j, k, and m that minimizes the metric J: 
         J   ⁡     (     j   ,   k   ,   m     )       =       ∑     l   =   1     L     ⁢           ⁢       ∑     n   =     -     N   2           N   2       ⁢           ⁢              C   l     ⁡     (   n   )       -             {           C   1     ⁡     (   j   )       ⁢     p   ⁡     [         λ   l     ⁡     (   n   )       -       λ   1     ⁡     (   j   )         ]         +                 C   2     ⁡     (   k   )       ⁢     p   ⁡     [         λ   l     ⁡     (   n   )       -       λ   2     ⁡     (   k   )         ]         +         C   3     ⁡     (   m   )       ⁢     p   ⁡     [         λ   l     ⁡     (   n   )       -       λ   3     ⁡     (   m   )         ]           }            2                   
 
     where −N/2≦j≦N/2, −N/2≦k≦N/2 and −N/2≦m≦N/2. This metric is calculated for all combinations of j, k and m in block  993 . Block  994  retains only the combination of j, k, and m that minimizes the metric. Let the selected combination be denoted as ĵ, {circumflex over (k)} and {circumflex over (m)} then the delay estimates generated by block  994  are τ 1,est =λ l λ l (ĵ), τ 2,est =λ 2 ({circumflex over (k)}) and τ 3,est =λ 3 ({circumflex over (m)}). 
     For a general value of L the metric described above can be extended appropriately. Note, since each of j, k and m takes values from −N/2 to N/2, the same metric is computed (N+1) L  times. 
     As with previous approaches, the calculations need not operate on L possibly noncontiguous subsets of correlation values. Alternatively, the approach can be applied to a window of contiguous correlation values or even multiple windows. For the single window of K samples, there would be K!/(L!(K−L)!) possible combinations of L delays, where “!” denotes factorial (e.g., 4!=4×3×2×1). To reduce complexity it may be desirable to use another delay estimation technique to obtain initial delay estimates, then consider only delays that fall near the initial set. 
       FIG. 10  shows a flow chart of the process described above, which can take place for example within the baseband processor  402  of  FIG. 3 , and more particularly in the delay estimator  422  of FIG.  4 . In  FIG. 10 , the process begins at step  1000  and proceeds to step  1002 . In step  1002 , correlation values are generated and stored. From step  1002  the process proceeds to step  1004 , where a new delay combination is selected. From step  1004  the process proceeds to step  1006 , where a metric is calculated for the delay combination selected. From step  1006  the process proceeds to step  1008 , where it is determined whether the calculated metric is better than a previously calculated and stored metric. If the newly calculated metric is better than the stored metric, then the process proceeds from step  1008  to step  1010 , where the newly calculated metric and the corresponding delay combination are stored. From step  1010  the process proceeds to step  1012 . If the newly calculated metric is not better than the stored metric, then the process proceeds from step  1008  to step  1012 . In step  1012  it is determined whether the metric most recently calculated was for the last possible candidate delay combination. If not, then the process returns to step  1004 . If yes, then the process proceeds from step  1012  to step  1014 . In step  1014  the stored delay combination corresponding to the best metric is assigned to the RAKE receiver and the correlator blocks  991 . From step  1014  the process proceeds to step  1002 , and the cycle repeats. 
     In a fifth preferred embodiment, the amount of computation required to compute the metric is reduced by performing the computation iteratively using, for example, MMSE estimation. In this method, and referring to  FIG. 11 , we have L different metrics to minimize. Each metric is used to estimate the delay of one path. Blocks  1111  and  1112  correspond to blocks  991  and  992  of  FIG. 9 , and perform similar functions. Block  1113  applies the first metric L(N+1) times, corresponding to the N+1 delays in the L correlators (blocks  1111 ). Block  1114  stores the best metric and the corresponding delay. This delay is the first estimate. The process is repeated L times in blocks  1115  through  1118  with a different metric for each stage. 
     For example, consider L=3. Block  1113  evaluates the first metric for (N+1 )L combinations corresponding to values of f and j, where 1≦f≦L and −N/2≦j≦N/2. These values of f and j are used to scan all possible delays λ f (j) and minimize the metric: 
           J   1     ⁡     (     f   ,   j     )       =       ∑     l   =   1     L     ⁢           ⁢       ∑     n   =     -     N   2           N   2       ⁢           ⁢                C   l     ⁡     (   n   )       -         C   f     ⁡     (   j   )       ⁢     p   ⁡     [         λ   l     ⁡     (   n   )       -       λ   f     ⁡     (   j   )         ]                2             
 
     Block  1114  selects the combination of f and j that minimizes this metric. Let the selected combination be {circumflex over (f)} and ĵ, which corresponds to the first delay estimate. Then the metric is extended and block  1115  evaluates it for the values of h and k, where 1≦h≦L and −N/2≦k≦N/2, except for the selected combination corresponding to the first delay estimate. These values of h and k are used to scan all possible delays λ h (k) and minimize the metric: 
           J   2     ⁡     (     h   ,   k     )       =       ∑     l   =   1     L     ⁢           ⁢       ∑     n   =     -     N   2           N   2       ⁢                C   l     ⁡     (   n   )       -     {           C     f   ^       ⁡     (     j   ^     )       ⁢     p   ⁡     [         λ   l     ⁡     (   n   )       -       λ     f   ^       ⁡     (     j   ^     )         ]         +         C   h     ⁡     (   k   )       ⁢     p   ⁡     [         λ   l     ⁡     (   n   )       -       λ   h     ⁡     (   k   )         ]           }            2             
 
     Block  1116  selects the combination of h and k that minimizes this metric. Let the selected combination be ĥ and {circumflex over (k)}, which corresponds to the second delay estimate. Then the metric is extended and block  1117  evaluates it for the values of s and m, where 1≦s≦L and −N/2≦m≦N/2, except for the selected combinations corresponding to the previous delay estimates. These values of s and m are used to scan all possible delays λ s (m) and minimize the metric: 
           J   3     ⁡     (     s   ,   m     )       =       ∑     l   =   1     L     ⁢           ⁢       ∑     n   =     -     N   2           N   2       ⁢              C   l     ⁡     (   n   )       -             {           C     f   ^       ⁡     (     j   ^     )       ⁢     p   ⁡     [         λ   l     ⁡     (   n   )       -       λ     f   ^       ⁡     (     j   ^     )         ]         +         C     h   ^       ⁡     (     k   ^     )       ⁢     p   ⁡     [         λ   l     ⁡     (   n   )       -       λ     h   ^       ⁡     (     k   ^     )         ]         +         C   s     ⁡     (   m   )       ⁢     p   ⁡     [         λ   l     ⁡     (   n   )       -       λ   s     ⁡     (   m   )         ]           }          2                 
 
     Block  1118  selects the combination of s and m that minimizes this metric. Let the selected combination be ŝ and {circumflex over (m)}. Hence, the final delay estimates are τ 1,est =λ f  ({circumflex over (f)}), τ 2,est =λ {circumflex over (n)} ({circumflex over (k)}) and τ 1,est =λ {circumflex over (f)} ({circumflex over (m)}). These delay estimates are assigned by block  1119  to the RAKE receiver and the correlators block Ill to generate new correlations. 
     The reduction of computational complexity depends on how the delays are restricted. In the previous description, delays are not allowed to be identical. With this restriction, the number of metrics computed is:
 
 L ( N+ 1)+[ L ( N+ 1)−1 ]+ . . . +[L ( N+ 1)− L +1 ]=L   2 ( N+ 1)− L ( L −1)/2
 
However, the first L(N+1) metrics are simpler than the next L(N+1)−1 metrics, and so on. Further restriction is possible, by requiring that in each of the L intervals of length N+1 there be only one delay estimate. For this case, the number of metrics computed is:
 
 L ( N+ 1)+( L −1)( N +1)+. . . +( N +1)= L ( L +1)( N +1)/2
 
Again, the metrics have different complexity. Note that common terms between metrics can be stored in memory and re-used. Also, for a general value of L, the metrics described above are extended appropriately.
 
       FIG. 12  shows a flow chart of the process described above, which can take place for example within the baseband processor  402  of  FIG. 3 , and more particularly in the delay estimator  422  of FIG.  4 . 
     In  FIG. 12 , the process begins at step  1200  and proceeds to step  1202 , where l is set to zero. The value of l denotes a particular one of the L metrics. From step  1202  the process proceeds to step  1204 , where correlation values are generated and stored. From step  1204  the process proceeds to step  1206 , where l is incremented to indicate a next one of the L metrics. In this instance l equals one to indicate the first of the L metrics. From step  1206 , the process proceeds to step  1208 , where a new delay estimate is selected for the metric, which depends on new and previous delay estimates. From step  1208  the process proceeds to step  1210 , where the metric is calculated. From step  1210  the process proceeds step  1212 , where it is determined whether the newly calculated metric is better than the previously calculated metric. If not, then the process proceeds to step  1216 . If yes, then the process proceeds to step  1214 , where the best metric and the corresponding delay are stored. From step  1214 , the process proceeds to step  1216 , where it is determined whether the delay is the last possible delay for the metric. If not, then the process proceeds to step  1208  where a new delay is selected for the metric. If yes, then the process proceeds to step  1218  where it is determined whether the metric is the last one of the L metrics. If not, then the process proceeds to step  1206 , where l is incremented to select the next metric. If yes, then the process proceeds to step  1220 , where the L stored delay estimates, i.e., the best delays for each of the L metrics, are assigned to the RAKE receiver and the correlators. From step  1220 , the process proceeds to step  1202 , and repeats. 
     In describing  FIGS. 9-12 , a MMSE metric is used. Alternatively, maximum likelihood estimation can be used to find the most likely delay values given the received samples and an assumption that the noise (interference plus thermal noise) is Gaussian. In essence, a loglikelihood function of the received data is maximized. Byproducts of this approach include maximum likelihood (ML) channel coefficient estimates, which can be used to initialize a channel coefficient estimator. 
     The signal model is illustrated in FIG.  13 . The general case is illustrated, in which the signal being used to estimate the channel has data modulation a(k). Note that a(k) is known for pilot channels or pilot symbols, whereas a(k) would need to be detected for a data channel. Per survivor processing techniques can be used, so that for a data channel, a(k) is hypothesized. The spreading sequence is denoted p k (n), the chip pulse shape is denoted f(t), and the baseband equivalent transmitted waveform is denoted u(t). The medium is modeled as a finite set of rays or resolvable multipaths, with delays d j  and coefficients c j . Noise is denoted w(t) and the received signal is denoted y(t). 
     As shown in the signal model of  FIG. 13 , an information source having data modulation a(k) is provided in block  1302 , and is spread in block  1304  with the spreading sequence P k (n) and then provided to block  1306 . In block  1306 , the spread signal is processed using the pulse shape f(t) to generate the baseband equivalent transmitted waveform u(t) which is then transmitted through a transmission medium  1308 . The transmission medium is modeled as described above with delays d j  and coefficients c j . Noise w(t) is introduced into the signal in block  1310 , and finally the signal is received by a receiver in block  1312 . 
     We assume data corresponding to K symbol values is used to estimate or update the delays (K=1 typically). Maximizing the likelihood is equivalent to maximizing the following loglikelihood function:
 
 J ({ĉ j , {circumflex over (d)} j })=∫−| y ( t )− ŷ ( t )| 2   dt   (1)
 
where 
                 y   ^     ⁡     (   t   )       =       ∑     k   =   1     K     ⁢           ⁢       a   ⁡     (   k   )       ⁢       ∑   n     ⁢           ⁢         p   k     ⁡     (   n   )       ⁢       ∑   j             ⁢                   ⁢   c     ^     j     ⁢     f   ⁡     (     t   -     nT   c     -       d   ^     j     -       kN   c     ⁢     T   c         )                           (   2   )             
 
where N c  is the number of chips per symbol. This cost function or metric can be expressed in terms of quantities available to the baseband processor by assuming:
         1. filtering in the RF and possibly baseband sections closely approximates filtering that is matched to the pulse shape f(t); and       

     2. despreading is matched to the spreading sequence p k (n).
 
The delay estimation relies on despread values x k (t), where t is sampled, for example, 8 times per chip period. These despread values are obtained by correlating the baseband samples r(n) with the conjugate of the spreading code, p k *(n), i.e. 
                 x   k     ⁡     (       d   ^     j     )       =       ∑   n     ⁢           ⁢         p   k   *     ⁡     (   n   )       ⁢     r   ⁡     (       nT   c     +       kN   c     ⁢     T   c       +       d   ^     j       )                   (   3   )             
 
     Under the above assumptions, it can be shown that the metric given above is equivalent to the metric: 
               J   ⁡     (     {         c   ^     j     ,       d   ^     j       }     )       =       2   ⁢       ∑   j     ⁢     {         c   ^     j   *     ⁢       ∑     k   =   1     K     ⁢           ⁢       a   ⁡     (   k   )       ⁢       x   k     ⁡     (       d   ^     j     )             }         -       KN   c     ⁢       ∑   j     ⁢           ⁢       ∑     j   ′       ⁢           ⁢         c   ^     j   *     ⁢       c   ^       j   ⁢           ⁢   ′       ⁢       r   ff     (         d   ^     j     -       d   ^       j   ⁢           ⁢   ′         )                       (   4   )             
 
where channel coefficient estimates are a function of the delay estimates and the pulse shape autocorrelation function r ff (τ). Specifically,
 
 Rĉ=x   (5)
 
where 
             R   =     [             r   ff     ⁡     (   0   )               r   ff     ⁡     (         d   ^     1     -       d   ^     2       )               r   ff     ⁡     (         d   ^     1     -       d   ^     3       )           …               r   ff     ⁡     (         d   ^     2     -       d   ^     1       )               r   ff     ⁡     (   0   )               r   ff     ⁡     (         d   ^     2     -       d   ^     3       )           …               r   ff     ⁡     (         d   ^     3     -       d   ^     1       )               r   ff     ⁡     (         d   ^     3     -       d   ^     2       )               r   ff     ⁡     (   0   )           …           …       …       …       …         ⁢           ]             (   6   )             
  ĉ=[ĉ   0    . . . ĉ   j−1 ] T   (7)
 
             x   =       [       1   K     ⁢       ∑     k   =   1     K     ⁢           ⁢         a   *     ⁡     (   k   )       ⁢       x     k   ⁢               ⁡     (       d   ^     0     )       ⁢           ⁢   …   ⁢           ⁢     1   K     ⁢       ∑     k   =   1     K     ⁢           ⁢         a   *     ⁡     (   k   )       ⁢       x     k   ⁢               ⁡     (       d   ^       J   -   1       )                 ]     T             (   8   )             
 
     Thus, candidate delay estimates would be considered. For each candidate set, channel coefficient estimates would be determined and the metric would be evaluated. The candidate estimates which maximize the metric would become the estimated delays. This is shown in  FIGS. 9 and 10 , except the metric is the ML metric. 
     Alternative forms of the metric are possible. For example, the channel coefficient estimation expression could be substituted into the metric expression to obtain a metric that depends only on the correlation values and the pulse shape autocorrelation function. Also, the pulse shape autocorrelation function can be pre-computed and stored in memory. 
     In practice, coarse or initial delay estimates can be obtained by other approaches. Then, candidate delay estimates can be formed by searching about the initial estimates, so that there aren&#39;t too many candidates to consider. 
     A sub-optimal iterative variation is to assume that ŷ(t) includes one path only. We estimate the delay of that path by minimizing the metric, a task which in essence becomes finding the peak correlation. Then, we fix the first estimated delay and assume that ŷ(t) includes two paths, the first path already estimated plus a second, unknown delay. We consider candidate sets which have the first delay set to the first path&#39;s estimated delay, but vary the second path&#39;s delay. The second path&#39;s delay which minimizes the metric gives the second path&#39;s estimated delay. The process is repeated for more delay estimations. Once this suboptimal approach is completed, the optimal approach can be performed by considering candidate delay sets that are near the first set of estimates. This is shown in  FIGS. 11 and 12 , except that the ML metric is used instead. 
     The present invention is also applicable to multi-antenna reception, using diversity antennas, phased arrays, and possibly beam forming. Delay estimation is performed on each of M input channels. Either each channel has L fingers or LM fingers are freely allocated among the channels. Joint ML or MMSE metrics can be used, as well as signal strength selection. 
     The principles, preferred embodiments and modes of operation of the present invention have been described in the foregoing specification. However, the invention which is intended to be protected is not to be construed as limited to the particular embodiments disclosed. Further, the embodiments described herein are to be regarded as illustrative rather than restrictive. Variations and changes may be made by others, and equivalents employed, without departing from the spirit of the present invention. For example, metrics other than ML or MMSE can be used to estimate multipath delays. Accordingly, it is expressly intended that all such variations, changes and equivalents which fall within the spirit and scope of the present invention as defined in the claims be embraced thereby.