CA2109257C - Code-division multiple-access demodulator with improved interference cancelation - Google Patents
Code-division multiple-access demodulator with improved interference cancelationInfo
- Publication number
- CA2109257C CA2109257C CA 2109257 CA2109257A CA2109257C CA 2109257 C CA2109257 C CA 2109257C CA 2109257 CA2109257 CA 2109257 CA 2109257 A CA2109257 A CA 2109257A CA 2109257 C CA2109257 C CA 2109257C
- Authority
- CA
- Canada
- Prior art keywords
- values
- symbol
- correlated
- memory area
- value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04B—TRANSMISSION
- H04B1/00—Details of transmission systems, not covered by a single one of groups H04B3/00 - H04B13/00; Details of transmission systems not characterised by the medium used for transmission
- H04B1/69—Spread spectrum techniques
- H04B1/707—Spread spectrum techniques using direct sequence modulation
- H04B1/7097—Interference-related aspects
- H04B1/7103—Interference-related aspects the interference being multiple access interference
- H04B1/7107—Subtractive interference cancellation
- H04B1/71075—Parallel interference cancellation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mobile Radio Communication Systems (AREA)
- Noise Elimination (AREA)
Abstract
A demodulator for code-division multiple-access spread-spectrum communications stores received chip data in a separate memory area for each transmitting station. Each area has a capacity of at least two symbols. When a complete symbol is received from a transmitting station, all chip data stored in the corresponding memory area are correlated with the corresponding spreading code, and estimated symbol values are derived from the correlated values. The correlated or estimated value of the oldest symbol is output as a demodulated value. The difference between each estimated symbol value and the previous estimate for the same symbol is multiplied by the spreading code to generate remaining interference values, which are subtracted from all chip data stored in memory areas for other transmitting stations, thereby updating those data.
Description
This invention relates to a spread-spectrum demodulator, more particularly to a demodulator for code-division multiple-access (CDMA) communications.
CDMA is employed in personal communication systems and other mobile communication systems in which M stations transmit simultaneously over the same frequency band. (M is an integer greater than one.) Each station uses a different pseudo-random noise signal as a spreading code, chopping each bit symbol of transmit data into smaller units, referred to as "chips," with pseudo-random values. A
receiving station receives a signal equal to the sum of the M signals transmitted by the transmitting stations, and demodulates this received signal to M separate signals by, for example, multiplying the received signal by the M
different spreading codes.
If the spreading codes are mutually orthogonal over each symbol duration and the mobile stations transmit in synchronization, the demodulated signals will be free of interference. In practice, however, the codes are not perfectly orthogonal, synchronization is lacking, and the signal transmitted by each mobile station interferes -- 2109?.57 somewhat with the signals transmitted by other stations. As the number of stations increases, so does the amount of interference, until the desired signal from each station is swamped by noise. This interference, referred to as co-channel interference, becomes the factor limiting the number of stations that can access the system simultaneously.
It is accordingly an object of the present invention to reduce co-channel interference in CDMA spread-spectrum communications.
Another object of the invention is to increase the number of stations that can access a CDMA spread-spectrum communication system simultaneously.
In the invented demodulator, received chip data are stored in a memory having a separate memory area for each transmitting station. Each memory area holds data for a plurality of symbols. While residing in the memory, the data are updated as follows.
When the receiving station finishes receiving a symbol from one transmitting station, that transmitting station and the corresponding memory area are designated for processing.
All data stored in the designated memory area are correlated with the spreading code of the designated transmitting station to generate correlated values for a plurality of symbols. Estimated symbol values are derived from these correlated values, and are stored temporarily.
The difference between each estimated symbol value and the previous estimate for the same symbol is multiplied by the spreading code of the designated station to generate remaining interference values. The remaining interference values are subtracted from all chip data stored in the memory, except for data stored in the designated memory area, thereby updating the memory contents. A demodulated value is output for the oldest symbol stored in the designated memory area.
In the drawings, Fig. 1 is a block diagram illustrating the invented demodulator.
Fig. 2 is a flowchart illustrating the invented demodulation method.
Fig. 3 is a diagram illustrating the removal of interference.
Fig. 4 is a graph illustrating simulated bit-error rates.
The invention will next be described with reference to the attached drawings. These drawings illustrate the _ 21092~7 invention but do not restrict its scope, which should be determined solely from the appended claims.
Referring to Fig. 1, the receiving station has an antenna 11 for receiving a radio-frequency signal, and a radio receiver 12 for amplifying the received signal and converting it to a baseband signal R(t). The baseband signal R(t) is fed to a demodulator comprising the rest of the elements in Fig. 1.
The demodulator has a memory 13 organized as a set of shift registers 13-1, ..., 13-M, where M is the number of transmitting stations. The received baseband signal R(t) is input separately to each of these shift registers a chip at a time, and shifted in each register toward the right in the drawing. Each shift register is long enough to accommodate data for K symbols, where K is a suitable integer greater than one.
Data from the shift registers are fed to a correlator 14, which correlates them with spreading codes generated by a spreading-code generator 15. Correlated data output from the correlator 14 are supplied to an estimator 16, which generates and temporarily stores estimated symbol values. A
respreader 17 obtains pairs of current and previous estimated symbol values from the estimator 16 and multiplies their difference by a spreading code received from the spreading-code generator 15 to estimate remaining 21092~7 interference values. An interference subtractor 18 uses the estimated remaining interference values to update the contents of the memory 13. Demodulated values of the oldest symbols stored in the memory 13 are output from an output port coupled to the correlator 14.
The operations of the foregoing demodulator elements are coordinated and controlled by a controller 19, which detects symbol boundaries and designates the shift register to be processed by the other demodulator elements.
The demodulator elements in Fig. 1 are preferably implemented as one or more digital integrated circuits, such as standard memory and processor integrated circuits, or application-specific integrated circuits. Descriptions of the circuit configurations will be omitted to avoid obscuring the invention with needless detail.
Next the general principal of CDMA spread-spectrum communication will be briefly described.
The j-th transmitting station generates a baseband signal of the form aj(t) PNj(t) where aj(t) is the transmit data signal, comprising symbols with values of plus or minus one, and PNj(t) is the spreading code, a pseudo-random signal that also takes on 2109~S7 values of plus or minus one. The t-parameter denotes time measured in suitable units.
The frequency of PNj(t) is much higher than the frequency of aj(t). During the duration of one symbol, the value of aj(t) remains constant while PNj(t) changes in pseudo-random fashion. Multiplication by the spreading code PNj thus chops each symbol into chips, each chip again having a value of plus or minus one.
The above baseband signal modulates a carrier signal to create the actual signal transmitted by the j-th station.
The radio receiver 12 in Fig. 1 demodulates the received signal to recover the baseband signal R(t). If M stations are transmitting, then R(t) has the form of a sum of M
terms:
R(t) = a1(t) PN1(t) + a2(t) PN2(t) + ... + aM(t) PNM(t) A symbol transmitted by the j-th station can be extracted from this sum by multiplying R(t) by PNj(t) and averaging the results over the symbol interval, obtaining:
bj = (1/N)~ aj(t) PNj(t) PNj(t) +
+ (1/N) ~ ai(t) PNi(t) PNj(t) N is the number of chips per symbol. Summation in the ` `_ 21092~7 first term on the right (the desired data term) is over N
consecutive values of t. Since PNj(t)-PNj(t) = 1, the first term has a value equal to aj(t), which is constant in this interval of N values of t.
Summation over the second term on the right (the co-channel interference term) is over the same N values of t and over the M - 1 values of i excluding i = j. When i ~ j, the products ai(t) PNi(t) PNj(t) will be plus and minus one with equal probability, so if N is large, the average value of N of those products will be close to zero, and if M is not too large, the sum of M - 1 of these average values will also be close to zero.
Given the imperfect orthogonality of the spreading codes and lack of synchronization between transmitting stations, however, there is a certain probability that the co-channel interference term will exceed the desired data term in magnitude and be opposite in sign, causing a symbol error. As M increases, so does this probability, and the error rate rises.
Next the operation of the invented demodulator will be described, with reference to Fig. 1 and the flowchart in Fig. 2.
Omitted from Fig. 2 are well-known steps by which the controller 19 recognizes each transmitting station and establishes communication with it. As a result of these steps, the spreading-code generator 15 is able to generate the spreading code employed by each transmitting station, and the controller 19 is able to identify boundaries between the symbols transmitted by each station.
In the first step 21 in Fig. 2, the received baseband signal R(t) output from the radio receiver 12 is sampled at the chip rate, and identical sampled values are input into all the receive shift registers 13-1, ..., 13-M. In the next step 22 the controller 19 waits until it recognizes that some transmitting station has reached the end of a transmitted symbol.
When the controller 19 recognizes the end of a transmitted symbol, it designates the station that transmitted that symbol, and designates the corresponding shift register (step 22). If the i-th station and shift register 13-i are designated, the entire contents of shift register 13-i, comprising data for K complete symbols, are transferred from the memory 13 to the correlator 14.
If two stations i and j reach symbol boundaries simultaneously, they are designated in turn according to a fixed rule, such as lowest-numbered station first. If all symbols have the same length (as is usual), the stations are designated in a regular cyclic order.
In the next step 24, the correlator 14 correlates the data received from shift register 13-i with the designated station's spreading code PNi(t), which it receives from the spreading-code generator 15. If Di(t) represents the data stored in shift register 13-i, for each symbol, the correlator 14 performs the following calculation:
bi(k) = (1/N)~ Di(t)-PNi(t) The summation range is over the N consecutive values of t belonging to one symbol. The parameter k denotes the symbol position in the shift register. Since the shift register holds data for K symbols, k is, for example, an integer from one to K.
The correlated value bi(K) of the oldest symbol in the shift register is output from the output port 20 as a demodulated symbol value of the designated i-th station.
All of the correlated values bi(k) (k = 1, ..., K) are output to the estimator 16.
The estimator 16 estimates the value ci(k) of each symbol from its correlated value bi(k). Rather than making a hard decision, the estimator 16 makes a soft estimate;
that is, instead of setting ci(k) equal to plus or minus one, it moves ci(k) to a value intermediate between bi(k) and plus or minus one. A soft estimate can be obtained by using the square-root function as follows:
ci(k) = sign(bi(k)) sqrt(lbi(k)l) Here, ll denotes absolute value, sqrt() denotes the square root, and sign() expresses the plus or minus sign.
The advantage of a soft estimate is that it avoids over-committing the estimator 16 in doubtful cases. If bi(k) is close to zero, indicating an uncertain symbol value, then ci(k) will be fairly close to zero too.
The estimator 16 retains a copy of the estimates it made for the same symbols the previous time the i-th station was designated, and outputs to the respreader 17 both its current estimates ci(k) and these previous estimates gi(k).
For the first symbol (k = 1) in the shift register, there was no previous estimate, so gi(1) is zero.
The invention can be practiced with a different soft-estimation function, or indeed without any function at all:
the correlated values bi(k) can be used directly as the symbol estimates ci(k). In that case the estimator 16 simply stores the current and previous correlated values.
The respreader 17 calculates, for each symbol, the difference fi(k) between the current and previous estimates of that symbol (step 26):
fi(k) = ci(k) - gi(k) 21092~7 Next the respreader 17 multiplies the difference fi(k) by the spreading code PNi(t) of the designated i-th station, which it receives from the spreading-code generator 15, to obtain the following Ei(t) (step 27):
Ei(t) = fi(k)-PNi(t) = ci(k)-PNi(t) - gi(k)-PNi(t) The parameters t and k are related in the obvious way, k remaining constant as t ranges over one symbol interval.
The ci(k) PNi(t) values comprise the current estimate of the actual signal ai(k) PNi(t) that was transmitted by the designated i-th station, and the gi(k)-PNi(t) values are the previous estimate of this transmitted signal. As discussed in the next step, the signals estimated to have been transmitted by the designated station are removed as interference from the data for other stations. Accordingly, Ei(t) is the estimated remaining interference that has not been removed yet.
In the next step 28 in Fig. 2, the interference subtractor 18 updates the shift-register contents for all stations other than the designated station by subtracting the estimated remaining interference values Ei(t). For each other station j (j ~ i), it reads all the data Dj(t) from corresponding shift register 13-j, subtracts Ei(t), and writes the result back into shift register 13-j, thus performing the following operation:
Dj(t) <-- Dj(t) - Ei(t) Fig. 3 illustrates these operations diagrammatically, showing three shift registers 13-1, 13-2, and 13-3. The heavy vertical lines in the shift registers indicate symbol boundaries. It will be assumed that only three stations are currently transmitting. At the instant shown, a new complete symbol 30 has just been received from the second station, as indicated in the second shift register 13-2.
The second station is accordingly the designated station.
The data for this symbol 30 comprise three parts. The first part 31 is the received raw chip data R(t), which have not yet been updated by subtraction of interference from any other station. The second part 32 has already been updated by subtracting estimated interference from a symbol 33 which was received a short time ago from the first station. The third part 34 has been updated by subtracting estimated interference from both this symbol 33 and another symbol 35 which was received somewhat further ago from the third station.
The estimated value c2(1) of this symbol 30 is therefore based on data from which interference has already been partly removed. The estimated interference c2(1) PN2(t) caused by symbol 30 is calculated and subtracted from the corresponding segments of the data in the first and third shift registers 13-1 and 13-3. These segments need not and generally will not correspond to symbol boundaries in those shift registers.
The next symbol 36 in the second shift register 13-2 has already been updated to remove estimated interference from symbols 33 and 37 in the first shift register 13-1 and symbols 35 and 38 in the third shift register 13-3. The interference caused by this symbol 36 is now estimated to be c2(2) PN2(t), but since a previous (less accurate) estimate g2(2)-PN2(t) was already subtracted from the first and third shift registers 13-1 and 13-3 one cycle ago (when the symbol 36 was in the first position in the shift register 13-2), this time the difference c2(2) PN2(t) - g2(2)-PN2(t) is subtracted as remaining interference. A similar procedure is followed with the third symbol 39 and subsequent symbols in the shift register 13-2.
It is a significant feature of the present invention that the very first correlation and estimate of a symbol value, and of interference caused by that symbol, are based on data that have already been partially purged of interference from other stations. Moreover, each time an interference estimate is made, the estimated interference is immediately removed from all relevant data in the shift `_ 2109257 registers, thereby improving all subsequent correlations and estimates for all stations. Every correlation and estimate of a signal or interference value is made with the best data available at the time. As a result, the symbol estimates are able to converge quickly to the true symbol values, and convergence is highly stable.
During the interval from when a particular station is designated until the next time the same station is designated again, each of the other M - 1 stations will be designated once. Each symbol spends K of these intervals in the memory 13. Accordingly, by the time a symbol reaches the end of a shift register, it has been updated (M - l) K
times, each update tending to be more accurate than the last. When the demodulated values are finally output, the error rate is correspondingly low.
Fig. 4 shows the result of a computer simulation of the performance of the invented demodulator and a conventional demodulator that only correlates the received signal with the spreading codes. Noise other than co-channel interference was excluded. The number of transmitting stations is indicated on the horizontal axis. The symbol error rate (bit error rate) is indicated on the vertical axis. The points marked with triangles represent the invented demodulator; the points marked with crosses represent the conventional demodulator. Pseudo-random spreading codes with a cycle length of 24~ - 1 were used.
The transmit data were pseudo-random data with a cycle length of 29 - 1 (511). There were sixty-four chips per symbol, and the shift registers in the invented demodulator were ten symbols (six hundred forty chips) long. It is clear that the invented demodulator far outperforms the conventional demodulator, permitting access by many more transmitting stations.
The invented demodulator can be modified in various ways. Instead of the correlated value bi(K), the estimated value ci(K) can be output as demodulated data for the i-th station. The output port 20 will then be coupled to the estimator 16. The estimator 16 can make hard decisions instead of soft estimates for some or all of the symbols.
Ring buffers, random-access memory, or other memory configurations can be employed instead of shift registers.
Instead of feeding identical received data into the memory areas for all stations, it is possible to use the spreading codes when the received signal is converted to the baseband, so that the memory receives data that have already been correlated once, though not yet cleared of interference.
Those skilled in the art will recognize that still further modifications can be made without departing from the scope of the invention as claimed below.
CDMA is employed in personal communication systems and other mobile communication systems in which M stations transmit simultaneously over the same frequency band. (M is an integer greater than one.) Each station uses a different pseudo-random noise signal as a spreading code, chopping each bit symbol of transmit data into smaller units, referred to as "chips," with pseudo-random values. A
receiving station receives a signal equal to the sum of the M signals transmitted by the transmitting stations, and demodulates this received signal to M separate signals by, for example, multiplying the received signal by the M
different spreading codes.
If the spreading codes are mutually orthogonal over each symbol duration and the mobile stations transmit in synchronization, the demodulated signals will be free of interference. In practice, however, the codes are not perfectly orthogonal, synchronization is lacking, and the signal transmitted by each mobile station interferes -- 2109?.57 somewhat with the signals transmitted by other stations. As the number of stations increases, so does the amount of interference, until the desired signal from each station is swamped by noise. This interference, referred to as co-channel interference, becomes the factor limiting the number of stations that can access the system simultaneously.
It is accordingly an object of the present invention to reduce co-channel interference in CDMA spread-spectrum communications.
Another object of the invention is to increase the number of stations that can access a CDMA spread-spectrum communication system simultaneously.
In the invented demodulator, received chip data are stored in a memory having a separate memory area for each transmitting station. Each memory area holds data for a plurality of symbols. While residing in the memory, the data are updated as follows.
When the receiving station finishes receiving a symbol from one transmitting station, that transmitting station and the corresponding memory area are designated for processing.
All data stored in the designated memory area are correlated with the spreading code of the designated transmitting station to generate correlated values for a plurality of symbols. Estimated symbol values are derived from these correlated values, and are stored temporarily.
The difference between each estimated symbol value and the previous estimate for the same symbol is multiplied by the spreading code of the designated station to generate remaining interference values. The remaining interference values are subtracted from all chip data stored in the memory, except for data stored in the designated memory area, thereby updating the memory contents. A demodulated value is output for the oldest symbol stored in the designated memory area.
In the drawings, Fig. 1 is a block diagram illustrating the invented demodulator.
Fig. 2 is a flowchart illustrating the invented demodulation method.
Fig. 3 is a diagram illustrating the removal of interference.
Fig. 4 is a graph illustrating simulated bit-error rates.
The invention will next be described with reference to the attached drawings. These drawings illustrate the _ 21092~7 invention but do not restrict its scope, which should be determined solely from the appended claims.
Referring to Fig. 1, the receiving station has an antenna 11 for receiving a radio-frequency signal, and a radio receiver 12 for amplifying the received signal and converting it to a baseband signal R(t). The baseband signal R(t) is fed to a demodulator comprising the rest of the elements in Fig. 1.
The demodulator has a memory 13 organized as a set of shift registers 13-1, ..., 13-M, where M is the number of transmitting stations. The received baseband signal R(t) is input separately to each of these shift registers a chip at a time, and shifted in each register toward the right in the drawing. Each shift register is long enough to accommodate data for K symbols, where K is a suitable integer greater than one.
Data from the shift registers are fed to a correlator 14, which correlates them with spreading codes generated by a spreading-code generator 15. Correlated data output from the correlator 14 are supplied to an estimator 16, which generates and temporarily stores estimated symbol values. A
respreader 17 obtains pairs of current and previous estimated symbol values from the estimator 16 and multiplies their difference by a spreading code received from the spreading-code generator 15 to estimate remaining 21092~7 interference values. An interference subtractor 18 uses the estimated remaining interference values to update the contents of the memory 13. Demodulated values of the oldest symbols stored in the memory 13 are output from an output port coupled to the correlator 14.
The operations of the foregoing demodulator elements are coordinated and controlled by a controller 19, which detects symbol boundaries and designates the shift register to be processed by the other demodulator elements.
The demodulator elements in Fig. 1 are preferably implemented as one or more digital integrated circuits, such as standard memory and processor integrated circuits, or application-specific integrated circuits. Descriptions of the circuit configurations will be omitted to avoid obscuring the invention with needless detail.
Next the general principal of CDMA spread-spectrum communication will be briefly described.
The j-th transmitting station generates a baseband signal of the form aj(t) PNj(t) where aj(t) is the transmit data signal, comprising symbols with values of plus or minus one, and PNj(t) is the spreading code, a pseudo-random signal that also takes on 2109~S7 values of plus or minus one. The t-parameter denotes time measured in suitable units.
The frequency of PNj(t) is much higher than the frequency of aj(t). During the duration of one symbol, the value of aj(t) remains constant while PNj(t) changes in pseudo-random fashion. Multiplication by the spreading code PNj thus chops each symbol into chips, each chip again having a value of plus or minus one.
The above baseband signal modulates a carrier signal to create the actual signal transmitted by the j-th station.
The radio receiver 12 in Fig. 1 demodulates the received signal to recover the baseband signal R(t). If M stations are transmitting, then R(t) has the form of a sum of M
terms:
R(t) = a1(t) PN1(t) + a2(t) PN2(t) + ... + aM(t) PNM(t) A symbol transmitted by the j-th station can be extracted from this sum by multiplying R(t) by PNj(t) and averaging the results over the symbol interval, obtaining:
bj = (1/N)~ aj(t) PNj(t) PNj(t) +
+ (1/N) ~ ai(t) PNi(t) PNj(t) N is the number of chips per symbol. Summation in the ` `_ 21092~7 first term on the right (the desired data term) is over N
consecutive values of t. Since PNj(t)-PNj(t) = 1, the first term has a value equal to aj(t), which is constant in this interval of N values of t.
Summation over the second term on the right (the co-channel interference term) is over the same N values of t and over the M - 1 values of i excluding i = j. When i ~ j, the products ai(t) PNi(t) PNj(t) will be plus and minus one with equal probability, so if N is large, the average value of N of those products will be close to zero, and if M is not too large, the sum of M - 1 of these average values will also be close to zero.
Given the imperfect orthogonality of the spreading codes and lack of synchronization between transmitting stations, however, there is a certain probability that the co-channel interference term will exceed the desired data term in magnitude and be opposite in sign, causing a symbol error. As M increases, so does this probability, and the error rate rises.
Next the operation of the invented demodulator will be described, with reference to Fig. 1 and the flowchart in Fig. 2.
Omitted from Fig. 2 are well-known steps by which the controller 19 recognizes each transmitting station and establishes communication with it. As a result of these steps, the spreading-code generator 15 is able to generate the spreading code employed by each transmitting station, and the controller 19 is able to identify boundaries between the symbols transmitted by each station.
In the first step 21 in Fig. 2, the received baseband signal R(t) output from the radio receiver 12 is sampled at the chip rate, and identical sampled values are input into all the receive shift registers 13-1, ..., 13-M. In the next step 22 the controller 19 waits until it recognizes that some transmitting station has reached the end of a transmitted symbol.
When the controller 19 recognizes the end of a transmitted symbol, it designates the station that transmitted that symbol, and designates the corresponding shift register (step 22). If the i-th station and shift register 13-i are designated, the entire contents of shift register 13-i, comprising data for K complete symbols, are transferred from the memory 13 to the correlator 14.
If two stations i and j reach symbol boundaries simultaneously, they are designated in turn according to a fixed rule, such as lowest-numbered station first. If all symbols have the same length (as is usual), the stations are designated in a regular cyclic order.
In the next step 24, the correlator 14 correlates the data received from shift register 13-i with the designated station's spreading code PNi(t), which it receives from the spreading-code generator 15. If Di(t) represents the data stored in shift register 13-i, for each symbol, the correlator 14 performs the following calculation:
bi(k) = (1/N)~ Di(t)-PNi(t) The summation range is over the N consecutive values of t belonging to one symbol. The parameter k denotes the symbol position in the shift register. Since the shift register holds data for K symbols, k is, for example, an integer from one to K.
The correlated value bi(K) of the oldest symbol in the shift register is output from the output port 20 as a demodulated symbol value of the designated i-th station.
All of the correlated values bi(k) (k = 1, ..., K) are output to the estimator 16.
The estimator 16 estimates the value ci(k) of each symbol from its correlated value bi(k). Rather than making a hard decision, the estimator 16 makes a soft estimate;
that is, instead of setting ci(k) equal to plus or minus one, it moves ci(k) to a value intermediate between bi(k) and plus or minus one. A soft estimate can be obtained by using the square-root function as follows:
ci(k) = sign(bi(k)) sqrt(lbi(k)l) Here, ll denotes absolute value, sqrt() denotes the square root, and sign() expresses the plus or minus sign.
The advantage of a soft estimate is that it avoids over-committing the estimator 16 in doubtful cases. If bi(k) is close to zero, indicating an uncertain symbol value, then ci(k) will be fairly close to zero too.
The estimator 16 retains a copy of the estimates it made for the same symbols the previous time the i-th station was designated, and outputs to the respreader 17 both its current estimates ci(k) and these previous estimates gi(k).
For the first symbol (k = 1) in the shift register, there was no previous estimate, so gi(1) is zero.
The invention can be practiced with a different soft-estimation function, or indeed without any function at all:
the correlated values bi(k) can be used directly as the symbol estimates ci(k). In that case the estimator 16 simply stores the current and previous correlated values.
The respreader 17 calculates, for each symbol, the difference fi(k) between the current and previous estimates of that symbol (step 26):
fi(k) = ci(k) - gi(k) 21092~7 Next the respreader 17 multiplies the difference fi(k) by the spreading code PNi(t) of the designated i-th station, which it receives from the spreading-code generator 15, to obtain the following Ei(t) (step 27):
Ei(t) = fi(k)-PNi(t) = ci(k)-PNi(t) - gi(k)-PNi(t) The parameters t and k are related in the obvious way, k remaining constant as t ranges over one symbol interval.
The ci(k) PNi(t) values comprise the current estimate of the actual signal ai(k) PNi(t) that was transmitted by the designated i-th station, and the gi(k)-PNi(t) values are the previous estimate of this transmitted signal. As discussed in the next step, the signals estimated to have been transmitted by the designated station are removed as interference from the data for other stations. Accordingly, Ei(t) is the estimated remaining interference that has not been removed yet.
In the next step 28 in Fig. 2, the interference subtractor 18 updates the shift-register contents for all stations other than the designated station by subtracting the estimated remaining interference values Ei(t). For each other station j (j ~ i), it reads all the data Dj(t) from corresponding shift register 13-j, subtracts Ei(t), and writes the result back into shift register 13-j, thus performing the following operation:
Dj(t) <-- Dj(t) - Ei(t) Fig. 3 illustrates these operations diagrammatically, showing three shift registers 13-1, 13-2, and 13-3. The heavy vertical lines in the shift registers indicate symbol boundaries. It will be assumed that only three stations are currently transmitting. At the instant shown, a new complete symbol 30 has just been received from the second station, as indicated in the second shift register 13-2.
The second station is accordingly the designated station.
The data for this symbol 30 comprise three parts. The first part 31 is the received raw chip data R(t), which have not yet been updated by subtraction of interference from any other station. The second part 32 has already been updated by subtracting estimated interference from a symbol 33 which was received a short time ago from the first station. The third part 34 has been updated by subtracting estimated interference from both this symbol 33 and another symbol 35 which was received somewhat further ago from the third station.
The estimated value c2(1) of this symbol 30 is therefore based on data from which interference has already been partly removed. The estimated interference c2(1) PN2(t) caused by symbol 30 is calculated and subtracted from the corresponding segments of the data in the first and third shift registers 13-1 and 13-3. These segments need not and generally will not correspond to symbol boundaries in those shift registers.
The next symbol 36 in the second shift register 13-2 has already been updated to remove estimated interference from symbols 33 and 37 in the first shift register 13-1 and symbols 35 and 38 in the third shift register 13-3. The interference caused by this symbol 36 is now estimated to be c2(2) PN2(t), but since a previous (less accurate) estimate g2(2)-PN2(t) was already subtracted from the first and third shift registers 13-1 and 13-3 one cycle ago (when the symbol 36 was in the first position in the shift register 13-2), this time the difference c2(2) PN2(t) - g2(2)-PN2(t) is subtracted as remaining interference. A similar procedure is followed with the third symbol 39 and subsequent symbols in the shift register 13-2.
It is a significant feature of the present invention that the very first correlation and estimate of a symbol value, and of interference caused by that symbol, are based on data that have already been partially purged of interference from other stations. Moreover, each time an interference estimate is made, the estimated interference is immediately removed from all relevant data in the shift `_ 2109257 registers, thereby improving all subsequent correlations and estimates for all stations. Every correlation and estimate of a signal or interference value is made with the best data available at the time. As a result, the symbol estimates are able to converge quickly to the true symbol values, and convergence is highly stable.
During the interval from when a particular station is designated until the next time the same station is designated again, each of the other M - 1 stations will be designated once. Each symbol spends K of these intervals in the memory 13. Accordingly, by the time a symbol reaches the end of a shift register, it has been updated (M - l) K
times, each update tending to be more accurate than the last. When the demodulated values are finally output, the error rate is correspondingly low.
Fig. 4 shows the result of a computer simulation of the performance of the invented demodulator and a conventional demodulator that only correlates the received signal with the spreading codes. Noise other than co-channel interference was excluded. The number of transmitting stations is indicated on the horizontal axis. The symbol error rate (bit error rate) is indicated on the vertical axis. The points marked with triangles represent the invented demodulator; the points marked with crosses represent the conventional demodulator. Pseudo-random spreading codes with a cycle length of 24~ - 1 were used.
The transmit data were pseudo-random data with a cycle length of 29 - 1 (511). There were sixty-four chips per symbol, and the shift registers in the invented demodulator were ten symbols (six hundred forty chips) long. It is clear that the invented demodulator far outperforms the conventional demodulator, permitting access by many more transmitting stations.
The invented demodulator can be modified in various ways. Instead of the correlated value bi(K), the estimated value ci(K) can be output as demodulated data for the i-th station. The output port 20 will then be coupled to the estimator 16. The estimator 16 can make hard decisions instead of soft estimates for some or all of the symbols.
Ring buffers, random-access memory, or other memory configurations can be employed instead of shift registers.
Instead of feeding identical received data into the memory areas for all stations, it is possible to use the spreading codes when the received signal is converted to the baseband, so that the memory receives data that have already been correlated once, though not yet cleared of interference.
Those skilled in the art will recognize that still further modifications can be made without departing from the scope of the invention as claimed below.
Claims (13)
PROPERTY OR PRIVILEGE IS CLAIMED ARE DEFINED AS FOLLOWS:
1. A demodulator for code-division multiple-access spread-spectrum communications, comprising:
a memory (13) divided into separate memory areas for different transmitting stations, each memory area storing received chip data and updated chip data for a plurality of symbols including at least a newest symbol and an oldest symbol;
a spreading-code generator (15) for generating spreading codes used by respective transmitting stations;
a correlator (16) coupled to correlate all data in a designated memory area among said memory areas with a corresponding spreading code generated by said spreading-code generator (15), thereby generating correlated values for a plurality of symbols;
an estimator (16) coupled to receive said correlated values, calculate therefrom a plurality of estimated symbol values, and temporarily store said estimated symbol values;
a respreader (17) coupled to calculate differences between said estimated symbol values and previously stored estimated symbol values, and multiply said differences by said corresponding spreading code to create remaining interference values;
an interference subtractor (18) coupled to update all data stored in said memory (13), except data stored in said designated memory area, by subtracting said remaining interference values;
a controller (19) for recognizing symbol boundaries and designating a memory area in said memory whenever its corresponding transmitting station completes transmission of a symbol; and an output port (20) coupled to output, for the oldest symbol stored in said designated memory area, a demodulated value that has at least been correlated by said correlator (14).
a memory (13) divided into separate memory areas for different transmitting stations, each memory area storing received chip data and updated chip data for a plurality of symbols including at least a newest symbol and an oldest symbol;
a spreading-code generator (15) for generating spreading codes used by respective transmitting stations;
a correlator (16) coupled to correlate all data in a designated memory area among said memory areas with a corresponding spreading code generated by said spreading-code generator (15), thereby generating correlated values for a plurality of symbols;
an estimator (16) coupled to receive said correlated values, calculate therefrom a plurality of estimated symbol values, and temporarily store said estimated symbol values;
a respreader (17) coupled to calculate differences between said estimated symbol values and previously stored estimated symbol values, and multiply said differences by said corresponding spreading code to create remaining interference values;
an interference subtractor (18) coupled to update all data stored in said memory (13), except data stored in said designated memory area, by subtracting said remaining interference values;
a controller (19) for recognizing symbol boundaries and designating a memory area in said memory whenever its corresponding transmitting station completes transmission of a symbol; and an output port (20) coupled to output, for the oldest symbol stored in said designated memory area, a demodulated value that has at least been correlated by said correlator (14).
2. The demodulator of claim 1, wherein said estimated symbol values are soft estimates.
3. The demodulator of claim 1, wherein said estimator (16) employs a sign function to calculate said estimated symbol values.
4. The demodulator of claim 3, wherein said estimator (16) employs a square-root function to calculate said estimated symbol values.
5. The demodulator of claim 1, wherein identical received chip data are input to all said memory areas.
6. The demodulator of claim 1, wherein each of said areas in said memory (13) is organized as a shift register with a first stage and a last stage, received chip data being input into said first stage and shifted toward said last stage.
7. The demodulator of claim 1, wherein said output port (20) is coupled to said correlator (14) and outputs, as said demodulated value, a correlated value of said oldest symbol, as generated by said correlator.
8. A method of demodulating a code-division multiple-access spread-spectrum signal, comprising the steps of:
storing received chip data and updated chip data in a memory divided into separate memory areas, each memory area corresponding to a different transmitting station, and each memory area storing data for a plurality of symbols including at least a newest symbol and an oldest symbol;
designating a transmitting station and its corresponding memory area whenever said transmitting station finishes transmitting a symbol, thus obtaining a designated transmitting station and designated memory area;
correlating all data stored in the designated memory area with a spreading code employed by the designated transmitting station, thereby generating correlated values for a plurality of symbols;
estimating symbol values from said correlated values, thereby generating estimated symbol values;
storing said estimated symbol values temporarily, so that current estimated symbol values and previous estimated symbol values are available simultaneously;
calculating difference values between said current estimated symbol values and said previous estimated symbol values;
multiplying said difference values by the spreading code employed by said designated transmitting station, thereby generating remaining interference values;
updating all data stored in said memory, except data stored in said designated memory area, by subtracting said remaining interference values; and outputting a demodulated value for the oldest symbol stored in said designated memory area, said demodulated value having at least been correlated in said step of correlating all data.
storing received chip data and updated chip data in a memory divided into separate memory areas, each memory area corresponding to a different transmitting station, and each memory area storing data for a plurality of symbols including at least a newest symbol and an oldest symbol;
designating a transmitting station and its corresponding memory area whenever said transmitting station finishes transmitting a symbol, thus obtaining a designated transmitting station and designated memory area;
correlating all data stored in the designated memory area with a spreading code employed by the designated transmitting station, thereby generating correlated values for a plurality of symbols;
estimating symbol values from said correlated values, thereby generating estimated symbol values;
storing said estimated symbol values temporarily, so that current estimated symbol values and previous estimated symbol values are available simultaneously;
calculating difference values between said current estimated symbol values and said previous estimated symbol values;
multiplying said difference values by the spreading code employed by said designated transmitting station, thereby generating remaining interference values;
updating all data stored in said memory, except data stored in said designated memory area, by subtracting said remaining interference values; and outputting a demodulated value for the oldest symbol stored in said designated memory area, said demodulated value having at least been correlated in said step of correlating all data.
9. The method of claim 8, wherein the step of estimating symbol values is carried out by making soft estimates.
10. The method of claim 9, wherein the step of estimating symbol values comprises the further steps of:
taking an absolute value of a correlated value;
taking a square root of said absolute value; and multiplying said square root by a sign of said correlated value.
taking an absolute value of a correlated value;
taking a square root of said absolute value; and multiplying said square root by a sign of said correlated value.
11. The method of claim 8, comprising the further step of shifting data stored in each of said memory areas, thereby making room for new received chip data.
12. The method of claim 8, wherein said demodulated value is a correlated value generated in the step of correlating all data.
13. The method of claim 8, wherein said demodulated value is an estimated symbol value generated in the step of estimating symbol values.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP266093A JP3143247B2 (en) | 1993-01-11 | 1993-01-11 | Code division multiple access demodulator |
| JP002660/93 | 1993-01-11 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CA2109257A1 CA2109257A1 (en) | 1994-07-12 |
| CA2109257C true CA2109257C (en) | 1997-03-18 |
Family
ID=11535496
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CA 2109257 Expired - Fee Related CA2109257C (en) | 1993-01-11 | 1993-10-26 | Code-division multiple-access demodulator with improved interference cancelation |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US5394434A (en) |
| EP (1) | EP0606546B1 (en) |
| JP (1) | JP3143247B2 (en) |
| CA (1) | CA2109257C (en) |
| DE (1) | DE69331436T2 (en) |
Families Citing this family (30)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2732783B2 (en) * | 1993-08-31 | 1998-03-30 | 沖電気工業株式会社 | Code division multiple access demodulator |
| CA2179979C (en) * | 1994-02-10 | 2001-07-03 | Evangelos Eleftheriou | Method and apparatus for multiuser-interference reduction |
| JP3202125B2 (en) * | 1994-03-10 | 2001-08-27 | 沖電気工業株式会社 | Code division multiple access system |
| KR950035142A (en) * | 1994-03-10 | 1995-12-30 | 가나미야지 준 | Receiver, Base Station Receiver and Mobile Station Receiver |
| US5724378A (en) * | 1994-12-13 | 1998-03-03 | Nit Mobile Communications Network, Inc. | CDMA multiuser receiver and method |
| FI97581C (en) * | 1995-02-10 | 1997-01-10 | Nokia Telecommunications Oy | Receiver and method for generating spreading codes in the receiver |
| DE19509867C2 (en) * | 1995-03-17 | 1997-05-15 | Siemens Ag | Transmission method for the simultaneous synchronous or asynchronous transmission of K data sequences consisting of data symbols |
| US5682382A (en) * | 1995-09-05 | 1997-10-28 | Massachusetts Institute Of Technology | Scalable, self-organizing packet radio network having decentralized channel management providing collision-free packet transfer |
| EP0767543A3 (en) * | 1995-10-06 | 2000-07-26 | Siemens Aktiengesellschaft | Code division multiplex communication with interference suppression |
| JP3476987B2 (en) * | 1996-01-12 | 2003-12-10 | 株式会社日立国際電気 | Multi-user demodulation method and apparatus |
| JP3323067B2 (en) | 1996-07-12 | 2002-09-09 | 沖電気工業株式会社 | CDMA receiver |
| US6430216B1 (en) | 1997-08-22 | 2002-08-06 | Data Fusion Corporation | Rake receiver for spread spectrum signal demodulation |
| FI104020B1 (en) * | 1997-06-23 | 1999-10-29 | Nokia Telecommunications Oy | Reception procedure and recipients |
| WO1999009650A1 (en) | 1997-08-21 | 1999-02-25 | Data Fusion Corporation | Method and apparatus for acquiring wide-band pseudorandom noise encoded waveforms |
| SG77607A1 (en) | 1997-08-26 | 2001-01-16 | Univ Singapore | A multi-user code division multiple access receiver |
| KR100239177B1 (en) * | 1997-08-30 | 2000-01-15 | 윤종용 | Smart antenna receiving apparatus and method using pilot signal in cdma mobile communication system |
| US6539009B1 (en) * | 1997-12-26 | 2003-03-25 | Yozan, Inc. | Signal reception apparatus for DS-CDMA cellular system |
| JP3335900B2 (en) | 1998-02-27 | 2002-10-21 | 松下電器産業株式会社 | Interference removal apparatus and interference removal method |
| US6445692B1 (en) | 1998-05-20 | 2002-09-03 | The Trustees Of The Stevens Institute Of Technology | Blind adaptive algorithms for optimal minimum variance CDMA receivers |
| JP2991196B1 (en) * | 1998-08-24 | 1999-12-20 | 日本電気株式会社 | CDMA receiving method and receiver |
| JP3957973B2 (en) * | 1999-04-30 | 2007-08-15 | 富士通株式会社 | Code-multiplexed radio equipment implementing interference canceller |
| JP3486133B2 (en) * | 1999-05-31 | 2004-01-13 | 独立行政法人通信総合研究所 | Pseudo noise sequence output system, output device, output method, and information recording medium |
| WO2001029983A1 (en) * | 1999-10-19 | 2001-04-26 | Interdigital Technology Corporation | Receiver for multiuser detection of cdma signals |
| DE60025723T2 (en) * | 2000-07-11 | 2006-11-09 | Fujitsu Ltd., Kawasaki | CODE MULTIPLEX SIGNAL RECEIVER |
| EP2239872B1 (en) * | 2000-07-11 | 2013-08-21 | Fujitsu Limited | Code division multiple access communication system and code division multiple access transmitting apparatus |
| GB2396985B (en) | 2001-09-12 | 2005-05-11 | Data Fusion Corp | Gps near-far resistant receiver |
| US7075972B2 (en) * | 2002-08-19 | 2006-07-11 | Mitsubishi Electric Research Laboratories, Inc. | Intra-cell interference cancellation in a W-CDMA communications network |
| WO2006093723A2 (en) * | 2005-02-25 | 2006-09-08 | Data Fusion Corporation | Mitigating interference in a signal |
| US20090323777A1 (en) * | 2008-06-26 | 2009-12-31 | Yi-Pin Eric Wang | Methods and Apparatus for Sharing Signal Correlation Data in a Receiver |
| US8254502B2 (en) * | 2008-12-22 | 2012-08-28 | Qualcomm Incorporated | Post decoding soft interference cancellation |
Family Cites Families (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4528674A (en) * | 1983-08-22 | 1985-07-09 | E-Systems, Inc. | Method and apparatus for baseband generation of a spread spectrum reference signal for use in an LMS adaptive array processor |
| US5218619A (en) * | 1990-12-17 | 1993-06-08 | Ericsson Ge Mobile Communications Holding, Inc. | CDMA subtractive demodulation |
| US5151919A (en) * | 1990-12-17 | 1992-09-29 | Ericsson-Ge Mobile Communications Holding Inc. | Cdma subtractive demodulation |
| US5235612A (en) | 1990-12-21 | 1993-08-10 | Motorola, Inc. | Method and apparatus for cancelling spread-spectrum noise |
| US5136612A (en) * | 1990-12-31 | 1992-08-04 | At&T Bell Laboratories | Method and apparatus for reducing effects of multiple access interference in a radio receiver in a code division multiple access communication system |
-
1993
- 1993-01-11 JP JP266093A patent/JP3143247B2/en not_active Expired - Fee Related
- 1993-10-26 CA CA 2109257 patent/CA2109257C/en not_active Expired - Fee Related
- 1993-10-26 US US08/141,665 patent/US5394434A/en not_active Expired - Lifetime
- 1993-10-28 DE DE69331436T patent/DE69331436T2/en not_active Expired - Fee Related
- 1993-10-28 EP EP19930117494 patent/EP0606546B1/en not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| CA2109257A1 (en) | 1994-07-12 |
| EP0606546B1 (en) | 2002-01-09 |
| DE69331436D1 (en) | 2002-02-14 |
| EP0606546A2 (en) | 1994-07-20 |
| JP3143247B2 (en) | 2001-03-07 |
| EP0606546A3 (en) | 1995-05-03 |
| JPH06209303A (en) | 1994-07-26 |
| US5394434A (en) | 1995-02-28 |
| DE69331436T2 (en) | 2002-08-14 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CA2109257C (en) | Code-division multiple-access demodulator with improved interference cancelation | |
| EP0641100B1 (en) | Multiple access interference cancellation for CDMA demodulator | |
| US6459883B2 (en) | Generic finger architecture for spread spectrum applications | |
| US6172969B1 (en) | CDMA receiver employing successive cancellation of training-signal interference | |
| AU714343B2 (en) | A method for estimating signal and noise quality, and a receiver | |
| JP2762996B1 (en) | Receiver | |
| US6272167B1 (en) | Spread spectrum communication system | |
| EP1101290A1 (en) | Method and apparatus for providing differential multistage detection in the reverse link of a code division multiple access communication system | |
| CA2210214A1 (en) | Cdma receiver with weighted interference cancellation | |
| JP2001502863A (en) | Receiving method and receiver | |
| EP0851601A2 (en) | CDMA multi-code radio reception apparatus | |
| US7394879B2 (en) | Systems and methods for parallel signal cancellation | |
| JPH11252045A (en) | Interference removal apparatus and interference removal method | |
| AU695984B2 (en) | Interference cancellation method, and receiver | |
| US6967991B1 (en) | Device for canceling interference | |
| AU2260295A (en) | Receiving method and receiver | |
| KR100336544B1 (en) | CDMA communication system | |
| JPH09512691A (en) | Method and receiver for demodulating received signal | |
| AU7920698A (en) | Reception method and receiver | |
| US20020159549A1 (en) | Interference signal canceling apparatus and interference signal canceling method | |
| US6760315B1 (en) | Interference cancellation in radio stations | |
| JP2991236B1 (en) | Error estimation apparatus for direct-sequence reception data and direct-sequence reception apparatus | |
| US7577182B2 (en) | Transmitter apparatus, receiver apparatus, transmission method, reception method and program | |
| JP3676001B2 (en) | Interference canceller | |
| GB2369018A (en) | Control channel interference cancellation for a CDMA receiver |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| EEER | Examination request | ||
| MKLA | Lapsed | ||
| MKLA | Lapsed |
Effective date: 20001026 |