JP6358096B2 - Fast Fourier transform apparatus, fast Fourier transform method, and fast Fourier transform program - Google Patents
Fast Fourier transform apparatus, fast Fourier transform method, and fast Fourier transform program Download PDFInfo
- Publication number
- JP6358096B2 JP6358096B2 JP2014558499A JP2014558499A JP6358096B2 JP 6358096 B2 JP6358096 B2 JP 6358096B2 JP 2014558499 A JP2014558499 A JP 2014558499A JP 2014558499 A JP2014558499 A JP 2014558499A JP 6358096 B2 JP6358096 B2 JP 6358096B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- order
- output
- fourier transform
- input
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/14—Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
- G06F17/141—Discrete Fourier transforms
- G06F17/142—Fast Fourier transforms, e.g. using a Cooley-Tukey type algorithm
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03H—IMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
- H03H17/00—Networks using digital techniques
- H03H17/02—Frequency selective networks
- H03H17/0211—Frequency selective networks using specific transformation algorithms, e.g. WALSH functions, Fermat transforms, Mersenne transforms, polynomial transforms, Hilbert transforms
- H03H17/0213—Frequency domain filters using Fourier transforms
Landscapes
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Discrete Mathematics (AREA)
- Complex Calculations (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
Description
本発明は、デジタル信号処理における演算処理に関し、特に高速フーリエ変換装置、高速フーリエ変換方法、及び高速フーリエ変換プログラム記憶媒体に関する。 The present invention relates to arithmetic processing in digital signal processing, and more particularly to a fast Fourier transform device, a fast Fourier transform method, and a fast Fourier transform program storage medium.
デジタル信号処理において重要な処理の1つとして、高速フーリエ変換(Fast Fourier Transform。以降、「FFT」という。)処理がある。例えば、無線通信や有線通信における信号伝送中の波形歪みを補償する技術として、周波数領域等化(Frequency domain equalization(FDE))技術が知られている。周波数領域等化では、まず高速フーリエ変換により時間領域上の信号データが周波数領域上のデータに変換され、次に等化のためのフィルタ処理が行われる。そして、フィルタ処理後のデータは、逆高速フーリエ変換(Inverse FFT。以降、「IFFT」という。)により時間領域上の信号データに再変換されることによって、元の時間領域上の信号の波形歪みが補償される。以降、FFTとIFFTを区別しないときは、「FFT/IFFT」と表記する。 As one of important processes in digital signal processing, there is a Fast Fourier Transform (hereinafter referred to as “FFT”) process. For example, a frequency domain equalization (FDE) technique is known as a technique for compensating for waveform distortion during signal transmission in wireless communication or wired communication. In frequency domain equalization, first, signal data in the time domain is converted into data in the frequency domain by fast Fourier transform, and then filter processing for equalization is performed. The filtered data is re-transformed into signal data in the time domain by inverse fast Fourier transform (Inverse FFT, hereinafter referred to as “IFFT”), thereby distorting the waveform of the signal in the original time domain. Is compensated. Henceforth, when not distinguishing FFT and IFFT, it describes with "FFT / IFFT".
一般に、FFT/IFFT処理では、「バタフライ演算」が用いられる。バタフライ演算を用いたFFT装置については、例えば特許文献1に記載がある。特許文献1には、後述の「ひねり乗算」、すなわち、ひねり係数を用いた乗算についても記載されている。
In general, in the FFT / IFFT processing, “butterfly calculation” is used. An FFT apparatus using butterfly computation is described in
効率的なFFT/IFFT処理方式としては、例えば非特許文献1に記載されたCooley-Tukeyによるバタフライ演算が有名である。しかし、ポイント数の大きいCooley-TukeyによるFFT/IFFTは回路が複雑になる。そのため、例えば非特許文献2に記載されたPrime Factor法を用いて2つの小さなFFT/IFFTに分解して、FFT/IFFT処理が行われる。
As an efficient FFT / IFFT processing method, for example, a butterfly operation by Cooley-Tukey described in Non-Patent
図19は、例えばPrime Factor法を利用して2段階の基数8のバタフライ処理に分解された、64ポイントFFTのデータフロー500を示す。データフロー500は、データ並べ替え処理501、バタフライ演算処理502、503からなる延べ16回の基数8のバタフライ演算処理、ひねり乗算処理504を含む。
FIG. 19 illustrates a 64-point
図19のデータフローでは、入力された時間領域のデータx(n)(n=0,1,・・・ ,63)が、FFT処理により、周波数領域の信号X(k)(k=0,1,・・・,63)にフーリエ変換される。図19では、一部のデータフローの図示は省略されている。なお、図19のデータフローは、IFFT処理を行う場合についても、基本構成は同じである。 In the data flow of FIG. 19, input time domain data x (n) (n = 0, 1,..., 63) is subjected to frequency domain signal X (k) (k = 0, 1, ..., 63) is Fourier transformed. In FIG. 19, some data flows are not shown. Note that the data flow in FIG. 19 has the same basic configuration when IFFT processing is performed.
図19のデータフローのすべてを回路で実現するためには、膨大な規模の回路を要する。そのため、必要な処理性能に応じて、データフローの一部分の処理を実現する回路を繰り返し使用することで、FFT処理の全体を実現する方法が一般的である。 In order to realize all of the data flow of FIG. 19 with a circuit, a huge scale circuit is required. Therefore, in general, a method for realizing the entire FFT processing by repeatedly using a circuit that realizes processing of a part of the data flow according to required processing performance.
例えば、図19のデータフローにおいて、8個のデータに対して並列に(以降、単に「8データ並列で」という。)FFT処理を行うFFT装置を物理的な回路として作成した場合、合計8回の繰り返し処理により64ポイントFFT処理を実現することができる。 For example, in the data flow of FIG. 19, when an FFT apparatus that performs FFT processing in parallel on 8 data (hereinafter simply referred to as “8 data parallel”) is created as a physical circuit, a total of 8 times. A 64-point FFT process can be realized by repeating the above process.
8回の繰り返し処理は、8個のデータに対して行われる部分データフロー505a〜505hの、それぞれにあたる処理が順に行われるものであり、具体的には、次のように行われる。すなわち、1回目には、部分データフロー505aにあたる処理が、2回目には、部分データフロー505bにあたる処理が、3回目には、部分データフロー505c(図示せず)にあたる処理が行われる。以降同様に、8回目の部分データフロー505hにあたる処理までが順に行われる。以上の処理により、64ポイントFFT処理が実現される。
The eight repetition processing is performed in order as the processing corresponding to each of the partial data flows 505a to 505h performed on eight pieces of data, and specifically, is performed as follows. That is, a process corresponding to the
バタフライ演算では、逐次的な順序に並べられたデータが、所定の規則に従った順序で読み出され、処理される。そのため、バタフライ演算では、データの並べ替えが必要であり、そのためにはRAM(Random Access Memory)が用いられる。バタフライ演算においてRAMを用いたデータの並べ替えを行うFFT装置については、例えば特許文献2に記載がある。
In the butterfly operation, data arranged in a sequential order is read and processed in an order according to a predetermined rule. Therefore, in the butterfly calculation, data rearrangement is necessary, and a RAM (Random Access Memory) is used for this purpose. For example,
また、メモリ使用量を削減したFFT演算装置については、バタフライ演算の並列処理による高速化技術が、例えば特許文献3に記載されている。
In addition, for an FFT operation device that reduces the amount of memory used, for example,
FFT処理によりフーリエ変換された周波数領域の信号X(k)(k=0,1,・・・,N-1)に対して、kの値が異なる複数のX(k)の間で演算が行われる場合がある。例えば、2個のデータX(k)、X(N-k)の間で演算が行われる場合がある。この場合、X(k)とX(N-k)は、ある一つの演算の入力信号であるため、同サイクル、あるいは極力、近いサイクルで入力されることが望ましい。なぜなら、演算を開始するためには、すべての入力信号が揃っていることが必要であるからである。このように、FFT処理の結果、得られる複数の信号には、FFT処理の後段での処理を高速化するために、同時、あるいは、極力、近いタイミングで後段へ入力することが有効である、特定の組み合わせがある。さらに一般的には、複数の信号を後段へ出力するときの出力順序を、後段の処理にとって最適なものとすることが有効である。 For a frequency domain signal X (k) (k = 0, 1,..., N−1) Fourier-transformed by FFT processing, calculation is performed between a plurality of X (k) having different k values. It may be done. For example, an operation may be performed between two pieces of data X (k) and X (N−k). In this case, since X (k) and X (N−k) are input signals for a certain calculation, it is desirable to input them in the same cycle or as close as possible. This is because it is necessary to have all the input signals ready to start the operation. As described above, it is effective to input the plurality of signals obtained as a result of the FFT process to the subsequent stage at the same time or as close to the timing as possible in order to speed up the process in the latter stage of the FFT process. There are certain combinations. More generally, it is effective to make the output order when outputting a plurality of signals to the subsequent stage optimal for the subsequent process.
しかしながら、非特許文献1、2に記載されたFFT回路は、後段の演算の高速化を考慮した順序でFFT処理結果の信号X(k)を出力することはなく、演算が完了した順にFFT処理結果X(k)を出力する。そのため、X(k)とX(N-k)とが、最小の出力間隔である1サイクルよりも多い、複数サイクル離れたサイクルで出力されることがある。例えば、極端な場合では、N=128の場合、X(0)とX(127)のように、127サイクル離れて出力されることがある。
However, the FFT circuits described in
このような場合に、X(k)とX(N-k)との間で演算を行うためには、FFT回路の後に、X(k)とX(N-k)とを同サイクル、あるいは近傍のサイクルで出力するためのデータ並べ替え手段を設ける必要がある。 In such a case, in order to perform an operation between X (k) and X (Nk), X (k) and X (Nk) are used in the same cycle or in a nearby cycle after the FFT circuit. It is necessary to provide data rearranging means for outputting.
FFT回路601の後段にデータ並べ替え処理回路602を接続した、FFT装置600の構成例を図20に示す。上記のように、FFTのポイント数に近いサイクル数だけ離れたサイクルで出力されることを考慮すると、データ並べ替え回路602は、すくなくともFFTの1ブロック分のデータを保持可能な記憶手段を備えることが必要である。さらに、複数の処理結果の、個々の処理結果についての後段への出力タイミングあるいは出力順序は、後段の処理にとって最適であることが望ましい。
A configuration example of the
ところが、非特許文献1、2に記載されたFFT回路では、データ並べ替え回路を備えていないため、処理結果の出力タイミングも出力順序も制御することができない。そのため、FFT処理を含む処理全体にかかる処理遅延(レイテンシ)が増大するという問題がある。
However, since the FFT circuits described in
特許文献2、3のFFT装置においても、FFT処理によって得られる、複数の結果の出力タイミングは考慮されていない。特許文献2のFFT装置では、バタフライ演算部への入力データの並べ替えは行われる。特許文献3のFFT演算装置は、バタフライ演算を並列化することによって高速化を図っている。しかし、特許文献2、3のFFT装置においても、FFT処理の結果の信号の出力順序については、特に考慮されていない。そのため、FFT処理の演算が完了した順に、信号が出力されることとなり、その順序は必ずしも後段の処理の高速化に適したものではない。従って、特許文献2、3のFFT装置にも、処理全体にかかる処理遅延が増大するという、上記と同様の問題がある。
Also in the FFT apparatuses of
以上のように、非特許文献1、2及び特許文献2、3の技術は、FFT処理の処理結果の出力タイミングや出力順序を最適化することができないという問題がある。
As described above, the techniques of
処理結果のタイミングあるいは出力順序の最適化が有効であることは、IFFT処理の後段において、IFFT処理の結果を用いた処理が行われる場合についても同様である。 The optimization of the timing of the processing result or the output order is effective when the processing using the result of the IFFT processing is performed at the subsequent stage of the IFFT processing.
さらに、FFT処理やIFFT処理の前段における処理の結果の出力順序が、FFT処理やIFFT処理において行われる演算の実行順序にとって最適でない場合も考えられる。そのような場合には、FFT処理やIFFT処理にとって最適な順序となるように、前段からの入力データを並べ替えることが有効である。
(発明の目的)
本発明は、デジタル信号処理におけるFFT/IFFT処理において、処理対象のデータの入力や処理結果の出力を任意の順序で行うことが可能な高速フーリエ変換回路、高速フーリエ変換処理方法、及び高速フーリエ変換プログラム記憶媒体を提供することを目的とする。Furthermore, there may be a case where the output order of processing results in the previous stage of FFT processing or IFFT processing is not optimal for the execution order of operations performed in FFT processing or IFFT processing. In such a case, it is effective to rearrange the input data from the previous stage so that the order is optimal for the FFT processing and IFFT processing.
(Object of invention)
The present invention relates to a fast Fourier transform circuit, a fast Fourier transform processing method, and a fast Fourier transform capable of inputting data to be processed and outputting a processing result in an arbitrary order in FFT / IFFT processing in digital signal processing. An object is to provide a program storage medium.
本発明の高速フーリエ変換装置は、高速フーリエ変換又は逆高速フーリエ変換を行って、複数の第1の出力データを生成し、第1の順序で出力する第1の変換部と、第1の順序で出力された複数の第1の出力データを、出力順序設定に基づいて第2の順序に並べ替える第1のデータ並べ替え処理部と、を備えることを特徴とする。
The fast Fourier transform device of the present invention performs a fast Fourier transform or an inverse fast Fourier transform to generate a plurality of first output data, and outputs the first output data in a first order, and a first order And a first data rearrangement processing unit that rearranges the plurality of first output data output in
本発明の高速フーリエ変換装置は、第3の順序で入力される複数の第2の入力データを、入力順序設定に基づいて第4の順序に並べ替える第2のデータ並べ替え処理部と、第4の順序に並べ替えられた複数の第2の入力データに対して、高速フーリエ変換又は逆高速フーリエ変換を行う第2の変換部と、を備えることを特徴とする。 The fast Fourier transform device of the present invention includes a second data rearrangement processing unit that rearranges the plurality of second input data input in the third order into the fourth order based on the input order setting, And a second transform unit that performs fast Fourier transform or inverse fast Fourier transform on the plurality of second input data rearranged in the order of 4.
本発明の高速フーリエ変換方法は、高速フーリエ変換若しくは逆高速フーリエ変換により生成された複数の出力データの出力順序設定に基づく並べ替え、又は高速フーリエ変換若しくは逆高速フーリエ変換の複数の入力データの入力順序設定に基づく並べ替えを行うことを特徴とする。 The fast Fourier transform method of the present invention includes rearrangement based on output order setting of a plurality of output data generated by fast Fourier transform or inverse fast Fourier transform, or input of a plurality of input data of fast Fourier transform or inverse fast Fourier transform. Sorting based on order setting is performed.
本発明の高速フーリエ変換プログラム記憶媒体は、高速フーリエ変換装置が備えるコンピュータを、高速フーリエ変換又は逆高速フーリエ変換を行う手段、及び高速フーリエ変換若しくは逆高速フーリエ変換により生成された複数の出力データの出力順序設定に基づいて並べ替える並べ替え手段、又は高速フーリエ変換若しくは逆高速フーリエ変換の複数の入力データの入力順序設定に基づいて並べ替える並べ替え手段として機能させるためのプログラムを格納する非一時的な記憶媒体であることを特徴とする。 The fast Fourier transform program storage medium of the present invention includes a computer provided in a fast Fourier transform device, means for performing fast Fourier transform or inverse fast Fourier transform, and a plurality of output data generated by fast Fourier transform or inverse fast Fourier transform. Non-temporary storing program for functioning as rearrangement means for rearranging based on output order setting, or rearranging means for rearranging based on input order setting of a plurality of input data of fast Fourier transform or inverse fast Fourier transform It is a characteristic storage medium.
本発明によれば、デジタル信号処理におけるFFT/IFFT処理において、処理対象のデータの入力や処理結果の出力を任意の順序で行うことができる。 According to the present invention, in FFT / IFFT processing in digital signal processing, it is possible to input data to be processed and output processing results in an arbitrary order.
(第1の実施形態)
図1は、本発明の第1の実施形態に係るFFT装置10の構成例を示すブロック図である。FFT装置10は、図19に示されたデータフロー500に従って、2段階の基数8のバタフライ処理に分解された64ポイントFFTを、パイプライン回路方式によって処理する。FFT装置10は、時間領域のデータx(n)(n=0,1,・・・ ,N-1)を入力し、x(n)をFFT処理によりフーリエ変換して周波数領域の信号X(k)(k=0,1,・・・,N-1)を生成し、出力する。ここで、NはFFTブロックサイズを表す正整数である。(First embodiment)
FIG. 1 is a block diagram showing a configuration example of an
FFT装置10は、8データ並列で64ポイントFFT処理を行うものとする。この場合、FFT回路10は、時間領域のデータx(n)を入力し、FFT処理によりフーリエ変換した周波数領域の信号X(k)を生成して出力する。このとき、入力データx(n) として、8データずつ、8サイクルの期間に、図2に示す順序で、合計で64個のデータが入力される。なお、ここでは、図2の表の内容として示された、0から63までの数字は、x(n)の添え字nを意味する。
The
具体的には、1サイクル目に、データ組P1を構成するx(0),x(1),・・・,x(7)の8データが入力される。そして、2サイクル目に、データ組P2を構成するx(8),x(9),・・・,x(15)の8データが入力される。以降同様に、3サイクル目から8サイクル目まで、データ組P3〜P8を構成するデータが入力される。 Specifically, in the first cycle, 8 data of x (0), x (1),..., X (7) constituting the data set P1 are input. In the second cycle, 8 data of x (8), x (9),..., X (15) constituting the data set P2 are input. Thereafter, similarly, data constituting the data sets P3 to P8 is input from the third cycle to the eighth cycle.
同様に、出力データX(k)として、8データずつ、8サイクルの期間に、図2に示す順序で、64データを出力される。なお、ここでは、図2の表の内容として示された、0から63までの数字は、X(k)の添え字kを意味する。 Similarly, as output data X (k), 64 data is output in the order shown in FIG. Here, the numbers from 0 to 63 shown as the contents of the table of FIG. 2 mean the subscript k of X (k).
具体的には、1サイクル目に、データ組P1を構成するX(0),X(1),・・・,X(7)の8データが出力される。2サイクル目に、データ組P2を構成するX(8),X(9),・・・,X(15)の8データが出力される。以降同様に、3サイクル目から8サイクル目まで、データ組P3〜P8を構成するデータが出力される。 Specifically, in the first cycle, 8 data of X (0), X (1),..., X (7) constituting the data set P1 are output. In the second cycle, 8 data of X (8), X (9),..., X (15) constituting the data set P2 are output. Thereafter, similarly, data constituting the data sets P3 to P8 is output from the third cycle to the eighth cycle.
FFT装置10は、第1のデータ並べ替え処理部11、第1のバタフライ演算処理部21、第2のデータ並べ替え処理部12、ひねり乗算処理部31、第2のバタフライ演算処理部22、第3のデータ並べ替え処理部13、読み出しアドレス生成部41を備える。FFT装置10は、第1のデータ並べ替え処理、第1のバタフライ演算処理、第2のデータ並べ替え処理、ひねり乗算処理、第2のバタフライ演算処理、第3のデータ並べ替え処理を、パイプライン処理する。
The
第1のデータ並べ替え処理部11、第2のデータ並べ替え処理部12は、データ並べ替えのためのバッファ回路である。第1のデータ並べ替え処理部11、第2のデータ並べ替え処理部12は、それぞれ、第1のバタフライ演算処理部21の前と後で、FFT処理のアルゴリズム上のデータの依存関係に基づいた、データシーケンスの並べ替えを行う。
The first data
第3のデータ並べ替え処理部13も、同様に、データ並べ替えのためのバッファ回路である。すなわち、第3のデータ並べ替え処理部13は、第2のバタフライ演算処理部22の後で、FFT処理のアルゴリズム上のデータの依存関係に基づいた、データシーケンスの並べ替えを行う。さらに、第3のデータ並べ替え処理部13は、上記の並べ替えに加えて、FFT装置10の出力X(k)において、任意のkに対して、出力X(k)とX(N-k)とを高々1サイクル以内の時間差で出力するための並べ替え処理も行う。
Similarly, the third data
具体的には、第1のデータ並べ替え処理部11は、入力データx(n)の入力順序である図2に示す「逐次順序」を、第1のバタフライ演算処理部21に入力する順序である図3に示す「ビットリバース順序」に並べ替える。
Specifically, the first data
図3に示すビットリバース順序は、図19に示したデータフロー図における、1段目の基数8のバタフライ処理502への入力データ組に対応する。具体的には、具体的には、1サイクル目に、データ組P1を構成するx(0),x(8),・・・,x(56)の8データを入力する。そして、2サイクル目に、データ組P2を構成するx(1),x(9),・・・,x(57)の8データを入力する。以降、3サイクル目から8サイクル目まで同様にして、データ組P3〜P8を構成するデータを入力する。
The bit reverse order shown in FIG. 3 corresponds to the input data set to the radix-8
ここで、「逐次順序」と「ビットリバース順序」について、具体的に説明する。「逐次順序」とは、図2に示された、8つのデータ組P1、P2、P3、P4、P5、P6、P7、P8の順序をいう。データ組Ps(sは処理サイクルの順を示す値。s=1,・・・,8)は、それぞれ、ps(0)からps(7)まで、順に並んだ8個のデータからなり、ps(i)は、
ps(i)=8(s−1)+i
である。そして、各データ組は、処理のサイクルの進行に対応して、P1、P2、P3、P4、P5、P6、P7、P8の順に並べられている。つまり、逐次順序とは、is個のデータを、先頭のデータからi個ずつデータ順に並べてデータ組をs個作成し、そのデータ組をサイクル順に並べたものである。Here, “sequential order” and “bit reverse order” will be specifically described. "Sequential order" refers to the order of the eight data sets P1, P2, P3, P4, P5, P6, P7, and P8 shown in FIG. The data set Ps (s is a value indicating the order of processing cycles. S = 1,..., 8) is composed of 8 data arranged in order from ps (0) to ps (7), respectively. (i)
ps (i) = 8 (s−1) + i
It is. Each data set is arranged in the order of P1, P2, P3, P4, P5, P6, P7, and P8 corresponding to the progress of the processing cycle. In other words, the sequential order is a sequence in which is data is arranged i in order from the top data in the order of data to create s data sets, and the data sets are arranged in the cycle order.
「ビットリバース順序」とは、図3に示された、8つのデータ組Q1、Q2、Q3、Q4、Q5、Q6、Q7、Q8の順序をいう。データ組Qsは、それぞれ、qs(0)からqs(7)までの8個のデータからなり、qs(i)は、
qs(i)=(s−1)+8i
である。そして、各データ組は、処理のサイクルの進行に対応して、Q1、Q2、Q3、Q4、Q5、Q6、Q7、Q8の順に並べられている。つまり、ビットリバース順序とは、逐次順序で入力されたis個のデータを、先頭のデータからs個ずつサイクル順に並べ、同じサイクルのi個のデータを1つの組としてデータ順に並べたものである。The “bit reverse order” refers to the order of the eight data sets Q1, Q2, Q3, Q4, Q5, Q6, Q7, and Q8 shown in FIG. Each data set Qs consists of 8 data from qs (0) to qs (7), and qs (i)
qs (i) = (s-1) + 8i
It is. Each data set is arranged in the order of Q1, Q2, Q3, Q4, Q5, Q6, Q7, and Q8 corresponding to the progress of the processing cycle. In other words, the bit reverse order is obtained by arranging is data input in a sequential order in order of s data from the top data in cycle order, and arranging i data of the same cycle as one set in data order. .
以上のように、ビットリバース順序の各データ組は、逐次順序の各組が設定されれば一意に定まる。ビットリバース順序の各データ組Qs(s=1,・・・,8)を構成するデータのiデータ目は、逐次順序に従ったサイクルiにおける、sデータ目のデータである。すなわち、
Qs(i)=Pi(s)
である。このように、Qs(i)とPi(s)とは、各データ組を構成するデータについての、サイクルの進行に対する順序とデータ位置に対する順序が入れ替えられた関係にある。従って、ビットリバース順序で入力されたデータを、ビットリバース順序に従って並べ替えると、逐次順序になる。As described above, each data set in the bit reverse order is uniquely determined if each sequential order is set. The i-th data of the data constituting each data set Qs (s = 1,..., 8) in the bit reverse order is the s-th data in the cycle i according to the sequential order. That is,
Qs (i) = Pi (s)
It is. As described above, Qs (i) and Pi (s) have a relationship in which the order of the cycle progress and the order of the data position are exchanged for the data constituting each data set. Therefore, when data input in the bit reverse order is rearranged according to the bit reverse order, the sequential order is obtained.
図2における各行ps(i)、及び図3における8つの行qs(i)は、それぞれ、次段のiデータ目に入力されるデータを示す。各データ組に含まれる8個の数字は、FFTのポイントのうちの1個を特定する識別情報であり、具体的にはx(n)の添え字nの値である。 Each row ps (i) in FIG. 2 and eight rows qs (i) in FIG. 3 indicate data input to the i-th data in the next stage. Eight numbers included in each data set are identification information for specifying one of the points of the FFT, specifically, the value of the subscript n of x (n).
図2のデータ組Psと、図3のデータ組Qsとの間の並べ替え、すなわち各データ組とそれに含まれる識別情報との対応関係の入れ替えは、第2の実施形態以降に示す他のデータ並べ替え回路においても行われることがある。 The rearrangement between the data set Ps in FIG. 2 and the data set Qs in FIG. 3, that is, the correspondence between each data set and the identification information included in the data set is replaced with other data shown in the second and subsequent embodiments. It may also be performed in the rearrangement circuit.
なお、逐次順序及びビットリバース順序は、図2、3に例示されたものに限定されない。すなわち、逐次順序の各データ組は、上記のように、FFTのポイント数、サイクル数、並列に処理するデータ数に応じて、データを順に並べて作成すればよい。そして、ビットリバース順序の各データ組は、上記のように、逐次順序で入力されるデータの、サイクルの進行に対する順序とデータ位置に対する順序を入れ替えて作成すればよい。 Note that the sequential order and the bit reverse order are not limited to those illustrated in FIGS. That is, as described above, each sequential data set may be created by arranging data in order according to the number of FFT points, the number of cycles, and the number of data processed in parallel. Then, as described above, each data set in the bit reverse order may be created by switching the order of the data input in the sequential order and the order of the data position.
第1のバタフライ演算処理部21は、図19のデータフロー500において2回行われる基数8のバタフライ演算処理の、1回目のバタフライ演算処理502(第1のバタフライ演算処理)を処理するバタフライ回路である。第1のバタフライ演算処理部21は、バタフライ演算処理の結果を、データy(n)(n=0,1,・・・ ,63)として、図2の逐次順序で出力する。
The first butterfly
第2のデータ並べ替え処理部12は、第1のバタフライ演算処理部21が逐次順序で出力するデータy(n)を、第2のバタフライ演算処理部22に入力するために、図3のビットリバース順序に並べ替える。
The second data
ひねり乗算処理部31は、第1のバタフライ演算処理後に、FFT演算における複素平面上の複素回転を処理する回路であり、図19のデータフロー500における、ひねり乗算処理504に対応する。なお、ひねり乗算処理では、データの並べ替えは行われない。
The twist
第2のバタフライ演算処理部22は、図19のデータフロー図における、2回目の基数8のバタフライ処理503を処理するバタフライ回路である。第2のバタフライ演算処理部22は、ビットリバース順序で入力されるひねり乗算処理後のデータy'(n)(n=0,1,・・・ ,63)に対してバタフライ演算処理を行い、その結果X(k)(n=0,1,・・・ ,63)を、同じくビットリバース順序で出力する。
The second butterfly
第3のデータ並べ替え処理部13は、第2のバタフライ演算処理部22がビットリバース順序で出力するデータX(k)を、図4の順序(以降、「任意データ組逐次順序」という。)に並べ替える。「任意データ組逐次順序」は、FFT装置10が、FFT処理の最終結果として出力する順序である。任意データ組逐次順序は、逐次順序で作成されたs個のデータ組Psが、サイクルの進行に合わせて出力されるときの順序であり、出力順序指定52によって指定することができる。本実施形態では、任意データ組逐次順序は、P1、P8、P2、P7、P3、P6、P4、P5という順序に指定される。
The third data
図4における各行ps(i)は、次段のiデータ目に入力されるデータを示す。各データ組に含まれる8個の数字は、FFTのポイントのうちの1個を特定する識別情報であり、具体的にはX(k)の添え字kの値である。 Each row ps (i) in FIG. 4 shows data input to the i-th data in the next stage. Eight numbers included in each data set are identification information for specifying one of the points of the FFT, specifically, the value of the subscript k of X (k).
第3のデータ並べ替え処理部13は、読み出しアドレス生成部41が出力する読み出しアドレス51を入力して、データX(k)の出力順序を決定する。
The third data
読み出しアドレス生成部41は、CPU(Central Processing Unit)などの上位回路(図示せず)から与えられる出力順序設定52を参照して、データ並べ替え処理部13に出力する読み出しアドレス51を生成する。
The read
データ並べ替え処理部が、入力されたデータを一旦記憶し、記憶したデータの選択及び出力を制御することによって、図2の逐次順序、図3のビットリバース順序、図4の任意データ組逐次順序のそれぞれに従ったデータの並べ替え処理が実現される。以下に、データ並べ替え処理部の具体例を示す。 The data rearrangement processing unit temporarily stores the input data, and controls the selection and output of the stored data, so that the sequential order in FIG. 2, the bit reverse order in FIG. 3, and the arbitrary data set sequential order in FIG. The data rearrangement process according to each of the above is realized. Below, the specific example of a data rearrangement process part is shown.
第1のデータ並べ替え処理部11、及び第2のデータ並べ替え処理部12は、例えば図5に示すデータ並べ替え処理部100で実現することができる。
The first data
データ並べ替え処理部100は、入力情報103として入力される8個のデータからなるデータ組D1〜D8を、FIFOバッファ(First In First Out Buffer。先入れ先出しバッファ)における先入れ順序で入力して、データ記憶位置101a〜101hに書き込み、記憶する。具体的には、データ記憶位置101a〜101hのそれぞれに、データ組D1〜D8が記憶される。
The data
次に、データ並べ替え処理部100は、FIFOバッファにおける先出し順序で、記憶しているデータを出力する。具体的には、データ並べ替え処理部100は、データ読み出し位置102a〜102hのそれぞれから8個のデータを読み出して1つのデータ組とし、8つのデータ組D1’〜D8’を出力情報104として出力する。このように、データ組D1’ 〜D8’は、サイクル順に並べられたデータ組D1〜D8に含まれるデータを、データ位置の順に並べ替えて1つの組としたものである。
Next, the data
一方、図6は、第3のデータ並べ替え処理部13の実現例を示すデータ並べ替え処理部200の構成図である。データ並べ替え処理部200は、入力情報203として入力される8個のデータからなるデータ組P1〜P8を、FIFOバッファにおける先入れ順序で入力して、データ記憶位置201a〜201hに書き込み、記憶する。すなわち、サイクル順に対応するデータ記憶位置201a〜201hのそれぞれに、データ組D1〜D8が順に記憶される。このとき、記憶されたデータをデータ位置の順、すなわち、データ記憶位置202a〜202hの順に見ると、データ記憶位置202a〜202hのそれぞれには、データ組D1’〜D8’が記憶されている。
On the other hand, FIG. 6 is a configuration diagram of the data
次に、データ並べ替え処理部200は、記憶しているデータを、読み出し回路205により読み出して、出力情報204として出力する。このとき、読み出し回路205は、読み出しアドレス51を参照して、データ記憶位置202a〜202hの中からいずれか1つを選択して、データ記憶位置202a〜202hに記憶されている8個のデータのいずれか1つを1回の読み出し動作で読み出す。このように、読み出しアドレス51に任意に指定可能な所望順番で読み出しアドレスを与えることにより、任意の順番でデータを読み出すことができる。例えば、読み出しアドレス51に、アドレス1、8、2、7、3、6、4、5、の順番で読み出しアドレスを与えた場合、データ並べ替え処理部200は、データ組D1’、D8’、D2’、D7’、D3’、D6’、D4’、D5’、の順番で、記憶しているデータを出力する。すなわち、図4に示した任意データ組逐次順序で、データが出力される。ここで、データ組D1’ 〜D8’は、サイクル順に並べられたデータ組D1〜D8に含まれるデータを、データ位置の順に並べ替えて1つの組としたものである。
Next, the data
以上説明したように、FFT装置10において、第1のデータ並べ替え処理部11、第2のデータ並べ替え処理部12、及び第3のデータ並べ替え処理部13によって、図2の逐次順序、図3のビットリバース順序、図4の任意データ組逐次順序のそれぞれに従った3回の並べ替え処理が行われる。
As described above, in the
第1のデータ並べ替え処理部11、第2のデータ並べ替え処理部12、及び第3のデータ並べ替え処理部13のそれぞれを、以上のように制御することによって、次段の処理に必要な複数のデータを近いタイミングで出力することができるので、さらにデータの並べ替えを行う必要がない。以下に、第3のデータ並べ替え処理部13におけるデータの並べ替えを例として、説明する。
By controlling each of the first data
図1に示したFFT装置10を用いて、8データ並列で64ポイントFFT処理を行う場合を例として説明する。FFT装置10は、時間領域のデータx(n)(n=0,1,・・・ ,63)を入力し、FFT処理によりフーリエ変換した周波数領域の信号X(k)(k=0,1,・・・,63)を生成して出力する。入力データx(n)は、8データずつ8サイクルの期間に、図2に示す順序で入力され、合計で64個のデータx(n)が入力される。なお、図2には、x(n)の添え字nのみが表記されている。
A case where 64-point FFT processing is performed in parallel with 8 data using the
具体的には、1サイクル目に、データ組P1を構成するx(0),x(1),・・・,x(7)の8データが入力される。そして、2サイクル目に、データ組P2を構成するx(8),x(9),・・・,x(15)の8データが入力される。以降、3サイクル目から8サイクル目まで同様にして、データ組P3〜P8を構成するデータが入力される。 Specifically, in the first cycle, 8 data of x (0), x (1),..., X (7) constituting the data set P1 are input. In the second cycle, 8 data of x (8), x (9),..., X (15) constituting the data set P2 are input. Thereafter, data constituting the data sets P3 to P8 is input in the same manner from the third cycle to the eighth cycle.
一方、出力データX(k)は、8データずつ8サイクルの期間に、例えば図4に示す順序で、合計64個のデータを出力する。なお、図4には、X(k)の添え字kのみが表記されている。具体的には、各サイクルにおいて、以下のデータが出力される。
1サイクル目:
データ組D1を構成するX(0),X(1),・・・,X(7)の8データが出力される。
2サイクル目:
データ組D8を構成するX(56),X(57),・・・,X(63)の8データが出力される。
3サイクル目:
データ組D2を構成するX(8),X(9),・・・,X(15)の8データが出力される。
4サイクル目:
データ組D7を構成するX(48),X(49),・・・,X(55)の8データが出力される。
5サイクル目:
データ組D3を構成するX(16),X(17),・・・,X(23)の8データが出力される。
6サイクル目:
データ組D6を構成するX(40),X(41),・・・,X(47)の8データが出力される。
7サイクル目:
データ組D4を構成するX(24),X(25),・・・,X(31)の8データが出力される。
8サイクル目:
データ組D5を構成するX(32),X(33),・・・,X(39)の8データが出力される。On the other hand, as the output data X (k), a total of 64 pieces of data are output in the period shown in FIG. In FIG. 4, only the subscript k of X (k) is shown. Specifically, the following data is output in each cycle.
First cycle:
Eight data of X (0), X (1),..., X (7) constituting the data set D1 are output.
Second cycle:
Eight data of X (56), X (57),..., X (63) constituting the data set D8 are output.
3rd cycle:
Eight data of X (8), X (9),..., X (15) constituting the data set D2 are output.
4th cycle:
Eight data of X (48), X (49),..., X (55) constituting the data set D7 are output.
5th cycle:
Eight data of X (16), X (17),..., X (23) constituting the data set D3 are output.
6th cycle:
Eight data of X (40), X (41),..., X (47) constituting the data set D6 are output.
7th cycle:
Eight data of X (24), X (25),..., X (31) constituting the data set D4 are output.
8th cycle:
Eight data of X (32), X (33),..., X (39) constituting the data set D5 are output.
このように、添え字k1、k2の合計が、FFTのポイント数に対応する63になるような、2個の出力データX1(k1)、X2(k2)は、常に、連続したサイクルに出力される。すなわち、FFT装置10は、任意の添え字kに対して、出力X(k)とX(N-k)(N=63)とを、高々1サイクル以内の時間差で出力することができる。
(第1の実施形態の効果)
以上のように、本実施形態では、FFT装置10は、出力順序設定52を用いて順序を指定することによって、任意の順序でデータを出力することができる。In this way, two pieces of output data X1 (k1) and X2 (k2) whose sum of subscripts k1 and k2 is 63 corresponding to the number of FFT points are always output in successive cycles. The That is, the
(Effects of the first embodiment)
As described above, in the present embodiment, the
例えば、FFT装置10の後段において、出力データX(k)(k=0,1,・・・,N-1)に対して、kの異なる複数のX(k)の間で演算が行われる場合に、演算の入力値である2つのX(k)をできるだけ近いサイクルで出力することができる。X(k)とX(N-k)との間で演算をする場合、X(k)とX(N-k)を高々1サイクル以内の時間差で出力することができる。その結果、出力に対する新たな並べ替えを行うための回路の追加を必要としない。
For example, in the subsequent stage of the
また、出力データを出力する順序を指定可能とするために、追加すべき回路は、読み出しアドレス生成部41のみであり、回路規模としては非常に小さい。
Further, in order to be able to specify the order in which output data is output, the circuit to be added is only the read
従って、後段の処理を含め、全体としての回路規模、及び消費電力の増大を抑制することができる。 Accordingly, it is possible to suppress an increase in the circuit scale and power consumption as a whole, including subsequent processing.
なお、本実施形態では、FFT処理を例として説明したが、IFFTにおいても同様である。すなわち、本実施形態の制御方法をIFFT処理装置に適用して、IFFT処理の後段の処理内容を考慮して処理結果の出力順序を最適化すれば、IFFT処理の後段の処理を高速化することができる。
(第2の実施形態)
第1の実施形態とは逆に、FFT/IFFT処理の前段の処理結果が、その処理に独自の順序で出力され、FFT/IFFT処理装置に入力される場合がある。この場合は、入力された前段の処理結果を、FFT/IFFT処理に適した順序に並べ替えることが、FT/IFFT処理の高速化や、回路規模及び消費電力の増加の抑制のために有効である。In the present embodiment, the FFT processing has been described as an example, but the same applies to IFFT. That is, if the control method of the present embodiment is applied to the IFFT processing apparatus and the output order of the processing results is optimized in consideration of the processing content at the latter stage of the IFFT processing, the processing at the latter stage of the IFFT processing is accelerated. Can do.
(Second Embodiment)
Contrary to the first embodiment, the processing result of the previous stage of the FFT / IFFT processing may be output in an order unique to the processing and input to the FFT / IFFT processing device. In this case, rearranging the input previous processing results in an order suitable for FFT / IFFT processing is effective for speeding up the FT / IFFT processing and suppressing increase in circuit scale and power consumption. is there.
第2の実施形態では、前段のFFT装置10の出力の順序である任意データ組逐次順序(例えば図4に示す順序)に対応して動作するIFFT装置について説明する。
In the second embodiment, an IFFT apparatus that operates in accordance with an arbitrary data set sequential order (for example, the order shown in FIG. 4) that is the order of output of the preceding
図7は、本発明の第2の実施形態に係るIFFT装置20の構成例を示すブロック図である。IFFT装置20は、図19に示されたFFTのデータフロー500と同様のデータフローで、2段階の基数8のバタフライ処理に分解された64ポイントIFFTを、パイプライン回路方式によって処理する。IFFT装置20は、FFT装置10によりフーリエ変換された周波数領域の信号X(k)(k=0,1,・・・,N-1)を入力し、X(k)をフーリエ逆変換により時間領域のデータy(n)(n=0,1,・・・ ,N-1)を生成し、出力する。ここで、NはIFFTブロックサイズを表す正整数である。
FIG. 7 is a block diagram showing a configuration example of the
図7において、IFFT装置20は、8データ並列で64ポイントIFFT処理を行う。IFFT装置20は、FFT装置10の出力と同様の、図4に示す任意データ組逐次順序で入力X(k)を入力する。一方、IFFT装置20は、図2に示す逐次順序で出力y(n)を出力する。
In FIG. 7, the
IFFT装置20は、第1のデータ並べ替え処理部14、第1のバタフライ演算処理部21、第2のデータ並べ替え処理部12、ひねり乗算処理部31、第2のバタフライ演算処理部22、第3のデータ並べ替え処理部15、書き込みアドレス生成部42を備える。IFFT装置20は、第1のデータ並べ替え処理、第1のバタフライ演算処理、第2のデータ並べ替え処理、ひねり乗算処理、第2のバタフライ演算処理、第3のデータ並べ替え処理を、パイプライン処理する。
The
第1のデータ並べ替え処理部14は、データ並べ替えのためのバッファ回路である。すなわち、第1のデータ並べ替え処理部14は、第1のバタフライ回路21の前で、IFFT処理のアルゴリズム上のデータの依存関係に基づいた、データシーケンスの並べ替えを行う。さらに、第1のデータ並べ替え処理部14は、上記の並べ替えに加えて、任意データ組逐次順序でデータを入力するための並べ替え処理も行う。
The first data
具体的には、第1のデータ並べ替え処理部14は、入力データX(k)の入力順序である図4に示す任意データ組逐次順序を、第1のバタフライ演算処理部21に入力する順序である図3に示すビットリバース順序に並べ替える。
Specifically, the first data
第2のデータ並べ替え処理部12、第3のデータ並べ替え処理部15も、同様に、データ並べ替えのためのバッファ回路である。第2のデータ並べ替え処理部12、第3のデータ並べ替え処理部15は、それぞれ、第1のバタフライ演算回路21、第2のバタフライ演算回路22の後で、IFFT処理のアルゴリズム上のデータの依存関係に基づいた、データシーケンスの並べ替えを行う。
Similarly, the second data
第1のバタフライ演算処理部21は、図19のデータフロー500において2回行われる基数8のバタフライ演算処理の、1回目のバタフライ演算処理502(第1のバタフライ演算処理)を処理するバタフライ回路である。第1のバタフライ演算処理部21は、バタフライ演算処理の結果を、データy(n)(n=0,1,・・・ ,63)として、図2の逐次順序で出力する。
The first butterfly
第2のデータ並べ替え処理部12は、第1のバタフライ演算処理部21が逐次順序で出力するデータy(n)を、ひねり乗算処理部31に入力するために、図3のビットリバース順序に並べ替える。
The second data
ひねり乗算処理部31は、第1のバタフライ演算処理後に、IFFT演算における複素平面上の複素回転を処理する回路であり、図19のデータフロー500における、ひねり乗算処理504に対応する。なお、ひねり乗算処理では、データの並べ替えは行われない。
The twist
第2のバタフライ演算処理部22は、図19のデータフロー500における、2回目の基数8のバタフライ処理503を処理するバタフライ回路である。第2のバタフライ演算処理部22は、ビットリバース順序で入力されるひねり乗算処理後のデータy'(n)(n=0,1,・・・ ,63)に対してバタフライ演算処理を行い、その結果X(k)(n=0,1,・・・ ,63)を、同じくビットリバース順序で出力する。
The second butterfly
第3のデータ並べ替え処理部15は、第2のバタフライ演算処理部22がビットリバース順序で出力するデータX(k)を、図2の逐次順序に並べ替える。すなわち、IFFT装置20は、IFFT処理の最終結果を逐次順序で出力する。
The third data
第1のデータ並べ替え処理部14は、書き込みアドレス生成部42が出力する書き込みアドレス53を入力して、データX(k)の入力順序を決定する。
The first data
書き込みアドレス生成部42は、CPUなどの上位回路(図示せず)から与えられる入力順序設定54を参照して、データ並べ替え処理部14に出力する書き込みアドレス53を生成する。
The write
第2のデータ並べ替え処理部12、及び第3のデータ並べ替え処理部15は、例えば図5に示すデータ並べ替え処理部100で実現することができる。
The second data
図8は、第1のデータ並べ替え処理部14の実現例を示すデータ並べ替え処理部300の構成図である。データ並べ替え処理部300は、入力情報303として任意データ組逐次順序で入力される8個のデータからなるデータ組D1〜D8を、書き込み回路305により、書き込み位置301a〜301hに書き込む。このとき、書き込み回路305は、書き込みアドレス53を参照して、書き込み位置301a〜301hの中から、いずれか1つを選択して、1回の書き込み動作を行う。すなわち、書き込みアドレス53に指定された所定の順番で書き込みアドレスを与えることにより、所望の順番でデータを書き込むことができる。
FIG. 8 is a configuration diagram of the data
例えば、書き込みアドレス53に、アドレス1、8、2、7、3、6、4、5、の順番で書き込みアドレスを与えた場合、データ並べ替え処理部300は、データ組D1、D8、D2、D7、D3、D6、D4、D5、の順番で入力したデータを、書き込み位置301a〜301hに対してD1、D2、D3、D4、D5、D6、D7、D8、の順番で書き込み、記憶する。すなわち、データ記憶位置301a〜301hのそれぞれに、データ組D1〜D8が順に記憶される。このとき、記憶されたデータをサイクル順、すなわち、データ記憶位置302a〜302hの順に見ると、データ記憶位置302a〜302hのそれぞれには、データ組D1’〜D8’が記憶されている。
For example, when the write address is given to the
次に、データ並べ替え処理部300は、記憶しているデータを、FIFOバッファにおける先出し順序で読み出して出力する。具体的には、データ並べ替え処理部300は、データ記憶位置302a〜302hのそれぞれに記憶されている、データ組D1’〜D8 ’を、D1’、D2’、D3’、D4’、D5’、D6’、D7’、D8’、の順序で読み出して出力する。
Next, the data
すなわち、第1のデータ並べ替え処理部14に相当するデータ並べ替え処理部300は、書き込みアドレス53に任意に指定可能な所望の順番で書き込みアドレスを与えることにより、任意の順番でデータを入力することができる。例えば、書き込みアドレス53に、アドレス1、8、2、7、3、6、4、5、の順番で書き込みアドレスを与えた場合、データ並べ替え処理部300は、データ組D1、D8、D2、D7、D3、D6、D4、D5、の順番でデータを入力する。すなわち、図4に示した任意データ組逐次順序でデータ入力して記憶する。
In other words, the data
一方、第2のデータ並べ替え処理部12、第3のデータ並べ替え処理部15に相当するデータ並べ替え処理部100は、記憶しているデータを、D1、D2、D3、D4、D5、D6、D7、D8、の順番、すなわち図1の逐次順序で、データを出力する。
(第2の実施形態の効果)
以上のように、本実施形態では、IFFT装置20は、入力順序設定54を用いて順序を指定することによって、任意の順序でデータを入力することができる。従って、FFT装置10の出力順序に対応して、入力に対する新たな並べ替え手段を必要としない。On the other hand, the data
(Effect of 2nd Embodiment)
As described above, in this embodiment, the
また、任意の順序で入力される入力データに対応するために、追加すべき回路は、書き込みアドレス生成部42のみであり、回路規模としては非常に小さい。
Further, in order to cope with input data input in an arbitrary order, the circuit to be added is only the write
従って、前段の処理を含め、全体としての回路規模、及び消費電力の増大を抑制することができる。 Accordingly, it is possible to suppress an increase in the circuit scale and power consumption as a whole, including the processing in the previous stage.
なお、本実施形態では、IFFT処理を例として説明したが、FFTにおいても同様である。すなわち、本実施形態の制御方法をFFT処理装置に適用して、FFT処理の前段の処理内容を考慮して入力信号の入力順序を最適化すれば、FFT処理を高速化することができる。
(第3の実施形態)
FFT装置10において、第2のデータ並べ替え処理部12に改造を加えることによって、第3のデータ並べ替え処理部13は省略することができる。FFT装置10から第3のデータ並べ替え処理部13を除いたFFT装置30の構成を、図9を参照して説明する。In this embodiment, the IFFT process has been described as an example, but the same applies to the FFT. That is, if the control method of this embodiment is applied to the FFT processing apparatus and the input order of the input signals is optimized in consideration of the processing content of the previous stage of the FFT processing, the FFT processing can be speeded up.
(Third embodiment)
In the
図9は、本発明の第3の実施形態に係るFFT装置30の構成例を示すブロック図である。FFT装置30は、図19に示されたFFTのデータフローと同様のデータフローで、2段階の基数8のバタフライ処理に分解された64ポイントFFTを、パイプライン回路方式によって処理する。FFT装置30は、時間領域のデータx(n)(n=0,1,・・・ ,N-1)を入力し、x(n)をFFT処理によりフーリエ変換して周波数領域の信号X(k)(k=0,1,・・・,N-1)を生成し、出力する。ここで、NはFFTブロックサイズを表す正整数である。
FIG. 9 is a block diagram showing a configuration example of the
図9に示したFFT装置30を用いて、8データ並列で64ポイントFFT処理を行う場合を例として説明する。FFT装置30は、時間領域のデータx(n)(n=0,1,・・・ ,63)を入力し、FFT処理によりフーリエ変換した周波数領域の信号X(k)(k=0,1,・・・,63)を生成して出力する。入力データx(n)は、8データずつ8サイクルの期間に、図2に示す順序で入力され、合計で64個のデータx(n)が入力される。
A case where 64-point FFT processing is performed in parallel on 8 data using the
一方、出力データX(k)は、8データずつ8サイクルの期間に、例えば図10に示す順序(以降、「任意データ組ビットリバース順序」という。)で、合計で64個が出力される。 On the other hand, a total of 64 pieces of output data X (k) are outputted in a period of 8 cycles of 8 data in the order shown in FIG. 10 (hereinafter referred to as “arbitrary data set bit reverse order”).
図10における各行qs(i)は、次段のiデータ目に入力されるデータを示す。各データ組に含まれる8個の数字は、FFTのポイントのうちの1個を特定する識別情報であり、具体的にはx(k)の添え字kの値である。 Each row qs (i) in FIG. 10 indicates data input to the i-th data in the next stage. Eight numbers included in each data set are identification information for specifying one of the FFT points, specifically, the value of the subscript k of x (k).
具体的には、各サイクルにおいて、以下のデータが出力される。
1サイクル目:
データ組Q1を構成するX(0),X(8),・・・,X(56)の8データが出力される。
2サイクル目:
データ組Q8を構成するX(7),X(15),・・・,X(63)の8データが出力される。
3サイクル目:
データ組Q2を構成するX(1),X(9),・・・,X(57)の8データが出力される。
4サイクル目:
データ組Q7を構成するX(6),X(14),・・・,X(62)の8データが出力される。
5サイクル目:
データ組Q3を構成するX(2),X(10),・・・,X(58)の8データが出力される。
6サイクル目:
データ組Q6を構成するX(5),X(13),・・・,X(61)の8データが出力される。
7サイクル目:
データ組Q4を構成するX(3),X(11),・・・,X(59)の8データが出力される。
8サイクル目:
データ組Q5を構成するX(4),X(12),・・・,X(60)の8データが出力される。Specifically, the following data is output in each cycle.
First cycle:
Eight data of X (0), X (8),..., X (56) constituting the data set Q1 are output.
Second cycle:
Eight data of X (7), X (15),..., X (63) constituting the data set Q8 are output.
3rd cycle:
Eight data of X (1), X (9),..., X (57) constituting the data set Q2 are output.
4th cycle:
Eight data of X (6), X (14),..., X (62) constituting the data set Q7 are output.
5th cycle:
Eight data of X (2), X (10),..., X (58) constituting the data set Q3 are output.
6th cycle:
Eight data of X (5), X (13),..., X (61) constituting the data set Q6 are output.
7th cycle:
Eight data of X (3), X (11),..., X (59) constituting the data set Q4 are output.
8th cycle:
Eight data of X (4), X (12),..., X (60) constituting the data set Q5 are output.
このように、添え字k1、k2の合計が、FFTのポイント数に対応する63になるような、2個の出力データX1(k1)、X2(k2)は、常に、連続したサイクルに出力される。すなわち、FFT装置30は、FFT装置10と同様に、任意の添え字kに対して、出力X(k)とX(N-k) (N=63)とを、高々1サイクル以内の時間差で出力することができる。
In this way, two pieces of output data X1 (k1) and X2 (k2) whose sum of subscripts k1 and k2 is 63 corresponding to the number of FFT points are always output in successive cycles. The That is, the
FFT装置30は、第1のデータ並べ替え処理部11、第1のバタフライ演算処理部21、第2のデータ並べ替え処理部16、ひねり乗算処理部31、第2のバタフライ演算処理部22、読み出しアドレス生成部43を備える。FFT装置30において、FFT装置10と同一の構成には同一の符号を付加し、詳細な説明は省略する。FFT装置30は、第1のデータ並べ替え処理、第1のバタフライ演算処理、第2のデータ並べ替え処理、ひねり乗算処理、第2のバタフライ演算処理を、パイプライン処理する。
The
FFT装置30は、FFT装置10の構成から第3のデータ並べ替え処理部13を除いた構成をもつ。FFT装置10における第3のデータ並べ替え処理部13が、読み出しアドレス51を参照して行っていた並べ替え処理は、FFT装置30では、第2のデータ並べ替え処理部16が行う。すなわち、第2のデータ並べ替え処理部16は、読み出しアドレス55を入力して、FFT処理のアルゴリズム上のデータの依存関係に基づいた、データシーケンスの並べ替えを行う。さらに、第2のデータ並べ替え処理部16は、上記の並べ替えに加えて、FFT装置30の出力X(k)において、任意のkに対して、出力X(k)とX(N-k)とを高々1サイクル以内の時間差で出力するための並べ替え処理を行う。
The
具体的には、第2のデータ並べ替え処理部16は、第1のバタフライ演算処理部21が図2の逐次順序で出力するデータを、ひねり乗算処理部31に入力する順序である図10に示す任意データ組ビットリバース順序に並べ替える。
Specifically, the second data
第2のデータ並べ替え処理部16は、図6に示したデータ並べ替え処理部200と同様の構成で実現することができる。
The 2nd data
ひねり乗算処理部31、及び第2のバタフライ演算処理部22は、データ組間の順序を変更しないため、第2のバタフライ演算処理部22は、FFT処理結果X(k)を、図10の任意データ組ビットリバース順序で出力する。
(第3の実施の形態の効果)
以上のように、本実施形態では、FFT装置30は、出力順序設定56を用いて順序を指定することによって、任意の順序でデータを出力することができる。Since the twist
(Effect of the third embodiment)
As described above, in the present embodiment, the
例えば、FFT装置30の後段において、出力データX(k)(k=0,1,・・・,N-1)に対して、kの異なる複数のX(k) の間で演算が行われる場合に、演算の入力値であるX(k)をできるだけ近いサイクルで出力することができる。X(k)とX(N-k)との間で演算をする場合、X(k)とX(N-k)を高々1サイクル以内の時間差で出力することができる。その結果、出力に対する新たな並べ替えを行うための回路の追加を必要としない。
For example, in the subsequent stage of the
また、出力データを出力する順序を指定可能とするために、追加すべき回路は、読み出しアドレス生成部43のみであり、回路規模としては非常に小さい。
Further, in order to be able to specify the order in which the output data is output, the circuit to be added is only the read
従って、後段の処理を含め、全体としての回路規模、及び消費電力の増大を抑制することができる。 Accordingly, it is possible to suppress an increase in the circuit scale and power consumption as a whole, including subsequent processing.
さらに、FFT装置10と比較して、第3のデータ並べ替え処理部13を省略することができる。その結果、回路規模、及び消費電力をさらに削減することができる。
Further, as compared with the
なお、本実施形態では、FFT処理を例として説明したが、IFFTにおいても同様である。すなわち、本実施形態の制御方法をIFFT処理装置に適用して、IFFT処理の後段の処理内容を考慮して処理結果の出力順序を最適化すれば、IFFT処理の後段の処理を高速化することができる。
(第4の実施形態)
次に、FFT装置30の出力の順序である任意データ組ビットリバース順序に対応して動作するIFFT装置について説明する。In the present embodiment, the FFT processing has been described as an example, but the same applies to IFFT. That is, if the control method of the present embodiment is applied to the IFFT processing apparatus and the output order of the processing results is optimized in consideration of the processing content at the latter stage of the IFFT processing, the processing at the latter stage of the IFFT processing is accelerated. Can do.
(Fourth embodiment)
Next, an IFFT apparatus that operates in accordance with an arbitrary data set bit reverse order, which is an output order of the
図11は、本発明の第4の実施形態に係るIFFT装置40の構成例を示すブロック図である。IFFT装置40は、図19に示されたFFTのデータフローと同様のデータフローで、2段階の基数8のバタフライ処理に分解された64ポイントIFFTを、パイプライン回路方式によって処理する。IFFT装置40は、FFT装置30によりフーリエ変換された周波数領域の信号X(k)(k=0,1,・・・,N-1)を入力し、X(k)をフーリエ逆変換により時間領域のデータy(n)(n=0,1,・・・ ,N-1)を生成し、出力する。ここで、NはIFFTブロックサイズを表す正整数である。
FIG. 11 is a block diagram showing a configuration example of the
図7において、IFFT装置40は、8データ並列で64ポイントIFFT処理を行う。IFFT装置40は、FFT装置30の出力と同様の、図10に示す任意データ組ビットリバース順序で入力X(k)を入力する。一方、IFFT装置40は、図2に示す逐次順序で出力y(n)を出力する。
In FIG. 7, the
IFFT装置40は、第1のバタフライ演算処理部21、第1のデータ並べ替え処理部17、ひねり乗算処理部31、第2のバタフライ演算処理部22、第2のデータ並べ替え処理部15、書き込みアドレス生成部44を備える。IFFT装置40において、IFFT装置20と同一の構成には同一の符号を付加し、詳細な説明は省略する。IFFT装置40は、第1のバタフライ演算処理、第1のデータ並べ替え処理、ひねり乗算処理、第2のバタフライ演算処理、第2のデータ並べ替え処理を、パイプライン処理する。
The
IFFT装置40は、IFFT装置20の構成から第1のデータ並べ替え処理部14を除いた構成をもつ。IFFT装置20における第1のデータ並べ替え処理部14が、書き込みアドレス53を参照して行っていた並べ替え処理は、IFFT装置40では、第2のデータ並べ替え処理部17が行う。すなわち、第2のデータ並べ替え処理部17は、書き込みアドレス57を入力して、IFFT処理のアルゴリズム上のデータの依存関係に基づいた、データシーケンスの並べ替えを行う。さらに、第2のデータ並べ替え処理部17は、上記の並べ替えに加えて、任意データ組逐次順序でデータを入力するための並べ替え処理を行う。
The
具体的には、第2のデータ並べ替え処理部17は、第1のバタフライ演算処理部21が図4の任意データ組逐次順序で出力するデータを、第2のバタフライ演算処理部22に入力する順序である図3のビットリバース順序に並べ替える。
Specifically, the second data
第2のデータ並べ替え処理部17は、図8に示したデータ並べ替え処理部300と同様の構成で実現することができる。
(第4の実施形態の効果)
以上のように、本実施形態では、IFFT装置40は、入力順序設定58を用いて順序を指定することによって、任意の順序でデータを入力することができる。従って、FFT装置30の出力順序に対応して、入力に対する新たな並べ替え手段を必要としない。The second data
(Effect of the fourth embodiment)
As described above, in this embodiment, the
また、任意の順序で入力される入力データに対応するために、追加すべき回路は、書き込みアドレス生成部44のみであり、回路規模としては非常に小さい。
Further, the circuit to be added is only the write
従って、前段の処理を含め、全体としての回路規模、及び消費電力の増大を抑制することができる。 Accordingly, it is possible to suppress an increase in the circuit scale and power consumption as a whole, including the processing in the previous stage.
さらに、IFFT装置20と比較して、第1のデータ並べ替え処理部14を省略することができる。その結果、回路規模、及び消費電力をさらに削減することができる。
Furthermore, compared with the
なお、本実施形態では、IFFT処理を例として説明したが、FFTにおいても同様である。すなわち、本実施形態の制御方法をFFT処理装置に適用して、FFT処理の前段の処理内容を考慮して入力信号の入力順序を最適化すれば、FFT処理を高速化することができる。 In this embodiment, the IFFT process has been described as an example, but the same applies to the FFT. That is, if the control method of this embodiment is applied to the FFT processing apparatus and the input order of the input signals is optimized in consideration of the processing content of the previous stage of the FFT processing, the FFT processing can be speeded up.
以上の説明から明らかなように、本発明の高速フーリエ変換装置の特徴は、FFT/IFFTの変換前、又は変換後に、任意の順序へのデータの並べ替えを行うことができる点にある。それによって、データ並べ替え後の処理の高速化が可能となる。FFT/IFFTが、複数の段階の処理に分けて行われるときは、データの並べ替えは、ある段階の処理と次の段階の処理との間に行われてもよい。 As is clear from the above description, the fast Fourier transform device of the present invention is characterized in that data can be rearranged in an arbitrary order before or after the FFT / IFFT conversion. As a result, the processing after data rearrangement can be speeded up. When the FFT / IFFT is performed in a plurality of stages, the data rearrangement may be performed between a process at a certain stage and a process at the next stage.
図12(a)、(b)、(c)は、本発明の高速フーリエ変換装置が備える必須の構成を示すブロック図である。 FIGS. 12A, 12B, and 12C are block diagrams showing essential configurations included in the fast Fourier transform device of the present invention.
高速フーリエ変換装置60は、フーリエ変換部61、データ並べ替え処理部62を備える。フーリエ変換部61は、高速フーリエ変換又は逆高速フーリエ変換を行って、複数の出力データを生成し、第1の順序で出力する。データ並べ替え処理部62は、第1の順序で出力された複数の第1の出力データを、出力順序設定に基づいて第2の順序に並べ替える。このように、高速フーリエ変換装置60は、フーリエ変換後に、データの並べ替えを行う。
The fast
高速フーリエ変換装置70は、フーリエ変換部72、データ並べ替え処理部71を備える。データ並べ替え処理部71は、第3の順序で入力される複数の入力データを、入力順序設定に基づいて第4の順序に並べ替える。フーリエ変換部72は、第4の順序に並べ替えられた複数の入力データに対して、高速フーリエ変換又は逆高速フーリエ変換を行う。このように、高速フーリエ変換装置70は、フーリエ変換前に、データの並べ替えを行う。
The fast
高速フーリエ変換装置80は、処理部81、82、データ並べ替え処理部831を備える。高速フーリエ変換装置80は、処理部81、82を用いて、2段階に分けて、高速フーリエ変換又は逆高速フーリエ変換を行う。処理部81は、複数の中間データを生成し、第5の順序で出力する。データ並べ替え処理部83は、第5の順序で入力される複数の中間データを、順序設定に基づいて第6の順序に並べ替える。処理部82は、第6の順序に並べ替えられた複数の中間データに対して、所定の処理を行い、高速フーリエ変換又は逆高速フーリエ変換結果の出力データを生成する。このように、高速フーリエ変換装置80では、データの並べ替えは、高速フーリエ変換又は逆高速フーリエ変換の、処理の途中の段階で行われる。
(第5の実施形態)
図13は、本発明の第1の実施形態に係るディジタルフィルタ回路400の構成を示すブロック図である。ディジタルフィルタ回路400は、FFT回路413、IFFT回路414、複素共役生成回路415、複素共役合成回路416、フィルタ回路421、フィルタ回路422、フィルタ係数生成回路441、を備える。The fast
(Fifth embodiment)
FIG. 13 is a block diagram showing the configuration of the
ディジタルフィルタ回路400は、時間領域における複素数信号
x(n)=r(n)+js(n) ・・・(1)
を入力する。The
Enter.
FFT回路413は、入力された複素数信号x(n)を、FFTにより周波数領域の複素数信号431
X(k)=A(k)+jB(k) ・・・(2)
に変換する。The
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 of 0 ≦ n ≦ N−1 indicating a signal sample number in the time domain, N is an integer of 0 <N indicating the number of FFT conversion samples, and k is a frequency number in the
また、FFT回路413は、X(k)から、
X(N−k)=A(N−k)+jB(N−k) ・・・(3)
を生成して出力する。In addition, the
X (N−k) = A (N−k) + jB (N−k) (3)
Is generated and output.
複素共役生成回路415は、0≦k≦N−1の周波数番号kのそれぞれについて、FFT回路413が出力するX(N−k)を入力し、X(N−k)の複素共役
X*(N−k)=A(N−k)−jB(N−k) ・・・(4)
を生成する。The complex
Is generated.
複素共役生成回路415は、入力した複素数信号X(k)を複素数信号432として出力し、生成した複素数信号X*(N−k)を複素数信号433として出力する。
The complex
次に、フィルタ係数生成回路441は、0≦k≦N−1の周波数番号kのそれぞれについて、入力した複素数係数V(k)、W(k)、及びH(k)から、複素数係数
C1(k)={V(k)+W(k)}×H(k) ・・・(5)
及び、複素数係数
C2(k)={V(k)−W(k)}×H(k) ・・・(6)
を生成する。Next, the filter
And complex coefficient C2 (k) = {V (k) -W (k)} × H (k) (6)
Is generated.
ここで複素数係数V(k)、W(k)、及びH(k)は、ディジタルフィルタ回路400の上位回路(図示せず)から与えられる周波数領域での係数で、時間領域での実数演算によるフィルタ処理を行った場合の、実数フィルタ係数に対応する。V(k)、W(k)、及びH(k)の詳細に関しては後述する。
Here, the complex number coefficients V (k), W (k), and H (k) are coefficients in the frequency domain given from the upper circuit (not shown) of the
フィルタ係数生成回路441は、生成した複素数係数C1(k)を複素数信号445として出力する。また、フィルタ係数生成回路441は、複素数信号C2(k)(式(6))から複素数信号C2(N−k)を生成し、複素数信号446として出力する。
The filter
次に、フィルタ回路421は、複素共役生成回路415が複素数信号432に出力するX(k)(式(2))に対して、フィルタ係数生成回路441が複素数信号445に出力するC1(k)(式(5))を用いて、複素数乗算による複素数フィルタ処理を行う。具体的には、フィルタ回路421は、0≦k≦N−1の周波数番号kのそれぞれについて、複素数信号
X'(k)=X(k)×C1(k) ・・・(7)
を計算して、複素数信号434として出力する。Next, in the
Is output as a
同様に、フィルタ回路422は、複素共役生成回路415が複素数信号433に出力するX*(N−k)(式(4))に対して、フィルタ係数生成回路441が複素数信号446に出力するC2(N−k)(式(6))を用いて、複素数乗算による複素数フィルタ処理を行う。具体的には、フィルタ回路422は、0≦k≦N−1の周波数番号kのそれぞれについて、複素数信号
X*'(N−k)=X*(N−k)×C2(N−k) ・・・(8)
を計算して、複素数信号435として出力する。Similarly, in the
Is output as a
C1(k)、C2(k)は、それぞれ、実数部と虚数部に分けて、
C1(k)=C1I(k)+jC1Q(k) ・・・(9)
C2(k)=C2I(k)+jC2Q(k) ・・・(10)
と書くことができる。C1 (k) and C2 (k) are divided into real part and imaginary part respectively.
C1 (k) = C1I (k) + jC1Q (k) (9)
C2 (k) = C2I (k) + jC2Q (k) (10)
Can be written.
次に、複素共役合成回路416は、フィルタ回路21が複素数信号434に出力するX'(k)(式(7))と、フィルタ回路422が複素数信号435に出力するX*'(N−k)(式(8))とを合成した複素数信号X"(k)を生成する。具体的には、複素共役合成回路416は、0≦k≦N−1の周波数番号kのそれぞれについて、
X"(k)=1/2×{X'(k)+X*'(N−k)} ・・・(11)
を計算して、複素数信号436として出力する。Next, the complex
X ″ (k) = 1/2 × {X ′ (k) + X * ′ (N−k)} (11)
Is output as a
次に、IFFT回路414は、0≦k≦N−1の周波数番号kのそれぞれについて、複素共役合成回路416が複素数信号436に出力するX"(k)(式(11))に対して、IFFTにより時間領域の複素数信号x"(n)を生成して出力する。
Next, the
FFT回路413の実現方法として、本発明の第1の実施形態に係るFFT回路10を使用することができる。同様に、IFFT回路414の実現方法として、本発明の第2の実施形態に係るIFFT回路20を使用することができる。
As an implementation method of the
あるいは、FFT回路413の実現方法として、本発明の第3の実施形態に係るFFT回路20を使用することができる。同様に、IFFT回路414の実現方法として、本発明の第4の実施形態に係るIFFT回路40を使用することができる。
Alternatively, the
図14は、複素共役生成回路415の構成の詳細を示すブロック図である。複素共役生成回路415は、データ記憶部452、453、データ選択部454、455を備える。
FIG. 14 is a block diagram showing details of the configuration of the complex
複素共役生成回路415は、FFT回路413の出力に含まれるX(k)(=A(k)+jB(k)。式(2))を入力してそのまま出力する。さらに、複素共役生成回路415は、FFT回路413の出力に含まれる出力X(N−k)(=A(N−k)+jB(N−k)。式(3))を入力して、
X*(N−k)=A(N−k)−jB(N−k) ・・・(4)
を計算して出力する。The complex
X * (N−k) = A (N−k) −jB (N−k) (4)
Is calculated and output.
X(k)、X*(N−k)は、それぞれ、実数部と虚数部に分けて、
X(k)=XI(k)+jXQ(k) ・・・(12)
X*(N−k)=X*I(N−k)+jX*Q(N−k) ・・・(13)
と書くことができる。X (k) and X * (N−k) are divided into a real part and an imaginary part respectively.
X (k) = XI (k) + jXQ (k) (12)
X * (N−k) = X * I (N−k) + jX * Q (N−k) (13)
Can be written.
図15は、フィルタ回路421の構成の詳細を示すブロック図である。フィルタ回路421は、複素共役生成回路415が複素信号線432に出力するX(k)(=XI(k)+jXQ(k)。式(12))と、複素数係数C1(k)(=C1I(k)+jC1Q(k)。式(9))を入力して、
X'(k)=XI'(k)+jXQ'(k)
=X(k)×C1(k) ・・・(14)
を計算して出力する。FIG. 15 is a block diagram showing details of the configuration of the
X ′ (k) = XI ′ (k) + jXQ ′ (k)
= X (k) x C1 (k) (14)
Is calculated and output.
ここで、XI'(k)及びXQ'(k)は、それぞれX'(k)の実数部と虚数部であり、次式で与えられる。 Here, XI ′ (k) and XQ ′ (k) are the real part and the imaginary part of X ′ (k), respectively, and are given by the following equations.
XI'(k)=XI(k)×C1I(k)−XQ(k)×C1Q(k) ・・・(15)
XQ'(k)=XI(k)×C1Q(k)+XQ(k)×C1I(k) ・・・(16)
図16は、フィルタ回路422の構成の詳細を示すブロック図である。フィルタ回路422は、複素共役生成回路415が複素信号線433に出力するX*(N−k)(=X*I(N−k)+jX*Q(N−k)。式(13))と複素数係数C2(k)(=C2I(k)+jC2Q(k)。式(10))を入力して、
X*'(N−k)=X*I'(N−k)+jX*Q'(N−k)
=X*(N−k)×C2(N−k) ・・・(17)
を計算して出力する。XI ′ (k) = XI (k) × C1I (k) −XQ (k) × C1Q (k) (15)
XQ ′ (k) = XI (k) × C1Q (k) + XQ (k) × C1I (k) (16)
FIG. 16 is a block diagram showing details of the configuration of the
X * ′ (N−k) = X * I ′ (N−k) + jX * Q ′ (N−k)
= X * (N−k) × C2 (N−k) (17)
Is calculated and output.
ここで、X*I'(N−k)及びX*Q'(N−k)は、それぞれX*'(N−k)の実数部と虚数部であり、次式で与えられる。 Here, X * I ′ (N−k) and X * Q ′ (N−k) are the real part and the imaginary part of X * ′ (Nk), respectively, and are given by the following equations.
X*I'(N−k)=X*I(N−k)×C2I(N−k)−X*Q(N−k)×C2Q(N−k)・・・(18)
X*Q'(N−k)=X*I(N−k)×C2Q(N−k)+X*Q(N−k)×C2I(N−k)・・・(19)
図17は、複素共役合成回路416の構成の詳細を示すブロック図である。複素共役合成回路416は、0≦k≦N−1の周波数番号kのそれぞれについて、フィルタ回路421が複素数信号434に出力するX'(k)(=XI'(k)+jXQ'(k)。式(14))と、フィルタ回路422が複素数信号435に出力するX*'(N−k)(=X*I'(N−k)+jX*Q'(N−k)。式(17))とを入力して、
X"(k)=XI"(k)+jXQ"(k)
=1/2{X'(k)+X*'(N−k)} ・・・(20)
を計算して出力する。X * I ′ (N−k) = X * I (N−k) × C2I (N−k) −X * Q (N−k) × C2Q (N−k) (18)
X * Q ′ (N−k) = X * I (N−k) × C2Q (N−k) + X * Q (N−k) × C2I (N−k) (19)
FIG. 17 is a block diagram showing details of the configuration of the complex
X "(k) = XI" (k) + jXQ "(k)
= 1/2 {X ′ (k) + X * ′ (N−k)} (20)
Is calculated and output.
ここで、XI"(k)及びXQ"(k)は、それぞれX"(k)の実数部と虚数部であり、次式で与えられる。 Here, XI "(k) and XQ" (k) are the real part and imaginary part of X "(k), respectively, and are given by the following equations.
XI"(k)=1/2{XI'(k)+X*I'(N−k)} ・・・(21)
XQ"(k)=1/2{XQ'(k)+X*Q'(N−k)} ・・・(22)
ここで、XI'(k)、XQ'(k)、X*I'(N−k)、X*Q'(N−k)は、それぞれ式(15)、(16)、(18)、(19)の通りである。XI "(k) = 1/2 {XI '(k) + X * I' (N-k)} (21)
XQ "(k) = 1/2 {XQ '(k) + X * Q' (N-k)} (22)
Here, XI ′ (k), XQ ′ (k), X * I ′ (N−k), and X * Q ′ (N−k) are respectively expressed by equations (15), (16), (18), (19)
フィルタ係数生成回路441は、フィルタ回路421、422で用いられる複素数係数C1(k)、C2(k)を生成する。図18は、フィルタ係数生成回路441の構成の詳細を示すブロック図である。フィルタ係数生成回路441は、0≦k≦N−1の周波数番号kのそれぞれについて、上位回路(図示せず)から入力された複素数係数V(k)、W(k)から、V(k)+W(k)及びV(k)−W(k)を計算する。
The filter
ここで、
V(k)+W(k)=VI(k)+WI(k)+jVQ(k)+jWQ(k) ・・・(23)
V(k)−W(k)=VI(k)−WI(k)+jVQ(k)−jWQ(k) ・・・(24)
である。VI(k)及びVQ(k)は、それぞれV(k)の実数部と虚数部であり、WI(k)及びWQ(k)は、それぞれW(k)の実数部と虚数部である。here,
V (k) + W (k) = VI (k) + WI (k) + jVQ (k) + jWQ (k) (23)
V (k) -W (k) = VI (k) -WI (k) + jVQ (k) -jWQ (k) (24)
It is. VI (k) and VQ (k) are the real part and imaginary part of V (k), respectively, and WI (k) and WQ (k) are the real part and imaginary part of W (k), respectively.
また、H(k)も実数部と虚数部とに分けて、
H(k)=HI(k)+jHQ(k) ・・・(25)
と書くことができる。H (k) is also divided into a real part and an imaginary part.
H (k) = HI (k) + jHQ (k) (25)
Can be written.
次に、フィルタ係数生成回路441は、以下の式で定義された複素数係数C1(k)及びC2(k)を計算して出力する。
Next, the filter
C1(k)=C1I(k)+jC1Q(k)
={V(k)+W(k)}×H(k) ・・・(26)
C2(k)=C2I(k)+jC2Q(k)
={V(k)−W(k)}×H(k) ・・・(27)
ここで、C1I(k)、C1Q(k)は、それぞれC1(k)の実数部と虚数部であり、C2I(k)、C2Q(k)は、それぞれC2(k)の実数部と虚数部である。C1 (k) = C1I (k) + jC1Q (k)
= {V (k) + W (k)} × H (k) (26)
C2 (k) = C2I (k) + jC2Q (k)
= {V (k) -W (k)} × H (k) (27)
Here, C1I (k) and C1Q (k) are the real part and imaginary part of C1 (k), respectively, and C2I (k) and C2Q (k) are the real part and imaginary part of C2 (k), respectively. It is.
式(26)に式(23)、(25)を代入して、
C1(k)={VI(k)+WI(k)+jVQ(k)+jWQ(k)}×{HI(k)+jHQ(k)}・・・(28)
である。Substituting Equations (23) and (25) into Equation (26),
C1 (k) = {VI (k) + WI (k) + jVQ (k) + jWQ (k)} × {HI (k) + jHQ (k)} (28)
It is.
従って、
C1I(k)={VI(k)+WI(k)}×HI(k)−{VQ(k)+WQ(k)}×HQ(k)・・・(29)
C1Q(k)={VQ(k)+WQ(k)}×HI(k)+{VI(k)+WI(k)}×HQ(k)・・・(30)
である。Therefore,
C1I (k) = {VI (k) + WI (k)} × HI (k) − {VQ (k) + WQ (k)} × HQ (k) (29)
C1Q (k) = {VQ (k) + WQ (k)} × HI (k) + {VI (k) + WI (k)} × HQ (k) (30)
It is.
同様に、式(27)に式(24)、(25)を代入して、
C2(k)=C2I(k)+jC2Q(k)
={V(k)−W(k)}×H(k)
={VI(k)−WI(k)+jVQ(k)−jWQ(k)}×{HI(k)+jHQ(k)}・・・(31)
である。Similarly, substituting equations (24) and (25) into equation (27),
C2 (k) = C2I (k) + jC2Q (k)
= {V (k) -W (k)} × H (k)
= {VI (k) −WI (k) + jVQ (k) −jWQ (k)} × {HI (k) + jHQ (k)} (31)
It is.
従って、
C2I(k)={VI(k)−WI(k)}×HI(k)−{VQ(k)−WQ(k)}×HQ(k)・・・(32)
C2Q(k)={VQ(k)−WQ(k)}×HI(k)+{VI(k)−WI(k)}×HQ(k)・・・(33)
である。Therefore,
C2I (k) = {VI (k) -WI (k)} * HI (k)-{VQ (k) -WQ (k)} * HQ (k) (32)
C2Q (k) = {VQ (k) -WQ (k)} * HI (k) + {VI (k) -WI (k)} * HQ (k) (33)
It is.
以上のように、ディジタルフィルタ回路400は、時間領域の入力信号をFFT変換して周波数領域の複素数信号を生成する。そして、ディジタルフィルタ回路400は、周波数領域の複素数信号の実数部、虚数部のそれぞれを、V(k)、W(k)、H(k)から生成された2種類の係数を用いて独立にフィルタ処理し、その結果をIFFTによって時間領域の信号に変換する。このように、ディジタルフィルタ回路400では、FFTとIFFTは、それぞれ、時間領域の入力信号に対して1回のみ実行される。
As described above, the
フィルタ処理に用いられる2種類の係数が、FFT及びIFFTの回数の最小化を可能にする。以下に、V(k)、W(k)、H(k)の物理的な意味と、これらから生成された係数C1(k)及びC2(k)を用いたフィルタ処理により、時間領域での所望のフィルタ処理と同等の、周波数領域でのフィルタ処理が可能となる原理を説明する。 Two types of coefficients used in the filtering process allow the number of FFTs and IFFTs to be minimized. In the following, the physical meaning of V (k), W (k), H (k) and the filter processing using the coefficients C1 (k) and C2 (k) generated from these are used in the time domain. The principle that enables filter processing in the frequency domain equivalent to the desired filter processing will be described.
本実施形態では、入力する時間領域の複素数信号x(n)(=r(n)+js(n)。式(1))を複素FFTした周波数領域の複素数信号
X(k)=R(k)+jS(k) ・・・(34)
から、複素共役生成回路15がX*(N−k)を生成する。In the present embodiment, a complex signal X (k) = R (k) in a frequency domain obtained by performing a complex FFT on an input time domain complex signal x (n) (= r (n) + js (n). Equation (1)). + JS (k) (34)
Therefore, the complex
ここで、R(k)は、時間領域における実数の実数部信号r(n)が実数FFTにより変換された周波数領域の複素数信号、S(k)は時間領域における実数の虚数部信号s(n)が実数FFTにより変換された周波数領域の複素数信号である。このとき、複素共役の対称性から次式が成立する。 Here, R (k) is a complex signal in the frequency domain obtained by transforming a real real part signal r (n) in the time domain by a real FFT, and S (k) is a real imaginary part signal s (n in the time domain. ) Is a complex signal in the frequency domain transformed by a real number FFT. At this time, the following equation holds from the symmetry of the complex conjugate.
X*(N−k)=R(k)−jS(k) ・・・(35)
ここで、X*(N−k)は、X(N−k)の複素共役である。X * (N−k) = R (k) −jS (k) (35)
Here, X * (N−k) is a complex conjugate of X (N−k).
式(14)、(34)、(26)から、
X'(k)=X(k)×C1(k)
={R(k)+jS(k)}×{V(k)+W(k)}×H(k)
=R(k)V(k)H(k)+R(k)W(k)H(k)+jS(k)V(k)H(k)+jS(k)W(k)H(k)・・・(36)
となる。From equations (14), (34), (26),
X ′ (k) = X (k) × C1 (k)
= {R (k) + jS (k)} × {V (k) + W (k)} × H (k)
= R (k) V (k) H (k) + R (k) W (k) H (k) + jS (k) V (k) H (k) + jS (k) W (k) H (k) (36)
It becomes.
また、式(17)、(35)、(27)から、
X*'(N−k)=X*(N−k)×C2(N−k)
={R(k)−jS(k)}×{V(k)−W(k)}×H(k)
=R(k)V(k)H(k)−R(k)W(k)H(k)−jS(k)V(k)H(k)+jS(k)W(k)H(k) ・・・(37)
となる。From equations (17), (35), (27)
X * ′ (N−k) = X * (N−k) × C2 (N−k)
= {R (k) −jS (k)} × {V (k) −W (k)} × H (k)
= R (k) V (k) H (k) -R (k) W (k) H (k) -jS (k) V (k) H (k) + jS (k) W (k) H (k ) ... (37)
It becomes.
式(20)に、式(36)、(37)を代入すると、
X"(k)=1/2×{X'(k)+X*'(N−k)}
=1/2×{2×R(k)V(k)H(k)+2×jS(k)W(k)H(k)}
=R(k)V(k)H(k)+jS(k)W(k)H(k)
={R(k)V(k)+jS(k)W(k)}×H(k) ・・・(38)
となる。Substituting Equations (36) and (37) into Equation (20),
X ″ (k) = 1/2 × {X ′ (k) + X * ′ (N−k)}
= 1/2 × {2 × R (k) V (k) H (k) + 2 × jS (k) W (k) H (k)}
= R (k) V (k) H (k) + jS (k) W (k) H (k)
= {R (k) V (k) + jS (k) W (k)} × H (k) (38)
It becomes.
式(38)は、IFFT前の信号X"(k)を、フィルタ係数V(k)、W(k)及びH(k)と、FFT後の信号X(k)におけるR(k)及びS(k)を用いて表したものである。R(k)は、時間領域における実数の実数部信号r(n)が実数FFTにより変換された周波数領域の複素数信号である。S(k)は、時間領域における実数の虚数部信号s(n)が実数FFTにより変換された周波数領域の複素数信号である。つまり、式(38)は、FFT後の信号X(k)に対して施されるフィルタ処理の内容を表す。式(38)から、ディジタルフィルタ回路400は、複素数信号x(n)=r(n)+js(n)が実数FFTにより変換されて生成された、周波数領域の複素数信号X(k)(=R(k)+jS(k)。式(34))に対して、以下の3つのフィルタ処理と同等の処理を行うことがわかる。
1)R(k)に対する係数V(k)によるフィルタ処理
まず、ディジタルフィルタ回路400は、時間領域における実数部信号r(n)が実数FFTにより変換された周波数領域の複素数信号R(k)に対して、フィルタ係数V(k)によるフィルタ処理を行う。従って、V(k)には、実数部信号r(n)に対して時間領域で実数演算によるフィルタ処理を行った場合の、実数フィルタ係数に対応する、周波数領域での複素数フィルタ係数が割り当てられる。
2)S(k)に対する係数W(k)によるフィルタ処理
同様に、ディジタルフィルタ回路400は、時間領域における虚数部信号s(n)が実数FFTにより変換された周波数領域の複素数信号S(k)に対して、フィルタ係数W(k)によるフィルタ処理を行う。従って、W(k)には、虚数部信号s(n)に対して時間領域で実数演算によるフィルタ処理を行った場合の、実数フィルタ係数に対応する、周波数領域での複素数フィルタ係数が割り当てられる。
3)1)、2)のフィルタ処理結果に対する係数H(k)によるフィルタ処理
次に、ディジタルフィルタ回路400は、それぞれ独立に処理された上記の2つのフィルタ処理後の、R(k)V(k)及びS(k)W(k)からなる複素数信号R(k)V(k)+jS(k)W(k)に対して、フィルタ係数H(k)によるフィルタ処理を行う。Equation (38) shows that the signal X ″ (k) before IFFT is converted into filter coefficients V (k), W (k) and H (k), and R (k) and S in signal X (k) after FFT. R (k) is a frequency domain complex signal obtained by transforming a real number real part signal r (n) in the time domain by a real number FFT, and S (k) is represented by (k). The real number imaginary part signal s (n) in the time domain is a complex number signal in the frequency domain converted by the real number FFT, that is, the equation (38) is applied to the signal X (k) after the FFT. The
1) Filter processing by coefficient V (k) for R (k) First, the
2) Filter processing with coefficient W (k) for S (k) Similarly, the
3) Filter processing by the coefficient H (k) for the filter processing results of 1) and 2) Next, the
R(k)V(k)+jS(k)W(k)は、時間領域における実数部信号r(n)及び虚数部信号s(n)のそれぞれに独立にフィルタ処理した2つの信号からなる時間領域の信号に対応する、周波数領域の複素数信号である。実数部信号r(n)及び虚数部信号s(n)をそれぞれに独立にフィルタ処理した信号とは、図15、16における、X'(k)、X*'(N-k)に相当する。そして、r'(n)、s'(n)からなる時間領域の信号とは、図13のx"(n)に相当する。このように、R(k)V(k)+jS(k)W(k)は、時間領域において実数部及び虚数部のそれぞれに独立にフィルタ処理した時間領域の信号に対応する、周波数領域の信号である。 R (k) V (k) + jS (k) W (k) is a time composed of two signals obtained by independently filtering the real part signal r (n) and the imaginary part signal s (n) in the time domain. It is a complex signal in the frequency domain corresponding to the signal in the domain. The signals obtained by independently filtering the real part signal r (n) and the imaginary part signal s (n) correspond to X ′ (k) and X * ′ (N−k) in FIGS. The time-domain signal composed of r ′ (n) and s ′ (n) corresponds to x ″ (n) in FIG. 13. Thus, R (k) V (k) + jS (k) W (k) is a frequency domain signal corresponding to a time domain signal that is independently filtered for each of the real and imaginary parts in the time domain.
従って、時間領域における複素数信号に対する複素数演算によるフィルタ処理に相当する処理を、周波数領域の信号R(k)V(k)+jS(k)W(k)に対して行うには、次のような係数を用いればよい。すなわち、H(k)には、複素数信号x(n)に対して時間領域で複素数演算によるフィルタ処理を行った場合の、複素数フィルタ係数に対応する、周波数領域での複素数フィルタ係数が割り当てればよい。 Therefore, in order to perform processing corresponding to filter processing by complex number arithmetic on a complex number signal in the time domain for the signal R (k) V (k) + jS (k) W (k) in the frequency domain, the following is performed. A coefficient may be used. That is, H (k) is assigned a complex filter coefficient in the frequency domain corresponding to the complex filter coefficient when filter processing by complex number computation is performed on the complex signal x (n) in the time domain. Good.
以上のように、本実施形態では、外部から3種類の係数が設定される。すなわち、複素数信号x(n)の実数部及び虚数部のそれぞれに対する時間領域でのフィルタ係数に対応する周波数領域のフィルタ係数V(k)、W(k)と、x(n)に対する時間領域でのフィルタ係数に対応する周波数領域の係数H(k)が設定される。以上の3つの係数から求めた2つの係数を用いたフィルタ処理を行うことにより、フィルタ処理の前のFFT及びフィルタ処理後のIFFTをそれぞれ1回のみとすることができる。
(第5の実施形態の効果)
以上のように、本実施形態によれば、複素数信号の実数部及び虚数部のそれぞれに対する時間領域でのフィルタ係数に対応する、2種類の周波数領域のフィルタ係数と、複素信号に対する時間領域でのフィルタ係数に対応する周波数領域の係数を用いたフィルタ処理が行われる。すなわち、時間領域における複素数信号の実数部及び虚数部のそれぞれに対する実数演算による独立したフィルタ処理と、時間領域における複素数信号に対する複素数演算によるフィルタ処理と、に対応する周波数領域におけるフィルタ処理が行われる。従って、フィルタ処理前のFFTを行うFFT回路及びフィルタ処理後のIFFTを行うIFFT回路を、それぞれ1個のみを用いて、所望のフィルタ処理を実現することができる。その結果、フィルタ処理を行うための回路規模や消費電力の低減を図ることができるという効果がある。As described above, in this embodiment, three types of coefficients are set from the outside. That is, filter coefficients V (k) and W (k) in the frequency domain corresponding to filter coefficients in the time domain for each of the real part and imaginary part of the complex signal x (n) and in the time domain for x (n). A frequency domain coefficient H (k) corresponding to the filter coefficient is set. By performing the filtering process using the two coefficients obtained from the above three coefficients, the FFT before the filtering process and the IFFT after the filtering process can be performed only once.
(Effect of 5th Embodiment)
As described above, according to the present embodiment, two types of frequency domain filter coefficients corresponding to the filter coefficients in the time domain for the real part and the imaginary part of the complex signal, and the time domain for the complex signal, respectively. Filter processing using a frequency domain coefficient corresponding to the filter coefficient is performed. That is, the filter processing in the frequency domain corresponding to the independent filter processing by the real number operation for each of the real part and the imaginary part of the complex signal in the time domain and the filter processing by the complex number operation for the complex signal in the time domain is performed. Therefore, a desired filter process can be realized by using only one FFT circuit that performs the FFT before the filter process and one IFFT circuit that performs the IFFT after the filter process. As a result, it is possible to reduce the circuit scale and power consumption for performing the filtering process.
さらに、FFT回路、IFFT回路の実現に、それぞれ、本発明の第1の実施形態に係るFFT回路10、本発明の第2の実施形態に係るIFFT回路20を使用することができる。あるいは、FFT回路、IFFT回路の実現に、それぞれ、本発明の第3の実施形態に係るFFT回路30、及び本発明の第4の実施形態に係るIFFT回路40を使用することができる。前述のように、本発明の実施形態に係るFFT回路、IFFT回路は、それぞれ、FFT処理、IFFT処理を行うための回路規模や消費電力の削減することができる。従って、本発明の実施形態に係るFFT回路又はIFFT回路をフィルタ処理に用いることによって、フィルタ処理を行うための回路規模や消費電力の削減することができるという効果がある。
Furthermore, the
第1から第5の実施形態では、FFT、IFFT、共役複素数の生成及び合成、フィルタ係数の算出、フィルタ処理等、各処理は、すべて個別の回路等の構成要素によって処理されることが想定されている。しかし、各実施形態の処理は、所定の装置が備えるコンピュータ、例えば、DSP(Digital Signal Processor)等を用いたソフトウェアによって実行されてもよい。すなわち、各処理を行うコンピュータプログラムは、DSP(図示なし)によって読み込まれ、実行される。 In the first to fifth embodiments, it is assumed that all processes such as FFT, IFFT, generation and synthesis of conjugate complex numbers, calculation of filter coefficients, filter processing, and the like are processed by components such as individual circuits. ing. However, the processing of each embodiment may be executed by software using a computer provided in a predetermined apparatus, for example, a DSP (Digital Signal Processor). That is, a computer program for performing each process is read and executed by a DSP (not shown).
例えば、データの並べ替え処理を、プログラムを用いて行ってもよい。すなわち、DSPとメモリを用いて、メモリへのデータの書き込み及びメモリからのデータの読み出しをプログラムによって制御することによって、データの並べ替え処理を行ってもよい。 For example, data rearrangement processing may be performed using a program. In other words, data rearrangement processing may be performed by using a DSP and a memory to control writing of data to the memory and reading of data from the memory by a program.
さらに、第1、第3の実施形態ではFFT処理を、第2、第4の実施形態ではIFFT処理を、プログラムを用いて行ってもよい。第5の実施形態では、V(k)、W(k)、及びH(k)から、C1(k)、C2(k)を求める処理、FFT処理、X(N−k)の共役複素数X*(N−k)を求める処理、フィルタ処理、IFFT処理を、プログラムを用いて行ってもよい。 Furthermore, FFT processing may be performed using a program in the first and third embodiments, and IFFT processing may be performed in the second and fourth embodiments. In the fifth embodiment, processing for obtaining C1 (k) and C2 (k) from V (k), W (k), and H (k), FFT processing, and conjugate complex number X of X (N−k) * Processing for obtaining (N−k), filter processing, and IFFT processing may be performed using a program.
以上のように、プログラムを用いて各処理を行っても、上述の実施形態の処理と同内容の処理を行うことができる。 なお、本プログラムは、ROM(Read Only Memory)、RAM(Random Access Memory)、フラッシュメモリ等の半導体記憶装置、光ディスク、磁気ディスク、光磁気ディスク等、非一時的な媒体に格納されてもよい。 As described above, even if each process is performed using a program, the same process as the process of the above-described embodiment can be performed. The program may be stored in a non-transitory medium such as a ROM (Read Only Memory), a RAM (Random Access Memory), a semiconductor memory device such as a flash memory, an optical disk, a magnetic disk, or a magneto-optical disk.
なお、以上の実施形態は各々他の実施形態と組み合わせることができる。 Each of the above embodiments can be combined with other embodiments.
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)
高速フーリエ変換又は逆高速フーリエ変換を行って、複数の第1の出力データを生成し、第1の順序で出力する第1の変換部と、前記第1の順序で出力された前記複数の第1の出力データを、出力順序設定に基づいて第2の順序に並べ替える第1のデータ並べ替え処理部と、を備える高速フーリエ変換装置。
(付記2)
前記第1の変換処理部は、バタフライ演算処理を行い、前記第1の順序で前記複数の第1の出力データを出力するバタフライ演算処理部を含み、前記第1のデータ並べ替え処理部は、前記バタフライ演算処理後の前記複数の第1のデータを前記第2の順序に並べ替えることを特徴とする付記1に記載の高速フーリエ変換装置。
(付記3)
前記第1のデータ並べ替え処理部は、前記複数の第1の出力データを記憶する第1の記憶部と、前記出力順序設定に基づいて、前記第1の記憶部からの前記複数の第1の出力データの読み出しアドレスを生成する読み出しアドレス生成部を備え、前記複数の第1の出力データを前記第1の順序で記憶し、前記第2の順序で読み出すことを特徴とする付記1又は2に記載の高速フーリエ変換装置。
(付記4)
前記複数の第1の出力データをX(k)(kは0≦k≦N−1の整数、NはN>0の高速フーリエ変換又は逆高速フーリエのポイント数)とするとき、前記第1のデータ並べ替え処理部は、任意のkに対してX(k)とX(N-k)とを高々1サイクル以内の時間差で出力することを特徴とする付記1乃至3のいずれかに記載の高速フーリエ変換装置。
(付記5)
第3の順序で入力される複数の第2の入力データを、入力順序設定に基づいて第4の順序に並べ替える第2のデータ並べ替え処理部と、前記第4の順序に並べ替えられた前記複数の第2の入力データに対して、高速フーリエ変換又は逆高速フーリエ変換を行う第2の変換部と、を備える高速フーリエ変換装置。A part or all of the above-described embodiment can be described as in the following supplementary notes, but is not limited thereto.
(Appendix 1)
A first transform unit that performs fast Fourier transform or inverse fast Fourier transform to generate a plurality of first output data, and outputs the first output data in a first order; and the plurality of second output data that are output in the first order. A fast Fourier transform device comprising: a first data rearrangement processing unit that rearranges one output data in a second order based on an output order setting.
(Appendix 2)
The first conversion processing unit includes a butterfly calculation processing unit that performs butterfly calculation processing and outputs the plurality of first output data in the first order, and the first data rearrangement processing unit includes: The fast Fourier transform device according to
(Appendix 3)
The first data rearrangement processing unit includes: a first storage unit that stores the plurality of first output data; and the plurality of first data from the first storage unit based on the output order setting. A
(Appendix 4)
When the plurality of first output data is X (k) (k is an integer of 0 ≦ k ≦ N−1, N is the number of points of fast Fourier transform or inverse fast Fourier of N> 0), the first The data rearrangement processing section outputs X (k) and X (Nk) with respect to an arbitrary k at a time difference of not more than one cycle at most. Fourier transform device.
(Appendix 5)
A plurality of second input data input in the third order, a second data rearrangement processing section for rearranging the second input data in the fourth order based on the input order setting, and the rearrangement in the fourth order A fast Fourier transform device comprising: a second transform unit that performs fast Fourier transform or inverse fast Fourier transform on the plurality of second input data.
(付記6)
前記第2の変換処理部は、バタフライ演算処理を行うバタフライ演算処理部を含み、前記第2のデータ並べ替え処理部は、前記第4の順序で前記バタフライ演算処理部に前記複数の第2のデータを入力することを特徴とする付記5に記載の高速フーリエ変換装置。(Appendix 6)
The second conversion processing unit includes a butterfly calculation processing unit that performs a butterfly calculation process, and the second data rearrangement processing unit sends the plurality of second data to the butterfly calculation processing unit in the fourth order. The fast Fourier transform device according to
(付記7)
前記第2のデータ並べ替え処理部は、前記複数の第2の入力データを記憶する第2の記憶部と、前記入力順序設定に基づいて、前記第2の記憶部への前記複数の第2のデータの書き込みアドレスを生成する書き込みアドレス生成部を備え、前記複数の第2の出力データを前記第3の順序で記憶し、前記第4の順序で読み出すことを特徴とする付記5又は6に記載の高速フーリエ変換装置。(Appendix 7)
The second data rearrangement processing unit includes: a second storage unit that stores the plurality of second input data; and the plurality of second data to the second storage unit based on the input order setting. A
(付記8)
前記複数の第1の入力データをX(k)(kは0≦k≦N−1の整数、NはN>0の高速フーリエ変換又は逆高速フーリエのポイント数)とするとき、前記第2のデータ並べ替え処理部は、任意のkに対してX(k)とX(N-k)とを高々1サイクル以内の時間差で前記バタフライ演算処理部に入力することを特徴とする付記5乃至7のいずれかに記載の高速フーリエ変換装置。
(付記9)
付記1又は5に記載の高速フーリエ変換装置を含むディジタルフィルタ装置。
(付記10)
付記1に記載の高速フーリエ変換装置と、
前記高速フーリエ変換装置により、入力された時間領域の複素数である前記複数の第1の入力データがフーリエ変換され生成された周波数領域の複数の第1の複素数データを構成する、すべての複素数のそれぞれの共役複素数を含む第2の複素数データを生成する複素共役生成部と、入力された複素数の第1、第2及び第3の入力フィルタ係数から、複素数の第1及び第2の周波数領域フィルタ係数を生成するフィルタ係数生成部と、前記第1の複素数データに対して前記第1の周波数領域フィルタ係数によりフィルタ処理を行い、第3の複素数データを出力する第1のフィルタ部と、前記第2の複素数データに対して前記第2の周波数領域フィルタ係数によりフィルタ処理を行い、第4の複素数データを出力する第2のフィルタ部と、前記第3の複素数信号と、前記第4の複素数信号とを合成して第5の複素数データを生成する複素共役合成部と、を備えることを特徴とするディジタルフィルタ装置。
(付記11)
付記5に記載の高速フーリエ変換装置を備え、前記第2のデータ並べ替え処理部は、前記第3の順序で入力される前記第5の複素数データを、前記入力順序設定に基づいて前記第4の順序に並べ替え、前記第2の変換部は、前記第4の順序に並べ替えられた前記第5の複素数データに対して逆フーリエ変換を行って時間領域の信号に変換することを特徴とする付記10記載のディジタルフィルタ装置。(Appendix 8)
When the plurality of first input data is X (k) (k is an integer of 0 ≦ k ≦ N−1, N is the number of fast Fourier transform or inverse fast Fourier points of N> 0), the second The data rearrangement processing unit inputs X (k) and X (Nk) with respect to an arbitrary k to the butterfly operation processing unit at a time difference within one cycle at most. The fast Fourier transform device according to any one of the above.
(Appendix 9)
A digital filter device including the fast Fourier transform device according to
(Appendix 10)
The fast Fourier transform device according to
Each of the complex numbers constituting the plurality of first complex number data in the frequency domain generated by the Fourier transform of the plurality of first input data which are complex numbers in the time domain inputted by the fast Fourier transform device. A complex conjugate generator for generating second complex number data including a complex number of the complex number, and first, second and third input filter coefficients of the complex number, and first and second frequency domain filter coefficients of the complex number A filter coefficient generation unit for generating the first complex number data, a first filter unit for performing a filtering process on the first complex number data with the first frequency domain filter coefficient and outputting a third complex number data, and the second A second filter unit that performs a filtering process on the complex number data with the second frequency domain filter coefficient and outputs a fourth complex number data; 3 and complex signal, the fourth digital filter device, characterized in that it comprises a complex conjugate synthesis unit which generates a fifth complex number data by synthesizing the complex signal, the.
(Appendix 11)
The fast Fourier transform device according to
(付記12)
前記フーリエ変換及び前記逆フーリエ変換の変換サンプル数をN(NはN>0の整数)とするとき、前記複素共役生成部は、前記第1の複素数データに含まれる周波数番号(N−k)の複素数の共役複素数を前記第2の複素数データとして生成することを特徴とする付記10又は11記載のディジタルフィルタ装置。(Appendix 12)
When the number of transform samples of the Fourier transform and the inverse Fourier transform is N (N is an integer of N> 0), the complex conjugate generator generates a frequency number (N−k) included in the first complex data. 12. The digital filter device according to
(付記13)
前記複素共役合成部は、0≦k≦N−1の範囲の周波数番号kのそれぞれについて、前記第3の複素数データに含まれる周波数番号kの第1の複素数と、前記第4の複素数データに含まれる周波数番号(N−k)の第2の複素数とを、複素加算して前記第5の複素数信号を生成する、ことを特徴とする付記12に記載のディジタルフィルタ装置。(Appendix 13)
The complex conjugate synthesizer adds the first complex number of the frequency number k included in the third complex number data and the fourth complex number data for each frequency number k in the range of 0 ≦ k
(付記14)
前記フィルタ係数生成部は、前記第1の周波数領域フィルタ係数を、前記第1の入力フィルタ係数に前記第2の入力フィルタ係数を複素加算したのち、さらに前記第3の入力フィルタ係数を複素乗算して生成し、前記第2の周波数領域フィルタ係数を、前記第1の入力フィルタ係数から前記第2の入力フィルタ係数を複素減算したのち、さらに前記第3の入力フィルタ係数を複素乗算して生成する、
ことを特徴とする付記10乃至13のいずれかに記載のディジタルフィルタ装置。(Appendix 14)
The filter coefficient generation unit performs complex addition of the first frequency domain filter coefficient and the second input filter coefficient to the first input filter coefficient, and then complex-multiplies the third input filter coefficient. The second frequency domain filter coefficient is generated by complex subtracting the second input filter coefficient from the first input filter coefficient and then complex-multiplying the third input filter coefficient. ,
14. The digital filter device according to any one of
(付記15)
前記第1の周波数領域フィルタ係数は、前記第1の入力データに対する時間領域でのフィルタ処理である時間領域フィルタ処理における、前記複素入力信号の実数部に対するフィルタ係数に対応する、周波数領域での複素数フィルタ係数であり、前記第2の周波数領域フィルタ係数は、前記時間領域フィルタ処理における、前記第1の入力データの虚数部に対するフィルタ係数に対応する、周波数領域での複素数フィルタ係数であり、前記第3の周波数領域フィルタ係数は、前記時間領域フィルタ処理における、前記第1の入力データに対するフィルタ係数に対応する、周波数領域での複素数フィルタ係数であることを特徴とする付記10乃至14のいずれかに記載のディジタルフィルタ装置。
(付記16)
高速フーリエ変換若しくは逆高速フーリエ変換により生成された複数の出力データの、出力順序設定に基づく並べ替え、又は前記高速フーリエ変換若しくは前記逆高速フーリエ変換の複数の入力データの、入力順序設定に基づく並べ替えを行う高速フーリエ変換方法。
(付記17)
高速フーリエ変換装置が備えるコンピュータを、高速フーリエ変換又は逆高速フーリエ変換を行う手段、及び前記高速フーリエ変換若しくは前記逆高速フーリエ変換により生成された複数の出力データの、出力順序設定に基づいて並べ替える並べ替え手段、又は前記高速フーリエ変換若しくは前記逆高速フーリエ変換の複数の入力データの、入力順序設定に基づいて並べ替える並べ替え手段として機能させるための高速フーリエ変換プログラムを格納した非一時的な記憶媒体。(Appendix 15)
The first frequency domain filter coefficient is a complex number in the frequency domain corresponding to the filter coefficient for the real part of the complex input signal in the time domain filter process that is a filter process in the time domain for the first input data. The second frequency domain filter coefficient is a complex filter coefficient in the frequency domain corresponding to the filter coefficient for the imaginary part of the first input data in the time domain filter processing, The frequency
(Appendix 16)
Rearrangement based on output order settings of a plurality of output data generated by fast Fourier transform or inverse fast Fourier transform, or rearrangement based on input order settings of a plurality of input data of the fast Fourier transform or inverse fast Fourier transform Fast Fourier transform method to perform replacement.
(Appendix 17)
The computer included in the fast Fourier transform device is rearranged based on the output order setting of the means for performing the fast Fourier transform or the inverse fast Fourier transform, and the plurality of output data generated by the fast Fourier transform or the inverse fast Fourier transform. Non-temporary memory storing a fast Fourier transform program for functioning as a rearranging means or a rearranging means for rearranging a plurality of input data of the fast Fourier transform or the inverse fast Fourier transform based on an input order setting Medium.
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。 While the present invention has been described with reference to the embodiments, the present invention is not limited to the above embodiments. Various changes that can be understood by those skilled in the art can be made to the configuration and details of the present invention within the scope of the present invention.
この出願は、2013年1月23日に出願された日本出願特願2013−010183を基礎とする優先権を主張し、その開示の全てをここに取り込む。 This application claims the priority on the basis of Japanese application Japanese Patent Application No. 2013-010183 for which it applied on January 23, 2013, and takes in those the indications of all here.
10、30 FFT装置
20、40 IFFT装置
11、12、13、14、15、16、17 データ並べ替え処理部
21、22 バタフライ演算処理部
31 ひねり乗算処理部
41、43 読み出しアドレス生成部
42、44 書き込みアドレス生成部
51、55 読み出しアドレス
52、56 出力順序設定
53、57 書き込みアドレス
54、58 入力順序設定
60、70、80 高速フーリエ変換装置
61、72 フーリエ変換部
62、71、83 データ並べ替え処理部
81、82 処理部
100、200、300 データ並べ替え処理部
101a〜101h データ記憶位置
102a〜102h データ読み出し位置
201a〜201h データ記憶位置
301a〜301h データ記憶位置
400 ディジタルフィルタ回路
413 FFT回路
414 IFFT回路
415 複素共役生成回路
416 複素共役合成回路
421 フィルタ回路
422 フィルタ回路
431〜436 複素数信号
441 フィルタ係数生成回路
445、446 複素数信号
500 データフロー
501 データ並べ替え処理
502、503 バタフライ演算処理
504 ひねり演算処理
505 部分データフロー
600 FFT装置
601 FFT部
602 データ並べ替え処理部10, 30
Claims (4)
前記第1の順序で出力された前記複数の第1の出力データを、出力順序設定に基づいて第2の順序に並べ替える第1のデータ並べ替え処理手段と、
を備える高速フーリエ変換装置と、
前記高速フーリエ変換装置により、入力された時間領域の複素数である複数の第1の入力データがフーリエ変換され生成された周波数領域の複数の第1の複素数データを構成する、すべての複素数のそれぞれの共役複素数を含む第2の複素数データを生成する複素共役生成手段と、
入力された複素数の第1、第2及び第3の入力フィルタ係数から、複素数の第1及び第2の周波数領域フィルタ係数を生成するフィルタ係数生成手段と、
前記第1の複素数データに対して前記第1の周波数領域フィルタ係数によりフィルタ処理を行い、第3の複素数データを出力する第1のフィルタ手段と、
前記第2の複素数データに対して前記第2の周波数領域フィルタ係数によりフィルタ処理を行い、第4の複素数データを出力する第2のフィルタ手段と、
前記第3の複素数データと、前記第4の複素数データとを合成して第5の複素数データを生成する複素共役合成手段と、
を備えることを特徴とするディジタルフィルタ装置。 First transforming means for performing a fast Fourier transform or an inverse fast Fourier transform to generate a plurality of first output data and outputting the first output data in a first order;
The first output data of said plurality of output in the first order, the first data reordering means for reordering the second order based on the output order setting,
A fast Fourier transform device comprising:
The plurality of first input data that are complex numbers in the time domain that are input by the fast Fourier transform device constitute a plurality of first complex data in the frequency domain that are generated by Fourier transform. Complex conjugate generation means for generating second complex number data including conjugate complex numbers;
Filter coefficient generating means for generating complex first and second frequency domain filter coefficients from the input complex first, second and third input filter coefficients;
First filtering means for performing filtering on the first complex number data with the first frequency domain filter coefficient and outputting third complex number data;
Second filtering means for performing filtering on the second complex number data with the second frequency domain filter coefficient and outputting fourth complex number data;
Complex conjugate combining means for combining the third complex number data and the fourth complex number data to generate fifth complex number data;
A digital filter device comprising:
前記第1のデータ並べ替え処理手段は、前記バタフライ演算処理後の前記複数の第1の出力データを前記第2の順序に並べ替える
ことを特徴とする請求項1に記載のディジタルフィルタ装置。 The first conversion means includes butterfly calculation processing means for performing butterfly calculation processing and outputting the plurality of first output data in the first order,
2. The digital filter device according to claim 1, wherein the first data rearrangement processing unit rearranges the plurality of first output data after the butterfly operation processing in the second order.
前記複数の第1の出力データを記憶する第1の記憶手段と、前記出力順序設定に基づいて、前記第1の記憶手段からの前記複数の第1の出力データの読み出しアドレスを生成する読み出しアドレス生成手段を備え、
前記複数の第1の出力データを前記第1の順序で記憶し、前記第2の順序で読み出すこと
を特徴とする請求項1又は2に記載のディジタルフィルタ装置。 The first data rearrangement processing means includes:
First storage means for storing the plurality of first output data, and a read address for generating a read address of the plurality of first output data from the first storage means based on the output order setting A generating means,
3. The digital filter device according to claim 1, wherein the plurality of first output data is stored in the first order and is read out in the second order.
前記第4の順序に並べ替えられた前記複数の第2の入力データに対して、高速フーリエ変換又は逆高速フーリエ変換を行う第2の変換手段と、
を備える高速フーリエ変換装置を備え、
前記第2のデータ並べ替え処理手段は、前記第3の順序で入力される前記第5の複素数データを、前記入力順序設定に基づいて前記第4の順序に並べ替え、
前記第2の変換手段は、前記第4の順序に並べ替えられた前記第5の複素数データに対して逆フーリエ変換を行って時間領域の信号に変換する
ことを特徴とする請求項1記載のディジタルフィルタ装置。 A second data rearrangement processing unit that rearranges the plurality of second input data input in the third order into the fourth order based on the input order setting;
Second transform means for performing fast Fourier transform or inverse fast Fourier transform on the plurality of second input data rearranged in the fourth order;
A fast Fourier transform device comprising
The second data rearrangement processing unit rearranges the fifth complex number data input in the third order into the fourth order based on the input order setting,
The second conversion means performs inverse Fourier transform on the fifth complex number data rearranged in the fourth order to convert it into a time domain signal.
The digital filter device according to claim 1 .
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013010183 | 2013-01-23 | ||
JP2013010183 | 2013-01-23 | ||
PCT/JP2014/000291 WO2014115540A1 (en) | 2013-01-23 | 2014-01-22 | Fast fourier transform device, fast fourier transform method, and storage medium for fast fourier transform program |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2014115540A1 JPWO2014115540A1 (en) | 2017-01-26 |
JP6358096B2 true JP6358096B2 (en) | 2018-07-18 |
Family
ID=51227332
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014558499A Active JP6358096B2 (en) | 2013-01-23 | 2014-01-22 | Fast Fourier transform apparatus, fast Fourier transform method, and fast Fourier transform program |
Country Status (3)
Country | Link |
---|---|
US (1) | US9785614B2 (en) |
JP (1) | JP6358096B2 (en) |
WO (1) | WO2014115540A1 (en) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6451647B2 (en) * | 2013-12-13 | 2019-01-16 | 日本電気株式会社 | Fast Fourier transform apparatus, fast Fourier transform method, and fast Fourier transform program |
EP3202080A1 (en) * | 2014-09-30 | 2017-08-09 | NEC Europe Ltd. | Method and system for at least partially updating data encrypted with an all-or-nothing encryption scheme |
JP6930607B2 (en) * | 2017-12-27 | 2021-09-01 | 日本電気株式会社 | Signal processing equipment, methods, programs and recording media |
JP6977883B2 (en) * | 2018-05-22 | 2021-12-08 | 日本電気株式会社 | Signal processing equipment, methods, programs |
WO2020195239A1 (en) * | 2019-03-26 | 2020-10-01 | 日本電気株式会社 | Digital filter device, operation method for digital filter device, and non-transitory computer readable medium sotring program |
WO2021193947A1 (en) * | 2020-03-26 | 2021-09-30 | 日本電気株式会社 | Digital filter device |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0431965A (en) * | 1990-05-28 | 1992-02-04 | Nec Corp | Numerical arithmetic unit |
US5293330A (en) * | 1991-11-08 | 1994-03-08 | Communications Satellite Corporation | Pipeline processor for mixed-size FFTs |
US5371696A (en) * | 1992-12-24 | 1994-12-06 | Sundararajan; Duraisamy | Computational structures for the fast Fourier transform analyzers |
JPH08137832A (en) | 1994-11-07 | 1996-05-31 | Fujitsu Ltd | Butterfly arithmetic circuit and fast fourier transforming device using same |
JP2001056806A (en) | 1999-06-10 | 2001-02-27 | Matsushita Electric Ind Co Ltd | Fast fourier transform device |
JP3917522B2 (en) | 2001-02-28 | 2007-05-23 | 富士通株式会社 | Fourier transform device |
JP5327432B2 (en) | 2008-08-11 | 2013-10-30 | セイコーエプソン株式会社 | Signal processor and semiconductor device |
JP5549442B2 (en) | 2010-07-14 | 2014-07-16 | 三菱電機株式会社 | FFT arithmetic unit |
-
2014
- 2014-01-22 WO PCT/JP2014/000291 patent/WO2014115540A1/en active Application Filing
- 2014-01-22 US US14/761,995 patent/US9785614B2/en active Active
- 2014-01-22 JP JP2014558499A patent/JP6358096B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JPWO2014115540A1 (en) | 2017-01-26 |
US20150363360A1 (en) | 2015-12-17 |
US9785614B2 (en) | 2017-10-10 |
WO2014115540A1 (en) | 2014-07-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6358096B2 (en) | Fast Fourier transform apparatus, fast Fourier transform method, and fast Fourier transform program | |
JP6288089B2 (en) | Digital filter device, digital filter processing method, and storage medium storing digital filter program | |
JP6256348B2 (en) | Fast Fourier transform circuit, fast Fourier transform processing method, and fast Fourier transform processing program | |
JP2002351858A (en) | Processing device | |
JP6489021B2 (en) | Digital filter device, digital filter processing method, and digital filter program | |
JP6451647B2 (en) | Fast Fourier transform apparatus, fast Fourier transform method, and fast Fourier transform program | |
KR102376492B1 (en) | Fast Fourier transform device and method using real valued as input | |
US11604852B2 (en) | Signal processing apparatus, method, program, and recording medium | |
WO2021193947A1 (en) | Digital filter device | |
JPWO2013125173A1 (en) | Digital filter circuit, digital filter processing method, and digital filter processing program | |
JP6436087B2 (en) | Digital filter device, digital filter processing method and program | |
JP6943283B2 (en) | Fast Fourier Transform Equipment, Data Sorting Equipment, Fast Fourier Transform Processing Methods and Programs | |
US12019700B2 (en) | Signal processing apparatus, method, program, and recording medium | |
JP2022152001A (en) | High-speed fourier transformation device and digital filter device | |
JP6992745B2 (en) | Digital filter device, digital filter processing method and digital filter processing program | |
JP2023131901A (en) | Fast Fourier transform device, digital filter device, fast Fourier transform method, and program | |
JPWO2021193947A5 (en) | Fast Fourier Transform Apparatus, Digital Filter Apparatus, and Fast Fourier Transform Method | |
JP5493646B2 (en) | Discrete Fourier transform apparatus and discrete Fourier transform / discrete inverse Fourier transform method | |
JP2024032487A (en) | Signal analyzing apparatus, spectrogram generating method and program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20161214 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20170704 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170829 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20180130 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180423 |
|
A911 | Transfer of reconsideration by examiner before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20180501 |
|
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: 20180522 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180604 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6358096 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |