JP7848522B2 - Fast Fourier Transform apparatus, digital filter apparatus, fast Fourier transform method, and program - Google Patents
Fast Fourier Transform apparatus, digital filter apparatus, fast Fourier transform method, and programInfo
- Publication number
- JP7848522B2 JP7848522B2 JP2022036908A JP2022036908A JP7848522B2 JP 7848522 B2 JP7848522 B2 JP 7848522B2 JP 2022036908 A JP2022036908 A JP 2022036908A JP 2022036908 A JP2022036908 A JP 2022036908A JP 7848522 B2 JP7848522 B2 JP 7848522B2
- Authority
- JP
- Japan
- Prior art keywords
- order
- data
- fast fourier
- fft
- output data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/22—Arrangements for sorting or merging computer data on continuous record carriers, e.g. tape, drum, disc
- G06F7/24—Sorting, i.e. extracting data from one or more carriers, rearranging the data in numerical or other ordered sequence, and rerecording the sorted data on the original carrier or on a different carrier or set of carriers sorting methods in general
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/52—Multiplying; Dividing
- G06F7/523—Multiplying only
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Computational Mathematics (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Discrete Mathematics (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Complex Calculations (AREA)
Description
本開示は、デジタル信号処理を行うデジタルフィルタ装置に関し、特に高速フーリエ変換装置、高速フーリエ変換方法、及びプログラムに関する。 This disclosure relates to a digital filter device for performing digital signal processing, and more particularly to a fast Fourier transform device, a fast Fourier transform method, and a program.
デジタル信号処理において重要な処理の1つとして、高速フーリエ変換(Fast Fourier Transform:以降、「FFT」という。)処理がある。例えば、無線通信や有線通信における信号伝送中の波形歪みを補償する技術として、周波数領域等化(Frequency domain equalization(FDE))技術が知られている。周波数領域等化では、まず高速フーリエ変換により時間領域上の信号データが周波数領域上のデータに変換され、次に等化のためのフィルタ処理が行われる。そして、フィルタ処理後のデータは、逆高速フーリエ変換(Inverse FFT:以降、「IFFT」という。)により時間領域上の信号データに再変換されることによって、元の時間領域上の信号の波形歪みが補償される。以降、FFTとIFFTを区別しないときは、「FFT/IFFT」と表記する。 One of the important processes in digital signal processing is the Fast Fourier Transform (FFT). For example, frequency domain equalization (FDE) is a well-known technique for compensating for waveform distortion during signal transmission in wireless and wired communications. In frequency domain equalization, the time-domain signal data is first converted to frequency-domain data using the Fast Fourier Transform, and then a filter is applied for equalization. The filtered data is then converted back to time-domain signal data using the Inverse Fast Fourier Transform (IFFT), thereby compensating for the waveform distortion of the original time-domain signal. Hereafter, when FFT and IFFT are not distinguished, they will be written as "FFT/IFFT".
一般に、FFT/IFFT処理では、「バタフライ演算」が用いられる。バタフライ演算を用いたFFT装置については、例えば特許文献1に記載がある。特許文献1には、後述の「ひねり乗算」、すなわち、ひねり係数を用いた乗算についても記載されている。 Generally, "butterfly arithmetic" is used in FFT/IFFT processing. An FFT device using butterfly arithmetic is described, for example, in Patent Document 1. Patent Document 1 also describes "torsion multiplication," that is, multiplication using a torsion coefficient, which will be discussed later.
効率的なFFT/IFFT処理方式としては、例えば非特許文献1に記載されたCooley-Tukeyによるバタフライ演算が有名である。しかし、ポイント数の大きいCooley-TukeyによるFFT/IFFTは回路が複雑になる。そのため、例えば非特許文献2に記載されたPrime Factor法を用いて2つの小さなFFT/IFFTに分解して、FFT/IFFT処理が行われる。 As an efficient FFT/IFFT processing method, the Cooley-Tukey butterfly operation described in Non-Patent Document 1 is well-known. However, Cooley-Tukey FFT/IFFT with a large number of points results in a complex circuit. Therefore, the FFT/IFFT processing is performed by decomposing the FFT/IFFT into two smaller FFTs using the Prime Factor method, as described in Non-Patent Document 2.
図14は、例えばPrime Factor法を利用して2段階の基数8のバタフライ処理に分解された、64ポイントFFTのデータフロー500を示す。データフロー500は、データ並べ替え処理501、バタフライ演算処理502、503のそれぞれ延べ8回の基数8のバタフライ演算処理、ひねり乗算処理504を含む。 Figure 14 shows the data flow 500 of a 64-point FFT, decomposed into two base-8 butterfly operations using, for example, the Prime Factor method. The data flow 500 includes a data sorting process 501, eight base-8 butterfly operations in each of the butterfly operation processes 502 and 503, and a twist multiplication process 504.
図14のデータフローでは、入力された時間領域のデータx(n)(n=0,1,・・・,63)が、FFT処理により、周波数領域の信号X(k)(k=0,1,・・・,63)にフーリエ変換される。図14では、一部のデータフローの図示は省略されている。なお、図14のデータフローは、IFFT処理を行う場合についても、基本構成は同じである。 In the data flow shown in Figure 14, the input time-domain data x(n) (n = 0, 1, ..., 63) is Fourier transformed into a frequency-domain signal X(k) (k = 0, 1, ..., 63) through FFT processing. Some parts of the data flow are omitted in Figure 14. Note that the basic configuration of the data flow in Figure 14 is the same even when IFFT processing is performed.
図14のデータフローのすべてを回路で実現するためには、膨大な規模の回路を要する。そのため、必要な処理性能に応じて、データフローの一部分の処理を実現する回路を繰り返し使用することで、FFT処理の全体を実現する方法が一般的である。 To implement the entire data flow shown in Figure 14 using circuitry would require an enormous amount of circuitry. Therefore, it is common practice to implement the entire FFT process by repeatedly using circuits that perform only a portion of the data flow, depending on the required processing performance.
例えば、図14のデータフローにおいて、8個のデータに対して並列に(以降、単に「8データ並列で」という。)FFT処理を行うFFT装置を物理的な回路として作成した場合、合計8回の繰り返し処理により64ポイントFFT処理を実現することができる。 For example, in the data flow shown in Figure 14, if an FFT device is created as a physical circuit to perform FFT processing on eight data points in parallel (hereinafter simply referred to as "in parallel processing on eight data points"), 64-point FFT processing can be achieved through a total of eight iterations.
8回の繰り返し処理は、8個のデータに対して行われる部分データフロー505a~505hの、それぞれにあたる処理が順に行われるものであり、具体的には、次のように行われる。すなわち、1回目には、部分データフロー505aにあたる処理が、2回目には、部分データフロー505bにあたる処理が、3回目には、部分データフロー505c(図示せず)にあたる処理が行われる。以降同様に、8回目の部分データフロー505hにあたる処理までが順に行われる。以上の処理により、64ポイントFFT処理が実現される。 The eight iterative processes sequentially execute the partial data flows 505a to 505h, which are applied to eight data points. Specifically, they are performed as follows: The first iteration executes the process corresponding to partial data flow 505a; the second executes the process corresponding to partial data flow 505b; and the third executes the process corresponding to partial data flow 505c (not shown). This process continues sequentially until the eighth iteration, which corresponds to partial data flow 505h. Through these processes, a 64-point FFT is achieved.
バタフライ演算では、逐次的な順序に並べられたデータが、所定の規則に従った順序で読み出され、処理される。そのため、バタフライ演算では、データの並べ替えが必要であり、その回路実現には主にRAM(Random Access Memory)回路が用いられる。バタフライ演算においてRAM回路を用いたデータの並べ替えを行うFFT装置については、例えば特許文献2に記載がある。また、メモリ使用量を削減したFFT演算装置については、バタフライ演算の並列処理による高速化技術が、例えば特許文献3に記載されている。また、FFT装置の後段の処理の高速化や低消費電力化を目的とした、FFT処理の処理結果の出力タイミングや出力順序の最適化技術が、特許文献4に記載されている。 In butterfly operations, data arranged in a sequential order is read and processed in an order according to a predetermined rule. Therefore, butterfly operations require data reordering, and a RAM (Random Access Memory) circuit is primarily used to implement this. For example, Patent Document 2 describes an FFT device that uses a RAM circuit for data reordering in butterfly operations. Furthermore, Patent Document 3 describes a technique for accelerating butterfly operations through parallel processing, which reduces memory usage. Patent Document 4 describes a technique for optimizing the output timing and order of FFT processing results, aimed at accelerating and reducing power consumption in the subsequent processing of the FFT device.
図14に示すFFT処理のデータフローにおいて、8個のデータに対して行われる部分データフロー505a~505hの8回の繰り返し処理を実行する順序は任意であり、この順序により、FFT処理によりフーリエ変換された周波数領域の信号X(k)(k=0,1,・・・,N-1)の出力順序や、FFT処理を実現する内部演算の順序が決定される。一方、信号X(k)に対して実施されるフィルタ処理等の演算や、FFT処理を実現する内部演算に係る消費電力の一部は、信号X(k)の出力順序や、FFT処理を実現する内部演算の順序により決定される。すなわち、FFT処理において、FFT処理に係る消費電力を低減することが可能な、部分データフローの繰り返し処理の特定の実行順序が存在し、消費電力の低減のためには実行順序を最適なものとすることが有効である。 In the FFT processing data flow shown in Figure 14, the order in which the eight iterative processes of partial data flows 505a to 505h, performed on eight data points, are executed is arbitrary. This order determines the output order of the frequency domain signal X(k) (k = 0, 1, ..., N-1) transformed by the FFT, and the order of the internal calculations that realize the FFT. On the other hand, a portion of the power consumption related to calculations such as filtering performed on the signal X(k) and the internal calculations that realize the FFT is determined by the output order of the signal X(k) and the order of the internal calculations that realize the FFT. In other words, in FFT processing, there exists a specific execution order of the iterative processes of partial data flows that can reduce the power consumption related to the FFT processing, and optimizing the execution order is effective in reducing power consumption.
しかしながら、非特許文献1、2、3に記載されたFFT回路は、部分データフローの繰り返し処理の順序に関して、消費電力の低減のための最適化が考慮されておらず、消費電力が大きいという問題がある。 However, the FFT circuits described in Non-Patent Documents 1, 2, and 3 have the problem of high power consumption because they do not consider optimization for reducing power consumption regarding the order of iterative processing of partial data flows.
特許文献4には、処理対象のデータの入力や処理結果の出力を任意の順序で行うことが可能なFFT装置が記載されており、FFT処理の後段の処理の高速化のために、出力X(k)とX(N-k)とを、高々1サイクル以内の時間差で出力することができる。しかし、特許文献4は、消費電力の低減のための最適な構成については明らかにされておらず、消費電力が大きいという問題がある。 Patent Document 4 describes an FFT apparatus capable of inputting data to be processed and outputting processing results in any order. To speed up the subsequent processing of the FFT, it can output output X(k) and X(N-k) with a time difference of at most one cycle. However, Patent Document 4 does not clarify the optimal configuration for reducing power consumption, resulting in the problem of high power consumption.
本開示の目的は、高速フーリエ変換を用いたデジタル信号処理を実現する回路の消費電力が小さい高速フーリエ変換装置、デジタルフィルタ装置、高速フーリエ変換方法、及びプログラムを提供することである。 The purpose of this disclosure is to provide a fast Fourier transform device, a digital filter device, a fast Fourier transform method, and a program that enable digital signal processing using the fast Fourier transform with low power consumption.
本開示に係る高速フーリエ変換装置は、入力された時間領域の入力データに対して、連続するN個(Nは2以上の正整数)の入力データごとに、Mサイクル(Mは2以上の正整数)で高速フーリエ変換又は逆高速フーリエ変換を行う高速フーリエ変換装置であって、
前記高速フーリエ変換装置は、連続して処理を行うF個(Fは2以上の正整数)の高速フーリエ変換又は逆高速フーリエ変換において、
第1の順序で入力するF×N個の第1の入力データを並べ替えて、第2の順序で第1の出力データを出力する第1のデータ並べ替え処理手段と、
前記第1の出力データに対して、バタフライ演算処理を行い、前記第1の順序で第2の出力データを出力するバタフライ演算処理手段と、
前記第2の出力データを並べ替えて、第3の順序で第3の出力データを出力する第2のデータ並べ替え処理手段と、
前記第3の出力データに対して、ひねり係数を乗算してひねり乗算処理を行い、前記第3の順序で第4の出力データを出力するひねり乗算処理手段と、を含み、
前記第3の順序は、連続して処理を行うF個の高速フーリエ変換又は逆高速フーリエ変換のそれぞれにおけるC番目のサイクル(Cは0≦C≦M-1の整数)の処理を、連続するサイクルにおいて処理する順序である。
The Fast Fourier Transform apparatus according to this disclosure is a Fast Fourier Transform apparatus that performs a Fast Fourier Transform or an Inverse Fast Fourier Transform in M cycles (M is a positive integer of 2 or more) for each N consecutive input data (N is a positive integer of 2 or more) in the input time domain,
The fast Fourier transform device processes F fast Fourier transforms or inverse fast Fourier transforms (where F is a positive integer of 2 or more) in succession.
A first data sorting processing means that sorts F × N first input data entered in a first order and outputs first output data in a second order,
Butterfly arithmetic processing means that performs butterfly arithmetic processing on the first output data and outputs the second output data in the first order,
A second data sorting processing means sorts the second output data and outputs the third output data in a third order,
The system includes a torsion multiplication processing means that multiplies the third output data by a torsion coefficient to perform a torsion multiplication process and outputs a fourth output data in the third order,
The third order is the order in which the processing of the C-th cycle (where C is an integer between 0 and M-1) in each of the F fast Fourier transforms or inverse fast Fourier transforms that are processed consecutively is processed in consecutive cycles.
本開示に係る高速フーリエ変換方法は、入力された時間領域の入力データに対して、連続するN個(Nは2以上の正整数)の入力データごとに、Mサイクル(Mは2以上の正整数)で高速フーリエ変換又は逆高速フーリエ変換を行う高速フーリエ変換装置が、
連続して処理を行うF個(Fは2以上の正整数)の高速フーリエ変換又は逆高速フーリエ変換において、
第1の順序で入力するF×N個の第1の入力データを並べ替えて、第2の順序で第1の出力データを出力し、
前記第1の出力データに対して、バタフライ演算処理を行い、前記第1の順序で第2の出力データを出力し、
前記第2の出力データを並べ替えて、第3の順序で第3の出力データを出力し、
前記第3の出力データに対して、ひねり係数を乗算してひねり乗算処理を行い、前記第3の順序で第4の出力データを出力する方法であり、
前記第3の順序は、連続して処理を行うF個の高速フーリエ変換又は逆高速フーリエ変換のそれぞれにおけるC番目のサイクル(Cは0≦C≦M-1の整数)の処理を、連続するサイクルにおいて処理する順序である。
The Fast Fourier Transform method according to this disclosure is a Fast Fourier Transform device that performs a Fast Fourier Transform or inverse Fast Fourier Transform in M cycles (M is a positive integer of 2 or more) for each N consecutive input data (N is a positive integer of 2 or more) in the input time domain.
In a series of F fast Fourier transforms or inverse fast Fourier transforms (where F is a positive integer greater than or equal to 2),
The F × N first input data points, which are input in a first order, are rearranged, and the first output data is output in a second order.
Butterfly arithmetic processing is performed on the first output data, and the second output data is output in the first order.
The second output data is rearranged, and the third output data is output in a third order.
This method involves multiplying the third output data by a torsion coefficient to perform a torsion multiplication process, and then outputting the fourth output data in the third order.
The third order is the order in which the processing of the C-th cycle (where C is an integer between 0 and M-1) in each of the F fast Fourier transforms or inverse fast Fourier transforms that are processed consecutively is processed in consecutive cycles.
本開示に係るプログラムは、入力された時間領域の入力データに対して、連続するN個(Nは2以上の正整数)の入力データごとに、Mサイクル(Mは2以上の正整数)で高速フーリエ変換又は逆高速フーリエ変換を行う高速フーリエ変換装置に、
連続して処理を行うF個(Fは2以上の正整数)の高速フーリエ変換又は逆高速フーリエ変換において、
第1の順序で入力するF×N個の第1の入力データを並べ替えて、第2の順序で第1の出力データを出力する処理と、
前記第1の出力データに対して、バタフライ演算処理を行い、前記第1の順序で第2の出力データを出力する処理と、
前記第2の出力データを並べ替えて、第3の順序で第3の出力データを出力し、
前記第3の出力データに対して、ひねり係数を乗算してひねり乗算処理を行い、前記第3の順序で第4の出力データを出力する処理と、
を実行させ、
前記第3の順序は、連続して処理を行うF個の高速フーリエ変換又は逆高速フーリエ変換のそれぞれにおけるC番目のサイクル(Cは0≦C≦M-1の整数)の処理を、連続するサイクルにおいて処理する順序である。
The program relating to this disclosure is a Fast Fourier Transform (FFT) device that performs a Fast Fourier Transform or inverse Fast Fourier Transform on input time-domain input data in M cycles (M is a positive integer of 2 or more) for each of N consecutive input data (N is a positive integer of 2 or more).
In a series of F fast Fourier transforms or inverse fast Fourier transforms (where F is a positive integer greater than or equal to 2),
A process that rearranges F × N first input data points, which are input in a first order, and outputs the first output data in a second order,
The process involves performing a butterfly operation on the first output data and outputting the second output data in the first order,
The second output data is rearranged, and the third output data is output in a third order.
The process involves multiplying the third output data by a torsion coefficient to perform a torsion multiplication process, and outputting the fourth output data in the third order,
Make it run,
The third order described above is the order in which the processing of the C-th cycle (where C is an integer between 0 and M-1) in each of the F fast Fourier transforms or inverse fast Fourier transforms that are processed consecutively is processed in consecutive cycles.
高速フーリエ変換を用いたデジタル信号処理を実現する回路の消費電力が小さい高速フーリエ変換装置、デジタルフィルタ装置、高速フーリエ変換方法、及びプログラムを提供することができる。 This invention provides a high-speed Fourier transform (FPS) device, a digital filter device, a FPS method, and a program that enable digital signal processing using the FPS with low power consumption.
以下、図面を参照して本開示の実施の形態について説明する。
(第1の実施形態)
図1は、第1の実施形態に係る高速フーリエ変換装置(以降、FFT装置という。)の一例を示すブロック図である。本実施形態に係るFFT装置10は、デジタルフィルタ装置における高速フーリエ変換処理又は逆高速フーリエ変換処理に用いられる。具体的には、FFT装置10は、入力された時間領域の入力データに対して、連続するN個(Nは2以上の正整数)の入力データごとに、Mサイクル(Mは2以上の正整数)で高速フーリエ変換又は逆高速フーリエ変換を行う。図1に示すように、FFT装置10は、第1のデータ並べ替え処理手段としての第1のデータ並べ替え処理部11、バタフライ演算処理手段としての第1のバタフライ演算処理部21、第2のデータ並べ替え処理手段としての第2のデータ並べ替え処理部12、ひねり乗算処理手段としてのひねり乗算処理部31を備える。そして、FFT装置10は、F個(Fは2以上の正整数)の高速フーリエ変換処理又は逆高速フーリエ変換処理を連続して行う。
Embodiments of this disclosure will be described below with reference to the drawings.
(First embodiment)
Figure 1 is a block diagram showing an example of a Fast Fourier Transform (FFT) device according to the first embodiment. The FFT device 10 according to this embodiment is used for Fast Fourier Transform processing or inverse Fast Fourier Transform processing in a digital filter device. Specifically, the FFT device 10 performs Fast Fourier Transform or inverse Fast Fourier Transform on input time-domain input data in M cycles (M is a positive integer of 2 or more) for each N consecutive input data (N is a positive integer of 2 or more). As shown in Figure 1, the FFT device 10 includes a first data sorting processing unit 11 as a first data sorting processing means, a first butterfly arithmetic processing unit 21 as a butterfly arithmetic processing means, a second data sorting processing unit 12 as a second data sorting processing means, and a twist multiplication processing unit 31 as a twist multiplication processing means. The FFT device 10 then performs F (F is a positive integer of 2 or more) Fast Fourier Transform or inverse Fast Fourier Transform processing processes consecutively.
第1のデータ並べ替え処理部11は、第1の順序で入力するF×N個の第1の入力データを並べ替えて、第2の順序で第1の出力データを出力する。 The first data sorting processing unit 11 sorts F × N first input data points in a first order and outputs the first output data in a second order.
第1のバタフライ演算処理部21は、前記第1の出力データに対して、バタフライ演算処理を行い、前記第1の順序で第2の出力データを出力する。 The first butterfly arithmetic processing unit 21 performs butterfly arithmetic processing on the first output data and outputs the second output data in the first order.
第2のデータ並べ替え処理部12は、前記第2の出力データを並べ替えて、第3の順序で第3の出力データを出力する。 The second data sorting processing unit 12 sorts the second output data and outputs the third output data in the third order.
ひねり乗算処理部31は、前記第3の出力データに対して、ひねり係数を乗算してひねり乗算処理を行い、前記第3の順序で第4の出力データを出力する。 The twist multiplication processing unit 31 performs a twist multiplication process by multiplying the third output data by a twist coefficient, and outputs the fourth output data in the third order.
そして、第1の実施形態では、第3の順序は、連続して処理を行うF個の高速フーリエ変換又は逆高速フーリエ変換のそれぞれにおけるC番目のサイクル(Cは0≦C≦M-1の整数)の処理を、連続するサイクルにおいて処理する順序である。 In the first embodiment, the third order is the order in which the processing of the C-th cycle (where C is an integer between 0 and M-1) in each of the F consecutively processed Fast Fourier Transforms or Inverse Fast Fourier Transforms is performed within the consecutive cycles.
以上に説明した第1の実施形態に係るFFT装置10によれば、ひねり乗算処理部31に入力されるデータの処理順序(第3の順序)を、C番目のサイクルの処理が連続するサイクルにおいて処理されるようにする順序とすることができる。換言すれば、連続して処理を行う複数のFFT処理について、処理順序を交互配置(インターリーブ)することで、ひねり演算処理やフィルタ演算処理に係る電力を小さくすることができる。その結果、デジタルフィルタ処理全体の消費電力を低減することができる。 According to the FFT apparatus 10 of the first embodiment described above, the processing order (third order) of the data input to the twist multiplication processing unit 31 can be set so that the processing of the Cth cycle is performed in consecutive cycles. In other words, by alternating (interleaving) the processing order of multiple FFT processes that are performed consecutively, the power consumption related to the twist calculation and filter calculation can be reduced. As a result, the power consumption of the entire digital filter process can be reduced.
また、本実施形態では、FFT処理を例として説明したが、IFFTにおいても同様である。すなわち、本実施形態の制御方法をIFFT処理装置に適用して、IFFT処理内やIFFT処理後段の処理順序を最適化すれば、IFFT処理内やIFFT処理後段の消費電力を低減することができる。 Furthermore, although this embodiment uses FFT processing as an example, the same principles apply to IFFT processing. That is, by applying the control method of this embodiment to an IFFT processing device and optimizing the processing order within and after the IFFT processing, power consumption within and after the IFFT processing can be reduced.
(第2の実施形態)
図2は、本発明の第2の実施形態に係るデジタルフィルタ装置(「デジタルフィルタ回路」とも称する。)400の構成を示すブロック図である。デジタルフィルタ回路400は、FFT装置(「FFT回路」とも称する。)10、フィルタ処理手段としてのフィルタ処理部420、を備える。
(Second embodiment)
Figure 2 is a block diagram showing the configuration of a digital filter device (also referred to as a "digital filter circuit") 400 according to a second embodiment of the present invention. The digital filter circuit 400 comprises an FFT device (also referred to as an "FFT circuit") 10 and a filter processing unit 420 as a filtering means.
デジタルフィルタ回路400は、時間領域における複素数信号
x(n)=r(n)+js(n) ・・・(1)
を入力する。
The digital filter circuit 400 processes a complex number signal in the time domain x(n) = r(n) + js(n) ... (1)
Enter the following:
FFT回路10は、入力された複素数信号x(n)を、FFTにより周波数領域の複素数信号431
X(k)=A(k)+jB(k) ・・・(2)
に変換する。
The FFT circuit 10 converts the input complex number signal x(n) into a frequency-domain complex number signal 431 by performing an FFT.
X(k)=A(k)+jB(k)...(2)
Convert to.
ここで、nは時間領域上の信号サンプル番号を示す0≦n≦N-1の整数、NはFFTの変換サンプル数を示す0<Nの整数、kは周波数領域上の周波数番号を示す0≦k≦N-1の整数である。 Here, n is an integer between 0 and N-1 representing the signal sample number in the time domain, N is an integer between 0 and N representing the number of FFT transformation samples, and k is an integer between 0 and N-1 representing the frequency number in the frequency domain.
次に、フィルタ処理部420は、FFT回路10が複素数信号431に出力するX(k)(式(2))に対して、フィルタ係数C(k)を用いて、複素数乗算による複素数フィルタ処理を行う。具体的には、フィルタ処理部420は、0≦k≦N-1の周波数番号kのそれぞれについて、複素数信号
X‘(k)=X(k)×C(k) ・・・(3)
を計算して、複素数信号434として出力する。
デジタルフィルタ回路400は、連続して入力される時間領域における複素数信号に対して、N個の複素数信号ごとに上記の処理を繰り返して行う。
Next, the filter processing unit 420 performs complex number filtering on the complex number signal X(k) (Equation (2)) output by the FFT circuit 10 to the complex number signal 431 using the filter coefficient C(k). Specifically, for each frequency number k between 0 and N-1, the filter processing unit 420 calculates the complex number signal X'(k) = X(k) × C(k) ... (3)
It calculates this and outputs it as a complex number signal 434.
The digital filter circuit 400 performs the above processing repeatedly for every N complex number signals that are continuously input in the time domain.
次に、本発明の第2の実施形態に係るFFT回路10の詳細を説明する。
FFT装置10は、図14に示されたデータフロー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ブロックサイズを表す正整数である。
Next, the details of the FFT circuit 10 according to the second embodiment of the present invention will be described.
The FFT device 10 processes a 64-point FFT, which has been decomposed into two-stage radix 8 butterfly processing, using a pipeline circuit configuration, according to the data flow 500 shown in Figure 14. The FFT device 10 receives time-domain data x(n) (n = 0, 1, ..., N-1), performs a Fourier transform on x(n) using FFT processing to generate and output a frequency-domain signal X(k) (k = 0, 1, ..., N-1). Here, N is a positive integer representing the FFT block size.
FFT装置10は、第1のデータ並べ替え処理手段としての第1のデータ並べ替え処理部11、バタフライ演算処理手段としての第1のバタフライ演算処理部21、第2のデータ並べ替え処理手段及び記憶手段としての第2のデータ並べ替え処理部12、ひねり乗算処理手段としてのひねり乗算処理部31、第2のバタフライ演算処理部22、読み出しアドレス生成手段としての読み出しアドレス生成部41を備える。FFT装置10は、第1のデータ並べ替え処理、第1のバタフライ演算処理、第2のデータ並べ替え処理、ひねり乗算処理、第2のバタフライ演算処理、をパイプライン処理する。 The FFT device 10 comprises a first data sorting processing unit 11 as a first data sorting processing means, a first butterfly arithmetic processing unit 21 as a butterfly arithmetic processing means, a second data sorting processing unit 12 as a second data sorting processing means and storage means, a twist multiplication processing unit 31 as a twist multiplication processing means, a second butterfly arithmetic processing unit 22, and a read address generation unit 41 as a read address generation means. The FFT device 10 pipelines the first data sorting process, the first butterfly arithmetic process, the second data sorting process, the twist multiplication process, and the second butterfly arithmetic process.
第1のデータ並べ替え処理部11、第2のデータ並べ替え処理部12は、データ並べ替えのためのバッファ回路である。第1のデータ並べ替え処理部11は、第1のバタフライ演算処理部21の前で、FFT処理のアルゴリズム上のデータの依存関係に基づいた、データシーケンスの並べ替えを行う。同様に、第2のデータ並べ替え処理部12は、第1のバタフライ演算処理部21の後で、読み出しアドレス51を入力して、FFT処理のアルゴリズム上のデータの依存関係に基づいた、データシーケンスの並べ替えを行う。さらに、第2のデータ並べ替え処理部12は、上記の並べ替えに加えて、連続して処理を行う複数のFFT処理を交互に実行するための並べ替え処理を行う。 The first data sorting processing unit 11 and the second data sorting processing unit 12 are buffer circuits for data sorting. The first data sorting processing unit 11 sorts the data sequence based on the data dependencies in the FFT processing algorithm before the first butterfly arithmetic processing unit 21. Similarly, the second data sorting processing unit 12 sorts the data sequence based on the data dependencies in the FFT processing algorithm after the first butterfly arithmetic processing unit 21, by inputting the read address 51. Furthermore, in addition to the above sorting, the second data sorting processing unit 12 performs sorting processing to alternately execute multiple FFT processes that are processed sequentially.
FFT装置10は、8データ並列で64ポイントFFT処理を行うものとする。この場合、FFT回路10は、時間領域のデータx(n)を入力し、FFT処理によりフーリエ変換した周波数領域の信号X(k)を生成して出力する。このとき、入力データx(n)として、1つのFFT処理に対して8データずつ、8サイクルの期間に、図3に示す順序で、1つのFFT処理に対して合計で64個のデータが入力される。図3は連続して処理を行う第1から第4の4つのFFT処理(F1~F4)について、入力データx(n)の順序を示しており、図3の表の内容として示された、0から63までの数字は、x(n)の添え字nを意味する。具体的には、第1のFFT処理(F1)に関して、0サイクル目に、データ組P0を構成するx(0),x(1),・・・,x(7)の8データが入力される。そして、1サイクル目に、データ組P1を構成するx(8),x(9),・・・,x(15)の8データが入力される。以降同様に、2サイクル目から7サイクル目にも、データ組P2~P7を構成するデータが入力される。同様に、8サイクル目から15サイクル目に第2のFFT処理(F2)に関するデータが、16サイクル目から23サイクル目に第3のFFT処理(F3)に関するデータが、24サイクル目から31サイクル目に第4のFFT処理(F4)に関するデータが、入力される。 The FFT device 10 is designed to perform 64-point FFT processing in parallel with 8 data points. In this case, the FFT circuit 10 takes time-domain data x(n) as input, generates a frequency-domain signal X(k) by performing a Fourier transform through FFT processing, and outputs it. At this time, as input data x(n), 8 data points are input for each FFT process, over a period of 8 cycles, in the order shown in Figure 3, for a total of 64 data points per FFT process. Figure 3 shows the order of input data x(n) for the first to fourth FFT processes (F1 to F4) that are processed consecutively, and the numbers from 0 to 63 shown in the table in Figure 3 represent the subscript n for x(n). Specifically, for the first FFT process (F1), in the 0th cycle, 8 data points x(0), x(1), ..., x(7) that constitute the data set P0 are input. Then, in the first cycle, the eight data points x(8), x(9), ..., x(15) that constitute data set P1 are input. Similarly, in cycles 2 through 7, the data constituting data sets P2 through P7 are input. Likewise, in cycles 8 through 15, data related to the second FFT process (F2) is input; in cycles 16 through 23, data related to the third FFT process (F3) is input; and in cycles 24 through 31, data related to the fourth FFT process (F4) is input.
次に、第1のデータ並べ替え処理部11は、入力データx(n)の入力順序である図3に示す「逐次順序」を、第1のバタフライ演算処理部21に入力する順序である図4に示す「ビットリバース順序」に並べ替える。 Next, the first data sorting processing unit 11 sorts the input data x(n) in the "sequential order" shown in Figure 3, which is the input order, into the "bit reverse order" shown in Figure 4, which is the input order to the first butterfly arithmetic processing unit 21.
図4は連続して処理を行う第1から第4の4つのFFT処理(F1~F4)について、ビットリバース順序を示しており、図14に示したデータフロー図における、1段目の基数8のバタフライ処理502への入力データ組に対応する。具体的には、第1のデータ並べ替え処理部11は、第1のFFT処理(F1)に関して、0サイクル目に、データ組Q0を構成するx(0),x(8),・・・,x(56)の8データを出力する。そして、1サイクル目に、データ組Q1を構成するx(1),x(9),・・・,x(57)の8データを出力する。以降、2サイクル目から7サイクル目も同様にして、データ組Q2~Q7を構成するデータを出力する。同様に、8サイクル目から15サイクル目に第2のFFT処理(F2)に関するデータを、16サイクル目から23サイクル目に第3のFFT処理(F3)に関するデータを、24サイクル目から31サイクル目に第4のFFT処理(F4)に関するデータを、出力する。 Figure 4 shows the bit reverse order for the four FFT processes (F1 to F4) that are performed sequentially, and corresponds to the input data set to the first radix 8 butterfly process 502 in the data flow diagram shown in Figure 14. Specifically, the first data sorting processing unit 11 outputs eight data points, x(0), x(8), ..., x(56), which constitute data set Q0, in the 0th cycle for the first FFT process (F1). Then, in the 1st cycle, it outputs eight data points, x(1), x(9), ..., x(57), which constitute data set Q1. Thereafter, in the 2nd to 7th cycles, it outputs data that constitutes data sets Q2 to Q7 in the same manner. Similarly, data related to the second FFT process (F2) is output from the 8th to the 15th cycle, data related to the third FFT process (F3) is output from the 16th to the 23rd cycle, and data related to the fourth FFT process (F4) is output from the 24th to the 31st cycle.
ここで、「逐次順序」と「ビットリバース順序」について、具体的に説明する。「逐次順序」とは、図3に示された、8つのデータ組P0~P7に係る順序をいう。データ組Ps(s=0,1,..,7)は、それぞれ、ps(0)~ps(7)まで、順に並んだ8個のデータからなり、ps(i)は、
ps(i)=8s+i
である。つまり、逐次順序とは、i・s個のデータを、先頭のデータからi個ずつデータ順に並べてデータ組をs個作成して並べたものである。
Here, we will explain "sequential order" and "bit reverse order" in detail. "Sequential order" refers to the order of the eight data sets P0 to P7 shown in Figure 3. Each data set Ps(s=0,1,...,7) consists of eight data points arranged sequentially from ps(0) to ps(7), where ps(i) is...
ps(i)=8s+i
Therefore, sequential ordering is the process of arranging i and s data items in order, starting with the first data item, to create s data sets, and then arranging them in that order.
「ビットリバース順序」とは、図4に示された、8つのデータ組Q0~Q7に係る順序をいう。データ組Qs(s=0,1,..,7)は、それぞれ、qs(0)~qs(7)までの8個のデータからなり、qs(i)は、 "Bit reverse order" refers to the order of the eight data sets Q0 to Q7 shown in Figure 4. Each data set Qs (s = 0, 1, ..., 7) consists of eight data points, qs(0) to qs(7), where qs(i) is...
qs(i)=s+8i
である。つまり、ビットリバース順序とは、i・s個のデータを、先頭のデータからi個ずつ8個おきに並べてデータ組をs個作成して並べたものである。
qs(i)=s+8i
In other words, bit reverse order is created by taking i and s data points and arranging them in sets of i data points, with every eight data points starting from the first data point, to create s data sets, and then arranging them.
以上のように、ビットリバース順序の各データ組Qs(s=0,1,..,7)を構成するデータのiデータ目は、逐次順序におけるデータ組Piを構成するsデータ目のデータである。すなわち、
Qs(i)=Pi(s)
である。このように、Qs(i)とPi(s)とは、各データ組を構成するデータについて、データ組の順序とデータ組内のデータ位置に対する順序が入れ替えられた関係にある。従って、ビットリバース順序で入力されたデータを、ビットリバース順序に従って並べ替えると、逐次順序になる。
As described above, the i-th data element of each data set Qs (s = 0, 1, ..., 7) in bit reverse order is the s-th data element of the data set Pi in sequential order. That is,
Qs(i)=Pi(s)
Thus, Qs(i) and Pi(s) are related in such a way that the order of the data sets and the order of the data positions within each data set are swapped. Therefore, when data input in bit-reverse order is rearranged according to bit-reverse order, it becomes sequential order.
図3における各行ps(i)、及び図4における各行qs(i)は、それぞれ、次段のiデータ目に入力されるデータを示す。各データ組に含まれる8個の数字は、FFTのポイントのうちの1個を特定する識別情報であり、具体的にはx(n)の添え字nの値である。 In Figure 3, each row ps(i), and in Figure 4, each row qs(i), represent the data to be input to the i-th data point of the next stage. The eight numbers included in each data set are identification information that identifies one of the FFT points, specifically the value of the subscript n in x(n).
なお、逐次順序及びビットリバース順序は、図3、4に例示されたものに限定されない。すなわち、逐次順序の各データ組は、上記のように、FFTのポイント数、サイクル数、並列に処理するデータ数に応じて、データを順に並べて作成すればよい。そして、ビットリバース順序の各データ組は、上記のように、逐次順序で入力されるデータの、サイクルの進行に対する順序とデータ位置に対する順序を入れ替えて作成すればよい。 Note that the sequential and bit-reverse sequences are not limited to those illustrated in Figures 3 and 4. That is, each data set in a sequential sequence can be created by arranging the data sequentially according to the number of FFT points, the number of cycles, and the number of data points processed in parallel, as described above. Similarly, each data set in a bit-reverse sequence can be created by swapping the order of the sequentially input data relative to the cycle progression and the order relative to the data position, as described above.
第1のバタフライ演算処理部21は、図14のデータフロー500において2段階で行われる基数8のバタフライ演算処理の、1回目のバタフライ演算処理502(第1のバタフライ演算処理)を処理するバタフライ回路である。第1のバタフライ演算処理部21は、基数8バタフライ演算処理部21aから構成され、基数8バタフライ演算処理を行う。図5は連続して処理を行う第1から第4の4つのFFT処理(F1~F4)について、第1のバタフライ演算処理部21の処理順序を示しており、具体的には、第1のバタフライ演算処理部21は、0サイクル目から7サイクル目において、第1のFFT処理(F1)に関して、バタフライ演算処理502を構成する#0~#7の8回の基数8バタフライ演算処理を、図5に示す順序で処理を行う。 The first butterfly arithmetic processing unit 21 is a butterfly circuit that processes the first butterfly arithmetic operation 502 (the first butterfly arithmetic operation) of the radix 8 butterfly arithmetic operation performed in two stages in the data flow 500 of Figure 14. The first butterfly arithmetic processing unit 21 is composed of a radix 8 butterfly arithmetic processing unit 21a and performs radix 8 butterfly arithmetic operations. Figure 5 shows the processing order of the first butterfly arithmetic processing unit 21 for the four consecutive FFT operations (F1 to F4). Specifically, from cycle 0 to cycle 7, the first butterfly arithmetic processing unit 21 processes the eight radix 8 butterfly arithmetic operations #0 to #7, which constitute the butterfly arithmetic operation 502, in the order shown in Figure 5, with respect to the first FFT operation (F1).
すなわち、サイクル0では、基数8バタフライ演算処理部21aは、第1のデータ並べ替え処理部11が出力する、基数8バタフライ演算処理#0に対応するビットリバース順序のデータ組Q0を入力して、基数8のバタフライ演算処理#0を行う。サイクル1では、基数8バタフライ演算処理部21aは、第1のデータ並べ替え処理部11が出力する、基数8バタフライ演算処理#1に対応するビットリバース順序のデータ組Q1を入力して、基数8のバタフライ演算処理#1を行う。サイクル2では、基数8バタフライ演算処理部21aは、第1のデータ並べ替え処理部11が出力する、基数8バタフライ演算処理#2に対応するビットリバース順序のデータ組Q2を入力して、基数8のバタフライ演算処理#2を行う。サイクル3では、基数8バタフライ演算処理部21aは、第1のデータ並べ替え処理部11が出力する、基数8バタフライ演算処理#3に対応するビットリバース順序のデータ組Q3を入力して、基数8のバタフライ演算処理#3を行う。以降のサイクルでも同様にして、サイクル4からサイクル7では、基数8バタフライ演算処理部21aは、第1のデータ並べ替え処理部11が出力する、基数8バタフライ演算処理#4~#7にそれぞれ対応するビットリバース順序のデータ組Q4~Q7を入力して、基数8のバタフライ演算処理#4~#7を行う。
同様に、第1のバタフライ演算処理部21は、8サイクル目から15サイクル目に第2のFFT処理(F2)に関する処理を、16サイクル目から23サイクル目に第3のFFT処理(F3)に関する処理を、24サイクル目から31サイクル目に第4のFFT処理(F4)に関する処理を行う。
In other words, in cycle 0, the radix 8 butterfly arithmetic processing unit 21a receives a data set Q0 in bit reverse order corresponding to radix 8 butterfly arithmetic processing #0, which is output by the first data sorting processing unit 11, and performs radix 8 butterfly arithmetic processing #0. In cycle 1, the radix 8 butterfly arithmetic processing unit 21a receives a data set Q1 in bit reverse order corresponding to radix 8 butterfly arithmetic processing #1, which is output by the first data sorting processing unit 11, and performs radix 8 butterfly arithmetic processing #1. In cycle 2, the radix 8 butterfly arithmetic processing unit 21a receives a data set Q2 in bit reverse order corresponding to radix 8 butterfly arithmetic processing #2, which is output by the first data sorting processing unit 11, and performs radix 8 butterfly arithmetic processing #2. In cycle 3, the radix 8 butterfly arithmetic processing unit 21a receives a data set Q3 in bit reverse order corresponding to the radix 8 butterfly arithmetic processing #3 output by the first data sorting processing unit 11, and performs the radix 8 butterfly arithmetic processing #3. In the following cycles, the same procedure is followed, and in cycles 4 to 7, the radix 8 butterfly arithmetic processing unit 21a receives data sets Q4 to Q7 in bit reverse order corresponding to the radix 8 butterfly arithmetic processing #4 to #7, respectively, output by the first data sorting processing unit 11, and performs the radix 8 butterfly arithmetic processing #4 to #7.
Similarly, the first butterfly arithmetic processing unit 21 performs processing related to the second FFT process (F2) from the 8th to the 15th cycle, processing related to the third FFT process (F3) from the 16th to the 23rd cycle, and processing related to the fourth FFT process (F4) from the 24th to the 31st cycle.
第1のバタフライ演算処理部21は、バタフライ演算処理の結果を、データy(n)(n=0,1,・・・,63)として、図3の逐次順序で出力する。 The first butterfly arithmetic processing unit 21 outputs the results of the butterfly arithmetic processing as data y(n) (n = 0, 1, ..., 63) in the sequential order shown in Figure 3.
第2のデータ並べ替え処理部12は、第1のバタフライ演算処理部21が逐次順序で出力するデータy(n)を、図6に示す順序(以降、「FFTフレーム相互配置ビットリバース順序」という。)に並べ替える。「FFTフレーム相互配置ビットリバース順序」は、連続して処理する複数のFFT処理に関して、ビットリバース順序で作成された1つのFFT処理あたりs個のデータ組Qsが、サイクルの進行に合わせて出力されるときの順序に係わり、出力順序指定52によって指定することができる。本実施形態では、FFTフレーム相互配置ビットリバース順序は、第1から第4のFFT処理のQ0を連続し、次に、第1から第4のFFT処理のQ1を連続し、次に、第1から第4のFFT処理のQ2を連続し、次に、第1から第4のFFT処理のQ3を連続し、次に、第1から第4のFFT処理のQ4を連続し、次に、第1から第4のFFT処理のQ5を連続し、次に、第1から第4のFFT処理のQ6を連続し、次に、第1から第4のFFT処理のQ7を連続した順序に指定する。
第2のデータ並べ替え処理部12は、読み出しアドレス生成部41が出力する読み出しアドレス51を入力して、出力順序を決定する。読み出しアドレス生成部41は、CPU(Central Processing Unit)などの上位回路(図示せず)から与えられる出力順序設定52を参照して、第2のデータ並べ替え処理部12に出力する読み出しアドレス51を生成する。
The second data sorting processing unit 12 sorts the data y(n) output sequentially by the first butterfly arithmetic processing unit 21 in the order shown in Figure 6 (hereinafter referred to as the "FFT frame mutual arrangement bit reverse order"). The "FFT frame mutual arrangement bit reverse order" relates to the order in which s data sets Qs per FFT process, created in bit reverse order, are output in accordance with the progress of the cycle for multiple FFT processes that are processed consecutively, and can be specified by the output order specification 52. In this embodiment, the FFT frame mutual arrangement bit reverse order is specified as a sequence in which Q0 of the first to fourth FFT processes are consecutive, then Q1 of the first to fourth FFT processes are consecutive, then Q2 of the first to fourth FFT processes are consecutive, then Q3 of the first to fourth FFT processes are consecutive, then Q4 of the first to fourth FFT processes are consecutive, then Q5 of the first to fourth FFT processes are consecutive, then Q6 of the first to fourth FFT processes are consecutive, and then Q7 of the first to fourth FFT processes are consecutive.
The second data sorting processing unit 12 receives the read addresses 51 output by the read address generation unit 41 and determines the output order. The read address generation unit 41 generates the read addresses 51 to be output to the second data sorting processing unit 12 by referring to the output order setting 52 provided by a higher-level circuit (not shown), such as a CPU (Central Processing Unit).
具体的には、第2のデータ並べ替え処理部12は、0サイクル目に第1のFFT処理のQ0、1サイクル目に第2のFFT処理のQ0、2サイクル目に第3のFFT処理のQ0、3サイクル目に第4のFFT処理のQ0、を出力する。同様に、4サイクル目に第1のFFT処理のQ1、5サイクル目に第2のFFT処理のQ1、6サイクル目に第3のFFT処理のQ1、7サイクル目に第4のFFT処理のQ1、を出力する。以下同様に、
8から11サイクル目に第1から第4のFFT処理のQ2、
12から15サイクル目に第1から第4のFFT処理のQ3、
16から19サイクル目に第1から第4のFFT処理のQ4、
20から23サイクル目に第1から第4のFFT処理のQ5、
24から27サイクル目に第1から第4のFFT処理のQ6、
28から31サイクル目に第1から第4のFFT処理のQ7、を出力する。
Specifically, the second data sorting processing unit 12 outputs Q0 of the first FFT process in the 0th cycle, Q0 of the second FFT process in the 1st cycle, Q0 of the third FFT process in the 2nd cycle, and Q0 of the fourth FFT process in the 3rd cycle. Similarly, it outputs Q1 of the first FFT process in the 4th cycle, Q1 of the second FFT process in the 5th cycle, Q1 of the third FFT process in the 6th cycle, and Q1 of the fourth FFT process in the 7th cycle. And so on.
From cycles 8 to 11, Q2 of the first to fourth FFT processes,
From cycles 12 to 15, Q3 of the first to fourth FFT processes,
From cycle 16 to 19, Q4 of the first to fourth FFT processes,
From cycles 20 to 23, Q5 of the first to fourth FFT processes,
From cycles 24 to 27, Q6 of the first to fourth FFT processes,
From cycles 28 to 31, output Q7 of the first to fourth FFT processes.
すなわち、「FFTフレーム相互配置ビットリバース順序」は、連続して処理を行うF個のFFT処理(Fは2以上の正整数)のそれぞれのC番目のサイクル(Cは0≦C≦7の整数)の処理を、連続するサイクルにおいて処理するように、複数のFFT処理の処理順序を交互配置(インターリーブ)する順序といえる。 In other words, the "FFT frame inter-arrangement bit reverse order" can be described as an order in which the processing order of multiple FFT processes is interleaved, such that the processing of the Cth cycle (C being an integer between 0 and 7) of each of the F consecutively processed F FFT processes (where F is a positive integer greater than or equal to 2) is processed in consecutive cycles.
ひねり乗算処理部31は、第1のバタフライ演算処理後に、FFT演算における複素平面上の複素回転を処理する回路であり、図14のデータフロー500における、ひねり乗算処理504に対応する。なお、ひねり乗算処理では、データの並へ替えは行われない。
ひねり乗算処理部31は、ひねり係数テーブル31a、及びひねり乗算部31b、から構成される。ひねり係数テーブル31aは、第2のデータ並べ替え処理部12が、「FFTフレーム相互配置ビットリバース順序」で出力するそれぞれのFFT処理におけるデータy(n)(n=0,1,・・・,63)に対応して、ひねり係数W(n)(n=0,1,・・・,63)を出力する。W(n)はデータy(n)に対応するひねり係数である。従って、ひねり乗算処理部31がひねり係数W(n)を出力する順序は、第2のデータ並べ替え処理部12が並べ替えたデータを出力する順序である「FFTフレーム相互配置ビットリバース順序」で一意に決定される。具体的には、第2のデータ並べ替え処理部12が図6に示す「FFTフレーム相互配置ビットリバース順序」で出力する場合、ひねり係数テーブル31aは、図7に示す順序でひねり係数を出力する。図6、及び図7から明らかのように、第2のデータ並べ替え処理部12が出力するy(n)に対して、ひねり乗算処理部31が出力するひねり係数W(n)(n=0,1,・・・,63)が対応する。
ひねり乗算部31bは、第2のデータ並べ替え処理部12が出力するy(n)とひねり乗算処理部31が出力するひねり係数W(n)とを乗算することでひねり乗算処理を行い、第2のバタフライ演算処理部22に出力する。
The twist multiplication processing unit 31 is a circuit that processes the complex rotation on the complex plane in the FFT operation after the first butterfly operation, and corresponds to the twist multiplication process 504 in the data flow 500 of Figure 14. Note that no data reordering is performed in the twist multiplication process.
The twist multiplication processing unit 31 consists of a twist coefficient table 31a and a twist multiplication unit 31b. The twist coefficient table 31a outputs twist coefficients W(n) (n=0,1,...,63) corresponding to the data y(n) (n=0,1,...,63) in each FFT process output by the second data sorting processing unit 12 in the "FFT frame mutual arrangement bit reverse order". W(n) is the twist coefficient corresponding to the data y(n). Therefore, the order in which the twist multiplication processing unit 31 outputs the twist coefficients W(n) is uniquely determined by the "FFT frame mutual arrangement bit reverse order", which is the order in which the second data sorting processing unit 12 outputs the sorted data. Specifically, when the second data sorting processing unit 12 outputs in the "FFT frame mutual arrangement bit reverse order" shown in Figure 6, the twist coefficient table 31a outputs the twist coefficients in the order shown in Figure 7. As is clear from Figures 6 and 7, the torsion coefficient W(n) (n=0,1,...,63) output by the torsion multiplication processing unit 31 corresponds to y(n) output by the second data sorting processing unit 12.
The twist multiplication unit 31b performs a twist multiplication process by multiplying y(n) output by the second data sorting unit 12 by the twist coefficient W(n) output by the twist multiplication unit 31, and outputs the result to the second butterfly arithmetic unit 22.
第2のバタフライ演算処理部22は、図14のデータフロー500において2段階で行われる基数8のバタフライ演算処理の、2回目のバタフライ演算処理503(第2のバタフライ演算処理)を処理するバタフライ回路である。第2のバタフライ演算処理部22は、基数8バタフライ演算処理部22aから構成され、基数8バタフライ演算処理を行う。 The second butterfly arithmetic processing unit 22 is a butterfly circuit that processes the second butterfly arithmetic operation 503 (the second butterfly arithmetic operation) of the radix 8 butterfly arithmetic operation performed in two stages in the data flow 500 of Figure 14. The second butterfly arithmetic processing unit 22 consists of a radix 8 butterfly arithmetic processing unit 22a and performs radix 8 butterfly arithmetic operations.
図8は連続して処理を行う第1から第4の4つのFFT処理(F1~F4)について、第2のバタフライ演算処理部22の処理順序を示しており、具体的には、第2のバタフライ演算処理部22は、第1から第4のFFT処理(F1~F4)に関して、0サイクル目から3サイクル目において、バタフライ演算処理503を構成する#0の基数8バタフライ演算処理を行う。同様に、第2のバタフライ演算処理部22は、第1から第4のFFT処理(F1~F4)に関して、
4サイクル目から7サイクル目において、バタフライ演算処理503を構成する#1の、
8サイクル目から11サイクル目において、バタフライ演算処理503を構成する#2の、
12サイクル目から15サイクル目において、バタフライ演算処理503を構成する#3の、
16サイクル目から19サイクル目において、バタフライ演算処理503を構成する#4の、
20サイクル目から23サイクル目において、バタフライ演算処理503を構成する#5の、
24サイクル目から27サイクル目において、バタフライ演算処理503を構成する#6の、
28サイクル目から31サイクル目において、バタフライ演算処理503を構成する#7の、
基数8バタフライ演算処理を行う。
Figure 8 shows the processing order of the second butterfly arithmetic processing unit 22 for the four FFT processes (F1 to F4) that are processed sequentially. Specifically, the second butterfly arithmetic processing unit 22 performs the #0 radix 8 butterfly arithmetic processing that constitutes the butterfly arithmetic processing 503 in the 0th to 3rd cycles for the first to fourth FFT processes (F1 to F4 ). Similarly, the second butterfly arithmetic processing unit 22 performs the following for the first to fourth FFT processes (F1 to F4 ):
In cycles 4 through 7, the butterfly arithmetic process 503 consists of #1,
From the 8th to the 11th cycle, #2, which constitutes the butterfly arithmetic process 503,
From the 12th to the 15th cycle, #3, which constitutes the butterfly arithmetic process 503,
From the 16th to the 19th cycle, #4, which constitutes the butterfly arithmetic process 503,
From the 20th to the 23rd cycle, #5, which constitutes the butterfly arithmetic process 503,
From the 24th to the 27th cycle, #6, which constitutes the butterfly arithmetic process 503,
From the 28th to the 31st cycle, #7, which constitutes the butterfly arithmetic process 503,
Performs radix 8 butterfly arithmetic.
すなわち、サイクル0では、基数8バタフライ演算処理部22aは、第1のFFT処理(F1)に関して、第2のデータ並べ替え処理部12が出力する、基数8バタフライ演算処理#0に対応するビットリバース順序のデータ組Q0を入力して、基数8のバタフライ演算処理#0を行う。サイクル1では、基数8バタフライ演算処理部22aは、第2のFFT処理(F2)に関して、第2のデータ並べ替え処理部12が出力する、基数8バタフライ演算処理#0に対応するビットリバース順序のデータ組Q0を入力して、基数8のバタフライ演算処理#0を行う。サイクル2では、基数8バタフライ演算処理部22aは、第3のFFT処理(F3)に関して、第2のデータ並べ替え処理部12が出力する、基数8バタフライ演算処理#0に対応するビットリバース順序のデータ組Q0を入力して、基数8のバタフライ演算処理#0を行う。サイクル3では、基数8バタフライ演算処理部22aは、第4のFFT処理(F4)に関して、第2のデータ並べ替え処理部12が出力する、基数8バタフライ演算処理#0に対応するビットリバース順序のデータ組Q0を入力して、基数8のバタフライ演算処理#0を行う。 In other words, in cycle 0, the radix 8 butterfly arithmetic processing unit 22a receives a data set Q0 in bit reverse order corresponding to the radix 8 butterfly arithmetic processing #0 output by the second data sorting processing unit 12 for the first FFT processing (F1), and performs the radix 8 butterfly arithmetic processing #0. In cycle 1, the radix 8 butterfly arithmetic processing unit 22a receives a data set Q0 in bit reverse order corresponding to the radix 8 butterfly arithmetic processing #0 output by the second data sorting processing unit 12 for the second FFT processing (F2), and performs the radix 8 butterfly arithmetic processing #0. In cycle 2, the radix 8 butterfly arithmetic processing unit 22a receives a data set Q0 in bit reverse order corresponding to the radix 8 butterfly arithmetic processing #0 output by the second data sorting processing unit 12 for the third FFT processing (F3), and performs the radix 8 butterfly arithmetic processing #0. In cycle 3, the radix-8 butterfly arithmetic processing unit 22a receives the bit-reverse-ordered data set Q0, which corresponds to the radix-8 butterfly arithmetic processing #0 output by the second data sorting processing unit 12, for the fourth FFT process (F4), and performs the radix-8 butterfly arithmetic processing #0.
以降のサイクルでも同様にして、
サイクル4からサイクル7では、基数8バタフライ演算処理部22aは、第1から第4の4つのFFT処理(F1~F4)に関して、第2のデータ並べ替え処理部12が出力する、基数8バタフライ演算処理#1に対応するビットリバース順序のデータ組Q1を入力して、基数8のバタフライ演算処理#1を、
サイクル8からサイクル11では、基数8バタフライ演算処理部22aは、第1から第4の4つのFFT処理(F1~F4)に関して、第2のデータ並べ替え処理部12が出力する、基数8バタフライ演算処理#2に対応するビットリバース順序のデータ組Q2を入力して、基数8のバタフライ演算処理#2を、
サイクル12からサイクル15では、基数8バタフライ演算処理部22aは、第1から第4の4つのFFT処理(F1~F4)に関して、第2のデータ並べ替え処理部12が出力する、基数8バタフライ演算処理#3に対応するビットリバース順序のデータ組Q3を入力して、基数8のバタフライ演算処理#3を、
サイクル16からサイクル19では、基数8バタフライ演算処理部22aは、第1から第4の4つのFFT処理(F1~F4)に関して、第2のデータ並べ替え処理部12が出力する、基数8バタフライ演算処理#4に対応するビットリバース順序のデータ組Q4を入力して、基数8のバタフライ演算処理#4を、
サイクル20からサイクル23では、基数8バタフライ演算処理部22aは、第1から第4の4つのFFT処理(F1~F4)に関して、第2のデータ並べ替え処理部12が出力する、基数8バタフライ演算処理#5に対応するビットリバース順序のデータ組Q5を入力して、基数8のバタフライ演算処理#5を、
サイクル24からサイクル27では、基数8バタフライ演算処理部22aは、第1から第4の4つのFFT処理(F1~F4)に関して、第2のデータ並べ替え処理部12が出力する、基数8バタフライ演算処理#6に対応するビットリバース順序のデータ組Q6を入力して、基数8のバタフライ演算処理#6を、
サイクル28からサイクル31では、基数8バタフライ演算処理部22aは、第1から第4の4つのFFT処理(F1~F4)に関して、第2のデータ並べ替え処理部12が出力する、基数8バタフライ演算処理#7に対応するビットリバース順序のデータ組Q7を入力して、基数8のバタフライ演算処理#7を、行う。
In subsequent cycles,
In cycles 4 through 7, the radix 8 butterfly arithmetic processing unit 22a receives the bit reverse order data set Q1 corresponding to the radix 8 butterfly arithmetic processing #1 output by the second data sorting processing unit 12 for the four FFT processes (F1 through F4) from the first to the fourth, and performs the radix 8 butterfly arithmetic processing #1.
In cycles 8 through 11, the radix-8 butterfly arithmetic processing unit 22a receives the bit-reverse-ordered data set Q2, which corresponds to the radix-8 butterfly arithmetic processing #2 output by the second data sorting processing unit 12, for the first to fourth FFT processes (F1 to F4), and performs the radix-8 butterfly arithmetic processing #2.
In cycles 12 to 15, the radix 8 butterfly arithmetic processing unit 22a receives the bit reverse order data set Q3 corresponding to the radix 8 butterfly arithmetic processing #3 output by the second data sorting processing unit 12 for the four FFT processes (F1 to F4) from the first to the fourth, and performs the radix 8 butterfly arithmetic processing #3.
In cycles 16 to 19, the radix-8 butterfly arithmetic processing unit 22a receives the bit-reverse-ordered data set Q4 corresponding to the radix-8 butterfly arithmetic processing #4 output by the second data sorting processing unit 12 for the four FFT processes (F1 to F4) from the first to the fourth, and performs the radix-8 butterfly arithmetic processing #4.
In cycles 20 to 23, the radix 8 butterfly arithmetic processing unit 22a receives the bit reverse order data set Q5 corresponding to the radix 8 butterfly arithmetic processing #5 output by the second data sorting processing unit 12 for the four FFT processes from the first to the fourth (F1 to F4), and performs the radix 8 butterfly arithmetic processing #5.
In cycles 24 to 27, the radix-8 butterfly arithmetic processing unit 22a receives the bit-reverse-ordered data set Q6 corresponding to the radix-8 butterfly arithmetic processing #6 output by the second data sorting processing unit 12 for the four FFT processes (F1 to F4) from the first to the fourth, and performs the radix-8 butterfly arithmetic processing #6.
In cycles 28 to 31, the radix 8 butterfly arithmetic processing unit 22a receives a data set Q7 in bit reverse order corresponding to the radix 8 butterfly arithmetic processing #7 output by the second data sorting processing unit 12 for the four FFT processes (F1 to F4) from the first to the fourth, and performs the radix 8 butterfly arithmetic processing #7.
第2のバタフライ演算処理部22は、第1から第4の4つのFFT処理(F1~F4)に関して、バタフライ演算処理の結果X(k)(n=0,1,・・・,63)を、同じくFFTフレーム相互配置ビットリバース順序で出力する。 The second butterfly arithmetic processing unit 22 outputs the results of the butterfly arithmetic processing X(k) (n=0,1,...,63) for the four FFT processes (F1-F4) from the first to the fourth, in the same FFT frame mutual arrangement bit reverse order.
第1のデータ並べ替え処理部11、及び第2のデータ並べ替え処理部12は、入力されたデータを一旦記憶し、記憶したデータの選択及び出力を制御することによって、図4のビットリバース順序、図6のFFTフレーム相互配置ビットリバース順序のそれぞれに従ったデータの並べ替え処理が実現される。以下に、データ並べ替え処理部の具体例を示す。 The first data sorting processing unit 11 and the second data sorting processing unit 12 temporarily store the input data and control the selection and output of the stored data, thereby realizing data sorting according to the bit reverse order shown in Figure 4 and the FFT frame mutual arrangement bit reverse order shown in Figure 6, respectively. A specific example of the data sorting processing unit is shown below.
第1のデータ並べ替え処理部11は、例えば図9に示すデータ並べ替え処理部100で実現することができる。 The first data sorting processing unit 11 can be implemented, for example, by the data sorting processing unit 100 shown in Figure 9.
データ並べ替え処理部100は、入力情報103として入力される8個のデータからなるデータ組A~Hを、FIFOバッファ(First In First Out Buffer:先入れ先出しバッファ)における先入れ順序で入力して、データ記憶位置101a~101hに書き込み、記憶する。具体的には、データ記憶位置101a~101hのそれぞれに、データ組A~Hが記憶される。 The data sorting processing unit 100 takes data sets A to H, consisting of eight data points input as input information 103, and inputs them in a first-in, first-out (FIFO) buffer, writing them to data storage locations 101a to 101h for storage. Specifically, data sets A to H are stored in each of the data storage locations 101a to 101h.
次に、データ並べ替え処理部100は、FIFOバッファにおける先出し順序で、記憶しているデータを2データ組ずつ出力する。具体的には、データ並べ替え処理部100は、データ読み出し位置102a~102hのそれぞれから8個のデータを読み出して1つのデータ組とし、8つのデータ組a~hを出力情報104として出力する。このように、データ組a~hは、サイクル順に並べられたデータ組A~Hに含まれるデータを、データ位置の順に並べ替えて1つの組としたものである。 Next, the data sorting processing unit 100 outputs the stored data in the first-to-use order in the FIFO buffer, two data sets at a time. Specifically, the data sorting processing unit 100 reads eight data points from each of the data reading positions 102a to 102h, combines them into one data set, and outputs these eight data sets a to h as output information 104. Thus, data sets a to h are formed by rearranging the data contained in data sets A to H, which are arranged in cyclic order, according to their data positions.
一方、図10は、第2のデータ並べ替え処理部12の実現例を示すデータ並べ替え処理部200の構成図である。データ並べ替え処理部200は、4つの部分データ並べ替え処理部206a、206b、206c、206d、から構成され、それぞれ第1から第4のFFT処理(F1~F4)に対応する。 On the other hand, Figure 10 is a configuration diagram of the data sorting processing unit 200, showing an example of the implementation of the second data sorting processing unit 12. The data sorting processing unit 200 consists of four partial data sorting processing units 206a, 206b, 206c, and 206d, each corresponding to the first to fourth FFT processes (F1 to F4).
まず、第1のFFT処理(F1)に関して、部分データ並べ替え処理部206aにおいて、入力データ203として入力される8個のデータからなるデータ組A~Hを、FIFOバッファにおける先入れ順序で入力して、データ記憶位置201a~201hに書き込み、記憶する。すなわち、サイクル順に対応するデータ記憶位置201a~201hのそれぞれに、データ組A~Hが順に記憶される。このとき、記憶されたデータをデータ位置の順、すなわち、データ記憶位置201a~201hの順に見ると、データ記憶位置201a~201hのそれぞれには、データ組a~hが記憶されている。 First, regarding the first FFT process (F1), the partial data sorting processing unit 206a inputs data sets A to H, consisting of eight data points, as input data 203, in first-in-place order in the FIFO buffer, and writes them to data storage positions 201a to 201h for storage. That is, data sets A to H are stored sequentially in each of the data storage positions 201a to 201h corresponding to the cycle order. At this time, when viewing the stored data in the order of the data positions, i.e., in the order of data storage positions 201a to 201h, data sets a to h are stored in each of the data storage positions 201a to 201h.
同様に、第2のFFT処理(F2)に関して、部分データ並べ替え処理部206bにおいて、入力データ203として入力される8個のデータからなるデータ組A~Hを、FIFOバッファにおける先入れ順序で入力して、データ記憶位置201a~201hに書き込み、記憶する。第3のFFT処理(F3)に関して、部分データ並べ替え処理部206cにおいて、入力データ203として入力される8個のデータからなるデータ組A~Hを、FIFOバッファにおける先入れ順序で入力して、データ記憶位置201a~201hに書き込み、記憶する。第4のFFT処理(F4)に関して、部分データ並べ替え処理部206dにおいて、入力データ203として入力される8個のデータからなるデータ組A~Hを、FIFOバッファにおける先入れ順序で入力して、データ記憶位置201a~201hに書き込み、記憶する。 Similarly, regarding the second FFT process (F2), the partial data sorting processing unit 206b inputs data sets A to H, consisting of eight data points, as input data 203, in first-in-order (FIFO) order in the FIFO buffer, and writes and stores them in data storage locations 201a to 201h. Regarding the third FFT process (F3), the partial data sorting processing unit 206c inputs data sets A to H, consisting of eight data points, as input data 203, in first-in-order (FIFO) order in the FIFO buffer, and writes and stores them in data storage locations 201a to 201h. Regarding the fourth FFT process (F4), the partial data sorting processing unit 206d inputs data sets A to H, consisting of eight data points, as input data 203, in first-in-order (FIFO) order in the FIFO buffer, and writes and stores them in data storage locations 201a to 201h.
次に、データ並べ替え処理部200は、記憶しているデータを、読み出し回路205により1データ組ずつ読み出して、出力データ204として出力する。このとき、読み出し回路205は、読み出しアドレス51を参照して、部分データ並べ替え処理部206a~206dの中からいずれか1つを選択し、さらに選択した部分データ並べ替え処理部のデータ記憶位置201a~201hの中からいずれか1つを選択して、データ記憶位置201a~201hに記憶されている8個のデータのいずれか1つを1回の読み出し動作で読み出す。このように、読み出しアドレス51に任意に指定可能な所望の組み合わせ、及び順番で読み出しアドレスを与えることにより、任意の組み合わせ、及び順番でデータを読み出すことができる。例えば、読み出しアドレス51に、部分データ並べ替え処理部206aのアドレス0、部分データ並べ替え処理部206bのアドレス0、部分データ並べ替え処理部206cのアドレス0、部分データ並べ替え処理部206dのアドレス0、
部分データ並べ替え処理部206aのアドレス1、部分データ並べ替え処理部206bのアドレス1、部分データ並べ替え処理部206cのアドレス1、部分データ並べ替え処理部206dのアドレス1、
部分データ並べ替え処理部206aのアドレス2、部分データ並べ替え処理部206bのアドレス2、部分データ並べ替え処理部206cのアドレス2、部分データ並べ替え処理部206dのアドレス2、
部分データ並べ替え処理部206aのアドレス3、部分データ並べ替え処理部206bのアドレス3、部分データ並べ替え処理部206cのアドレス3、部分データ並べ替え処理部206dのアドレス3、
部分データ並べ替え処理部206aのアドレス4、部分データ並べ替え処理部206bのアドレス4、部分データ並べ替え処理部206cのアドレス4、部分データ並べ替え処理部206dのアドレス4、
部分データ並べ替え処理部206aのアドレス5、部分データ並べ替え処理部206bのアドレス5、部分データ並べ替え処理部206cのアドレス5、部分データ並べ替え処理部206dのアドレス5、
部分データ並べ替え処理部206aのアドレス6、部分データ並べ替え処理部206bのアドレス6、部分データ並べ替え処理部206cのアドレス6、部分データ並べ替え処理部206dのアドレス6、
部分データ並べ替え処理部206aのアドレス7、部分データ並べ替え処理部206bのアドレス7、部分データ並べ替え処理部206cのアドレス7、部分データ並べ替え処理部206dのアドレス7、
の順番で読み出しアドレスを与えた場合、データ並べ替え処理部200は、第1のFFT処理(F1)のデータ組a、第2のFFT処理(F2)のデータ組a、第3のFFT処理(F3)のデータ組a、第4のFFT処理(F4)のデータ組a、の順序で、記憶しているデータを出力し、それ以降も同様に、
第1から第4のFFT処理(F1~F4)にそれぞれ対応する4つのデータ組b、
第1から第4のFFT処理(F1~F4)にそれぞれ対応する4つのデータ組c、
第1から第4のFFT処理(F1~F4)にそれぞれ対応する4つのデータ組d、
第1から第4のFFT処理(F1~F4)にそれぞれ対応する4つのデータ組e、
第1から第4のFFT処理(F1~F4)にそれぞれ対応する4つのデータ組f、
第1から第4のFFT処理(F1~F4)にそれぞれ対応する4つのデータ組g、
第1から第4のFFT処理(F1~F4)にそれぞれ対応する4つのデータ組h、
の順番で、記憶しているデータを出力する。すなわち、図6に示したFFTフレーム相互配置ビットリバース順序でデータが出力される。ここで、データ組a~hは、サイクル順に並べられたデータ組A~Hに含まれるデータを、データ位置の順に並べ替えて1つの組としたものである。
Next, the data sorting processing unit 200 reads the stored data one data set at a time using the read circuit 205 and outputs it as output data 204. At this time, the read circuit 205 refers to the read address 51 and selects one of the partial data sorting processing units 206a to 206d, and then selects one of the data storage locations 201a to 201h of the selected partial data sorting processing unit, and reads one of the eight data stored in the data storage locations 201a to 201h in a single read operation. In this way, by assigning read addresses to the read address 51 in any desired combination and order, it is possible to read data in any combination and order. For example, the read address 51 could be set to address 0 of partial data sorting processing unit 206a, address 0 of partial data sorting processing unit 206b, address 0 of partial data sorting processing unit 206c, address 0 of partial data sorting processing unit 206d,
Address 1 of partial data sorting processing unit 206a, Address 1 of partial data sorting processing unit 206b, Address 1 of partial data sorting processing unit 206c, Address 1 of partial data sorting processing unit 206d,
Address 2 of partial data sorting processing unit 206a, address 2 of partial data sorting processing unit 206b, address 2 of partial data sorting processing unit 206c, address 2 of partial data sorting processing unit 206d,
Address 3 of partial data sorting processing unit 206a, address 3 of partial data sorting processing unit 206b, address 3 of partial data sorting processing unit 206c, address 3 of partial data sorting processing unit 206d,
Address 4 of partial data sorting processing unit 206a, address 4 of partial data sorting processing unit 206b, address 4 of partial data sorting processing unit 206c, address 4 of partial data sorting processing unit 206d,
Address 5 of partial data sorting processing unit 206a, address 5 of partial data sorting processing unit 206b, address 5 of partial data sorting processing unit 206c, address 5 of partial data sorting processing unit 206d,
Address 6 of partial data sorting processing unit 206a, address 6 of partial data sorting processing unit 206b, address 6 of partial data sorting processing unit 206c, address 6 of partial data sorting processing unit 206d,
Address 7 of partial data sorting processing unit 206a, address 7 of partial data sorting processing unit 206b, address 7 of partial data sorting processing unit 206c, address 7 of partial data sorting processing unit 206d,
When the read addresses are provided in that order, the data sorting processing unit 200 outputs the stored data in the following order: data set a of the first FFT process (F1), data set a of the second FFT process (F2), data set a of the third FFT process (F3), data set a of the fourth FFT process (F4), and so on thereafter.
Four data sets b, corresponding to the first to fourth FFT processes (F1 to F4),
Four data sets c, corresponding to the first to fourth FFT processes (F1 to F4),
Four data sets d, corresponding to the first to fourth FFT processes (F1 to F4),
Four data sets e, corresponding to the first to fourth FFT processes (F1 to F4),
Four data sets f, corresponding to the first to fourth FFT processes (F1 to F4),
Four data sets g, corresponding to the first to fourth FFT processes (F1 to F4),
Four data sets h corresponding to the first to fourth FFT processes (F1 to F4),
The stored data is output in the order shown above. That is, the data is output in the FFT frame mutual arrangement bit reverse order shown in Figure 6. Here, data sets a to h are formed by rearranging the data contained in data sets A to H, which are arranged in cycle order, in order of data position.
以上説明したように、FFT装置10において、第1のデータ並べ替え処理部11、及び第2のデータ並べ替え処理部12によって、図3の逐次順序、図4のビットリバース順序、図6のFFTフレーム相互配置ビットリバース順序のそれぞれに従った2回の並べ替え処理が行われる。 As explained above, in the FFT device 10, the first data sorting processing unit 11 and the second data sorting processing unit 12 perform two sorting processes according to the sequential order in Figure 3, the bit reverse order in Figure 4, and the FFT frame mutual arrangement bit reverse order in Figure 6, respectively.
次に、本発明の第2の実施形態に係るフィルタ処理部420の詳細を説明する。 Next, the details of the filter processing unit 420 according to the second embodiment of the present invention will be described.
フィルタ処理部420は、FFT回路10の処理後に、複素数乗算による複素数フィルタ処理を行う回路である。フィルタ処理部420は、フィルタ係数テーブル421、及びフィルタ乗算部422、から構成される。フィルタ係数テーブル421は、FFT回路10が複素数信号431に「FFTフレーム相互配置ビットリバース順序」で出力するデータX(k)(k=0,1,・・・,63)に対応して、フィルタ係数C(k)(k=0,1,・・・,63)を出力する。C(k)はデータX(k)に対応するフィルタ係数である。従って、フィルタ係数テーブル421がフィルタ係数C(k)を出力する順序は、FFT回路10がX(k)を出力する順序である「FFTフレーム相互配置ビットリバース順序」で一意に決定される。 The filter processing unit 420 is a circuit that performs complex number filtering by complex number multiplication after processing by the FFT circuit 10. The filter processing unit 420 consists of a filter coefficient table 421 and a filter multiplication unit 422. The filter coefficient table 421 outputs filter coefficients C(k) (k=0,1,...,63) corresponding to the data X(k) (k=0,1,...,63) output by the FFT circuit 10 to the complex number signal 431 in the "FFT frame mutual arrangement bit reverse order". C(k) is the filter coefficient corresponding to the data X(k). Therefore, the order in which the filter coefficient table 421 outputs the filter coefficients C(k) is uniquely determined by the "FFT frame mutual arrangement bit reverse order," which is the order in which the FFT circuit 10 outputs X(k).
具体的には、FFT回路10が図6に示す「FFTフレーム相互配置ビットリバース順序」で出力する場合、フィルタ係数テーブル421は、図11に示す順序でフィルタ係数を出力する。図6、及び図11から明らかのように、FFT回路10が出力するデータX(k)に対して、フィルタ係数C(k)(k=0,1,・・・,63)が対応する。 Specifically, when the FFT circuit 10 outputs in the "FFT frame mutual arrangement bit reverse order" shown in Figure 6, the filter coefficient table 421 outputs the filter coefficients in the order shown in Figure 11. As is clear from Figures 6 and 11, the filter coefficients C(k) (k = 0, 1, ..., 63) correspond to the data X(k) output by the FFT circuit 10.
フィルタ乗算部422は、FFT回路10が出力するデータX(k)とフィルタ係数テーブル421が出力するフィルタ係数C(k)とを乗算することでフィルタ乗算処理を行い、複素数信号434に出力する。
ここで、本実施形態が第2のデータ並べ替え処理部12の出力以降で採用するデータ順序である「FFTフレーム相互配置ビットリバース順序」と、第2のデータ並べ替え処理部12の入力以前で採用する「ビットリバース順序」との違いについて説明する。
The filter multiplication unit 422 performs a filter multiplication process by multiplying the data X(k) output by the FFT circuit 10 with the filter coefficient C(k) output by the filter coefficient table 421, and outputs the result as a complex number signal 434.
Here, we will explain the difference between the "FFT frame mutual arrangement bit reverse order," which is the data order adopted by this embodiment after the output of the second data sorting processing unit 12, and the "bit reverse order," which is adopted before the input of the second data sorting processing unit 12.
本実施形態において、ひねり乗算処理部31がひねり係数W(n)を出力する順序は、第2のデータ並べ替え処理部12の出力順序であるFFTフレーム相互配置ビットリバース順序で決定され、具体的には図7で示す順序で出力する。 In this embodiment, the order in which the twist multiplication processing unit 31 outputs the twist coefficient W(n) is determined by the FFT frame mutual arrangement bit reverse order, which is the output order of the second data sorting processing unit 12. Specifically, it outputs in the order shown in Figure 7.
図7において明らかのように、ひねり係数W(n)におけるws(0)からws(7)のそれぞれの値は、サイクル0からサイクル3まで同一であり、サイクル4からサイクル7まで同一であり、それ以降のサイクルも第1から第4のFFT処理(F1~F4)に対応する4サイクル毎に同一である。 As is clear from Figure 7, the values of ws(0) to ws(7) in the torsion coefficient W(n) are the same from cycle 0 to cycle 3, the same from cycle 4 to cycle 7, and the same every four cycles corresponding to the first to fourth FFT processes (F1 to F4 ) in subsequent cycles.
ここで、ひねり乗算処理部31の消費電力について着目すると、このws(0)からws(7)までの8個のデータの値の変化の大きさが、消費電力に大きく影響する。具体的には、ひねり係数W(n)を2進数で表現した2進数値において、ws(0)からws(7)までの8個のデータのビット単位の動作率(トグル率)が、消費電力に大きく影響する。なぜなら、CMOS(Complementary Metal Oxide Semiconductor)回路により実現したデジタル信号処理回路の動的な消費電力(ダイナミック電力)Pは、下記に示す式(4)で表現することができ、 Focusing on the power consumption of the twist multiplication processing unit 31, the magnitude of the change in the values of the eight data points from ws(0) to ws(7) greatly affects the power consumption. Specifically, in the binary values obtained by representing the twist coefficient W(n) in binary, the bit-level operation rate (toggle rate) of the eight data points from ws(0) to ws(7) greatly affects the power consumption. This is because the dynamic power consumption P of a digital signal processing circuit realized by a CMOS (Complementary Metal Oxide Semiconductor) circuit can be expressed by the following equation (4):
P=(1/2)*a*C*V2*f・・・(4) P=(1/2)*a*C*V2*f...(4)
ここで、
a:回路動作率、
C:負荷容量、
V:電圧、
f:動作周波数
ws(0)からws(7)までの8個のデータのビット単位の動作率が、回路動作率aに大きく影響するからである。すなわち、ws(0)からws(7)までの8個のデータのビット単位の動作率が小さくなる出力順序を選択することが、ひねり乗算処理部31の消費電力の低減に有効である。
Here,
a: circuit operation rate,
C: load capacity,
V: Voltage,
f: This is because the bit-level operating rate of the eight data points from operating frequencies ws(0) to ws(7) greatly affects the circuit operating rate a. In other words, selecting an output order that reduces the bit-level operating rate of the eight data points from ws(0) to ws(7) is effective in reducing the power consumption of the twist multiplication processing unit 31.
本実施形態の「FFTフレーム相互配置ビットリバース順序」は、第1から第4のFFT処理(F1~F4)に対応する4サイクル内では、ひねり係数W(n)の値が変化しないため、例えば「ビットリバース順序」と比較すると、ひねり係数W(n)に係る動作率を小さくすることができる。その結果、ひねり乗算処理部31に係る消費電力を小さくすることができる順序といえる。 In this embodiment, the "FFT frame mutual arrangement bit reverse order" does not change the value of the torsion coefficient W(n) within the four cycles corresponding to the first to fourth FFT processing (F1 to F4 ). Therefore, compared to, for example, the "bit reverse order," the operating rate related to the torsion coefficient W(n) can be reduced. As a result, this order can be said to reduce the power consumption related to the torsion multiplication processing unit 31.
同様に、本実施形態のフィルタ処理部420がフィルタ係数C(k)を出力する順序は、第2のデータ並べ替え処理部12の出力順序であるFFTフレーム相互配置ビットリバース順序で決定され、具体的には図11で示す順序で出力する。 Similarly, the order in which the filter processing unit 420 of this embodiment outputs the filter coefficients C(k) is determined by the FFT frame mutual arrangement bit reverse order, which is the output order of the second data sorting processing unit 12, and specifically, it outputs in the order shown in Figure 11.
図11において明らかのように、フィルタ係数C(k)におけるcs(0)からcs(7)のそれぞれの値は、サイクル0からサイクル3まで同一であり、サイクル4からサイクル7まで同一であり、それ以降のサイクルも第1から第4のFFT処理(F1~F4)に対応する4サイクル毎に同一である。 As is clear from Figure 11, the values of cs(0) to cs(7) in the filter coefficient C(k) are the same from cycle 0 to cycle 3, the same from cycle 4 to cycle 7, and the same every four cycles corresponding to the first to fourth FFT processes (F1 to F4 ) in subsequent cycles.
本実施形態の「FFTフレーム相互配置ビットリバース順序」は、第1から第4のFFT処理(F1~F4)に対応する4サイクル内では、フィルタ係数C(k)の値が変化しないため、例えば「ビットリバース順序」と比較すると、フィルタ係数C(k)に係る動作率を小さくすることができる。その結果、フィルタ処理部420に係る消費電力を小さくすることができる順序といえる。 In this embodiment, the "FFT frame mutual arrangement bit reverse order" does not change the value of the filter coefficient C(k) within the four cycles corresponding to the first to fourth FFT processing (F1 to F4 ). Therefore, compared to, for example, the "bit reverse order," the operating rate related to the filter coefficient C(k) can be reduced. As a result, this order can be said to reduce the power consumption of the filter processing unit 420.
以上のように、本実施形態では、FFT装置10は、出力順序設定52を用いて順序を指定することによって、任意の順序でデータを出力することができる。例えば、連続して処理を行う複数のFFT処理について、処理順序を交互配置(インターリーブ)することで、ひねり演算処理やフィルタ演算処理に係る電力を小さくすることができる。その結果、デジタルフィルタ処理全体の消費電力を低減することができる。 As described above, in this embodiment, the FFT device 10 can output data in any order by specifying the order using the output order setting 52. For example, by alternating the processing order (interleaving) of multiple FFT processes that are processed consecutively, the power consumption related to the twist calculation and filter calculation can be reduced. As a result, the overall power consumption of the digital filter process can be reduced.
なお、本実施形態では、64ポイントFFT処理(N=64)を8データ並列(P=8)で8サイクル(M=N/P=8)かけて処理する場合について説明したが、FFT処理のポイント数は64に限らない。任意の2以上の整数Nについて、本実施形態を同様に適用してもよい。また、データ並列数は8に限らず、N以下の任意の整数Pについて、Pデータ並列で処理してもよい。この場合、1つのNポイントFFT処理はC=N/Pサイクルで処理される。 In this embodiment, we described a case where a 64-point FFT process (N=64) is processed using 8 data parallelisms (P=8) over 8 cycles (M=N/P=8). However, the number of points in the FFT process is not limited to 64. This embodiment may be applied similarly to any integer N of 2 or more. Furthermore, the number of data parallelisms is not limited to 8; any integer P less than or equal to N may be processed using P data parallelisms. In this case, one N-point FFT process is completed in C=N/P cycles.
また、本実施形態では、連続して処理を行う4つのFFT処理の処理順序を交互配置(インターリーブ)する場合を例として説明したが、交互配置するFFT処理数は4に限らない。任意の2以上の整数Fについて、連続して処理を行うF個のFFT処理の処理順序を交互配置してもよい。このとき、ひねり係数W(n)やフィルタ係数C(k)に係る動作率を1/Fに低減することが可能であり、それに応じてひねり演算処理やフィルタ演算処理に係る電力を小さくすることができる。 Furthermore, while this embodiment describes an example where the processing order of four consecutively processed FFT operations is interleaved, the number of interleaved FFT operations is not limited to four. For any two or more integers F, the processing order of F consecutively processed FFT operations may be interleaved. In this case, the operating rate related to the torsion coefficient W(n) and filter coefficient C(k) can be reduced to 1/F, and accordingly, the power consumption related to the torsion calculation and filter calculation can be reduced.
また、本実施形態では、FFT処理を例として説明したが、IFFTにおいても同様である。すなわち、本実施形態の制御方法をIFFT処理装置に適用して、IFFT処理内やIFFT処理後段の処理順序を最適化すれば、IFFT処理内やIFFT処理後段の消費電力を低減することができる。 Furthermore, although this embodiment uses FFT processing as an example, the same principles apply to IFFT processing. That is, by applying the control method of this embodiment to an IFFT processing device and optimizing the processing order within and after the IFFT processing, power consumption within and after the IFFT processing can be reduced.
(第3の実施形態)
本発明の第3の実施形態に係るデジタルフィルタ回路は、第2の実施形態に係るデジタルフィルタ回路400と同一の回路構成において、出力順序指定52に第2の実施形態とは異なる順序を指定した実施形態である。
(Third embodiment)
The digital filter circuit according to the third embodiment of the present invention is an embodiment in which the output order specification 52 is specified in a different order from that of the second embodiment, while having the same circuit configuration as the digital filter circuit 400 according to the second embodiment.
第3の実施形態に係る第2のデータ並べ替え処理部12は、第1のバタフライ演算処理部21が逐次順序で出力するデータy(n)を、図12に示す順序(以降、「FFTフレーム相互配置電力最適化ビットリバース順序」という。)に並べ替える。「FFTフレーム相互配置電力最適化ビットリバース順序」は、連続して処理する複数のFFT処理に関して、ビットリバース順序で作成された1つのFFT処理あたりs個のデータ組Qsが、サイクルの進行に合わせて出力されるときの順序に係わり、出力順序指定52によって指定することができる。本実施形態では、FFTフレーム相互配置電力最適化ビットリバース順序は、第1から第4のFFT処理のQ3を連続し、次に、第1から第4のFFT処理のQ5を連続し、次に、第1から第4のFFT処理のQ1を連続し、次に、第1から第4のFFT処理のQ7を連続し、次に、第1から第4のFFT処理のQ0を連続し、次に、第1から第4のFFT処理のQ2を連続し、次に、第1から第4のFFT処理のQ6を連続し、次に、第1から第4のFFT処理のQ4を連続した順序に指定する。 The second data sorting processing unit 12 in the third embodiment sorts the data y(n) output sequentially by the first butterfly arithmetic processing unit 21 in the order shown in Figure 12 (hereinafter referred to as the "FFT frame interconnected arrangement power optimization bit reverse order"). The "FFT frame interconnected arrangement power optimization bit reverse order" relates to the order in which s data sets Qs per FFT process, created in bit reverse order, are output in accordance with the progress of the cycle for a plurality of FFT processes that are processed consecutively, and can be specified by the output order specification 52. In this embodiment, the FFT frame mutual arrangement power optimization bit reverse order is specified as follows: Q3 of the first to fourth FFT processes are performed consecutively, followed by Q5 of the first to fourth FFT processes, followed by Q1 of the first to fourth FFT processes, followed by Q7 of the first to fourth FFT processes, followed by Q0 of the first to fourth FFT processes, followed by Q2 of the first to fourth FFT processes, followed by Q6 of the first to fourth FFT processes, and then Q4 of the first to fourth FFT processes.
第2のデータ並べ替え処理部12は、読み出しアドレス生成部41が出力する読み出しアドレス51を入力して、出力順序を決定する。 読み出しアドレス生成部41は、CPU(Central Processing Unit)などの上位回路(図示せず)から与えられる出力順序設定52を参照して、データ並べ替え処理部12に出力する読み出しアドレス51を生成する。 The second data sorting processing unit 12 receives the read addresses 51 output by the read address generation unit 41 and determines the output order. The read address generation unit 41 generates the read addresses 51 to be output to the data sorting processing unit 12 by referring to the output order setting 52 provided by a higher-level circuit (not shown), such as the CPU (Central Processing Unit).
具体的には、第2のデータ並べ替え処理部12は、0サイクル目に第1のFFT処理のQ3、1サイクル目に第2のFFT処理のQ3、2サイクル目に第3のFFT処理のQ3、3サイクル目に第4のFFT処理のQ3、を出力する。同様に、4サイクル目に第1のFFT処理のQ5、5サイクル目に第2のFFT処理のQ5、6サイクル目に第3のFFT処理のQ5、7サイクル目に第4のFFT処理のQ5、を出力する。以下同様に、
8から11サイクル目に第1から第4のFFT処理のQ1を順に、
12から15サイクル目に第1から第4のFFT処理のQ7を順に、
16から19サイクル目に第1から第4のFFT処理のQ0を順に、
20から23サイクル目に第1から第4のFFT処理のQ2を順に、
24から27サイクル目に第1から第4のFFT処理のQ6を順に、
28から31サイクル目に第1から第4のFFT処理のQ4を順に、出力する。
すなわち、「FFTフレーム相互配置電力最適化ビットリバース順序」は、第2の実施形態に係る「FFTフレーム相互配置化ビットリバース順序」と同様に、連続して処理を行うF個のFFT処理(Fは2以上の正整数)のそれぞれのC番目のサイクル(Cは0≦C≦7の整数)の処理を、連続するサイクルにおいて処理するように、複数のFFT処理の処理順序を交互配置(インターリーブ)する順序といえる。
Specifically, the second data sorting processing unit 12 outputs Q3 of the first FFT process in the 0th cycle, Q3 of the second FFT process in the 1st cycle, Q3 of the third FFT process in the 2nd cycle, and Q3 of the fourth FFT process in the 3rd cycle. Similarly, it outputs Q5 of the first FFT process in the 4th cycle, Q5 of the second FFT process in the 5th cycle, Q5 of the third FFT process in the 6th cycle, and Q5 of the fourth FFT process in the 7th cycle. And so on.
From cycles 8 to 11, the Q1 of the first to fourth FFT processes are performed in order.
From cycles 12 to 15, Q7 of the first to fourth FFT processes is performed in order.
From cycle 16 to 19, the Q0 of the first to fourth FFT processes are performed in order.
From cycle 20 to 23, the Q2 of the first to fourth FFT processes are performed in order.
From cycle 24 to 27, Q6 of the first to fourth FFT processes is performed in order.
From cycles 28 to 31, Q4 of the first to fourth FFT processes is output in sequence.
In other words, the "FFT frame inter-arrangement power optimization bit reverse order" is similar to the "FFT frame inter-arrangement bit reverse order" in the second embodiment, and can be described as an order in which the processing order of multiple FFT processes is interleaved so that the processing of the Cth cycle (C is an integer between 0 and 7) of each of the F F FFT processes (F is a positive integer of 2 or more) that are processed consecutively is processed in consecutive cycles.
第3の実施形態に係るひねり乗算処理部31は、第1のバタフライ演算処理後に、FFT演算における複素平面上の複素回転を処理する回路であり、図14のデータフロー500における、ひねり乗算処理504に対応する。なお、ひねり乗算処理では、データの並へ替えは行われない。 The twist multiplication processing unit 31 in the third embodiment is a circuit that processes the complex rotation on the complex plane in the FFT calculation after the first butterfly operation, and corresponds to the twist multiplication process 504 in the data flow 500 of Figure 14. Note that data reordering is not performed in the twist multiplication process.
ひねり乗算処理部31は、ひねり係数テーブル31a、及びひねり乗算部31b、から構成される。ひねり係数テーブル31aは、第2のデータ並べ替え処理部12が、「FFTフレーム相互配置電力最適化ビットリバース順序」で出力するそれぞれのFFT処理におけるデータy(n)(n=0,1,・・・,63)に対応して、ひねり係数W(n)(n=0,1,・・・,63)を出力する。W(n)はデータy(n)に対応するひねり係数である。従って、ひねり乗算処理部31がひねり係数W(n)を出力する順序は、第2のデータ並べ替え処理部12が並べ替えたデータを出力する順序である「FFTフレーム相互配置電力最適化ビットリバース順序」で一意に決定される。具体的には、第2のデータ並べ替え処理部12が図12に示す「FFTフレーム相互配置電力最適化ビットリバース順序」で出力する場合、ひねり係数テーブル31aは、図13に示す順序でひねり係数を出力する。図12及び、図13から明らかのように、第2のデータ並べ替え処理部12が出力するy(n)に対して、ひねり乗算処理部31が出力するひねり係数W(n)(n=0,1,・・・,63)が対応する。 The twist multiplication processing unit 31 consists of a twist coefficient table 31a and a twist multiplication unit 31b. The twist coefficient table 31a outputs a twist coefficient W(n) (n=0,1,...,63) corresponding to the data y(n) (n=0,1,...,63) in each FFT process output by the second data sorting processing unit 12 in the "FFT frame mutual arrangement power optimization bit reverse order". W(n) is the twist coefficient corresponding to the data y(n). Therefore, the order in which the twist multiplication processing unit 31 outputs the twist coefficient W(n) is uniquely determined by the "FFT frame mutual arrangement power optimization bit reverse order", which is the order in which the data sorted by the second data sorting processing unit 12 is output. Specifically, when the second data sorting processing unit 12 outputs in the "FFT frame mutual arrangement power optimization bit reverse order" shown in Figure 12, the torsion coefficient table 31a outputs the torsion coefficients in the order shown in Figure 13. As is clear from Figures 12 and 13, the torsion coefficient W(n) (n = 0, 1, ..., 63) output by the torsion multiplication processing unit 31 corresponds to y(n) output by the second data sorting processing unit 12.
ここで、第2の実施形態が第2のデータ並べ替え処理部12の出力以降で採用するデータ順序である「FFTフレーム相互配置ビットリバース順序」と、本実施形態が第2のデータ並べ替え処理部12の出力以降で採用するデータ順序である「FFTフレーム相互配置電力最適化ビットリバース順序」との違いについて説明する。 Here, we will explain the difference between the "FFT frame mutual arrangement bit reverse order," which is the data order adopted by the second embodiment after the output of the second data sorting processing unit 12, and the "FFT frame mutual arrangement power-optimized bit reverse order," which is the data order adopted by this embodiment after the output of the second data sorting processing unit 12.
第2の実施形態と同様に本実施形態においても、FFT装置10の出力順序は、第2のデータ並べ替え処理部12の出力順序で決定される。それに応じて、本実施形態のひねり乗算処理部31がひねり係数W(n)を出力する順序は、第2のデータ並べ替え処理部12の出力順序で決定される。 Similar to the second embodiment, in this embodiment as well, the output order of the FFT device 10 is determined by the output order of the second data sorting processing unit 12. Accordingly, the order in which the torsion multiplication processing unit 31 outputs the torsion coefficient W(n) in this embodiment is determined by the output order of the second data sorting processing unit 12.
図6に示す「FFTフレーム相互配置ビットリバース順序」及び、図12に示す「FFTフレーム相互配置電力最適化ビットリバース順序」において、データ組Qsはサイクル0からサイクル3まで同一であり、サイクル4からサイクル7まで同一であり、それ以降のサイクルも第1から第4のFFT処理(F1~F4)に対応する4サイクル毎に同一である。一方、データ組Qsはサイクル3からサイクル4、サイクル7からサイクル8、サイクル11からサイクル12、サイクル15からサイクル16、サイクル19からサイクル20、サイクル23からサイクル24、サイクル27からサイクル28、において変化するが、「FFTフレーム相互配置ビットリバース順序」と「FFTフレーム相互配置電力最適化ビットリバース順序」ではその変化する順序が異なる。 In the "FFT frame mutual arrangement bit reverse order" shown in Figure 6 and the "FFT frame mutual arrangement power optimization bit reverse order" shown in Figure 12, the data set Qs is the same from cycle 0 to cycle 3, the same from cycle 4 to cycle 7, and the same every four cycles corresponding to the first to fourth FFT processing (F1 to F4 ) thereafter. On the other hand, the data set Qs changes from cycle 3 to cycle 4, from cycle 7 to cycle 8, from cycle 11 to cycle 12, from cycle 15 to cycle 16, from cycle 19 to cycle 20, from cycle 23 to cycle 24, and from cycle 27 to cycle 28, but the order in which it changes is different between the "FFT frame mutual arrangement bit reverse order" and the "FFT frame mutual arrangement power optimization bit reverse order".
具体的には、「FFTフレーム相互配置ビットリバース順序」では、Q0、Q1、Q2、Q3、Q4、Q5、Q6、Q7の順序で変化するのに対して、「FFTフレーム相互配置電力最適化ビットリバース順序」では、Q3、Q5、Q1、Q7、Q0、Q2、Q6、Q4の順序で変化する。従って、ひねり係数W(n)も図13に示すように、「FFTフレーム相互配置電力最適化ビットリバース順序」で変化することになる。 Specifically, in the "FFT frame mutual arrangement bit reverse order," the bits change in the order Q0, Q1, Q2, Q3, Q4, Q5, Q6, Q7, whereas in the "FFT frame mutual arrangement power optimization bit reverse order," they change in the order Q3, Q5, Q1, Q7, Q0, Q2, Q6, Q4. Therefore, the torsion coefficient W(n) also changes according to the "FFT frame mutual arrangement power optimization bit reverse order," as shown in Figure 13.
ひねり係数W(n)の値はFFT処理に固有の値であり、FFT装置10が入力するデータの値には依存しない。図13においてデータ組W0~W7は、それぞれws(0)からws(7)までの8個のデータからなり、ws(0)からws(7)の値は、サイクル0~サイクル7まで、FFTフレーム相互配置ビットリバース順序である、W3、W5、W1、W7、W0、W2、W6、W4、の順序に応じて変化する。 The value of the torsion coefficient W(n) is specific to the FFT process and does not depend on the values of the data input to the FFT device 10. In Figure 13, data sets W0 to W7 each consist of eight data points from ws(0) to ws(7), and the values of ws(0) to ws(7) change from cycle 0 to cycle 7 according to the FFT frame mutual arrangement bit reverse order: W3, W5, W1, W7, W0, W2, W6, W4.
ここで、ひねり乗算処理部31の消費電力について着目すると、このws(0)からws(7)までの8個のデータの値の変化の大きさが、消費電力に大きく影響する。具体的には、ひねり係数W(n)を2進数で表現した2進数値において、ws(0)からws(7)までの8個のデータのビット単位の動作率(トグル率)が、消費電力に大きく影響する。なぜなら、CMOS(Complementary Metal Oxide Semiconductor)回路により実現したデジタル信号処理回路の動的な消費電力(ダイナミック電力)Pは、下記に示す式(4)で表現することができ、 Focusing on the power consumption of the twist multiplication processing unit 31, the magnitude of the change in the values of the eight data points from ws(0) to ws(7) greatly affects the power consumption. Specifically, in the binary values obtained by representing the twist coefficient W(n) in binary, the bit-level operation rate (toggle rate) of the eight data points from ws(0) to ws(7) greatly affects the power consumption. This is because the dynamic power consumption P of a digital signal processing circuit realized by a CMOS (Complementary Metal Oxide Semiconductor) circuit can be expressed by the following equation (4):
P=(1/2)*a*C*V2*f・・・(4) P=(1/2)*a*C*V2*f...(4)
ここで、
a:回路動作率、
C:負荷容量、
V:電圧、
f:動作周波数
ws(0)からws(7)までの8個のデータのビット単位の動作率が、回路動作率aに大きく影響するからである。すなわち、ws(0)からws(7)までの8個のデータのビット単位の動作率が小さくなる出力順序を選択することが、ひねり乗算処理部31の消費電力の低減に有効である。
Here,
a: circuit operation rate,
C: load capacity,
V: Voltage,
f: This is because the bit-level operating rate of the eight data points from operating frequencies ws(0) to ws(7) greatly affects the circuit operating rate a. In other words, selecting an output order that reduces the bit-level operating rate of the eight data points from ws(0) to ws(7) is effective in reducing the power consumption of the twist multiplication processing unit 31.
ws(0)からws(7)までの8個のデータのビット単位の動作率が小さくなる出力順序を選択する具体的な方法として、ハミング距離を指標とする方法がある。ハミング距離は2つのデータ間の距離であり、2進数データの場合、2つの2進数データで異なっているビット数に等しい。すなわち、あるひねり係数データが変化した場合の動作率は、変化前の係数データ値と変化後の係数データ値とのハミング距離に等しい。従って、ひねり係数W(n)に関する動作率は、FFT処理中のひねり係数W(n)に関するハミング距離の総和により算出することができる。 One specific method for selecting the output order that minimizes the bit-level operation rate of the eight data points from ws(0) to ws(7) is to use the Hamming distance as an indicator. The Hamming distance is the distance between two data points, and in the case of binary data, it is equal to the number of bits that differ between the two binary data points. That is, when a torsion coefficient data point changes, the operation rate is equal to the Hamming distance between the coefficient data value before the change and the coefficient data value after the change. Therefore, the operation rate related to the torsion coefficient W(n) can be calculated by summing the Hamming distances related to the torsion coefficient W(n) during the FFT process.
例えば、図13に示したFFTフレーム相互配置ビットリバース順序によるひねり係数W(n)に関する動作率は、ひねり係数W(i)とW(j)とのハミング距離をHamming(i,j)、データws(i)に関するハミング距離をH(i)と表記すると、
データws(0)は、サイクル0ではW(3),サイクル1ではW(5),サイクル2ではW(1),サイクル3ではW(7),サイクル4ではW(0),サイクル5ではW(2),サイクル6ではW(6),サイクル7ではW(4)であるので、
H(0)=Hamming(3,5)+Hamming(5,1)+Hamming(1,7)+Hamming(7,0)+Hamming(0,2)+Hamming(2,6)+Hamming(6,4)
により算出することができる。
同様に、H(1)~H(7)について、
H(1)=Hamming(11,13)+Hamming(13,9)+Hamming(9,15)+Hamming(15,8)+Hamming(8,10)+Hamming(10,14)+Hamming(14,12)
H(2)=Hamming(19,21)+Hamming(21,17)+Hamming(17,23)+Hamming(23,16)+Hamming(16,18)+Hamming(18,22)+Hamming(22,20)
H(3)=Hamming(27,29)+Hamming(29,25)+Hamming(25,31)+Hamming(31,24)+Hamming(24,26)+Hamming(26,30)+Hamming(30,28)
H(4)=Hamming(35,37)+Hamming(37,33)+Hamming(33,39)+Hamming(39,32)+Hamming(32,34)+Hamming(34,38)+Hamming(38,36)
H(5)=Hamming(43,45)+Hamming(45,41)+Hamming(41,47)+Hamming(47,40)+Hamming(40,42)+Hamming(42,46)+Hamming(46,44)
H(6)=Hamming(51,53)+Hamming(53,49)+Hamming(49,55)+Hamming(55,48)+Hamming(48,50)+Hamming(50,54)+Hamming(54,52)
H(7)=Hamming(59,61)+Hamming(61,57)+Hamming(57,63)+Hamming(63,56)+Hamming(56,58)+Hamming(58,62)+Hamming(62,60)
により算出することができる。
従って、ひねり係数W(n)に関する動作率Aは、ひねり係数W(n)に関するハミング距離の総和Pから
A=P=H(0)+H(1)+H(2)+H(3)+H(4)+H(5)+H(6)+H(7)
で求められる。
For example, the operating rate for the torsion coefficient W(n) due to the bit reverse order of the FFT frame mutual arrangement shown in Figure 13 is expressed as follows, where Hamming(i,j) is the Hamming distance between the torsion coefficients W(i) and W(j), and H(i) is the Hamming distance with respect to the data ws(i):
The data ws(0) is W(3) in cycle 0, W(5) in cycle 1, W(1) in cycle 2, W(7) in cycle 3, W(0) in cycle 4, W(2) in cycle 5, W(6) in cycle 6, and W(4) in cycle 7.
H(0)=Hamming(3,5)+Hamming(5,1)+Hamming(1,7)+Hamming(7,0)+Hamming(0,2)+Hamming(2,6)+Hamming(6,4)
It can be calculated by [method].
Similarly, for H(1) to H(7),
H(1)=Hamming(11,13)+Hamming(13,9)+Hamming(9,15)+Hamming(15,8)+Hamming(8,10)+Hamming(10,14)+Hamming(14,12)
H(2)=Hamming(19,21)+Hamming(21,17)+Hamming(17,23)+Hamming(23,16)+Hamming(16,18)+Hamming(18,22)+Hamming(22,20)
H(3)=Hamming(27,29)+Hamming(29,25)+Hamming(25,31)+Hamming(31,24)+Hamming(24,26)+Hamming(26,30)+Hamming(30,28)
H(4)=Hamming(35,37)+Hamming(37,33)+Hamming(33,39)+Hamming(39,32)+Hamming(32,34)+Hamming(34,38)+Hamming(38,36)
H(5)=Hamming(43,45)+Hamming(45,41)+Hamming(41,47)+Hamming(47,40)+Hamming(40,42)+Hamming(42,46)+Hamming(46,44)
H(6)=Hamming(51,53)+Hamming(53,49)+Hamming(49,55)+Hamming(55,48)+Hamming(48,50)+Hamming(50,54)+Hamming(54,52)
H(7)=Hamming(59,61)+Hamming(61,57)+Hamming(57,63)+Hamming(63,56)+Hamming(56,58)+Hamming(58,62)+Hamming(62,60)
It can be calculated by [method].
Therefore, the rate of motion A with respect to the torsion coefficient W(n) is given by the sum of the Hamming distances P with respect to the torsion coefficient W(n): A = P = H(0) + H(1) + H(2) + H(3) + H(4) + H(5) + H(6) + H(7)
It can be calculated using this method.
本実施形態の「FFTフレーム相互配置電力最適化ビットリバース順序」は、「FFTフレーム相互配置ビットリバース順序」の複数の候補の中から、このひねり係数W(n)に関する動作率Aが最も小さい順序を選択したものである。すなわち、本実施形態の「FFTフレーム相互配置電力最適化ビットリバース順序」は、「FFTフレーム相互配置ビットリバース順序」の複数の候補の中で、ひねり係数W(n)を出力するひねり係数テーブル31aに係る消費電力が最も小さい順序といえる。 The "FFT frame mutual arrangement power optimization bit reverse sequence" of this embodiment is selected from among multiple candidates for the "FFT frame mutual arrangement bit reverse sequence" to obtain the sequence with the smallest operating rate A for the torsion coefficient W(n). In other words, the "FFT frame mutual arrangement power optimization bit reverse sequence" of this embodiment is the sequence with the smallest power consumption related to the torsion coefficient table 31a that outputs the torsion coefficient W(n), among multiple candidates for the "FFT frame mutual arrangement bit reverse sequence".
一方、ひねり乗算処理部31を構成するひねり乗算部31bは、ひねり係数W(n)の動作率に加えて、第2のデータ並べ替え処理部12が出力するy(n)の動作率が影響するが、FFT装置10は任意のデータを入力するため、y(n)の動作率は、y(n)が出力される順序に係わらず、長期的には一定であると考えられる。同様に、FFT装置10を構成するデータ並べ替え処理部やバタフライ演算処理部についても、FFT装置10は任意のデータを入力するため、それら処理部の動作率は、処理の順序に係わらず、長期的には一定であると考えられる。従って、本実施形態の「FFTフレーム相互配置電力最適化ビットリバース順序」は、「FFTフレーム相互配置ビットリバース順序」の複数の候補の中で、FFT装置10の消費電力が最も小さい順序といえる。 On the other hand, the twist multiplication unit 31b, which constitutes the twist multiplication processing unit 31, is affected not only by the operating rate of the twist coefficient W(n) but also by the operating rate of y(n) output by the second data sorting processing unit 12. However, since the FFT device 10 accepts arbitrary data as input, the operating rate of y(n) is considered to be constant in the long term, regardless of the order in which y(n) is output. Similarly, for the data sorting processing unit and butterfly arithmetic processing unit that constitute the FFT device 10, since the FFT device 10 accepts arbitrary data as input, the operating rates of these processing units are considered to be constant in the long term, regardless of the order of processing. Therefore, the "FFT frame mutual arrangement power optimization bit reverse order" of this embodiment can be said to be the order in which the power consumption of the FFT device 10 is smallest among multiple candidates for the "FFT frame mutual arrangement bit reverse order".
以上のように、本実施形態でも、FFT装置10は、出力順序設定52を用いて順序を指定することによって、任意の順序でデータを出力することができる。例えば、連続して処理を行う複数のFFT処理について、処理順序を交互配置(インターリーブ)することで、ひねり演算処理やフィルタ演算処理に係る電力を小さくすることができる。その結果、デジタルフィルタ処理全体の消費電力を低減することができる。 As described above, in this embodiment as well, the FFT device 10 can output data in any order by specifying the order using the output order setting 52. For example, by alternating the processing order (interleaving) of multiple FFT processes that are processed consecutively, the power consumption related to the twist calculation and filter calculation processes can be reduced. As a result, the overall power consumption of the digital filter process can be reduced.
なお、本実施形態では、64ポイントFFT処理(N=64)を8データ並列(P=8)で8サイクル(M=N/P=8)かけて処理する場合について説明したが、FFT処理のポイント数は64に限らない。任意の2以上の整数Nについて、本実施形態を同様に適用してもよい。また、データ並列数は8に限らず、N以下の任意の整数Pについて、Pデータ並列で処理してもよい。この場合、1つのNポイントFFT処理はC=N/Pサイクルで処理される。 In this embodiment, we described a case where a 64-point FFT process (N=64) is processed using 8 data parallelisms (P=8) over 8 cycles (M=N/P=8). However, the number of points in the FFT process is not limited to 64. This embodiment may be applied similarly to any integer N of 2 or more. Furthermore, the number of data parallelisms is not limited to 8; any integer P less than or equal to N may be processed using P data parallelisms. In this case, one N-point FFT process is completed in C=N/P cycles.
また、本実施形態では、連続して処理を行う4つのFFT処理の処理順序を交互配置(インターリーブ)する場合を例として説明したが、交互配置するFFT処理数は4に限らない。任意の2以上の整数Fについて、連続して処理を行うF個のFFT処理の処理順序を交互配置してもよい。このとき、ひねり係数W(n)やフィルタ係数C(k)に係る動作率を1/Fに低減することが可能であり、それに応じてひねり演算処理やフィルタ演算処理に係る電力を小さくすることができる。 Furthermore, while this embodiment describes an example where the processing order of four consecutively processed FFT operations is interleaved, the number of interleaved FFT operations is not limited to four. For any two or more integers F, the processing order of F consecutively processed FFT operations may be interleaved. In this case, the operating rate related to the torsion coefficient W(n) and filter coefficient C(k) can be reduced to 1/F, and accordingly, the power consumption related to the torsion calculation and filter calculation can be reduced.
さらに本実施形態は、ひねり乗算処理に係る電力が最小となる順序で処理を行う。その結果、FFT処理全体の消費電力を低減することができる。 Furthermore, this embodiment processes the operations in an order that minimizes the power consumption associated with the twist multiplication process. As a result, the overall power consumption of the FFT process can be reduced.
また、本実施形態では、FFT処理を例として説明したが、IFFTにおいても同様である。すなわち、本実施形態の制御方法をIFFT処理装置に適用して、IFFT処理内やIFFT処理後段の処理順序を最適化すれば、IFFT処理内やIFFT処理後段の消費電力を低減することができる。 Furthermore, although this embodiment uses FFT processing as an example, the same principles apply to IFFT processing. That is, by applying the control method of this embodiment to an IFFT processing device and optimizing the processing order within and after the IFFT processing, power consumption within and after the IFFT processing can be reduced.
上述の実施の形態では、本開示をハードウェアの構成として説明したが、本開示は、これに限定されるものではない。本開示は、フローチャートに記載の処理手順及びその他の実施の形態に記載の処理手順を、CPU(Central Processing Unit)にコンピュータプログラムを実行させることにより実現することも可能である。 In the embodiments described above, this disclosure was explained as a hardware configuration, but this disclosure is not limited thereto. This disclosure can also be implemented by having a CPU (Central Processing Unit) execute a computer program to perform the processing procedures described in the flowchart and other embodiments.
上記の例において、プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体は、例えば、磁気記録媒体、光磁気記録媒体、CD-ROM(Read Only Memory)、CD-R、CD-R/W、半導体メモリを含む。半導体メモリは、例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(Random Access Memory)等である。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。 In the above example, the program can be stored and supplied to the computer using various types of non-transitory computer-readable medium. Non-transitory computer-readable mediums include various types of tangible storage mediums. Examples of non-transitory computer-readable mediums include magnetic recording media, magneto-optical recording media, CD-ROMs (Read Only Memory), CD-Rs, CD-R/Ws, and semiconductor memory. Examples of semiconductor memory include mask ROMs, PROMs (Programmable ROMs), EPROMs (Erasable PROMs), flash ROMs, and RAMs (Random Access Memory). Alternatively, the program may be supplied to the computer using various types of transient computer-readable mediums. Examples of transient computer-readable mediums include electrical signals, optical signals, and electromagnetic waves. Transitory computer-readable mediums can be supplied to the computer via wired communication channels such as electric wires and optical fibers, or via wireless communication channels.
なお、本開示は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。 Furthermore, this disclosure is not limited to the embodiments described above, and may be modified as appropriate without departing from its intent.
10 FFT装置(高速フーリエ変換装置)
11 第1のデータ並べ替え処理部(第1のデータ並べ替え処理手段)
12 第2のデータ並べ替え処理部(第2のデータ並べ替え処理手段、記憶手段)
21 第1のバタフライ演算処理部(バタフライ演算処理手段)
22 第2のバタフライ演算処理部
21a、22a 基数8バタフライ演算処理部
31 ひねり乗算処理部(ひねり乗算処理手段)
41 読み出しアドレス生成部(読み出しアドレス生成手段)
51 読み出しアドレス
52 出力順序設定
100、200 データ並べ替え処理部
101a~101h データ記憶位置
102a~102h データ読み出し位置
201a~201h データ記憶位置
202a~202h データ読み出し位置
400 デジタルフィルタ装置
420 フィルタ処理部(フィルタ処理手段)
421 フィルタ係数テーブル
422 フィルタ乗算部
431、434 複素数信号
500 データフロー
501 データ並べ替え処理
502、503 バタフライ演算処理
504 ひねり乗算処理
505a~505h 部分データフロー
10. FFT device (Fast Fourier Transform device)
11. First data sorting processing unit (first data sorting processing means)
12. Second data sorting processing unit (second data sorting processing means, storage means)
21. First butterfly arithmetic processing unit (butterfly arithmetic processing means)
22 Second butterfly arithmetic processing unit 21a, 22a Base 8 butterfly arithmetic processing unit 31 Twist multiplication processing unit (twist multiplication processing means)
41. Read address generation unit (read address generation means)
51 Read address 52 Output order setting 100, 200 Data sorting processing unit 101a to 101h Data storage position 102a to 102h Data read position 201a to 201h Data storage position 202a to 202h Data read position 400 Digital filter device 420 Filter processing unit (filtering means)
421 Filter coefficient table 422 Filter multiplication section 431, 434 Complex number signal 500 Data flow 501 Data sorting process 502, 503 Butterfly operation process 504 Twist multiplication process 505a to 505h Partial data flow
Claims (7)
前記高速フーリエ変換装置は、連続して処理を行うF個(Fは2以上の正整数)の高速フーリエ変換又は逆高速フーリエ変換において、
第1の順序で入力するF×N個の第1の入力データを並べ替えて、第2の順序で第1の出力データを出力する第1のデータ並べ替え処理手段と、
前記第1の出力データに対して、バタフライ演算処理を行い、前記第1の順序で第2の出力データを出力するバタフライ演算処理手段と、
前記第2の出力データを並べ替えて、第3の順序で第3の出力データを出力する第2のデータ並べ替え処理手段と、
前記第3の出力データに対して、ひねり係数を乗算してひねり乗算処理を行い、前記第3の順序で第4の出力データを出力するひねり乗算処理手段と、を含み、
前記第3の順序は、連続して処理を行うF個の高速フーリエ変換又は逆高速フーリエ変換のそれぞれにおけるC番目のサイクル(Cは0≦C≦M-1の整数)の処理を、連続するサイクルにおいて処理する順序であり、
前記ひねり乗算処理手段は、前記第3の出力データに対して、前記第3の順序でひねり係数を出力してひねり乗算処理を行い、前記第3の順序は、前記ひねり係数の連続するサイクル間のビット遷移率が小さい順序である、ことを特徴とする高速フーリエ変換装置。 A Fast Fourier Transform (FFT) device that performs a Fast Fourier Transform or Inverse Fast Fourier Transform in M cycles (M is a positive integer of 2 or more) for each N consecutive input data (N is a positive integer of 2 or more) in the input time domain,
The fast Fourier transform device processes F fast Fourier transforms or inverse fast Fourier transforms (where F is a positive integer of 2 or more) in succession.
A first data sorting processing means that sorts F × N first input data entered in a first order and outputs first output data in a second order,
Butterfly arithmetic processing means that performs butterfly arithmetic processing on the first output data and outputs the second output data in the first order,
A second data sorting processing means sorts the second output data and outputs the third output data in a third order,
The system includes a torsion multiplication processing means that multiplies the third output data by a torsion coefficient to perform a torsion multiplication process and outputs a fourth output data in the third order,
The third order is the order in which the processing of the C-th cycle (where C is an integer between 0 and M-1) in each of the F fast Fourier transforms or inverse fast Fourier transforms that are processed consecutively is processed in consecutive cycles.
The twist multiplication processing means performs a twist multiplication process on the third output data by outputting twist coefficients in the third order, wherein the third order is an order in which the bit transition rate between consecutive cycles of the twist coefficients is small . This is a fast Fourier transform device.
M×N個の前記第2の出力データを記憶する記憶手段と、
出力順序設定に基づいて、前記記憶手段からF×N個の前記第3の出力データの読み出しアドレスを生成する読み出しアドレス生成手段と、を備え、
複数の前記第2の出力データを前記第2の順序で記憶し、前記第3順序で読み出す、ことを特徴とする請求項1に記載の高速フーリエ変換装置。 The second data sorting processing means described above is:
A storage means for storing M × N of the second output data,
The system includes a read address generation means that generates F × N read addresses of the third output data from the storage means based on the output order setting,
The fast Fourier transform apparatus according to claim 1 , characterized in that it stores a plurality of the second output data in the second order and reads them out in the third order.
前記高速フーリエ変換装置が前記第3の順序で出力する出力データに対して、
前記第3の順序でフィルタ係数を出力してフィルタ乗算処理を行うフィルタ処理手段と、
を備えるデジタルフィルタ装置。 A fast Fourier transform apparatus according to claim 1 or 2 ,
With respect to the output data output by the Fast Fourier Transform device in the third order,
A filtering means that outputs filter coefficients in the third order described above and performs a filter multiplication process,
A digital filter device equipped with the following features.
連続して処理を行うF個(Fは2以上の正整数)の高速フーリエ変換又は逆高速フーリエ変換において、
第1の順序で入力するF×N個の第1の入力データを並べ替えて、第2の順序で第1の出力データを出力し、
前記第1の出力データに対して、バタフライ演算処理を行い、前記第1の順序で第2の出力データを出力し、
前記第2の出力データを並べ替えて、第3の順序で第3の出力データを出力し、
前記第3の出力データに対して、ひねり係数を乗算してひねり乗算処理を行い、前記第3の順序で第4の出力データを出力し、
前記第3の順序は、連続して処理を行うF個の高速フーリエ変換又は逆高速フーリエ変換のそれぞれにおけるC番目のサイクル(Cは0≦C≦M-1の整数)の処理を、連続するサイクルにおいて処理する順序であり、
前記ひねり乗算処理において、前記高速フーリエ変換装置は、前記第3の出力データに対して、前記第3の順序でひねり係数を出力してひねり乗算処理を行い、前記第3の順序は、前記ひねり係数の連続するサイクル間のビット遷移率が小さい順序である、ことを特徴とする高速フーリエ変換方法。 A Fast Fourier Transform (FFT) device performs a Fast Fourier Transform or Inverse Fast Fourier Transform for every N consecutive input data points (where N is a positive integer greater than or equal to 2) in M cycles (where M is a positive integer greater than or equal to 2) on input data in the time domain.
In a series of F fast Fourier transforms or inverse fast Fourier transforms (where F is a positive integer greater than or equal to 2),
The F × N first input data points, which are input in a first order, are rearranged, and the first output data is output in a second order.
Butterfly arithmetic processing is performed on the first output data, and the second output data is output in the first order.
The second output data is rearranged, and the third output data is output in a third order.
The third output data is multiplied by a torsion coefficient to perform a torsion multiplication process, and the fourth output data is output in the third order.
The third order is the order in which the processing of the C-th cycle (where C is an integer between 0 and M-1) in each of the F fast Fourier transforms or inverse fast Fourier transforms that are processed consecutively is processed in consecutive cycles.
A fast Fourier transform method characterized in that, in the twist multiplication process, the fast Fourier transform device outputs twist coefficients in the third order to the third output data and performs the twist multiplication process, wherein the third order is an order in which the bit transition rate between consecutive cycles of the twist coefficients is small .
M×N個の前記第2の出力データを記憶し、
出力順序設定に基づいて、M×N個の前記第2の出力データからF×N個の前記第3の出力データの読み出しアドレスを生成し、
複数の前記第2の出力データを前記第2の順序で記憶し、前記第3順序で読み出す、ことを特徴とする請求項4に記載の高速フーリエ変換方法。 In the second data sorting process described above, the Fast Fourier Transform device is
Store M × N of the second output data,
Based on the output order setting, read addresses for F × N third output data are generated from M × N second output data.
The Fast Fourier Transform method according to claim 4 , characterized in that a plurality of the second output data are stored in a second order and read out in a third order.
連続して処理を行うF個(Fは2以上の正整数)の高速フーリエ変換又は逆高速フーリエ変換において、
第1の順序で入力するF×N個の第1の入力データを並べ替えて、第2の順序で第1の出力データを出力する処理と、
前記第1の出力データに対して、バタフライ演算処理を行い、前記第1の順序で第2の出力データを出力する処理と、
前記第2の出力データを並べ替えて、第3の順序で第3の出力データを出力し、
前記第3の出力データに対して、ひねり係数を乗算してひねり乗算処理を行い、前記第3の順序で第4の出力データを出力する処理と、
を実行させ、
前記第3の順序は、連続して処理を行うF個の高速フーリエ変換又は逆高速フーリエ変換のそれぞれにおけるC番目のサイクル(Cは0≦C≦M-1の整数)の処理を、連続するサイクルにおいて処理する順序であり、
前記ひねり乗算処理において、前記高速フーリエ変換装置に、前記第3の出力データに対して、前記第3の順序でひねり係数を出力してひねり乗算処理を実行させ、前記第3の順序は、前記ひねり係数の連続するサイクル間のビット遷移率が小さい順序である、ことを特徴とするプログラム。 A Fast Fourier Transform (FFT) device performs a Fast Fourier Transform or Inverse Fast Fourier Transform in M cycles (M is a positive integer greater than or equal to 2) for every N consecutive input data points (where N is a positive integer greater than or equal to 2) in the input time domain.
In a series of F fast Fourier transforms or inverse fast Fourier transforms (where F is a positive integer greater than or equal to 2),
A process that rearranges F × N first input data points, which are input in a first order, and outputs the first output data in a second order,
The process involves performing a butterfly operation on the first output data and outputting the second output data in the first order,
The second output data is rearranged, and the third output data is output in a third order.
The process involves multiplying the third output data by a torsion coefficient to perform a torsion multiplication process, and outputting the fourth output data in the third order,
Make it run,
The third order is the order in which the processing of the C-th cycle (where C is an integer between 0 and M-1) in each of the F fast Fourier transforms or inverse fast Fourier transforms that are processed consecutively is processed in consecutive cycles.
A program characterized in that, in the twist multiplication process, the Fast Fourier Transform device is instructed to output twist coefficients to the third output data in the third order and perform the twist multiplication process, wherein the third order is an order in which the bit transition rate between consecutive cycles of the twist coefficients is small .
M×N個の前記第2の出力データを記憶する処理と、
出力順序設定に基づいて、M×N個の前記第2の出力データからF×N個の前記第3の出力データの読み出しアドレスを生成する処理と、
複数の前記第2の出力データを前記第2の順序で記憶し、前記第3順序で読み出す処理と、を実行させることを特徴とする請求項6に記載のプログラム。 In the second data sorting process described above, the Fast Fourier Transform device is used.
A process for storing M × N of the second output data,
A process to generate read addresses for F × N third output data from M × N second output data based on the output order setting,
The program according to claim 6 , characterized in that it performs a process of storing a plurality of the second output data in a second order and reading them in a third order.
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2022036908A JP7848522B2 (en) | 2022-03-10 | 2022-03-10 | Fast Fourier Transform apparatus, digital filter apparatus, fast Fourier transform method, and program |
| US18/118,459 US20230289397A1 (en) | 2022-03-10 | 2023-03-07 | Fast fourier transform device, digital filtering device, fast fourier transform method, and non-transitory computer-readable medium |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2022036908A JP7848522B2 (en) | 2022-03-10 | 2022-03-10 | Fast Fourier Transform apparatus, digital filter apparatus, fast Fourier transform method, and program |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2023131901A JP2023131901A (en) | 2023-09-22 |
| JP7848522B2 true JP7848522B2 (en) | 2026-04-21 |
Family
ID=87931893
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2022036908A Active JP7848522B2 (en) | 2022-03-10 | 2022-03-10 | Fast Fourier Transform apparatus, digital filter apparatus, fast Fourier transform method, and program |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US20230289397A1 (en) |
| JP (1) | JP7848522B2 (en) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN120104933B (en) * | 2025-05-09 | 2025-07-25 | 之江实验室 | A 256K-point fast Fourier transform method, device and medium based on FPGA |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2007251451A (en) | 2006-03-15 | 2007-09-27 | Fujitsu Ltd | Frequency division multiplexing transmitter / receiver, wave number division multiplexing transmitter / receiver, and method thereof |
| WO2014115540A1 (en) | 2013-01-23 | 2014-07-31 | 日本電気株式会社 | Fast fourier transform device, fast fourier transform method, and storage medium for fast fourier transform program |
| WO2021193947A1 (en) | 2020-03-26 | 2021-09-30 | 日本電気株式会社 | Digital filter device |
-
2022
- 2022-03-10 JP JP2022036908A patent/JP7848522B2/en active Active
-
2023
- 2023-03-07 US US18/118,459 patent/US20230289397A1/en active Pending
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2007251451A (en) | 2006-03-15 | 2007-09-27 | Fujitsu Ltd | Frequency division multiplexing transmitter / receiver, wave number division multiplexing transmitter / receiver, and method thereof |
| WO2014115540A1 (en) | 2013-01-23 | 2014-07-31 | 日本電気株式会社 | Fast fourier transform device, fast fourier transform method, and storage medium for fast fourier transform program |
| WO2021193947A1 (en) | 2020-03-26 | 2021-09-30 | 日本電気株式会社 | Digital filter device |
Also Published As
| Publication number | Publication date |
|---|---|
| US20230289397A1 (en) | 2023-09-14 |
| JP2023131901A (en) | 2023-09-22 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP6288089B2 (en) | Digital filter device, digital filter processing method, and storage medium storing digital filter program | |
| US9785614B2 (en) | Fast Fourier transform device, fast Fourier transform method, and recording medium storing fast Fourier transform program | |
| JP6256348B2 (en) | Fast Fourier transform circuit, fast Fourier transform processing method, and fast Fourier transform processing program | |
| JP6489021B2 (en) | Digital filter device, digital filter processing method, and digital filter program | |
| JP7848522B2 (en) | Fast Fourier Transform apparatus, digital filter apparatus, fast Fourier transform method, and program | |
| US11604852B2 (en) | Signal processing apparatus, method, program, and recording medium | |
| KR101222597B1 (en) | Method for reading and writing a memory, memory control method and arithmetic unit using the same | |
| US12019700B2 (en) | Signal processing apparatus, method, program, and recording medium | |
| JP6436087B2 (en) | Digital filter device, digital filter processing method and program | |
| JP6451647B2 (en) | Fast Fourier transform apparatus, fast Fourier transform method, and fast Fourier transform program | |
| JP6992745B2 (en) | Digital filter device, digital filter processing method and digital filter processing program | |
| WO2021193947A1 (en) | Digital filter device | |
| JP6943283B2 (en) | Fast Fourier Transform Equipment, Data Sorting Equipment, Fast Fourier Transform Processing Methods and Programs | |
| JP7639461B2 (en) | Fast Fourier transform device and digital filter device | |
| US20250245005A1 (en) | Signal processing apparatus and method | |
| JP3943224B2 (en) | Processing apparatus and method for performing vector processing of wavelet transform | |
| JP2025125514A (en) | Computing device and method |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20250205 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20251021 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20251022 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20251215 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20260310 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20260323 |