The present invention relates to a Fourier transform device and a Fourier transform method for performing a Fourier transform or an inverse Fourier transform.
The following Patent Literature 1 discloses a Fourier transform circuit for performing Fourier transform on a data string having 2N points, using a fast Fourier transform (FFT) circuit having a lower number of points than an FFT circuit having 2N points.
The Fourier transform circuit disclosed in Patent Literature 1 includes an even and odd number dividing circuit for separating a data string having 2N points into a first data string having N points as an even-numbered point data string and a second data string having N points as an odd-numbered point data string.
The Fourier transform circuit disclosed in Patent Literature 1 also includes an FFT circuit having N points.
The Fourier transform circuit disclosed in Patent Literature 1 sequentially performs a Fourier transform of the first data string and a Fourier transform of the second data string using the FFT circuit having N points.
Patent Literature 1: JP 2003-115813 A
The Fourier transform circuit disclosed in Patent Literature 1 can reduce the circuit scale by about half as compared with a case of using an FFT circuit having N points. However, the Fourier transform circuit disclosed in Patent Literature 1 has a disadvantage that the circuit scale can be reduced to only about half even in a case where a subsequent circuit requires only a part of the Fourier transform result.
The present invention has been made to solve the above-mentioned disadvantage, and an object of the invention is to obtain a Fourier transform device and a Fourier transform method in which the circuit scale can be reduced to even less than about half of the circuit scale of an FFT circuit that performs a K×M-point Fourier transform (“K” is an integer greater than or equal to 3, and “M” is an integer greater than or equal to 2, alternatively, “K” is an integer greater than or equal to 2, and “M” is an integer greater than or equal to 3) in a case where a subsequent circuit requires only a part of a Fourier transform result or a part of an inverse Fourier transform result.
A Fourier transform device according to the present invention in which, among K×M pieces of data (“K” is an integer greater than or equal to 3, and “M” is an integer greater than or equal to 2), ((k−1)M+1)th data (k=1, . . . , K) in order starting from first data is head data in each of K data strings, and the K data strings each contain consecutive M pieces of data in order starting from each head data among the K×M pieces of data, the Fourier transform device includes: an adder to calculate sums of K pieces of data that are m-th data (m=1, . . . , M) in the order starting from each of the head data in the respective M pieces of data contained in the K data strings; and a transformer to perform an M-point Fourier transform on the M sums calculated by the adder or an M-point inverse Fourier transform on the M sums.
According to the present invention, in a case where a subsequent circuit requires only a part of a Fourier transform result or a part of an inverse Fourier transform result, the circuit scale can be reduced to even less than about half of the circuit scale of an FFT circuit that performs a K×M-point Fourier transform.
In order to describe the present invention further in detail, embodiments for carrying out the invention will be described below by referring to the accompanying drawings.
In
The K data strings 1k each contain, as head data, ((k−1)M+1)th data among K×M pieces of data arranged in order starting from first data.
The K data strings 1k each contain, in addition to the respective head data, consecutive (M−1) pieces of data in order starting from each head data among the K×M pieces of data.
Here, “M” is an integer greater than or equal to 2. The K×M pieces of data may be real number data or complex number data.
A specific example of the K data strings 1k is as follows.
A data string 11 contains data D1, data D2, . . . , and Data DM and is input to an adder 2 in the order of data D1, data D2, . . . , and Data DM.
Data string 11={D1, D2, . . . , DM}
A data string 12 contains data DM+1, data DM+2, . . . , and Data D2M and is input to the adder 2 in the order of data DM+1, data DM+2, . . . , and Data D2M.
Data string 12={DM+1, DM+2, . . . , D2M}
A data string 13 contains data D2M+1, data D2M+2, . . . , and Data D3M and is input to the adder 2 in the order of data D2M+1, data D2M+2, . . . , and data D3M.
Data string 13={D2M+1, D2M+2, . . . , D3M}
A data string 1K contains data D(K−1)M+1, data D(K−1)M°2, . . . , and Data DK×M and is input to the adder 2 in the order of data D(K−1)M+1, Data D(K−1)M+2, . . . , and Data DK×M.
Data string 1K={D(K−1)M+1, D(K−1)M+2, . . . , DK×M}
The adder 2 is implemented by, for example, an addition circuit 11 illustrated in
The adder 2 receives input of K pieces of data, each of which is m-th data (m=1, . . . , M) in the order each starting from head data in M pieces of data contained in each of the K data strings 1k.
The adder 2 calculates the sum of the K pieces of data each time input of K pieces of data is received and outputs the calculated sum of K pieces of data to the transformer 3.
The transformer 3 is implemented by, for example, a transform circuit 12 illustrated in
The transformer 3 performs an M-point Fourier transform on each of the sums calculated by the adder 2 or an M-point inverse Fourier transform on each of the sums.
The transformer 3 outputs the result of the M-point Fourier transform or the result of the M-point inverse Fourier transform to the outside as a transform result 4.
The Fourier transform performed by the transformer 3 is not limited to the fast Fourier transform but also includes, for example, the discrete Fourier transform.
Likewise, the inverse Fourier transform performed by the transformer 3 is not limited to the inverse fast Fourier transform but also includes, for example, the inverse discrete Fourier transform.
In
Here, each of the addition circuit 11 and the transform circuit 12 corresponds to, for example, a single circuit, a composite circuit, a programmed processor, a parallel programmed processor, an application specific integrated circuit (ASIC), a field-programmable gate array (FPGA), or a combination thereof.
The components of the Fourier transform device are not limited to those implemented by dedicated hardware, and the Fourier transform device may be implemented by software, firmware, or a combination of software and firmware.
The software or the firmware is stored in a memory of a computer as a program. Here, the computer refers to hardware for executing the program and corresponds to, for example, a central processing unit (CPU), a central processing device, a processing device, an arithmetic device, a microprocessor, a microcomputer, a processor, or a digital signal processor (DSP).
In a case where the Fourier transform device is implemented by software, firmware, or the like, programs for causing a computer to execute the processing procedures performed in the adder 2 and the transformer 3 are stored in a memory 21. Then, a processor 22 of the computer executes the programs stored in the memory 21.
Illustrated in
Next, the operation of the Fourier transform device illustrated in
The K data strings 1K (k=1, . . . , K) are arranged in parallel.
For example, at the timing when data D1 contained in data string 11 is input to the adder 2, data DM+1 contained in data string 12, data D2M+1 contained in data string 13, and data D(K−1)M+1 contained in data string 1K are input to the adder 2.
Likewise, for example, at the timing when data DM contained in data string 11 is input to the adder 2, data D2M contained in data string 12, data D3M contained in data string 13, and data DK×M contained in data string 1K are input to the adder 2.
The adder 2 receives input of K pieces of data, each of which is m-th data (m=1, . . . , M) in the order each starting from head data in M pieces of data contained in each of the K data strings 1k.
The adder 2 calculates the sum Σm (m=1, . . . , M) of K pieces of data which have been input thereto, each time the input of the K pieces of data is received (step ST1 in
Since m=M, the adder 2 calculates the sum Σm of K pieces of data M times and outputs the M sums Σm to the transformer 3.
The specific calculation of summing up K pieces of data by the adder 2 is as follows.
For example, if m=1, the adder 2 accepts input of data D1, data DM+1, data D2M+1, . . . , and data D(K−1)M+1.
The adder 2 calculates the sum Σ1 of data D1, data DM+1, data D2M+1 and data D(K−1)M+1 as expressed in the following Equation 1.
Σ1D1+DM+1+D2M+1+ . . . +D(K−1)M+1 (1)
For example, if m=2, the adder 2 accepts input of data D2, data DM+2, data D2M+2, . . . , and data D(K−1)M+2.
The adder 2 calculates the sum Σ2 of data D2, data DM+2, data D2M+2, . . . , and data D(K−1)M+2 as expressed in the following Equation 2.
Σ2=D2+DM+2+D2M+2+ . . . D(K−1)M+2 (2)
For example, if m=M, the adder 2 accepts input of data DM, data D2M, data D3M, . . . , and data DK×M.
The adder 2 calculates the sum ΣM of data DM, data D2M, data D3M, . . . , and data DK×M as expressed in the following Equation 3.
ΣM=DM+D2M+D3M+ . . . +ΣK×M (3)
When the transformer 3 receives M sums Σm from the adder 2, the transformer 3 performs an M-point Fourier transform on the M sums Σm or an M-point inverse Fourier transform on the M sums Σm (step ST2 in
The transformer 3 outputs, as the transform result 4, Fourier transform result {R1, RM+1, R2M+1, . . . , R(K−1)M+1} or inverse Fourier transform result {R′1, R′M+1, R′2M+1, . . . , R′(K−)M+1} to the outside.
For example, where K=M=4 and K×M (=16) pieces of data are {D1, D2, . . . , D16}, then data string 1k (k=1, . . . , 4) is as follows.
1
1={D1, D2, D3, D4}
1
2={D5, D6, D7, D8}
1
3={D9, D10, D11, D12}
1
4={D13, D14, D15, D16}
When data strings 1k (k=1, . . . , 4) are input to the adder 2, the transformer 3 outputs four-point Fourier transform result {R1, R5, R9, R13} or four-point inverse Fourier transform result {R′1, R′5, R′9, R′13} to the outside as the transform result 4.
Therefore, in a case where an external circuit that receives the transform result 4 from the transformer 3 requires only four-point Fourier transform result {R1, R5, R9, R13} out of 16-point Fourier transform result {R1, R2, . . . , R16}, the Fourier transform device illustrated in
Likewise, in a case where an external circuit that receives the transform result 4 from the transformer 3 requires only four-point inverse Fourier transform result {R′1, R′5, R′9, R′13} out of 16-point inverse Fourier transform result {R′1, R′2, . . . , R′16}, the Fourier transform device illustrated in
The Fourier transform device illustrated in
For example, if K=3, the Fourier transform device illustrated in
For example, if K=4, the Fourier transform device illustrated in
Note that since the circuit scale of the adder 2 is sufficiently smaller than the circuit scale of the transformer 3, the circuit scale of the adder 2 is not taken into consideration as the circuit scale of the Fourier transform device illustrated in
In the first embodiment described above, ((k−1)M+1)th data(k=1, . . . , K) in order starting from the first data, among K×M pieces of data, is head data in each of the K data strings, and the K data strings each contain consecutive M pieces of data in order starting from each head data among the K×M pieces of data. The Fourier transform device includes: the adder 2 for calculating sums of K pieces of data that are m-th data (m=1, . . . , M) in the order starting from each of the head data in the respective M pieces of data contained in the K data strings; and the transformer 3 for performing an M-point Fourier transform on the M sums calculated by the adder 2 or an M-point inverse Fourier transform on the M sums. Therefore, in a case where an external circuit, which is a subsequent circuit, requires only a part of a Fourier transform result or a part of an inverse Fourier transform result, it is possible to reduce the circuit scale in the Fourier transform device to even less than about half of the circuit scale of an FFT circuit that performs a K×M-point Fourier transform.
In a second embodiment, a Fourier transform device including a first phase multiplier 5 and a second phase multiplier 6 in addition to the adder 2 and the transformer 3 will be described.
In the Fourier transform device illustrated in
In
The first phase multiplier 5 is implemented by, for example, a phase multiplication circuit 13 illustrated in
The first phase multiplier 5 receives input of K pieces of data, which are m-th data in order starting from respective head data in respective M pieces of data contained in K data strings 1k (k=1, . . . , K).
Each time the first phase multiplier 5 receives input of K pieces of data, the first phase multiplier 5 performs a phase shift of advancing the phase of each k-th data (k=1, . . . , K) by 2π(k−1)s/K among the K pieces of data which have been received.
The first phase multiplier 5 outputs the K data strings 1k each containing M pieces of data after the phase shift to the adder 2.
Symbol “s” is an integer within a range from 0 to (K−1) and is determined depending on an M-point Fourier transform result by the transformer 3 {R1+s, R(K+1)+s, R(2K+1))+S, . . . , R(M−1)K+1+s} or M-point inverse Fourier transform result {R′1+s, R′(K+1)+s, R′(2K+1)+s, . . . , R′(M−1)K+1+s}. Specifically, for example, in a case where there is need to output four-point Fourier transform result {R1, R5, R9, R13} or four-point inverse Fourier transform result {R′1, R′5, R′9, R′13} to an external circuit where K=M=4, “s” is determined to be 0.
For example, in a case where there is need to output four-point Fourier transform result {R2, R6, R10, R14} or four-point inverse Fourier transform result {R′2, R′6, R′10, R′14} to an external circuit where K=M=4, “s” is determined to be 1.
Symbol “s” may be stored in an internal memory of each of the first phase multiplier 5 and the second phase multiplier 6 or may be given from the outside.
The second phase multiplier 6 is implemented by, for example, a phase multiplication circuit 14 illustrated in
When the sum Σm of K pieces of data, which is m-th data, is calculated by the adder 2, the second phase multiplier 6 performs a phase shift of delaying the phase of the sum of data Σm, which has been calculated, by 2π(m−1)s/N and outputs the sum Σ′m after the phase shift to the transformer 3. N=K×M.
In
Here, each of the phase multiplication circuit 13, the addition circuit 11, the phase multiplication circuit 14, and the transform circuit 12 corresponds to, for example, a single circuit, a composite circuit, a programmed processor, a parallel programmed processor, an ASIC, an FPGA, or a combination thereof.
The components of the Fourier transform device are not limited to those implemented by dedicated hardware, and the Fourier transform device may be implemented by software, firmware, or a combination of software and firmware.
In a case where the Fourier transform device is implemented by software, firmware, or the like, programs for causing a computer to execute the processing procedures performed in the first phase multiplier 5, the adder 2, the second phase multiplier 6, and the transformer 3 are stored in the memory 21 illustrated in
Next, the operation of the Fourier transform device illustrated in
The first phase multiplier 5 receives input of K pieces of data, which are m-th data (m=1, . . . , M) in the order starting from respective head data in respective M pieces of data contained in K data strings 1k (k=1, . . . , K).
Each time the first phase multiplier 5 receives input of K pieces of data, the first phase multiplier 5 performs a phase shift of advancing the phase of k-th data among the K pieces of data, which have been received, by 2π(k−1)s/K.
The first phase multiplier 5 outputs the K data strings 1k each containing M pieces of data after the phase shift to the adder 2.
The specific phase shift of advancing the phase of k-th data by the first phase multiplier 5 is as follows.
For example, if m=1, the first phase multiplier 5 accepts input of data D1, data DM+1, data D2M+1, . . . , and data D(K−1)M+1.
For example, if s=0, the first phase multiplier 5 performs a phase shift of advancing the phase of each k-th data by 0 among the K pieces of data {D1, DM+1, D2M+1, . . . , D(K−1)M+1} which have been received.
For example, if s=1, the first phase multiplier 5 performs a phase shift of advancing the phase of each k-th data by 2π(k−1)/K among the K pieces of data {D1, DM+1, D2M+1, . . . , D(K−1)M+1} which have been received.
For example, if s=2, the first phase multiplier 5 performs a phase shift of advancing the phase of each k-th data by 4π(k−1)/K among the K pieces of data {D1, DM+1, D2M+1, . . . , D(K−1)M+1} which have been received.
For example, if s=K−1, the first phase multiplier 5 performs a phase shift of advancing the phase of each k-th data by 2π(k−1)(K−1)/K among the K pieces of data {D1, DM+1, D2M+1, . . . , D(K−1)M+1} which have been received.
The adder 2 receives input of K pieces of data, which are m-th data (m=1, . . . , M) in the order starting from respective head data in respective M pieces of data contained in the K data strings 1k output from the first phase multiplier 5.
When the adder 2 receives the input of the K pieces of data which are m-th data, the adder 2 calculates the sum Σm of the K pieces of data which have been received like the adder 2 illustrated in
When the sum Σm of the K pieces of data, which is m-th data, is received from the adder 2, the second phase multiplier 6 performs a phase shift of delaying the phase of the sum Σm of data that has been received by 2π(m−1)s/N. N=(K×M).
The second phase multiplier 6 outputs the sum Σ′m after the phase shift to the transformer 3.
The amount of phase shift of delaying the phase of the sum Σm of K pieces of data by the second phase multiplier 6 is as follows.
For example, if s=0, the amount of phase shift of delaying the phase of the sum L is 0.
For example, if s=1 and m=1, the amount of phase shift of delaying the phase of the sum Σm is 0.
For example, if s=1 and m=2, the amount of phase shift of delaying the phase of the sum Σm is 2n/N.
For example, if s=1 and m=3, the amount of phase shift of delaying the phase of the sum Σm is 4π/N.
For example, if s=1 and m=M, the amount of phase shift of delaying the phase of the sum Σm is 2π(M−1)/N.
For example, if s=2 and m=1, the amount of phase shift of delaying the phase of the sum Σm is 0.
For example, if s=2 and m=2, the amount of phase shift of delaying the phase of the sum Σm is 4π/N.
For example, if s=2 and m=3, the amount of phase shift of delaying the phase of the sum Σm is 8n/N.
For example, if s=2 and m=M, the amount of phase shift of delaying the phase of the sum Σm is 4π(M−1)/N.
When the transformer 3 receives M sums Σ′m (m=1, . . . , M) after phase shift from the second phase multiplier 6, the transformer 3 performs an M-point Fourier transform on the M sums Σ′m or an M-point inverse Fourier transform on the M sums Σ′m.
The transformer 3 outputs M-point Fourier transform result {R1+s, R(K+1)+s, R(2K+1)+s, . . . , R(M−1)K+1+s} or M-point inverse Fourier transform result {R′1+s, R′(K+1)+s, R′(2K+1)+1)+s, . . . , R′(M−1)K+1+s} to the outside as a transform result 4.
For example, where K=M=4, if s=0, a Fourier transform result for M=4 points is {R1, R5, R9, R13}, and an inverse Fourier transform result for M=4 points is {R′1, R′5, R′9, R′13}.
For example, where K=M=4, if s=1, a Fourier transform result for M=4 points is {R2, R6, R10, R14}, and an inverse Fourier transform result for M=4 points is {R′2, R′6, R′10, R′14}.
The Fourier transform device illustrated in
Since the circuit scales of the first phase multiplier 5, the adder 2, and the second phase multiplier 6 are sufficiently smaller than the circuit scale of the transformer 3, the circuit scales of the first phase multiplier 5, the adder 2, and the second phase multiplier 6 are not considered as the circuit scale of the Fourier transform device illustrated in
In the Fourier transform device illustrated in
In addition, the Fourier transform device illustrated in
In the first and second embodiments, the Fourier transform device to which K data strings 1k are input has been described.
In a third embodiment, description will be given on a Fourier transform device to which a data string 30 containing K×M pieces of data {D1, D2, . . . , DM, DM+1, DM+2, . . . , D2M, . . . , D(K−1)M+1, D(K−1)M+2, . . . , DK×M} is input.
In the Fourier transform device illustrated in
In
The data string 30 contains K×M pieces of data {D1, D2, . . . , DM, DM+1, DM+2, . . . , D2M, . . . , D(K−1)M+1, D(K−1)M°2, . . . , DK×M}, and is input to a first phase multiplier 31 in order of data D1, data D2, . . . , data DK×M.
The first phase multiplier 31 is implemented by, for example, a phase multiplication circuit 41 illustrated in
The first phase multiplier 31 performs a phase shift of advancing, by 2π(g−1)s/K, the phase of each of g-th to (g+M)th data in order each starting from g-th data (g=1, M+1, 2M+1, . . . , M×(K−1)+1) among K×M pieces of data.
The first phase multiplier 31 outputs the K×M pieces of data after the phase shift to an accumulator 32.
Symbol “s” is an integer within a range from 0 to (K−1) and is determined depending on an M-point Fourier transform result by the transformer 3 {R1+s, R(K+1)+s, R(2K+1))+S, . . . R(M−1)K+1+s} or M-point inverse Fourier transform result {R′1+s, R′(K+1)+s, R′(2K+1)+s, . . . , R′(M−1)K+1+s}. Specifically, for example, in a case where there is need to output four-point Fourier transform result {R1, R5, R9, R13} or four-point inverse Fourier transform result {R′1, R′5, R′9, R′13} to an external circuit where K=M=4, “s” is determined to be 0.
For example, in a case where there is need to output four-point Fourier transform result {R2, R6, R10, R14} or four-point inverse Fourier transform result {R′2, R′6, R′10, R′14} to an external circuit where K=M=4, “s” is determined to be 1.
Symbol “s” may be stored in an internal memory of each of the first phase multiplier 5 and the second phase multiplier 6 or may be given from the outside.
The accumulator 32 is implemented by, for example, an accumulation circuit 42 illustrated in
The accumulator 32 uses, as head data, every M pieces of data from first to m-th data in order starting from the first data among the K×M pieces of data after the phase shift that have been output from the first phase multiplier 31.
The accumulator 32 calculates each sum Σm of K pieces of data at every M pieces of data in order each starting from m-th data (m=1, . . . , M).
The accumulator 32 outputs the M sums Σm that have been calculated to the second phase multiplier 6.
In
Here, each of the phase multiplication circuit 41, the accumulation circuit 42, the phase multiplication circuit 14, and the transform circuit 12 corresponds to, for example, a single circuit, a composite circuit, a programmed processor, a parallel programmed processor, an ASIC, an FPGA, or a combination thereof.
The components of the Fourier transform device are not limited to those implemented by dedicated hardware, and the Fourier transform device may be implemented by software, firmware, or a combination of software and firmware.
In a case where the Fourier transform device is implemented by software, firmware, or the like, programs for causing a computer to execute the processing procedures performed in the first phase multiplier 31, the accumulator 32, the second phase multiplier 6, and the transformer 3 are stored in the memory 21 illustrated in
Next, the operation of the Fourier transform device illustrated in
The first phase multiplier 31 accepts input of the data string 30 containing K×M pieces of data {D1, D2, . . . , DM, DM+1, DM+2, . . . , D2M, . . . , D(K−1)M+1, D(K−1)M+2, . . . , DK×M}.
The first phase multiplier 31 performs a phase shift of advancing, by 2πs/K (s=0, 1, . . . , K−1), the phase of each of g-th to (g+M)th data in order each starting from g th data (g=1, M+1, 2M+1, . . . , M×(K−1)+1) at every M pieces of data among the K×M pieces of data.
The first phase multiplier 31 outputs the K×M pieces of data after the phase shift to the accumulator 32.
The amount of phase shift of advancing the phase of each of g-th to (g+M)th data by the first phase multiplier 31 is as follows.
For example, if K=M=4 and g=1, the first phase multiplier 31 accepts input of data {D1, D2, D3, D4}.
The amount of phase shift of advancing the phase of data {D1, D2, D3, D4} is 0.
For example, if K=M=4 and g=M+1=5, the first phase multiplier 31 accepts input of data {D5, D6, D7, D8}.
The amount of phase shift of advancing the phase of data {D5, D6, D7, D8} is 0 if s=0.
The amount of phase shift of advancing the phase of data {D5, D6, D7, D8} is 2π×1/4=π/2 if s=1.
The amount of phase shift of advancing the phase of data {D5, D6, D7, D8} is 2π×2/4=π if s=2.
The amount of phase shift of advancing the phase of data {D5, D6, D7, D8} is 2π×3/4=3π/2 if s=3.
The accumulator 32 uses, as head data, every M pieces of data from first to m-th data in order starting from the first data among the K×M pieces of data after the phase shift that have been output from the first phase multiplier 31.
Then, the accumulator 32 calculates each sum Σm of K pieces of data at every M pieces of data in order each starting from m-th data (m=1, . . . , M).
The accumulator 32 outputs the M sums Σm that have been calculated to the second phase multiplier 6.
The specific calculation of a sum of K pieces of data by the accumulator 32 is as follows.
For example, let us assume K=M=4 and g=1, 5, 9, 13.
First, since g=1, when the accumulator 32 receives data {D1, D2, D3, D4} after the phase shift from the first phase multiplier 31, the accumulator 32 holds the data {D1, D2, D3, D4} after the phase shift.
Next, since g=5, when the accumulator 32 receives data {D5, D6, D7, D8} after the phase shift from the first phase multiplier 31, the accumulator 32 adds the data {D5, D6, D7, D8} after the phase shift to the data {D1, D2, D3, D4} that is held, respectively.
The accumulator 32 holds data {D1+D5, D2+D6, D3+D7, D4+D8} as the result of each addition.
Next, since g=9, when the accumulator 32 receives data {D9, D10, D11, D12} after the phase shift from the first phase multiplier 31, the accumulator 32 adds the data {D9, D10, D11, D12} after the phase shift to the data {D1+D5, D2+D6, D3+D7, D4+D8} that is held, respectively.
The accumulator 32 holds data {D1+D5+D9, D2+D6+D10, D3+D7+D11, D4+D8+D12} as the result of each addition.
Lastly, since g=13, when the accumulator 32 receives data {D13, D14, D15, D16} after the phase shift from the first phase multiplier 31, the accumulator 32 adds the data {D13, D14, D15, D16} after the phase shift to the data {D1+D5+D9, D2+D6+D10, D3+D7+D11, D4+D8+D12} that is held, respectively.
The accumulator 32 outputs data {D1+D5+D9+D13, D2+D6+D10+D14, D3+D7+D11+D15, D4+D8+D12+D16} as M=4 sums {Σ1, Σ2, Σ3, Σ4} to the second phase multiplier 6 as results of the respective additions.
Σ1=D1+D5+D9+D13
Σ2=D2+D6+D10+D14
Σ3=D3+D7+D11+D15
Σ4=D4+D8+D12+D16
When the second phase multiplier 6 receives the sums Σm of K pieces of data containing data starting from m-th data from the accumulator 32, the second phase multiplier 6 performs a phase shift of delaying the phase of each of the sums Σm of data that has been received by 2π(m−1)s/N like the second phase multiplier 6 illustrated in
The second phase multiplier 6 outputs the sum Σ′m after the phase shift to the transformer 3.
When the transformer 3 receives M sums Σ′m after the phase shift from the second phase multiplier 6, the transformer 3 performs an M-point Fourier transform on the M sums Σ′m or an M-point inverse Fourier transform on the M sums Σ′m like the transformer 3 illustrated in
The transformer 3 outputs M-point Fourier transform result {R1+s, R(K+1)+s, R(2K+1)+s, . . . , R(M−1)K+1+s} or M-point inverse Fourier transform result {R′1+s, R′(K+1)+s, R′(2K+1)+s, . . . , R′M−1)K+1+s} to the outside as a transform result 4.
For example, where K=M=4, if s=0, a Fourier transform result for M=4 points is {R1, R5, R9, R13}, and an inverse Fourier transform result for M=4 points is {R′1, R′5, R′9, R′13}.
For example, where K=M=4, if s=1, a Fourier transform result for M=4 points is {R2, R6, R10, R14}, and an inverse Fourier transform result for M=4 points is {R′2, R′6, R′10, R′14}.
The Fourier transform device illustrated in
Since the circuit scales of the first phase multiplier 31, the accumulator 32, and the second phase multiplier 6 are sufficiently smaller than the circuit scale of the transformer 3, the circuit scales of the first phase multiplier 31, the accumulator 32, and the second phase multiplier 6 are not considered as the circuit scale of the Fourier transform device illustrated in
In the Fourier transform device illustrated in
In addition, the Fourier transform device illustrated in
In the Fourier transform devices of the first to third embodiments, the component in the last stage among all the components is the transformer 3.
In a fourth embodiment, a Fourier transform device in which the component in the first stage among all the components is a transformer 51 will be described.
K data strings 1k (k=1, . . . , K) are input to the Fourier transform device illustrated in
In the Fourier transform device illustrated in
The transformer 51 is implemented by, for example, a transform circuit 61 illustrated in
The transformer 51 receives input of K pieces of data, each of which is m-th data (m=1, . . . , M) in order each starting from head data in M pieces of data contained in each of the K data strings 1k.
The transformer 51 performs a K-point Fourier transform on m-th K pieces of data that has received or a K-point inverse Fourier transform on the K pieces of data.
The transformer 51 outputs the K-point Fourier transform result or the K-point inverse Fourier transform result to a first phase multiplier 52 each time a K-point Fourier transform or a K-point inverse Fourier transform is performed.
The Fourier transform performed by the transformer 51 is not limited to fast Fourier transforms but also includes discrete Fourier transforms.
Likewise, the inverse Fourier transform performed by the transformer 51 is not limited to inverse fast Fourier transforms but also includes inverse discrete Fourier transforms.
The first phase multiplier 52 is implemented by, for example, a phase multiplication circuit 62 illustrated in
The first phase multiplier 52 performs a phase shift of delaying each of the phase of a k-th transform result (k=1, . . . , K) of an m-th times (m=1, . . . , M) of Fourier transform or each of the phase of a k-th transform result of an m-th times of inverse Fourier transform by 2π((m−1)×(k−1)/N) by the transformer 51. N=K×M.
The first phase multiplier 52 outputs the K×M transform results after the phase shift to an accumulator 53.
The accumulator 53 is implemented by, for example, an accumulation circuit 63 illustrated in
The accumulator 53 uses, as a head transform result, each of M transform results from first to M-th transform results in order starting from the first transform result among the K×M transform results after the phase shift that have been output from the first phase multiplier 52.
The accumulator 53 calculates each sum of K transform results at every M transform results in order starting from each head transform result.
The accumulator 53 outputs each of the sums that have been calculated to the outside.
In
Here, each of the transform circuit 61, the phase multiplication circuit 62, and the accumulation circuit 63 corresponds to, for example, a single circuit, a composite circuit, a programmed processor, a parallel programmed processor, an ASIC, an FPGA, or a combination thereof.
The components of the Fourier transform device are not limited to those implemented by dedicated hardware, and the Fourier transform device may be implemented by software, firmware, or a combination of software and firmware.
In a case where the Fourier transform device is implemented by software, firmware, or the like, programs for causing a computer to execute the processing procedures performed in the transformer 51, the first phase multiplier 52, and the accumulator 53 are stored in the memory 21 illustrated in
Next, the operation of the Fourier transform device illustrated in
The transformer 51 receives input of K pieces of data, each of which is m-th data (m=1, . . . , M) in order each starting from head data in M pieces of data contained in each of the K data strings 1k.
Each time input of K pieces of data is received, the transformer 51 performs a K-point Fourier transform on the K pieces of data that have been received or a K-point inverse Fourier transform on the K pieces of data.
The transformer 51 outputs the K-point Fourier transform result or the K-point inverse Fourier transform result to the first phase multiplier 52 each time a K-point Fourier transform or a K-point inverse Fourier transform is performed.
Since m=1, . . . , M, the transformer 51 performs a K-point Fourier transform or a K-point inverse Fourier transform M times.
The K-point Fourier transform or the K-point inverse Fourier transform by the transformer 51 is as follows.
For example, where K=M=4 and K×M (=16) pieces of data are {D1, D2, . . . , D16}, then data string 1k (k=1, . . . , 4) is as follows.
1
1={D1, D2, D3, D4}
1
2={D5, D6, D7, D8}
1
3={D9, D10, D11, D12}
1
4={D13, D14, D15, D16}
Therefore, when m=1, the transformer 51 performs a four-point Fourier transform or a four-point inverse Fourier transform on data {D1, D5, D9, D13}.
The transformer 51 outputs four-point Fourier transform result {F1, F5, F9, F13} or four-point inverse Fourier transform result {F′1, F′5, F′9, F′13} to the first phase multiplier 52 as a transform result.
When m=2, the transformer 51 performs a four-point Fourier transform or a four-point inverse Fourier transform on data {D2, D6, D10, D14}.
The transformer 51 outputs four-point Fourier transform result {F2, F6, F10, F14} or four-point inverse Fourier transform result {F′2, F′6, F′10, F′14} to the first phase multiplier 52 as a transform result.
When m=3, the transformer 51 performs a four-point Fourier transform or a four-point inverse Fourier transform on data {D3, D7, D11, D15}.
The transformer 51 outputs four-point Fourier transform result {F3, F7, F11, F′15} or four-point inverse Fourier transform result {F′3, F′7, F′11, F′15} to the first phase multiplier 52 as a transform result.
When m=4, the transformer 51 performs a four-point Fourier transform or a four-point inverse Fourier transform on data {D4, D8, D12, D16}.
The transformer 51 outputs four-point Fourier transform result {F4, F8, F12, F16} or four-point inverse Fourier transform result {F′4, F′8, F′12, F′16} to the first phase multiplier 52 as a transform result.
The first phase multiplier 52 receives input of the K×M transform results from the transformer 51.
For example, if K=M=4, the first phase multiplier 52 receives input of Fourier transform result {F1, F5, F9, F13, F2, F6, F10, F14, F3, F7, F11, F15, F4, F8, F12, F16} as a transform result. Alternatively, the first phase multiplier 52 receives input of inverse Fourier transform result {F′1, F′5, F′9, F′13, F′2, F′6, F′10, F′14, F′3, F′7, F′11, F′15, F′4, F′8, F′12, F′16} as a transform result.
The first phase multiplier 52 performs a phase shift of delaying each of the phase of a k-th transform result (k=1, . . . , K) of an m-th times (m=1, . . . , M) of Fourier transform or each of the phase of a k-th transform result of an m-th times of inverse Fourier transform by 2π((m−1)×(k−1)/N) by the transformer 51.
The first phase multiplier 52 outputs the K×M transform results after the phase shift to an accumulator 53.
The phase shift of delaying the phase of a k-th transform result of an m-th times of Fourier transform by the first phase multiplier 52 is as follows. For example, let us assume that K=M=4.
For example, when m=1, the phase shift of delaying the phase of a k-th transform result (k=1, . . . , K) in a Fourier transform is 0.
For example, when m=2, the phase shift of delaying the phase of a k=first transform result is 0, and the phase shift of delaying the phase of a k=second transform result is 2π((1×1/16)=π/8.
The phase shift of delaying the phase of a k=third transform result is 2π((1×2/16)=π/4, and the phase shift of delaying the phase of a k=fourth transform result is 2π((1×3/16)=3π/8.
The accumulator 53 uses, as a head transform result, each of M transform results from first to M-th transform results in order starting from the first transform result among the K×M transform results after the phase shift that have been output from the first phase multiplier 52.
The accumulator 53 then calculates each sum of K transform results at every M transform results in order starting from each head transform result.
The accumulator 53 outputs each of the sums that have been calculated to the outside.
The calculation of a sum of K transform results by the accumulator 53 is as follows.
For example, let us assume K=M=4 and m=1, . . . , 4. Let us also assume that a sum of transform results is a sum of Fourier transform results.
First, since m=1, the accumulator 53 holds Fourier transform result {F1, F5, F9, F13} when Fourier transform result {F1, F5, F9, F13} is received from the first phase multiplier 52.
Next, since m=2, the accumulator 53 adds Fourier transform result {F2, F6, F10, F14} to Fourier transform result {F1, F5, F9, F13} that is held, respectively, when Fourier transform result {F2, F6, F10, F14} is received from the first phase multiplier 52.
The accumulator 53 holds {F1+F2, F5+F6, F9+F10, F13+F14} as respective addition results.
Next, since m=3, the accumulator 53 adds Fourier transform result {F3, F7, F11, F15} to {1+F2, F5+F6, F9+F10, F13+F14} that is held, respectively, when Fourier transform result {F3, F7, F11, F15} is received from the first phase multiplier 52.
The accumulator 53 holds {F1+F2+F3, F5+F6+F7, F9+F10+F11, F13+F14+F15} as respective addition results.
Next, since m=4, the accumulator 53 adds Fourier transform result {F4, F8, F12, F16} to {F1+F2+F3, F5+F6+F7, F9+F10+F11, F13+F14+F15} that is held, respectively, when Fourier transform result {F4, F8, F12, F16} is received from the first phase multiplier 52.
The accumulator 53 outputs Fourier transform results {F1+F2+F3+F4, F5+F6+F7+F8, F9+F10+F11+F12, F13+F14+F15+F16} as respective addition results {Σ1, Σ2, Σ3, Σ4} to the outside.
Σ1=F1+F2+F3+F4
Σ2=F5+F6+F7+F8
Σ3=F9+F10+F11+F12
Σ4=F13+F14+F15+F16
The addition results {Σ1, Σ2, Σ3, Σ4} correspond to four-point Fourier transform result {R1, R2, R3, R4} out of 16-point Fourier transform result {R1, R2, . . . , R16}.
Therefore, in a case where an external circuit that receives the addition results from the accumulator 53 requires only four-point Fourier transform result {R1, R2, R3, R4} out of 16-point Fourier transform result {R1, R2, . . . , R16}, the Fourier transform device illustrated in
Likewise, in a case where an external circuit that receives the addition results from the accumulator 53 requires only four-point inverse Fourier transform result {R′1, R′2, R′3, R′4} out of 16-point inverse Fourier transform result {R′1, R′2, . . . , R′16}, the Fourier transform device illustrated in
The Fourier transform device illustrated in
For example, if M=3, the Fourier transform device illustrated in
For example, if M=4, the Fourier transform device illustrated in
Since the circuit scales of the first phase multiplier 52 and the accumulator 53 are sufficiently smaller than the circuit scale of the transformer 51, the circuit scales of the first phase multiplier 52 and the accumulator 53 are not considered as the circuit scale of the Fourier transform device illustrated in
In the Fourier transform device illustrated in
In the Fourier transform device illustrated in
Note that the order of K×M pieces of data contained in the data string 50 is (k−1) M+m.
Values k and m, which determine the order of the K×M pieces of data contained in the data string 50, vary as follows.
(k=1, m=1), (k=2, m=1), . . . , (k=K, m=1), (k=1, m=2), (k=2, m=2), . . . , (k=K, m=2), . . . , (k=1, m=M), (k=2, m=M), . . . , (k=K, m=M))
In a case where the data string 50 is input, the transformer 51 receives input of K pieces of data sequentially in order from the head data among the K×M pieces of data {D1, D5, D9, D13, D2, D6, D10, D14, . . . , DK×M} contained in the data string 50.
Each time input of K pieces of data is received, the transformer 51 performs a K-point Fourier transform on the K pieces of data that have been received or a K-point inverse Fourier transform on the K pieces of data like the transformer 51 illustrated in
In the Fourier transform device illustrated in
In a fifth embodiment, a Fourier transform device obtained by adding a second phase multiplier 55 to the Fourier transform device illustrated in
In
In the Fourier transform device illustrated in
The second phase multiplier 55 is implemented, for example, by a phase multiplication circuit 64 illustrated in
The second phase multiplier 55 modifies each of the phases of K×M transform results after a phase shift output from a first phase multiplier 52 depending on a sum of K transform results to be calculated by an accumulator 53 and outputs the K×M transform results after the phase modification to the accumulator 53.
In the Fourier transform device illustrated in
In
Here, each of the transform circuit 61, the phase multiplication circuit 62, the phase multiplication circuit 64, and the accumulation circuit 63 corresponds to, for example, a single circuit, a composite circuit, a programmed processor, a parallel programmed processor, an ASIC, an FPGA, or a combination thereof.
The components of the Fourier transform device are not limited to those implemented by dedicated hardware, and the Fourier transform device may be implemented by software, firmware, or a combination of software and firmware.
In a case where the Fourier transform device is implemented by software, firmware, or the like, programs for causing a computer to execute the processing procedures performed in the transformer 51, the first phase multiplier 52, the second phase multiplier 55, and the accumulator 53 are stored in the memory 21 illustrated in
Next, the operation of the Fourier transform device illustrated in
The second phase multiplier 55 modifies each of the phases of K×M transform results output from the first phase multiplier 52 depending on addition results {Σ1+h, . . . , ΣK+h} (h=0, K, 2K, . . . , (M×K)−K) to be calculated by the accumulator 53.
The second phase multiplier 55 outputs the K×M transform results after the phase modification to the accumulator 53.
The specific modification of the phases by the second phase multiplier 55 is as follows.
(1) In a case where h=0 and addition results to be calculated by the accumulator 53 are {Σ1, . . . , ΣK}:
The second phase multiplier 55 does not modify the phases of the K×M transform results output from the first phase multiplier 52.
(2) In a case where h=K and addition results to be calculated by the accumulator 53 are {ΣK+1, . . . , Σ2K}:
The second phase multiplier 55 sets the amount of phase shift to 0 for the phases of the first K transform results in the order of arrangement among the K×M transform results. The second phase multiplier 55 increases the amount of phase shift for the phases of K transform results by 2π/M each time the place in the order is increased by K.
(3) In a case where h=2K and addition results to be calculated by the accumulator 53 are {Σ2K+1, . . . , Σ3K}:
The second phase multiplier 55 sets the amount of phase shift to 0 for the phases of the first K transform results in the order of arrangement among the K×M transform results. The second phase multiplier 55 increases the amount of phase shift for the phases of K transform results by (2π/M)×2 each time the place in the order is increased by K.
(4) In a case where h=3K and addition results to be calculated by the accumulator 53 are {Σ3K+1, . . . , Σ4K}:
The second phase multiplier 55 sets the amount of phase shift to 0 for the phases of the first K transform results in the order of arrangement among the K×M transform results. The second phase multiplier 55 increases the amount of phase shift for the phases of K transform results by (2π/M)×3 each time the place in the order is increased by K.
(5) In a case where h=(M×K)−K and addition results to be calculated by the accumulator 53 are {Σ(M−K)−K+1, . . . , ΣM×K}:
The second phase multiplier 55 sets the amount of phase shift to 0 for the phases of the first K transform results in the order of arrangement among the K×M transform results. The second phase multiplier 55 increases the amount of phase shift for the phases of K transform results by (2π/M)×(M−1) each time the place in the order is increased by K.
For example, if K=M=4, the specific modification of the phases by the second phase multiplier 55 is as follows.
(1) In a case where addition results {Σ1, Σ2, Σ3, Σ4} to be calculated by the accumulator 53 are made to correspond to four-point Fourier transform result {R1, R2, R3, R4} among the 16-point Fourier transform result:
In this case, h=0, and the second phase multiplier 55 does not modify the phases of the sixteen transform results output from the first phase multiplier 52.
(2) In a case where addition results {Σ1, Σ2, Σ3, Σ4} to be calculated by the accumulator 53 are made to correspond to four-point Fourier transform result {R5, R6, R7, R8} among the 16-point Fourier transform result:
In this case, h=K, and the second phase multiplier 55 does not modify the phases of the first four transform results in the order of the sixteen transform results output from the first phase multiplier 52.
The second phase multiplier 55 advances the phases of the following four transform results in the order by 2π/M=π/2.
The second phase multiplier 55 advances the phases of the following four transform results in the order by (2π/M)×2=π.
The second phase multiplier 55 advances the phases of the following four transform results in the order by (2π/M)×3=3π/2.
(3) In a case where addition results {Σ1, Σ2, Σ3, Σ4} to be calculated by the accumulator 53 are made to correspond to four-point Fourier transform result {R9, R10, R11, R12} among the 16-point Fourier transform result.
In this case, h=2K, and the second phase multiplier 55 does not modify the phases of the first four transform results in the order of the sixteen transform results output from the first phase multiplier 52.
The second phase multiplier 55 advances the phases of the following four transform results in the order by (2π/M)×2=π.
The second phase multiplier 55 advances the phases of the following four transform results in the order by (2π/M)×2×2=2π.
The second phase multiplier 55 advances the phases of the following four transform results in the order by (2π/M)×2×3=3π.
(4) In a case where addition results {Σ1, Σ2, Σ3, Σ4} to be calculated by the accumulator 53 are made to correspond to four-point Fourier transform result {R13, R14, R15, R16} among the 16-point Fourier transform result.
In this case, h=3K, and the second phase multiplier 55 does not modify the phases of the first four transform results in the order of the sixteen transform results output from the first phase multiplier 52.
The second phase multiplier 55 advances the phases of the following four transform results in the order by (2π/M)×3=3π/2.
The second phase multiplier 55 advances the phases of the following four transform results in the order by (2π/M)×3×2=3π.
The second phase multiplier 55 advances the phases of the following four transform results in the order by (2π/M)×3×3=9π/2.
In the fifth embodiment described above, the Fourier transform device includes the second phase multiplier 55 for modifying each of the phases of K×M transform results after the phase shift that have been output from the first phase multiplier 52 depending on a sum of K transform results to be calculated by the accumulator 53. Therefore, in a case where an external circuit, which is a subsequent circuit, requires only a part of a Fourier transform result or a part of an inverse Fourier transform result, it is possible to reduce the circuit scale in the Fourier transform device to even less than about half of the circuit scale of an FFT circuit that performs a K×M-point Fourier transform and also to modify the Fourier transform result output to the external circuit or the inverse Fourier transform result output to the external circuit.
The Fourier transform device illustrated in
Incidentally, within the scope of the present invention, the present invention may include a flexible combination of the embodiments, a modification of any component of the embodiments, or an omission of any component in the embodiments.
The present invention is suitable for Fourier transform devices and Fourier transform methods for performing Fourier transforms or inverse Fourier transforms.
This application is a Continuation of PCT International Application No. PCT/JP2019/002271, filed on Jan. 24, 2019, which is hereby expressly incorporated by reference into the present application.
Number | Date | Country | |
---|---|---|---|
Parent | PCT/JP2019/002271 | Jan 2019 | US |
Child | 17360737 | US |