The present invention relates generally to RAKE receivers and particularly to interference suppressing RAKE receivers.
RAKE receivers represent a well-known approach to multi-path reception, particularly in Direct Sequence Code Division Multiple Access (DS-CDMA) wireless communication. In a multi-path communication channel, a transmitted signal travels through multiple propagation paths to the receiver. Thus, the receiver receives multiple “echoes” of the transmitted signal, with each multi-path echo generally suffering from different path delay, phase, and attenuation effects.
RAKE receivers exploit multi-path propagation by assigning each of two or more RAKE “fingers” to one of the incoming multi-path echoes. Each finger is tuned to a particular multi-path echo. By estimating the channel effects, e.g., phase and attenuation, and by properly accounting for the differences in path delays, the individual output from each RAKE finger may be combined with the outputs from the other fingers to provide a combined RAKE output signal with a greatly improved signal-to-noise ratio (SNR).
In DS-CDMA systems, such as Wideband CDMA and IS-2000, high transmission data rates are achieved by transmitting data at a low spreading factor and/or on more than one spreading code (multi-code). When a low spreading factor and/or multi-code is used, performance is sensitive to multi-path dispersion. With dispersion, there are multiple echoes of the transmitted signal with different relative delays. These echoes interfere with one another. Not only is orthogonality lost between successive symbols as one symbol overlaps with the next, but orthogonality is also lost between symbols sent on different, orthogonal codes.
As a result, performance is often limited by interference between different symbols being sent to a particular user. These symbols can correspond to the previous or next symbol, symbols sent in parallel on another code carrier, or both. In general, this interference is referred to as self-interference, where self-interference may include intersymbol interference (ISI) or inter-code interference (ICI). A key aspect of ISI is that it varies from symbol to symbol. This variation is due to the spreading codes being a combination of Walsh codes and a common scrambling code. The scrambling code has a period much longer than the symbol period, which effectively changes the overall spreading code from symbol period to symbol period.
The present application discloses a method and apparatus for reducing interference, such as inter-symbol interference, from a symbol of interest in a RAKE receiver. The RAKE receiver comprises a plurality of RAKE fingers, a processor, and a combiner. The plurality of RAKE fingers despread symbols received over multiple paths of a multi-path channel. The processor determines cross-correlations between different symbols. The combiner combines the despread symbols using the cross-correlations to reduce interference from the symbol of interest.
G-RAKE 112 comprises a plurality of RAKE fingers 120, RAKE processor 130, and RAKE combiner 132. Each RAKE finger 120 processes different time shifts or multi-path echoes of the received signal r(t). Typically, each RAKE finger 120 comprises a delay element 122 and a correlator 124. Delay elements 122 delay the received signal r(t) to time align the multi-path echoes processed by each RAKE finger 120. Correlators 124 correlate the delayed signals with a spreading code to extract the assigned multi-path echoes from the received signal r(t). Despread values from correlators 124 are combined in combiner 132. Combiner 132 typically includes weighting elements 126 and summer 134. Weighting elements 126 weight the multi-path echoes output from respective correlators 124. The weighted multi-path echoes are summed symbol-by-symbol by summer 134 to form an estimate of a symbol of interest, ŝ(m), during each symbol period. While some of the figures refer to the estimated symbol of interest as ŝ(m), throughout this specification the symbol of interest s(m) and the estimated symbol of interest ŝ(m) may be represented by s(0) and ŝ(0), respectively, where m=0, without loss of generality. Further, those skilled in the art will appreciate that the time shifts associated with delay elements 122 correspond to the delays of the multi-path echoes, while the combining weights associated with weighting elements 126 may correspond to the conjugates of the multiplying coefficients of the multi-path echoes (RAKE) or conjugates of weights that depend on the coefficients and a noise correlation matrix (G-RAKE).
In the conventional receiver 100 described above, the symbol estimates ŝ(m) output during each symbol period may be corrupted by interference, such as intersymbol interference (ISI), which may result in demodulation and decoding errors. The ISI may be due in part to the dispersive effects of the communication channel, and in part to cross-correlations between the spreading codes used for different symbols. It should be noted that the spreading code is a combination of an assigned Walsh code and a scrambling code. The period of the scrambling code is typically larger than a symbol period, so the net effect is a time-varying spreading code. The present invention uses knowledge of the communication channel and cross-correlations between spreading codes for different symbols to determine cross-correlations between symbols to reduce interference.
The combining weights or weighting factors for M-RAKE 200 may be determined from a maximum likelihood (ML) or a minimum mean square error (MMSE) solution computed by RAKE processor 230 utilizing knowledge of the different symbol spreading sequences and the channel coefficients. Typically, these combining weights are based on an analysis of the correlator outputs. With many of the mathematical details and definitions deferred till later, the vector of correlator outputs may be represented as:
where y(dj, mj) corresponds to the output of delay element J and correlator J,
represents the vector output components associated with each transmitted symbol, and n represents a noise output vector (thermal noise, other interference). Generally speaking hi comprises the composite channel impulse response associated with the ith symbol, s(i), which includes the channel effects and despreading (spreading sequence cross-correlations). The first term in Eq. (1) represents the symbol of interest and the summation in Equation 1 represents the contribution of all other symbols, or the ISI, in y.
The symbol of interest, s(0), is estimated by using a linear combination of the outputs of RAKE fingers 220, which may be represented as ŝ(0)=wHy, where wH is the conjugate transpose of a weight solution vector w. The linear combination is performed in RAKE combiner 232 by weighting elements 226 and summer 234.
The weight solution vector, w, based on a maximum likelihood criterion for the estimate, may be calculated by:
w=Ru−1h0, (2)
where Ru is the correlation matrix of all undesired components in Equation 1. Correlation matrix Ru may be calculated by taking the expectation with respect to noise and random transmitted symbols (assuming the random transmitted symbols are independent). The resulting correlation matrix of the undesired components may be represented by:
where Rn is the correlation matrix of the noise, which may be correlated across fingers after the despreading process. The calculation of the noise correlation matrix Rn is shown below. Because the expectation is taken over random transmitted symbols, instead of the known spreading codes, the combining weights applied by weighting elements 226 will change each symbol period due to the time-varying nature of the spreading waveform.
The derivation of the correlator outputs defined in Equation 1 will now be described. The transmitted signal for a single code channel may be defined as:
where E is the symbol energy, and s(i) and ai(t) are the ith symbol and its spreading waveform, respectively. The spreading waveform ai(t) is composed of a complex sequence of code chips convolved with a pulse shape. It is assumed that the spreading waveform is normalized so that
If the multi-path channel is discrete and comprises L rays, then
represents its impulse response where gl and τl are the complex gain coefficient and delay of the lth ray, respectively. The signal received through this channel may be represented by:
where n(t) is a complex noise process.
The finger of a RAKE receiver incorporates a delay, d, which precedes a correlator matched to the spreading waveform of the mth symbol, αm(t). The output of the finger may be given as:
where ñ(d,m) is the complex noise output of the correlator. Assuming that the symbol of interest is s(0), the traditional RAKE would have m=0 and the delays of the fingers would be matched to the delays of the resolvable rays of the multi-path. However, for the M-RAKE 200 of the present invention, the spreading waveform used for correlation may be generalized to be any symbol's spreading waveform. Equation 7 may be rewritten as:
is the colored noise output of the correlator, and
is the correlation of the ith symbols spreading waveform against the mth symbol's spreading waveform, used by the finger's correlator. Finally, the components associated with a particular symbol (a correlation between symbol m and i) may be grouped together into
a net channel impulse response for the ith symbol, where spreading code and pulse shape information provides Ri,m(t) and channel estimation is used to get gl.
Finally, the RAKE finger outputs may be vectorized for the detection of the symbol of interest as:
y=[y(d1,m1),y(d2,m2), . . . , y(dj,mj)]T (12)
where there are J RAKE fingers 220. In a traditional matched filter case, J=L, the number of resolvable rays in the multi-path channel. Also, J>L fingers may be used.
The calculation of the noise covariance or correlation matrix Rn referenced in Equation 3 is computed in one of two ways. In the first way, the noise correlation matrix represents white noise, n(t), which has been colored by the correlation process (filtering) of the RAKE fingers 220 to produce ñ(d,m), where the noise is a function of the delay d of the RAKE finger 220 and the particular spreading waveform of symbol m used by the correlator 224.
Defining the noise output vector of the RAKE fingers 220 as
n=[ñ(d1,m1) ñ(d2,m2) . . . {tilde over (n)}(dj,mj)]T, (13)
the noise correlation matrix may be represented by:
Rn=E{nnH}. (14)
The cross-correlation of the ith finger and the jth finger may be given as:
Because the noise is white, E{n(t)n*(t+τ)}=σ2δ(t−τ), where σ2 is the noise power, Equation 15 becomes:
Sifting property of the δ(·) function in integration results in:
Thus, the noise covariance can be constructed using spreading code cross-correlation information and noise power estimates (σ2). The latter can be estimated by using known techniques. When interference from other user signals is present (i.e., not modeled as ISI or ICI), then the noise at the receive antenna may not be white. A second way to compute the noise covariance matrix is to estimate noise correlations using despread values. For example, the model in Equation 1 also applies to the pilot symbols being sent on the pilot channel. This model can be used to obtain vectors of noise samples, n, by subtracting the pilot symbol contributions from the y vector. Outer products of the noise sample vectors can be formed and smoothed in time to give an estimate of the noise covariance matrix. As this matrix is Hermitian symmetric, only the upper or lower triangle of the matrix needs to be estimated.
Turning now to
Each LTF 342 combines despread symbols output from a corresponding RAKE finger 320 during a plurality of successive symbol periods as shown in
Each LTF 342 comprises 2M+1 weighting elements 346, 2M delay elements 348, and LTF summer 350, where M represents the length of the ISI in symbol periods. Thus, when M equals 2, there will be four interfering symbols (two preceding and two succeeding) surrounding a symbol of interest s(m). LTF 342 receives and delays the despread symbols output from a corresponding RAKE finger 320 in a tapped delay line comprising a plurality of delay elements 348. The despread symbols may be corrupted by ISI. During each symbol period, the LTF 342 weights and combines the despread symbols output during 2M+1 symbol periods centered on the symbol of interest s(m) in weighting elements 346 and LTF summer 350. The weighting factor for each weighting element 346 is solved for jointly in a single step by processor 330 based on the channel coefficients and the cross-correlation between spreading codes, as described further below.
Restricted M-RAKE 300 reduces the number of RAKE fingers 320 while providing the same RAKE finger outputs typically provided by a larger number of RAKE fingers 220 in the M-RAKE 200 shown in
The weighting factors for the LTF 442 are determined according to essentially the same ML criteria way as with the M-RAKE 200, with some redefining of the data vectors in question. As the RAKE finger outputs are stored in LTF 442, the vector of RAKE finger outputs are redefined according to the time they were produced. That is, the outputs of correlators 424, previously defined in Equation 1, may be rewritten as:
where hi(mT) is the response from the ith symbol seen in the mth RAKE finger output vector, and where the symbol of interest is represented by s(0). The output of combiner 432 comprises the mth-combined output of the RAKE finger outputs and may be defined as:
z(mT)=gHy(mT), (19)
where, for example, the weighting and combining process simply comprises the complex conjugate of the coefficients of the channel taps in the dispersive channel, (traditional RAKE) g=[g1g2 . . . gL]T. The contents of the LTF 442 may be represented in vector form as:
Equation 20 has the same general form as Equation 1, with the components of the various symbols and noise separated. The estimate ŝ(m) of the symbol of interest may be represented as:
{circumflex over (s)}(0)=vHz. (21)
The weight vector, v, in LTF 242 may be calculated by:
v=Ru′−1h′0 (22)
where the cross-correlation matrix Ru′ of the undesired portion of the signal may be given as:
The cross-correlation matrix Ru′ describes cross-correlations between the effective spreading codes for different symbols. Details regarding the calculation of the noise correlation matrix Rn′ are discussed further below. As with the M-RAKE 200 of
Substituting Equation 18 into Equation 19 produces:
from which the vector z may be written as:
From this h′i may be defined as
h′i=[gHhi(MT)gHhi((M−1)T) . . . gHhi(−MT)]T, (26)
and the noise vector, n′, as:
n′=[gHn(MT)gHn((M−1)T) . . . gHn(−MT)]T. (27)
This noise vector n′ may be rewritten as:
where this block diagonal matrix of channel coefficients may be defined as:
This allows the correlation matrix Ru′ of the noise vector, n′, to be written as
Equation 30 shows that Rn″ may be calculated element by element in the same manner in which Rn was calculated (e.g., Equation 17 for the white noise case).
The present invention may also be utilized in multi-code receivers. Multi-code transmission results when multiple code channels are devoted to a single downlink receiver to increase data carrying capability. This is analogous to several separate simultaneous transmissions being received by a single receiver. As the receiver is bound to demodulate each of these code channels, it can use the results of the demodulation of one code channel to aid in the demodulation of another code channel. Further, because of the multi-codes received by the multi-code receiver, each demodulated symbol may, in addition to ISI, be susceptible to inter-code interference (ICI) caused by symbols from adjacent codes.
For example, the M-RAKE 200 of
The restricted M-RAKE 300 of
Similarly, the LEQ 400 of
As discussed above, the weighting factors for LTF 342 may be determined according to an ML solution. However, computational savings may be achieved if the ML solution is calculated as a minimum mean squared error (MMSE) solution, and then converted to a ML solution through a scaling of the combining weights (or final output), which can be calculated from elements of the MMSE solution.
It is straightforward to show that for a single user detection RAKE receiver 200, 300, 400 the weight vector, w, ML combining of the RAKE finger outputs is the same as the MMSE weight vector solution, v, within a scaling factor. That is,
w=αv (31)
where α is some real coefficient. This α coefficient essentially relates the reliability of the symbol estimate.
Examining first the single user case, the RAKE finger outputs may be written as:
where hi is the net response across the fingers of the ith symbol, s(i), through spreading, channel, and despreading. The noise vector n represents the vectorized output of multiple fingers with white noise as the input. Without loss of generality, h0s(0) corresponds to the symbol of interest where m=0.
For the MMSE solution, the data correlation matrix, Ry=E{yyH}, may be used to solve for the familiar expression
v=Ry−1h0, (33)
where h0 results from E{ys*(0)}, with this expectation taken only over the symbols.
For the ML solution, the disturbance correlation matrix, Ru, is used, which is the data correlation matrix less the part related to the desired symbol, or
Ru=Ry−h0h0H, (34)
to solve for another similar, yet familiar expression
w=Ru−1h0. (35)
Equation 31 may be proven easily, starting with Equation 33 and using the fact of Equation 34:
Because h0Hv is a scalar, w may be written as:
resulting in a scaling factor of:
This scaling factor, α, is written in terms of an MMSE solution, with the assumption that it is desirable to convert an MMSE solution to an ML solution. That is, the terms for calculating a would already have been be calculated for the MMSE solution.
Other expressions for “α” can be used which account for the fact that the channel estimate may be a scaled version of the true channel coefficient, due to differences between the pilot and traffic channel power levels and spreading factors. Specifically, the factor “α” can be computed as
where A corresponds to the ratio of the energy in a traffic symbol to the energy in the pilot symbol. For example, A may be expressed as
A=r1r2, (40)
where r1 is the ratio of power allocated to the traffic channel to the power allocated to the pilot channel. This ratio can be estimated or set to some nominal value. Estimation of this ratio is addressed in Bottomley et al., “Communications methods, apparatus, and computer program products using gain multipliers,” U.S. patent application Ser. No. 09/968,443, filed 1 Oct. 2001. Variable r2 represents the ratio of the spreading factor of the traffic channel to the spreading factor of the pilot channel (length of the pilot symbol used for channel estimation). These quantities are known at the receiver.
Regarding the multi-user/multi-code detection case, which may be used in the WCDMA multi-code transmission, parallel data channels sent to one user are considered as multiple user signals. Separate banks of RAKE fingers, each tuned to a user spreading sequence, can produce a vector of RAKE finger outputs, z, and these may be combined together to a vector symbol estimate, where the elements of the vector are the estimates of the individual user symbols. For the MMSE case, this may be represented by ŝMMSE=VHz and for the ML case, ŝMLSE=WHz where V and W are the MMSE and ML weight matrices, respectively. The same scaled relationship between the MMSE multi-user weight solution and the ML multi-user weight solution is not as obvious as in the single user case.
Now consider the multi-code/multi-user case, where there are K codes in parallel. The RAKE finger output vector may be given by:
where hi,k is the net response of the kth user's ith symbol, s(i, k). Again, n is the noise vector output from the fingers.
Solving jointly for a vector of user symbols
where vk is weight vector to provide the MMSE estimate of the kth user's symbol. This may be rewritten as a matrix V times the RAKE finger outputs
{circumflex over (s)}MMSE(0)=VHz, (44)
where V=[v1 v2 . . . vK] and ŝMMSE(0) represents the symbol of interest. It's straightforward to show that the joint MMSE solution that minimizes ∥s(0)−ŝ(0)∥2 is the same as the solution that minimizes the squared error of the individual estimates of the user's symbols, |s(0,k)−ŝ(0,k)|2. As a result, the weight matrix for the joint MMSE solution, V, may be written as:
where the net responses of the K users become the K columns of the matrix H0, the 0 subscript denotes that this is the response for the desired 0th symbol vector. Going forward, the 0 may be dropped for clarity, understanding that the response vectors for the 0th symbol are being considered.
All of this vector and matrix manipulation provides a concise way of writing a joint MMSE solution. Assuming that this equation is solvable using matrix inversion, the implication of Equation 45 is that only a single matrix inversion needs to be calculated. For the ML solution, it is not obvious that this is the case. The vector ML solution may be written in much the same way as before
{circumflex over (s)}ML(0)=WHz (46)
where W=[w1 w2 . . . wK]. As a solution that gives us log likelihood ratios (LLR) for the bits of the individual users is desired, the estimates of the symbols to be ML individually is desired.
The weight matrix, W, for the ML solution may therefore be represented by:
W=└Ru,1−1h1 Ru,2−1h2 . . . Ru,K−1hK┘, (47)
where the disturbance correlation matrix for each user's ML weight vector solution may be different, as denoted Ru,k for the kth user. Keeping the assumption that the weights using matrix inversion are being solved for, it would appear that it is necessary to calculate K different inverses to solve this system, as opposed to the single inverse matrix of the MMSE solution.
However, it should be noted that as in the single user case, the disturbance correlation matrix for the ML solution is the same as the MMSE data correlation matrix less the component from the desired symbol, that is
Ru,k=Ry−hkhkH. (48)
It is recognized that the inverse of Ru,k can be written as a “rank one update” inverse so,
The kth column of W becomes:
and the same conclusion as for the single user case is achieved, although shown from a slightly different direction (using the rank one update). Then Equation 47 becomes:
and ultimately where:
W=VΛ (53)
where Λ is a diagonal matrix with λk as the kth diagonal element.
Grouping these individual solutions in a matrix equation provides a concise expression in Equation 53, but it also points out important implementation points. Specifically, given a solution involving matrix inversion, it emphasizes that only a single inverse matrix is calculated for an MMSE solution as opposed to K inverse matrices for the ML solution, which may represent significant processing savings.
As discussed above and shown in Equation 54, the form of the MMSE solution is similar to the form of the ML solution.
vMMSE=(Rz)−1h′o (54)
However, the correlation matrix of the data, Rz is used, rather than the correlation matrix of the disturbance or noise, Ru.
The form of the z vector of RAKE outputs for the qth symbol may be represented by:
zq=[z(q−M) z(q−(M−1)) . . . z(q+M)]T, (55)
where the symbol period, T, is dropped for convenience. This vector essentially represents the contents of the LTF 442 corresponding to the LEQ 400 discussed above. In another form, zq may be rewritten as:
zq=[z(q−M)aq]T, (56)
where most of the z vector is now represented by subvector aq. Note that for the next symbol, q+1, the data is shifted through LTF 442, yielding:
zq+1=[aq z(q+M+1)]T, (57)
where z(q+M+1) comprises the new combined RAKE output introduced into the filter.
As discussed above, the correlation matrix for the solution for the qth symbol may be represented by:
Rz(q)=E{ZqZqH}, (58)
where E{·} is the statistical expectation operation, which in this case is taken only over the random noise. Substituting Equation 56 into Equation 58 results in:
Repeating this with Equation 57 for q+1 results in:
As shown in Equations 59 and 60, a submatrix E{aqaqH} appears in the correlation matrix for symbol q and q+1, indicating that it may be reused. Essentially, for each successive symbol sub-matrices E{aqaqH} may be shifted to partially form a new correlation matrix for the new symbol.
The MMSE solution allows for the special time varying structure of the data correlation matrix, Rz. As noted above, the variation of the spreading waveform necessitates the calculation of a new weight vector for each symbol period. This variation of the spreading waveform manifests itself in the changing of h′0 and Rz−1. However, Rz does not completely change from symbol to symbol, and therefore, a substantial portion of Rz may be reused. As a result, only a portion of Rz needs to be calculated from scratch for each new symbol.
Further, in the multi-code scenario, the same MC-LEQ 500 with the same data contents may be used to solve for all K code channels at a given symbol instance. If the ML solution is used, the Ru matrix is recalculated for each code channel because Ru varies from code channel to code channel. However, with the MMSE solution, a single common data correlation matrix, Rz may be calculated and used for all K solutions.
The RAKE receiver embodiments discussed herein may be disposed in any wireless communication device, such as a base station 700 or mobile terminal 710, as shown in
Base station 700 includes antenna 702 for transmitting symbols to mobile terminal 710. Objects, such as interfering object 720 may cause multiple echoes of the transmitted symbols to arrive at mobile terminal 710 at different times, as described above. The symbols received at antenna 712 of mobile terminal 710 are then processed in RAKE receiver 714. RAKE receiver 714 represents any of the exemplary embodiments described above. Similarly, mobile terminal 710 may transmit symbols along multiple paths to base station 700. RAKE receiver 704 in base station 700 may then process the received symbols according to any of the exemplary embodiments described above.
In discussing exemplary embodiments of the present invention, it should be understood that one or more embodiments of the present invention comprise signal processing methods that may be implemented in hardware using discrete or integrated circuits, in software as stored program instructions, or in some combination thereof. More generally, one or more embodiments of the present invention may be embodied in hardware and/or software (including firmware, resident software, micro-code, etc.), including an application specific integrated circuit (ASIC).
The present invention may, of course, be carried out in other ways than those specifically set forth herein without departing from essential characteristics of the invention. The present embodiments are to be considered in all respects as illustrative and not restrictive, and all changes coming within the meaning and equivalency range of the appended claims are intended to be embraced therein.