WO2014115540A1 - 高速フーリエ変換装置、高速フーリエ変換方法、及び高速フーリエ変換プログラム記憶媒体 - Google Patents
高速フーリエ変換装置、高速フーリエ変換方法、及び高速フーリエ変換プログラム記憶媒体 Download PDFInfo
- Publication number
- WO2014115540A1 WO2014115540A1 PCT/JP2014/000291 JP2014000291W WO2014115540A1 WO 2014115540 A1 WO2014115540 A1 WO 2014115540A1 JP 2014000291 W JP2014000291 W JP 2014000291W WO 2014115540 A1 WO2014115540 A1 WO 2014115540A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data
- fourier transform
- fast fourier
- order
- output
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/14—Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
- G06F17/141—Discrete Fourier transforms
- G06F17/142—Fast Fourier transforms, e.g. using a Cooley-Tukey type algorithm
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03H—IMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
- H03H17/00—Networks using digital techniques
- H03H17/02—Frequency selective networks
- H03H17/0211—Frequency selective networks using specific transformation algorithms, e.g. WALSH functions, Fermat transforms, Mersenne transforms, polynomial transforms, Hilbert transforms
- H03H17/0213—Frequency domain filters using Fourier transforms
Definitions
- the present invention relates to arithmetic processing in digital signal processing, and more particularly to a fast Fourier transform device, a fast Fourier transform method, and a fast Fourier transform program storage medium.
- FFT Fast Fourier Transform
- FDE frequency domain equalization
- IFFT inverse fast Fourier transform
- Patent Document 1 describes “twist multiplication” described later, that is, multiplication using a twist coefficient.
- Non-Patent Document 1 As an efficient FFT / IFFT processing method, for example, the Cooley-Tukey butterfly operation described in Non-Patent Document 1 is famous. However, the circuit of the FFT / IFFT by Cooley-Tukey having a large number of points is complicated. For this reason, for example, the Prime / Factor method described in Non-Patent Document 2 is used to perform decomposition into two small FFT / IFFT, and FFT / IFFT processing is performed.
- FIG. 19 shows a 64-point FFT data flow 500 that has been decomposed into a two-stage radix-8 butterfly process using, for example, the Prime-Factor method.
- the data flow 500 includes a total of 16 radix-8 butterfly computation processing and twist multiplication processing 504 including data rearrangement processing 501 and butterfly computation processing 502 and 503.
- 8 data parallel an FFT apparatus that performs FFT processing in parallel on 8 data
- a 64-point FFT process can be realized by repeating the above process.
- the eight repeated processes are processes in which partial data flows 505a to 505h performed on eight pieces of data are performed in order, and are specifically performed as follows. That is, a process corresponding to the partial data flow 505a is performed for the first time, a process corresponding to the partial data flow 505b is performed for the second time, and a process corresponding to the partial data flow 505c (not shown) is performed for the third time. Thereafter, similarly, processing up to the eighth partial data flow 505h is sequentially performed. With the above processing, 64-point FFT processing is realized.
- Patent Document 2 discloses an FFT apparatus that rearranges data using RAM in butterfly computation.
- Patent Document 3 discloses a high-speed technology based on parallel processing of butterfly operations.
- Non-Patent Documents 1 and 2 do not output the FFT processing result signal X (k) in the order in which higher-speed computation is performed in the subsequent stage.
- the result X (k) is output.
- X (k) and X (N ⁇ k) may be output in a cycle that is more than one cycle apart from the minimum output interval of one cycle.
- X (k) and X (Nk) are used in the same cycle or in a nearby cycle after the FFT circuit. It is necessary to provide data rearranging means for outputting.
- FIG. 20 shows a configuration example of the FFT apparatus 600 in which the data rearrangement processing circuit 602 is connected to the subsequent stage of the FFT circuit 601.
- the data rearrangement circuit 602 includes a storage unit that can hold data for at least one FFT block. is required. Furthermore, it is desirable that the output timing or output order of the plurality of processing results to the subsequent stage for each processing result is optimal for the subsequent processing.
- Non-Patent Documents 1 and 2 do not include a data rearrangement circuit, neither the output timing nor the output order of the processing results can be controlled. Therefore, there is a problem that processing delay (latency) concerning the entire processing including FFT processing increases.
- the output timing of a plurality of results obtained by FFT processing is not taken into consideration.
- the input data to the butterfly calculation unit is rearranged.
- the FFT arithmetic unit disclosed in Patent Document 3 achieves high speed by parallelizing butterfly arithmetic.
- the output order of signals resulting from the FFT processing is not particularly taken into consideration. For this reason, signals are output in the order in which the computation of the FFT processing is completed, and the order is not necessarily suitable for speeding up the subsequent processing. Therefore, the FFT devices of Patent Documents 2 and 3 also have the same problem as described above that the processing delay for the entire processing increases.
- Non-Patent Documents 1 and 2 and Patent Documents 2 and 3 have a problem that the output timing and output order of processing results of FFT processing cannot be optimized.
- the optimization of the timing of the processing result or the output order is effective when the processing using the result of the IFFT processing is performed in the subsequent stage of the IFFT processing.
- the present invention relates to a fast Fourier transform circuit, a fast Fourier transform processing method, and a fast Fourier transform capable of inputting data to be processed and outputting a processing result in an arbitrary order in FFT / IFFT processing in digital signal processing.
- An object is to provide a program storage medium.
- the fast Fourier transform device of the present invention performs a fast Fourier transform or an inverse fast Fourier transform to generate a plurality of first output data, and outputs the first output data in a first order, and a first order And a first data rearrangement processing unit that rearranges the plurality of first output data output in step 2 in the second order based on the output order setting.
- the fast Fourier transform device of the present invention includes a second data rearrangement processing unit that rearranges the plurality of second input data input in the third order into the fourth order based on the input order setting, And a second transform unit that performs fast Fourier transform or inverse fast Fourier transform on the plurality of second input data rearranged in the order of 4.
- the fast Fourier transform method of the present invention includes rearrangement based on output order setting of a plurality of output data generated by fast Fourier transform or inverse fast Fourier transform, or input of a plurality of input data of fast Fourier transform or inverse fast Fourier transform. Sorting based on order setting is performed.
- the fast Fourier transform program storage medium of the present invention includes a computer provided in a fast Fourier transform device, means for performing fast Fourier transform or inverse fast Fourier transform, and a plurality of output data generated by fast Fourier transform or inverse fast Fourier transform.
- processing target data can be input and processing results can be output in any order.
- FIG. 1 is a block diagram illustrating a configuration of an FFT apparatus 10 according to a first embodiment of the present invention. It is a figure which shows the arrangement
- FIG. 3 is a block diagram showing a configuration example 100 of a first data rearrangement circuit 11 and a second data rearrangement circuit 12 according to the first embodiment of the present invention.
- FIG. 1 is a block diagram showing a configuration example of an FFT apparatus 10 according to the first embodiment of the present invention.
- the FFT apparatus 10 processes the 64-point FFT decomposed into two-stage radix-8 butterfly processing according to the data flow 500 shown in FIG. 19 by a pipeline circuit method.
- N is a positive integer representing the FFT block size.
- the FFT apparatus 10 performs 64-point FFT processing in parallel with 8 data.
- the FFT circuit 10 receives time-domain data x (n), generates and outputs a frequency-domain signal X (k) subjected to Fourier transform by FFT processing.
- a total of 64 pieces of data are input as input data x (n) in the order shown in FIG.
- the numbers from 0 to 63 shown as the contents of the table in FIG. 2 mean the subscript n of x (n).
- 8 data of X (0), X (1),..., X (7) constituting the data set P1 are output in the first cycle.
- 8 data of X (8), X (9),..., X (15) constituting the data set P2 are output.
- data constituting the data sets P3 to P8 are output from the third cycle to the eighth cycle.
- the FFT apparatus 10 includes a first data rearrangement processing unit 11, a first butterfly calculation processing unit 21, a second data rearrangement processing unit 12, a twist multiplication processing unit 31, a second butterfly calculation processing unit 22, 3 data rearrangement processing unit 13 and read address generation unit 41.
- the FFT apparatus 10 performs a first data rearrangement process, a first butterfly operation process, a second data rearrangement process, a twist multiplication process, a second butterfly operation process, and a third data rearrangement process in a pipeline. To process.
- the first data rearrangement processing unit 11 and the second data rearrangement processing unit 12 are buffer circuits for data rearrangement.
- the first data rearrangement processing unit 11 and the second data rearrangement processing unit 12 are based on the data dependency on the FFT processing algorithm before and after the first butterfly computation processing unit 21, respectively. , Rearrange the data sequence.
- the third data rearrangement processing unit 13 is a buffer circuit for data rearrangement. That is, the third data rearrangement processing unit 13 rearranges the data sequence after the second butterfly calculation processing unit 22 based on the data dependency on the FFT processing algorithm. Furthermore, in addition to the above rearrangement, the third data rearrangement processing unit 13 outputs X (k) and X (Nk) for an arbitrary k in the output X (k) of the FFT apparatus 10. Are also rearranged to output at a time difference within one cycle at most.
- the first data rearrangement processing unit 11 inputs the “sequential order” shown in FIG. 2, which is the input order of the input data x (n), to the first butterfly calculation processing unit 21.
- the data is rearranged in the “bit reverse order” shown in FIG.
- the bit reverse order shown in FIG. 3 corresponds to the input data set to the radix-8 butterfly processing 502 in the first stage in the data flow diagram shown in FIG. Specifically, in the first cycle, 8 data of x (0), x (8),..., X (56) constituting the data set P1 are input. Then, in the second cycle, 8 data of x (1), x (9),..., X (57) constituting the data set P2 are input. Thereafter, data constituting the data sets P3 to P8 is input in the same manner from the third cycle to the eighth cycle.
- “sequential order” and “bit reverse order” will be specifically described.
- “Sequential order” refers to the order of the eight data sets P1, P2, P3, P4, P5, P6, P7, and P8 shown in FIG.
- (i) ps (i) 8 (s-1) + i It is.
- Each data set is arranged in the order of P1, P2, P3, P4, P5, P6, P7, and P8 corresponding to the progress of the processing cycle.
- the sequential order is a sequence in which is data is arranged i in order from the top data in the order of data to create s data sets, and the data sets are arranged in the cycle order.
- bit reverse order refers to the order of the eight data sets Q1, Q2, Q3, Q4, Q5, Q6, Q7, and Q8 shown in FIG.
- Each data set is arranged in the order of Q1, Q2, Q3, Q4, Q5, Q6, Q7, and Q8 corresponding to the progress of the processing cycle.
- the bit reverse order is obtained by arranging is data input in a sequential order in order of s data from the top data in cycle order, and arranging i data of the same cycle as one set in data order. .
- each data set in the bit reverse order is uniquely determined if each sequential order is set.
- Qs (i) and Pi (s) have a relationship in which the order of the cycle progress and the order of the data position are exchanged for the data constituting each data set. Therefore, when data input in the bit reverse order is rearranged according to the bit reverse order, the sequential order is obtained.
- Each row ps (i) in FIG. 2 and eight rows qs (i) in FIG. 3 indicate data input to the i-th data in the next stage.
- Eight numbers included in each data set are identification information for specifying one of the points of the FFT, specifically, the value of the subscript n of x (n).
- the rearrangement between the data set Ps in FIG. 2 and the data set Qs in FIG. 3, that is, the correspondence between each data set and the identification information included in the data set is replaced with other data shown in the second and subsequent embodiments. It may also be performed in the rearrangement circuit.
- each sequential data set may be created by arranging data in order according to the number of FFT points, the number of cycles, and the number of data processed in parallel. Then, as described above, each data set in the bit reverse order may be created by switching the order of the data input in the sequential order and the order of the data position.
- the first butterfly calculation processing unit 21 is a butterfly circuit that processes the first butterfly calculation process 502 (first butterfly calculation process) of the radix-8 butterfly calculation process performed twice in the data flow 500 of FIG. is there.
- the second data rearrangement processing unit 12 inputs the data y (n) output from the first butterfly calculation processing unit 21 in the sequential order to the second butterfly calculation processing unit 22 in order to input the data y (n) shown in FIG. Rearrange in reverse order.
- the twist multiplication processing unit 31 is a circuit that processes complex rotation on the complex plane in the FFT operation after the first butterfly operation processing, and corresponds to the twist multiplication processing 504 in the data flow 500 of FIG. In the twist multiplication process, data is not rearranged.
- the second butterfly computation processing unit 22 is a butterfly circuit that processes the second radix-8 butterfly process 503 in the data flow diagram of FIG.
- the third data rearrangement processing unit 13 sets the data X (k) output in the bit reverse order by the second butterfly computation processing unit 22 in the order shown in FIG. 4 (hereinafter referred to as “arbitrary data set sequential order”). Sort by.
- the “arbitrary data set sequential order” is an order in which the FFT apparatus 10 outputs the final result of the FFT processing.
- the arbitrary data set sequential order is an order when s data sets Ps created in the sequential order are output in accordance with the progress of the cycle, and can be designated by the output order designation 52.
- the arbitrary data set sequential order is specified in the order of P1, P8, P2, P7, P3, P6, P4, and P5.
- Each row ps (i) in FIG. 4 indicates data input to the i-th data in the next stage.
- Eight numbers included in each data set are identification information for specifying one of the points of the FFT, specifically, the value of the subscript k of X (k).
- the third data rearrangement processing unit 13 receives the read address 51 output from the read address generation unit 41 and determines the output order of the data X (k).
- the read address generation unit 41 generates a read address 51 to be output to the data rearrangement processing unit 13 with reference to an output order setting 52 given from an upper circuit (not shown) such as a CPU (Central Processing Unit).
- an upper circuit not shown
- CPU Central Processing Unit
- the data rearrangement processing unit temporarily stores the input data, and controls the selection and output of the stored data, so that the sequential order in FIG. 2, the bit reverse order in FIG. 3, and the arbitrary data set sequential order in FIG.
- the data rearrangement process according to each of the above is realized. Below, the specific example of a data rearrangement process part is shown.
- the first data rearrangement processing unit 11 and the second data rearrangement processing unit 12 can be realized by, for example, the data rearrangement processing unit 100 shown in FIG.
- the data rearrangement processing unit 100 inputs data sets D1 to D8 consisting of eight data input as the input information 103 in the first-in first-out first-in first-out buffer (FIFO buffer). Write and store in storage locations 101a-101h. Specifically, data sets D1 to D8 are stored in the data storage positions 101a to 101h, respectively.
- FIFO buffer first-in first-out first-in first-out buffer
- the data rearrangement processing unit 100 outputs the stored data in the first-out order in the FIFO buffer. Specifically, the data rearrangement processing unit 100 reads eight pieces of data from each of the data reading positions 102 a to 102 h to form one data set, and outputs the eight data sets D 1 ′ to D 8 ′ as output information 104. To do. As described above, the data sets D1 'to D8' are obtained by rearranging the data included in the data sets D1 to D8 arranged in the cycle order in the order of the data positions.
- FIG. 6 is a configuration diagram of the data rearrangement processing unit 200 showing an implementation example of the third data rearrangement processing unit 13.
- the data rearrangement processing unit 200 inputs eight data sets P1 to P8 input as the input information 203 in a first-in order in the FIFO buffer, and writes and stores them in the data storage positions 201a to 201h. . That is, the data sets D1 to D8 are sequentially stored in the data storage positions 201a to 201h corresponding to the cycle order.
- the data sets D1 'to D8' are stored in the data storage positions 202a to 202h, respectively.
- the data rearrangement processing unit 200 reads the stored data by the reading circuit 205 and outputs it as output information 204.
- the read circuit 205 refers to the read address 51 and selects any one of the data storage locations 202a to 202h to store the eight data stored in the data storage locations 202a to 202h. Any one is read by one read operation.
- the read addresses are given in the desired order which can be arbitrarily designated to the read address 51, so that the data can be read out in any order.
- the data rearrangement processing unit 200 includes the data sets D1 ′, D8 ′,
- the stored data is output in the order of D2 ′, D7 ′, D3 ′, D6 ′, D4 ′, D5 ′. That is, data is output in the arbitrary data set sequential order shown in FIG.
- the data sets D1 'to D8' are obtained by rearranging data included in the data sets D1 to D8 arranged in the cycle order into one set in the order of the data positions.
- the first data rearrangement processing unit 11, the second data rearrangement processing unit 12, and the third data rearrangement processing unit 13 perform the sequential order shown in FIG.
- the rearrangement process is performed three times in accordance with each of the 3 bit reverse order and the arbitrary data set sequential order of FIG.
- Input data x (n) is input in the order shown in FIG. 2 in a period of 8 cycles of 8 data, for a total of 64 data x (n). In FIG. 2, only the subscript n of x (n) is shown.
- Second cycle Eight data of X (56), X (57),..., X (63) constituting the data set D8 are output.
- 3rd cycle Eight data of X (8), X (9),..., X (15) constituting the data set D2 are output.
- 4th cycle Eight data of X (48), X (49),..., X (55) constituting the data set D7 are output.
- 5th cycle Eight data of X (16), X (17),..., X (23) constituting the data set D3 are output.
- 6th cycle Eight data of X (40), X (41),..., X (47) constituting the data set D6 are output.
- 7th cycle Eight data of X (24), X (25),..., X (31) constituting the data set D4 are output.
- 8th cycle Eight data of X (32), X (33),..., X (39) constituting the data set D5 are output.
- two X (k) that are the input values of the operation can be output in as close a cycle as possible.
- X (k) and X (N ⁇ k) can be output with a time difference within one cycle at most. As a result, it is not necessary to add a circuit for performing a new rearrangement on the output.
- the circuit to be added is only the read address generator 41, and the circuit scale is very small.
- the FFT processing has been described as an example, but the same applies to IFFT. That is, if the control method of the present embodiment is applied to the IFFT processing apparatus and the output order of the processing results is optimized in consideration of the processing content at the latter stage of the IFFT processing, the processing at the latter stage of the IFFT processing is accelerated. Can do. (Second Embodiment) Contrary to the first embodiment, the processing result of the previous stage of the FFT / IFFT processing may be output in an order unique to the processing and input to the FFT / IFFT processing device. In this case, rearranging the input previous processing results in an order suitable for FFT / IFFT processing is effective for speeding up the FT / IFFT processing and suppressing increase in circuit scale and power consumption. is there.
- 2nd Embodiment demonstrates the IFFT apparatus which operate
- FIG. 7 is a block diagram showing a configuration example of the IFFT device 20 according to the second embodiment of the present invention.
- the IFFT device 20 processes the 64-point IFFT decomposed into two-stage radix-8 butterfly processing by a pipeline circuit system in a data flow similar to the FFT data flow 500 shown in FIG.
- N is a positive integer representing the IFFT block size.
- the IFFT device 20 performs 64-point IFFT processing in parallel with 8 data.
- the IFFT device 20 inputs the input X (k) in the arbitrary data set sequential order shown in FIG. 4, similar to the output of the FFT device 10.
- the IFFT device 20 outputs the output y (n) in the sequential order shown in FIG.
- the IFFT device 20 includes a first data rearrangement processing unit 14, a first butterfly calculation processing unit 21, a second data rearrangement processing unit 12, a twist multiplication processing unit 31, a second butterfly calculation processing unit 22, 3 data rearrangement processing unit 15 and write address generation unit 42.
- the IFFT device 20 performs pipeline processing on the first data rearrangement process, the first butterfly operation process, the second data rearrangement process, the twist multiplication process, the second butterfly operation process, and the third data rearrangement process. To process.
- the first data rearrangement processing unit 14 is a buffer circuit for data rearrangement. That is, the first data rearrangement processing unit 14 rearranges the data sequence based on the data dependency on the IFFT processing algorithm before the first butterfly circuit 21. Furthermore, in addition to the above-described rearrangement, the first data rearrangement processing unit 14 also performs a rearrangement process for inputting data in an arbitrary data set sequential order.
- the first data rearrangement processing unit 14 inputs the arbitrary data set sequential order shown in FIG. 4 that is the input order of the input data X (k) to the first butterfly computation processing unit 21. These are rearranged in the bit reverse order shown in FIG.
- the second data rearrangement processing unit 12 and the third data rearrangement processing unit 15 are also buffer circuits for data rearrangement.
- the second data rearrangement processing unit 12 and the third data rearrangement processing unit 15 perform the data on the IFFT processing algorithm after the first butterfly operation circuit 21 and the second butterfly operation circuit 22, respectively. Rearrange the data sequence based on the dependency.
- the first butterfly calculation processing unit 21 is a butterfly circuit that processes the first butterfly calculation process 502 (first butterfly calculation process) of the radix-8 butterfly calculation process performed twice in the data flow 500 of FIG. is there.
- the second data rearrangement processing unit 12 uses the bit reverse order of FIG. 3 in order to input the data y (n) output from the first butterfly computation processing unit 21 in the sequential order to the twist multiplication processing unit 31. Rearrange.
- the twist multiplication processing unit 31 is a circuit that processes the complex rotation on the complex plane in the IFFT computation after the first butterfly computation, and corresponds to the twist multiplication processing 504 in the data flow 500 of FIG. In the twist multiplication process, data is not rearranged.
- the second butterfly computation processing unit 22 is a butterfly circuit that processes the second radix-8 butterfly process 503 in the data flow 500 of FIG.
- the third data rearrangement processing unit 15 rearranges the data X (k) output in the bit reverse order by the second butterfly computation processing unit 22 in the sequential order of FIG. That is, the IFFT apparatus 20 outputs the final result of the IFFT process in sequential order.
- the first data rearrangement processing unit 14 receives the write address 53 output from the write address generation unit 42 and determines the input order of the data X (k).
- the write address generation unit 42 generates a write address 53 to be output to the data rearrangement processing unit 14 with reference to an input order setting 54 given from an upper circuit (not shown) such as a CPU.
- the second data rearrangement processing unit 12 and the third data rearrangement processing unit 15 can be realized by, for example, the data rearrangement processing unit 100 shown in FIG.
- FIG. 8 is a configuration diagram of the data rearrangement processing unit 300 showing an implementation example of the first data rearrangement processing unit 14.
- the data rearrangement processing unit 300 writes the data sets D1 to D8 composed of 8 data input as the input information 303 in the arbitrary data set sequential order to the write positions 301a to 301h by the write circuit 305.
- the write circuit 305 refers to the write address 53, selects one of the write positions 301a to 301h, and performs one write operation. That is, the data can be written in a desired order by giving the write addresses in a predetermined order designated by the write address 53.
- the data rearrangement processing unit 300 uses the data sets D1, D8, D2, Data input in the order of D7, D3, D6, D4, and D5 are written and stored in the order of D1, D2, D3, D4, D5, D6, D7, and D8 to the write positions 301a to 301h. That is, the data sets D1 to D8 are sequentially stored in the data storage positions 301a to 301h, respectively. At this time, when the stored data is viewed in the cycle order, that is, in the order of the data storage positions 302a to 302h, data sets D1 'to D8' are stored in the data storage positions 302a to 302h, respectively.
- the data rearrangement processing unit 300 reads out and stores the stored data in the first-out order in the FIFO buffer. Specifically, the data rearrangement processing unit 300 converts the data sets D1 ′ to D8 ′ ′ stored in the data storage positions 302a to 302h into D1 ′, D2 ′, D3 ′, D4 ′, and D5 ′. , D6 ′, D7 ′, D8 ′, and output them in the order.
- the data rearrangement processing unit 300 corresponding to the first data rearrangement processing unit 14 inputs the data in an arbitrary order by giving the write addresses in a desired order that can be arbitrarily specified as the write address 53. be able to.
- the data rearrangement processing unit 300 uses the data sets D1, D8, D2, Data is input in the order of D7, D3, D6, D4, D5. That is, data is input and stored in the arbitrary data set sequential order shown in FIG.
- the data rearrangement processing unit 100 corresponding to the second data rearrangement processing unit 12 and the third data rearrangement processing unit 15 converts the stored data into D1, D2, D3, D4, D5, D6. , D7, D8, that is, in the sequential order of FIG. (Effect of 2nd Embodiment)
- the IFFT device 20 can input data in an arbitrary order by specifying the order using the input order setting 54. Therefore, no new rearrangement means for the input is required corresponding to the output order of the FFT apparatus 10.
- the circuit to be added is only the write address generation unit 42, and the circuit scale is very small.
- the IFFT process has been described as an example, but the same applies to the FFT. That is, if the control method of this embodiment is applied to the FFT processing apparatus and the input order of the input signals is optimized in consideration of the processing content of the previous stage of the FFT processing, the FFT processing can be speeded up.
- the third data rearrangement processing unit 13 can be omitted by modifying the second data rearrangement processing unit 12. The configuration of the FFT apparatus 30 excluding the third data rearrangement processing unit 13 from the FFT apparatus 10 will be described with reference to FIG.
- FIG. 9 is a block diagram showing a configuration example of the FFT apparatus 30 according to the third embodiment of the present invention.
- the FFT apparatus 30 processes the 64-point FFT decomposed into two-stage radix-8 butterfly processing by a pipeline circuit system in a data flow similar to the FFT data flow shown in FIG.
- N is a positive integer representing the FFT block size.
- Input data x (n) is input in the order shown in FIG. 2 in a period of 8 cycles of 8 data, for a total of 64 data x (n).
- Each row qs (i) in FIG. 10 indicates data input to the i-th data in the next stage.
- Eight numbers included in each data set are identification information for specifying one of the FFT points, specifically, the value of the subscript k of x (k).
- First cycle Eight data of X (0), X (8),..., X (56) constituting the data set Q1 are output.
- Second cycle Eight data of X (7), X (15),..., X (63) constituting the data set Q8 are output.
- 3rd cycle Eight data of X (1), X (9),..., X (57) constituting the data set Q2 are output.
- 4th cycle Eight data of X (6), X (14),..., X (62) constituting the data set Q7 are output.
- 5th cycle Eight data of X (2), X (10),..., X (58) constituting the data set Q3 are output.
- 6th cycle Eight data of X (5), X (13),..., X (61) constituting the data set Q6 are output.
- 7th cycle Eight data of X (3), X (11),..., X (59) constituting the data set Q4 are output.
- 8th cycle Eight data of X (4), X (12),..., X (60) constituting the data set Q5 are output.
- the FFT device 30 includes a first data rearrangement processing unit 11, a first butterfly calculation processing unit 21, a second data rearrangement processing unit 16, a twist multiplication processing unit 31, a second butterfly calculation processing unit 22, and a readout.
- An address generation unit 43 is provided.
- the same components as those in the FFT apparatus 10 are denoted by the same reference numerals, and detailed description thereof is omitted.
- the FFT device 30 pipelines the first data rearrangement process, the first butterfly operation process, the second data rearrangement process, the twist multiplication process, and the second butterfly operation process.
- the FFT device 30 has a configuration obtained by removing the third data rearrangement processing unit 13 from the configuration of the FFT device 10.
- the second data rearrangement processing unit 16 performs the rearrangement process performed by the third data rearrangement processing unit 13 in the FFT apparatus 10 with reference to the read address 51. That is, the second data rearrangement processing unit 16 inputs the read address 55 and rearranges the data sequence based on the data dependency on the FFT processing algorithm. Furthermore, in addition to the above rearrangement, the second data rearrangement processing unit 16 outputs X (k) and X (Nk) for an arbitrary k in the output X (k) of the FFT apparatus 30. Is rearranged to output at a time difference within one cycle at most.
- the second data rearrangement processing unit 16 is the order in which the data output from the first butterfly computation processing unit 21 in the sequential order of FIG. 2 is input to the twist multiplication processing unit 31 in FIG. Arbitrary data set shown is rearranged in bit reverse order.
- the second data rearrangement processing unit 16 can be realized with the same configuration as the data rearrangement processing unit 200 shown in FIG.
- the second butterfly calculation processing unit 22 converts the FFT processing result X (k) to an arbitrary value in FIG. Output data in bit reverse order.
- the FFT apparatus 30 can output data in an arbitrary order by specifying the order using the output order setting 56.
- X (k) that is the input value of the operation can be output in as close a cycle as possible.
- X (k) and X (N ⁇ k) can be output with a time difference within one cycle at most. As a result, it is not necessary to add a circuit for performing a new rearrangement on the output.
- the circuit to be added is only the read address generation unit 43, and the circuit scale is very small.
- the third data rearrangement processing unit 13 can be omitted. As a result, the circuit scale and power consumption can be further reduced.
- the FFT processing has been described as an example, but the same applies to IFFT. That is, if the control method of the present embodiment is applied to the IFFT processing apparatus and the output order of the processing results is optimized in consideration of the processing content at the latter stage of the IFFT processing, the processing at the latter stage of the IFFT processing is accelerated. Can do. (Fourth embodiment) Next, an IFFT apparatus that operates in accordance with an arbitrary data set bit reverse order, which is an output order of the FFT apparatus 30, will be described.
- FIG. 11 is a block diagram showing a configuration example of the IFFT apparatus 40 according to the fourth embodiment of the present invention.
- the IFFT apparatus 40 processes the 64-point IFFT decomposed into two-stage radix-8 butterfly processing by a pipeline circuit system in a data flow similar to the FFT data flow shown in FIG.
- N is a positive integer representing the IFFT block size.
- the IFFT device 40 performs 64-point IFFT processing in parallel with 8 data.
- the IFFT device 40 inputs the input X (k) in the arbitrary data set bit reverse order shown in FIG. 10, similar to the output of the FFT device 30.
- the IFFT device 40 outputs the output y (n) in the sequential order shown in FIG.
- the IFFT device 40 includes a first butterfly computation processing unit 21, a first data rearrangement processing unit 17, a twist multiplication processing unit 31, a second butterfly computation processing unit 22, a second data rearrangement processing unit 15, a write An address generation unit 44 is provided.
- the same components as those in the IFFT device 20 are denoted by the same reference numerals, and detailed description thereof is omitted.
- the IFFT device 40 pipelines the first butterfly computation process, the first data rearrangement process, the twist multiplication process, the second butterfly computation process, and the second data rearrangement process.
- the IFFT device 40 has a configuration obtained by removing the first data rearrangement processing unit 14 from the configuration of the IFFT device 20.
- the rearrangement processing that the first data rearrangement processing unit 14 in the IFFT device 20 performs with reference to the write address 53 is performed by the second data rearrangement processing unit 17 in the IFFT device 40. That is, the second data rearrangement processing unit 17 inputs the write address 57 and rearranges the data sequence based on the data dependency on the IFFT processing algorithm. Furthermore, in addition to the above-described rearrangement, the second data rearrangement processing unit 17 performs a rearrangement process for inputting data in an arbitrary data set sequential order.
- the second data rearrangement processing unit 17 inputs the data output by the first butterfly calculation processing unit 21 in the arbitrary data set sequential order of FIG. 4 to the second butterfly calculation processing unit 22.
- the bits are rearranged in the bit reverse order shown in FIG.
- the second data rearrangement processing unit 17 can be realized by the same configuration as the data rearrangement processing unit 300 shown in FIG. (Effect of the fourth embodiment) As described above, in this embodiment, the IFFT device 40 can input data in an arbitrary order by specifying the order using the input order setting 58. Therefore, a new rearrangement unit for the input is not required corresponding to the output order of the FFT device 30.
- the circuit to be added is only the write address generation unit 44, and the circuit scale is very small.
- the first data rearrangement processing unit 14 can be omitted. As a result, the circuit scale and power consumption can be further reduced.
- the IFFT process has been described as an example, but the same applies to the FFT. That is, if the control method of this embodiment is applied to an FFT processing apparatus and the input order of input signals is optimized in consideration of the processing content of the previous stage of the FFT processing, the FFT processing can be speeded up.
- the fast Fourier transform device of the present invention is characterized in that data can be rearranged in an arbitrary order before or after FFT / IFFT conversion. As a result, the processing after data rearrangement can be speeded up.
- the FFT / IFFT is performed in a plurality of stages, the data rearrangement may be performed between a process at a certain stage and a process at the next stage.
- 12 (a), 12 (b), and 12 (c) are block diagrams showing essential configurations included in the fast Fourier transform device of the present invention.
- the fast Fourier transform device 60 includes a Fourier transform unit 61 and a data rearrangement processing unit 62.
- the Fourier transform unit 61 performs a fast Fourier transform or an inverse fast Fourier transform, generates a plurality of output data, and outputs them in the first order.
- the data rearrangement processing unit 62 rearranges the plurality of first output data output in the first order in the second order based on the output order setting.
- the fast Fourier transform device 60 performs data rearrangement after Fourier transform.
- the fast Fourier transform device 70 includes a Fourier transform unit 72 and a data rearrangement processing unit 71.
- the data rearrangement processing unit 71 rearranges the plurality of input data input in the third order in the fourth order based on the input order setting.
- the Fourier transform unit 72 performs fast Fourier transform or inverse fast Fourier transform on the plurality of input data rearranged in the fourth order. As described above, the fast Fourier transform device 70 rearranges data before Fourier transform.
- the fast Fourier transform apparatus 80 includes processing units 81 and 82 and a data rearrangement processing unit 831.
- the fast Fourier transform device 80 performs fast Fourier transform or inverse fast Fourier transform in two stages using the processing units 81 and 82.
- the processing unit 81 generates a plurality of intermediate data and outputs them in the fifth order.
- the data rearrangement processing unit 83 rearranges the plurality of intermediate data input in the fifth order in the sixth order based on the order setting.
- the processing unit 82 performs a predetermined process on the plurality of intermediate data rearranged in the sixth order, and generates output data as a result of the fast Fourier transform or the inverse fast Fourier transform.
- FIG. 13 is a block diagram showing the configuration of the digital filter circuit 400 according to the first embodiment of the present invention.
- the digital filter circuit 400 includes an FFT circuit 413, an IFFT circuit 414, a complex conjugate generation circuit 415, a complex conjugate synthesis circuit 416, a filter circuit 421, a filter circuit 422, and a filter coefficient generation circuit 441.
- the FFT circuit 413 converts the input complex signal x (n) into a frequency domain complex signal 431 by FFT.
- X (k) A (k) + jB (k) (2) Convert to
- n is an integer of 0 ⁇ n ⁇ N ⁇ 1 indicating a signal sample number in the time domain
- N is an integer of 0 ⁇ N indicating the number of FFT conversion samples
- k is a frequency number in the frequency domain 0 ⁇ k ⁇ N ⁇ 1.
- the complex conjugate generation circuit 415 inputs X (Nk) output from the FFT circuit 413 for each frequency number k of 0 ⁇ k ⁇ N ⁇ 1, and inputs the complex conjugate X * (X * (Nk).
- N ⁇ k) A (N ⁇ k) ⁇ jB (N ⁇ k) (4) Is generated.
- the complex conjugate generation circuit 415 outputs the input complex signal X (k) as the complex signal 432, and outputs the generated complex signal X * (N ⁇ k) as the complex signal 433.
- the filter coefficient generation circuit 441 calculates the complex coefficient C1 () from the input complex coefficients V (k), W (k), and H (k) for each frequency number k where 0 ⁇ k ⁇ N ⁇ 1.
- k) ⁇ V (k) + W (k) ⁇ ⁇ H (k) (5)
- complex coefficient C2 (k) ⁇ V (k) ⁇ W (k) ⁇ ⁇ H (k) (6) Is generated.
- V (k), W (k), and H (k) are coefficients in the frequency domain given from the upper circuit (not shown) of the digital filter circuit 400, and are obtained by real number calculation in the time domain. This corresponds to the real filter coefficient when filtering is performed. Details of V (k), W (k), and H (k) will be described later.
- the filter coefficient generation circuit 441 outputs the generated complex coefficient C1 (k) as the complex signal 445. Further, the filter coefficient generation circuit 441 generates a complex signal C2 (N ⁇ k) from the complex signal C2 (k) (formula (6)) and outputs it as a complex signal 446.
- the filter coefficient generation circuit 441 outputs C1 (k) to the complex signal 445.
- complex number filter processing by complex number multiplication is performed.
- the filter coefficient generation circuit 441 outputs C2 to the complex signal 446.
- (N ⁇ k) formula (6)
- complex number filter processing by complex number multiplication is performed.
- C1 (k) and C2 (k) are divided into real part and imaginary part respectively.
- C1 (k) C1I (k) + jC1Q (k) (9)
- C2 (k) C2I (k) + jC2Q (k) (10) Can be written.
- the IFFT circuit 414 outputs X ′′ (k) (formula (11)) output from the complex conjugate synthesis circuit 416 to the complex number signal 436 for each frequency number k of 0 ⁇ k ⁇ N ⁇ 1. Generate and output a complex signal x ′′ (n) in time domain by IFFT.
- the FFT circuit 10 As an implementation method of the FFT circuit 413, the FFT circuit 10 according to the first embodiment of the present invention can be used. Similarly, the IFFT circuit 20 according to the second embodiment of the present invention can be used as a method for realizing the IFFT circuit 414.
- the FFT circuit 20 according to the third embodiment of the present invention can be used as a method for realizing the FFT circuit 413.
- the IFFT circuit 40 according to the fourth embodiment of the present invention can be used as a method for realizing the IFFT circuit 414.
- FIG. 14 is a block diagram showing details of the configuration of the complex conjugate generation circuit 415.
- the complex conjugate generation circuit 415 includes data storage units 452 and 453 and data selection units 454 and 455.
- X (k) and X * (N ⁇ k) are divided into real part and imaginary part respectively.
- X (k) XI (k) + jXQ (k) (12)
- X * (N ⁇ k) X * I (N ⁇ k) + jX * Q (N ⁇ k) (13) Can be written.
- FIG. 15 is a block diagram showing details of the configuration of the filter circuit 421.
- XI ′ (k) and XQ ′ (k) are the real part and the imaginary part of X ′ (k), respectively, and are given by the following equations.
- FIG. 16 is a block diagram showing details of the configuration of the filter circuit 422.
- X * I ′ (N ⁇ k) and X * Q ′ (N ⁇ k) are the real part and the imaginary part of X * ′ (N ⁇ k), respectively, and are given by the following equations.
- FIG. 17 is a block diagram showing details of the configuration of the complex conjugate synthesis circuit 416.
- XI "(k) and XQ" (k) are the real part and imaginary part of X "(k), respectively, and are given by the following equations.
- XI "(k) 1/2 ⁇ XI '(k) + X * I' (N-k) ⁇ (21)
- XQ "(k) 1/2 ⁇ XQ '(k) + X * Q' (N-k) ⁇ (22)
- XI ′ (k), XQ ′ (k), X * I ′ (N ⁇ k), and X * Q ′ (N ⁇ k) are expressed by the equations (15), (16), (18), (19)
- the filter coefficient generation circuit 441 generates complex coefficient C1 (k) and C2 (k) used in the filter circuits 421 and 422.
- FIG. 18 is a block diagram showing details of the configuration of the filter coefficient generation circuit 441.
- the filter coefficient generation circuit 441 generates V (k) from complex coefficients V (k) and W (k) input from an upper circuit (not shown) for each frequency number k of 0 ⁇ k ⁇ N ⁇ 1. Calculate + W (k) and V (k) -W (k).
- V (k) + W (k) VI (k) + WI (k) + jVQ (k) + jWQ (k) (23)
- V (k) -W (k) VI (k) -WI (k) + jVQ (k) -jWQ (k) (24) It is.
- VI (k) and VQ (k) are the real part and imaginary part of V (k), respectively, and WI (k) and WQ (k) are the real part and imaginary part of W (k), respectively.
- H (k) is also divided into a real part and an imaginary part.
- H (k) HI (k) + jHQ (k) (25) Can be written.
- the filter coefficient generation circuit 441 calculates and outputs complex coefficient C1 (k) and C2 (k) defined by the following equations.
- C1I (k) and C1Q (k) are the real part and imaginary part of C1 (k), respectively
- C2I (k) and C2Q (k) are the real part and imaginary part of C2 (k), respectively. It is.
- C1I (k) ⁇ VI (k) + WI (k) ⁇ ⁇ HI (k) ⁇ ⁇ VQ (k) + WQ (k) ⁇ ⁇ HQ (k) (29)
- C1Q (k) ⁇ VQ (k) + WQ (k) ⁇ ⁇ HI (k) + ⁇ VI (k) + WI (k) ⁇ ⁇ HQ (k) (30) It is.
- C2I (k) ⁇ VI (k) ⁇ WI (k) ⁇ ⁇ HI (k) ⁇ ⁇ VQ (k) ⁇ WQ (k) ⁇ ⁇ HQ (k) (32)
- C2Q (k) ⁇ VQ (k) ⁇ WQ (k) ⁇ ⁇ HI (k) + ⁇ VI (k) ⁇ WI (k) ⁇ ⁇ HQ (k) (33) It is.
- the digital filter circuit 400 generates a frequency domain complex signal by performing an FFT conversion on the time domain input signal.
- the digital filter circuit 400 independently uses the two types of coefficients generated from V (k), W (k), and H (k) for the real part and the imaginary part of the complex signal in the frequency domain. Filtering is performed, and the result is converted into a signal in the time domain by IFFT. As described above, in the digital filter circuit 400, the FFT and IFFT are executed only once for the time domain input signal.
- the two types of coefficients used for the filtering process can minimize the number of FFT and IFFT.
- the physical meaning of V (k), W (k), H (k) and the filter processing using the coefficients C1 (k) and C2 (k) generated from these are used in the time domain. The principle that enables filter processing in the frequency domain equivalent to the desired filter processing will be described.
- R (k) is a frequency-domain complex signal obtained by transforming a real number real part signal r (n) in the time domain by a real number FFT
- S (k) is a real number imaginary part signal s (n in the time domain. ) Is a complex signal in the frequency domain transformed by a real number FFT.
- X * (N ⁇ k) R (k) ⁇ jS (k) (35)
- X * (N ⁇ k) is a complex conjugate of X (N ⁇ k).
- Equation (38) shows that the signal X ′′ (k) before IFFT is converted into filter coefficients V (k), W (k) and H (k), and R (k) and S in signal X (k) after FFT.
- R (k) is a frequency domain complex signal obtained by transforming a real number real part signal r (n) in the time domain by a real number FFT, and S (k) is represented by (k).
- the real number imaginary part signal s (n) in the time domain is a complex number signal in the frequency domain converted by the real number FFT, that is, the equation (38) is applied to the signal X (k) after the FFT.
- a complex filter coefficient in the frequency domain corresponding to the real filter coefficient when the real part signal r (n) is filtered by a real number operation in the time domain is assigned to V (k). .
- Filter processing with coefficient W (k) for S (k) is assigned to V (k).
- the digital filter circuit 400 includes a frequency domain complex signal S (k) obtained by transforming the imaginary part signal s (n) in the time domain by a real FFT.
- the filter processing with the filter coefficient W (k) is performed. Therefore, W (k) is assigned a complex filter coefficient in the frequency domain corresponding to the real filter coefficient when filter processing by real number computation is performed on the imaginary part signal s (n) in the time domain.
- R (k) V (k) + jS (k) W (k) is a time composed of two signals obtained by independently filtering the real part signal r (n) and the imaginary part signal s (n) in the time domain. It is a complex signal in the frequency domain corresponding to the signal in the domain.
- the signals obtained by independently filtering the real part signal r (n) and the imaginary part signal s (n) correspond to X ′ (k) and X * ′ (N ⁇ k) in FIGS.
- the time-domain signal composed of r ′ (n) and s ′ (n) corresponds to x ′′ (n) in FIG. 13.
- R (k) V (k) + jS (k) W (k) is a frequency domain signal corresponding to a time domain signal that is independently filtered for each of the real and imaginary parts in the time domain.
- a coefficient may be used. That is, H (k) is assigned a complex filter coefficient in the frequency domain corresponding to the complex filter coefficient when filter processing by complex number computation is performed on the complex signal x (n) in the time domain. Good.
- a frequency domain coefficient H (k) corresponding to the filter coefficient is set.
- the FFT circuit 10 according to the first embodiment of the present invention and the IFFT circuit 20 according to the second embodiment of the present invention can be used for realizing the FFT circuit and the IFFT circuit, respectively.
- the FFT circuit 30 according to the third embodiment of the present invention and the IFFT circuit 40 according to the fourth embodiment of the present invention can be used for realizing the FFT circuit and the IFFT circuit, respectively.
- the FFT circuit and the IFFT circuit according to the embodiment of the present invention can reduce the circuit scale and power consumption for performing the FFT process and the IFFT process, respectively. Therefore, by using the FFT circuit or IFFT circuit according to the embodiment of the present invention for the filter processing, it is possible to reduce the circuit scale and power consumption for performing the filter processing.
- each embodiment may be executed by software using a computer provided in a predetermined apparatus, for example, a DSP (Digital Signal Processor). That is, a computer program for performing each process is read and executed by a DSP (not shown).
- DSP Digital Signal Processor
- data rearrangement processing may be performed using a program.
- data rearrangement processing may be performed by using a DSP and a memory to control writing of data to the memory and reading of data from the memory by a program.
- FFT processing may be performed using a program in the first and third embodiments
- IFFT processing may be performed in the second and fourth embodiments.
- processing for obtaining C1 (k) and C2 (k) from V (k), W (k), and H (k) FFT processing, and conjugate complex number X of X (N ⁇ k)
- the processing for obtaining * (N ⁇ k), filter processing, and IFFT processing may be performed using a program.
- the program may be stored in a non-transitory medium such as a ROM (Read Only Memory), a RAM (Random Access Memory), a semiconductor memory device such as a flash memory, an optical disk, a magnetic disk, or a magneto-optical disk.
- a non-transitory medium such as a ROM (Read Only Memory), a RAM (Random Access Memory), a semiconductor memory device such as a flash memory, an optical disk, a magnetic disk, or a magneto-optical disk.
- a part or all of the above-described embodiment can be described as in the following supplementary notes, but is not limited thereto.
- Appendix 1 A first transform unit that performs fast Fourier transform or inverse fast Fourier transform to generate a plurality of first output data, and outputs the first output data in a first order; and the plurality of second output data that are output in the first order.
- a fast Fourier transform device comprising: a first data rearrangement processing unit that rearranges one output data in a second order based on an output order setting.
- the first conversion processing unit includes a butterfly calculation processing unit that performs butterfly calculation processing and outputs the plurality of first output data in the first order
- the first data rearrangement processing unit includes: The fast Fourier transform device according to appendix 1, wherein the plurality of first data after the butterfly computation process is rearranged in the second order.
- the first data rearrangement processing unit includes: a first storage unit that stores the plurality of first output data; and the plurality of first data from the first storage unit based on the output order setting.
- a supplementary note 1 or 2 further comprising a read address generation unit for generating a read address of the output data, storing the plurality of first output data in the first order, and reading in the second order.
- a fast Fourier transform device comprising: a second transform unit that performs fast Fourier transform or inverse fast Fourier transform on the plurality of second input data.
- the second conversion processing unit includes a butterfly calculation processing unit that performs a butterfly calculation process, and the second data rearrangement processing unit sends the plurality of second data to the butterfly calculation processing unit in the fourth order.
- the fast Fourier transform device according to appendix 5, wherein data is input.
- the second data rearrangement processing unit includes: a second storage unit that stores the plurality of second input data; and the plurality of second data to the second storage unit based on the input order setting.
- a supplementary address 5 or 6 includes a write address generation unit that generates a write address of the data, and stores the plurality of second output data in the third order and reads in the fourth order The described fast Fourier transform apparatus.
- a complex conjugate generator for generating second complex number data including a complex number of the complex number, and first, second and third input filter coefficients of the complex number, and first and second frequency domain filter coefficients of the complex number
- a filter coefficient generation unit for generating the first complex number data, a first filter unit for performing a filtering process on the first complex number data with the first frequency domain filter coefficient and outputting a third complex number data, and the second A second filter unit that performs a filtering process on the complex number data with the second frequency domain filter coefficient and outputs a fourth complex number data; 3 and complex signal, the fourth digital filter device, characterized in that it comprises a complex conjugate synthesis unit which generates a fifth complex number data by synthesizing the complex signal, the.
- the fast Fourier transform device according to attachment 5 is provided, wherein the second data rearrangement processing unit receives the fifth complex number data input in the third order based on the input order setting.
- the second conversion unit performs inverse Fourier transform on the fifth complex number data rearranged in the fourth order to convert it into a time domain signal.
- the digital filter device according to appendix 10.
- the complex conjugate synthesizer adds the first complex number of frequency number k included in the third complex number data and the fourth complex number data for each frequency number k in the range of 0 ⁇ k ⁇ N ⁇ 1. 13.
- the filter coefficient generation unit performs complex addition of the first frequency domain filter coefficient and the second input filter coefficient to the first input filter coefficient, and then complex-multiplies the third input filter coefficient.
- the second frequency domain filter coefficient is generated by complex subtracting the second input filter coefficient from the first input filter coefficient and then complex-multiplying the third input filter coefficient.
- the first frequency domain filter coefficient is a complex number in the frequency domain corresponding to the filter coefficient for the real part of the complex input signal in the time domain filter process that is a filter process in the time domain for the first input data.
- the second frequency domain filter coefficient is a complex filter coefficient in the frequency domain corresponding to the filter coefficient for the imaginary part of the first input data in the time domain filter processing,
- the frequency domain filter coefficient 3 is a complex filter coefficient in the frequency domain corresponding to the filter coefficient for the first input data in the time domain filter processing.
- (Appendix 16) Rearrangement based on output order settings of a plurality of output data generated by fast Fourier transform or inverse fast Fourier transform, or rearrangement based on input order settings of a plurality of input data of the fast Fourier transform or inverse fast Fourier transform Fast Fourier transform method to perform replacement.
- (Appendix 17) The computer included in the fast Fourier transform device is rearranged based on the output order setting of the means for performing the fast Fourier transform or the inverse fast Fourier transform, and the plurality of output data generated by the fast Fourier transform or the inverse fast Fourier transform.
- Non-temporary memory storing a fast Fourier transform program for functioning as a rearranging means or a rearranging means for rearranging a plurality of input data of the fast Fourier transform or the inverse fast Fourier transform based on an input order setting Medium.
Landscapes
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Discrete Mathematics (AREA)
- Complex Calculations (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
Abstract
Description
(発明の目的)
本発明は、デジタル信号処理におけるFFT/IFFT処理において、処理対象のデータの入力や処理結果の出力を任意の順序で行うことが可能な高速フーリエ変換回路、高速フーリエ変換処理方法、及び高速フーリエ変換プログラム記憶媒体を提供することを目的とする。
図1は、本発明の第1の実施形態に係るFFT装置10の構成例を示すブロック図である。FFT装置10は、図19に示されたデータフロー500に従って、2段階の基数8のバタフライ処理に分解された64ポイントFFTを、パイプライン回路方式によって処理する。FFT装置10は、時間領域のデータx(n)(n=0,1,・・・ ,N-1)を入力し、x(n)をFFT処理によりフーリエ変換して周波数領域の信号X(k)(k=0,1,・・・,N-1)を生成し、出力する。ここで、NはFFTブロックサイズを表す正整数である。
ps(i)=8(s-1)+i
である。そして、各データ組は、処理のサイクルの進行に対応して、P1、P2、P3、P4、P5、P6、P7、P8の順に並べられている。つまり、逐次順序とは、is個のデータを、先頭のデータからi個ずつデータ順に並べてデータ組をs個作成し、そのデータ組をサイクル順に並べたものである。
qs(i)=(s-1)+8i
である。そして、各データ組は、処理のサイクルの進行に対応して、Q1、Q2、Q3、Q4、Q5、Q6、Q7、Q8の順に並べられている。つまり、ビットリバース順序とは、逐次順序で入力されたis個のデータを、先頭のデータからs個ずつサイクル順に並べ、同じサイクルのi個のデータを1つの組としてデータ順に並べたものである。
Qs(i)=Pi(s)
である。このように、Qs(i)とPi(s)とは、各データ組を構成するデータについての、サイクルの進行に対する順序とデータ位置に対する順序が入れ替えられた関係にある。従って、ビットリバース順序で入力されたデータを、ビットリバース順序に従って並べ替えると、逐次順序になる。
1サイクル目:
データ組D1を構成するX(0),X(1),・・・,X(7)の8データが出力される。
2サイクル目:
データ組D8を構成するX(56),X(57),・・・,X(63)の8データが出力される。
3サイクル目:
データ組D2を構成するX(8),X(9),・・・,X(15)の8データが出力される。
4サイクル目:
データ組D7を構成するX(48),X(49),・・・,X(55)の8データが出力される。
5サイクル目:
データ組D3を構成するX(16),X(17),・・・,X(23)の8データが出力される。
6サイクル目:
データ組D6を構成するX(40),X(41),・・・,X(47)の8データが出力される。
7サイクル目:
データ組D4を構成するX(24),X(25),・・・,X(31)の8データが出力される。
8サイクル目:
データ組D5を構成するX(32),X(33),・・・,X(39)の8データが出力される。
(第1の実施形態の効果)
以上のように、本実施形態では、FFT装置10は、出力順序設定52を用いて順序を指定することによって、任意の順序でデータを出力することができる。
(第2の実施形態)
第1の実施形態とは逆に、FFT/IFFT処理の前段の処理結果が、その処理に独自の順序で出力され、FFT/IFFT処理装置に入力される場合がある。この場合は、入力された前段の処理結果を、FFT/IFFT処理に適した順序に並べ替えることが、FT/IFFT処理の高速化や、回路規模及び消費電力の増加の抑制のために有効である。
(第2の実施形態の効果)
以上のように、本実施形態では、IFFT装置20は、入力順序設定54を用いて順序を指定することによって、任意の順序でデータを入力することができる。従って、FFT装置10の出力順序に対応して、入力に対する新たな並べ替え手段を必要としない。
(第3の実施形態)
FFT装置10において、第2のデータ並べ替え処理部12に改造を加えることによって、第3のデータ並べ替え処理部13は省略することができる。FFT装置10から第3のデータ並べ替え処理部13を除いたFFT装置30の構成を、図9を参照して説明する。
1サイクル目:
データ組Q1を構成するX(0),X(8),・・・,X(56)の8データが出力される。
2サイクル目:
データ組Q8を構成するX(7),X(15),・・・,X(63)の8データが出力される。
3サイクル目:
データ組Q2を構成するX(1),X(9),・・・,X(57)の8データが出力される。
4サイクル目:
データ組Q7を構成するX(6),X(14),・・・,X(62)の8データが出力される。
5サイクル目:
データ組Q3を構成するX(2),X(10),・・・,X(58)の8データが出力される。
6サイクル目:
データ組Q6を構成するX(5),X(13),・・・,X(61)の8データが出力される。
7サイクル目:
データ組Q4を構成するX(3),X(11),・・・,X(59)の8データが出力される。
8サイクル目:
データ組Q5を構成するX(4),X(12),・・・,X(60)の8データが出力される。
(第3の実施の形態の効果)
以上のように、本実施形態では、FFT装置30は、出力順序設定56を用いて順序を指定することによって、任意の順序でデータを出力することができる。
(第4の実施形態)
次に、FFT装置30の出力の順序である任意データ組ビットリバース順序に対応して動作するIFFT装置について説明する。
(第4の実施形態の効果)
以上のように、本実施形態では、IFFT装置40は、入力順序設定58を用いて順序を指定することによって、任意の順序でデータを入力することができる。従って、FFT装置30の出力順序に対応して、入力に対する新たな並べ替え手段を必要としない。
(第5の実施形態)
図13は、本発明の第1の実施形態に係るディジタルフィルタ回路400の構成を示すブロック図である。ディジタルフィルタ回路400は、FFT回路413、IFFT回路414、複素共役生成回路415、複素共役合成回路416、フィルタ回路421、フィルタ回路422、フィルタ係数生成回路441、を備える。
x(n)=r(n)+js(n) ・・・(1)
を入力する。
X(k)=A(k)+jB(k) ・・・(2)
に変換する。
X(N-k)=A(N-k)+jB(N-k) ・・・(3)
を生成して出力する。
X*(N-k)=A(N-k)-jB(N-k) ・・・(4)
を生成する。
C1(k)={V(k)+W(k)}×H(k) ・・・(5)
及び、複素数係数
C2(k)={V(k)-W(k)}×H(k) ・・・(6)
を生成する。
X'(k)=X(k)×C1(k) ・・・(7)
を計算して、複素数信号434として出力する。
X*'(N-k)=X*(N-k)×C2(N-k) ・・・(8)
を計算して、複素数信号435として出力する。
C1(k)=C1I(k)+jC1Q(k) ・・・(9)
C2(k)=C2I(k)+jC2Q(k) ・・・(10)
と書くことができる。
X"(k)=1/2×{X'(k)+X*'(N-k)} ・・・(11)
を計算して、複素数信号436として出力する。
X*(N-k)=A(N-k)-jB(N-k) ・・・(4)
を計算して出力する。
X(k)=XI(k)+jXQ(k) ・・・(12)
X*(N-k)=X*I(N-k)+jX*Q(N-k) ・・・(13)
と書くことができる。
X'(k)=XI'(k)+jXQ'(k)
=X(k)×C1(k) ・・・(14)
を計算して出力する。
XQ'(k)=XI(k)×C1Q(k)+XQ(k)×C1I(k) ・・・(16)
図16は、フィルタ回路422の構成の詳細を示すブロック図である。フィルタ回路422は、複素共役生成回路415が複素信号線433に出力するX*(N-k)(=X*I(N-k)+jX*Q(N-k)。式(13))と複素数係数C2(k)(=C2I(k)+jC2Q(k)。式(10))を入力して、
X*'(N-k)=X*I'(N-k)+jX*Q'(N-k)
=X*(N-k)×C2(N-k) ・・・(17)
を計算して出力する。
X*Q'(N-k)=X*I(N-k)×C2Q(N-k)+X*Q(N-k)×C2I(N-k)・・・(19)
図17は、複素共役合成回路416の構成の詳細を示すブロック図である。複素共役合成回路416は、0≦k≦N-1の周波数番号kのそれぞれについて、フィルタ回路421が複素数信号434に出力するX'(k)(=XI'(k)+jXQ'(k)。式(14))と、フィルタ回路422が複素数信号435に出力するX*'(N-k)(=X*I'(N-k)+jX*Q'(N-k)。式(17))とを入力して、
X"(k)=XI"(k)+jXQ"(k)
=1/2{X'(k)+X*'(N-k)} ・・・(20)
を計算して出力する。
XQ"(k)=1/2{XQ'(k)+X*Q'(N-k)} ・・・(22)
ここで、XI'(k)、XQ'(k)、X*I'(N-k)、X*Q'(N-k)は、それぞれ式(15)、(16)、(18)、(19)の通りである。
V(k)+W(k)=VI(k)+WI(k)+jVQ(k)+jWQ(k) ・・・(23)
V(k)-W(k)=VI(k)-WI(k)+jVQ(k)-jWQ(k) ・・・(24)
である。VI(k)及びVQ(k)は、それぞれV(k)の実数部と虚数部であり、WI(k)及びWQ(k)は、それぞれW(k)の実数部と虚数部である。
H(k)=HI(k)+jHQ(k) ・・・(25)
と書くことができる。
={V(k)+W(k)}×H(k) ・・・(26)
C2(k)=C2I(k)+jC2Q(k)
={V(k)-W(k)}×H(k) ・・・(27)
ここで、C1I(k)、C1Q(k)は、それぞれC1(k)の実数部と虚数部であり、C2I(k)、C2Q(k)は、それぞれC2(k)の実数部と虚数部である。
C1(k)={VI(k)+WI(k)+jVQ(k)+jWQ(k)}×{HI(k)+jHQ(k)}・・・(28)
である。
C1I(k)={VI(k)+WI(k)}×HI(k)-{VQ(k)+WQ(k)}×HQ(k)・・・(29)
C1Q(k)={VQ(k)+WQ(k)}×HI(k)+{VI(k)+WI(k)}×HQ(k)・・・(30)
である。
C2(k)=C2I(k)+jC2Q(k)
={V(k)-W(k)}×H(k)
={VI(k)-WI(k)+jVQ(k)-jWQ(k)}×{HI(k)+jHQ(k)}・・・(31)
である。
C2I(k)={VI(k)-WI(k)}×HI(k)-{VQ(k)-WQ(k)}×HQ(k)・・・(32)
C2Q(k)={VQ(k)-WQ(k)}×HI(k)+{VI(k)-WI(k)}×HQ(k)・・・(33)
である。
X(k)=R(k)+jS(k) ・・・(34)
から、複素共役生成回路15がX*(N-k)を生成する。
ここで、X*(N-k)は、X(N-k)の複素共役である。
X'(k)=X(k)×C1(k)
={R(k)+jS(k)}×{V(k)+W(k)}×H(k)
=R(k)V(k)H(k)+R(k)W(k)H(k)+jS(k)V(k)H(k)+jS(k)W(k)H(k)・・・(36)
となる。
X*'(N-k)=X*(N-k)×C2(N-k)
={R(k)-jS(k)}×{V(k)-W(k)}×H(k)
=R(k)V(k)H(k)-R(k)W(k)H(k)-jS(k)V(k)H(k)+jS(k)W(k)H(k) ・・・(37)
となる。
X"(k)=1/2×{X'(k)+X*'(N-k)}
=1/2×{2×R(k)V(k)H(k)+2×jS(k)W(k)H(k)}
=R(k)V(k)H(k)+jS(k)W(k)H(k)
={R(k)V(k)+jS(k)W(k)}×H(k) ・・・(38)
となる。
1)R(k)に対する係数V(k)によるフィルタ処理
まず、ディジタルフィルタ回路400は、時間領域における実数部信号r(n)が実数FFTにより変換された周波数領域の複素数信号R(k)に対して、フィルタ係数V(k)によるフィルタ処理を行う。従って、V(k)には、実数部信号r(n)に対して時間領域で実数演算によるフィルタ処理を行った場合の、実数フィルタ係数に対応する、周波数領域での複素数フィルタ係数が割り当てられる。
2)S(k)に対する係数W(k)によるフィルタ処理
同様に、ディジタルフィルタ回路400は、時間領域における虚数部信号s(n)が実数FFTにより変換された周波数領域の複素数信号S(k)に対して、フィルタ係数W(k)によるフィルタ処理を行う。従って、W(k)には、虚数部信号s(n)に対して時間領域で実数演算によるフィルタ処理を行った場合の、実数フィルタ係数に対応する、周波数領域での複素数フィルタ係数が割り当てられる。
3)1)、2)のフィルタ処理結果に対する係数H(k)によるフィルタ処理
次に、ディジタルフィルタ回路400は、それぞれ独立に処理された上記の2つのフィルタ処理後の、R(k)V(k)及びS(k)W(k)からなる複素数信号R(k)V(k)+jS(k)W(k)に対して、フィルタ係数H(k)によるフィルタ処理を行う。
(第5の実施形態の効果)
以上のように、本実施形態によれば、複素数信号の実数部及び虚数部のそれぞれに対する時間領域でのフィルタ係数に対応する、2種類の周波数領域のフィルタ係数と、複素信号に対する時間領域でのフィルタ係数に対応する周波数領域の係数を用いたフィルタ処理が行われる。すなわち、時間領域における複素数信号の実数部及び虚数部のそれぞれに対する実数演算による独立したフィルタ処理と、時間領域における複素数信号に対する複素数演算によるフィルタ処理と、に対応する周波数領域におけるフィルタ処理が行われる。従って、フィルタ処理前のFFTを行うFFT回路及びフィルタ処理後のIFFTを行うIFFT回路を、それぞれ1個のみを用いて、所望のフィルタ処理を実現することができる。その結果、フィルタ処理を行うための回路規模や消費電力の低減を図ることができるという効果がある。
(付記1)
高速フーリエ変換又は逆高速フーリエ変換を行って、複数の第1の出力データを生成し、第1の順序で出力する第1の変換部と、前記第1の順序で出力された前記複数の第1の出力データを、出力順序設定に基づいて第2の順序に並べ替える第1のデータ並べ替え処理部と、を備える高速フーリエ変換装置。
(付記2)
前記第1の変換処理部は、バタフライ演算処理を行い、前記第1の順序で前記複数の第1の出力データを出力するバタフライ演算処理部を含み、前記第1のデータ並べ替え処理部は、前記バタフライ演算処理後の前記複数の第1のデータを前記第2の順序に並べ替えることを特徴とする付記1に記載の高速フーリエ変換装置。
(付記3)
前記第1のデータ並べ替え処理部は、前記複数の第1の出力データを記憶する第1の記憶部と、前記出力順序設定に基づいて、前記第1の記憶部からの前記複数の第1の出力データの読み出しアドレスを生成する読み出しアドレス生成部を備え、前記複数の第1の出力データを前記第1の順序で記憶し、前記第2の順序で読み出すことを特徴とする付記1又は2に記載の高速フーリエ変換装置。
(付記4)
前記複数の第1の出力データをX(k)(kは0≦k≦N-1の整数、NはN>0の高速フーリエ変換又は逆高速フーリエのポイント数)とするとき、前記第1のデータ並べ替え処理部は、任意のkに対してX(k)とX(N-k)とを高々1サイクル以内の時間差で出力することを特徴とする付記1乃至3のいずれかに記載の高速フーリエ変換装置。
(付記5)
第3の順序で入力される複数の第2の入力データを、入力順序設定に基づいて第4の順序に並べ替える第2のデータ並べ替え処理部と、前記第4の順序に並べ替えられた前記複数の第2の入力データに対して、高速フーリエ変換又は逆高速フーリエ変換を行う第2の変換部と、を備える高速フーリエ変換装置。
前記第2の変換処理部は、バタフライ演算処理を行うバタフライ演算処理部を含み、前記第2のデータ並べ替え処理部は、前記第4の順序で前記バタフライ演算処理部に前記複数の第2のデータを入力することを特徴とする付記5に記載の高速フーリエ変換装置。
前記第2のデータ並べ替え処理部は、前記複数の第2の入力データを記憶する第2の記憶部と、前記入力順序設定に基づいて、前記第2の記憶部への前記複数の第2のデータの書き込みアドレスを生成する書き込みアドレス生成部を備え、前記複数の第2の出力データを前記第3の順序で記憶し、前記第4の順序で読み出すことを特徴とする付記5又は6に記載の高速フーリエ変換装置。
前記複数の第1の入力データをX(k)(kは0≦k≦N-1の整数、NはN>0の高速フーリエ変換又は逆高速フーリエのポイント数)とするとき、前記第2のデータ並べ替え処理部は、任意のkに対してX(k)とX(N-k)とを高々1サイクル以内の時間差で前記バタフライ演算処理部に入力することを特徴とする付記5乃至7のいずれかに記載の高速フーリエ変換装置。
(付記9)
付記1又は5に記載の高速フーリエ変換装置を含むディジタルフィルタ装置。
(付記10)
付記1に記載の高速フーリエ変換装置と、
前記高速フーリエ変換装置により、入力された時間領域の複素数である前記複数の第1の入力データがフーリエ変換され生成された周波数領域の複数の第1の複素数データを構成する、すべての複素数のそれぞれの共役複素数を含む第2の複素数データを生成する複素共役生成部と、入力された複素数の第1、第2及び第3の入力フィルタ係数から、複素数の第1及び第2の周波数領域フィルタ係数を生成するフィルタ係数生成部と、前記第1の複素数データに対して前記第1の周波数領域フィルタ係数によりフィルタ処理を行い、第3の複素数データを出力する第1のフィルタ部と、前記第2の複素数データに対して前記第2の周波数領域フィルタ係数によりフィルタ処理を行い、第4の複素数データを出力する第2のフィルタ部と、前記第3の複素数信号と、前記第4の複素数信号とを合成して第5の複素数データを生成する複素共役合成部と、を備えることを特徴とするディジタルフィルタ装置。
(付記11)
付記5に記載の高速フーリエ変換装置を備え、前記第2のデータ並べ替え処理部は、前記第3の順序で入力される前記第5の複素数データを、前記入力順序設定に基づいて前記第4の順序に並べ替え、前記第2の変換部は、前記第4の順序に並べ替えられた前記第5の複素数データに対して逆フーリエ変換を行って時間領域の信号に変換することを特徴とする付記10記載のディジタルフィルタ装置。
前記フーリエ変換及び前記逆フーリエ変換の変換サンプル数をN(NはN>0の整数)とするとき、前記複素共役生成部は、前記第1の複素数データに含まれる周波数番号(N-k)の複素数の共役複素数を前記第2の複素数データとして生成することを特徴とする付記10又は11記載のディジタルフィルタ装置。
前記複素共役合成部は、0≦k≦N-1の範囲の周波数番号kのそれぞれについて、前記第3の複素数データに含まれる周波数番号kの第1の複素数と、前記第4の複素数データに含まれる周波数番号(N-k)の第2の複素数とを、複素加算して前記第5の複素数信号を生成する、ことを特徴とする付記12に記載のディジタルフィルタ装置。
前記フィルタ係数生成部は、前記第1の周波数領域フィルタ係数を、前記第1の入力フィルタ係数に前記第2の入力フィルタ係数を複素加算したのち、さらに前記第3の入力フィルタ係数を複素乗算して生成し、前記第2の周波数領域フィルタ係数を、前記第1の入力フィルタ係数から前記第2の入力フィルタ係数を複素減算したのち、さらに前記第3の入力フィルタ係数を複素乗算して生成する、
ことを特徴とする付記10乃至13のいずれかに記載のディジタルフィルタ装置。
前記第1の周波数領域フィルタ係数は、前記第1の入力データに対する時間領域でのフィルタ処理である時間領域フィルタ処理における、前記複素入力信号の実数部に対するフィルタ係数に対応する、周波数領域での複素数フィルタ係数であり、前記第2の周波数領域フィルタ係数は、前記時間領域フィルタ処理における、前記第1の入力データの虚数部に対するフィルタ係数に対応する、周波数領域での複素数フィルタ係数であり、前記第3の周波数領域フィルタ係数は、前記時間領域フィルタ処理における、前記第1の入力データに対するフィルタ係数に対応する、周波数領域での複素数フィルタ係数であることを特徴とする付記10乃至14のいずれかに記載のディジタルフィルタ装置。
(付記16)
高速フーリエ変換若しくは逆高速フーリエ変換により生成された複数の出力データの、出力順序設定に基づく並べ替え、又は前記高速フーリエ変換若しくは前記逆高速フーリエ変換の複数の入力データの、入力順序設定に基づく並べ替えを行う高速フーリエ変換方法。
(付記17)
高速フーリエ変換装置が備えるコンピュータを、高速フーリエ変換又は逆高速フーリエ変換を行う手段、及び前記高速フーリエ変換若しくは前記逆高速フーリエ変換により生成された複数の出力データの、出力順序設定に基づいて並べ替える並べ替え手段、又は前記高速フーリエ変換若しくは前記逆高速フーリエ変換の複数の入力データの、入力順序設定に基づいて並べ替える並べ替え手段として機能させるための高速フーリエ変換プログラムを格納した非一時的な記憶媒体。
20、40 IFFT装置
11、12、13、14、15、16、17 データ並べ替え処理部
21、22 バタフライ演算処理部
31 ひねり乗算処理部
41、43 読み出しアドレス生成部
42、44 書き込みアドレス生成部
51、55 読み出しアドレス
52、56 出力順序設定
53、57 書き込みアドレス
54、58 入力順序設定
60、70、80 高速フーリエ変換装置
61、72 フーリエ変換部
62、71、83 データ並べ替え処理部
81、82 処理部
100、200、300 データ並べ替え処理部
101a~101h データ記憶位置
102a~102h データ読み出し位置
201a~201h データ記憶位置
301a~301h データ記憶位置
400 ディジタルフィルタ回路
413 FFT回路
414 IFFT回路
415 複素共役生成回路
416 複素共役合成回路
421 フィルタ回路
422 フィルタ回路
431~436 複素数信号
441 フィルタ係数生成回路
445、446 複素数信号
500 データフロー
501 データ並べ替え処理
502、503 バタフライ演算処理
504 ひねり演算処理
505 部分データフロー
600 FFT装置
601 FFT部
602 データ並べ替え処理部
Claims (10)
- 高速フーリエ変換又は逆高速フーリエ変換を行って、複数の第1の出力データを生成し、第1の順序で出力する第1の変換手段と、
前記第1の順序で出力された前記複数の第1の出力データを、出力順序設定に基づいて第2の順序に並べ替える第1のデータ並べ替え処理手段と、
を備える高速フーリエ変換装置。 - 前記第1の変換処理手段は、バタフライ演算処理を行い、前記第1の順序で前記複数の第1の出力データを出力するバタフライ演算処理手段を含み、
前記第1のデータ並べ替え処理手段は、前記バタフライ演算処理後の前記複数の第1のデータを前記第2の順序に並べ替える
ことを特徴とする請求項1に記載の高速フーリエ変換装置。 - 前記第1のデータ並べ替え処理手段は、
前記複数の第1の出力データを記憶する第1の記憶手段と、前記出力順序設定に基づいて、前記第1の記憶手段からの前記複数の第1の出力データの読み出しアドレスを生成する読み出しアドレス生成手段を備え、
前記複数の第1の出力データを前記第1の順序で記憶し、前記第2の順序で読み出すこと
を特徴とする請求項1又は2に記載の高速フーリエ変換装置。 - 前記複数の第1の出力データをX(k)(kは0≦k≦N-1の整数、NはN>0の高速フーリエ変換又は逆高速フーリエのポイント数)とするとき、前記第1のデータ並べ替え処理手段は、任意のkに対してX(k)とX(N-k)とを高々1サイクル以内の時間差で出力する
ことを特徴とする請求項1乃至3のいずれかに記載の高速フーリエ変換装置。 - 第3の順序で入力される複数の第2の入力データを、入力順序設定に基づいて第4の順序に並べ替える第2のデータ並べ替え処理手段と、
前記第4の順序に並べ替えられた前記複数の第2の入力データに対して、高速フーリエ変換又は逆高速フーリエ変換を行う第2の変換手段と、
を備える高速フーリエ変換装置。 - 請求項1又は5に記載の高速フーリエ変換装置を含むディジタルフィルタ装置。
- 請求項1に記載の高速フーリエ変換装置と、
前記高速フーリエ変換装置により、入力された時間領域の複素数である前記複数の第1の入力データがフーリエ変換され生成された周波数領域の複数の第1の複素数データを構成する、すべての複素数のそれぞれの共役複素数を含む第2の複素数データを生成する複素共役生成手段と、
入力された複素数の第1、第2及び第3の入力フィルタ係数から、複素数の第1及び第2の周波数領域フィルタ係数を生成するフィルタ係数生成手段と、
前記第1の複素数データに対して前記第1の周波数領域フィルタ係数によりフィルタ処理を行い、第3の複素数データを出力する第1のフィルタ手段と、
前記第2の複素数データに対して前記第2の周波数領域フィルタ係数によりフィルタ処理を行い、第4の複素数データを出力する第2のフィルタ手段と、
前記第3の複素数信号と、前記第4の複素数信号とを合成して第5の複素数データを生成する複素共役合成手段と、
を備えることを特徴とするディジタルフィルタ装置。 - 請求項5に記載の高速フーリエ変換装置を備え、
前記第2のデータ並べ替え処理手段は、前記第3の順序で入力される前記第5の複素数データを、前記入力順序設定に基づいて前記第4の順序に並べ替え、
前記第2の変換手段は、前記第4の順序に並べ替えられた前記第5の複素数データに対して逆フーリエ変換を行って時間領域の信号に変換する
ことを特徴とする請求項7記載のディジタルフィルタ装置。 - 高速フーリエ変換若しくは逆高速フーリエ変換により生成された複数の出力データの、出力順序設定に基づく並べ替え、又は
前記高速フーリエ変換若しくは前記逆高速フーリエ変換の複数の入力データの、入力順序設定に基づく並べ替えを行う
高速フーリエ変換方法。 - 高速フーリエ変換装置が備えるコンピュータを、
高速フーリエ変換又は逆高速フーリエ変換を行う手段、及び
前記高速フーリエ変換若しくは前記逆高速フーリエ変換により生成された複数の出力データの、出力順序設定に基づいて並べ替える並べ替え手段、又は
前記高速フーリエ変換若しくは前記逆高速フーリエ変換の複数の入力データの、入力順序設定に基づいて並べ替える並べ替え手段
として機能させるための高速フーリエ変換プログラムを格納した非一時的な記憶媒体。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014558499A JP6358096B2 (ja) | 2013-01-23 | 2014-01-22 | 高速フーリエ変換装置、高速フーリエ変換方法、及び高速フーリエ変換プログラム |
US14/761,995 US9785614B2 (en) | 2013-01-23 | 2014-01-22 | Fast Fourier transform device, fast Fourier transform method, and recording medium storing fast Fourier transform program |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013010183 | 2013-01-23 | ||
JP2013-010183 | 2013-01-23 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2014115540A1 true WO2014115540A1 (ja) | 2014-07-31 |
Family
ID=51227332
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2014/000291 WO2014115540A1 (ja) | 2013-01-23 | 2014-01-22 | 高速フーリエ変換装置、高速フーリエ変換方法、及び高速フーリエ変換プログラム記憶媒体 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9785614B2 (ja) |
JP (1) | JP6358096B2 (ja) |
WO (1) | WO2014115540A1 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020195239A1 (ja) * | 2019-03-26 | 2020-10-01 | 日本電気株式会社 | デジタルフィルタ装置、デジタルフィルタ装置の動作方法及びプログラムを格納した非一時的なコンピュータ可読媒体 |
WO2021193947A1 (ja) * | 2020-03-26 | 2021-09-30 | 日本電気株式会社 | デジタルフィルタ装置 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160357706A1 (en) * | 2013-12-13 | 2016-12-08 | Nec Corporation | Fast fourier transform device, fast fourier transform method, and storage medium having fast fourier transform program stored thereon |
US10348486B2 (en) * | 2014-09-30 | 2019-07-09 | Nec Corporation | Method and system for at least partially updating data encrypted with an all-or-nothing encryption scheme |
WO2019131754A1 (ja) * | 2017-12-27 | 2019-07-04 | 日本電気株式会社 | 信号処理装置、方法、プログラムと記録媒体 |
WO2019225576A1 (ja) * | 2018-05-22 | 2019-11-28 | 日本電気株式会社 | 信号処理装置、方法、プログラム |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040039765A1 (en) * | 2001-02-28 | 2004-02-26 | Fujitsu Limited | Fourier transform apparatus |
JP2010044515A (ja) * | 2008-08-11 | 2010-02-25 | Seiko Epson Corp | 信号処理プロセッサ及び半導体装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0431965A (ja) * | 1990-05-28 | 1992-02-04 | Nec Corp | 数値演算装置 |
US5293330A (en) * | 1991-11-08 | 1994-03-08 | Communications Satellite Corporation | Pipeline processor for mixed-size FFTs |
US5371696A (en) * | 1992-12-24 | 1994-12-06 | Sundararajan; Duraisamy | Computational structures for the fast Fourier transform analyzers |
JPH08137832A (ja) | 1994-11-07 | 1996-05-31 | Fujitsu Ltd | バタフライ演算回路および同回路を用いた高速フーリエ変換装置 |
JP2001056806A (ja) | 1999-06-10 | 2001-02-27 | Matsushita Electric Ind Co Ltd | 高速フーリエ変換装置 |
JP5549442B2 (ja) | 2010-07-14 | 2014-07-16 | 三菱電機株式会社 | Fft演算装置 |
-
2014
- 2014-01-22 WO PCT/JP2014/000291 patent/WO2014115540A1/ja active Application Filing
- 2014-01-22 US US14/761,995 patent/US9785614B2/en active Active
- 2014-01-22 JP JP2014558499A patent/JP6358096B2/ja active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040039765A1 (en) * | 2001-02-28 | 2004-02-26 | Fujitsu Limited | Fourier transform apparatus |
JP2010044515A (ja) * | 2008-08-11 | 2010-02-25 | Seiko Epson Corp | 信号処理プロセッサ及び半導体装置 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020195239A1 (ja) * | 2019-03-26 | 2020-10-01 | 日本電気株式会社 | デジタルフィルタ装置、デジタルフィルタ装置の動作方法及びプログラムを格納した非一時的なコンピュータ可読媒体 |
JPWO2020195239A1 (ja) * | 2019-03-26 | 2021-12-23 | 日本電気株式会社 | デジタルフィルタ装置、デジタルフィルタ装置の動作方法及びプログラム |
JP7284883B2 (ja) | 2019-03-26 | 2023-06-01 | 日本電気株式会社 | デジタルフィルタ装置、デジタルフィルタ装置の動作方法及びプログラム |
WO2021193947A1 (ja) * | 2020-03-26 | 2021-09-30 | 日本電気株式会社 | デジタルフィルタ装置 |
Also Published As
Publication number | Publication date |
---|---|
JP6358096B2 (ja) | 2018-07-18 |
JPWO2014115540A1 (ja) | 2017-01-26 |
US9785614B2 (en) | 2017-10-10 |
US20150363360A1 (en) | 2015-12-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6358096B2 (ja) | 高速フーリエ変換装置、高速フーリエ変換方法、及び高速フーリエ変換プログラム | |
JP6288089B2 (ja) | デジタルフィルタ装置、デジタルフィルタ処理方法及びデジタルフィルタプログラムが記憶された記憶媒体 | |
JP6256348B2 (ja) | 高速フーリエ変換回路、高速フーリエ変換処理方法及び高速フーリエ変換処理プログラム | |
JP2002351858A (ja) | 処理装置 | |
JP6489021B2 (ja) | デジタルフィルタ装置、デジタルフィルタ処理方法及びデジタルフィルタプログラム | |
JP6451647B2 (ja) | 高速フーリエ変換装置、高速フーリエ変換方法、及び高速フーリエ変換プログラム | |
JPWO2011036918A1 (ja) | データ並べ替え回路、可変遅延回路、高速フーリエ変換回路、およびデータ並べ替え方法 | |
KR102376492B1 (ko) | 실수값을 입력으로 하는 고속푸리에 변환장치 및 방법 | |
US11604852B2 (en) | Signal processing apparatus, method, program, and recording medium | |
WO2021193947A1 (ja) | デジタルフィルタ装置 | |
WO2013125173A1 (ja) | ディジタルフィルタ回路、ディジタルフィルタ処理方法及びディジタルフィルタ処理プログラム記憶媒体 | |
WO2023045516A1 (zh) | 执行fft的方法、装置及设备 | |
JP6436087B2 (ja) | デジタルフィルタ装置、デジタルフィルタ処理方法およびプログラム | |
JP6943283B2 (ja) | 高速フーリエ変換装置、データ並べ替え処理装置、高速フーリエ変換処理方法およびプログラム | |
JP2022152001A (ja) | 高速フーリエ変換装置及びデジタルフィルタ装置 | |
JP6992745B2 (ja) | デジタルフィルタ装置、デジタルフィルタ処理方法およびデジタルフィルタ処理プログラム | |
JP2023131901A (ja) | 高速フーリエ変換装置、デジタルフィルタ装置、高速フーリエ変換方法、及びプログラム | |
US20210342102A1 (en) | Signal processing apparatus, method, program, and recording medium | |
JPWO2021193947A5 (ja) | 高速フーリエ変換装置、デジタルフィルタ装置、及び高速フーリエ変換方法 | |
JP2024032487A (ja) | 信号分析装置、スペクトログラム生成方法、およびプログラム | |
JP5493646B2 (ja) | 離散フーリエ変換装置および離散フーリエ変換・離散逆フーリエ変換方法 | |
JPH03228176A (ja) | 高速フーリエ変換用アドレス情報発生装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 14743324 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2014558499 Country of ref document: JP Kind code of ref document: A |
|
WWE | Wipo information: entry into national phase |
Ref document number: 14761995 Country of ref document: US |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 14743324 Country of ref document: EP Kind code of ref document: A1 |