The teachings in accordance with the exemplary embodiments of this invention relate generally to code systems and, more particularly, to a multiuser architecture for a code division multiple access (CDMA) system.
In typical code division multiple access (CDMA) systems, several users transmit over a common communication channel, typically using the direct sequence spread spectrum technique. The receiver in this environment receives a signal that is the sum of all of the transmitted signals in noise, and the receiver's job is to reliably decode the signal of interest from this received composite signal. The user signals are not synchronized in general and typically have unequal received signal strengths. The receiver may be a base station in a cellular telephone cell or personal communication network (PCN) cell, or it may be one of the user's receivers in a decentralized multiple access network.
An aspect of efficient multiuser receiver techniques for CDMA systems is to estimate the multiuser interference to the signal of interest from all the other users, and subtract it out, leaving a better estimate of the signal of interest. Performing such an operation requires an estimate of the data being sent by the other users, and of the cross-correlations between each other user and the user of interest.
Nonzero cross-correlations between the users arise due to the non-orthogonality of the signature sequences used by the various users. The magnitude of the cross-correlation between the users is determined by two factors: 1) the basic non-orthogonality of the spreading codes used; and 2) the frequency and phase offsets of the carriers at the receiver.
To perform normal coherent detection, the receiver must synchronize to the received symbol timing, carrier frequency and phase. In addition, the level of interference between the users is exaggerated if the interfering user is stronger then the user of interest. It is possible to use the local estimates of the synchronization parameters along with a knowledge of the set of signature sequences of the active users to estimate the set of inter-user cross-correlations. In addition, the energy of each user's signal may also be estimated at the receiver.
In order to implement the most effective multiuser receiver architectures for a CDMA system, it is necessary to have a knowledge of the set of cross-correlations between the signature sequences of the various users in the system. These cross-correlations are typically derived from a bank of N^2−N correlators, where N is the number of users active in the system. These correlators are usually implemented in dedicated, fabricated circuitry and similar hardware. As a result, if N is large, the number of correlators becomes excessive and tends to make such systems expensive.
The foregoing and other problems are overcome, and other advantages are realized, in accordance with the exemplary embodiments of these teachings.
In accordance with an exemplary embodiment of the invention, a method includes receiving an input signal comprising a plurality of user signals, selecting a first user signal and a second user signal from the plurality of user signals, determining a timing offset between the first user signal and the second user signal, and using the timing offset, a signal sequence of the first user signal, and a signal sequence of the second user signal as indices to retrieve at least one cross-correlation coefficient from a memory.
In accordance with another exemplary embodiment of the invention, a program of machine-readable instructions, tangibly embodied on an information bearing medium and executable by a digital data processor, performs actions including receiving an input signal comprising a plurality of user signals, selecting a first user signal and a second user signal from the plurality of user signals, determining a timing offset between the first user signal and the second user signal, and using the timing offset, a signal sequence of the first user signal, and a signal sequence of the second user signal as indices to retrieve at least one cross-correlation coefficient from a memory.
In accordance with another exemplary embodiment of the invention, a network element includes an element for receiving an input signal comprising a plurality of user signals, an element for selecting a first user signal and a second user signal from the plurality of user signals, an element for computing a timing offset between the first user signal and the second user signal, and an element for using the timing offset, a signal sequence of the first user signal, and a signal sequence of the second user signal as indices to retrieve at least one cross-correlation coefficient from a memory.
The foregoing and other aspects of the exemplary embodiments of this invention are made more evident in the following Detailed Description, when read in conjunction with the attached Drawing Figures, wherein:
In exemplary embodiments of the invention, there is disclosed a method, a computer program product and an apparatus for estimating cross-correlations between the signature sequences (e.g., PN codes) in a set of users. The cross-correlations may be derived, or otherwise computed, through the use of a look-up table, or other pre-computed data stored in a repository (e.g., a memory). For example, the look-up table maps the timing offset between two signals, as well as indices corresponding to the signals, to a cross-correlation coefficient. In further exemplary embodiments of the invention, an interpolator may be utilized to lessen the amount of data that is stored in the look-up table. The cross-correlation coefficients may be computed once and stored for retrieval. This configuration effectively substitutes retrieval from memory for the more costly and energy intensive implementation of hardware, such as multiple correlators, typically used. As a result of the use of the exemplary embodiments described herein, the computational burden for multiuser cancellation is substantially lessened, thus lowering costs and bringing the benefits of multiuser CDMA receiver technology into the realm of possibility for systems where it was heretofore considered impractical.
When attempting to derive a set of cross-correlations one may further estimate the energy of each user's signal at the receiver. In the exemplary embodiments of the invention, energy estimation of the user's signals at the receiver need not be performed. Rather, the estimation of “normalized” cross-correlations between the signature sequences in the set is derived and employed.
As described more fully below, the exemplary embodiments of the invention provide a method, computer program product and apparatus for determining the set of cross-correlations between the signature sequences (e.g., PN codes) of a given user and other, interfering users in the system. Once the receiver determines the set of cross-correlations, the set can be utilized, for example, to cancel the interference caused by the interfering users.
With reference to
As noted above, the exemplary embodiments of the invention can be implemented by computer software executable by the DP 35 of the RBU 31 or by the subscriber unit 38, by hardware, or by a combination of software and hardware. It is further noted that the various blocks shown in
Note that as referred to below, a symbol epoch is considered to be a portion of the received signal or of the PN code of the received signal as measured in time between the times of arrival for consecutive edges of symbols. That is, a symbol epoch is one symbol as measured from the beginning of the symbol to its end (i.e., the transition to the next symbol).
Similarly, as referred to below, a chip epoch is considered to be a portion of the received signal or of the PN code of the received signal corresponding to one chip (i.e., measured from chip edge to successive chip edge), where a chip effectively comprises a measure of time. Note that since “symbol epoch” and “chip” refer to measures of time with regards to a received signal or to the PN code of a received signal, the terms may also be used to refer to the corresponding portion of the received signal or of the PN code of the received signal.
Generally, one symbol includes an integer number of chips. A PN code for a given user usually repeats every symbol. Thus, one symbol epoch (or “a symbol epoch”) generally corresponds to a single iteration of a PN code for the given user/received signal. Furthermore, and as explained below with respect to the exemplary embodiments of the invention, comparing two symbol epochs, one each from two different users, allows for measuring the time offset between the PN codes of the respective users.
Those of ordinary skill in the art will appreciate that a PN code is generally understood to be a relatively high rate signal (i.e., as compared with the rate of the data encoded by the PN code) comprising transmitted data.
Generally, a PN code can be represented as a series of chips. For example, in binary, each chip may correspond to a +1 or a −1. Furthermore, as described below with respect to the exemplary embodiments of the invention, each signal encoded with a PN code is assumed to correspond to a PN code identifier that identifies the signal, for example, by referring to the PN code of the signal. That is, the PN code identifier comprises an index useful for referring to the PN codes of different users (i.e., signals from different users).
With reference to
The input signal from antenna 33 is applied to a plurality of N receivers 14-1 through 14-N. The output signals from receiver 14-1 through 14-N, comprising symbol epochs (se1-seN), are applied, respectively, to a multiplexer 18 via leads 16-1 through 16-N. When directed, as by controller 13, for example, multiplexer 18 selects pairs of two of the signals from leads 16-1 through 16-N and compares the selected signals in circuit 20 to produce a correlation product of the two selected signals, for example, by subtracting the time arrivals of the signals. The output of circuit 20 is the timing offset, measured in chips, between the two selected signals. For reasons that are explained more fully below, the output of summing circuit 20 is provided as an input to rounder 15. Rounder 15 operates to round the inputted timing offset to obtain an integer value. In the exemplary embodiment illustrated, rounder 15 rounds the inputted timing offset down to the nearest integer value. The output of rounder 15 forms one input for using look-up table 17.
In the exemplary embodiment illustrated, look-up table 17 is a three dimensional table of cross-correlation coefficients that uses three indices for retrieving individual cross-correlation coefficients. The indices include a PN code identifier for each of the two user signals and the integer timing offset value output by rounder 15. As noted above, controller 13 directs the operation of multiplexer 18 by providing multiplexer 18 with a reference (e.g., PN code identifier) to each of two signals (e.g., to symbol epochs of the two signals). Controller 13 likewise provides the PN code identifiers of each of the two users corresponding to the two signals of interest, herein referred to as usersj,k, to the look-up table 17, while rounder 15 provides the look-up table with the rounded timing offset for usersj,k. Using these three indices, the look-up table 17 enables retrieval of at least one correlation coefficient based on the three inputted indices and corresponding to the two signals of interest.
In the event that storage space for look-up table 17 is not a limiting consideration, the dimension of look-up table 17 can be of sufficient granularity such that the desired cross-correlation between usersj,k can be directly retrieved. The number of elements stored in look-up table 17 is equal to the (number of users)2 X the number of possible timing offset values represented in look-up table 17. For example, if the possible timing offsets range from a value of zero to fifty, and each timing offset value is accurate to a thousandth of a chip, a possible timing offset value is 43.673 chips. In a scenario where there are one hundred possible subscriber units 38 and approximately 50,000 gradations of timing offset values, the number of elements corresponding to cross-correlations in look-up table 17 is approximately equal to 1002×50,000, or approximately one half billion elements. It is evident that, in the above example, were the timing offset to be quantized to integer values between one and fifty, the number of elements needed to be stored in look-up table 17 is reduced by a factor of one thousand.
To enable such a reduction in the number of stored elements, the exemplary embodiment of
To offset this potential source of error, an interpolator 19 may be used. Interpolator 19 operates to interpolate between two values returned from the look-up table 17. As described above, the timing offset value outputted from circuit 20 is rounded down to the nearest integer value. As a result, a more accurate timing offset value would be one between the rounded integer value outputted by rounder 15 and the next larger integer value. Therefore, instead of retrieving only one cross-correlation value from the look-up table 17, in exemplary embodiments employing the interpolator 19, two cross-correlation values are retrieved. Specifically, a first cross-correlation value is retrieved using the PN code identifiers of each of the two user signals and the integer value output of rounder 15 as indices, and a second cross-correlation value is retrieved using the same PN code identifiers of each of the two user signals and the next highest integer value as indices.
These two cross-correlation values are outputted from the look-up table 17 and form inputs to interpolator 19. Comparator 21 receives as inputs the output of circuit 20 and rounder 15. By subtracting the output of rounder 15 from the output of summing circuit 20, comparator 21 outputs to interpolator 19 a value equal to the amount truncated from the timing offset by rounder 15. Referring to the above example of a timing offset of “46.673”, the value outputted by comparator 21 is “0.673”.
Receiving as input the outputs of comparator 21 and look-up table 17, interpolator 19 is able to interpolate between the two values inputted from look-up table 17. In such a manner, a more accurate cross-correlation vale can be obtained.
In other exemplary embodiments, the look-up table 17 may be programmed to output two cross-correlation values. As a non-limiting example, if the rounder 15 is configured to round down to the nearest chip offset (e.g., as described above with respect to
Various methods of interpolation can be employed by the interpolator 19. If the chips associated with each user signal are considered unfiltered, the partial cross-correlation terms as a function of bit timing offset will be piecewise linear. As a result, in such a case, the interpolator 19 can employ linear interpolation between the two retrieved cross-correlation values to compute, or otherwise derive, the desired cross-correlation value. Alternatively, if the chips are filtered, the function required to be applied by the interpolator 19 will no longer be precisely piecewise linear, but will be continuous, and may still be well approximated with a piecewise linear function. Alternative functions that can be applied by the interpolator 19 include, but are not limited to, cubic splines and raised cosine functions. After interpolation, interpolator 19 outputs the derived cross-correlation between the two usersj,k.
The look-up table 17 may be computed (e.g., created) once, either prior to or upon receiving the signals. It may be desirable to have the look-up table 17 generated in advance and stored for subsequent use. The generation of the cross-correlation values stored in the look-up table 17 are generally known to one of ordinary skill in the art and may involve such traditional operations as multiplying the two signals and integrating over a symbol time for each chip offset, as non-limiting examples. As described above, the look-up table 17 comprises three dimensions one each corresponding to the PN code identifiers of the two signals and the chip offset output by the rounder 15. As such, generally, the look-up table 17 of
While described with reference to rounding the timing offset down to the nearest integer value, it will be apparent to one skilled in the art that in alternative embodiments of the invention the timing offset value output from circuit 20 can be rounded up to the next highest integer value by rounder 15. When such is done, the indices for the two cross-correlation values requested from look-up table 17 include the integer output of rounder 15 and the integer value that is one less than the integer output of rounder 15. Likewise, comparator 21 operates to subtract the output of summing circuit 20 from the output of rounder 15.
While described above in
Furthermore, while described above in
With reference to
At step B, a pair of signals (a first received signal and a second received signal) is selected. The selected signals correspond to signals between which the cross-correlation coefficient is desired to be known. While illustrated as showing the derivation of a cross-correlation coefficient between two user signals, in practice the process described herein may be repeated as many times as is necessary to derive all of the cross-correlation coefficients between a desired signal and every other signal.
At step C, a timing offset is determined for the selected pair of signals. As described above, the timing offset can be rounded (e.g., using rounder 15) to the nearest integer in order to decrease the size of the look-up table 17.
At step D, the determined timing offset of the two signals and the identifications of the two user signals are used as indices to retrieve at least one cross-correlation value from a memory (e.g., look-up table 17). As described more fully above, if the computed timing offset is rounded to the nearest integer, two values may be retrieved from the look-up table 17.
Also as described more fully above, if the computed timing offset was rounded to the nearest integer and, consequently, two values were retrieved from the look-up table 17, the two retrieved values may be interpolated to derive the desired cross-correlation coefficient. As noted above, steps B and C can be repeated selecting different pairs of user signals until all of the desired cross-correlation coefficients have been derived.
With reference to
In general, the various exemplary embodiments of the invention may be implemented in hardware or special purpose circuits, software, logic or any combination thereof. Embodiments of the invention may be practiced using various components such as integrated circuit modules.
Various modifications and adaptations may become apparent to those skilled in the relevant arts in view of the foregoing description, when read in conjunction with the accompanying drawings. However, any and all modifications of the teachings of this invention will still fall within the scope of the non-limiting embodiments of this invention.
Furthermore, some of the features of the various non-limiting embodiments of this invention may be used to advantage without the corresponding use of other features. As such, the foregoing description should be considered as merely illustrative of the principles, teachings and exemplary embodiments of this invention, and not in limitation thereof.
Number | Name | Date | Kind |
---|---|---|---|
7593736 | Duffett-Smith et al. | Sep 2009 | B1 |