Successive equalization and cancellation and successive mini multi-user detection for wireless communication

Techniques for recovering a desired transmission in the presence of interfering transmissions are described. For successive equalization and cancellation (SEC), equalization is performed on a received signal to obtain an equalized signal for a first set of code channels. The first set may include all code channels for one sector, a subset of all code channels for one sector, multiple code channels for multiple sectors, etc. Data detection is then performed on the equalized signal to obtain a detected signal for the first set of code channels. A signal for the first set of code channels is reconstructed based on the detected signal. The reconstructed signal for the first set of code channels is then canceled from the received signal. Equalization, data detection, reconstruction, and cancellation are performed for at least one additional set of code channels in similar manner.

BACKGROUND

The present disclosure relates generally to communication, and more specifically to techniques for recovering transmission in wireless communication.

A wireless multiple-access communication system can concurrently communicate with multiple wireless devices, e.g., cellular phones. Examples of such multiple-access systems include Code Division Multiple Access (CDMA) systems, Time Division Multiple Access (TDMA) systems, Frequency Division Multiple Access (FDMA) systems, and Orthogonal FDMA (OFDMA) systems.

A wireless multiple-access system typically includes many base stations that provide communication coverage for a large geographic area. Each base station may transmit data to one or more wireless devices located within its coverage area. A given wireless device may receive a desired transmission from a serving base station as well as interfering transmissions from nearby base stations. These interfering transmissions are intended for other wireless devices located within the coverage areas of the nearby base stations but act as interference to this given wireless device. The interference hinders the wireless device's ability to recover the desired transmission and has a large impact on performance.

There is therefore a need in the art for techniques to recover a desired transmission in the presence of interfering transmissions in a wireless communication system.

SUMMARY

Techniques for recovering a desired transmission in the presence of interfering transmissions are described herein. In one embodiment, which is referred to as successive equalization and cancellation (SEC), equalization is performed on a received signal to obtain an equalized signal for a first set of code channels. The first set may include all code channels for one sector, a subset of all code channels for one sector, multiple code channels for multiple sectors, etc. Data detection is then performed on the equalized signal to obtain a detected signal for the first set of code channels. A signal for the first set of code channels is reconstructed based on the detected signal. The reconstructed signal for the first set of code channels is then canceled from the received signal. Equalization, data detection, reconstruction, and cancellation are performed for at least one additional set of code channels in similar manner. The processing is performed for one set of code channels at a time, e.g., starting with the strongest set for the strongest sector.

In another embodiment, which is referred to as successive mini multi-user detection (SMM), data detection is performed on a received signal to obtain a detected signal for a first set of code channels. A signal for the first set of code channels is reconstructed based on the detected signal. The reconstructed signal for the first set of code channels is then canceled from the received signal. Data detection, reconstruction, and cancellation are performed for at least one additional set of code channels in similar manner. The data detection is performed in different manners for SEC and SMM, as described below.

Various aspects and embodiments of the disclosure are described in further detail below.

DETAILED DESCRIPTION

The techniques described herein may be used for various communication systems such as CDMA, TDMA, FDMA, OFDMA, and Single-Carrier FDMA (SC-FDMA) systems. A CDMA system may implement a radio technology such as cdma2000, Wideband-CDMA (W-CDMA), and so on. cdma2000 covers IS-2000, IS-856, and IS-95 standards. A TDMA system may implement a radio technology such as Global System for Mobile Communications (GSM). These various radio technologies and standards are known in the art. W-CDMA and GSM are described in documents from an organization named “3rd Generation Partnership Project” (3GPP). cdma2000 is described in documents from an organization named “3rd Generation Partnership Project 2” (3GPP2). 3GPP and 3GPP2 documents are publicly available. An OFDMA system utilizes OFDM to transmit symbols in the frequency domain on orthogonal frequency subcarriers. An SC-FDMA system transmits symbols in the time domain on orthogonal frequency subcarriers. For clarity, the techniques are described below for a CDMA system, which may be a cdma2000 system or a W-CDMA system.

The techniques may also be used for single-input single-output (SISO), single-input multiple-output (SIMO), multiple-input single-output (MISO), and multiple-input multiple-output (MIMO) transmissions. Single-input refers to one transmit antenna and multiple-input refers to multiple transmit antennas for data transmission. Single-output refers to one receive antenna and multiple-output refers to multiple receive antennas for data reception. For clarity, much of the description below is for a SISO transmission.

FIG. 1shows a CDMA system100with multiple base stations110and multiple wireless devices120. A base station is generally a fixed station that communicates with the wireless devices and may also be called a Node B, an access point, or some other terminology. Each base station110provides communication coverage for a particular geographic area102. The term “cell” can refer to a base station and/or its coverage area depending on the context in which the term is used. To improve system capacity, a base station coverage area may be partitioned into multiple smaller areas, e.g., three smaller areas104a,104b, and104c. Each smaller area is served by a respective base transceiver subsystem (BTS). The term “sector” can refer to a BTS and/or its coverage area depending on the context in which the term is used. For a sectorized cell, the BTSs for all sectors of that cell are typically co-located within the base station for the cell. A system controller130couples to base stations110and provides coordination and control for these base stations.

The techniques described herein may be used for systems with sectorized cells as well as systems with un-sectorized cells. In the following description, the term “sector” can refer to (1) a BTS and/or its coverage area for a system with sectorized cells (e.g., in 3GPP2) and (2) a base station and/or its coverage area for a system with un-sectorized cells (e.g., in 3GPP). In the following description, the terms “sector” and “base station” are used interchangeably.

Wireless devices120are typically dispersed throughout the system, and each wireless device may be stationary or mobile. A wireless device may also be called a mobile station, a user equipment, a terminal, a station, a subscriber unit, or some other terminology. A wireless device may be a cellular phone, a personal digital assistant (PDA), a wireless modem card, a handheld device, a laptop computer, and so on. A wireless device may communicate with zero, one, or multiple base stations on the forward and reverse links at any given moment. The forward link (or downlink) refers to the communication link from the base stations to the terminals, and the reverse link (or uplink) refers to the communication link from the terminals to the base stations. For simplicity,FIG. 1shows only transmissions on the forward link.

FIG. 2shows a block diagram of a base station110and a wireless device120, which may be one of the base stations and one of the wireless devices shown inFIG. 1. For simplicity,FIG. 2shows base station110having one transmit antenna and wireless device120having one receive antenna. In general, base station110and wireless device120may each be equipped with any number of antennas. For simplicity,FIG. 2shows only the processing units for data transmission on the forward link.

At base station110, a transmit (TX) data processor210receives traffic data for the wireless devices being served, processes (e.g., encodes, interleaves, and symbol maps) the traffic data to generate data symbols, and provides the data symbols to a CDMA modulator220. As used herein, a data symbol is a modulation symbol for data, a pilot symbol is a modulation symbol for pilot, a modulation symbol is a complex value for a point in a signal constellation (e.g., for M-PSK or M-QAM), a symbol is generally a complex value, and pilot is data that is known a priori by both the base stations and the wireless devices. CDMA modulator220processes the data symbols and pilot symbols as described below and provides output chips. A transmitter (TMTR)230processes (e.g., converts to analog, amplifies, filters, and frequency upconverts) the output chip stream and generates a forward link signal, which is transmitted from an antenna232.

At wireless device120, an antenna252receives the forward link signals from base station110as well as other base stations and provides a received signal. A receiver (RCVR)254processes (e.g., filters, amplifies, frequency downconverts, and digitizes) the received signal and provides received samples to a processor260. Processor260may perform successive equalization and cancellation (SEC) and/or successive mini multi-user detection (SMM), as described below. Antenna252may receive the forward link signal from base station110via one or more signal paths, and the received signal may include one or more signal instances (or multipaths) for base station110. Rake receiver270may be used to process all multipaths of interest. Processor260or rake receiver270provides data symbol estimates, which are estimates of the data symbols sent by base station110to wireless device120. A receive (RX) data processor280processes (e.g., symbol demaps, deinterleaves, and decodes) the data symbol estimates and provides decoded data. In general, the processing by processor260/rake receiver270and RX data processor280is complementary to the processing by CDMA modulator220and TX data processor210, respectively, at base station110.

Controllers/processors240and290direct operation at base station110and wireless device120, respectively. Memories242and292store data and program codes for base station110and wireless device120, respectively.

In CDMA, multiple orthogonal code channels may be obtained with different orthogonal codes. The code channels may also be referred to as traffic channels, physical channels, data channels, and so on. For example, multiple orthogonal traffic channels are obtained with different Walsh codes in cdma2000, and multiple orthogonal physical channels are obtained with different orthogonal variable spreading factor (OVSF) codes in W-CDMA. The code channels may be used to send different types of data (e.g., traffic data, broadcast data, control data, pilot, and so on) and/or traffic data for different users. Data for the code channels is scaled, combined, and spectrally spread across the entire system bandwidth. The spectral spreading is performed with a spreading code, which is a pseudo-random number (PN) code in cdma2000 and a scrambling code in W-CDMA. In cdma2000, the channelization with Walsh codes is called “covering”, and the spectral spreading is called “spreading”. In W-CDMA, the channelization with OVSF codes is called “spreading”, and the spectral spreading is called “scrambling”. For clarity, cdma2000 terminology (e.g., covering, spreading, Walsh codes, and PN code) is used in the following description.

FIG. 3shows a block diagram of CDMA modulator220within base station110. For simplicity, the following description assumes that N code channels are available for each sector, and each code channel is assigned a different Walsh code of length N, where N may be equal to 16, 32, 64, 128, 256, or some other value. In general, orthogonal codes of different lengths may be used for the code channels, and N may correspond to the length of the longest orthogonal code. For simplicity, the following description assumes that the N code channels are for N users, and the terms “code channels” and “users” are used interchangeably. In actuality, some code channels are used for overhead, e.g., pilot, control data, broadcast data, etc.

CDMA modulator220includes N code channel processors310athrough310nfor the N code channels. Within each code channel processor310, a multiplier312receives and scales the data or pilot symbols for code channel n of sector k with a gain of gk,nand provides scaled symbols. The gain gk,nmay be set to zero if code channel n is not used by sector k. A Walsh cover unit314channelizes the scaled symbols with a Walsh code wnfor code channel n. Unit314performs covering by repeating each scaled symbol to generate N replicated symbols and multiplying the N replicated symbols with the N chips of Walsh code wnto generate N data chips for that scaled symbol. A combiner320receives and adds the data chips for all N code channels. A PN spreader322multiplies the combined data chips with a PN code ckassigned to sector k and generates output chips.

The output chips for sector k in one symbol period, with chip rate sampling, may be expressed in matrix form as follows:
sk=CkWGkdk=Akdk,  Eq (1)
where dkis an N×1 vector of data symbols sent on the N code channels of sector k,Gkis an N×N diagonal matrix of gains for the N code channels of sector k,W is an N×N Hadamard matrix containing N Walsh codes in N columns,Ckis an N×N diagonal matrix containing N chips of the PN code for sector k,Akis an N×N processing matrix for data vector dk, andSkis an N×1 vector of output chips for sector k.

For clarity, vectors are denoted with bolded and underlined lower case text (e.g., d), and matrices are denoted with bolded and underlined upper case text (e.g., G). A diagonal matrix contains possible non-zero values along the diagonal and zeros elsewhere.

Vector dkcontains N data symbols to be sent simultaneously on N code channels in one symbol period. Matrix Gkcontains N gains for the N code channels along the diagonal and zeros elsewhere. The N gains determine the amount of transmit power used for the N code channels. Matrix W contains N Walsh codes for the N code channels in N columns. If the code channels have different Walsh code lengths, then N is equal to the longest Walsh code length for all code channels, and each shorter Walsh code is repeated in matrix W. Since the same Walsh matrix W is used for all sectors, subscript k is not used for W. Matrix Ckcontains N PN chips along the diagonal and zeros elsewhere. These PN chips are from the PN code for sector k for one symbol period. Vector skcontains N output chips transmitted by sector k for all N code channels in one symbol period.

Matrix Akrepresents all of the processing observed by data vector dkand may be expressed as:
Ak=CkWGk.  Eq (2)
The columns of Akrepresent code channels/users, and the rows of Akrepresent time.

Wireless device120receives the forward link signals from K sectors, which include the serving sector as well as interfering sectors. In general, K may be any value. The received signal for each sector k, without noise, may be expressed as:
xk=HkCkWGkdk=HkAkdk,  Eq (3)
where Hkis an (N+Δ)×N channel response matrix for sector k, andxkis an (N+Δ)×1 vector of received samples for sector k.

Δ is the delay spread of the wireless channel, in units of chips. Matrix Hkcontains complex channel gains for sector k. Vector xkcontains N+Δ received samples for sector k for one symbol period, in the absence of noise. For simplicity, the description herein is for the case in which dkcovers one symbol period. In general, dkmay cover multiple symbol periods (e.g., the previous, current, and next symbol periods) to account for intersymbol interference (ISI). In this case, the dimensions of the other matrices would increase correspondingly.

The received samples at wireless device120for all K sectors may be expressed as:

⁢y_=∑k=1K⁢⁢x_k+n_=∑k=1K⁢⁢H_k⁢A_k⁢d_k+n_,Eq⁢⁢(4)
where y is an (N+Δ)×1 vector of received samples at wireless device120, andn is an (N+Δ)×1 vector of noise at wireless device120.

In general, y may represent chip-rate samples from one receive antenna (as described above), over-sampled data (e.g., samples at twice chip rate, or chip×2), chip-rate samples from multiple receive antennas, or over-sampled data from multiple receive antennas. For simplicity, the noise may be assumed to be additive white Gaussian noise (AWGN) with a zero mean vector and a covariance matrix of σn2I, where σn2is the variance of the noise, and I is the identity matrix with ones along the diagonal and zeros elsewhere.

Wireless device120may recover one or more transmissions from one or more sectors using various signal recovery techniques including successive equalization and cancellation (SEC) and successive mini-MUD (SMM). These techniques may be applied on a (1) per sector basis to estimate and cancel the signal from one sector at a time or (2) per group basis to estimate and cancel the signal for one group of code channels/users at a time. For clarity, sector-based successive equalization and cancellation and group-based successive mini-MUD are described below.

1. Successive Equalization and Cancellation (SEC)

Sector-based successive equalization and cancellation processes the K sectors in a sequential order, one sector at a time, typically starting with the strongest sector and concluding with the weakest sector. The processing for each sector includes equalization, then data detection, and then signal reconstruction and cancellation. The processing for one sector s may be performed as follows.

Equalization is initially performed using minimum mean square error (MMSE), least squares (LS), or some other equalization technique. A equalizer matrix Mmmse,smay be derived for sector s based on the MMSE technique, as follows:
Mmmse,s=[HsHHs+σv,s2I]−1HsH,  Eq (5)
where Hsis a channel response matrix for sector s,σv,s2is the variance of the total noise and interference for sector s, and“H” denotes a conjugate transpose.
Hsmay be estimated based on the pilot received from sector s.

A equalizer matrix Mls,smay also be derived for sector s based on the least squares technique, as follows:
Mls,s=[HsHHs]−1HsH.  Eq (6)

Equalization may be performed for sector s as follows:

Equation (7) may be approximated as follows:
ŝs≈Asds+Vs.  Eq (8)

The total noise and interference matrix Vsmay be expressed as:

Data vector dsfor sector s may be estimated based on equalized vector ŝsusing MMSE, least squares, or some other data detection technique. Data detection may be performed for sector s based on the MMSE technique, as follows:

d_^s=(A_sH⁢A_s+R_vv,s)-1⁢A_sH⁢s_^s=(G_sH⁢W_H⁢C_sH⁢C_s⁢W_⁢⁢G_s+R_vv,s)-1⁢A_sH⁢s_^s=(N⁢⁢G_sH⁢G_s+R_vv,s)-1⁢A_sH⁢s_^sEq⁢⁢(10)
where Rvv,sis a covariance matrix for total noise and interference matrix Vs, and{circumflex over (d)}sis a detected data vector for sector s, which is an estimate of ds.
Gain matrix Gsand covariance matrix Rvv,smay be determined as described below.

The total noise and interference matrix Vsmay be approximated as white. Data vector dsmay then be estimated as follows:

Data detection may also be performed for sector s based on the least squares technique, as follows:
{circumflex over (d)}s=(AsHAs)−1AsHŝs,  Eq (12)
where (AsHAs)−1AsHis a least squares data detection filter for sector s.

Data detection may also be performed for sector s based on a matched filter technique, as follows:
{circumflex over (d)}s=AsHŝs,  Eq (13)
where AsHis a matched data detection filter for sector s.

The signal for sector s may be reconstructed as follows:
{circumflex over (x)}s=HsAs{circumflex over (d)}s,  Eq (14)
where {circumflex over (x)}sis a reconstructed signal vector for sector s, which is an estimate of xs.

Reconstructed signal vector {circumflex over (x)}smay be subtracted from received vector y to obtain a received vector for the next sector, as follows:
ys=y−{circumflex over (x)}s,  Eq (15)
where ysis a received vector with the signal from sector s removed.

The description above for equations (5) through (15) is for equalization and cancellation for one sector s. The same processing may be performed successively for K sectors. The received power for each sector may be estimated, e.g., based on the pilot received from the sector. The K sectors may be sorted from strongest sector to weakest sector. Successive equalization and cancellation may then be performed for one sector at a time, starting with the strongest sector.

FIG. 4shows a block diagram of a processor260afor successive equalization and cancellation, which is an embodiment of processor260inFIG. 2. A first sector s1to be processed in the first stage may be the strongest received sector. A block410aperforms equalization on received vector y with an equalizer matrix Ms1for sector s1and provides an equalized vector ŝs1for sector s1, e.g., as shown in equation (7). A block412aperforms data detection on equalized vector ŝs1with a data detection matrix Zs1for sector s1and provides a detected data vector {circumflex over (d)}s1for sector s1, e.g., as shown in equation (11), (12) or (13). A block414areconstructs the signal for sector s1based on {circumflex over (d)}s1and provides a reconstructed signal vector {circumflex over (x)}s1for sector s1, e.g., as shown in equation (14). A summer416asubtracts reconstructed signal vector {circumflex over (x)}s1from received vector y, as shown in equation (15), and provides a modified received vector ys1for the next stage.

A second sector s2to be processed in the second stage may be the second strongest received sector. A block410bperforms equalization on modified received vector ys1with an equalizer matrix Ms2for sector s2and provides an equalized vector ŝs2. A block412bperforms data detection on equalized vector ŝs2with a data detection matrix Zs2for sector s2and provides a detected data vector {circumflex over (d)}s2. A block414breconstructs the signal for sector s2based on {circumflex over (d)}s2and provides a reconstructed signal vector {circumflex over (x)}s2. A summer416bsubtracts reconstructed signal vector {circumflex over (x)}s2from modified received vector ys1and provides a modified received vector ys2for the next stage. The processing for each subsequent sector may proceed in similar manner.

The sectors may be processed sequentially from the strongest sector to the weakest sector. This may improve detection performance for each sector since the signals from stronger sectors (if any) have been canceled. The sectors may also be processed in other orders. In general, the sequential processing of the sectors may result in the received signal quality progressively improving for each subsequently processed sector, since the interfering signals from earlier processed sectors have been removed.

The wireless device may desire to recover a signal from a single sector. In an embodiment, this sector is processed in the last stage after canceling the signals from other sectors. In another embodiment, the K sectors are processed from strongest to weakest, as described above. If the desired sector is not the last sector that is processed, then reconstructed signal vector {circumflex over (x)}sfor the desired sector may be added back to modified received vector ysKfrom the last stage, or {tilde over (y)}s=ysK+{circumflex over (x)}s. Vector {tilde over (y)}swould then contain the signal from the desired sector and would have the signals from all other sectors removed. Vector {tilde over (y)} may then be processed to detect the desired signal.

The wireless device may desire to recover signals from multiple sectors, e.g., for soft handoff. In an embodiment, these sectors are processed in the last few stages after canceling the signals from other sectors. In another embodiment, the K sectors are processed from strongest to weakest, as described above. For each desired sector, the reconstructed signal vector for that sector may be added back to modified received vector ysKfrom the last stage, and the resultant vector may be processed to recover the signal from that sector.

In equation (11), covariance matrix Rvv,smay be estimated as follows. Equation (7) may be rewritten as:
ŝs=Bs+Vs,  Eq (16)
where Bs=MsHsAsds. The covariance of ŝs, Bsand Vsmay be expressed as:
Rss=Rbb,s+Rvv,s.  Eq (17)

The covariance of ŝsmay be expressed as:
Rss=E{ŝsŝsH},  Eq (18)
where E{ } denotes an expectation operation. Rssmay be estimated by computing the outer product of ŝsand averaging over multiple symbol periods.

The covariance of Bsmay be estimated as:
Rbb,s=E{MsHsAsAsHMsH}.  Eq (19)
As, Hsand Msmay be estimated and used to derive Rbb,s.

The covariance of Vsmay then be expressed as:
Rvv,s=E{VsVsH}=Rss−Rbb,s.  Eq (20)

Gain matrix Gsmay be estimated by performing channel matched filtering followed by PN descrambling and Walsh despreading as follows.

The variance of the elements of qsmay be expressed as:
E{|qs,n|2}=|αs,n|2gs,n2+σv,s2,  Eq (22)
where qs,nis the n-th element of q,αs,nand gs,nare the n-th diagonal elements of Ωsand Gs, respectively, andσv,s2is the variance of vs.
The mean square operation in equation (22) removes the data symbols in ds, which are assumed to be uncorrelated.

The noise and interference variance σv,s2may be estimated by taking the difference of es,0for the pilot channel for consecutive symbol periods, computing the squared magnitude of the difference, and filtering the squared magnitude to obtain the estimate of σv,s2. The estimated σv,s2may then be subtracted from E{|qs,n″2} to obtain an estimate of |αs,n|2gs,n2, as follows:
Gs,n=E{|gs,n|2}−σv,s2=|αs,n|2gs,n2,  Eq (23)
where Gs,nis a scaled power gain for code channel n.

Scaled gains for the code channels may then be derived as follows:

gs,ngs,pilot=Gs,nGs,pilot,Eq⁢⁢(24)
where gs,pilotand Gs,pilotare the gain and the power gain, respectively, of the pilot channel for sector s.

In equation (24), the gains of the code channels are given relative to the gain gs,pilotof the pilot channel. This is a desired form since the channel response matrix Hsis also derived based on the pilot and includes the gain gs,pilotof the pilot channel, which would be canceled by the scaled gains from equation (24).

FIG. 5shows a block diagram of a code channel gain estimation unit500.FIG. 5shows the processing to estimate the gains of the N code channels for one sector s. Within gain estimation unit500, a unit510performs channel matched filtering and multiplies the received samples in y with the complex conjugated channel gains in Hsfor sector s. A multiplier512multiplies the output of unit510with the complex conjugated PN chips for sector s and provides despread samples. A unit514performs an N-point fast Hadamard transform (FHT) on N despread samples for each symbol period and provides N decovered symbols for N code channels, which are the N elements of qs. Unit514efficiently performs Walsh decovering for all N code channels.

A unit520acomputes the squared magnitude of the decovered symbol for each code channel. A filter522afilters the output of unit520afor each code channel. The output of filter522ais an estimate of the expected value in equation (22).

The noise and interference variance is estimated based on the decovered symbols for the pilot channel. A unit516provides one symbol period of delay for each decovered symbol for the pilot channel. A summer518subtracts the delayed decovered symbol from the current decovered symbol and provides the difference. Since the pilot symbol is constant, taking the difference removes the pilot modulation while capturing the noise and interference, which are assumed to be random from symbol period to symbol period. A unit520bcomputes the squared magnitude of the difference from summer518and further divides the result by two to account for the difference operation by summer518. A filter522bfilters the output of unit520band provides the estimated noise and interference variance σv,s2.

A unit524subtracts the noise and interference variance from the output of filter522aand provides the scaled power gain Gs,nfor each code channel. A unit526determines a scaling factor 1/Gs,pilotbased on the scaled power gain Gs,pilotfor the pilot channel. A multiplier528multiplies the scaled power gain for each code channel with the scaling factor and provides Gs,n/Gs,pilotfor each code channel. A unit530computes the square root of Gs,n/Gs,pilotfor each code channel and provides the scaled gain gs,n/gs,pilotfor that code channel.

The received power for each code channel may be determined based on the scaled gain gs,nfor that code channel and the received power for sector s, as follows:

Ps,n=(gs,ngs,pilot)2⁢Ps,pilot,Eq⁢⁢(25)
where Ps,pilotis the received pilot power for sector s, andPs,nis the received power for code channel n of sector s.
The received powers for the code channels may be used to sort users into groups, as described below.

FIG. 6shows an embodiment of a process600for performing successive equalization and cancellation. Equalization is performed on a received signal (e.g., y) to obtain an equalized signal (e.g., ŝs) for a first set of code channels (block612). The first set may include all code channels for one sector, a subset of all code channels for one sector, multiple code channels for multiple sectors, etc. Data detection is then performed on the equalized signal for the first set of code channels to obtain a detected signal (e.g., {circumflex over (d)}s) for the first set of code channels (block614). A signal for the first set of code channels is reconstructed based on the detected signal (block616). The reconstructed signal (e.g., {circumflex over (x)}s) for the first set of code channels is canceled from the received signal (block618). Each signal may comprise samples, symbols, chips, etc.

Equalization, data detection, reconstruction, and cancellation are performed for at least one additional set of code channels in similar manner. A determination is made when there is another set of code channels to process (block620). If the answer is ‘Yes’, then the process returns to block612to process the next set of code channel. Otherwise, the detected signal for each desired code channel is processed and decoded (block622). Although not shown inFIG. 6for simplicity, if the desired code channel is in a set that has been canceled (e.g., the first set), then the reconstructed signal for that set may be added back, and equalization and data detection may be performed again to obtain a more reliable detected signal for the desired code channel.

The received powers of the code channels for all sectors to be processed may be determined. Multiple sets of code channels may be formed based on the received powers. The first set may include code channels with the strongest received powers. Each remaining set may include code channels with progressively lower received powers. Equalization, data detection, reconstruction, and cancellation may be performed sequentially for the multiple sets of code channels, one set at a time, starting with the first set having the strongest received powers.

For equalization, an equalizer matrix (e.g., Ms) for a set of code channels may be derived in accordance with the MMSE or least squares technique. Equalization may then be performed on the received signal with the equalizer matrix. For data detection, a gain matrix (e.g., Gs) and the covariance of noise and interference (e.g., Rvv,s) for a set of code channels may be estimated and used to derive a data detection filter (e.g., Zs). Data detection may then be performed for the set of code channels with the data detection filter.

For successive mini-MUD, the users in the K sectors (or the code channels for the K sectors) are arranged into M groups, where M may be any integer value. Each group may contain a predetermined number of users, e.g., L users, where L may be any integer value. The users may be arranged in various manners.

In an embodiment, which is referred to as sector-based SMM, each group includes all users in one sector. In this embodiment, M user groups may be formed, with each user group containing L users in one sector, where M=K and L=N. The K sectors may be sorted from strongest to weakest. The first group may contain all users in the strongest sector, the second group may contain all users in the next strongest sector, and so on, and the last group may contain all users in the weakest sector.

In another embodiment, which is referred to as global SMM, the received powers for all users in all sectors are estimated, e.g., as described above for equations (21) through (25). The users are then sorted from strongest to weakest and stored in a list. The first group may contain the L strongest users in the list, the second group may contain the L next strongest users, and so on, and the last group may contain the L weakest users in the list. As an example, there may be 40 total users in three sectors. The users may be arranged into groups of four users. The first group may contain the four strongest users, the second group may contain the next four strongest users, and so on, and the tenth group may contain the four weakest users. In this embodiment, a given group may contain users in the same sector or different sectors.

In yet another embodiment, which is referred to as local SMM, each group contains a subset of the users in one sector. The users may be sorted based on their received powers as described above for global SMM. The first group may contain the L strongest user in the list for the same sector, the second group may contain the next L strongest remaining users in the list for the same sector, and so on. Alternatively, the groups may be formed for one sector at a time, starting with the strongest sector. The first group may contain the L strongest users in the strongest sector, the second group may contain the L next strongest users in the strongest sector, and so on, and the last group may contain the L weakest users in the weakest sector. As an example, there may be 40 total users in three sectors, with the strongest sector1including 20 users, the next strongest sector2including 12 users, and the weakest sector3including 8 users. The users may be arranged into groups of four users. The first group may contain the four strongest users in sector1, the second group may contain the next four strongest users in sector1, and so on, and the tenth group may contain the four weakest users in sector3.

The received signal for user group m, without noise, may be expressed as:
xm=HmCmWmGmdm=Tmdm,  Eq (26)
where dmis an L×1 data vector for the L users in group m,Gmis an L×L gain matrix for the users in group m,Wmis an N×L matrix of Walsh codes for the users in group m,Cmis an N×N PN matrix for the users in group mHmis an (N+Δ)×N channel response matrix for the users in group m,Tmis an (N+Δ)×L system matrix for data vector dm, andxmis an (N+Δ)×1 vector of received samples for user group m.

Vector dmand matrices Gmand Wmcontain the data symbols, the gains, and the Walsh codes, respectively, for the users in group m. These users may belong in the same sector or different sectors. Matrix Wmmay contain duplicate columns if multiple users in group m are assigned code channels with the same Walsh code. Cmcontains PN chips for all sectors transmitting to the users in group m. Hmcontains channel gains for the users in group m. If the users in group m belong in one sector, then Cmand Hmcontain PN chips and channel gains for one sector. If the users in group m belong in multiple sectors, then Cmand Hmare block diagonal matrices containing PN chips and channel gains for these multiple sectors, one diagonal channel gain matrix and one diagonal PN matrix for each sector. xmcontains the received samples for all users in group m in the absence of noise.

The system matrix for user group m may be given as:
Tm=HmCmWmGm,  Eq (27)
System matrix Tmrepresents all of the processing as well as the channel response observed by data vector dm. The height of Tmis related to time (in number of chips), and the width of Tmis determined by the number of users. A single system matrix T may be defined for all M·L users in all K sectors. However, the processing for this single large system matrix T would be computationally intensive.

The received samples at wireless device120for the M user groups may be expressed as:

Successive mini-MUD processes the M user groups in a sequential order, one group at a time, typically starting with the strongest group and concluding with the weakest group. The processing for one user group g may be performed as follows. For user group g, equation (28) may be rewritten as follows:

y_=T_g⁢d_g+v_g,andEq⁢⁢(29)v_g=∑m=1,m≠gM⁢T_m⁢d_m+n_,Eq⁢⁢(30)
where vgis the total noise and interference for user group g.

Data vector dgfor user group g may be estimated based on received vector y and using MMSE, least squares, or some other data detection technique. Data detection may be performed for user group g based on the MMSE technique, as follows:
{circumflex over (d)}g=Rdd,gTgH(TgRdd,gTgH+Rvv,g)1y,(31)
where Rdd,g=E{dgdgH} is the covariance of data vector dgfor user group g, andRvv,g=E{vgVgH} is the covariance of total noise and interference vector vg.

{circumflex over (d)}gis a detected data vector for user group g, which is an estimate of dg. The data symbols in dgmay be assumed to be uncorrelated so that Rdd,g=I. The noise and interference may be assumed to be AWGN so that Rvv,g=σv,g2I, where σv,g2is the variance of the noise and interference for user group g, which may be estimated as described above for equations (21) through (25).

Equation (31) may then be expressed as:

Data detection may also be performed for user group g based on the least squares technique, as follows:

d_g^=(T_gH⁢T_g)-1⁢T_gH⁢y_=Z_ls,g⁢y_Eq⁢⁢(33)
where Zls,g=(TgHTg)−1TgHis a least squares data detection filter for user group g.

The signal for user group g may be reconstructed as follows:
{circumflex over (x)}g=Tg{circumflex over (d)}g,  Eq (34)
where {circumflex over (x)}gis a reconstructed signal vector for user group g, which is an estimate of xg.

Reconstructed signal vector {circumflex over (x)}gmay be subtracted from received vector y to obtain a modified received vector for the next user group, as follows:
yg=y−{circumflex over (x)}g,  Eq (35)
where ygis a modified received vector with the signal from user group g canceled.

The description above for equations (29) through (35) is for one user group g. The same processing may be performed successively for the M user groups, one user group at a time, e.g., starting with the strongest user group.

FIG. 7shows a block diagram of a processor260bfor successive mini-MUD, which is another embodiment of processor260inFIG. 2. A first user group g1to be processed in the first stage may be the strongest user group. A block712aperforms data detection on received vector y with a data detection matrix Zg1for user group g1and provides a detected data vector {circumflex over (d)}g1for user group g1. A data detection matrix Zg1may be derived based on the MMSE technique as shown in equation (32) or the least squares technique as shown in equation (33). A block714areconstructs the signal for user group g1based on {circumflex over (d)}g1and provides a reconstructed signal vector {circumflex over (x)}g1for user group g1, e.g., as shown in equation (34). A summer716asubtracts reconstructed signal vector {circumflex over (x)}g1from received vector y, as shown in equation (35), and provides a modified received vector yg1for the next stage.

A second user group g2to be processed in the second stage may be the second strongest user group. A block712bperforms data detection on modified received vector yg1with a data detection matrix Zg2for user group s2and provides a detected data vector {circumflex over (d)}g2. A block714breconstructs the signal for user group g2based on {circumflex over (d)}g2and provides a reconstructed signal vector {circumflex over (x)}g2. A summer716bsubtracts reconstructed signal vector {circumflex over (x)}g2from modified received vector yg1and provides a modified received vector yg2for the next stage. The processing for each subsequent user group may proceed in similar manner.

The M user groups may be processed sequentially from the strongest user group to the weakest user group. This may improve detection performance for each user group since the signals from stronger user groups (if any) have been canceled. The user groups may also be processed in other orders. In general, the sequential processing of the user groups may result in the received signal quality progressively improving for each subsequently processed user group, since the interfering signals from earlier processed user groups have been removed.

The wireless device may desire to recover a signal from a single sector. In an embodiment, the desired user group for this sector is processed in the last stage after canceling the signals from other user groups. In another embodiment, the M user groups are processed from strongest to weakest, as described above. If the desired user group is not the last user group that is processed, then reconstructed signal vector {circumflex over (x)}gfor the desired user group may be added back to modified received vector ygKfrom the last stage, or {tilde over (y)}=ygK+{circumflex over (x)}g. Vector {tilde over (y)}gwould then contain the signal from the desired user group and would have the signals from all other user groups removed. Vector {tilde over (y)}gmay then be detected to obtain the desired signal.

The wireless device may desire to recover signals from multiple sectors, e.g., for soft handoff. In an embodiment, the desired user groups for these sectors are processed in the last few stages after canceling the signals from other user groups. In another embodiment, the M user groups are processed from strongest to weakest, as described above. For each desired user group, the reconstructed signal vector for that user group may be added back to modified received vector {tilde over (y)}gKfrom the last stage, and the resultant vector may be processed to recover the signal from that user group.

Successive mini-MUD performs processing for a group of users at a time, instead of all users. Successive mini-MUD may have certain advantages. First, the size of the matrix to be inverted in equation (32) may be much smaller than the size of the matrix to be inverted if all users are processed concurrently for full MUD. Second, the successive processing of the M user groups may result in the received signal quality progressively improving for each subsequently processed user group.

FIG. 8shows an embodiment of a process800for performing successive mini-MUD. Data detection is performed on a received signal (e.g., y) to obtain a detected signal (e.g., {circumflex over (d)}g) for a first set of code channels (block814). The first set may include all code channels for one sector, a subset of all code channels for one sector, multiple code channels for multiple sectors, etc. A signal for the first set of code channels is reconstructed based on the detected signal (block816). The reconstructed signal (e.g., {circumflex over (x)}g) for the first set of code channels is canceled from the received signal (block818).

Data detection, reconstruction, and cancellation are performed for at least one additional set of code channels in similar manner. A determination is made when there is another set of code channels to process (block820). If the answer is ‘Yes’, then the process returns to block814to process the next set of code channels. Otherwise, the detected signal for each desired code channel is processed and decoded (block822). Although not shown inFIG. 8for simplicity, if the desired code channel is in a set that has been canceled (e.g., the first set), then the reconstructed signal for that set may be added back, and data detection may be performed again to obtain a more reliable detected signal for the desired code channel.

The received powers of the code channels for all sectors to be processed may be determined. Multiple sets of code channels may be formed based on the received powers. The first set may include code channels with strongest received powers. Each remaining set may include code channels with progressively lower received powers. Data detection, reconstruction, and cancellation may be performed sequentially for the multiple sets of code channels, one set at a time, starting with the first set having the strongest received powers.

For data detection, a system matrix (e.g., Tg) and possibly noise and interference variance (e.g., σv,g2) for a set of code channels may be estimated. A data detection filter (e.g., Zg) may be derived based on the system matrix and possibly the noise and interference variance and in accordance with the MMSE or least squares technique. Data detection may then be performed for the set of code channels with the data detection filter.

One or more iterations may be performed for both successive equalization and cancellation (SEC) and successive mini-MUD. Each iteration may sequentially process all sectors or user groups. The result from the last sector or user group in one iteration may be passed to the next iteration. Cycling through the cancellation of sectors or user groups multiple times may improve cancellation and provide better performance.

For a firmware and/or software implementation, the techniques may be implemented with modules (e.g., procedures, functions, and so on) that perform the functions described herein. The firmware and/or software codes may be stored in a memory (e.g., memory292inFIG. 2) and executed by a processor (e.g., processor290). The memory may be implemented within the processor or external to the processor.

Headings are included herein for reference and to aid in locating certain sections. These headings are not intended to limit the scope of the concepts described therein under, and these concepts may have applicability in other sections throughout the entire specification.