Title of Invention

A METHOD FOR PERFORMING ITERATIVE DETECTION AND CANCELLATION FOR WIRELESS COMMUNICATION

Abstract 060434 ABSTRACT [00129] Techniques for recovering a desired transmission in the presence of interfering transmissions are described. For iterative detection and cancellation, multiple groups of code channels are formed for a plurality of code channels for at least one sector. Processing is performed for the multiple groups of code channels in multiple iterations. For each iteration, data detection and signal cancellation are performed for the multiple groups of code channels in multiple stages, e.g., in a sequential order starting with the strongest group to the weakest group. Each stage of each iteration may perform data detection, signal reconstruction, and signal cancellation. Each stage of each iteration may also perform equalization, data detection, signal reconstruction, and signal cancellation.
Full Text

ITERATIVE DETECTION AND CANCELLATION FOR WIRELESS COMMUNICATION
*■ BACKGROUND
I. Field
[0001] The present disclosure relates generally to communication, and more specifically to techniques for recovering transmission in wireless communication.
II. Background
[0002] 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.
[0003] 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.
[0004] 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.
I SUMMARY
[0005] Techniques for recovering a desired transmission in the presence of interfering transmissions are described herein. In an embodiment, multiple groups of code channels (which are also referred to as user groups) are formed for a plurality of code channels for at least one sector. Each group may include all code channels for one sector, a subset of all code channels for one sector, or multiple code channels for

2
multiple sectors. Processing is performed for the multiple groups of code channels in multiple iterations. For each iteration, data detection and signal cancellation are performed for the multiple groups of code channels in multiple stages, e.g., in a sequential order starting with the first group having the strongest received powers and concluding with the last group having the weakest received powers. [0006] In an embodiment, for each stage of each iteration, data detection is performed to obtain a detected signal for a group of code channels being processed by that stage. A signal for the group of code channels is reconstructed based on the detected signal. The reconstructed signal is canceled to obtain an output signal for the stage. In another embodiment, for each stage of each iteration, equalization is performed to obtain an equalized signal for a group of code channels being processed by that stage. Data detection is then performed on the equalized signal to obtain a detected signal for the group of code channels. A signal for the group of code channels is reconstructed based on the detected signal. The reconstructed signal is canceled to obtain an output signal for the stage.
[0007] Causal cancellation or both causal and non-causal cancellation may be performed prior to the iterative processing. Various details of the cancellation and the iterative processing are described below. Various aspects and embodiments of the disclosure are also described in further detail below.
BRIEF DESCRIPTION OF THE DRAWINGS
[0008] FIG. 1 shows a CDMA system.
[0009] FIG. 2 shows a block diagram of a base station and a wireless device.
[0010] FIG. 3 shows a block diagram of a CDMA modulator.
[0011] FIG. 4 shows a processor for iterative detection and cancellation.
[0012] FIG. 5 shows a stage that performs detection and cancellation.
[0013] FIG. 6 shows a stage that performs equalization, detection and cancellation.
[0014] FIG. 7 shows a processor for iterative detection and cancellation with causal
and non-causal cancellation;
[0015] FIG. 8 shows a code channel gain estimation unit.
[0016] FIG. 9 shows a process for performing iterative detection and cancellation.
[0017] FIG. 10 shows a detection and cancellation process for one stage.
[0018] FIG. 11 shows ah equalization, detection and cancellation process for one staj

3
DETAILED DESCRIPTION
[0019] 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. [0020] FIG. 1 shows a CDMA system 100 with multiple base stations 110 and multiple wireless devices 120. 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 station 110 provides communication coverage for a particular geographic area 102. 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 areas 104a, 104b, and 104c. 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 controller 130 couples to base stations 110 and provides coordination and control for these base stations.
[0021] 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 and (2) a base station and/or its coverage area for a system with un-sectorized cells. The terms "sector" and "base station" are used interchangeably herein.

4
[0022] Wireless devices 120 are 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. 1 shows only transmissions on the forward link.
[0023] FIG. 2 shows a block diagram of a base station 110 and a wireless device 120, which may be one of the base stations and one of the wireless devices shown in FIG. 1. For simplicity, FIG. 2 shows base station 110 having one transmit antenna and wireless device 120 having one receive antenna. In general, base station 110 and wireless device 120 may each be equipped with any number of antennas. For simplicity, FIG. 2 shows only the processing units for data transmission on the forward link.
[0024] At base station 110, a transmit (TX) data processor 210 receives 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 modulator 220. 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 modulator 220 processes the data symbols and pilot symbols as described below and provides output chips. A transmitter (TMTR) 230 processes (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 antenna 232.
[0025] At wireless device 120, an antenna 252 receives the forward link signals from base station 110 as well as other base stations and provides a received signal. A receiver (RCVR) 254 processes (e.g., filters, amplifies, frequency downconverts, and digitizes) the received signal and provides received samples to a processor 260. Processor 260 may perform iterative detection and cancellation, as described below.

5
Antenna 252 may receive the forward link signal from base station 110 via one or more signal paths, and the received signal may include one or more signal instances (or multipaths) for base station 110. Rake receiver 270 may be used to process all multipaths of interest. Processor 260 or rake receiver 270 provides data symbol estimates, which are estimates of the data symbols sent by base station 110 to wireless device 120. A receive (RX) data processor 280 processes (e.g., symbol demaps, deinterleaves, and decodes) the data symbol estimates and provides decoded data. In general, the processing by processor 260/rake receiver 270 and RX data processor 280 is complementary to the processing by CDMA modulator 220 and TX data processor 210, respectively, at base station 110.
[0026] Controllers/processors 240 and 290 direct operation at base station 110 and wireless device 120, respectively. Memories 242 and 292 store data and program codes for base station 110 and wireless device 120, respectively.
[0027] 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. [0028] FIG. 3 shows a block diagram of CDMA modulator 220 within base station 110. 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.gjpilot, control data, broadcast data, etc. [0029] CDMA modulator 220 includes N code channel processors 310a through 31 On for the N code channels. Within each code channel processor 310, a multiplier 312 receives and scales the data or pilot symbols for code channel n of sector k with a gain of gk,n and provides scaled symbols. The gain gk,n may be set to zero if code channel n is not used by sector k. A Walsh cover unit 314 channelizes the scaled symbols with a Walsh code w„ for code channel «. Unit 314 performs covering by repeating each scaled symbol to generate N replicated symbols and multiplying the N replicated symbols with the N chips of Walsh code w„ to generate N data chips for that scaled symbol. A combiner 320 receives and adds the data chips for all N code channels. A PN spreader 322 multiplies the combined data chips with a PN code Ck assigned to sector k and generates output chips.
[0030] The output chips for sector k in one symbol period may be expressed in matrix form as follows: i
sk=CkyVGkdk=Akdk\ Eq(l)
i
where dk is an N x 1 vector of data symbols sent on the N code channels of sector k, Gk is an NxN diagonal matrix of gains for the N code channels of sector k, W is an N x N Hadamard matrix containing N Walsh codes in N columns,
\ ■
Ck is an N x N diagonal matrix containing N chips of the PN code for sector k, Ak is an N x N processing matrix for data vector dk, and s,t is an N x 1 vector of output chips for sector k.
[0031] 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.
[0032] Vector dA contains N data symbols to be sent simultaneously on N code
channels in one symbol period. Matrix Gk contains N gains for the N code channels
along the diagonal and zeros elsewhere. The N gains determine the amount of transmit

"\l

power used for the N code channels. Matrix W contains N Walsh codes for the N code
channels in N columns. Ifithe code channels have different Walsh code lengths, then IS is equal to the longest Walsh code length for all code channels, and each shorter Waist 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 Ck contains N PN chips along the diagonal anc zeros elsewhere. These PN chips are from the PN code for sector k for one symbo period. Vector $k contains N output chips transmitted by sector k for all N cod [0033] Matrix Ak represents all of the processing observed by data vector dk an A*=CfeWGA . Eq(2
ii
The columns of Ak represent code channels/users, and the rows of A* represent time. [0034] Wireless device 120 receives the forward link signals from K sectors, whicl 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:
x* = & &WGii =H, A, d, =H, s, , Eq (3
where Hk is an (N + A) x N channel response matrix for sector k,
xk is an (N + A) x 1 vector of received samples for sector k, and A is the delay spread of the wireless channel, in units of chips.
[0035] Matrix HA contains channel gains for sector k along the diagonal and zero elsewhere. Vector xt contains N+A received samples for sector k for one symbo period, in the absence of noise. 'For simplicity, the description herein is for the case ii which dfc covers one symbol period. dk may also cover multiple symbol periods (e.g.
the previous, current, and next symbol periods) to account for intersymbol interferenc' (ISI). In this case, the dimensions of the other matrices would increase corresponding!} [0036] The received samples at wireless device 120 for all K sectors may b expressed as:

o
^, K K
y = Z5* +3 = £H*AAd, +n = J]HAst + n , Eq (41
where y is an (N + A) x 1 vector of received samples at wireless device 120, and
n is an (N + A) x 1 vector of noise at wireless device 120. [0037] For simplicity, the noise may be assumed to be additive white Gaussian
I!
noise (AWGN) with a zero mean vector and a covariance matrix of a\ I, where the variance of the noise, and I is the identity matrix with ones along the diagonal and zeros elsewhere.
[0038] Wireless device 120 may perform iterative detection and cancellation to recover one or more transmissions from one or more sectors. For iterative detection and cancellation, the users in the K sectors (or the code channels for the K sectors) are
processed iteratively multiple times to improve performance. For each iteration, the
i
users in the K sectors are processed in multiple stages. Each stage performs detection and cancellation for one group of users and provides a canceled output to the next stage. The user groups may be sorted based on received powers. For each iteration, the first stage may process the strongest user group, the second stage may process the second strongest user group, and so on, and the last stage may process the weakest user group. Each stage may process a user group using various techniques, as described below. [0039] The users in the K sectors may be arranged into M groups, where M may be any integer value. In general, each user group may include any number of users and any of the .users in the K sectors. In an embodiment, each group contains a predetermined number of users, e.g., L users, where L may be any integer value. The user groups may be formed in various manners.
[0040] In an embodiment, which is referred to as sector-based processing, 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.
[0041] In another embodiment, which is referred to as global processing, the
received powers for all users in all sectors are determined. The users are then sorted























060434
20
A
A
where d^ is a vector of detected symbols for all users for the prior symbol period, and y is a received signal with causal and non-causal cancellation.
—en w
[0090] In the second rdund of processing, for the current symbol period, the
1 i
A
detected symbols dp obtained in this round for the prior symbol period and the detected
A n
symbols dc and d„ obtained in the first round for the current and next symbol period are subtracted from the received signal to obtain y . Iterative processing is then
A A
A A
performed on y to obtain detected symbols dc for the current symbol period. dc is
subtracted from the received signal in the next symbol period.
[0091] FIG. 7 shows a block diagram of a processor 260b for iterative detection and cancellation with causal and non-causal cancellation, which is another embodiment of processor 260 in FIG. 2. For the first round, a block 702 performs causal cancellation
A
on the received signal y based on the reconstructed signal xp = Tp 6p from a memory 730, e.g., as shown in equation (30), and provides the received signal y with causal cancellation. For the second round, a block 704 performs causal and non-causal cancellation on the received signal based on the reconstructed signals xp — Tp dp and i«-X/i 1
received signal y with causal and non-causal cancellation.
[0092] A multiplexer 710 is provided with the received signal y from block 702 on
one input, the received signal y from block 704 on another input, and the output
signal y. from the last stage 720M on a third input. Multiplexer 710 provides the
received signal y for the first iteration of the first round, the received signal y^ for the
first iteration of the second round, and the output signal y. for each subsequent
iteration. Processing stages 720a through 720M process the signal from multiplexer 710 as described above. For example, each processing stage 720 may be implemented as shown in FIG. 5 or 6. Memory 730 stores the detected signal and/or the reconstructed signal and provides these signals to block 702, block 704, and stages 720 as appropriate.

060434
21
[0093] In each iteration, 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 signal quality
progressively improving for each subsequently processed user group, since the
interfering signals from earlier processed user groups have been removed.
[0094] The wireless device may desire to recover a signal from a single sector. In
an embodiment, the user group containing the desired signal 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 for the
desired user group may be added back to the output signal from the last stage to obtain
the reconstituted signal for the desired user group. The reconstituted signal may then be
processed to detect the desired signal.
[0095] The wireless device may desire to recover signals from multiple sectors, e.g.,
for soft handoff. In an embodiment, the user groups containing the desired signals from
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 for
that user group may be added back to the output signal from the last stage, and the
reconstituted signal may be processed to recover the signal from that user group.
[0096] The successive processing of the M user groups, one user group at a time,
may have certain advantages. First, the size of the vectors and matrices for one user
group may be much smaller than the size of the vectors and matrices for all users in full
multi-user detection (MUD). Second, the successive processing of the M user groups
may result in the signal quality progressively improving for each subsequently
processed user group. The iterative processing of the M user groups further improves
detection performance.
[0097] In equation (19), the variance of the total noise and interference, a2vijn, for
I t
user group m in iteration / may be estimated as follows. The total received power at the
wireless device, Plotai_n:, may be expressed as:







060434
25
[00112] FIG. 8 shows a block diagram of a code channel gain estimation unit 800. FIG. 8 shows the processing to estimate the gains of the N code channels for one sector k. Within gain estimation unit 800, a unit 810 performs channel matched filtering and multiplies the received samples in y with the complex conjugated channel gains in H*
for sector k. A multiplier 812 multiplies the output of unit 810 with the complex conjugated PN chips for sector k and provides despread samples. A unit 814 performs 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 qft . Unit 814 efficiently performs Walsh decovering for all N code
channels.
[00113] A unit 820a computes the squared magnitude of the decovered symbol for each code channel. A filter 822a filters the output of unit 820a for each code channel. The output of filter 822a is an estimate of the expected value in equation (42). [00114] The noise and interference variance is estimated based on the decovered symbols for the pilot channel. A unit 816 provides one symbol period of delay for each decovered symbol for the pilot channel. A summer 818 subtracts 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 unit 820b computes the squared magnitude of the difference from summer 818 and further divides the result by two to account for the difference operation by summer 818. A filter 822b filters the output of unit 820b and provides the estimated
noise and interference variance a]^.
[00115] A unit 824 subtracts the noise and interference variance from the output of filter 822a and provides the scaled power gain Gk,n for each code channel. A unit 826 determines a scaling factor 1 IGk piht based on the scaled power gain Gk^ihi for the pilot channel. A multiplier 828 multiplies the scaled power gain for each code channel with the scaling factor and provides Gk/l!Gkpilot for each code channel. A unit 830
computes the square root of Gk „ I Gk pilol for each code channel and provides the scaled
gain gk^^Sk^iot for that code channel.
[00116] The received power for each code channel may be determined based on the
scaled gain gk,n for that code channel and the received power for sector £, as follows:

060434
Eq(45)
where Pk,Puot is the received pilot power for sector k, and
Pk/i is the received power for code channel n of sector k.
[00117] FIG. 9 shows an embodiment of a process 900 for performing iterative detection and cancellation. Multiple groups of code channels are formed for a plurality of code channels for at least one sector (block 910). Each group may include all code channels for one sector (for sector-based processing), a subset of all code channels for one sector (for local processing), or multiple code channels for multiple sectors (for global processing). Processing is performed for the multiple groups of code channels in multiple iterations (block 920). For each iteration, data detection and signal cancellation are performed for the multiple groups of code channels in multiple stages, e.g., in a sequential order starting with the first group having the strongest received powers and concluding with the last group having the weakest received powers (block 930).
[00118] FIG. 10 shows an embodiment of a detection and cancellation process 1000 performed by one stage in one iteration. Process 1000 may be used for block 930 in FIG. 9. Data detection is performed to obtain a detected signal for a group of code channels being processed by the stage (block 1012). A signal for the group of code channels is reconstructed based on the detected signal (block 1014). The reconstructed signal is canceled to obtain an output signal for the stage (block 1016). [00119] For the data detection in block 1012, a system matrix may be determined for the group of code channels. The variance of noise and interference for the group of code channels may also be estimated. A data detection filter for the group of code channels may then be derived based on the system matrix and possibly the variance of the noise and interference, e.g., in accordance with the linear MMSE or least squares technique as shown in equation (19) or (20), respectively. Data detection is then performed with the data detection filter to obtain the detected signal for the group of code channels, e.g., as shown in equation (19) or (20).
[00120] FIG. 11 shows an embodiment of an equalization, detection and cancellation process 1100 performed by one stage in one iteration. Process 1100 may also be used for block 930 in FIG. 9. Equalization is performed to obtain an equalized signal for a

060434
27
group of code channels being processed by the stage (block 1110). Data detection is then performed on the equalized signal to obtain a detected signal for the group of code channels (block 1112). A signal for the group of code channels is reconstructed based on the detected signal (block 1114). The reconstructed signal is canceled to obtain an output signal for the stage (block 1116).
[00121] For the equalization in block 1110, an equalizer matrix may be derived for the group of code channels, e.g., in accordance with the linear MMSE or least squares technique as shown in equation (21) or (22), respectively. Equalization is then performed with the equalizer matrix to obtain the equalized signal. [00122] For the data detection in block 1112, a gain matrix may be estimated for the group of code channels. The covariance of the noise and interference for the group of code channels may also be estimated. A data detection filter for the group of code channels may then be derived based on the gain matrix and possibly the covariance of the noise and interference, e.g., in accordance with the linear MMSE or least squares technique as shown in equation (27) or (28), respectively. Data detection is then performed with the data detection filter to obtain the detected signal for the group of code channels, e.g., as shown in equation (27) or (28).
[00123] For process 1000 in FIG. 10 and process 1100 in FIG. 11, for each subsequent iteration after the first iteration, a reconstructed signal obtained in a prior iteration for the group of code channels may be added back to an input signal for the stage to obtain a reconstituted signal. Data detection and signal cancellation may then be performed for the group of code channels based on the reconstituted signal. [00124] Back in FIG. 9, for causal cancellation, a signal for the prior symbol period may be removed from the received signal. The processing in blocks 920 and 930 may then be performed after removing the signal for the prior symbol period. For causal and non-causal cancellation, a signal for the prior symbol period and a signal for the next symbol period may be removed from the received signal. The processing in blocks 920 and 930 may then be performed after removing the signals for the prior and next symbol periods.
[00125] The techniques described herein may be implemented by various means. For example, these techniques may be implemented in hardware, firmware, software, or a combination thereof. For a hardware implementation, the processing units used to perform the processing described herein may be implemented within one or more application specific integrated circuits (ASICs), digital signal processors (DSPs), digital

060434
ZJS
signal processing devices (DSPDs), programmable logic devices (PLDs), field
programmable gate arrays (FPGAs), processors, controllers, micro-controllers,
microprocessors, electronic devices, other electronic units designed to perform the
functions described herein, or a combination thereof. ■
[00126] 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., memory 292 in FIG. 2) and executed by a processor (e.g., processor 290). The memory may be implemented within the processor or external to the processor. [00127] The previous description of the disclosed embodiments is provided to enable any person skilled in the art to make or use the disclosure. Various modifications to these embodiments will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other embodiments without departing from the spirit or scope of the disclosure. Thus, the disclosure is not intended to be limited to the embodiments shown herein but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.
[00128] WHAT IS CLAIMED IS:


060434
:' 29
CLAIMS
1. An apparatus comprising:
at least one processor configured to perform processing for multiple groups of code channels in multiple iterations and, for each iteration, to perform data detection and signal cancellation for the multiple groups of code channels in multiple stages.
2. The apparatus of claim 1, wherein for each stage of each iteration, the at least one processor is configured to perform data detection to obtain a detected signal for a group of code channels, to reconstruct a signal for the group of code channels based on the detected signal, and to cancel the reconstructed signal to obtain an output signal for the stage.
3. The apparatus of claim 2, wherein the at least one processor is configured to determine a system matrix for the group of code channels, to derive a data detection filter for the group of code channels based on the system matrix, and to perform data detection with the data detection filter to obtain the detected'signal for the group of code channels
i) "
4. The apparatus of claim 3, wherein the at least one processor is
configured to estimate variance of noise and interference for the group of code channels and to derive the data detection filter further based on the variance of the noise and interference.
5. The apparatus of claim 3, wherein the at least one processor is configured to derive the data detection filter in accordance with linear minimum mean square error (MMSE) or least squares technique.
6. The apparatus of claim 1, wherein for each stage of each iteration, the at least one processor is configured to perform equalization to obtain an equalized signal for a group of code channels, to perform data detection on the equalized signal to obtain a detected signal for the group of code channels, to reconstruct a signal for the group of code channels based on the detected signal, and to cancel the reconstructed signal to obtain an output signal for the stage.

060434
30
7. The apparatus of claim 6, wherein the at least one processor is configured to derive an equalizer matrix for the group of code channels and to perform equalization with the equalizer matrix to obtain the equalized signal.
8. The apparatus of claim 7, the at least one processor is configured to derive the equalizer matrix in accordance with linear minimum mean square error (MMSE) or least squares technique.
9. The apparatiis of claim 6, wherein the at least one; processor is
■i configured to estimate a gain matrix for the group of code channels, to derive a data
detection filter for the group of code channels based on the gain matrix, and to perform
data detection on the equalized signal with the data detection filter to obtain the detected
signal for the group of code channels.
10. The apparatus of claim 9, wherein the at least one processor is configured to estimate covariance of noise and interference for the group of code i channels and to derive the ..data detection filter further based on the covariance of the noise and interference. ■•
11. The apparatus of claim 1, wherein for each stage of each iteration after a first iteration, the at least one processor is configured to add a first signal obtained in a prior iteration for a group of code channels to an input signal to obtain a second signal, i and to perform data detection and signal cancellation for the group of code channels i based on the second signal. !
* i
j
12. The apparatus of claim 1, wherein the at least one processor is configured to remove a signal for a prior symbol period and to perform processing for the multiple groups of code channels in multiple iterations after removing the signal for the prior symbol period.
13. The apparatus of claim 1, wherein the at least one processor is
I!
060434
31
period and to perform processing for the multiple groups of code channels in multiple iterations after removing the signals for the prior and next symbol periods.
14. The apparatus of claim 1, wherein for each of the multiple groups oj code channels, the at least one processor is configured to obtain decovered symbols foi the code channels in the group, to determine an averaged squared magnitude of tht decovered symbols for each code channel in the group, and to determine a gain for eact code channel in the group based on the averaged squared magnitude of the decoverec symbols for the code channel.
15. The apparatus of claim 14, wherein for each of the multiple groups oJ code channels, the at least one processor is configured to estimate variance of noise anc interference based on decovered symbols for a pilot channel, and to determine the gair for each code channel further based on the variance of the noise and interference.
16. The apparatus of claim 1, wherein the at least one processor i; configured to determine received powers of a plurality of code channels for at least ont sector, and to form the multiple groups of code channels based on the received powers.
1 17. The apparatus of claim 16, wherein the at least one processor i: configured to perform data detection and signal cancellation for the multiple groups oj code channels in a sequential order for each iteration, starting with a first group having strongest received powers and concluding with a last group having weakest receivec powers.
18. The apparatus of claim 1, wherein each group includes all code channel; for one sector.
19. The apparatus of claim 1, wherein each group includes a subset of al code channels for one sector.
20. The apparatus of claim 1, wherein each group includes multiple codt channels for multiple sectors.

060434
32
21. A method comprising:
performing processing for multiple groups of code channels in multiple iterations; and
performing data detection and signal cancellation for the multiple groups of code channels in multiple stages for each iteration.
22. The methodjiof claim 21, wherein the performing data detection and
i| I
signal cancellation comprises, for each stage of each iteration,
:f performing data detection to obtain a detected signal for a group of code
channels,
reconstructing a signal for the group of code channels based on the detected signal, and
canceling the reconstructed signal to obtain an output signal for the stage.
23. The method of claim 21, wherein the performing data detection and
signal cancellation comprises, for each stage of each iteration,
performing equalization to obtain an equalized signal for a group of code
channels, performing data detection on the equalized signal to obtain a detected signal for the group of code channels, j
reconstructing a signal for the group of code channels based on the detected signal, and
canceling the reconstructed signal to obtain an output signal for the stage.
24. The method of claim 21, wherein the performing data detection and
signal cancellation comprises, for each stage of each iteration after a first iteration,
adding a first signal obtained in a prior iteration for a group of code channels to an input signal to obtain a second signal, and
performing data detection and signal cancellation for the group of code channels based on the second signal, j
25. The method of claim 21, further comprising:
determining received powers of a plurality of code channels for at least one sector; and

060434
33
forming the multiple groups of code channels based on the received powers, and wherein the performing data detection and signal cancellation comprises performing data detection ^and signal cancellation for the multiple groups of code channels in a sequential order for each iteration, starting with a first group having strongest received powers and concluding with a last group having weakest received powers.
26. An apparatus comprising:
. means for performing processing for multiple groups of code channels in multiple iterations; and
means for performing data detection and signal cancellation for the multiple groups of code channels in multiple stages for each iteration.
27. The apparatus of claim 26, wherein the means for performing data
detection and signal cancellation comprises, for each stage of each iteration,
ii
means for performing data detection to obtain a detected signal for a group of code channels,
means for reconstructing a signal for the group of code channels based on the detected signal, and
means for canceling the reconstructed signal to obtain an output signal for the stage.
28. The apparatus of claim 26, wherein the means for performing data
detection and signal cancellation comprises, for each stage of each iteration,
means for performing equalization to obtain an equalized signal for a group of code channels,
means for performing data detection on the equalized signal to obtain a detected
i
signal for the group of code channels, j,
means for reconstructing a signal for the group of code channels based on the
detected signal, and !.
means for canceling the reconstructed signal to obtain an output signal for the
stage.

060434
: 34
' 29. The apparatus of claim 26, wherein the means for performing data detection and signal cancellation comprises, for each stage of each iteration after a first iteration,
means for adding a first signal obtained in a prior iteration for a group of code channels to an input signal to obtain a second signal, and
' means for performing data detection and signal cancellation for the group of
I:
code channels based on the second signal.
-; i
\ 30. The apparatus of claim 26, further comprising:
■ means for determining received powers of a plurality of code channels for at least one sector; and
[ means for forming the multiple groups of code channels based on the received
powers, and -!
I wherein the means for performing data detection and signal cancellation ii comprises means for performing data detection and signal cancellation for the multiple
groups of code channels in a sequential order for each iteration, starting with a first
group having strongest received powers and concluding with a last group having
weakest received powers. ■.


Documents:

http://ipindiaonline.gov.in/patentsearch/GrantedSearch/viewdoc.aspx?id=pOy6vDPYvAml60bkc5KL+g==&loc=egcICQiyoj82NGgGrC5ChA==


Patent Number 268461
Indian Patent Application Number 2256/CHENP/2009
PG Journal Number 36/2015
Publication Date 04-Sep-2015
Grant Date 31-Aug-2015
Date of Filing 23-Apr-2009
Name of Patentee QUALCOMM INCORPORATED
Applicant Address ATTN: INTERNATIONAL IP ADMINISTRATION, 5775 MOREHOUSE DRIVE, SAN DIEGO, CALIFORNIA 92121-1714
Inventors:
# Inventor's Name Inventor's Address
1 BYONGHYO SHIM 5775 MOREHOUSE DRIVE, SAN DIEGO, CA 92121-1714
2 FARROKH ABRISHAMKAR 5775 MOREHOUSE DRIVE, SAN DIEGO, CA 92121-1714
3 INYUP KANG 5775 MOREHOUSE DRIVE, SAN DIEGO, CA 92121-1714
PCT International Classification Number H04B 1/707
PCT International Application Number PCT/US07/84750
PCT International Filing date 2007-11-15
PCT Conventions:
# PCT Application Number Date of Convention Priority Country
1 11/560,060 2006-11-15 U.S.A.