1. Field of the Invention
The present invention relates to a digital filter, and particularly, to a matched filer as a constituent element of a mobile communication terminal.
2. Description of the Related Art
CDMA (Code Division Multiple Access) is a data transmission technique widely used in mobile communication between cellular phones in wireless communication systems.
In CDMA, synchronization acquisition provides a self-searching function enabling a mobile station to search a closest base station and to register the position of the base station, and a path-searching function enabling the mobile station to search a pilot signal from a base station nearby and to constantly monitor the intensity and an offset of the pilot signal. Generally, a matched filter is used in a searching circuit providing these functions.
In the mobile station, first, a signal received by an antenna is multiplied with a carrier signal and a signal obtained by shifting a phase of the carrier signal by 90 degrees. Next, the signals obtained by this multiplication are filtered, obtaining a signal having the same phase as the phase of the base band (PN code frequency region), and a signal having a phase orthogonal to the phase of the base band. Below, the former signal is referred to as “in-phase signal”, and the latter is referred to as “Q-phase signal”, where Q stands for “quadrature”. The above demodulation processing is referred to as “first-order demodulation” below where necessary. The received signal is referred to “received data” below where appropriate.
Next, the thus obtained in-phase signal and Q-phase signal are multiplied, chip by chip, with the spreading codes of the in-phase signal and the Q-phase signal generated in the mobile station, respectively. The products are summed, giving a correlation value. A number of thus obtained correlation values are raised to the second power and then summed, giving correlation power of the received signal.
In the matched filter shown in
Specifically, in the matched filer in
Japanese Laid-Open Patent Application No. 2003-158475 discloses an invention related to this technique.
In the matched filter used in synchronization acquisition of the related art, the received in-phase signal and the Q-phase signal are multiplied with their respective spreading codes, separately, and then the products are summed. For example, assume that the spreading factor is 256, and one bit is used for correlation acquisition, that is, the register is used for correlation acquisition. In this case, in one chip before the next received signal is input to the register, that is, in a period of 1/256 of one bit, for both the in-phase signal and the Q-phase signal, 256 chips of the received signal stored in the register should be multiplied in parallel with 256 chips of the spreading codes, respectively, for 256 times, and then all of the 256 products should be summed.
The matched filter shown in
The matched filter in
In addition, in the matched filter of the related art as illustrated in
As a result, depending on the requirement on the circuit, a finite-length impulse response digital filter having 500 to 1000 stages may be necessary. For example, if the matched filter in
It is a general object of the present invention to solve one or more of the problems of the related art.
It is a more specific object of the present invention to provide a matched filter able to reduce a size of a circuit.
According to a first aspect of the present invention, there is provided a matched filter device including a data shift unit that has a number of taps equaling a divisor of a spreading factor and shifts a received data in units of bits at a data rate of the received data; a code storage unit that sequentially stores divided spreading codes, which are obtained by dividing a spreading code by the number of the taps, at a calculation rate higher than the data rate; and a calculation unit that calculates products of the received data stored in the data shift unit and the divided spreading codes stored in the code storage unit, and sums the products.
As an embodiment, the code storage unit stores the divided spreading codes sequentially based on a phase of the calculation of the sum of the products.
As an embodiment, the matched filter device may further include a code generation unit that successively and simultaneously generates spreading codes corresponding to different symbols as the divided spreading codes in one cycle of the data rate. The code generation unit may include a first code generator that successively generates spreading codes corresponding to a first symbol as the divided spreading codes in one cycle of the data rate, and a second code generator that successively generates spreading codes corresponding to a second symbol as the divided spreading codes in one cycle of the data rate. The code generation unit may further include a selection outputting unit that selectively outputs the divided spreading codes based on a phase of the calculation of the sum of the products.
As an embodiment, the matched filter device may further include an accumulation storage unit that accumulates correlation values corresponding to processing sequences having the same phase of the calculation.
As a second aspect of the present invention, there is provided a mobile communication terminal including a matched filter device. The matched filter device includes a data shift unit that has a number of taps equaling a divisor of a spreading factor and shifts a received data in units of bits at a data rate of the received data; a code storage unit that sequentially stores divided spreading codes, which are obtained by dividing a spreading code by the number of the taps, at a calculation rate higher than the data rate; and a calculation unit that calculates products of the received data stored in the data shift unit with the divided spreading codes stored in the code storage unit, and sums the products.
According to a third aspect of the present invention, there is provided a spreading code generation device including a code generation unit that successively and simultaneously generates spreading codes corresponding to different symbols as divided spreading codes in one cycle of a data rate; and a selection outputting unit that selectively outputs the divided spreading codes.
As an embodiment, the code generation unit successively and simultaneously generates the spreading codes divided by a divisor of a spreading factor as the divided spreading codes. The selection outputting unit selectively outputs the divided spreading codes based on a phase of a calculation of the sum of products of a received data with the divided spreading codes.
According to a fourth aspect of the present invention, there is provided a mobile communication terminal including a spreading code generation device. The spreading code generation device include a code generation unit that successively and simultaneously generates spreading codes corresponding to different symbols as divided spreading codes in one cycle of a data rate; and a selection outputting unit that selectively outputs the divided spreading codes.
These and other objects, features, and advantages of the present invention will become more apparent from the following detailed description of the preferred embodiments given with reference to the accompanying drawings.
Below, preferred embodiments of the present invention are explained with reference to the accompanying drawings.
As illustrated in
The matched filer of the present invention is characterized by utilizing a difference between a data rate, at which received data are bit-shifted in the shift register 11, and a calculation rate, at which calculations of the sum of products of the received data and spreading codes are performed in the multiplier 15 and the accumulator 17.
In particularly, in order to take full advantage of this difference between the data rate and the calculation rate, both the shift register 11 and the spreading code storage unit 13 have a 16-tap register. In the present invention, functions of a 256-tap matched filter in the related art are provided by the 16-tap matched filter.
The shift register 11, for example, stores the in-phase signal and the Q-phase signal (below, simply referred to as “received signal”) obtained by the aforesaid first-order demodulation in the mobile station, and shifts the received data in units of bits at a data rate of the received data. For example, in the present embodiment, the received data is shifted in units of bits at a data rate of 3.84 MHz.
As described above, the matched filter of the present invention is used with the spreading factor equaling 256 chips. The shift register 11 has sixteen flip-flop circuits 11-0 through 11-15. The sixteen flip-flop circuits 11-0 through 11-15 are equivalent to sixteen taps, which is the square root of the spreading factor 256. In the shift register 11, the 16-bit received data is shifted in order.
The spreading code generator 19 generates spreading codes of the in-phase signal and the Q-phase signal, which are used in correlation calculations. In the present embodiment, the spreading code generator 19 generates the spreading codes of the in-phase signal and the Q-phase signal, respectively, while being controlled by a high-frequency clock signal generated in an external unit (not-illustrated). The calculation rate of the correlation calculation, which is given by the high-frequency clock signal, is approximately 61 MHz, roughly sixteen times of the data rate (3.84 MHz) of the received data mentioned above.
The thus generated spreading codes are parts of a spreading code including totally 256 chips, each part having sixteen chips. Below, such a part of the spreading code is referred to as a “divided spreading code”.
In the present embodiment, the spreading code generator 19 has two code generators 19-1, 19-2 (refer to
Based on specified generation rules, the spreading code generator 19 selectively outputs the divided spreading codes successively generated in the code generators 19-1 and 19-2. In the present embodiment, because of the selective output operation, the divided spreading codes are output to the spreading code storage unit 13 for ten times in one cycle of the data rate of 3.84 MHz.
As described below, the specified generation rules define the intrinsic and regularly assigned divided spreading codes, and the regular sequence of generating the divided spreading codes of 16-bit received data, which is the multiplicand in the multiplication carried out in the multiplier 15.
The spreading code storage unit 13 sequentially stores the divided spreading codes of the in-phase signal and the Q-phase signal generated in the spreading code generator 19. In the present embodiment, the spreading code storage unit 13 operates at the calculation rate of 61 MHz, the same as the spreading code generator 19.
The same as the shift register 11, the spreading code storage unit 13 has sixteen flip-flop circuits 13-0 through 13-15. Thus, in the spreading code storage unit 13, a divided spreading code having sixteen chips is replaced in each clock pulse of the calculation rate at 61 MHz.
The multiplier 15 multiplies the 16-bit received data stored in the shift register 11 with the 16-bit divided spreading code stored in the spreading code storage unit 13. Specifically, the multiplier 15 multiplies the received data of the in-phase signal and the Q-phase signal with their divided spreading codes. Same as the spreading code generator 19, the multiplier 15 also operates at the calculation rate of 61 MHz.
In the present embodiment, the multiplier 15 has sixteen multiplication circuits 15-0 through 15-15, which is equal to the numbers of the flip-flop circuits in the shift register 11 and the spreading code storage unit 13. Thus, in each clock of the calculation rate of 61 MHz, the multiplication operation is performed for sixteen times, equivalent to the sixteen taps. Further, the multiplication operation is carried out in ten cycles out of the sixteen cycles of the calculation rate of 61 MHz, as described below with reference to
Next, after one cycle of the data rate of 3.84 MHz, that is, after the received data stored in the shift register 11 are shifted by one bit, the multiplier 15 multiplies newly held received data with divided spreading codes sequentially stored in the spreading code storage unit 13 corresponding to the newly held received data.
The accumulator 17 sums the products from the multiplier 15. The accumulator 17 has two sub-accumulators 17-1 and 17-2 for summing products of the in-phase signal and the products of the Q-phase signal, respectively.
Same as the multiplier 15, the accumulator 17 operates at the calculation rate of 61 MHz. For this reason, the accumulator 17 sums sixteen products, which are results of multiplication operations executed in one clock of the calculation rate of 61 MHz, and outputs the sum as a correlation value.
The accumulation and storage unit 21 accumulates the correlation value from the accumulator 17 on a correlation value, which is already stored in the accumulation and storage unit 21 and has the same calculation phase as the newly obtained correlation value. Then the accumulation and storage unit 21 stores the result of the accumulation operation.
Same as the spreading code generator 19, the accumulation and storage unit 21 operates at the calculation rate of 61 MHz. For this reason, the accumulation and storage unit 21 accumulates the correlation value from the accumulator 17 in one clock of the calculation rate of 61 MHz. Further, corresponding to a preceding multiplication operation, this multiplication operation is performed ten times in each cycle of the data rate of 3.84 MHz (refer to
The aforesaid calculation phase is a quantity for identifying a processing sequence of the correlation calculation, as described below with reference to
In the present embodiment, the accumulation and storage unit 21 includes an accumulator 21-1 and an accumulator 21-2, flip-flop circuits (FF) 21-3 and 21-4, and a RAM (Randomly Accessed Memory) 21-5. A single correlation value from the accumulator 17 is associated with an address in the RAM 21-5 in advance in a regular way based on the preceding calculation phase (as illustrated in
The correlation value from the accumulator 17 is temporarily stored in the flip-flop circuit (FF) 21-3 until the time of reading the RAM 21-5. In the accumulators 21-1 and 21-2, the stored correlation value and a correlation value read out from the RAM 21-5 are summed. The resulting sum is stored at the address the RAM 21-5 read just now. The correlation value stored in the RAM 21-5 is output after the correlation value is stored in the flip-flop circuit (FF) 21-4 for a while. Specifically, the in-phase component and the Q-phase component of the correlation value are output separately.
Below, an explanation is given to the operations of the matched filter of the present embodiment.
First, while holding the received data, the shift register 11 shifts the received data at the data rate of 3.84 MHz.
Below, states of the received data held by the shift register 11 are explained.
In
As illustrated in
In the present embodiment, for any basic received data among the basic received data “0-15” through “240-255”, a state in which the first chip is stored in the shift register 11 for the first time is defined to be a state of the basic received data having a phase of 0/16. Therefore,
In
In
Further, in
It should be noted that although the phase is defined above for each basic received data including sixteen chips, the phase can also be defined for the received data including 256 chips. For example, an offset of a chip of the received data relative to the first chip of the received data can be defined to be a chip phase of the chip. In detail, for example, if the phase of the first chip is defined to be zero, the chip phase of the chip “48” of the received data shown in
As illustrated in
The code generator 19-1 includes a frame header register 29 for storing a value of a header of a frame, a selector 31, a symbol initial value register 33 for storing a symbol initial value, a selector 35, a first code generation register 37 for generating a spreading code, a logic part 39 that changes the value held in the first code generation register 37 by moving forward by sixteen chips.
Similarly, the code generator 19-1 includes a symbol initial value register 41 for storing a symbol initial value, a selector 43, a second code generation register 45 for generating a spreading code, a logic part 47 that changes the value held in the second code generation register 45 by moving forward by sixteen chips.
Below, prior to explanation of timing of operations of the spreading code generator 19, an explanation is given of the relation between the received data and the divided spreading code in the matched filter with reference to
Data diagrams in
At the tops of
In
For simplicity of description, when the first sixteen chips of a spreading code are involved in correlation calculation with the received data, the number of the phase of the correlation calculation (below, simply abbreviated to be “phase number”, or “calculation phase” where necessary) is represented by the chip phase of the first chip of the received data. For example, in
That is to say, the calculation phase 48 identifies a processing sequence starting from the state of the basic received data “48-63” having the phase of 0/16, that is, an operation of time-division sum-of-product calculation involving in the divided spreading code “A240-255”, as indicated by the arrow 25-1.
As mentioned above, this processing sequence is equivalent to 256 multiplication operations executed simultaneously in the period of shifting the received data by one bit in the 256-chip matched filter in the related art.
As described with reference to
In
Returning to
Similarly, in the spreading code sections related to the symbol B, divided spreading codes related to both the symbol A and symbol B are generated in the same time period. In these sections, the symbol B is the present symbol, and the symbol A is the preceding symbol. In addition, in these sections, for example, the divided spreading codes related to the symbol B are newly generated in the code generator 19-1, and the divided spreading codes related to the symbol A are generated in the code generator 19-2.
In this way, the code generator 19-1 and the code generator 19-2 are arranged in correspondence with the divided spreading codes related to the present symbol, and the divided spreading codes related to the preceding symbol, respectively.
In
As illustrated in
Further, the divided spreading codes enclosed by thick frames are selected by the selector 49 and output as the output signal of the spreading code generator 19.
As a result, in each of the phase states from 0/16 to 15/16 of certain basic received data, the same divided spreading codes are output at predetermined timing in one cycle of the data rate of 3.84 MHz.
The form of the data diagrams in
Similarly, the divided spreading codes are generated from the first sixteen chips “Z240-255” in one cycle of the data rate of 3.84 MHz at the calculation rate of 61 MHz, and this generation operation is repeated successively for sixteen times in ascending order. Further, the divided spreading codes enclosed by thick frames are selected by the selector 49 and output as the output signal of the spreading code generator 19. As a result, in each of the phase states from 0/16 to 15/16 of certain basic received data, the same divided spreading codes are output at predetermined timing in one cycle of the data rate of 3.84 MHz.
Below, with reference to
In
The value of the frame header stored in the frame header register 29 is the value of the beginning of a spreading code, and is loaded in the symbol initial value register 33 and the symbol initial value register 41 via the selector 31 when one frame of the scramble code comes to the end.
In
At this moment, an initial value “A240-255” of a spreading code related to the symbol A is stored in the symbol initial value register 33 of the code generator 19-1 shown in
In response to the first pulse of the clock signal at the calculation rate of 61 MHz, the initial value “A240-255” stored in the first code generation register 37 is input to the selector 49. At the same time, this initial value is shifted forward by sixteen chips in the logic part 39, and converted to the next divided spreading code “A224-239”. The next divided spreading code “A224-239” is stored in the first code generation register 37.
Similarly, in response to the first pulse of the clock signal at the calculation rate of 61 MHz, the initial value “Z240-255” stored in the second code generation register 45 is input to the selector 49. At the same time, this initial value is shifted forward by sixteen chips in the logic part 47, converted to the next divided spreading code “Z224-239”, and stored in the second code generation register 45.
The selector 49 selectively outputs the divided spreading codes based on the aforesaid generation rules. The generation rule is explained in detail below.
The generation rule may have four aspects.
As the first aspect, generation positions of all divided spreading codes of the spreading code related to the present symbol A (that is, the selective output positions), are fixed in one cycle of the data rate of 3.84 MHz. Furthermore, for example, the first sixteen chips “A240-255” of the spreading code related to the present symbol A are generated at the rise time of the first clock pulse of the clock signal at the calculation rate of 61 MHz, and the last sixteen chips “A0-15” of the spreading code are generated at the rise time of the 16th clock pulse, as illustrated in
As the second aspect, generation positions of all the divided spreading codes of the spreading code related to the preceding symbol Z (that is, the selective output positions) are fixed in one cycle of the data rate of 3.84 MHz. Furthermore, for example, the first sixteen chips “Z240-255” of the spreading code related to the preceding symbol Z are generated at the rise time of the first clock pulse of the clock signal at the calculation rate of 61 MHz, and the last sixteen chips “Z0-15” of the spreading code are generated at the rise time of the 16th clock pulse, as illustrated in
In the selective output operation according to the first and the second aspects, when initial values are input to the code generators 19-1 and 19-2, the spreading codes having 256 chips are generated simultaneously and successively in one cycle of the data rate of 3.84 MHz. Since the divided spreading codes are selectively output in units of sixteen chips in one cycle of the data rate of 3.84 MHz, a cue function is not necessary any more, and the size of the circuit can be reduced.
The third aspect of the generation rule is based on the calculation phase shown in
The fourth aspect of the generation rule is based on setting of a phase range in which calculations are to be carried out (below, simply referred to as “object phase range”). In the present embodiment, the divided spreading codes are selected and output in ten cycles out of sixteen cycles of the calculation rate of 61 MHz.
Based on the above generation rules, in a period when the count of the basic received data equals 0, that is, in the period from the phase state 0/16 to the phase state 15/16 of the basic received data “48-63” (as illustrated in
Specifically, at appropriate timing related to the generation position of each divided spreading code, the selector 49 outputs the first sixteen chips of the spreading code related to the symbol A, and outputs the last 16*9 chips of the spreading code related to the symbol Z. Hence, in response to the first pulse of the clock signal, the selector 49 outputs the divided spreading code “A240-255”.
Next, in response to the second pulse of the clock signal at the calculation rate of 61 MHz, the divided spreading code “A224-239” stored in the first code generation register 37 is input to the selector 49. At the same time, the divided spreading code “A224-239” is converted to the next divided spreading code “A208-223” in the logic part 39, and is stored in the first code generation register 37.
Similarly, in response to the second pulse of the clock signal at the calculation rate of 61 MHz, the divided spreading code “Z224-239” stored in the second code generation register 45 is input to the selector 49. At the same time, the divided spreading code “Z224-239” is converted to the next divided spreading code “Z208-223” in the logic part 47, and is stored in the second code generation register 45. In this case, the selector 49 does not output divided spreading codes.
As illustrated in
That is to say, as illustrated in
In addition, in the present embodiment, as illustrated in
Next, in response to the eighth pulse of the clock signal at the calculation rate of 61 MHz, the divided spreading code “A128-143” stored in the first code generation register 37 is input to the selector 49. At the same time, the divided spreading code “A128-143” is converted to the next divided spreading code “A112-127” in the logic part 39, and is stored in the first code generation register 37.
Similarly, in response to the eighth pulse of the clock signal at the calculation rate of 61 MHz, the divided spreading code “Z128-143” stored in the second code generation register 45 is input to the selector 49. At the same time, the divided spreading code “Z128-143” is converted to the next divided spreading code “Z112-127” in the logic part 47, and is stored in the second code generation register 45.
Based on the setting of the object phase range, the selector 49 selects and outputs the divided spreading code “Z128-143”. The above operations are repeated over the subsequent divided spreading codes “A112-127” through “A0-151, and the divided spreading codes “Z112-127” through “Z0-15”. Hence, the selector 49 then outputs the divided spreading codes “Z112-127” through “Z0-15” related to the symbol Z.
The above descriptions with reference to
Next, an explanation is given of the state of the phase 0/16 with the count equaling 1 as illustrated in
Referring to
In response to the first pulse of the clock signal at the calculation rate of 61 MHz, the initial value “A240-255” stored in the first code generation register 37 is input to the selector 49. At the same time, this initial.value is converted to the next divided spreading code “A224-239” in the logic part 39, and stored in the first code generation register 37.
Similarly, in response to the first pulse of the clock signal at the calculation rate of 61 MHz, the initial value “Z240-255” stored in the second code generation register 45 is input to the selector 49. At the same time, this initial value is converted to the next divided spreading code “Z224-239” in the logic part 47, and is stored in the second code generation register 45.
In the period when the count of the basic received data equals 1, that is, in the period from the phase state 0/16 to the phase state 15/16 of the basic received data “64-79” (as illustrated in
Specifically, the selector 49 outputs the first 16*2 chips from the beginning of the spreading code related to the symbol A, and outputs the last 16*8 chips of the spreading code related to the symbol Z. Hence, in response to the first pulse, the selector 49 outputs the divided spreading code “A240-255”.
Next, in response to the second pulse of the clock signal at the calculation rate of 61 MHz, the divided spreading code “A224-239” stored in the first code generation register 37 is input to the selector 49. At the same time, the divided spreading code “A224-239” is converted to the next divided spreading code “A208-223” in the logic part 39, and is stored in the first code generation register 37.
Similarly, in response to the second pulse of the clock signal at the calculation rate of 61 MHz, the divided spreading code “Z224-239” stored in the second code generation register 45 is input to the selector 49. At the same time, the divided spreading code “Z224-239” is converted to the next divided spreading code “Z208-223” in the logic part 47, and is stored in the second code generation register 45. In this case, the selector 49 outputs the divided spreading code “A224-239”.
Next, in response to the third pulse of the clock signal at the calculation rate of 61 MHz, the divided spreading code “A208-223” stored in the first code generation register 37 is input to the selector 49. At the same time, the divided spreading code “A208-223” is converted to the next divided spreading code “A192-239” in the logic part 39, and is stored in the first code generation register 37.
Similarly, in response to the third pulse of the clock signal at the calculation rate of 61 MHz, the divided spreading code “Z208-223” stored in the second code generation register 45 is input to the selector 49. At the same time, the divided spreading code “Z208-223” is converted to the next divided spreading code “Z192-239” in the logic part 47, and is stored in the second code generation register 45. In this case, the selector 49 does not output any divided spreading code.
As illustrated in
In addition, in the present embodiment, the object phase range is set to be a section of 160 chips of the received data. Therefore, during the period when the count of the basic received data equals 1, the selector 49 outputs the last 16*8 chips of the spreading codes related to the symbol Z as the divided spreading codes.
Next, in response to the ninth pulse of the clock signal at the calculation rate of 61 MHz, the divided spreading code “A112-127” stored in the first code generation register 37 is input to the selector 49. At the same time, the divided spreading code “A112-127” is converted to the next divided spreading code “A96-111” in the logic part 39, and is stored in the first code generation register 37.
Similarly, in response to the eighth pulse of the clock signal at the calculation rate of 61 MHz, the divided spreading code “Z112-127” stored in the second code generation register 45 is input to the selector 49. At the same time, the divided spreading code “Z112-127” is converted to the next divided spreading code “Z96-111” in the logic part 47, and is stored in the second code generation register 45.
Based on the setting of the object phase range, the selector 49 selects and outputs the divided spreading code “Z112-127”. The above operations are repeated over the subsequent divided spreading codes “A96-111” through “A0-15, and the divided spreading codes “Z96-111” through “Z0-15”. Hence, the selector 49 then outputs the divided spreading codes “Z96-111” through “Z0-15” related to the symbol Z.
Same as the case in which the count of the basic received data is 0, the spreading code generator 19 further performs the same operation for 15 times up to the state of the phase 15/16. Referring to
As described above, among sixteen cycles of the calculation rate of 61 MHz, six cycles do not contribute to the calculation of the sum of products. The range of the six cycles is shifted by sixteen chips to the right relative to the case in which the count of the basic received data equals 0. This shift occurs once in every sixteen cycles of the data rate of 3.84 MHz. In other words, this shift occurs each time the basic received data is shifted by sixteen bits to the next basic received data.
Therefore, based on variation of the shift, when the count of the basic received data equals 2, the selector 49 successively outputs the first 16*3 chips as the divided spreading codes from the beginning of the spreading codes related to the present symbol A, and successively outputs the last 16*7 chips of the spreading codes related to the preceding symbol Z as the divided spreading codes.
Further, when the count of the basic received data equals 15, the selector 49 successively outputs the first 16*16 chips as the divided spreading codes from the beginning of the spreading codes related to the present symbol A, that is, the spreading code as a whole is successively output as the divided spreading codes, and the selector 49 does not outputs any spreading codes related to the preceding symbol Z.
Next, an explanation is given of an additional feature in operations of the spreading code generator 19.
In the spreading code generator 19, the symbol A transits from a state as a present symbol to a state as a preceding symbol. As described above, in the present embodiment, the object phase range is set to be a section of 160 chips of the received data. As illustrated in
Then, the divided spreading codes “A224-239”, “A208-223”, . . . , “A144-159” of the symbol A, which are related to processing sequences having a calculation phase of 192, become the codes to be first output in one cycle of the data rate of 3.84 MHz.
Referring to
In parallel to the processing sequences related to the symbol A, the processing sequences related to the symbol B, which may have calculation phases of 48, 64 or other values, are started. At this moment, the symbol A is no longer the “present symbol”, but the “preceding symbol”, and this process is referred to as “state transition of the symbol A”. Due to this transition, the divided spreading codes related to the symbol A are generated from the code generator 19-2 from then on. In addition, generation of the divided spreading codes related to the symbol Z is stopped when the processing sequences related to the symbol A having a calculation phase of 192 are started.
Referring to
Then, the routine transfers to generation of the divided spreading codes related to the next symbol.
Referring to
In the present embodiment, for example, the timing of the above transition is set to be the time when the state of the basic received data “32-47” having the phase 15/16 is terminated. The state of the basic received data “32-47” having the phase 15/16 is indicated in spreading code sections related to the symbol B in
In other words, the timing of the above transition is set to be the time immediately before the processing sequence in which the last sixteen chips “A0-15” of the spreading code related to the present symbol A are output for the second time from the spreading code generator 19 relative to the basic received data.
Referring to
In this case, an initial value “A240-255” stored in the symbol initial value register 33 of the code generator 19-1 shown in
In response to the first pulse of the clock signal at the calculation rate of 61 MHz, the initial value “B240-255” stored in the first code generation register 37 is input to the selector 49. At the same time, this initial value is converted to the next divided spreading code “B224-239” in the logic part 39, and is stored in the first code generation register 37.
Similarly, in response to the first pulse of the clock signal at the calculation rate of 61 MHz, the initial value “A240-255” stored in the second code generation register 45 is input to the selector 49. At the same time, this initial value is converted to the next divided spreading code “A224-239” in the logic part 47, and stored in the second code generation register 45.
In the period when the count of the basic received data equals 16, that is, in the period from the phase state 0/16 to the phase state 15/16 of the basic received data “48-63” (as illustrated in
Specifically, the selector 49 outputs the first sixteen chips from the beginning of the spreading codes related to the symbol B, and outputs the last 16*9 chips of the spreading codes related to the symbol A. Hence, in response to the first pulse, the selector 49 outputs the divided spreading code “B240-255”.
The above description is related to the state of the phase 0/16 with the count of the basic received data being 16. The spreading code generator 19 repeats the same operation in the 0/16 phase state for 15 times over phase states up to 15/16.
The subsequent operations are the same as those described for the present symbol A and the preceding symbol Z with reference to
Specifically, along with increment of the count of the basic received data, the spreading code related to the present symbol B increases in units of sixteen chips, and the spreading code related to the preceding symbol A decreases in units of sixteen chips. As a result, as exemplified in
In the above, with reference to
As described above,
In the present embodiment, the spreading code including 256 chips is divided into sixteen divided spreading codes, and the divided spreading codes are sequentially stored in registers having sixteen taps for correlation calculations. For this reason, in comparison with the matched filter having 256 taps in the related art (refer to
As described above, however, in the present embodiment, the object phase range, that is, the phase range in which calculations are to be carried out, is set to be a section of 160 chips of the received data totally including 256 chips. For example, in
Further, in the present embodiment, in order to maintain reliability of the correlation values and reduce the number of operations, the starting timing of the correlation calculations is set to be at the chip phase “48” (refer to
The matched filter of the present embodiment, for example, for example, is intended to provide a path-searching function. By performing operations, based on the setting of the object phase range, in sections centered at a section expected to contribute to the reliability of the correlation values, it is possible to maintain reliability at substantially the same level with of the correlation calculations in sections of the total 256 chips, and to reduce the number of the divided spreading codes generated in one cycle of the data rate of 3.84 MHz. Consequently, it is possible to reduce the number of the calculation of the sum of products, and further reduce power consumption.
Next, the multiplier 15 multiplies the received data stored in the shift register 11 with the divided spreading codes stored in the spreading code storage unit 13 in one cycle of the calculation rate of 61 MHz. The accumulator 17 sums the sixteen products from the multiplier 15 and outputs a correlation value.
Below, the timing of the calculation of the sum of products is explained with reference to
The operations shown in
The operation in
At the top of
Below the arrow, a clock waveform of the calculation rate of 61 MHz is presented in
Below the clock waveform, the received data “47-82” stored in the shift register 11 are presented in
Further, at the bottom of
As described above, in the present embodiment, the object phase range is set to be a section of 160 chips of the received data. Therefore, ten cycles out of sixteen cycles of the calculation rate of 61 MHz are used for holding timing.
Based on the aforesaid generation rules, in response to the first pulse of the clock signal at the calculation rate of 61 MHz, the divided spreading code “A240-255” related to the present symbol A is stored, and in response to the ninth and the subsequent pulses of the clock signal, the divided spreading code “Z128-143” through “Z0-15” related to the preceding symbol A are sequentially stored.
The calculation of the sum of products in the multiplier 15 and the accumulator 17, as illustrated at the bottom of
The operation in
In
The operation in
Therefore, in response to the first and second pulses of the clock signal at the calculation rate of 61 MHz, the divided spreading codes “A240-255” and “A224-239” related to the present symbol A are stored sequentially. Next, and in response to the ninth and the subsequent pulses of the clock signal, the divided spreading code “Z112-127” through “Z0-15” related to the symbol Z are sequentially stored.
Next, the calculation of the sum of products in the multiplier 15 and the accumulator 17, as illustrated at the bottom of
Comparing
Further, the same address “16” is assigned to the correlation values obtained by the processing sequences of the same calculation phase “64”, as indicated by the arrow 25-2 in
The operations in
Although not illustrated in
In this way, addresses are assigned at intervals of sixteen to the processing sequences of the calculation phases at which the basic received data start. Addresses between these starting addresses are assigned to the processing sequences of the calculation phases corresponding to the state of the basic received data having the phases from 0/16 to 14/16. Therefore, in the operations of reading the RAM 21-5 of the accumulation and storage unit 21, and the accumulation operation in the accumulators 21-1 and 21-2, the correlation values obtained by the processing sequences of the same calculation phase are read out and accumulated sequentially.
As described above, the divided spreading codes are generated in accordance with specified generation rules. By utilizing these rules, it is possible to know the timing of the accumulation. For example, referring to
The timing of reading out and accumulating the initially stored correlation value from the RAM 21-5 is substantially at the timing of the second clock pulse of the calculation rate of 61 MHz and after elapse of sixteen cycles of the data rate of 3.84 MHz, that is, the timing of obtaining the correlation value between the divided spreading code “A224-239” and the basic received data “64-79”. The timing of reading out and accumulation of the accumulated correlation value from the RAM 21-5 is substantially at the timing of the third clock pulse of the calculation rate of 61 MHz and after elapse of sixteen cycles of the data rate of 3.84 MHz,
Below, a description is given of examples of the accumulation operation in one cycle of the data rate of the received data at 3.84 MHz. Specifically, accumulation in the state of the 15/16 phase of the basic received data “48-63”, as indicated by the arrow 23, is described with reference to
First, the basic received data “48-63” (refer to
Next, the basic received data “48-63” and the divided spreading code “Z128-143” are multiplied and the products are summed (this corresponds to the processing of the calculation phase of 192 related to the symbol Z), and the calculation result is accumulated on a correlation value already stored at address “144”, and the accumulation result is stored at address “144”. The stored value at the address “144” is read out from the RAM 21-5 in response to the second clock pulse of the calculation rate of 61 MHz after sixteen cycles of the data rate of 3.84 MHz elapse from the time of the accumulation.
Finally, the basic received data “48-63” and the divided spreading code “Z0-15” are multiplied and the products are summed (this corresponds to the processing of the calculation phase of 64 related to the symbol Z), and the calculation result is accumulated on a correlation value already stored at address “16”, and the accumulation result is stored at address “16”. The stored value at the address “16” is read out from the RAM 21-5 in response to the 10th clock pulse of the calculation rate of 61 MHz after sixteen cycles of the data rate of 3.84 MHz elapse from the time of the accumulation.
The above accumulation operation is executed in one cycle of the data rate of the received data at 3.84 MHz.
Next, in the state of the basic received data “64-79” of the phase 0/16, a code group formed from divided spreading codes is updated, and the same sum-of-product calculation corresponding to the results of the sum-of-product calculation are carried out.
In the present embodiment, the object phase range is set to be a section of 160 chips of the received data. Due to this setting, it is possible to reduce the word number of the RAM 21-5 by 160 words.
Summarizing the present invention, the matched filer of the present invention includes the shift register 11, the spreading code storage unit 13, the multiplier 15, the accumulator 17, the spreading code generator 19, and the accumulation and storage unit 21.
The shift register 11 has a number of sixteen taps, which is equal to the square root of the spreading factor 256. The shift register 11 holds and shifts the received data in units of bits (refer to
The spreading code generator 19 generates the spreading codes divided by the number of taps at the calculation rate that is roughly sixteen times higher than the data rate of the received data of 3.84 MHz (refer to
The spreading code storage unit 13 stores the divided spreading codes generated in the spreading code generator 19 in order at the calculation rate (refer to
The multiplier 15 multiplies the received data stored in the shift register 11 with the divided spreading codes stored in the spreading code storage unit 13 at the calculation rate. The accumulator 17 sums the products from the multiplier 15 at the calculation rate (refer to
The accumulation and storage unit 21 accumulates correlation values related to processing sequences of the same calculation phase, and stores the accumulation result (refer to
The spreading code generator 19 has two code generators 19-1, 19-2. The code generator 19-1 generates spreading codes corresponding to a first symbol as divided spreading codes successively, and the code generator 19-2 generates spreading codes corresponding to a second symbol as divided spreading codes successively. The spreading code generator 19 further has the selector 49 that selects and outputs the divided spreading codes based on the phase of the calculation of the sum of products (refer to
While the invention is described above with reference to specific embodiments chosen for purpose of illustration, it should be apparent that the invention is not limited to these embodiments, but numerous modifications could be made thereto by those skilled in the art without departing from the basic concept and scope of the invention.
For example, in the above embodiments, the spreading factor is 256, the matched filer includes the shift register 11 having a number of taps equal to the square root of the spreading factor and the spreading code storage unit 13. But the present invention is not limited to this configuration, for example, the matched filer may include a shift register having a number of taps equal to a divisor of the spreading factor and the spreading code storage unit 13.
In the above embodiments, use is made of a calculation rate that is roughly sixteen times higher than the data rate of the received data. Generally, if the spreading factor is denoted to be L (chip number), a divisor of the spreading factor is denoted to be M (tap number), and the multiple of the calculation rate in use is denoted to be N, the expression L=M*N substantially holds.
However, by setting the object phase range, that is, the phase range in which calculations are to be carried out, for the purpose of further reducing the circuit size and power consumption, the constraint applied by the above expression can be moderated. For this reason, in the present invention, it is possible to use a calculation rate higher than the data rate of the received data.
In the above embodiments, in order to further reduce the number of correlation calculations, the object phase range is set. The present invention is not limited to this, and it can be realized even without this setting. In this case, the number of the processing sequences of the calculation phases shown in
In the above embodiments, in order to reduce the number of correlation calculations, in one cycle of the data rate of the received data at 3.84 MHz, and in a period of six cycles of the calculation rate of 61 MHz, divided spreading codes are not output from the spreading code generator 19. The present invention is not limited to this. For example, the six cycles can be re-grouped as desired. In both cases, it is preferable that the accumulation operation, which makes use of regularity of address allocation and the accumulation operation, be carried out in the accumulation and storage unit 21.
In the above embodiments, in order to make the series of operations involved in the present invention clear, the spreading code generator 19 is described as a component of the matched filter of the present invention. But the present invention is not limited to this configuration. For example, the, spreading code storage unit 13 of the matched filter of the present invention may be configured to store the divided spreading codes sequentially based on the calculation phase. Hence, the spreading code generator 19 may be separately realized to be an independent element.
In the above embodiments, the descriptions are made by focusing on configurations of the matched filer. The matched filter of the present invention, or the spreading code generator 19, which can be separately achieved, may be realized to provide the cell-searching function or the path-searching function. Hence, the matched filter of the present invention, or the spreading code generator 19, may be provided in mobile communication terminals such as cellular phones and PDA (Personal Digital Assistants).
In the above embodiments, the descriptions are made of the correlation calculations assuming data are received from one base station. But the present invention is not limited to this case. The present application is applicable to correlation calculations even when receiving data from a plurality of base stations.
For example, a matched filter system used for two base stations can be realized by using an operation rate two times the above-mentioned operation rate of 61 MHz, that is, 122 MHz.
In this case, referring to
It is possible to realize a matched filter system able to be used by two base stations by just changing the operation rate.
In the above embodiments, it is described that sampling is performed once in each chip of the received data. But the present invention is not limited to this case. The sampling may be performed twice or more in each chip of the received data. For example, in the case of m-fold over sampling, a number of m matched filters of the present invention may be arranged in parallel to execute correlation calculations at timings of bit-shifting the received data in each chip of the received data.
In the above embodiments, the present invention is realized by using hardware so as to prioritize high speed operations. But the present invention is not limited to this configuration. For example, a portion of the present invention, or a portion of the spreading code generator 19 may be realized by software.
According to the present invention, it is possible to provide a matched filter able to reduce a size of a circuit.
This patent application is based on Japanese Priority Patent Application No. 2004-120726 filed on Apr. 15, 2004, the entire contents of which are hereby incorporated by reference.
Number | Date | Country | Kind |
---|---|---|---|
2004-120726 | Apr 2004 | JP | national |