JP4791172B2 - FFT operation circuit - Google Patents

FFT operation circuit Download PDF

Info

Publication number
JP4791172B2
JP4791172B2 JP2005366731A JP2005366731A JP4791172B2 JP 4791172 B2 JP4791172 B2 JP 4791172B2 JP 2005366731 A JP2005366731 A JP 2005366731A JP 2005366731 A JP2005366731 A JP 2005366731A JP 4791172 B2 JP4791172 B2 JP 4791172B2
Authority
JP
Japan
Prior art keywords
unit
output
complex
input
fft
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
Application number
JP2005366731A
Other languages
Japanese (ja)
Other versions
JP2007172157A (en
Inventor
善生 和田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Priority to JP2005366731A priority Critical patent/JP4791172B2/en
Priority to KR1020060101573A priority patent/KR100878765B1/en
Priority to US11/641,864 priority patent/US7979485B2/en
Publication of JP2007172157A publication Critical patent/JP2007172157A/en
Application granted granted Critical
Publication of JP4791172B2 publication Critical patent/JP4791172B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • General Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Theoretical Computer Science (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)

Description

本発明は、データ通信や画像・音声信号のデジタル信号処理に用いられるFFT(Fast Fourier Transform:高速フーリエ変換)演算回路に関する。   The present invention relates to an FFT (Fast Fourier Transform) arithmetic circuit used for data communication and digital signal processing of image / audio signals.

FFTは、時間領域における一連の信号データに潜む周波数成分を抽出するのに用いられる手法であり、多数のデータを短時間で処理できるという優れた特徴を有する。また、FFTをハードウェアにより実現する際には、面積の小さい回路が必要とされる。
一方、携帯電話などの無線通信の規格において、様々なCellular方式や無線LAN方式が用いられている。一般の利用者としては、これらの規格の利点を利用して、効率的な無線通信を行えることを望んでいる。
FFT is a technique used to extract frequency components lurking in a series of signal data in the time domain, and has an excellent feature that a large number of data can be processed in a short time. Further, when the FFT is realized by hardware, a circuit having a small area is required.
On the other hand, various cellular systems and wireless LAN systems are used in wireless communication standards such as cellular phones. As a general user, it is hoped that efficient wireless communication can be performed using the advantages of these standards.

例えば、データ通信の分野においては、FFTのデータ長(FFT長)が用途により異なり、一例として、無線LANの規格の1つであるIEEE802.11aにてデータ長64であり、4G-Mobileの規格の候補の1つが1024である。
そのため、1つの携帯端末に複数の機能を持たせる場合、外部からの設定により、処理するデータ長に対応して上述した2つの演算を切り替え、1つのFFT回路で実現することが必要となってくる。すなわち、複数の規格を1つのハードウェアにより構成するMulti−Mode端末が最近用いられているが、複数のチップセットを用いているため、実装面積を無駄とし、ハードウェアが大型化してしまう欠点がある。したがって、1つのチップセットによって、複数の規格に対応するFFT演算回路が必要となる。
For example, in the field of data communication, the data length of FFT (FFT length) varies depending on the application. As an example, IEEE802.11a, which is one of the wireless LAN standards, has a data length of 64, which is a 4G-Mobile standard. One of the candidates is 1024.
Therefore, when one mobile terminal is provided with a plurality of functions, it is necessary to switch between the two operations described above corresponding to the data length to be processed by an external setting, and to realize it with one FFT circuit. come. That is, although a multi-mode terminal that configures a plurality of standards by a single piece of hardware has recently been used, since a plurality of chipsets are used, there is a disadvantage that the mounting area is wasted and the hardware becomes large. is there. Therefore, an FFT operation circuit corresponding to a plurality of standards is required by one chip set.

上述した課題に対して、特許文献1に記載されているFFT専用プロセッサは、FFT演算を行う処理回路に、FFT演算を行うFFT長として複数の値に対応させるため、複数の基数に対応した複数の演算回路が設けられており、FFT演算の各ステージにおける基数に対応した演算回路を選択して使用する構成となっている。
特開平08−0300584号公報
In response to the above-described problem, the FFT dedicated processor described in Patent Document 1 causes a processing circuit that performs an FFT operation to correspond to a plurality of values as an FFT length that performs the FFT operation. The arithmetic circuit is provided, and the arithmetic circuit corresponding to the radix at each stage of the FFT operation is selected and used.
Japanese Patent Laid-Open No. 08-0300584

しかしながら、上記特許文献1に示すFFT専用プロセッサは、複数のFFT長の種類に対応させるため、基数に対応した複数の演算回路を設けているため、回路規模が大きくなり、消費電力が増大するという欠点がある。
本発明は、このような事情に鑑みてなされたもので、従来のように、基数に対応した複数の演算回路を設けず、複数のFFT長に対応することができ、回路数を削減し、消費電力を低下させることができるFFT演算回路を提供することを目的とする。
However, the FFT-dedicated processor shown in Patent Document 1 is provided with a plurality of arithmetic circuits corresponding to the radix in order to correspond to a plurality of types of FFT lengths, so that the circuit scale increases and the power consumption increases. There are drawbacks.
The present invention has been made in view of such circumstances, and unlike the prior art, it does not include a plurality of arithmetic circuits corresponding to a radix, can correspond to a plurality of FFT lengths, reduces the number of circuits, An object of the present invention is to provide an FFT operation circuit capable of reducing power consumption.

本発明のFFT演算回路は、複数の直列に接続されたバタフライ演算部(例えば、実施形態におけるバタフライ演算器11〜15)からなり、演算対象のFFT長を任意に選択して設定するFFT演算器であり、前記バタフライ演算部が、入力される信号を一旦格納する一時記憶部を備え、バタフライ演算において複素乗算及び複素加減算を行う順番に、順次信号を読み出す信号順変換部(例えば、実施形態における入力アドレス生成部23,25と、セレクタ24,28と記憶部22から構成されている)と、FFT長及びバタフライ演算部の段数に対応して、各信号に複素乗算する複素係数が記憶された複素係数記憶部(例えば、実施形態におけるFFT回転因子テーブル)と、読み出された前記信号毎に、前記複素係数記憶部から対応する複素係数を順次読み出して複素乗算する複素乗算部と、該複素乗算部から出力される、複素係数が複素乗算された信号に対し、順次複素加減算を行う複素加減算部とを有することを特徴とする。   The FFT operation circuit of the present invention includes a plurality of butterfly operation units connected in series (for example, butterfly operation units 11 to 15 in the embodiment), and an FFT operation unit that arbitrarily selects and sets the FFT length to be calculated. The butterfly operation unit includes a temporary storage unit that temporarily stores an input signal, and sequentially reads out signals in the order in which complex multiplication and complex addition / subtraction are performed in the butterfly operation (for example, in the embodiment) (Composed of input address generation units 23 and 25, selectors 24 and 28, and storage unit 22), and complex coefficients for complex multiplication of each signal corresponding to the FFT length and the number of stages of the butterfly operation unit are stored. Corresponding from the complex coefficient storage unit (for example, FFT twiddle factor table in the embodiment) and the read out signal for each signal A complex multiplication unit that sequentially reads out complex coefficients and performs complex multiplication; and a complex addition / subtraction unit that sequentially performs complex addition / subtraction on signals obtained by complex multiplication of the complex coefficients output from the complex multiplication unit. To do.

上述した構成により、本発明のFFT演算回路は、複数のバタフライ演算部が直列に接続されて形成されているため、FFT長に応じたバタフライ演算の回数に対応したバタフライ演算部から出力を選択することにより、複数のFFT長の種類に対応した演算が行うことができる。   With the configuration described above, the FFT operation circuit of the present invention is formed by connecting a plurality of butterfly operation units in series, and therefore selects an output from the butterfly operation unit corresponding to the number of butterfly operations corresponding to the FFT length. Thus, an operation corresponding to a plurality of types of FFT lengths can be performed.

以上説明したように、発明によれば、従来のように、基数に対応した複数の演算回路を設けずに、複数のFFT長に対応したFFT演算を行うことができるため、従来例のように、基数に対応する複数の演算回路を設ける必要がなく、従来例に比較して回路規模を小さくすることができ、消費電力を削減することが可能となる効果が得られる。   As described above, according to the invention, it is possible to perform an FFT operation corresponding to a plurality of FFT lengths without providing a plurality of arithmetic circuits corresponding to a radix as in the prior art. There is no need to provide a plurality of arithmetic circuits corresponding to the radix, and the circuit scale can be reduced as compared with the conventional example, so that the effect of reducing power consumption can be obtained.

以下、本発明の一実施形態によるFFT演算回路を図面を参照して説明する。図1は同実施形態によるFFT演算回路1の構成例を示すブロック図である。
本実施形態においては、基数4を用いたバタフライ演算を例にとり説明するが、基数を2のn乗とした2,4,8,16,…としても同様に回路を構成することができる。また、外部から入力されるFFT演算の対象としてのサンプル(チャンネル)数により、使用されるバタフライ演算器の数が変化する。FFT演算回路1は、基数4にて、FFT長が64,256及び1024各々に対するFFT演算に対応する構成である。
すなわち、本実施形態のFFT演算回路1は、バタフライ演算器11、12,13,14及び15各々がそれぞれの出力端子と次段の入力端子とを接続した直列接続となっている。また、本実施形態のFFT演算回路1は、FFT長が64,256及び1024に対応した構成のため、上記バタフライ演算器13,14及び15のいずれかの出力を、FFT長の情報により選択して、選択された演算結果をFFT演算結果として出力する構成となっている。
Hereinafter, an FFT operation circuit according to an embodiment of the present invention will be described with reference to the drawings. FIG. 1 is a block diagram showing a configuration example of an FFT operation circuit 1 according to the embodiment.
In the present embodiment, a butterfly operation using a radix 4 will be described as an example, but a circuit can be similarly configured even with 2, 4, 8, 16,. In addition, the number of butterfly calculators to be used varies depending on the number of samples (channels) as an FFT calculation target input from the outside. The FFT operation circuit 1 has a configuration corresponding to the FFT operation for radix 4 and FFT lengths of 64, 256, and 1024, respectively.
That is, in the FFT operation circuit 1 of the present embodiment, the butterfly operation units 11, 12, 13, 14, and 15 are connected in series with each output terminal connected to the input terminal of the next stage. In addition, since the FFT operation circuit 1 of the present embodiment has a configuration corresponding to FFT lengths of 64, 256, and 1024, the output of any of the butterfly calculators 13, 14, and 15 is selected based on the information of the FFT length. Thus, the selected calculation result is output as the FFT calculation result.

本実施形態において、例えば、FFT長が64(4)の場合、4の3乗のため3段目のバタフライ演算器13からFFTの演算結果が出力され、FFT長が256(4)の場合、4の4乗のため4段目のバタフライ演算器14からFFTの演算結果が出力され、FFT長が1024(4)の場合、4の5乗のため5段目のバタフライ演算器15から演算結果が出力される。また、FFT長が256の際、バタフライ演算器13からは中間データとしてのバタフライ演算結果がバタフライ演算器14に出力され、すなわち、FFT長に必要なバタフライ演算器の前段までのバタフライ演算器からは、計算途中のFFT長と同数の中間データが出力される。 In the present embodiment, for example, when the FFT length is 64 (4 3 ), the FFT calculation result is output from the third stage butterfly calculator 13 because of the cube of 4, and the FFT length is 256 (4 4 ). In this case, because of the fourth power of 4, the FFT calculation result is output from the fourth stage butterfly calculator 14, and when the FFT length is 1024 (4 5 ), the fifth stage butterfly calculator 15 is set to the fourth power of 4. The calculation result is output from. When the FFT length is 256, the butterfly calculator 13 outputs the butterfly calculation result as intermediate data to the butterfly calculator 14, that is, from the butterfly calculator up to the preceding stage of the butterfly calculator required for the FFT length. The same number of intermediate data as the FFT length being calculated is output.

バタフライ演算器(11〜15)各々は、後に詳細に述べるが、外部から入力されるFFT長を示すFFT長情報により、外部からまたは前段から入力される信号各々(入力信号)に複素乗算する複素係数のデータ(以下、係数データまたは係数とする)を変化させ、FFT長に対応したバタフライ演算に必要な段の前段まで、上記中間データに対応したバタフライ演算を行い、FFT長に対応したバタフライ演算に必要な段のバタフライ演算器から最終的な演算結果が出力されるように、動作が設定される。ここでの、信号とは、初段のバタフライ演算器11に入力されるサンプル、または後段のバタフライ演算器12〜15に入力される前段からの中間データの双方を含むものとする。例えば、FFT長が256の場合、バタフライ演算器11〜13までは、中間データ生成としての演算を行い、バタフライ演算器14がバタフライ演算器13から出力される中間データから最終的なFFT演算結果を出力信号として出力する。
セレクタ16は、各バタフライ演算器からの出力が入力されており、上記FFT長及びバタフライ演算器の段数(何番目のバタフライ演算器であるか)により、FFT演算結果が出力される段のバタフライ演算器からの出力を選択して、出力信号として出力する。
As will be described in detail later, each of the butterfly calculators (11 to 15) is configured to perform complex multiplication on each signal (input signal) input from the outside or from the previous stage by FFT length information indicating the FFT length input from the outside. Change the coefficient data (hereinafter referred to as coefficient data or coefficient), perform the butterfly operation corresponding to the intermediate data up to the stage required for the butterfly operation corresponding to the FFT length, and perform the butterfly operation corresponding to the FFT length The operation is set so that the final operation result is output from the butterfly operation unit at the stage required for the operation. Here, the signal includes both a sample input to the butterfly calculator 11 at the first stage and intermediate data from the preceding stage input to the butterfly calculators 12 to 15 at the subsequent stage. For example, when the FFT length is 256, the butterfly calculators 11 to 13 perform calculation as intermediate data generation, and the butterfly calculator 14 obtains the final FFT calculation result from the intermediate data output from the butterfly calculator 13. Output as an output signal.
The selector 16 receives the output from each butterfly computing unit, and performs the butterfly computation of the stage where the FFT computation result is output according to the FFT length and the number of stages of the butterfly computing unit (how many butterfly computing units are). The output from the device is selected and output as an output signal.

次に、図2を参照して、図1に示すバタフライ演算器11の説明を行う。図2は、本実施形態におけるFFT演算回路1を構成するバタフライ演算器を代表して、バタフライ演算器11の構成例を説明する。他のバタフライ演算器12,13,14及び15各々の構成は、バタフライ演算器11と同様のバタフライ演算を行う構成となっている。各演算器が異なる点は、次段に対して出力する中間データを演算する際、入力されるデータに対して複素乗算する係数が異なることと、この係数が複素乗算された結果を加減演算する信号(サンプルまたは中間データ)の組合せが異なることにある。
また、バタフライ演算器14はFFT長が256個と1024個の場合のみ、バタフライ演算を行うため、FFT長が64の場合のバタフライ演算に対応する構成を必要とせず、バタフライ演算器15はFFT長が1024個の場合のみ、バタフライ演算を行うため、FFT長が64及び256の場合のバタフライ演算に対応する構成を必要としない。このため、バタフライ演算器14及び15は、バタフライ演算器11〜13と同様の回路構成でも、また必要とする回路のみで構成しても、どちらでも良い。
Next, the butterfly calculator 11 shown in FIG. 1 will be described with reference to FIG. FIG. 2 illustrates a configuration example of the butterfly computing unit 11 on behalf of the butterfly computing unit constituting the FFT computing circuit 1 in the present embodiment. Each of the other butterfly calculators 12, 13, 14, and 15 is configured to perform the same butterfly calculation as the butterfly calculator 11. The difference between each arithmetic unit is that when calculating intermediate data to be output to the next stage, the coefficient for complex multiplication of the input data is different, and the result of complex multiplication of this coefficient is added or subtracted. The combination of signals (samples or intermediate data) is different.
Further, since the butterfly calculator 14 performs the butterfly calculation only when the FFT length is 256 and 1024, it does not require a configuration corresponding to the butterfly calculation when the FFT length is 64, and the butterfly calculator 15 has the FFT length. However, since the butterfly operation is performed only when the number is 1024, a configuration corresponding to the butterfly operation when the FFT length is 64 and 256 is not required. For this reason, the butterfly computing units 14 and 15 may be either the same circuit configuration as the butterfly computing units 11 to 13 or only a necessary circuit.

記憶部22には、外部から時系列に入力される入力信号x(k)、すなわち{x(0),x(1),x(2),…,x(k-1),x(k)}の信号列が、セレクタ24から出力される入力アドレス(下記に説明)に従い、対応する入力アドレス、例えば初段のバタフライ演算器11においては連続したアドレスに順次書き込み、次段以降のバタフライ演算器12〜15においては前段の出力アドレスと同一のアドレスに入力される。
入力アドレス生成部23は、記憶部22に対して、信号を順次書き込むアドレスを生成する。このアドレス生成部23は、FFT長64に対応する入力アドレスを生成する入力アドレス生成64部23Aと,FFT長256に対応する入力アドレスを生成する入力アドレス生成部256部23Bと、FFT長1024に対応する入力アドレスを生成する入力アドレス生成1024部23Cとから構成されている。
セレクタ24は、入力アドレス生成部23より入力される入力アドレスから、入力されるFFT長情報に従い、FFT長に対応する入力アドレスを選択し、入力アドレスとして、記憶部22へ出力する。
In the storage unit 22, an input signal x (k) input from the outside in time series, that is, {x (0), x (1), x (2),..., X (k−1), x (k )} In accordance with the input address output from the selector 24 (described below), the corresponding input address, for example, the first stage butterfly calculator 11 sequentially writes to successive addresses, and the subsequent stage butterfly calculators. In 12 to 15, it is input to the same address as the output address of the previous stage.
The input address generation unit 23 generates addresses for sequentially writing signals to the storage unit 22. The address generator 23 includes an input address generator 64A for generating an input address corresponding to the FFT length 64, an input address generator 256B for generating an input address corresponding to the FFT length 256, and an FFT length 1024. The input address generation 1024 unit 23C generates a corresponding input address.
The selector 24 selects an input address corresponding to the FFT length from the input address input from the input address generation unit 23 according to the input FFT length information, and outputs the input address to the storage unit 22 as an input address.

上記記憶部22は、読み出しと書き込みとが同一のタイミングで行える、例えばデュアルポートRAM(ランダムアクセスメモリ)で構成され、かつ記憶領域が2つに分割され、ダブルバッファ構造として入力信号x(k)(すなわち入力される信号)を書き込むための記憶領域が第1及び第2の記憶領域として2つある。したがって、本実施形態において、記憶部22は、1024のFFT長に対応した構成となっているため、2048個の信号に対応する容量を有している。   The storage unit 22 is configured by, for example, a dual port RAM (random access memory) in which reading and writing can be performed at the same timing, and the storage area is divided into two, and an input signal x (k) as a double buffer structure. There are two storage areas for writing (that is, an input signal) as first and second storage areas. Therefore, in the present embodiment, the storage unit 22 has a configuration corresponding to an FFT length of 1024, and thus has a capacity corresponding to 2048 signals.

また、記憶部22は、例えば、図3に示すように、上述したアドレス数が2048のメモリ空間を有している。このメモリ空間におけるメモリマップとしては、FFT長が64の場合、使用するアドレス空間がアドレス数が64のため、書き込み及び読み出しを交互に交代させるアドレス空間としてはアドレス数が128となる。記憶部22においては、この128を示すアドレスの最上位ビットが「0」のアドレス空間(第1の記憶領域)と、最上位ビットが「1」のアドレス空間(第2の記憶領域)とで、FFT長64に対する2つのアドレス空間を構成することになる。   Further, for example, as shown in FIG. 3, the storage unit 22 has a memory space in which the number of addresses described above is 2048. As the memory map in this memory space, when the FFT length is 64, the address space to be used is 64, so the address space for alternating the writing and reading is 128. In the storage unit 22, an address space (first storage area) in which the most significant bit of the address indicating 128 is “0” and an address space (second storage area) in which the most significant bit is “1”. , Two address spaces for the FFT length 64 are formed.

また、同様に、記憶部22において、このメモリ空間におけるメモリマップとしては、FFT長が256の場合、使用するアドレス空間がアドレス数が256のため、書き込み及び読み出しを交互に交代させる(切り替える)アドレス空間としてはアドレス数が512となる。記憶部22においては、この512を示すアドレスの最上位ビットが「0」のアドレス空間(第1の記憶領域)と、最上位ビットが「1」のアドレス空間(第2の記憶領域)とで、FFT長256に対する2つのアドレス空間を構成することになる。   Similarly, in the memory unit 22, as the memory map in this memory space, when the FFT length is 256, the address space to be used is 256 addresses, so that the address for alternately switching (switching) writing and reading is used. The space has 512 addresses. In the storage unit 22, an address space (first storage area) in which the most significant bit of the address indicating 512 is “0” and an address space (second storage area) in which the most significant bit is “1”. , Two address spaces for the FFT length 256 are configured.

また、同様に、記憶部22において、このメモリ空間におけるメモリマップとしては、FFT長が1024の場合、使用するアドレス空間がアドレス数が1024のため、書き込み及び読み出しを交互に交代させるアドレス空間としてはアドレス数が2048となる。記憶部22においては、この2048を示すアドレスの最上位ビットが「0」のアドレス空間(第1の記憶領域)と、最上位ビットが「1」のアドレス空間(第2の記憶領域)とで、FFT長1024に対する2つのアドレス空間を構成することになる。
アドレス生成部23は、入力するFFT長に対応した各入力アドレス生成部が、上述した記憶部22のアドレス空間に対応する記憶部22のアドレスを生成する。
Similarly, in the memory unit 22, in the memory map in this memory space, when the FFT length is 1024, the address space to be used is 1024 addresses. The number of addresses is 2048. In the storage unit 22, an address space (first storage area) in which the most significant bit of the address indicating 2048 is “0” and an address space (second storage area) in which the most significant bit is “1”. , Two address spaces for the FFT length 1024 are formed.
In the address generation unit 23, each input address generation unit corresponding to the input FFT length generates an address of the storage unit 22 corresponding to the address space of the storage unit 22 described above.

出力アドレス生成部25は、複素複素乗算部26が記憶部22から、信号を順次読み出すアドレスを生成する。この出力アドレス生成部25は、FFT長64に対応する出力アドレスを生成する出力アドレス生成64部25Aと,FFT長256に対応する出力アドレスを生成する出力アドレス生成部256部25Bと、FFT長1024に対応する出力アドレスを生成する出力アドレス生成1024部25Cとから構成されている。
また、出力アドレス生成部25は、上述したFFT長及び、各バタフライ演算器の上記段数により、読み出すための出力アドレスが異なるため、それぞれの場合に対応した出力アドレスを生成する。
The output address generation unit 25 generates addresses at which the complex complex multiplication unit 26 sequentially reads signals from the storage unit 22. The output address generation unit 25 includes an output address generation unit 64A that generates an output address corresponding to the FFT length 64, an output address generation unit 256B that generates an output address corresponding to the FFT length 256, and an FFT length 1024. Output address generation 1024 unit 25C for generating an output address corresponding to.
The output address generation unit 25 generates an output address corresponding to each case because the output address to be read differs depending on the FFT length and the number of stages of each butterfly calculator.

上記出力アドレス生成64部25Aは、FFT長が64個の場合において、後述ように複素加減算部27において、複素加減算部27において実行される複素加減算を行う組み合わせの順に、信号のデータが記憶部22から読み出されるように、記憶されている信号のデータを読み出す順に、対応するアドレスとして出力アドレスを順次生成する。すなわち、入力アドレス生成部23,出力アドレス生成部25及び記憶部22は、信号順変換部を構成し、信号が入力された順番のアドレスに対し、後に複素加減算部27にて加減演算を行う信号の組合せ(基数4なので組合せの信号または中間データは4個)が連続して複素複素乗算部26に出力されるように読み出す出力アドレスに変換する。
また、同様に、出力アドレス生成256部25B及び出力アドレス1024部25C各々は、FFT長が256個及び1024個それぞれの場合において、後述ように複素加減算部27において、複素加減算部27において実行される複素加減算を行う信号の組み合わせの順に、信号のデータが記憶部22から読み出されるように、記憶されている信号のデータを読み出す順に、対応するアドレスとして出力アドレスを順次生成する。
When the FFT length is 64, the output address generation 64 unit 25A stores the signal data in the order of the combination in which the complex addition / subtraction unit 27 performs complex addition / subtraction in the complex addition / subtraction unit 27 as described later. In order to read out stored signal data, output addresses are sequentially generated as corresponding addresses. That is, the input address generation unit 23, the output address generation unit 25, and the storage unit 22 constitute a signal order conversion unit, and a signal that is added / subtracted later by the complex addition / subtraction unit 27 with respect to the addresses in the order in which the signals are input. Are converted into output addresses to be read out so that the combination signals or intermediate data are 4 in a radix 4 series are continuously output to the complex complex multiplier 26.
Similarly, the output address generation unit 256B and the output address 1024 unit 25C are executed in the complex addition / subtraction unit 27 in the complex addition / subtraction unit 27 as will be described later when the FFT length is 256 and 1024, respectively. The output addresses are sequentially generated as the corresponding addresses in the order of reading out the stored signal data so that the signal data is read from the storage unit 22 in the order of the combination of signals to be subjected to complex addition / subtraction.

例えば、基数4で、FFT長が256の場合を例にとり説明すると、本実施形態における(FFT演算のアルゴリズによって以下の式は異なる)基数4のバタフライ演算が、信号のデータとして、x(k)が0≦k≦255の範囲で入力されてくる。
DFT(離散フーリエ変換)として、
X(n)=Σx(k)W nk …(1)
とする(1/Nを省略)。
上述した式において、信号番号nと周波数を示すインデックスkとは以下のように示される。
n=64n+16n+4n+n;(n,n,n,n=0,1,2,3)
k=64k+16k+4k+k;(k,k,k,k=0,1,2,3)…(2)
For example, the case where the radix is 4 and the FFT length is 256 will be described as an example. The radix 4 butterfly operation in the present embodiment (the following equation is different depending on the algorithm of the FFT operation) is x (k) as signal data. Is input in the range of 0 ≦ k ≦ 255.
As DFT (Discrete Fourier Transform)
X (n) = Σx (k) W N nk (1)
(1 / N is omitted).
In the above equation, the signal number n and the index k indicating the frequency are expressed as follows.
n = 64n 3 + 16n 2 + 4n 1 + n 0 ; (n 0 , n 1 , n 2 , n 3 = 0, 1 , 2 , 3)
k = 64 k 3 +16 k 2 +4 k 1 + k 0 ; (k 0 , k 1 , k 2 , k 3 = 0 , 1 , 2 , 3) (2)

DFTは、
X(n,n,n,n
=ΣΣΣΣx(k,k,k,k)W n(64k3+16k2+4k1+k0) …(3)
と示される。このk,k,k,kの各々和において、第1段目のバタフライ演算器11にてkについての和を求め、第2段目のバタフライ演算器12にてkについての和を求め、第3段目のバタフライ演算器13にてkについての和を求め、第4段目のバタフライ演算器14にてkについての和を求めることとなる。
この場合には、上記(3)式が以下の(4)〜(7)を順番に、対応する各バタフライ演算器において演算することにより、バタフライ演算の最終結果であるDFTとしてX(n,n,n,n)が求められる。
DFT
X (n 3 , n 2 , n 1 , n 0 )
= ΣΣΣΣx (k 3 , k 2 , k 1 , k 0 ) W N n (64 k 3 +16 k 2 +4 k 1 + k 0 ) (3)
It is indicated. For each sum of k 3 , k 2 , k 1 , k 0 , the first stage butterfly calculator 11 calculates the sum for k 3 , and the second stage butterfly calculator 12 calculates k 2 . It calculates the sum of, calculates the sum of k 1 in the third stage of the butterfly operation device 13, so that the the sum of k 0 in the fourth stage of the butterfly operation device 14.
In this case, the above equation (3) calculates the following (4) to (7) in order in each corresponding butterfly computing unit, and as a DFT that is the final result of the butterfly computation, X (n 3 , n 2 , n 1 , n 0 ) are obtained.

(n,k,k,k)=Σx(k,k,k,k)W n0k3 …(4)
(n,n,k,k)=Σx(n,k,k,k)W 16n0k2 n1k2 …(5)
(n,n,n,k)=Σx(n,n,k,k)W 4(4n1+n0)k1 n2k1 …(6)
(n,n,n,n)=Σx(n,n,n,k)W (16n2+4n1+n0)k0 n3k0…(7)
ここで、x(n,n,n,n)がX(n,n,n,n)である。
(4)式が1段目のバタフライ演算器11の出力であり、(5)式が2段目のバタフライ演算器12の出力であり、(6)式が3段目のバタフライ演算器13の出力であり、(7)式が4段目のバタフライ演算器14の出力、すなわちFFT長256におけるDFTである。また、上記x,x,xが、DFT演算における各バタフライ演算器での中間データとなる。
x 1 (n 0 , k 2 , k 1 , k 0 ) = Σx (k 3 , k 2 , k 1 , k 0 ) W 4 n0k3 (4)
x 2 (n 0 , n 1 , k 1 , k 0 ) = Σx 1 (n 0 , k 2 , k 1 , k 0 ) W N 16n0k2 W 4 n1k2 (5)
x 3 (n 0 , n 1 , n 2 , k 0 ) = Σx 2 (n 0 , n 1 , k 1 , k 0 ) W N 4 (4n1 + n0) k1 W 4 n2k1 (6)
x 4 (n 0 , n 1 , n 2 , n 3 ) = Σx 3 (n 0 , n 1 , n 2 , k 0 ) W N (16n2 + 4n1 + n0) k0 W 4 n3k0 (7)
Here, x 4 (n 0 , n 1 , n 2 , n 3 ) is X (n 3 , n 2 , n 1 , n 0 ).
The expression (4) is the output of the first stage butterfly calculator 11, the expression (5) is the output of the second stage butterfly calculator 12, and the expression (6) is the output of the third stage butterfly calculator 13. Expression (7) is the output of the fourth stage butterfly computing unit 14, that is, the DFT in the FFT length 256. Further, the above x 1 , x 2 , x 3 are intermediate data in each butterfly computing unit in the DFT computation.

この場合、バタフライ演算器11は、(4)式における、入力される信号への係数「W n0k3」の複素乗算、すなわち「+1」,「−1」,「+j」または「−j」の複素乗算については、複素加減算部27において加算するか減算するかにより設定されているため、特に複素乗算の処理は行われない。複素加減算部27においては、係数「W n0k3」におけるnが0,1,2,3の4つの場合に対応した4つの減算または加算が行われ、4つの中間データが出力される。
同様に、バタフライ演算器12は、(5)式における、入力される信号(中間データ)への係数「W n1k2」の複素乗算、すなわち「+1」,「−1」,「+j」または「−j」の複素乗算については、複素加減算部27において加算するか減算するかにより設定されているため、特に複素乗算の処理は行われない。複素加減算部27においては、係数「W n1k2」におけるnが0,1,2,3の4つの場合に対応した4つの減算または加算が行われ、4つの中間データが出力される。
In this case, the butterfly calculator 11 performs complex multiplication of the coefficient “W 4 n0k3 ” on the input signal in Equation (4), that is, “+1”, “−1”, “+ j”, or “−j”. The complex multiplication is set depending on whether the addition or subtraction is performed in the complex addition / subtraction unit 27, and therefore, complex multiplication processing is not particularly performed. The complex addition / subtraction unit 27 performs four subtractions or additions corresponding to four cases where n 0 is 0, 1, 2, or 3 in the coefficient “W 4 n0k3 ”, and outputs four intermediate data.
Similarly, the butterfly calculator 12 performs complex multiplication of the coefficient “W 4 n1k2 ” on the input signal (intermediate data) in Equation (5), that is, “+1”, “−1”, “+ j” or “ The complex multiplication of “−j” is set depending on whether the addition or subtraction is performed in the complex addition / subtraction unit 27, and thus the complex multiplication process is not particularly performed. In the complex addition / subtraction unit 27, four subtractions or additions corresponding to four cases where n 1 in the coefficient “W 4 n1k2 ” is 0, 1 , 2, 3 are performed, and four intermediate data are output.

また、バタフライ演算器13は、(6)式における、入力される信号(中間データ)への係数「W n2k1」の複素乗算、すなわち「+1」,「−1」,「+j」または「−j」の複素乗算については、複素加減算部27において加算するか減算するかにより設定されているため、特に複素乗算の処理は行われない。複素加減算部27においては、係数「W n2k1」におけるnが0,1,2,3の4つの場合に対応した4つの減算または加算が行われ、4つの中間データが出力される。
また、バタフライ演算器12は、(7)式における、入力される信号(中間データ)への係数「W n3k0」の複素乗算、すなわち「+1」,「−1」,「+j」または「−j」の複素乗算については、複素加減算部27において加算するか減算するかにより設定されているため、特に複素乗算の処理は行われない。複素加減算部27においては、係数「W n3k0」におけるnが0,1,2,3の4つの場合に対応した4つの減算または加算が行われ、4つの中間データが出力される。
Further, the butterfly calculator 13 performs complex multiplication of the coefficient “W 4 n2k1 ” on the input signal (intermediate data) in the equation (6), that is, “+1”, “−1”, “+ j” or “− The complex multiplication of “j” is set depending on whether the addition or subtraction is performed in the complex addition / subtraction unit 27, and thus no complex multiplication processing is particularly performed. The complex addition / subtraction unit 27 performs four subtractions or additions corresponding to four cases where n 2 is 0, 1, 2 , 3 in the coefficient “W 4 n2k1 ”, and outputs four intermediate data.
Also, the butterfly calculator 12 performs complex multiplication of the coefficient “W 4 n3k0 ” on the input signal (intermediate data) in the equation (7), that is, “+1”, “−1”, “+ j” or “− The complex multiplication of “j” is set depending on whether the addition or subtraction is performed in the complex addition / subtraction unit 27, and thus no complex multiplication processing is particularly performed. In the complex addition / subtraction unit 27, four subtractions or additions corresponding to the four cases where n 3 in the coefficient “W 4 n3k0 ” is 0, 1, 2, 3 are performed, and four intermediate data are output.

バタフライ演算器11に対しては、信号x(k)が、すでに述べたようにk=0〜255まで順番に入力され、記憶部22の連続したアドレスに順に書き込まれる。このため、記憶部22からの読み出しとして、以下のような出力アドレスが必要となる。
上記(4)式において、kについての和を求めているため、複素加減算部27においては、信号x(k,k,k,k)の組として、初めの組がx(k,0,0,0)となり、kを0,1,2,3と変化させた信号x(0),x(64),x(128),x(192)の4つを組として所定の複素加減算を行う。
次に、x(k,0,0,1)として、kを0,1,2,3と変化させた信号x(k)が4つの信号の組の信号列として順次読み出される必要がある。
したがって、バタフライ演算器11における出力アドレス生成256部25Bは、記憶部22から信号列を読み出す順番として、kの数値を表現した(2)式における4進数の最も高い桁(64)、すなわちこのバタフライ演算器11にて和をとる番号kの桁を基準とし、他の桁を固定し、基準とした桁を0,1,2,3と変化させて、順次出力アドレスを生成することとなる。
As described above, the signal x (k) is input to the butterfly computing unit 11 in order from k = 0 to 255, and is sequentially written to consecutive addresses in the storage unit 22. For this reason, the following output addresses are required for reading from the storage unit 22.
In the above equation (4), since the sum for k 3 is obtained, the complex addition / subtraction unit 27 sets the first set as x (k 3 , k 2 , k 1 , k 0 ) as x ( k 3 , 0, 0, 0), and the four signals x (0), x (64), x (128), x (192), in which k 3 is changed to 0, 1, 2, 3 are combined. A predetermined complex addition / subtraction is performed.
Next, as x (k 3 , 0, 0, 1), the signal x (k) in which k 3 is changed to 0, 1, 2, 3 needs to be sequentially read out as a signal sequence of a set of four signals. is there.
Therefore, the output address generation unit 256B in the butterfly computing unit 11 has the highest quaternary digit (64) in the expression (2) expressing the numerical value of k as the order of reading the signal sequence from the storage unit 22, that is, this butterfly. relative to the digit of the number k 3 of the sum by calculator 11, to secure the other digits, with reference to digit is varied with 0, 1, 2, 3, and generating a sequentially outputs address .

以下、バラフライ演算部12、13,14も同様に、以下の様に求められる。
同様に、(5)式において、kについての和を求めているため、複素加減算部27(バタフライ演算器12)においては、信号x(n,k,k,k)の組として、初めの組がx(0,k,0,0)となり、kを0,1,2,3と変化させた信号x(0),x(16),x(32),x(48)の4つを組として所定の複素加減算を行う。
次に、x(0,k,0,1)として、kを0,1,2,3と変化させた信号x(k)が4つの信号の組の信号列として、順次読み出される必要がある。
したがって、バタフライ演算器12における出力アドレス生成256部25Bは、記憶部22から信号列を読み出す順番として、kの数値を表現した(2)式における4進数の2番目に高い桁(16)、すなわちこのバタフライ演算器12にて和をとる番号kを基準とし、他の桁を固定し、基準とした桁を0,1,2,3と変化させて順次出力アドレスを生成することとなる。
Hereinafter, the fly-fly calculation units 12, 13, and 14 are similarly obtained as follows.
Similarly, in equation (5), since the sum for k 2 is obtained, in the complex addition / subtraction unit 27 (butterfly computing unit 12), the signal x 1 (n 0 , k 2 , k 1 , k 0 ) As a set, the first set is x 1 (0, k 2 , 0, 0), and signals x 1 (0), x 1 (16), x 1 in which k 2 is changed to 0, 1, 2 , 3 (32), x 1 (48) are used as a set, and predetermined complex addition / subtraction is performed.
Next, as x 1 (0, k 2 , 0, 1), the signal x (k) in which k 2 is changed to 0, 1, 2 , 3 is sequentially read out as a signal sequence of a set of four signals. There is a need.
Therefore, the output address generation 256 unit 25B in the butterfly calculator 12 represents the second highest digit (16) of the quaternary number in the expression (2) expressing the numerical value of k as the order of reading the signal sequence from the storage unit 22, that is, the butterfly operation unit 12 with respect to the number k 2 summing with, fixing the other digits, reference of digits to the generating sequentially output address by changing the 0,1,2,3.

また、(6)式において、kについての和を求めているため、複素加減算部27(バタフライ演算器13)では、信号x(n,n,k,k)の組として、初めの組がx(0,0,k,0)となり、kを0,1,2,3と変化させた信号x(0),x(4),x(8),x(12)の4つを組として所定の複素加減算を行う。
このため、x(0,0,k,1)として、kを0,1,2,3と変化させた信号x(k)が4つの信号の組の信号列として、順次読み出される必要がある。
したがって、バタフライ演算器13における出力アドレス生成256部25Bは、記憶部22から信号列を読み出す順番として、kの数値を表現した(2)式における4進数の3番目に高い桁(4)、すなわちこのバタフライ演算器13にて和をとる番号kを基準とし、他の桁を固定し、基準とした桁を0,1,2,3と変化させて順次出力アドレスを生成することとなる。
In addition, in equation (6), since the sum of k 1 is obtained, the complex addition / subtraction unit 27 (butterfly computing unit 13) sets the signal x 2 (n 0 , n 1 , k 1 , k 0 ) as a set. , The first set is x 2 (0, 0, k 1 , 0), and the signals x 2 (0), x 2 (4), x 2 (8) with k 1 changed to 0, 1 , 2, 3 ), X 2 (12) as a set, and a predetermined complex addition / subtraction is performed.
Therefore, as x 2 (0, 0, k 1 , 1), the signal x (k) in which k 1 is changed to 0, 1 , 2, 3 is sequentially read out as a signal sequence of a set of four signals. There is a need.
Therefore, the output address generation 256 unit 25B in the butterfly calculator 13 represents the third highest digit (4) of the quaternary number in the expression (2) expressing the numerical value of k as the order of reading the signal sequence from the storage unit 22, that is, the butterfly operation unit 13 with respect to the number k 1 summing at, to secure the other digits, reference of digits to the generating sequentially output address by changing the 0,1,2,3.

同様に、(7)式において、kについての和を求めているため、複素加減算部27(バタフライ演算器14)では、信号x(n,n,n,k)の組として、初めの組がx(0,0,0,k)となり、kを0,1,2,3と変化させた信号x(0),x(1),x(2),x(3)の4つを組として所定の複素加減算を行う。
次に、x(0,0,1,k)として、kを0,1,2,3と変化させた信号x(k)が4つの信号の組を信号列として、順次読み出される必要がある。
したがって、バタフライ演算器14における出力アドレス生成256部25Bは、記憶部22から信号列を読み出す順番として、kの数値を表現した(2)式における4進数の最も低い桁(1)、すなわちこのバタフライ演算器13にて和をとる番号kを基準とし、他の桁を固定し、基準とした桁を0,1,2,3と変化させて順次出力アドレスを生成することとなる。
Similarly, in equation (7), since the sum for k 0 is obtained, the complex addition / subtraction unit 27 (butterfly computing unit 14) sets a set of signals x 3 (n 0 , n 1 , n 2 , k 0 ). as initially set is x 3 (0,0,0, k 0), and the signal x 3 to the k 0 is varied with 0,1,2,3 (0), x 3 ( 1), x 3 ( 2), x 3 (3) are used as a set, and a predetermined complex addition / subtraction is performed.
Then, x 3 (0,0,1, k 0 ) as the k 0 as the set of signal sequence of the signal x was varied with 0, 1, 2, 3 (k) four signals are sequentially read out There is a need.
Accordingly, the output address generation 256 unit 25B in the butterfly computing unit 14 has the lowest quaternary digit (1) in the expression (2) expressing the numerical value of k as the order of reading the signal sequence from the storage unit 22, that is, this butterfly. the number k 0 summing at the calculator 13 as a reference, to secure the other digits, reference of digits to the generating sequentially output address by changing the 0,1,2,3.

すなわち、出力アドレス生成部25の各FFT長に対応したアドレス生成部は、対応する各バタフライ演算器における和を求める桁を基準とし、この基準となる桁以外の桁を順次変化させ、この変化させた値毎に、基準となる桁をn進数(基数に対応)で変化、例えば4進数であれば、0,1,2,3と変化させ、複素加減算部27で用いる基数に対応する数の信号列に対する出力アドレスを生成する。
また、出力アドレス生成部25の各アドレス生成部は、基準となる桁以外の桁の変化において、演算のアルゴリズムにより異なるが、例えば、より桁数の小さい桁から順に変化させることとする。
That is, the address generation unit corresponding to each FFT length of the output address generation unit 25 uses the digit for calculating the sum in each corresponding butterfly arithmetic unit as a reference, and sequentially changes the digits other than the reference digit to change the digit. For each value, the reference digit is changed in n-base (corresponding to the radix), for example, if it is quaternary, it is changed to 0, 1, 2, 3, and the number corresponding to the radix used in the complex addition / subtraction unit 27 An output address for the signal train is generated.
In addition, each address generation unit of the output address generation unit 25 changes, for example, in order from a digit with a smaller number of digits, although it varies depending on the arithmetic algorithm in changing the digits other than the reference digit.

上述したことから、各バタフライ演算器における出力アドレス部25における出力アドレス生成64部25Aは、FFT長64に対応しているため、(2)式の表現が以下の式のようになる。
n=16n+4n+n;(n,n,n=0,1,2,3)
k=16k+4k+k;(k,k,k=0,1,2,3)
As described above, since the output address generation 64 unit 25A in the output address unit 25 in each butterfly computing unit corresponds to the FFT length 64, the expression of the expression (2) is as follows.
n = 16n 2 + 4n 1 + n 0 ; (n 0 , n 1 , n 2 = 0 , 1 , 2, 3)
k = 16 k 2 +4 k 1 + k 0 ; (k 0 , k 1 , k 2 = 0 , 1 , 2, 3)

同様に、各バタフライ演算器における出力アドレス部25における出力アドレス生成1024部25Cは、FFT長1024に対応しているため、(2)式の表現が以下の式のようになる。
n=256n+64n+16n+4n+n;(n,n,n,n,n=0,1,2,3)
k=256n+64k+16k+4k+k;(k,k,k,k,k=0,1,2,3)
Similarly, since the output address generation 1024 unit 25C in the output address unit 25 in each butterfly calculator corresponds to the FFT length 1024, the expression of the expression (2) is as follows.
n = 256 n 4 +64 n 3 +16 n 2 +4 n 1 + n 0 ; (n 0 , n 1 , n 2 , n 3 , n 4 = 0 , 1 , 2 , 3)
k = 256 n 4 +64 k 3 +16 k 2 +4 k 1 + k 0 ; (k 0 , k 1 , k 2 , k 3 , k 4 = 0 , 1 , 2 , 3)

上述したように、(2)式の表現が、FFT長が異なると、読み出される信号のデータの組合せ(信号が入力されて記憶部22に記憶された順番から、記憶部22から複素複素乗算部26に対して読み出す順番の変更)も異なってくるため、出力アドレスの生成は、FFT長(すなわちFFT長情報)に対応して、各出力アドレス生成部(出力アドレス生成64部25A,出力アドレス生成256部25B,出力アドレス生成1024部25C)により、基数とFFT長とから決まる読み出しアドレスの演算式により、順次出力アドレスの演算が行われる。   As described above, when the expression of the expression (2) has different FFT lengths, the data combination of the signals to be read (from the order in which the signals are input and stored in the storage unit 22 from the storage unit 22 to the complex complex multiplication unit) The output address is generated corresponding to the FFT length (that is, the FFT length information), so that each output address generation unit (output address generation 64 unit 25A, output address generation) is different. 256 unit 25B and output address generation 1024 unit 25C) sequentially calculate the output address by the read address calculation formula determined from the radix and the FFT length.

また、各バタフライ演算器において、(2)式における和をとる桁を最小桁とし、以降は(2)式の桁数の低い方から順に桁上がりをするカウンタを形成して、各出力アドレス生成回路25を構成してもよい。
また、上記各出力アドレス部は、対応するFFT長に対応して、上述した組で信号のデータを読み出す出力アドレスが順番に記憶されたROM(読み出し専用メモリ)から、時系列に順番にこのROMのアドレスをアクセスして、記憶された出力アドレスを読み出し、出力アドレスを生成する構成としてもよい。
Also, in each butterfly computing unit, a counter that increments in order from the lowest number of digits in equation (2) is formed by setting the summation digit in equation (2) as the minimum digit, and generating each output address The circuit 25 may be configured.
In addition, each of the output address sections corresponds to the corresponding FFT length, and the ROMs (read-only memories) in which the output addresses for reading out the signal data in the above-described pairs are stored in order from the ROM in this order. The address may be accessed, the stored output address is read, and the output address may be generated.

セレクタ27は、入力されるFFT長に従い、FFT長に対応する出力アドレスを選択し、出力アドレスとして、記憶部22へ出力する。
複素複素乗算部25は、記憶部22から時系列に入力される信号のデータx(k)に対して、FFT回転因子テーブル部27(請求項における複素係数記憶部に対応)から読み出される係数、例えば、FFT長が256の場合、バタフライ演算器11においては「1」、バタフライ演算器12においては「W 16n0k2」、バタフライ演算器13においては「W 4(4n1+n0)k1」、バタフライ演算器14においてはW (16n2+4n1+n0)k0を順次複素乗算して、複素乗算結果を出力する。
複素係数(または複素回転因子)としての上記各係数各々は、複素乗算する対象の信号毎(すなわち、FFT長及びバタフライ演算器の段数に対応して)に異なるため、図4に示すように、FFT回転因子テーブル部27には、FFT長及びバタフライ演算器の段数各々に対応したテーブルを設けておく。このテーブルはROMに予め記憶させるようにして形成しても良いし、RAMに演算を開始させる前に、外部から読み込んでおくように形成してもよい。
The selector 27 selects an output address corresponding to the FFT length according to the input FFT length, and outputs the output address to the storage unit 22 as an output address.
The complex complex multiplication unit 25 reads the coefficient x read out from the FFT twiddle factor table unit 27 (corresponding to the complex coefficient storage unit in the claims) for the signal data x (k) input in time series from the storage unit 22, For example, when the FFT length is 256, the butterfly calculator 11 is “1”, the butterfly calculator 12 is “W N 16n0k2 ”, the butterfly calculator 13 is “W N 4 (4n1 + n0) k1 ”, the butterfly calculator In step 14, W N (16n2 + 4n1 + n0) k0 is sequentially subjected to complex multiplication, and a complex multiplication result is output.
Since each of the above coefficients as a complex coefficient (or complex twiddle factor) differs for each signal to be complex-multiplied (that is, corresponding to the FFT length and the number of stages of the butterfly calculator), as shown in FIG. The FFT twiddle factor table unit 27 is provided with tables corresponding to the FFT length and the number of stages of the butterfly calculator. This table may be formed so as to be stored in the ROM in advance, or may be formed so as to be read from the outside before the RAM starts the calculation.

FFT回転因子テーブル部27は、図4に示すように、FFT長毎に対応した係数の記憶領域から構成されており、FFT長が1024個の場合に使用する係数が記憶されている領域D64と、FFT長が256個の場合に使用する係数が記憶されている領域D256と、FFT長が1024個の場合に使用する係数が記憶されている領域D1024とから構成されている。
アドレス生成部28は、領域D64に記憶されている係数を順番に読み出す因子アドレスを生成する因子アドレス生成64部28Aと、領域D256に記憶されている係数を順番に読み出す因子アドレスを生成する因子アドレス生成256部28Bと、領域D1024に記憶されている係数を順番に読み出す因子アドレスを生成する因子アドレス生成1024部28Cとから構成されている。
As shown in FIG. 4, the FFT twiddle factor table unit 27 is composed of coefficient storage areas corresponding to each FFT length, and an area D64 storing coefficients used when the FFT length is 1024. , An area D256 that stores coefficients used when the FFT length is 256, and an area D1024 that stores coefficients used when the FFT length is 1024.
The address generation unit 28 generates a factor address for generating a factor address for sequentially reading the coefficients stored in the region D64, and a factor address for generating a factor address for sequentially reading the coefficients stored in the region D256. A generation 256 unit 28B and a factor address generation 1024 unit 28C for generating a factor address for sequentially reading out the coefficients stored in the region D1024.

アドレス生成部28は、FFT長に応じて記憶部22から順次読み出される信号のデータに対して複素乗算する係数を、信号の読み出しに同期して読み出すため、FFT回転因子テーブル27から係数を読み出す因子アドレス順次生成する。
セレクタ29は、入力されるFFT長情報により、因子アドレス生成64部28A,因子アドレス生成256部28B及び因子アドレス生成1024部28C各々が生成して出力する因子アドレスのいずれかを選択し、選択した因子アドレスをFFT回転因子テーブル27へ出力する。
The address generation unit 28 reads a coefficient from the FFT twiddle factor table 27 in order to read out a coefficient for performing complex multiplication on signal data sequentially read from the storage unit 22 in accordance with the FFT length in synchronization with the signal reading. Generate addresses sequentially.
The selector 29 selects one of the factor addresses generated and output by each of the factor address generation 64 part 28A, the factor address generation 256 part 28B, and the factor address generation 1024 part 28C according to the input FFT length information. The factor address is output to the FFT rotation factor table 27.

複素複素乗算部26は、記憶部22から時系列に入力される信号のデータ各々に対し、FFT回転因子テーブル27から順番に読み出される各係数を、順次複素乗算してシリアル/パラレル変換部30へ出力する。
パラレル/シリアル変換部30は、係数が複素乗算された、4つの信号のデータの組がシリアルに(直列に)、出力アドレス生成部25から出力されるアドレスに従い、記憶部22から読み出された順に、例えば、{x(0),x(64),x(128),x(192)}、{x(1),x(65),x(129),x(193)}、…の順に入力された時点で、一旦この組の信号のデータを記憶し、これら信号のデータをパラレルに(並列に)、複素加減算部27へ出力する。
The complex complex multiplication unit 26 sequentially performs complex multiplication on each of the data of the signal input from the storage unit 22 in time series and sequentially reads out the coefficients from the FFT twiddle factor table 27 to the serial / parallel conversion unit 30. Output.
The parallel / serial conversion unit 30 reads out the data set of four signals obtained by complex multiplication of the coefficients serially (in series) from the storage unit 22 according to the address output from the output address generation unit 25. In order, for example, {x (0), x (64), x (128), x (192)}, {x (1), x (65), x (129), x (193)},. When the signals are sequentially input, the data of this set of signals is temporarily stored, and the data of these signals is output to the complex adder / subtractor 27 in parallel (in parallel).

また、複素加減算部27は、各バタフライ演算器毎に、対応する上記(4)式から(7)式の加減演算を行い、得られた演算結果をパラレル/シリアル変換器31へ並列に出力する。例えば、バタフライ演算器11における複素加減算部27は、入力される{x(0),x(64),x(128),x(192)}の信号の組に対して所定の複素加減算を行い、演算結果として、中間データ{x(0),x(64),x(128),x(192)}を並列に出力する。
パラレル/シリアル変換器31は、並列に入力される演算結果{x(0),x(64),x(128),x(192)}の並びを、パラレルからシリアルに変換して、x(0),x(64),x(128),x(198)の順で出力する。
Further, the complex addition / subtraction unit 27 performs the addition / subtraction of the corresponding equations (4) to (7) for each butterfly calculator, and outputs the obtained calculation result to the parallel / serial converter 31 in parallel. . For example, the complex addition / subtraction unit 27 in the butterfly computing unit 11 performs predetermined complex addition / subtraction on the set of signals {x (0), x (64), x (128), x (192)} that are input. , Intermediate data {x 1 (0), x 1 (64), x 1 (128), x 1 (192)} are output in parallel as the operation result.
The parallel / serial converter 31 converts the sequence of operation results {x 1 (0), x 1 (64), x 1 (128), x 1 (192)} input in parallel from parallel to serial. X 1 (0), x 1 (64), x 1 (128), x 1 (198) in this order.

タイミング生成部32は、記憶部22に信号のデータが書き込まれるタイミング、入力アドレス生成部23が入力アドレスを生成して出力するタイミング、出力アドレス生成部25が出力アドレスを生成して出力するタイミング、セレクタ24,28,29各々が選択処理を行うタイミング、複素複素乗算部26が複素乗算するタイミング、シリアル/パラレル変換部30がシリアル・パラレル変換処理を行うタイミング、複素加減算部27が複素加減算を行うタイミング及び、パラレル/シリアル変換部27が複素加減算部27の出力をパラレル・シリアル変換を行うタイミング各々を制御する動作クロックを、上記各部に対して出力し、FFT長情報の示すFFT長に応じて各部の動作を制御する。
すなわち、FFT長が64の場合、64個のデータが入力される毎に、またFFT長が256の場合、256個のデータが入力される毎に、またFFT長が1024の場合、1024個のデータが入力される毎に、下記に説明するFFT演算を周期的に行う。
また、記憶部22におけるダブルバッファとしての、第1及び第2の記憶領域は上記周期毎に、書き込みが行われる領域と、読み出しが行われる領域とに、セレクタ24及びセレクタ28それぞれにより順次切り替えて使用される。
The timing generation unit 32 is a timing at which signal data is written in the storage unit 22, a timing at which the input address generation unit 23 generates and outputs an input address, a timing at which the output address generation unit 25 generates and outputs an output address, Timing at which each of the selectors 24, 28, and 29 performs selection processing, timing at which the complex complex multiplication unit 26 performs complex multiplication, timing at which the serial / parallel conversion unit 30 performs serial / parallel conversion processing, and complex addition / subtraction unit 27 performs complex addition / subtraction The operation clock for controlling each timing and the timing at which the parallel / serial conversion unit 27 performs parallel / serial conversion on the output of the complex addition / subtraction unit 27 is output to each of the above units, and according to the FFT length indicated by the FFT length information. Control the operation of each part.
That is, when the FFT length is 64, every time 64 pieces of data are input, when the FFT length is 256, every time 256 pieces of data are inputted, and when the FFT length is 1024, there are 1024 pieces of data. Each time data is input, the FFT operation described below is performed periodically.
Further, the first and second storage areas as the double buffer in the storage unit 22 are sequentially switched between the area where writing is performed and the area where reading is performed by the selector 24 and the selector 28, respectively, in each cycle. used.

次に、図1及び図2を参照して、本願発明のFFT演算回路1の動作の説明を行う。ここで、入力されるFFT長が256である場合を説明する。
FFT演算回路1には、入力信号x(k),0≦k≦255として、すなわち{x(0),x(1),x(2),x(3),…,x(254),x(255)}の信号列が入力される。また、FFT演算回路1には、FFT長が256であることを示すFFT長情報が入力される。
Next, the operation of the FFT operation circuit 1 of the present invention will be described with reference to FIGS. Here, a case where the input FFT length is 256 will be described.
The FFT operation circuit 1 has an input signal x (k), 0 ≦ k ≦ 255, that is, {x (0), x (1), x (2), x (3),..., X (254), x (255)} signal sequence is input. Further, FFT length information indicating that the FFT length is 256 is input to the FFT operation circuit 1.

上記信号列は、直列にバタフライ演算器11へ入力される。バタフライ演算器11において、FFT長が256個であることを示すFFT長情報がセレクタ24へ入力されているため、セレクタ24は入力アドレス生成256部23Bから入力される入力アドレスを記憶部22に対し出力する。
そして、記憶部22には、入力される上記入力アドレスに対応して、最上位ビットとして「0」を加えたアドレス(第1の記憶領域)に、順次、入力される信号列{x(0),x(1),x(2),x(3),…,x(254),x(255)}の信号を、記憶部22の第1の記憶領域に対して連続した入力アドレスによって書き込む。
The signal sequence is input to the butterfly calculator 11 in series. In the butterfly calculator 11, since the FFT length information indicating that the FFT length is 256 is input to the selector 24, the selector 24 inputs the input address input from the input address generation 256 unit 23 </ b> B to the storage unit 22. Output.
Then, in the storage unit 22, a signal sequence {x (0 (0)) sequentially input to an address (first storage area) added with “0” as the most significant bit corresponding to the input address input. ), X (1), x (2), x (3),..., X (254), x (255)} by a continuous input address to the first storage area of the storage unit 22. Write.

ここで、入力アドレス生成256部23Bは、0〜255番目までの信号列に対する入力アドレスの生成及び出力を終了すると、次のFFT演算の周期における0〜255番目までの信号列に対する入力アドレスの出力を開始する。
これにより、記憶部22には、次に入力される信号列を、入力アドレスに対して、最上位ビットとして「1」を加えたアドレス(第2の記憶領域)に、順次、入力される信号列{x(0),x(1),x(2),x(3),…,x(254),x(255)}の信号の書き込み処理が開始される。
Here, when the input address generation 256 unit 23B finishes generating and outputting the input address for the 0 to 255th signal sequence, the input address output for the 0 to 255th signal sequence in the next FFT operation cycle is performed. To start.
As a result, signals that are input next to the storage unit 22 are sequentially input to an address (second storage area) obtained by adding “1” as the most significant bit to the input address. The signal writing process of the columns {x (0), x (1), x (2), x (3),..., X (254), x (255)} is started.

また、FFT長が256個であることを示すFFT長情報がセレクタ28へ入力されているため、セレクタ28は出力アドレス生成256部28Bから入力される出力アドレスを記憶部22に対し順次出力、すなわち入力アドレスに対して読み出しの順番が変換された出力アドレスを順次出力する。
このとき、セレクタ28は、出力アドレスの最上位ビットが、FFT長に対応した256個の信号に対応する出力アドレスの出力を終了する毎に、出力アドレスの最上位ビットを「0」と「1」との間で順番に切り替えるように構成されている。このとき、出力アドレス生成256部28Bが出力する出力アドレスに対し、最上位ビットとして「0」を加えたアドレスを、順次、記憶部22に対して出力する。
Further, since the FFT length information indicating that the FFT length is 256 is input to the selector 28, the selector 28 sequentially outputs the output address input from the output address generation 256 unit 28B to the storage unit 22, that is, The output addresses in which the reading order is converted with respect to the input address are sequentially output.
At this time, the selector 28 sets the most significant bit of the output address to “0” and “1” every time output of the output address corresponding to 256 signals corresponding to the FFT length is completed. ”In order. At this time, an address obtained by adding “0” as the most significant bit to the output address output from the output address generation unit 256 B is sequentially output to the storage unit 22.

ここで、出力アドレス生成256部28Bは、加減演算で行う演算処理に対応した信号の順番として、上記(4)式の演算が複素加減算部27で行われるとした場合、セレクタ28は、出力アドレス生成256部28Bが出力する出力アドレスを順に時系列に出力する。この出力アドレスが入力されることにより、記憶部22から{x(0),x(64),x(128),x(192),x(1),x(65),x(129),x(193)…,x(63),x(127),x(191),x(255)}の信号が順に読み出されて、複素演算部26へ入力される。
このとき、FFT長が256個であることを示すFFT長情報がセレクタ29へ入力されているため、セレクタ29は因子アドレス生成256部29Bから入力される因子アドレスをFFT回転因子テーブル27へ順次出力する。
Here, when the calculation of the above equation (4) is performed by the complex addition / subtraction unit 27 as the order of signals corresponding to the arithmetic processing performed by the addition / subtraction operation, the output address generation unit 256B selects the output address. The output addresses output by the generation 256 unit 28B are sequentially output in time series. By inputting this output address, {x (0), x (64), x (128), x (192), x (1), x (65), x (129), x (193)..., x (63), x (127), x (191), x (255)} are sequentially read out and input to the complex operation unit 26.
At this time, since the FFT length information indicating that the FFT length is 256 is input to the selector 29, the selector 29 sequentially outputs the factor addresses input from the factor address generation 256 unit 29B to the FFT twiddle factor table 27. To do.

これにより、FFT回転因子テーブル27は、{x(0),x(64),x(128),x(192),x(1),x(65),x(129),x(193)…,x(63),x(127),x(191),x(255)}の信号各々に複素乗算する256個の係数を順次、因子アドレス生成256部28Aの出力するアドレスに従って出力する。
しかしながら、(4)式から判るように、本実施形態の場合、バタフライ演算器11においては、各信号に複素乗算する係数は整数「1」(複素数の実数部分のみ)である。しかしながら、演算アルゴリズムによっては、対応する係数が複素乗算されるため、対応した係数がFFT回転因子テーブルから読み出され、複素複素乗算部26において対応する信号に複素乗算される。
したがって、複素演算部26は、{x(0),x(64),x(128),x(192),…,x(63),x(127),x(191),x(255)}各々に、それぞれ係数「1」を複素乗算し、{x(0),x(64),x(128),x(192),…,x(63),x(127),x(191),x(255)}として、順次、シリアル/パラレル変換部30へ出力する。
As a result, the FFT twiddle factor table 27 has {x (0), x (64), x (128), x (192), x (1), x (65), x (129), x (193). .., X (63), x (127), x (191), x (255)} are sequentially outputted in accordance with the addresses output by the factor address generation 256 unit 28A.
However, as can be seen from the equation (4), in the case of the present embodiment, in the butterfly computing unit 11, the coefficient for complex multiplication of each signal is an integer “1” (only the real part of the complex number). However, depending on the arithmetic algorithm, the corresponding coefficient is complex-multiplied, so the corresponding coefficient is read from the FFT twiddle factor table, and the complex signal is complex-multiplied by the complex-complex multiplier 26.
Therefore, the complex arithmetic unit 26 is configured to {x (0), x (64), x (128), x (192), ..., x (63), x (127), x (191), x (255). } Each is multiplied by a coefficient “1” and {x (0), x (64), x (128), x (192),..., X (63), x (127), x (191 ), X (255)} are sequentially output to the serial / parallel converter 30.

上記出力される演算結果に対して、シリアル/パラレル変換部30は、入力される係数が複素乗算された信号が4個ずつの組、例えば{x(0),x(64),x(128),x(192)}が直列に入力された時点において、これらの信号を並列に並べ直して、複素加減算部27へ出力する。
これにより、複素加減算部27は、上記{x(0),x(64),x(128),x(192)}の各データを用い、上記(4)式における係数「W n0k3」に対応した加減演算を行い、演算結果として{x(0),x(64),x(128),x(192)}を並列に出力する。
The serial / parallel conversion unit 30 applies a set of four signals obtained by complex multiplication of input coefficients to the output calculation result, for example, {x (0), x (64), x (128 ), X (192)} are input in series, these signals are rearranged in parallel and output to the complex adder / subtractor 27.
Thereby, the complex addition / subtraction unit 27 uses the data of {x (0), x (64), x (128), x (192)} to obtain the coefficient “W 4 n0k3 ” in the equation (4). The corresponding addition / subtraction operation is performed, and {x 1 (0), x 1 (64), x 1 (128), x 1 (192)} are output in parallel as the operation result.

そして、パラレル/シリアル変換部31は、これら複素加減算結果{x(0),x(64),x(128),x(192)}を、x(0)→x(64)→x(128)→x(192)の順番にて直列に変換して、シリアル出力とする。そして、基数4で、かつFFT長が256個であるため、計算単位として64つの組合せに分割されるため、上述した加減演算を64回行い、4つの信号データの演算から求められた4つの中間データの組み合わせとして、64組、すなわち256個の中間データを出力することで、FFT演算の1つの周期(256個の信号に対するFFT処理)を終了する。 Then, the parallel / serial converter 31 converts these complex addition / subtraction results {x 1 (0), x 1 (64), x 1 (128), x 1 (192)} into x 1 (0) → x 1 ( 64) → x 1 (128) → x 1 (192) are converted into serial data in the order of serial output. Since the radix is 4 and the FFT length is 256, the calculation unit is divided into 64 combinations. Therefore, the above-described addition / subtraction operation is performed 64 times, and the four intermediate values obtained from the calculation of the four signal data. As a combination of data, 64 sets, that is, 256 intermediate data are output, thereby completing one cycle of the FFT operation (FFT processing for 256 signals).

このバタフライ演算器11からのパラレル/シリアル変換されたシリアル出力は、次段のバタフライ演算器12の入力信号となり、256個の信号に対するFFT演算における1段目のステージによる中間データである。
バタフライ演算器11は、上述したバタフライ演算の処理を、記憶部22のダブルバッファにおいて、第1及び第2の記憶領域のいずれか一方から信号のデータを読み出してバタフライ演算を行っている際、他方に新たな信号列を書き込んでいる。
The parallel / serial converted serial output from the butterfly calculator 11 becomes an input signal of the butterfly calculator 12 at the next stage, and is intermediate data by the first stage in the FFT calculation for 256 signals.
The butterfly computing unit 11 performs the above-described butterfly computation process when the double buffer of the storage unit 22 performs signal butterfly computation by reading signal data from one of the first and second storage areas. A new signal sequence is written in

次に、バタフライ演算器12は、バタフライ演算器11から入力される中間データ列{x(0),x(1),x(2),x(3),…,x(253),x(254),x(255)}、すなわち中間データx(k)を、入力データとして入力する。ここで、入力アドレス生成256部25Bは、前段の出力アドレスと同一の入力アドレスを出力する。入力される中間データは、この入力アドレスに従い、記憶部22へ書き込まれる。そして入力後、バタフライ演算器12は、バタフライ演算器11と同様なバタフライ演算の処理を行う。以下の処理は、特に説明が無い限り、バタフライ演算器12におけるバタフライ演算の処理について説明する。この中間データx(n,k,k,k)において、中間データの番号kは、
k=64n+16k+4k+k;(k,k,k,n=0,1,2,3)
で決定される。
Next, the butterfly computing unit 12 receives the intermediate data string {x 1 (0), x 1 (1), x 1 (2), x 1 (3),..., X 1 ( 253), x 1 (254), x 1 (255)}, that is, intermediate data x 1 (k) is input as input data. Here, the input address generation 256 unit 25B outputs the same input address as the output address of the previous stage. The input intermediate data is written to the storage unit 22 in accordance with this input address. After the input, the butterfly calculator 12 performs the same butterfly calculation process as the butterfly calculator 11. The following processing will be described for butterfly computation in the butterfly computing unit 12 unless otherwise specified. In this intermediate data x 1 (n 0 , k 2 , k 1 , k 0 ), the intermediate data number k is
k = 64 n 0 +16 k 2 +4 k 1 + k 0 ; (k 0 , k 1 , k 2 , n 0 = 0, 1 , 2 , 3)
Determined by

すなわち、バタフライ演算器12においても、バタフライ演算器11と同様に、FFT長が256個であることを示すFFT長情報がセレクタ24へ入力されているため、セレクタ24は入力アドレス生成256部23Bから入力される入力アドレスを記憶部22に対し出力する。これにより、記憶部22には、上記入力アドレスに従い、バタフライ演算器11から入力される中間データが、前段の出力アドレスと同一の値の入力アドレスに順番に書き込まれる(バタフライ演算器11と同様に、記憶部22は第1及び第2の記憶領域からなるダブルバッファ構成となっており、データの書き込み読み出しの処理も同様である)。   That is, in the butterfly calculator 12 as well as the butterfly calculator 11, since the FFT length information indicating that the FFT length is 256 is input to the selector 24, the selector 24 receives from the input address generation 256 unit 23 B. The input address that is input is output to the storage unit 22. As a result, the intermediate data input from the butterfly computing unit 11 is sequentially written in the storage unit 22 in accordance with the input address to the input address having the same value as the output address of the previous stage (similar to the butterfly computing unit 11). The storage unit 22 has a double buffer configuration including the first and second storage areas, and the data write / read process is the same).

バタフライ演算器12において、FFT長が256個であることを示すFFT長情報がセレクタ25へ入力されているため、セレクタ25は出力アドレス生成256部25Bから入力される入力アドレスを記憶部22に対し出力する。
同様に、FFT長が256個であることを示すFFT長情報がセレクタ28へ入力されているため、セレクタ28は因子アドレス生成256部28Bから入力される因子アドレスをFFT回転因子テーブル27に対し出力する。
In the butterfly calculator 12, the FFT length information indicating that the FFT length is 256 is input to the selector 25, so the selector 25 inputs the input address input from the output address generation 256 unit 25 B to the storage unit 22. Output.
Similarly, since FFT length information indicating that the FFT length is 256 is input to the selector 28, the selector 28 outputs the factor address input from the factor address generation 256 unit 28B to the FFT twiddle factor table 27. To do.

このとき、出力アドレス生成256部25Bは、複素加減算部27により、(5)式の演算が行われるため、すなわち16の位の桁kについての和を求めるため、k以外のn0,k1,k0を固定し、x(0,k,0、0)としてkを0,1,2,3で変化させ、中間データx(0),x(16),x(32),x(48)を読み出すアドレスを生成し、次にx(0,k,0、1)としてkを0,1,2,3で変化させ、x(1),x(17),x(33),x(49)として、順次出力アドレスを生成する。
これにより、記憶部22に書き込まれた中間データが、出力アドレス生成256部25Bの出力する出力アドレスにより、読み出されて複素複素乗算部26へ出力される。
At this time, the output address generation 256 parts 25B are by the complex addition and subtraction unit 27, (5) for calculating the expression is carried out, i.e., to determine the sum of the position of the digit k 2 of 16, except k 2 n0, k1 , to secure the k0, x 1 (0, k 2, 0,0) k 2 is varied in 0,1,2,3 as the intermediate data x 1 (0), x 1 (16), x 1 ( 32), an address for reading x 1 (48) is generated, and then k 2 is changed by 0, 1, 2 , 3 as x 1 (0, k 2 , 0, 1), and x 1 (1), Output addresses are sequentially generated as x 1 (17), x 1 (33), and x 1 (49).
Thus, the intermediate data written in the storage unit 22 is read out and output to the complex complex multiplication unit 26 by the output address output from the output address generation unit 256B.

すなわち、上記出力アドレス生成256部25Bは、バタフライ演算器11から入力される中間データx(k)を、複素加減算部27にて、係数「W n1k2」に対応して複素加減算する際の、中間データの組となるように、記憶部22(例えば、第1の記憶領域)に記憶されている入力順に対して並べ替える出力アドレスを生成して出力する。
同様に、FFT回転因子テーブル27は、因子アドレス生成256部28Bから出力される因子アドレスに対応した回転因子である係数「W 16n0k2」を出力する。
ここで、バタフライ演算器12のFFT回転因子テーブル27は、各FFT長毎に対応したテーブルを有している。これらのテーブルには、第2のステージであるバタフライ演算器12において、記憶部22から出力される中間データx(k)各々に複素乗算する係数が、FFT長毎に記憶されている。
That is, the output address generation unit 256B performs complex addition / subtraction on the intermediate data x 1 (k) input from the butterfly calculator 11 in the complex addition / subtraction unit 27 corresponding to the coefficient “W 4 n1k2 ”. Then, an output address to be rearranged in the input order stored in the storage unit 22 (for example, the first storage area) is generated and output so as to be a set of intermediate data.
Similarly, the FFT twiddle factor table 27 outputs a coefficient “W N 16n0k2 ” which is a twiddle factor corresponding to the factor address output from the factor address generation 256 unit 28B.
Here, the FFT twiddle factor table 27 of the butterfly computing unit 12 has a table corresponding to each FFT length. In these tables, coefficients for complex multiplication of each intermediate data x 1 (k) output from the storage unit 22 in the butterfly computing unit 12 as the second stage are stored for each FFT length.

次に、複素複素乗算部26は、バタフライ演算器11で説明したと同様に、記憶部22から出力される中間データ各々に、FFT回転因子テーブル27から出力される係数を順次複素乗算して、シリアル/パラレル変換部30へ出力する。
この後の、シリアル・パラレル変換部30,複素加減算部27及びパラレル/シリアル変換部31における処理は、バタフライ演算器11の場合と同様のため、説明を省略する。
そして、バタフライ演算器12は、第2ステージのバタフライ演算の結果として、中間データ列x(k),0≦k≦256を出力する。
Next, as described in the butterfly calculator 11, the complex complex multiplier 26 sequentially multiplies each of the intermediate data output from the storage unit 22 by the coefficient output from the FFT twiddle factor table 27, and The data is output to the serial / parallel converter 30.
The subsequent processing in the serial / parallel converter 30, the complex adder / subtractor 27, and the parallel / serial converter 31 is the same as in the case of the butterfly computing unit 11, and a description thereof will be omitted.
Then, the butterfly calculator 12 outputs an intermediate data string x 2 (k), 0 ≦ k ≦ 256 as a result of the second stage butterfly calculation.

次に、バタフライ演算器13は、バタフライ演算器12から入力される中間データ列{x(0),x(1),x(2),x(3),…,x(253),x(254),x(255)}、すなわち中間データx(k)を、入力データとして入力する。ここで、入力アドレス生成256部25Bは、前段の出力アドレスと同一の入力アドレスを出力する。入力される中間データは、この入力アドレスに従い、記憶部22へ書き込まれる。そして入力後、バタフライ演算器13は、バタフライ演算器12と同様なバタフライ演算の処理を行う。以下の処理は、特に説明が無い限り、バタフライ演算器13におけるバタフライ演算の処理について説明する。この中間データx(n,n,k,k)において、中間データの番号kは、
k=64n+16n+4k+k;(k,k,n,n=0,1,2,3)
で決定される。
Next, the butterfly calculator 13 receives the intermediate data string {x 2 (0), x 2 (1), x 2 (2), x 2 (3),..., X 2 ( 253), x 2 (254), x 2 (255)}, that is, intermediate data x 2 (k) is input as input data. Here, the input address generation 256 unit 25B outputs the same input address as the output address of the previous stage. The input intermediate data is written to the storage unit 22 in accordance with this input address. After the input, the butterfly calculator 13 performs the same butterfly calculation process as the butterfly calculator 12. The following processing will be described for butterfly computation in the butterfly computing unit 13 unless otherwise specified. In this intermediate data x 2 (n 0 , n 1 , k 1 , k 0 ), the intermediate data number k is
k = 64n 0 + 16n 1 + 4k 1 + k 0; (k 0, k 1, n 1, n 0 = 0,1,2,3)
Determined by

すなわち、バタフライ演算器13においても、バタフライ演算器11及び12と同様に、FFT長が256個であることを示すFFT長情報がセレクタ24へ入力されているため、セレクタ24は入力アドレス生成256部23Bから入力される入力アドレスを記憶部22に対し出力する。これにより、記憶部22には、上記入力アドレスに従い、バタフライ演算器12から入力される中間データを、前段の出力アドレスと同様の値の入力アドレスに順番に書き込まれる(バタフライ演算器11及び12と同様に、記憶部22は第1及び第2の記憶領域からなるダブルバッファ構成となっており、データの書き込み読み出しの処理も同様である)。   That is, in the butterfly calculator 13 as well as the butterfly calculators 11 and 12, since the FFT length information indicating that the FFT length is 256 is input to the selector 24, the selector 24 has 256 input address generation units. The input address input from 23B is output to the storage unit 22. Thereby, according to the input address, the intermediate data input from the butterfly calculator 12 is sequentially written in the storage unit 22 to the input address having the same value as the output address of the previous stage (the butterfly calculators 11 and 12 and Similarly, the storage unit 22 has a double buffer configuration including the first and second storage areas, and the data write / read process is the same).

バタフライ演算器13において、FFT長が256個であることを示すFFT長情報がセレクタ25へ入力されているため、セレクタ25は出力アドレス生成256部25Bから入力される入力アドレスを記憶部22に対し出力する。
同様に、FFT長が256個であることを示すFFT長情報がセレクタ28へ入力されているため、セレクタ28は因子アドレス生成256部28Bから入力される因子アドレスをFFT回転因子テーブル27に対し出力する。
In the butterfly calculator 13, FFT length information indicating that the FFT length is 256 is input to the selector 25, so the selector 25 inputs the input address input from the output address generation unit 256 B to the storage unit 22. Output.
Similarly, since FFT length information indicating that the FFT length is 256 is input to the selector 28, the selector 28 outputs the factor address input from the factor address generation 256 unit 28B to the FFT twiddle factor table 27. To do.

このとき、出力アドレス生成256部25Bは、複素加減算部27により、(6)式の演算が行われるため、すなわち4の位の桁kについての和を求めるため、k以外のn,n,kを固定し、x(0,0,k,0)としてkを0,1,2,3で変化させ、中間データx(0),x(4),x(8),x(12)を読み出すアドレスを生成し、次にx(0,0,k,1)としてkを0,1,2,3で変化させ、x(1),x(5),x(9),x(13)として、順次出力アドレスを生成する。
これにより、記憶部22に書き込まれた中間データが、出力アドレス生成256部25Bの出力する出力アドレスにより、読み出されて複素複素乗算部26へ出力される。
At this time, the output address generation 256 parts 25B are by the complex addition and subtraction unit 27, (6) for the calculation of expression are performed, i.e. for obtaining the sum of the position of the digit k 1 of 4, k 1 other than n 0, n 1 , k 0 are fixed, and k 1 is changed by 0, 1 , 2, 3 as x 2 (0, 0, k 1 , 0), and intermediate data x 2 (0), x 2 (4), An address for reading x 2 (8), x 2 (12) is generated, and then k 1 is changed to 0, 1 , 2, 3 as x 3 (0, 0, k 1 , 1), and x 2 ( Output addresses are sequentially generated as 1), x 2 (5), x 2 (9), and x 2 (13).
Thus, the intermediate data written in the storage unit 22 is read out and output to the complex complex multiplication unit 26 by the output address output from the output address generation unit 256B.

すなわち、上記出力アドレス生成256部25Bは、バタフライ演算器12から入力される中間データx(k)を、複素加減算部27にて、係数「W n2k1」に対応して複素加減算する際の、中間データの組となるように、記憶部22(例えば、第1の記憶領域)に記憶されている入力順に対して並べ替える出力アドレスを生成して出力する。
同様に、FFT回転因子テーブル27は、因子アドレス生成256部28Bから出力される因子アドレスに対応した回転因子である係数「W 4(4n1+n0)k1」を出力する。
ここで、バタフライ演算器13のFFT回転因子テーブル27は、各FFT長毎に対応したテーブルを有している。これらのテーブルには、第3のステージであるバタフライ演算器13において、記憶部22から出力される中間データx(k)各々に複素乗算する係数が、FFT長毎に記憶されている。
That is, the output address generation unit 256B performs the complex addition / subtraction of the intermediate data x 2 (k) input from the butterfly calculator 12 in the complex addition / subtraction unit 27 corresponding to the coefficient “W 4 n2k1 ”. Then, an output address to be rearranged in the input order stored in the storage unit 22 (for example, the first storage area) is generated and output so as to be a set of intermediate data.
Similarly, the FFT twiddle factor table 27 outputs a coefficient “W N 4 (4n1 + n0) k1 ” that is a twiddle factor corresponding to the factor address output from the factor address generation 256 unit 28B.
Here, the FFT twiddle factor table 27 of the butterfly calculator 13 has a table corresponding to each FFT length. In these tables, a coefficient for performing complex multiplication on each of the intermediate data x 2 (k) output from the storage unit 22 in the butterfly calculator 13 as the third stage is stored for each FFT length.

次に、複素複素乗算部26は、バタフライ演算器12で説明したと同様に、記憶部22から出力される中間データ各々に、FFT回転因子テーブル27から出力される係数を順次複素乗算して、シリアル/パラレル変換部30へ出力する。
この後の、シリアル・パラレル変換部30,複素加減算部27及びパラレル/シリアル変換部31における処理は、バタフライ演算器11の場合と同様のため、説明を省略する。
そして、バタフライ演算器13は、第3ステージのバタフライ演算の結果として、中間データ列x(k),0≦k≦256を出力する。
上述したように、バタフライ演算器13も、バタフライ演算器12と同様な処理により、第3ステージにおける中間データ列x(k),0≦k≦256を出力する。
Next, as described in the butterfly calculator 12, the complex complex multiplier 26 sequentially multiplies each of the intermediate data output from the storage unit 22 by the coefficient output from the FFT twiddle factor table 27, and The data is output to the serial / parallel converter 30.
The subsequent processing in the serial / parallel converter 30, the complex adder / subtractor 27, and the parallel / serial converter 31 is the same as in the case of the butterfly computing unit 11, and a description thereof will be omitted.
Then, the butterfly calculator 13 outputs an intermediate data string x 2 (k), 0 ≦ k ≦ 256 as a result of the third stage butterfly calculation.
As described above, the butterfly calculator 13 also outputs the intermediate data string x 3 (k), 0 ≦ k ≦ 256 in the third stage, by the same processing as the butterfly calculator 12.

次に、バタフライ演算器14は、バタフライ演算器13から入力される中間データ列{x(0),x(1),x(2),x(3),…,x(253),x(254),x(255)}、すなわち中間データx(k)を、入力データとして入力する。ここで、入力アドレス生成256部25Bは、前段の出力アドレスと同一の入力アドレスを出力する。入力される中間データは、この入力アドレスに従い、記憶部22へ書き込まれる。そして入力後、バタフライ演算器14は、バタフライ演算器12及び13と同様なバタフライ演算の処理を行う。以下の処理は、特に説明が無い限り、バタフライ演算器14におけるバタフライ演算の処理について説明する。この中間データx(n,n,n,k)において、中間データの番号kは、
k=64n+16n+4n+k;(k,n,n,n=0,1,2,3)
で決定される。
Next, the butterfly calculator 14 receives the intermediate data string {x 3 (0), x 3 (1), x 3 (2), x 3 (3),..., X 3 ( 253), x 3 (254), x 3 (255)}, that is, intermediate data x 3 (k) is input as input data. Here, the input address generation 256 unit 25B outputs the same input address as the output address of the previous stage. The input intermediate data is written to the storage unit 22 in accordance with this input address. After the input, the butterfly calculator 14 performs the same butterfly calculation process as the butterfly calculators 12 and 13. The following processing will be described for butterfly computation in the butterfly computing unit 14 unless otherwise specified. In this intermediate data x 3 (n 0 , n 1 , n 2 , k 0 ), the intermediate data number k is
k = 64n 0 + 16n 1 + 4n 2 + k 0 ; (k 0 , n 2 , n 1 , n 0 = 0, 1 , 2 , 3)
Determined by

すなわち、バタフライ演算器14においても、バタフライ演算器12及び13と同様に、FFT長が256個であることを示すFFT長情報がセレクタ24へ入力されているため、セレクタ24は入力アドレス生成256部23Bから入力される入力アドレスを記憶部22に対し出力する。これにより、記憶部22には、上記入力アドレスに従い、バタフライ演算器13から入力される中間データが、前段の出力アドレスと同一の値の入力アドレスに順番に書き込まれる(バタフライ演算器11及び12と同様に、記憶部22は第1及び第2の記憶領域からなるダブルバッファ構成となっており、データの書き込み読み出しの処理も同様である)。   That is, in the butterfly calculator 14 as well as the butterfly calculators 12 and 13, since the FFT length information indicating that the FFT length is 256 is input to the selector 24, the selector 24 has 256 input address generation units. The input address input from 23B is output to the storage unit 22. Thereby, in accordance with the input address, the intermediate data input from the butterfly calculator 13 is sequentially written in the storage unit 22 to the input address having the same value as the output address of the previous stage (the butterfly calculators 11 and 12 and Similarly, the storage unit 22 has a double buffer configuration including the first and second storage areas, and the data write / read process is the same).

バタフライ演算器14において、FFT長が256個であることを示すFFT長情報がセレクタ25へ入力されているため、セレクタ25は出力アドレス生成256部25Bから入力される入力アドレスを記憶部22に対し出力する。
同様に、FFT長が256個であることを示すFFT長情報がセレクタ28へ入力されているため、セレクタ28は因子アドレス生成256部28Bから入力される因子アドレスをFFT回転因子テーブル27に対し出力する。
In the butterfly calculator 14, the FFT length information indicating that the FFT length is 256 is input to the selector 25, so that the selector 25 inputs the input address input from the output address generation unit 256 B to the storage unit 22. Output.
Similarly, since FFT length information indicating that the FFT length is 256 is input to the selector 28, the selector 28 outputs the factor address input from the factor address generation 256 unit 28B to the FFT twiddle factor table 27. To do.

このとき、出力アドレス生成256部25Bは、複素加減算部27により、(7)式の演算が行われるため、すなわち1の位の桁kについての和を求めるため、k以外のn,n,nを固定し、x(0,0,0,k)としてkを0,1,2,3で変化させ、中間データx(0),x(1),x(2),x(3)を読み出すアドレスを生成し、次にx(0,0,1,k)としてkを0,1,2,3で変化させ、x(4),x(5),x(6),x(7)として、順次出力アドレスを生成する。
これにより、記憶部22に書き込まれた中間データが、出力アドレス生成256部25Bの出力する出力アドレスにより、読み出されて複素複素乗算部26へ出力される。
At this time, the output address generation 256 parts 25B are by the complex addition and subtraction unit 27, (7) for calculating the expression is carried out, i.e., to determine the sum of the position of the digit k 0 of 1, n 0 except k 0, n 1 and n 2 are fixed, and k 0 is changed by 0 , 1, 2, 3 as x 3 (0, 0, 0, k 0 ), and intermediate data x 3 (0), x 3 (1), An address for reading x 3 (2) and x 3 (3) is generated, and then k 0 is changed to 0 , 1, 2, 3 as x 3 (0, 0, 1, k 0 ), and x 3 ( Output addresses are sequentially generated as 4), x 3 (5), x 3 (6), and x 3 (7).
Thus, the intermediate data written in the storage unit 22 is read out and output to the complex complex multiplication unit 26 by the output address output from the output address generation unit 256B.

すなわち、上記出力アドレス生成256部25Bは、バタフライ演算器12から入力される中間データx(k)を、複素加減算部27にて、係数「W n3k0」に対応して複素加減算する際の、中間データの組となるように、記憶部22(例えば、第1の記憶領域)に記憶されている入力順に対して並べ替える出力アドレスを生成して出力する。
同様に、FFT回転因子テーブル27は、因子アドレス生成256部28Bから出力される因子アドレスに対応した回転因子である係数「W (16n2+4n1+n0)k0」を出力する。
ここで、バタフライ演算器13のFFT回転因子テーブル27は、各FFT長毎に対応したテーブルを有している。これらのテーブルには、第4のステージであるバタフライ演算器14において、記憶部22から出力される中間データx(k)各々に複素乗算する係数が、FFT長毎に記憶されている。
That is, the output address generation unit 256B performs complex addition / subtraction on the intermediate data x 3 (k) input from the butterfly calculator 12 in the complex addition / subtraction unit 27 corresponding to the coefficient “W 4 n3k0 ”. Then, an output address to be rearranged in the input order stored in the storage unit 22 (for example, the first storage area) is generated and output so as to be a set of intermediate data.
Similarly, the FFT twiddle factor table 27 outputs a coefficient “W N (16n2 + 4n1 + n0) k0 ”, which is a twiddle factor corresponding to the factor address output from the factor address generation 256 unit 28B.
Here, the FFT twiddle factor table 27 of the butterfly calculator 13 has a table corresponding to each FFT length. In these tables, coefficients for complex multiplication of each intermediate data x 3 (k) output from the storage unit 22 in the butterfly computing unit 14 as the fourth stage are stored for each FFT length.

次に、複素複素乗算部26は、バタフライ演算器13で説明したと同様に、記憶部22から出力される中間データ各々に、FFT回転因子テーブル27から出力される係数を順次複素乗算して、シリアル/パラレル変換部30へ出力する。
この後の、シリアル・パラレル変換部30,複素加減算部27及びパラレル/シリアル変換部31における処理は、バタフライ演算器13の場合と同様のため、説明を省略する。
そして、バタフライ演算器12は、第4ステージのバタフライ演算の結果として、中間データ列x(k),0≦k≦256を出力する。
上述したように、バタフライ演算器14も、バタフライ演算器12と同様な処理により、第4ステージにおける中間データ列x(k),0≦k≦256を出力する。
Next, as described in the butterfly calculator 13, the complex complex multiplier 26 sequentially performs complex multiplication of the coefficients output from the FFT twiddle factor table 27 on each intermediate data output from the storage unit 22. The data is output to the serial / parallel converter 30.
The subsequent processing in the serial / parallel conversion unit 30, the complex addition / subtraction unit 27, and the parallel / serial conversion unit 31 is the same as in the case of the butterfly computing unit 13, and thus the description thereof is omitted.
Then, the butterfly calculator 12 outputs an intermediate data string x 4 (k), 0 ≦ k ≦ 256 as a result of the fourth stage butterfly calculation.
As described above, the butterfly calculator 14 also outputs the intermediate data string x 4 (k), 0 ≦ k ≦ 256 in the fourth stage, by the same processing as the butterfly calculator 12.

ここで、FFT長情報がFFT長が256個であることを示しているため、セレクタ16は、バタフライ演算器14の中間データx,0≦k≦256を選択して、FFT演算結果であるX(n),0≦n≦256として出力する。
したがって、バタフライ演算器14は、FFT長が256個である場合に、入力信号である信号列{x(0),x(1),x(2),x(3),…,x(254),x(255)}のFFT演算結果である出力信号{X(0),X(1),X(2),X(3),…,X(254),X(255)}を出力し、FFT演算回路1のFFT演算結果とする。
Here, since the FFT length information indicates that the FFT length is 256, the selector 16 selects the intermediate data x 4 , 0 ≦ k ≦ 256 of the butterfly calculator 14 and is the FFT operation result. Output as X (n), 0 ≦ n ≦ 256.
Therefore, when the FFT length is 256, the butterfly computing unit 14 is a signal sequence {x (0), x (1), x (2), x (3),. ), X (255)} output signals {X (0), X (1), X (2), X (3),..., X (254), X (255)} that are the FFT operation results The FFT calculation result of the FFT calculation circuit 1 is used.

上述したように、バタフライ演算器11,12,13,14及び15各々は、FFT長が64,256及び1024個の場合それぞれにおいて、入力信号である信号または中間データに対して、係数の複素乗算及び、係数が複素乗算された信号(サンプルまたは中間データ)の加減演算に対応して、記憶部22からの信号(中間データ)の読み出し順の変更処理と、FFT回転因子テーブル27に記憶された係数の数値とが異なっているが、基本的に同様な処理を行っている。   As described above, the butterfly calculators 11, 12, 13, 14, and 15 each perform complex multiplication of a coefficient on a signal that is an input signal or intermediate data when the FFT length is 64, 256, and 1024, respectively. In addition, in response to the addition / subtraction operation of the signal (sample or intermediate data) obtained by complex multiplication of the coefficients, the process of changing the reading order of the signal (intermediate data) from the storage unit 22 and the FFT twiddle factor table 27 are stored. Although the numerical values of the coefficients are different, basically the same processing is performed.

また、バタフライ演算器11,12,13,14及び15は、入力される信号、または前段からの中間データのバタフライ演算を行うため、各々の構成違いとして以下の点にある。
バタフライ演算器11,12及び13は、信号及び中間データに対するバタフライ演算を行う必要があるため、FFT長が64、256及び1024個の場合に対応して、入力アドレス生成部23に入力アドレス生成64部23A,入力アドレス生成256部23B及び入力アドレス生成1024部23Cが設けられ、出力アドレス生成部25に出力アドレス生成64部25A,出力アドレス生成256部25B,出力アドレス生成1024部25C、また因子アドレス生成部28に因子アドレス生成64部28A,因子アドレス生成256部25B,因子アドレス生成1024部25Cが設けられ、FFT回転因子テーブル27にFFT長64、256,1024それぞれの場合の係数が記憶されている。また、バタフライ演算器11,12及び13のセレクタ24、28及び29は、上述した構成に対応して、FFT長がFFT長64、256,1024の場合に対応して切り替えられる。
The butterfly calculators 11, 12, 13, 14, and 15 perform the butterfly calculation of the input signal or the intermediate data from the previous stage.
Since the butterfly calculators 11, 12, and 13 need to perform a butterfly operation on the signal and the intermediate data, the input address generator 64 receives the input address generator 64 corresponding to the cases where the FFT length is 64, 256, and 1024. 23A, input address generation 256 unit 23B, and input address generation 1024 unit 23C are provided. The output address generation unit 25 includes output address generation 64 unit 25A, output address generation 256 unit 25B, output address generation 1024 unit 25C, and factor address. The generation unit 28 is provided with a factor address generation unit 64A, a factor address generation unit 256B, and a factor address generation unit 1024 unit 25C, and the FFT twiddle factor table 27 stores coefficients for the FFT lengths 64, 256, and 1024, respectively. Yes. In addition, the selectors 24, 28, and 29 of the butterfly calculators 11, 12, and 13 are switched corresponding to the cases where the FFT length is the FFT length 64, 256, and 1024 corresponding to the above-described configuration.

しかしながら、バタフライ演算器14は、FFT長が64の場合においてバタフライ演算を行う必要がないため、FFT長が256及び1024個の場合に対応して、入力アドレス生成部23に入力アドレス生成256部23B及び入力アドレス生成1024部23Cが設けられ、出力アドレス生成部25に出力アドレス生成256部25B,出力アドレス生成1024部25C、また因子アドレス生成部28に因子アドレス生成256部25B,因子アドレス生成1024部25Cが設けられ、FFT回転因子テーブル27にFFT長256,1024それぞれの場合の係数が記憶されている。また、バタフライ演算器14のセレクタ24、28及び29は、上述した構成に対応して、FFT長がFFT長256,1024の場合に対応して切り替えられる。   However, since the butterfly computing unit 14 does not need to perform the butterfly computation when the FFT length is 64, the input address generation unit 256B and the input address generation unit 256B correspond to the cases where the FFT length is 256 and 1024. The output address generation unit 25 includes an output address generation unit 256B and an output address generation unit 1024C, and the factor address generation unit 28 includes a factor address generation unit 256B and a factor address generation unit 1024. 25C is provided, and the coefficients for the FFT lengths 256 and 1024 are stored in the FFT twiddle factor table 27, respectively. Further, the selectors 24, 28, and 29 of the butterfly computing unit 14 are switched corresponding to the cases where the FFT lengths are the FFT lengths 256 and 1024 corresponding to the above-described configuration.

同様に、バタフライ演算器15は、FFT長が1024の場合においてのみ、バタフライ演算を行うため、FFT長が1024個の場合に対応して、入力アドレス生成部23に入力アドレス生成1024部23Cが設けられ、出力アドレス生成部25に出力アドレス生成1024部25C、また因子アドレス生成部28に因子アドレス生成1024部25Cが設けられ、FFT回転因子テーブル27に信号1024の係数が記憶されている。また、バタフライ演算器14には、FFT長が1024個の場合のみの入力アドレス,出力アドレス及び因子アドレス、そして、中間データに複素乗算する係数しか必要とされないため、セレクタが設けられていない。   Similarly, the butterfly calculator 15 performs the butterfly calculation only when the FFT length is 1024. Therefore, the input address generation unit 23 is provided with an input address generation 1024 unit 23C corresponding to the case where the FFT length is 1024. The output address generation unit 25 is provided with an output address generation unit 1024 unit 25C, the factor address generation unit 28 is provided with a factor address generation unit 1024 unit 25C, and the FFT twiddle factor table 27 stores the coefficient of the signal 1024. The butterfly computing unit 14 is not provided with a selector because only an input address, an output address, a factor address, and a coefficient for complex multiplication of intermediate data are required only when the FFT length is 1024.

ここで、バタフライ演算器14及び15も、バタフライ演算器セルとして、バタフライ演算器11〜13と同様な回路構成とし、必要な部分のみ使用するように構成してもよい。
また、バタフライ演算器14及び15は、FFT長情報がFFT長64を示している場合に動作を停止し、バタフライ演算器15は、FFT長情報がFFT長256を示している場合に動作を停止するように構成してもよい。
Here, the butterfly computing units 14 and 15 may also be configured as a butterfly computing unit cell having the same circuit configuration as the butterfly computing units 11 to 13 and using only necessary portions.
The butterfly calculators 14 and 15 stop operating when the FFT length information indicates the FFT length 64, and the butterfly calculator 15 stops operating when the FFT length information indicates the FFT length 256. You may comprise.

また、信号順変換部としての、入力アドレス生成部23,出力アドレス生成部25及び記憶部22において、上述した構成では、記憶部22の連続したアドレスに、入力された順番に、記憶部21が順次信号を書き込んでいた。そして、FFT長に対応して、出力アドレス生成部25が、複素乗算する順番に記憶部22から信号を読み出す出力アドレスを生成するようにした。
しかしながら、信号順変換部として、記憶部22に書き込む入力アドレスを、信号が複素乗算される順番に連続して記憶部22に記憶されるアドレスとして生成し、その入力アドレスに対応して、入力する信号を順次記憶部22に書き込むようにしてもよい。これにより、上述した実施形態と同様に、入力される信号順を各演算を行う順番に変換することができる。これにより、出力アドレス生成部25は記憶部22の連続したアドレスを生成し、順次、記憶部22から信号を読み出すこととなる。
Moreover, in the input address generation unit 23, the output address generation unit 25, and the storage unit 22 as the signal order conversion unit, in the above-described configuration, the storage unit 21 is arranged in the input order in consecutive addresses of the storage unit 22. The signal was written sequentially. Then, in correspondence with the FFT length, the output address generation unit 25 generates output addresses for reading signals from the storage unit 22 in the order of complex multiplication.
However, as a signal order conversion unit, an input address to be written in the storage unit 22 is generated as an address stored in the storage unit 22 successively in the order in which the signal is complex-multiplied, and input corresponding to the input address. You may make it write a signal in the memory | storage part 22 sequentially. Thereby, similarly to the above-described embodiment, the input signal order can be converted into the order in which each calculation is performed. As a result, the output address generation unit 25 generates continuous addresses in the storage unit 22 and sequentially reads signals from the storage unit 22.

また、上述した本実施形態のFFT演算回路は、各バタフライ演算器における回転因子のテーブルにおける係数と、加減演算の式とを変更することにより、逆FFT演算回路として用いることが可能である。   Further, the above-described FFT operation circuit of this embodiment can be used as an inverse FFT operation circuit by changing the coefficient in the table of twiddle factors in each butterfly operation unit and the equation for addition / subtraction operation.

本発明の一実施形態によるFFT演算回路の構成例を示すブロック図である。It is a block diagram which shows the structural example of the FFT operation circuit by one Embodiment of this invention. 図1におけるバタフライ演算器11(または、12、13,14,15)の構成例を示すブロック図である。It is a block diagram which shows the structural example of the butterfly computing unit 11 (or 12, 13, 14, 15) in FIG. 図2における記憶部22のメモリ空間を説明する概念図である。It is a conceptual diagram explaining the memory space of the memory | storage part 22 in FIG. 図2におけるFFT回転因子テーブルの構成を説明する概念図である。It is a conceptual diagram explaining the structure of the FFT twiddle factor table in FIG.

符号の説明Explanation of symbols

1…FFT演算回路
11,12,13,14,15…バタフライ演算器
16,24,28,29…セレクタ
22…記憶部
23…入力アドレス生成部
23A…入力アドレス生成63部
23B…入力アドレス生成256部
23C…入力アドレス生成1024部
25…出力アドレス生成部
25A…出力アドレス生成63部
25B…出力アドレス生成256部
25C…出力アドレス生成1024部
26…複素複素乗算部
27…複素加減算部
28…因子アドレス生成部
28A…因子アドレス生成63部
28B…因子アドレス生成256部
28C…因子アドレス生成1024部
30…シリアル/パラレル変換部
31…パラレル/シリアル変換部
32…タイミング生成部
DESCRIPTION OF SYMBOLS 1 ... FFT operation circuit 11, 12, 13, 14, 15 ... Butterfly calculator 16, 24, 28, 29 ... Selector 22 ... Memory | storage part 23 ... Input address generation part 23A ... Input address generation 63 part 23B ... Input address generation 256 Unit 23C ... input address generation 1024 unit 25 ... output address generation unit 25A ... output address generation 63 unit 25B ... output address generation 256 unit 25C ... output address generation 1024 unit 26 ... complex complex multiplication unit 27 ... complex addition / subtraction unit 28 ... factor address Generation unit 28A ... factor address generation 63 unit 28B ... factor address generation 256 unit 28C ... factor address generation 1024 unit 30 ... serial / parallel conversion unit 31 ... parallel / serial conversion unit 32 ... timing generation unit

Claims (4)

複数の直列に接続されたバタフライ演算部からなり、演算対象のFFT長を任意に選択して設定するFFT演算回路であり、
前記バタフライ演算部が、
入力される信号を一旦格納する一時記憶部を備え、バタフライ演算において複素乗算及び複素加減算を行う順番に、順次信号を読み出す信号順変換部と、
FFT長及びバタフライ演算部の段数に対応して、各信号に複素乗算する複素係数が記憶された複素係数記憶部と、
読み出された前記信号毎に、前記複素係数記憶部から対応する複素係数を順次読み出して複素乗算する複素乗算部と、
該複素乗算部から出力される、複素係数が複素乗算された信号に対し、順次複素加減算を行う複素加減算部と
を有し、
前記バタフライ演算部の間はシリアルで信号が転送され、前記複素乗算部から出力されるシリアル信号はシリアル/パラレル変換部でパラレル信号に変換されて前記複素加減算部に入力され、前記複素加減算部から出力されるパラレル信号はパラレル/シリアル変換部でシリアル信号に変換されて、次段のバタフライ演算部に入力されることを特徴とするFFT演算回路。
An FFT operation circuit comprising a plurality of butterfly operation units connected in series, arbitrarily selecting and setting the FFT length to be calculated,
The butterfly computing unit is
A signal storage unit that temporarily stores an input signal, a signal forward conversion unit that sequentially reads out signals in order of performing complex multiplication and complex addition / subtraction in butterfly computation;
Corresponding to the FFT length and the number of stages of the butterfly operation unit, a complex coefficient storage unit that stores complex coefficients for complex multiplication of each signal,
For each of the read signals, a complex multiplication unit that sequentially reads out corresponding complex coefficients from the complex coefficient storage unit and performs complex multiplication,
Output from the complex-multiplication unit, on signals complex coefficients are complex-multiplied, possess a complex addition and subtraction unit for performing sequential complex addition and subtraction,
A serial signal is transferred between the butterfly operation units, and a serial signal output from the complex multiplication unit is converted into a parallel signal by a serial / parallel conversion unit and input to the complex addition / subtraction unit. The output parallel signal is converted into a serial signal by a parallel / serial conversion unit and input to a butterfly calculation unit at the next stage .
FFT長により、前記複数のバタフライ演算部のいずれの演算結果をFFT演算結果として出力するかを選択するセレクタを有することを特徴とする請求項1記載のFFT演算回路   2. The FFT operation circuit according to claim 1, further comprising a selector that selects which operation result of the plurality of butterfly operation units is output as an FFT operation result according to an FFT length. 前記信号順変換部が、
入力される前記信号を順次前記一時記憶部に書き込む入力アドレスを生成する入力アドレス生成部と、
FFT長に対応して、複素乗算部が読み出した前記複素係数を複素乗算する順番に読み出す出力アドレスを生成する出力アドレス生成部と、
該出力アドレスに対応して、前記一時記憶部から信号を順次読み出す読出回路と
を有することを特徴とする請求項1または請求項2に記載のFFT演算回路。
The signal forward conversion unit,
An input address generation unit for generating an input address for sequentially writing the input signals to the temporary storage unit;
An output address generation unit that generates an output address that is read in the order of complex multiplication of the complex coefficients read by the complex multiplication unit, corresponding to the FFT length;
The FFT operation circuit according to claim 1, further comprising: a readout circuit that sequentially reads out signals from the temporary storage unit corresponding to the output address.
前記信号順変換部がFFT長に対応した複数の入力アドレス生成部と複数の出力アドレス生成部を有し、選択されたFFT長に対応した入力アドレス生成部及び出力アドレス生成部を選択し、入力アドレス及び出力アドレスを生成することを特徴とする請求項3に記載のFFT演算回路。   The signal order conversion unit has a plurality of input address generation units and a plurality of output address generation units corresponding to the FFT length, selects an input address generation unit and an output address generation unit corresponding to the selected FFT length, and inputs 4. The FFT operation circuit according to claim 3, wherein an address and an output address are generated.
JP2005366731A 2005-12-20 2005-12-20 FFT operation circuit Active JP4791172B2 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2005366731A JP4791172B2 (en) 2005-12-20 2005-12-20 FFT operation circuit
KR1020060101573A KR100878765B1 (en) 2005-12-20 2006-10-18 Circuit for FFT Operation
US11/641,864 US7979485B2 (en) 2005-12-20 2006-12-20 Circuit for fast fourier transform operation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005366731A JP4791172B2 (en) 2005-12-20 2005-12-20 FFT operation circuit

Publications (2)

Publication Number Publication Date
JP2007172157A JP2007172157A (en) 2007-07-05
JP4791172B2 true JP4791172B2 (en) 2011-10-12

Family

ID=38298659

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005366731A Active JP4791172B2 (en) 2005-12-20 2005-12-20 FFT operation circuit

Country Status (2)

Country Link
JP (1) JP4791172B2 (en)
KR (1) KR100878765B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101969542B1 (en) * 2017-12-21 2019-04-16 엘아이지넥스원 주식회사 Apparatus for generating IP address using user information and system for communicating D2D with the apparatus and method thereof

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5887655A (en) * 1981-11-20 1983-05-25 Asahi Chem Ind Co Ltd High speed fourier transformation device of pipeline
JP2848134B2 (en) * 1992-07-03 1999-01-20 富士通株式会社 Variable fast Fourier transform circuit
JP3757782B2 (en) * 2000-10-30 2006-03-22 日本電気株式会社 FFT operation circuit
JP3917522B2 (en) * 2001-02-28 2007-05-23 富士通株式会社 Fourier transform device
KR100444729B1 (en) * 2001-12-24 2004-08-16 한국전자통신연구원 Fast fourier transform apparatus using radix-8 single-path delay commutator and method thereof
KR100846485B1 (en) * 2002-04-09 2008-07-17 삼성전자주식회사 Method and apparatus of hadamard transform
US7415584B2 (en) * 2003-11-26 2008-08-19 Cygnus Communications Canada Co. Interleaving input sequences to memory
KR100576520B1 (en) * 2003-12-01 2006-05-03 전자부품연구원 Variable fast fourier transform processor using iteration algorithm

Also Published As

Publication number Publication date
KR100878765B1 (en) 2009-01-14
JP2007172157A (en) 2007-07-05
KR20070065778A (en) 2007-06-25

Similar Documents

Publication Publication Date Title
KR100313501B1 (en) Fft processor with cbfp algorithm
KR20150132287A (en) Vector processing engines having programmable data path configurations for providing multi-mode radix-2x butterfly vector processing circuits, and related vector processors, systems, and methods
CN114968173A (en) Polynomial multiplication method and polynomial multiplier based on NTT and INTT structures
Lenart et al. A 2048 complex point FFT processor using a novel data scaling approach
US7979485B2 (en) Circuit for fast fourier transform operation
RU2700194C1 (en) Unified reconfigurable fast fourier transform switching circuit and method of its formation
JP4791172B2 (en) FFT operation circuit
US8788558B2 (en) Method and device for transform computation
US4991132A (en) Apparatus for executing division by high-speed convergence processing
JPWO2011102291A1 (en) Fast Fourier transform circuit
US7925213B2 (en) Method and system for audio signal processing for Bluetooth wireless headsets using a hardware accelerator
JP6687803B2 (en) Systems and methods for piecewise linear approximation
JP3065979B2 (en) Fast Fourier transform apparatus and method, variable bit reverse circuit, inverse fast Fourier transform apparatus and method, and OFDM reception and transmission apparatus
CN114281304A (en) Random calculation method, circuit, chip and equipment
Muscedere et al. On efficient techniques for difficult operations in one and two-digit DBNS index calculus
JP3913921B2 (en) Circuit for reciprocal of arbitrary element in finite field
JPH1139289A (en) Arithmetic circuit
Ho Design and Implementation of a Polynomial Basis Multiplier Architecture Over GF (2 m)
Chen et al. Optimal circuits for parallel bit reversal
Hazarika et al. High performance multiplierless serial pipelined VLSI architecture for real-valued FFT
US20210342102A1 (en) Signal processing apparatus, method, program, and recording medium
RU2730174C1 (en) Reconfigurable fast fourier transform computer of super-long transform length
JP4461669B2 (en) Arithmetic system
JP2697619B2 (en) N-point FFT dedicated processor
JPS6220590B2 (en)

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080925

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110223

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110301

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110601

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: 20110621

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110721

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140729

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4791172

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250