(57)【特許請求の範囲】
【請求項１】
入力された第１乃至第４のデータに対してバタフライ演算を行う演算装置において、
基数２または基数４の何れのバタフライ演算を実行するかを示す信号が入力される入力手段と、
前記第２乃至第４のデータにそれぞれ第１乃至第３の係数を乗算することにより第５乃至第７のデータを算出する乗算手段と、
前記入力手段より基数２の演算を実行することを示す信号が入力された場合、前記第１のデータ、前記第３のデータ、前記第５のデータ、および、前記第７のデータを用いて、２組の基数２のバタフライ演算の演算結果を算出し、前記入力手段より基数４の演算を実行することを示す信号が入力された場合、前記第１のデータ、前記第５のデータ、前記第６のデータ、および、前記第７のデータを用いて、１組の基数４のバタフライ演算の演算結果を算出する演算手段と
を備えることを特徴とする演算装置。
【請求項２】
前記演算手段は、
前記第１のデータ、前記第３のデータ、前記第３のデータを−１倍したデータ、前記第５のデータ、前記第５のデータを−１倍、ｊ倍、または、−ｊ倍したデータ、前記第６のデータ、前記第６のデータを−１倍したデータ、前記第７のデータ、および、前記第７のデータを−１倍、ｊ倍、または、−ｊ倍したデータのうち所定の組み合わせのデータを加算する加算手段と、
前記入力手段から入力される信号に応じて、前記加算手段により算出されたデータを選択する選択手段と
を備える
ことを特徴とする請求項１に記載の演算装置。
【請求項３】
前記加算手段は、
前記第１のデータ、および、第５のデータを加算する第１の加算手段と、
前記第１のデータ、前記第５のデータ、前記第６のデータ、および、前記第７のデータを加算する第２の加算手段と、
前記第１のデータ、および、第５のデータを−１倍したデータを加算する第３の加算手段と、
前記第１のデータ、前記第５のデータを−ｊ倍したデータ、前記第６のデータを−１倍したデータ、および、前記第７のデータをｊ倍したデータを加算する第４の加算手段と、
前記第３のデータ、および、第７のデータを加算する第５の加算手段と、
前記第１のデータ、前記第５のデータを−１倍したデータ、前記第６のデータ、および、前記第７のデータを−１倍したデータを加算する第６の加算手段と、
前記第３のデータ、および、第７のデータを−１倍したデータを加算する第７の加算手段と、
前記第１のデータ、前記第５のデータをｊ倍したデータ、前記第６のデータを−１倍したデータ、および、前記第７のデータを−ｊ倍したデータを加算する第８の加算手段と
を備え、
前記選択手段は、
前記入力手段より基数２の演算を実行することを示す信号が入力された場合、前記第１の加算手段により算出されたデータを選択し、前記入力手段より基数４の演算を実行することを示す信号が入力された場合、前記第２の加算手段により算出されたデータを選択する第１の選択手段と、
前記入力手段より基数２の演算を実行することを示す信号が入力された場合、前記第３の加算手段により算出されたデータを選択し、前記入力手段より基数４の演算を実行することを示す信号が入力された場合、前記第４の加算手段により算出されたデータを選択する第２の選択手段と、
前記入力手段より基数２の演算を実行することを示す信号が入力された場合、前記第５の加算手段により算出されたデータを選択し、前記入力手段より基数４の演算を実行することを示す信号が入力された場合、前記第６の加算手段により算出されたデータを選択する第３の選択手段と、
前記入力手段より基数２の演算を実行することを示す信号が入力された場合、前記第７の加算手段により算出されたデータを選択し、前記入力手段より基数４の演算を実行することを示す信号が入力された場合、前記第８の加算手段により算出されたデータを選択する第４の選択手段と
を備える
ことを特徴とする請求項２に記載の演算装置。
【請求項４】
入力されたデータの数に応じて、基数２または基数４の何れのバタフライ演算を実行するかを示す信号を生成する信号生成手段を更に備える
ことを特徴とする請求項１に記載の演算装置。
【請求項５】
入力された第１乃至第４のデータに対してバタフライ演算を行う演算方法において、
基数２または基数４の何れのバタフライ演算を実行するかを示す信号が入力される入力ステップと、
前記第２乃至第４のデータにそれぞれ第１乃至第３の係数を乗算することにより第５乃至第７のデータを算出する乗算ステップと、
前記入力ステップから基数２の演算を実行することを示す信号が入力された場合、前記第１のデータ、前記第３のデータ、前記第５のデータ、および、前記第７のデータを用いて、２組の基数２のバタフライ演算の演算結果を算出し、前記入力ステップから基数４の演算を実行することを示す信号が入力された場合、前記第１のデータ、前記第５のデータ、前記第６のデータ、および、前記第７のデータを用いて、１組の基数４のバタフライ演算の演算結果を算出する演算ステップと
を備えることを特徴とする演算方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、信号処理装置および信号処理方法に関し、特に、高速離散フーリエ変換等において多用される信号処理装置および信号処理方法に関する。
【０００２】
【従来の技術】
例えば、ＤＶＢ−Ｔ（Digital Video Broadcasting-Terrestrial）などに用いられている高速離散フーリエ変換（ＦＦＴ：Fast Fourier Transform）はバタフライ演算と呼ばれる複素演算の繰り返しにより実現される。
【０００３】
ところで、バタフライ演算は基数と呼ばれる数により同時に演算するデータ数が異なり、一度のＦＦＴにおけるバタフライ演算の繰り返し回数もこの基数に依存して異なる。
【０００４】
一般的には、種々の利便性（例えば、構成の簡易性など）から基数４のバタフライ演算回路が用いられる事が多いが、ＦＦＴ演算の対象となるデータ数（これをＦＦＴのポイント数と呼ぶ）が４のべき乗で無い場合は基数４のバタフライ演算のみでＦＦＴを行うことは出来ない。
【０００５】
その場合、基数４のバタフライ演算回路と基数２のバタフライ演算を適宜組み合わせて用いなければならない。従って、回路構成上は、基数２のバタフライ演算回路を追加する必要が生ずる。
【０００６】
図５に従来の基数４のバタフライ演算回路（図５（Ａ））および基数２のバタフライ演算回路（図５（Ｂ））の一例を示す。
【０００７】
図５（Ａ）に示す回路は基数４のバタフライ演算回路であり、複素乗算回路１乃至３および複素加算回路４乃至７により構成されている。また、図の左側の黒丸と、図の右側の複素加算回路４乃至７を結ぶ信号線は、入力された複素データを１倍、−１倍、ｊ倍、または、−ｊ倍して出力するようになされている。
【０００８】
なお、入力データＩＡ０乃至ＩＡ３はそれぞれ複素データである。また、ＩＢ１乃至ＩＢ３は、複素定数データであり、例えば、ＲＯＭなどに格納されたデータが読み出されて供給されるようになされている。
【０００９】
次に、以上の従来例の動作について説明する。
【００１０】
複素乗算回路１乃至３は、ＩＡ１とＩＢ１、ＩＡ２とＩＢ２、ＩＡ３とＩＢ３をそれぞれ複素乗算し、演算結果を出力する。
【００１１】
入力データＩＡ０は、複素加算回路４乃至５にそれぞれ入力される。複素乗算回路１の出力は、１倍、−ｊ倍、−１倍、または、ｊ倍されて、それぞれ、複素加算回路４乃至７に入力される。複素乗算回路２の出力は、１倍、−１倍、１倍、または、−１倍されて、それぞれ、複素加算回路４乃至５に入力される。複素乗算回路３の出力は、１倍、ｊ倍、−１倍、または、−ｊ倍されて、それぞれ、複素加算回路４乃至７に入力される。
【００１２】
複素加算回路４乃至７は、入力データＩＡ０および、複素乗算回路１乃至３の出力を定数倍（１倍、−１倍、ｊ倍、または、−ｊ倍）したものをそれぞれ加算し、演算結果をＯ０乃至Ｏ３として出力する。
【００１３】
以上のような回路により、基数４のバタフライ演算を実行することができる。
【００１４】
次に、図５（Ｂ）を参照して、従来における、基数２のバタフライ演算回路の構成例について説明する。
【００１５】
図５（Ｂ）は、従来における基数２のバタフライ演算回路の構成例を示している。この図に示すように、基数２のバタフライ演算回路は、複素乗算回路８および複素加算回路９，１０により構成されている。なお、ＩＡ０，ＩＡ１は入力データを示しており、また、ＩＢ１は、例えば、ＲＯＭなどに格納されている定数データを示している。
【００１６】
次に、以上の構成例の動作について説明する。
【００１７】
入力データＩＡ０は、複素加算回路９および複素加算回路１０にそれぞれ入力される。また、入力データＩＡ１と定数データＩＢ１は、複素乗算回路８に入力され、そこで複素乗算が行われた後、複素加算回路９に供給されるとともに、−１倍されて複素加算回路１０に供給される。
【００１８】
複素加算回路９は、入力データＩＡ０と複素乗算回路８の出力とを加算して、得られたデータをＯ０として出力する。また、複素加算回路１０は、入力データＩＡ０と複素乗算回路８の出力が−１倍されたものとを加算してＯ１として出力する。
【００１９】
以上のような構成により、基数２のバタフライ演算を実行することができる。
【００２０】
【発明が解決しようとする課題】
ところで、ポイント数が４のべき乗では無い場合には、前述の基数４および基数２のバタフライ演算回路の双方を用いてＦＦＴ回路を構成する必要があり、ポイント数が４のべき乗の場合のＦＦＴ回路に比べて基数２のバタフライ演算回路（図５（Ｂ）の回路）の分だけ回路規模が増大する。しかも基数２のバタフライ演算回路はＦＦＴの処理過程において一部でしか用いられないので、使用頻度の少ない回路を別途形成しなければならない負担は甚大である。
【００２１】
本発明は、以上のような状況に鑑みてなされたものであり、ポイント数が４のべき乗ではないＦＦＴ回路において、基数２のバタフライ演算回路を別途形成する手間を省くことを目的とし、以て、回路資源の有効利用を図ることを目的とするものである。
【００２２】
【課題を解決するための手段】
請求項１に記載の演算装置は、入力された第１乃至第４のデータに対してバタフライ演算を行う演算装置において、基数２または基数４の何れのバタフライ演算を実行するかを示す信号が入力される入力手段と、第２乃至第４のデータにそれぞれ第１乃至第３の係数を乗算することにより第５乃至第７のデータを算出する乗算手段と、入力手段より基数２の演算を実行することを示す信号が入力された場合、第１のデータ、第３のデータ、第５のデータ、および、第７のデータを用いて、２組の基数２のバタフライ演算の演算結果を算出し、入力手段より基数４の演算を実行することを示す信号が入力された場合、第１のデータ、第５のデータ、第６のデータ、および、第７のデータを用いて、１組の基数４のバタフライ演算の演算結果を算出する演算手段とを備えることを特徴とする。
【００２３】
請求項５に記載の演算方法は、入力された第１乃至第４のデータに対してバタフライ演算を行う演算方法において、基数２または基数４の何れのバタフライ演算を実行するかを示す信号が入力される入力ステップと、第２乃至第４のデータにそれぞれ第１乃至第３の係数を乗算することにより第５乃至第７のデータを算出する乗算ステップと、入力ステップから基数２の演算を実行することを示す信号が入力された場合、第１のデータ、第３のデータ、第５のデータ、および、第７のデータを用いて、２組の基数２のバタフライ演算の演算結果を算出し、入力ステップから基数４の演算を実行することを示す信号が入力された場合、第１のデータ、第５のデータ、第６のデータ、および、第７のデータを用いて、１組の基数４のバタフライ演算の演算結果を算出する演算ステップとを備えることを特徴とする。
【００２４】
請求項１に記載の演算装置においては、基数２または基数４の何れのバタフライ演算を実行するかを示す信号が入力手段より入力され、第２乃至第４のデータにそれぞれ第１乃至第３の係数を乗算することにより第５乃至第７のデータを算出手段が算出し、入力手段より基数２の演算を実行することを示す信号が入力された場合、第１のデータ、第３のデータ、第５のデータ、および、第７のデータを用いて、２組の基数２のバタフライ演算の演算結果を演算手段が算出し、入力手段より基数４の演算を実行することを示す信号が入力された場合、第１のデータ、第５のデータ、第６のデータ、および、第７のデータを用いて、１組の基数４のバタフライ演算の演算結果を演算手段が算出する。
【００２５】
請求項５に記載の演算方法においては、基数２または基数４の何れのバタフライ演算を実行するかを示す信号が入力ステップより入力され、第２乃至第４のデータにそれぞれ第１乃至第３の係数を乗算することにより第５乃至第７のデータを乗算ステップが算出し、入力ステップから基数２の演算を実行することを示す信号が入力された場合、第１のデータ、第３のデータ、第５のデータ、および、第７のデータを用いて、２組の基数２のバタフライ演算の演算結果を演算ステップが算出し、入力ステップから基数４の演算を実行することを示す信号が入力された場合、第１のデータ、第５のデータ、第６のデータ、および、第７のデータを用いて、１組の基数４のバタフライ演算の演算結果を演算ステップが算出する。
【００２６】
【発明の実施の形態】
図１は、本発明の演算装置の動作原理を説明するための図である。この図において、図５（Ａ）と同一の部分には同一の符号を付してあるので、その説明は適宜省略する。
【００２７】
この図において、破線で示されている信号線が全て接続されている状態では、この回路は１組の基数４のバタフライ演算回路になる。これは、図５（Ａ）に示す基数４のバタフライ演算回路と同様の構成となっていることからも理解できる。
【００２８】
次に、破線で示されている信号線が接続されていない状態であって、かつ、以下に示すように各信号線の倍数が変更されると、図１に示す回路は、２組の基数２のバタフライ演算回路となる。
【００２９】
１  複素乗算回路１と複素加算回路５を結ぶ信号線の入力データに対する倍数を−ｊ倍から−１倍に変更する。
２  複素乗算回路３と複素加算回路６を結ぶ信号線の入力データに対する倍数を−１倍から１倍に変更する。
３  複素乗算回路２と複素加算回路７を結ぶ信号線の入力データに対する倍数を−１倍から１倍に変更する。
４  複素乗算回路３と複素加算回路７を結ぶ信号線の入力データに対する倍数を−ｊ倍から−１倍に変更する。
【００３０】
図２は、図１に示す破線で示す信号線の除去操作と、各信号線の倍数を変更する操作を可能とする回路の一例のブロック図を示している。
【００３１】
この図において、図１と対応する部分には、同一の符号を付してあるのでその説明は省略する。この図において、加算回路１０１乃至１１２は、２入力１出力の複素加算回路である。
【００３２】
セレクタ制御回路１００は、基数４の演算を行う場合は、セレクタ１１３乃至１２１に上側の入力端子を選択させ、また、基数２の演算を行う場合には、下側の入力端子を選択させるようになされている。
【００３３】
セレクタ１１３は、セレクタ制御回路１００の制御に従って、基数４の演算を行う場合は複素乗算回路２の出力を選択し、また、基数２の演算を行う場合には定数データＩＡ２を選択して出力するようになされている。
【００３４】
セレクタ１１４は、セレクタ制御回路１００の制御に従って、基数４の演算を行う場合は、−ｊ倍された複素乗算回路１の出力を選択して複素加算回路１０３に出力し、また、基数２の演算を行う場合には−１倍された複素乗算回路１の出力を選択して複素加算回路１０３に出力するようになされている。
【００３５】
セレクタ１１５は、セレクタ制御回路１００の制御に従って、基数４の演算を行う場合は、−１倍された複素乗算回路３の出力を選択して複素加算回路１０６に出力し、また、基数２の演算を行う場合には１倍された複素乗算回路３の出力を選択して複素加算回路１０６に出力するようになされている。
【００３６】
セレクタ１１６は、セレクタ制御回路１００の制御に従って、基数４の演算を行う場合は、−１倍されたセレクタ１１３の出力を選択して複素加算回路１０８に出力し、また、基数２の演算を行う場合には１倍されたセレクタ１１３の出力を選択して複素加算回路１０８に出力するようになされている。
【００３７】
セレクタ１１７は、セレクタ制御回路１００の制御に従って、基数４の演算を行う場合は、−ｊ倍された複素乗算回路３の出力を選択して複素加算回路１０８に出力し、また、基数２の演算を行う場合には−１倍された複素乗算回路３の出力を選択して複素加算回路１０８に出力するようになされている。
【００３８】
セレクタ１１８は、セレクタ制御回路１００の制御に従って、基数４の演算を行う場合は、複素加算回路１０９の出力を選択して出力し、また、基数２の演算を行う場合には複素加算回路１０１の出力を選択して出力するようになされている。
【００３９】
セレクタ１１９は、セレクタ制御回路１００の制御に従って、基数４の演算を行う場合は、複素加算回路１１０の出力を選択して出力し、また、基数２の演算を行う場合には複素加算回路１０３の出力を選択して出力するようになされている。
【００４０】
セレクタ１２０は、セレクタ制御回路１００の制御に従って、基数４の演算を行う場合は、複素加算回路１１１の出力を選択して出力し、また、基数２の演算を行う場合には複素加算回路１０６の出力を選択して出力するようになされている。
【００４１】
セレクタ１２１は、セレクタ制御回路１００の制御に従って、基数４の演算を行う場合は、複素加算回路１１２の出力を選択して出力し、また、基数２の演算を行う場合には複素加算回路１０８の出力を選択して出力するようになされている。
【００４２】
いま、セレクタ制御回路１００に基数２を選択する制御信号が入力され、その結果、セレクタ１１３乃至１２１が全て下側の入力端子を選択しているとする。その場合、セレクタ１１８は、複素加算回路１０１の出力を選択することになるので、出力Ｏ０は、以下の式により表すことができる。
【００４３】
Ｏ０＝ＩＡ０＋ＩＡ１×ＩＢ１  ・・・（１）
【００４４】
また、セレクタ１１９は、複素加算回路１０３の出力を選択しており、更に、複素加算回路１０３は、セレクタ１１４から出力されている−１倍された（ＩＡ１×ＩＢ１）と入力データＩＡ０とを加算して出力するので、出力Ｏ１は以下の式により表すことができる。
【００４５】
Ｏ１＝ＩＡ０−ＩＡ１×ＩＢ１  ・・・（２）
【００４６】
セレクタ１２０は、複素加算回路１０６の出力を選択しており、更に、複素加算回路１０６は、セレクタ１１５から出力されている１倍された（ＩＡ３×ＩＢ３）と定数データＩＡ２（セレクタ１１３により選択されているデータ）とを加算して出力するので、出力Ｏ２は以下の式により表すことができる。
【００４７】
Ｏ２＝ＩＡ２＋ＩＡ３×ＩＢ３  ・・・（３）
【００４８】
セレクタ１２１は、複素加算回路１０８の出力を選択しており、更に、複素加算回路１０８は、セレクタ１１６から出力されている１倍されたＩＡ２と、セレクタ１１７から出力されている−１倍された（ＩＡ３×ＩＢ３）とを加算して出力するので、出力Ｏ３は以下の式により表すことができる。
【００４９】
Ｏ３＝ＩＡ２−ＩＡ３×ＩＢ３  ・・・（４）
【００５０】
従って、セレクタ１１３乃至１２１が全て下側の入力端子を選択している場合には、以上の式（１）乃至（４）が示すように、図２に示す回路は、図５（Ｂ）に示す基数２のバタフライ演算回路となる。
【００５１】
次に、セレクタ１１３乃至１２１が全て上側の入力端子を選択している場合について説明する。
【００５２】
セレクタ１１８が上側の入力端子を選択している場合は、複素加算回路１０９の出力が選択されることになる。複素加算回路１０９は、複素加算回路１０１の出力と複素加算回路１０２の出力とを加算して出力するので、出力信号Ｏ０は、以下の式によって表すことができる。なお、このとき、セレクタ１１３は、複素乗算回路２の出力を選択している。
【００５３】
Ｏ０＝ＩＡ０＋ＩＡ１×ＩＢ１＋ＩＡ２×ＩＢ２＋ＩＡ３×ＩＢ３・・・（５）
【００５４】
セレクタ１１９が上側の入力端子を選択している場合は、複素加算回路１１０の出力が選択されることになる。複素加算回路１１０は、複素加算回路１０３の出力と複素加算回路１０４の出力とを加算して出力するので、出力信号Ｏ１は、以下の式によって表すことができる。なお、このとき、セレクタ１１４は、−ｊ倍された複素乗算回路１の出力を選択している。
【００５５】
Ｏ１＝ＩＡ０−ｊ・ＩＡ１×ＩＢ１−ＩＡ２×ＩＢ２＋ｊ・ＩＡ３×ＩＢ３・・・（６）
【００５６】
セレクタ１２０が上側の入力端子を選択している場合は、複素加算回路１１１の出力が選択されることになる。複素加算回路１１１は、複素加算回路１０５の出力と複素加算回路１０６の出力とを加算して出力するので、出力信号Ｏ２は、以下の式によって表すことができる。なお、このとき、セレクタ１１５は、−１倍された複素乗算回路３の出力を選択しているものとする。
【００５７】
Ｏ２＝ＩＡ０−ＩＡ１×ＩＢ１＋ＩＡ２×ＩＢ２−ＩＡ３×ＩＢ３・・・（７）
【００５８】
セレクタ１２１が上側の入力端子を選択している場合は、複素加算回路１１２の出力が選択されることになる。複素加算回路１１２は、複素加算回路１０７の出力と複素加算回路１０８の出力とを加算して出力するので、出力信号Ｏ３は、以下の式によって表すことができる。なお、このとき、セレクタ１１６は、−１倍されたセレクタ１１３の出力（ＩＡ２×ＩＢ２）を選択しており、また、セレクタ１１７は、−ｊ倍された複素乗算回路３の出力を選択している。
【００５９】
Ｏ３＝ＩＡ０＋ｊ・ＩＡ１×ＩＢ１−ＩＡ２×ＩＢ２−ｊ・ＩＡ３×ＩＢ３・・・（８）
【００６０】
従って、セレクタ１１３乃至１２１が全て上側の入力端子を選択している場合には、以上の式（５）乃至（８）が示すように、図２に示す回路は、図５（Ａ）に示す基数４のバタフライ演算回路となる。
【００６１】
次に、図３を参照して、実際の回路構成例について説明する。
【００６２】
図３は、実際の回路の構成例を示す回路図である。この図において、図２と対応する部分には、対応する符号が付してあるので、その説明は適宜省略する。
【００６３】
この図において、乗算回路１−１乃至１−４、および、加算回路１−５，１−６は、図２に示す複素乗算回路１を実数部と虚数部に分割したものである。即ち、加算回路１−５は、乗算回路１−１によって算出されたＩＡ１の実数部（ＩＡ１＿Ｒｅ）とＩＢ１の実数部（ＩＢ１＿Ｒｅ）の積から、乗算回路１−２によって算出されたＩＡ１の虚数部（ＩＡ１＿Ｉｍ）とＩＢ１の虚数部（ＩＢ１＿Ｉｍ）の積を減算して得られた結果を（ＩＡ１×ＩＢ１）の実数部として出力するようになされている。
【００６４】
加算回路１−６は、乗算回路１−３によって算出されたＩＡ１の実数部（ＩＡ１＿Ｒｅ）とＩＢ１の虚数部（ＩＢ１＿Ｉｍ）の積と、乗算回路１−４によって算出されたＩＡ１の虚数部（ＩＡ１＿Ｉｍ）とＩＢ１の実数部（ＩＢ１＿Ｒｅ）の積とを加算して、得られた結果を（ＩＡ１×ＩＢ１）の虚数部として出力するようになされている。
【００６５】
加算回路２−５，２−６，３−５，３−７も同様の演算処理を実行することにより、それぞれ、（ＩＡ２×ＩＢ２）の実数部、（ＩＡ２×ＩＢ２）の虚数部、（ＩＡ３×ＩＢ３）の実数部、または、（ＩＡ３×ＩＢ３）の虚数部を出力するようになされている。
【００６６】
セレクタ１１３−１，１１３−２は、図２に示すセレクタ１１３を実数部と虚数部に分割して示したものである。即ち、セレクタ１１３−１は、基数２の演算が選択された場合は上側の入力端子に入力されているＩＡ２の実数部（ＩＡ２＿Ｒｅ）を選択して出力し、基数４の円案が選択された場合には下側の入力端子に入力されている（ＩＡ２×ＩＢ２）の実数部を選択して出力する。同様に、セレクタ１１３−２は、基数２の演算が選択された場合は、上側の入力端子に入力されているＩＡ２の虚数部（ＩＡ２＿Ｉｍ）を選択して出力し、基数４の演算が選択された場合には下側の入力端子に入力されている（ＩＡ２×ＩＢ２）の虚数部を選択して出力する。
【００６７】
符号反転回路２００乃至２０５は、加算回路１−５，１−６、セレクタ１１３−１，１１３−２、加算回路３−５，３−６の出力データの符号を反転して出力するようになされている。
【００６８】
加算回路２１０乃至２２５は、回路前段の所定の２点の出力信号を加算して出力するようになされている。
【００６９】
ところで、図３の回路図においては、図２に示すセレクタ１１４乃至１１７が省略されている。これは、加算回路２１０乃至２２５より後段の回路を工夫することにより、これらのセレクタが不要となる構成としたためである。
【００７０】
なお、以下では、説明を簡略化するために複素数ｆの実数部をＲｅ（ｆ）で表し、また、複素数ｆの虚数部をＩｍ（ｆ）で表すものとする。
【００７１】
加算回路２１０は、ＩＡ０＿Ｒｅと加算回路１−５の出力（Ｒｅ（ＩＡ１×ＩＢ１））を加算して出力するようになされている。
【００７２】
加算回路２１１は、セレクタ１１３−１の出力（ＩＡ２＿ＲｅまたはＲｅ（ＩＡ２×ＩＢ２））と加算回路３−５の出力（Ｒｅ（ＩＡ３×ＩＢ３））を加算して出力するようになされている。
【００７３】
加算回路２１２は、ＩＡ０＿Ｉｍと加算回路１−６の出力（Ｉｍ（ＩＡ１×ＩＢ１））を加算して出力するようになされている。
【００７４】
加算回路２１３は、セレクタ１１３−２の出力（ＩＡ２＿ＩｍまたはＩｍ（ＩＡ２×ＩＢ２））と加算回路３−６の出力（Ｉｍ（ＩＡ３×ＩＢ３））を加算して出力するようになされている。
【００７５】
加算回路２１４は、ＩＡ０＿Ｒｅと加算回路１−６の出力（Ｉｍ（ＩＡ１×ＩＢ１））を加算して出力するようになされている。
【００７６】
加算回路２１５は、符号反転回路２０２の出力（−ＩＡ２＿Ｒｅまたは−Ｒｅ（ＩＡ１×ＩＢ１））と符号反転回路２０５の出力（−Ｉｍ（ＩＡ３×ＩＢ３））を加算して出力するようになされている。
【００７７】
加算回路２１６は、ＩＡ０＿Ｉｍと符号反転回路２００の出力（−Ｒｅ（ＩＡ１×ＩＢ１））を加算して出力するようになされている。
【００７８】
加算回路２１７は、符号反転回路２０３の出力（−ＩＡ２＿Ｉｍまたは−Ｉｍ（ＩＡ２×ＩＢ２））と加算回路３−５の出力（Ｒｅ（ＩＡ３×ＩＢ３））とを加算して出力するようになされている。
【００７９】
加算回路２１８は、ＩＡ０＿Ｒｅと符号反転回路２００の出力（−Ｒｅ（ＩＡ１×ＩＢ１））を加算して出力するようになされている。
【００８０】
加算回路２１９は、セレクタ１１３−１の出力（ＩＡ２＿ＲｅまたはＲｅ（ＩＡ２×ＩＢ２））と符号反転回路２０４の出力（−Ｒｅ（ＩＡ３×ＩＢ３））を加算して出力するようになされている。
【００８１】
加算回路２２０は、ＩＡ０＿Ｉｍと符号反転回路２０１の出力（−Ｉｍ（ＩＡ１×ＩＢ１））とを加算して出力するようになされている。
【００８２】
加算回路２２１は、セレクタ１１３−２の出力（ＩＡ２＿ＩｍまたはＩｍ（ＩＡ２×ＩＢ２））と符号反転回路２０５の出力（−Ｉｍ（ＩＡ３×ＩＢ３））とを加算して出力するようになされている。
【００８３】
加算回路２２２は、ＩＡ０＿Ｒｅと符号反転回路２０１の出力（−Ｉｍ（ＩＡ１×ＩＢ１））とを加算して出力するようになされている。
【００８４】
加算回路２２３は、符号反転回路２０２の出力（−ＩＡ２＿Ｒｅまたは−Ｒｅ（ＩＡ２×ＩＢ２））と加算回路３−６の出力（Ｉｍ（ＩＡ３×ＩＢ３））とを加算して出力するようになされている。
【００８５】
加算回路２２４は、ＩＡ０＿Ｉｍと加算回路１−５の出力（Ｒｅ（ＩＡ１×ＩＢ１））とを加算して出力するようになされている。
【００８６】
加算回路２２５は、符号反転回路２０３の出力（−ＩＡ２＿Ｉｍまたは−Ｉｍ（ＩＡ２×ＩＢ２））と符号反転回路２０４の出力（−Ｒｅ（ＩＡ３×ＩＢ３））とを加算して出力するようになされている。
【００８７】
次に、加算回路２３０は、加算回路２１０の出力と加算回路２１１の出力を加算してセレクタ１１８−１の下側の端子に入力するようになされている。
【００８８】
加算回路２３１は、加算回路２１２の出力と加算回路２１３の出力を加算してセレクタ１１８−２の下側の端子に入力するようになされている。
【００８９】
加算回路２３２は、加算回路２１４の出力と加算回路２１５の出力を加算してセレクタ１１９−１の下側の端子に入力するようになされている。
【００９０】
加算回路２３３は、加算回路２１６の出力と加算回路２１７の出力を加算してセレクタ１１９−２の下側の端子に入力するようになされている。
【００９１】
加算回路２３４は、加算回路２１８の出力と加算回路２１９の出力を加算してセレクタ１２０−１の下側の端子に入力するようになされている。
【００９２】
加算回路２３５は、加算回路２２０の出力と加算回路２２１の出力を加算してセレクタ１２０−２の下側の端子に入力するようになされている。
【００９３】
加算回路２３６は、加算回路２２２の出力と加算回路２２３の出力を加算してセレクタ１２１−１の下側の端子に入力するようになされている。
【００９４】
加算回路２３７は、加算回路２２４の出力と加算回路２２５の出力を加算してセレクタ１２１−２の下側の端子に入力するようになされている。
【００９５】
セレクタ１１８−１乃至１２１−１およびセレクタ１１８−２乃至１２１−２は、セレクタ制御回路１００に制御され、基数２の演算を行う場合には上側の入力端子を選択し、基数４の演算を行う場合には下側の入力端子を選択する。
【００９６】
即ち、セレクタ１１８−１は、基数２の演算を行う場合は加算回路２１０の出力を選択し、また、基数４の演算を行う場合には、加算回路２３０の出力を選択し、出力信号Ｏ０＿Ｒｅとして出力する。
【００９７】
セレクタ１１８−２は、基数２の演算を行う場合は加算回路２１２の出力を選択し、また、基数４の演算を行う場合には、加算回路２３１の出力を選択し、出力信号Ｏ０＿Ｉｍとして出力する。
【００９８】
セレクタ１１９−１は、基数２の演算を行う場合は加算回路２１８の出力を選択し、また、基数４の演算を行う場合には、加算回路２３２の出力を選択し、出力信号Ｏ１＿Ｒｅとして出力する。
【００９９】
セレクタ１１９−２は、基数２の演算を行う場合は加算回路２２０の出力を選択し、また、基数４の演算を行う場合には、加算回路２３３の出力を選択し、出力信号Ｏ１＿Ｉｍとして出力する。
【０１００】
セレクタ１２０−１は、基数２の演算を行う場合は加算回路２１１の出力を選択し、また、基数４の演算を行う場合には、加算回路２３４の出力を選択し、出力信号Ｏ２＿Ｒｅとして出力する。
【０１０１】
セレクタ１２０−２は、基数２の演算を行う場合は加算回路２１３の出力を選択し、また、基数４の演算を行う場合には、加算回路２３５の出力を選択し、出力信号Ｏ２＿Ｉｍとして出力する。
【０１０２】
セレクタ１２１−１は、基数２の演算を行う場合は加算回路２１９の出力を選択し、また、基数４の演算を行う場合には、加算回路２３６の出力を選択し、出力信号Ｏ３＿Ｒｅとして出力する。
【０１０３】
セレクタ１２１−２は、基数２の演算を行う場合は加算回路２２１の出力を選択し、また、基数４の演算を行う場合には、加算回路２３７の出力を選択し、出力信号Ｏ３＿Ｉｍとして出力する。
【０１０４】
以上のような実施の形態において、セレクタ制御回路１００に基数２の演算を選択する制御信号が入力されると、全てのセレクタが上側の入力端子を選択することになる。その場合、図２を参照して前述したように、２組の基数２のバタフライ演算回路が形成される。また、全てのセレクタに下側の入力端子を選択させた場合には、１組の基数４のバタフライ演算回路が形成されることになる。
【０１０５】
以上のような実施の形態によれば、同一の回路により、基数４または基数２のバタフライ演算を適宜切り換えて実行することが可能となるので、ポイント数が４のべき乗ではないＦＦＴ演算を行う場合においても、回路規模を殆ど増大することなく、ＦＦＴ演算回路を構成することが可能となる。
【０１０６】
図４は、以上の実施の形態を用いたＦＦＴ演算回路の構成の一例を示すブロック図である。
【０１０７】
この図において、入力バッファ４００は、入力されたデータを一時的に格納するようになされている。バタフライ演算回路４０１は、図３に示す回路が内蔵されており、制御回路４０３の制御に応じて、基数２または基数４のバタフライ演算を行うようになされている。作業用メモリ４０２は、バタフライ演算回路４０１が演算を行う際に、演算途中のデータなどを一時的に格納するようになされている。
【０１０８】
制御回路４０３は、装置各部を制御するとともに、バタフライ演算回路４０１に対して制御信号を供給し、基数２または基数４のバタフライ演算の切換を行うようになされている。出力バッファ４０４は、演算の結果得られたデータを一時的に格納した後、外部の装置のデータ速度に同期して出力するようになされている。
【０１０９】
次に、以上の実施の形態の動作について説明する。
【０１１０】
入力された演算の対象となるデータは、入力バッファ４００に一時的に格納され、演算の進行に合わせて随時読み出されていく。入力バッファ４００から読み出されたデータは、信号線４１０を介して作業用メモリ４０２へ格納される。バタフライ演算回路４０１は、必要に応じて作業用メモリ４０２に格納されているデータを読み出して所定の演算を行うとともに、演算の結果得られたデータを再度作業用メモリ４０２に書き込む。
【０１１１】
但し、演算のタイミングによっては、入力バッファメモリ４００から読み出したデータを信号線４１１を介して直接バタフライ演算回路４０１へ入力して演算した後、信号線４１２を介して出力バッファ４０４へ直接出力するようにしてもよい。
【０１１２】
バタフライ演算回路４０１は、作業用メモリ４０２との間でデータを授受しつつ、所定の回数だけバタフライ演算を実行する。制御回路４０３は、データ転送のタイミングと転送される先（または元）のアドレスを制御するとともに、信号線４１３を介してバタフライ演算回路４０１に対して制御信号を送り、基数４または基数２の演算の切り換えを行う。
【０１１３】
最終的に全てのデータに対するバタフライ演算が終了した時点で作業用メモリ４０２から信号線４１４を介して出力バッファ４０４へとデータが転送され、演算結果のデータが出力されることになる。
【０１１４】
基数４と基数２の切り換えは回路方式に応じて決定されるが、主として最初のステージまたは最後のステージに基数２の演算が行われることから、最初のステージ終了後または最後のステージ開始前に切り換えが行われることになる。ここでステージとはＦＦＴ演算において全てのデータに対して一回のバタフライ演算を行う過程を意味する。
【０１１５】
以上の実施の形態によれば、所定の演算手続きに応じてバタフライ演算回路４０１の演算の基数４と基数２の切り換えを行うことにより、回路資源の有効利用を図ることが可能となる。
【０１１６】
【発明の効果】
請求項１に記載の演算装置および請求項５に記載の演算方法によれば、基数２または基数４の何れのバタフライ演算を実行するかを示す信号が入力され、第２乃至第４のデータにそれぞれ第１乃至第３の係数を乗算することにより第５乃至第７のデータを算出し、基数２の演算を実行することを示す信号が入力された場合、第１のデータ、第３のデータ、第５のデータ、および、第７のデータを用いて、２組の基数２のバタフライ演算の演算結果を算出し、基数４の演算を実行することを示す信号が入力された場合、第１のデータ、第５のデータ、第６のデータ、および、第７のデータを用いて、１組の基数４のバタフライ演算の演算結果を算出するようにしたので、同一の演算装置により、基数２と基数４のバタフライ演算を実行することが可能となるので、回路資源を有効に利用することが可能となる。
【図面の簡単な説明】
【図１】本発明の演算装置の原理を説明する図である。
【図２】本発明の実施の形態の構成例を示すブロック図である。
【図３】本発明の実施の形態の構成例を示す回路図である。
【図４】本発明を適用したＦＦＴ演算装置の構成例を示すブロック図である。
【図５】従来のバタフライ演算回路の構成例を示すブロック図である。
【符号の説明】
１００  セレクタ制御回路，  １１３乃至１２１  セレクタ，  ２００乃至２０５  符号反転回路，  ４０３  制御回路
【図１】
0003951071.tif 000002
【図２】
0003951071.tif 000003
【図３】
0003951071.tif 000004
【図４】
0003951071.tif 000005
【図５】
0003951071.tif 000006