(57)【要約】【課題】従来の装置では、Ｎサンプル時間の遅延量が発生し、リアルタイム性に問題があり、また他の装置では、所望の演算結果が正しく得られず、さらに、他の装置では、大きなノイズが発生する。【解決手段】入力信号の任意長さの信号に対して、ゼロ値を挿入して規定の長さにし、ＦＦＴを実施する。一方、インパルスレスポンスにゼロ値を挿入し、規定長にしたデータをＦＦＴして得たスペクトルを予めメモリＡに保存する。ＦＦＴ手段の出力スペクトルとメモリＡからのスペクトルとを係数ごとに乗算し、その出力に逆ＦＦＴを実施して規定の長さに分割し、複数のメモリＢにより所望の処理フレームまで保存し、分割手段の出力と、先に処理されメモリＢに保存された信号とをサンプル単位で加算し、この加算結果とさらに先に処理され他のメモリＢに保存された信号とをサンプル単位で加算する処理を順次所定回数実施する。【選択図】      図１
2004184536.tif 000002
【特許請求の範囲】
【請求項１】
入力信号に対して、任意の長さの信号をバッファリングするバッファと、
バッファにバッファリングされた信号に対して、ゼロ値を挿入し規定の長さにするゼロ値挿入手段と
ゼロ値挿入手段の出力に対しＦＦＴを実施するＦＦＴ手段と、
インパルスレスポンスにゼロ値を挿入し、規定の長さにしたデータをＦＦＴして得たスペクトルを予め保存しておくメモリＡと、
ＦＦＴ手段の出力スペクトルとメモリＡからのスペクトルとの２系列のスペクトルを係数ごとに乗算する乗算手段と、
乗算手段の出力に対し逆ＦＦＴを実施する逆ＦＦＴ手段と、
逆ＦＦＴ手段から出力されたサンプルを規定の長さで分割する分割手段と、
分割手段の出力を所望の処理フレームまでデータを保存しておく複数のメモリＢと
分割手段の出力と、先に処理されメモリＢに保存された信号との２系列の信号をサンプル単位で加算し、この加算結果とさらに先に処理され他のメモリＢに保存された信号との２系列の信号をサンプル単位で加算する処理を順次所定回実施する複数の加算手段と、
を備える畳み込み演算装置。
【請求項２】
バッファはバッファリングされる信号の長さを、インパルスレスポンス長の半分の長さとし、
ゼロ値挿入手段はゼロ値を挿入する規定の長さを、インパルスレスポンス長の２倍の長さとし、
メモリＡはインパルスレスポンスにゼロ値を挿入し、長さを２倍にしたデータをＦＦＴして得たスペクトルを保存し、
分割手段は逆ＦＦＴ手段から出力されたサンプルを４分割し、
メモリＢは２フレーム前のデータまでを保存する２個とし、
加算手段は２フレーム前のデータまでを加算する２個とした
ことを特徴とする請求項１記載の畳み込み演算装置。
【請求項３】
ゼロ値挿入手段は、入力された信号に対して、ゼロ値を挿入してインパルスレスポンス長と同じ長さにし、
メモリＡは、インパルスレスポンスを２分割し、得られた２つのデータに夫々ゼロ値を挿入して長さを２倍にし、その２倍にした２つのデータ夫々に対してＦＦＴして得た２つのスペクトル列を保存し、
乗算手段はＦＦＴ手段の出力スペクトルとメモリＡに保存された２つのスペクトルとを別個に係数ごとに乗算する２個の乗算器を備え、
逆ＦＦＴ手段は２個の乗算器からの出力を別個に逆ＦＦＴ処理する２個の逆ＦＦＴ器を備え、
分割手段は２個の逆ＦＦＴから夫々出力されたサンプルを各々２分割する２個の分割器を備え、
メモリＢは分割手段からのデータを１〜３フレーム前まで夫々保存する３個とし、
加算手段は３フレーム前のデータまでを加算する３個とした
ことを特徴とする請求項１記載の畳み込み演算装置。
【請求項４】
バッファはバッファリングされる信号の長さを、２のべき乗の任意の長さとし、
ゼロ値挿入手段は規定の長さが、２のべき乗の任意の長さの２倍の長さとなるようゼロ値を挿入し、
メモリＡはインパルスレスポンスを上記２のべき乗の任意の長さで複数に分割し、得られた複数のデータに対してぞれぞれゼロ値を挿入して２倍の長さにしたデータに対してＦＦＴして得た複数のスペクトル列を保存しておき、
乗算手段はＦＦＴ手段の出力スペクトルとメモリＡに保存された複数のスペクトルとを別個に係数ごとに乗算する複数の乗算器を備え、
逆ＦＦＴ手段は複数の乗算器からの出力を別個に逆ＦＦＴ処理する複数の逆ＦＦＴ器を備え、
分割手段は複数の逆ＦＦＴから夫々出力されたサンプルを各々２分割する複数の分割器を備え、
メモリＢは分割手段からのデータを複数フレーム前まで夫々保存する複数個を備え、
加算手段はメモリＢが保存する複数フレーム前のデータまでを加算する複数個とした
ことを特徴とする請求項１記載の畳み込み演算装置。
【請求項５】
メモリＡは、インパルスレスポンスを規定の長さで複数に分割して得られた複数のデータに対してぞれぞれゼロ値を挿入して規定の長さにしてＦＦＴ処理し、得られた複数のスペクトル列を保存しておき、
乗算手段はＦＦＴ手段の出力スペクトルとメモリＡに保存された複数のスペクトルとを係数ごとに別個に乗算する複数の乗算器を備え、
逆ＦＦＴ手段は複数乗算器からの出力を別個に逆ＦＦＴ処理する複数個を備え、
分割手段は、複数の逆ＦＦＴ器に対応して複数個備え、夫々複数の逆ＦＦＴ器の出力サンプルから規定の位置の規定の長さのデータを取り出す構成にされ、
メモリＢは分割手段の出力を所望の処理フレーム後までデータを保存する複数個備え、
加算手段は分割手段の出力とメモリＢのデータとの２系列の信号をサンプル単位で複数フレーム前までを順次加算する複数個とした
ことを特徴とする請求項１記載の畳み込み演算装置。
【請求項６】
分割手段は、夫々の逆ＦＦＴ手段の出力サンプルを２分割する２個を備え、
加算手段とメモリＢは夫々３個を備え、
第１の分割手段の出力は、第１の加算手段と、第２の加算手段に出力され、
第２の分割手段の出力は、第２の加算手段と、第１のメモリＢ１に出力され、
第３の加算手段は、第２の加算手段の出力と、第１のメモリＢ１の出力を加算し、その出力は第２のメモリＢ２に入力され、上記第１の加算手段は上記第１の分割手段の出力とメモリＢ２の出力を加算し、その結果を演算装置の出力とすることを特徴とする請求項３記載の畳み込み演算装置。
【請求項７】
入力信号とインパルスレスポンスが共に実数である場合に、メモリＡは、インパルスレスポンスを規定の長さで複数に分割して得られた複数のデータに対して、２組のデータとなるようにそれぞれを選択し、実数成分、虚数成分として複数個の複素数列を作成し、さらに作成した複素数列にゼロ値を挿入して規定の長さにしたデータに対してＦＦＴして得たスペクトルを保存し、
分割手段は、入力された複素数信号に対して、実数成分と虚数成分を分割する構成とされたことを特徴とする、
請求項３〜６の何れかに記載の畳み込み演算装置。
【請求項８】
入力信号に対して、任意の長さの信号をバッファリングするバッファと、
上記バッファによりバッファリングされたデータを規定量だけ保存するメモリＣと、
メモリＣに保存された信号のＦＦＴを実施するＦＦＴ手段と、
インパルスレスポンスにゼロ値を挿入し、規定の長さにしたデータをＦＦＴして得たスペクトルを保存しておくメモリＡと
ＦＦＴ手段の出力スペクトルとメモリＡからのスペクトルとの２系列のスペクトルを係数ごとに乗算する手段と、
乗算手段の出力を逆ＦＦＴを実施する逆ＦＦＴ手段と、
逆ＦＦＴ手段が出力したサンプルから規定の位置の規定の長さのデータを取り出すデータ取出手段と、
を備える畳み込み演算装置。
【請求項９】
バッファは入力信号に対して、インパルスレスポンス長の半分の長さの信号をバッファリングし、
メモリＡは、インパルスレスポンスにゼロ値を挿入し、長さを２倍にしたデータをＦＦＴして得たスペクトルを保存し、
データ取出手段は逆ＦＦＴ手段が出力したサンプルを４分割する、
ことを特徴とする請求項８記載の畳み込み演算装置。
【請求項１０】
入力信号に対して、任意の長さの信号をバッファにバッファリングする手順と、
バッファにバッファリングされた信号に対して、ゼロ値を挿入して規定の長さにするゼロ値挿入手順と
ゼロ値挿入手順の出力に対しＦＦＴを実施するＦＦＴ手順と、
インパルスレスポンスにゼロ値を挿入し、規定の長さにしたデータをＦＦＴして得たスペクトルを予めメモリＡに保存する手順と、
ＦＦＴ手順の出力スペクトルとメモリからのスペクトルとの２系列のスペクトルを係数ごとに乗算する乗算手順と、
乗算手順の出力に対し逆ＦＦＴを実施する逆ＦＦＴ手順と、
逆ＦＦＴ手順から出力されたサンプルを規定の長さで分割する分割手順と、
分割手順の出力を所望の処理フレームまでデータを複数のメモリＢに保存しておく手順と
分割手順の出力と、先に処理されメモリＢに保存された信号との２系列の信号をサンプル単位で加算し、この加算結果とさらに先に処理され他のメモリＢに保存された信号との２系列の信号をサンプル単位で加算する処理を順次所定回実施する加算手順と、
をコンピュータに実行させる畳み込み演算プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ディジタル信号に対して有限時間長インパルス応答を畳み込む技術、特に立体音響技術における頭部音響伝達関数の畳み込み処理や残響などの各種エフェクト付加、帯域分割フィルタリング処理、無線通信におけるコサインロールオフフィルタなどの各種フィルタリング処理において、ＦＦＴを用いて高速に畳み込み演算を実施する装置およびプログラムに関する。
【０００２】
【従来の技術】
あるディジタル信号（以下、データ若しくはサンプルと称す）に対し、長さがＮサンプルのインパルス応答ｈの畳み込み演算を実施する場合、単純に時間軸上で畳み込み演算を実施すると、Ｎ個のデータを処理するのに、Ｎの２乗に比例する回数の乗算と加算が必要となる。これはＮが比較的長い場合には膨大な演算量となり、回路規模が増大するなどの問題が発生する。
【０００３】
これに対し、ＦＦＴを用いて周波数軸上で畳み込み演算を実施すると、Ｎ  ｌｏｇ  Ｎに比例する回数の乗算および加算で済むことが知られている。これはＯｖｅｒｌａｐ−Ａｄｄ方式やＯｖｅｒｌａｐ−Ｓａｖｅ方式などと呼ばれる手法を用いて実現することができ、Ｎが長い場合によく用いられている。上記２方式の詳細については、Ｊｏｎａｔｈａｎ  Ｓｔｅｉｎ著の文献「Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｉｎｇ」Ｗｉｌｅｙ−ｉｎｔｅｒｓｃｉｅｎｃｅ  ｐｐ．５３１−５７８，  ２０００などを参考にするとよい。
【０００４】
しかし、上記２方式はＮサンプルのバッファリングが必要であるため、入力するデータが時系列データである場合、畳み込み演算を施した出力信号を得るためには、演算時間をゼロとした理想状態を仮定してもＮサンプル時間の遅延量が発生してしまう。これは、Ｎが比較的大きい場合には多大な遅延量が発生することを意味するため、リアルタイム性が求められるシステムに適用する場合には大きな問題となる。
【０００５】
本問題点を解決しようとした従来技術に、特開２０００−２６７６８２号公報がある。この従来技術の原理説明図を図１３に示す。以下、特開２０００−２６７６８２号公報にて記述されている例を引用しながら動作を説明する。
図１３において、インパルス応答ｈ（ｎ）を処理する場合には、
・インパルス応答ｈ（ｎ）のデータをインパルス応答バッファに順次入力し（入力ブロック１３１１）、
・次いでＮ／２サンプル分のインパルス応答ｈ（ｎ）を取得すると、Ｎ／２サンプル分のインパルス応答ｈ（ｎ）のデータ長と同じ長さの「０」をインパルス応答ｈ（ｎ）の前に付加することにより、Ｎサンプル分のインパルス応答ｈ（ｎ）を２つのブロックに分割する（分割ブロック１３１２）。これを前半後半に分けてｈ０（ｎ）、ｈ１（ｎ）と呼ぶことにする。
・次いでこの「０」を付加したＮサンプルで１ブロック分（Ｎ／２サンプル分）のＦＦＴ処理を行い（ＦＦＴ処理ブロック１３１３）、
・ＦＦＴ処理結果をインパルス応答バッファにストアする（ＦＦＴ処理結果ストアブロック１３１４）。
【０００６】
入力信号ｘ（ｎ）を処理する場合には、
・入力信号ｘ（ｎ）をＮ／２サンプル（ブロック）毎に第１、第２の入力バッファ（不図示）に交互に入力する（入力ブロック１３１５）。
・そして、第１の入力バッファがＮ／２サンプルの入力信号ｘｍ（ｎ）で満たされると（バッファリングブロック１３１６）、入力バッファとは別のＮサンプル分の入力信号用バッファの後半にコピーし、また、前半には１ブロック（Ｎ／２サンプル）前の入力信号ｘｍ−１（ｎ）で埋める（ただし、初回は「０」で埋める）（ストアブロック１３１７）。
・そして、Ｎサンプルで１ブロック分のＦＦＴ処理を行い、処理結果を入力信号用バッファにストアする（ＦＦＴ処理ブロック１３１８）。
【０００７】
・次いでブロック毎の入力信号ｘ（ｎ）のＦＦＴ処理結果とインパルス応答ｈ（ｎ）のＦＦＴ処理結果を乗算し（乗算処理ブロック１３１９）、
・次いでブロック毎の乗算結果を逆ＦＦＴ処理し（逆ＦＦＴ処理ブロック１３２０）、
・次いでブロック毎の乗算結果を２ブロック分（Ｎサンプル分）加算し（加算ブロック１３２１）、
・次いでこの加算結果をＮサンプル分の畳み込み演算結果として出力バッファｃに書き込む（ステップ１３２２）。
【０００８】
上記従来技術では、バッファリングするサイズがＮ／２となるので、通常のＯｖｅｒｌａｐ−Ａｄｄ方式やＯｖｅｒｌａｐ−Ｓａｖｅ方式に比較して遅延量が半減する。上の例では分割数が２であるが、一般的に分割数をＤとすると、Ｎ／Ｄまで遅延を減少させることができ、リアルタイム性を向上させることができる。
【０００９】
しかし、上記従来技術の乗算ブロック１３１９の処理では、正しく所望の演算結果が得られないという問題がある。すなわち、上記従来技術の動作を信号処理的に解釈すると、レスポンス長がＮ／２のｈ０とｈ１を加算して新たに得られるレスポンス長Ｎ／２のｈ’を畳み込むことと等価となり、本来求めたいレスポンス長Ｎのｈ（ｎ）を畳み込む処理とはならない。これは、ｈ０（ｎ）に関しては、Ｎ／２サンプル分の長さであるため、ｘｍ（ｎ）とｘｍ−１（ｎ）の畳み込み演算結果を正しく得ることができるが、ｈ１（ｎ）に関しては、本来、Ｎサンプル分の長さであるため、ｘｍ−１（ｎ）のレスポンス分は、ｘｍ＋１に畳み込まれるべき信号であるためにもかかわらず、ｘｍ（ｎ）の信号に畳み込まれるからである。
【００１０】
さらに、加算ブロック１３２１において、過去のＮサンプルからのインパルス応答を全て現在のサンプルに畳み込むことが出来ないという問題もある。すなわち、ｈ１（ｎ）に関しては、本来、その長さはＮであるため、さらに１フレーム過去の入力信号ｘｍ−２（ｎ）のレスポンスをｘｍ（ｎ）に畳み込まなければならないが、上記従来技術では本演算を実行する処理が存在しないのである。端的に言うと、ｈ０は上記従来技術に従ってｘｍとｘｍ−１に関してそのレスポンスを求めれば良いが、ｈ１はｘｍ−２に関してもそのレスポンスを求める必要があるのである。これは、上記の従来技術では、例え、ｘｍ−２（ｎ）をバッファリングするようにもう一つの処理ブロックを追加したとしても、上記従来技術にて記述されているように、入力信号を交互にバッファリングし、Ｏｖｅｒｌａｐ−Ｓａｖｅ法に基づいて算出している（入力ブロック１３１５、ストアブロック１３１７、乗算処理ブロック１３１９に記述されている）限りは、ｘｍ−２だけに関するｈ１の純粋なレスポンスを得ることは不可能である。
【００１１】
さらに、上記従来技術では、インパルスレスポンス長Ｎは分割数Ｄで割り切れる必要があり、遅延量もＮ／Ｄに制限されてしまうため、任意の長さの遅延量を実現することは出来ない。
【００１２】
また、上記と類似した別の従来技術として、特開２０００−３４１１３９号公報がある。詳細は特開２０００−３４１１３９号公報を参照すれば良いために省略するが、本方式は、前記特開２０００−２６７６８２号公報のように、過去のデータの応答を反映させることが出来ないという問題は解決している。しかし、ＦＦＴする際に、インパルス応答、入力データ共に後半をゼロ詰めしてからＦＦＴをしないと、ＦＦＴの周期性から発生する周り込み成分（円状畳み込みの成分）がノイズとなって、正確な畳み込み演算が実施できないが、この従来技術にはゼロ詰をする機能をもったブロックの記述はなく、大きなノイズが発生してしまうという問題がある。
【００１３】
仮に、この従来技術を、円状畳み込みの影響をキャンセルするようにＦＦＴの入力データに修正を加えたとしても、以下のような問題も依然として存在する。すなわち、まず、インパルス応答を２のべき乗で等分し、分割されたブロックの前半をさらに２のべき乗で当分割し、２回目の分割により分割されたブロックの一部をさらに２のべき乗で分割しなければならないという分割方法上の大きな制約がある。これは、Ｎが２のべき乗である特別な場合には、問題無く機能する場合もあると思われるが、例えば、インパルス応答の長さＮが７６８の場合、最小の分割数で分割したとして、まず７６８を３８４づつ２つのブロックに２分割し、その前半のブロックを１９２で２分割し、最後に前半のブロックの２番目（ただし、最後に分割するブロックの位置は任意となっている）を９６づつ２分割することとなる。この場合、ＦＦＴが２のべき乗のサンプル数でしか変換できないという制約から、９６のデータなら１２８個のデータとしてＦＦＴする必要があり（円状畳み込みの影響をキャンセルするように上記従来技術を修正した場合にはＦＦＴのポイント数は倍の２５６ポイント）、明らかに冗長となる。なお、理想状態の遅延量（以下、遅延量の算出は常に理想状態を仮定する）は、２５６サンプル時間となる。
【００１４】
この例の場合、例えば、もしｈを３分割して処理することができれば、３系列の２５６個のデータに対して無駄なくＦＦＴすることができるので、冗長な部分を取り除くことが期待できる。遅延時間も２５６サンプル時間であり、上記従来技術と同等となる。
以上述べた通り、上記従来技術では、インパルスレスポンスを分割する上で多大な制約があり、かつ任意の長さの遅延量を実現することが出来ないという問題がある。
【００１５】
【非特許文献１】
Ｊｏｎａｔｈａｎ  Ｓｔｅｉｎ著「Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｉｎｇ」Ｗｉｌｅｙ−ｉｎｔｅｒｓｃｉｅｎｃｅ  ｐｐ．５３１−５７８，  ２０００
【００１６】
【特許文献１】
特開２０００−２６７６８２号公報
【００１７】
【特許文献２】
特開２０００−３４１１３９号公報
【００１８】
【発明が解決しようとする課題】
以上のように非特許文献１では、Ｎサンプル時間の遅延量が発生し、リアルタイム性が求められるシステムに適用する場合は大きな問題となる。
また、特許文献１では、Ｎサンプル分の後半インパルス応答ｈ１（ｎ）に関しては、本来、Ｎサンプル分の長さであるため、ｘｍ−１（ｎ）のレスポンス分は、ｘｍ＋１に畳み込まれるべき信号であるためにもかかわらず、ｘｍ（ｎ）の信号に畳み込まれるため、所望の演算結果が正しく得られないという問題がある。。
さらに、特許文献２では、インパルス応答、入力データ共後半のゼロ詰め機能をもたず大きなノイズが発生してしまうという問題がある。
本発明は上記問題点を鑑み、全ての過去のインパルス応答を正しく、高速かつ低遅延量で畳み込むことができ、かつ、その遅延量の設計の自由度が高い畳み込み演算装置および方式を提供することを目的とする。
【００１９】
【課題を解決するための手段】
本発明に係る畳み込み演算装置は、入力信号に対して、任意の長さの信号をバッファリングするバッファと、
バッファにバッファリングされた信号に対して、ゼロ値を挿入して規定の長さにするゼロ値挿入手段と
ゼロ値挿入手段の出力に対しＦＦＴを実施するＦＦＴ手段と、
インパルスレスポンスにゼロ値を挿入し、規定の長さにしたデータをＦＦＴして得たスペクトルを予め保存しておくメモリＡと、
ＦＦＴ手段の出力スペクトルとメモリからのスペクトルとの２系列のスペクトルを係数ごとに乗算する乗算手段と、
乗算手段の出力に対し逆ＦＦＴを実施する逆ＦＦＴ手段と、
逆ＦＦＴ手段から出力されたサンプルを規定の長さで分割する分割手段と、
分割手段の出力を所望の処理フレームまでデータを保存しておく複数のメモリＢと
分割手段の出力と、先に処理されメモリＢに保存された信号との２系列の信号をサンプル単位で加算し、この加算結果とさらに先に処理され他のメモリＢに保存された信号との２系列の信号をサンプル単位で加算する処理を順次所定回実施する複数の加算手段と、
を備える。
【００２０】
また、本発明に係る畳み込み演算プログラムは、入力信号に対して、任意の長さの信号をバッファにバッファリングする手順と、
バッファにバッファリングされた信号に対して、ゼロ値を挿入して規定の長さにするゼロ値挿入手順と
ゼロ値挿入手順の出力に対しＦＦＴを実施するＦＦＴ手順と、
インパルスレスポンスにゼロ値を挿入し、規定の長さにしたデータをＦＦＴして得たスペクトルを予めメモリＡに保存する手順と、
ＦＦＴ手順の出力スペクトルとメモリからのスペクトルとの２系列のスペクトルを係数ごとに乗算する乗算手順と、
乗算手順の出力に対し逆ＦＦＴを実施する逆ＦＦＴ手順と、
逆ＦＦＴ手順から出力されたサンプルを規定の長さで分割する分割手順と、
分割手順の出力を所望の処理フレームまでデータを複数のメモリＢに保存しておく手順と
分割手順の出力と、先に処理されメモリＢに保存された信号との２系列の信号をサンプル単位で加算し、この加算結果とさらに先に処理され他のメモリＢに保存された信号との２系列の信号をサンプル単位で加算する処理を順次所定回実施する加算手順と、
をコンピュータに実行させる。
【００２１】
【発明の実施の形態】
実施の形態１．
【００２２】
図１は、本発明の実施の形態１による畳み込み演算装置の構成図であり、
１０１は、本発明による畳み込み演算装置、
１０２は、入力信号、
１０３は、Ｎ／２サンプルのデータをバッファリングするバッファ、
１０４は、バッファリングされたＮ／２個のデータ、
１０５は、ゼロ値挿入手段、
１０６は、ゼロ値挿入手段１０５によってゼロ値が挿入された２Ｎサンプルのデータ列、
１０７は、２ＮポイントＦＦＴを実施する手段、
１０８は、２ＮポイントＦＦＴ１０７の処理結果である２Ｎ個のスペクトル、
１１０は、インパルスレスポンスのスペクトルを格納するメモリＡ、
１１１は、インパルスレスポンスのスペクトル、
１０９は、スペクトル１１１と２Ｎ個のスペクトル１０８をサンプル単位で乗算を実行する乗算手段、
１１２は、乗算手段１０９により乗算されたスペクトル、
１１３は、スペクトル１１２を２Ｎポイントの逆ＦＦＴを実施する手段、
１１４は、２Ｎポイント逆ＦＦＴ１１３により処理された２Ｎ個のデータ、
１１５は、サンプルを４分割する手段、
１１６は、第１ブロックのデータ、
１１７は、第２ブロックのデータ、
１１８は、第３ブロックのデータ、
１１９−１、１１９−２は、データを格納するメモリＢ、、
１２０は、１フレーム前の処理で格納されたデータ、
１２１は、２フレーム前の処理で格納されたデータ、
１２２−１、１２２−２は、サンプル単位で加算する加算手段、
１２３は、加算手段１の出力信号、
１２４は、出力信号を表す。
【００２３】
次に動作を説明する。
まず、メモリＡ１１０には、長さＮのインパルスレスポンスｈの後半をゼロ挿入して２Ｎサンプルのデータを作成し、この２Ｎサンプルのデータに対して２ＮポイントＦＦＴを実施して得られるスペクトル係数１１１を格納しておく。
【００２４】
図１に示す通り、Ｎ／２サンプルバッファ１０３は、畳み込み演算装置に入力されたデータ１０２をＮ／２サンプル分バッファリングする。以下、Ｎ／２サンプルの単位をフレームと呼ぶこととする。Ｎ／２サンプルバッファ１０３は、Ｎ／２サンプル分のデータが溜まると、Ｎ／２サンプル分のデータ１０４をゼロ値挿入手段１０５に入力する。ゼロ値挿入手段１０５は、長さが２Ｎになるまで入力されたデータ１０４の後ろにゼロ値を挿入し、２ＮポイントＦＦＴ手段１０７へ送信する。２ＮポイントＦＦＴ手段１０７は、入力された２Ｎ個のデータ１０６に対して２ＮポイントのＦＦＴを実施し、算出した２Ｎ個のスペクトル係数１０８を乗算手段１０９に向けて送信する。
【００２５】
乗算手段１０９は、あらかじめ算出しておいたインパルスレスポンスのスペクトル１１１をメモリＡ１１０より得て、先のＦＦＴの出力信号１０８との乗算をサンプル単位で行い、乗算結果１１２を２Ｎポイント逆ＦＦＴ手段１１３に入力する。逆ＦＦＴ手段１１３は、入力された信号１１２に対して２Ｎポイントの逆ＦＦＴを実施し、得られた信号１１４をサンプル４分割手段１１５へ向けて送信する。
【００２６】
サンプル４分割手段１１５は、入力された信号１１４を時系列に従って４分割する。分割された４つのサンプル列において、一番古い（先頭の）サンプル列から順番に第１ブロック、第２ブロック、第３ブロック、第４ブロックと称することとする。第１ブロックのサンプル１１６は加算手段１（１２２−１）へ入力する。第２ブロックのサンプル１１７は次のフレームの処理で使用するために、メモリＢ−１（１１９−１）へ格納する。第３ブロックのサンプル１１８は２フレーム後の処理で使用するためにメモリＢ−２（１１９−２）へ格納する。第４ブロックのサンプルは破棄する。
【００２７】
さて、加算手段１（１２２−１）は、逆ＦＦＴ手段１１３から現フレームの第１ブロックのサンプル１１４を得ると、メモリＢ−１（１１９−１）より前フレームで格納しておいた第２ブロックのサンプル１２０を得て、これらのサンプルをサンプル単位で加算し、加算結果１２３を加算手段２（１２２−２）へ向けて送信する。加算処理２（１２２−２）は、サンプル１２３が入力されると、メモリＢ−２（１１９−２）から２フレーム前の第３ブロックのサンプル１２１を得て、これらをサンプル単位で加算し出力信号１２４として出力する。
【００２８】
本装置の入出力信号について補足しておく。図１０は、本実施の形態における入出力信号とインパルスレスポンスの関係を示した図である。図にして示した通り、インパルスレスポンスｈと入力信号ｘの畳み込みを実施した長さ２Ｎの信号ｙは４分割され、第１ブロックは現フレームにて使用し、第２ブロックは次のフレーム、第３ブロックは２フレーム後の処理まで保存する。第４ブロックは破棄する。現フレームの処理では、１フレーム前の第２ブロックと２フレーム前の第３ブロックの信号を加算して、出力信号ｚを得る。
【００２９】
このようにして得られた出力信号は、入力信号に対してインパルスレスポンスを正確に畳み込んだ信号となる。
【００３０】
以上のような処理は畳み込み演算プログラムによって実現される。
【００３１】
本構成により、バッファリングするサイズがＮからＮ／２に減少するため、遅延量をＮからＮ／２へと半減させることができる。
実施の形態２．
【００３２】
図２は、本発明による実施の形態２を表す構成図である。本実施の形態では、インパルスレスポンス長Ｎによらず、遅延量をＭサンプルとして任意に設計することが出来る。
図２において、
２０１は、Ｍサンプルのデータをバッファリングするバッファ、
２０２は、バッファリングされたＭサンプルのデータ、
２０３は、ゼロ値挿入手段１０５によってゼロ値が挿入された（Ｍ＋Ｎ＋α）サンプルのデータ列、
２０４は、（Ｍ＋Ｎ＋α）ポイントＦＦＴを実施する手段、
２０５は、（Ｍ＋Ｎ＋α）個のスペクトル、
２０６は、乗算手段１０９により乗算されたスペクトル、
２０７は、（Ｍ＋Ｎ＋α）ポイントの逆ＦＦＴを実施する手段、
２０８は、（Ｍ＋Ｎ＋α）サンプルのデータ、
２０９は、入力を分割する手段、
２１０−１、２１０−２、２１０−ｋは、それぞれ、第１ブロックのデータ、第２ブロックのデータ、第ｋブロックのデータ、
２１１−１、２１１−２、２１１−ｋは、それぞれ、過去のフレームで格納された第１ブロックのデータ、第２ブロックのデータ、第ｋブロックのデータ、
２１２は、加算手段１から出力されたデータ、
２１３は、加算手段ｋ−２から出力されたデータである。
なお、図１と同様な部分は同じ符号を付し、説明を省略する。
【００３３】
次に動作を説明する。
まず、メモリＡ（１１０）には、長さＮのインパルスレスポンスｈの後半に、全体の長さが、設定する遅延量ＭとＮを加算した長さ以上の最小の２のべき乗の長さになるように、（Ｍ＋α）個のゼロ値を挿入して得られたデータに対して（Ｍ＋Ｎ＋α）ポイントＦＦＴを実施して得られるスペクトル係数１１１を格納しておく。ここでαは、全体の長さが２のべき乗になるように調節する非負の整数である。例えば、Ｍ＋Ｎがちょうど２のべき乗になる場合にはαは０となる。そうでない場合、例えばＮ＝１００、Ｍ＝１０であれば、αは１８となる（Ｎ＋Ｍ＋α＝１２８となる）。
【００３４】
図２に示す通り、Ｍサンプルバッファ２０１は、畳み込み演算装置１０１に入力されたデータ１０２をＭサンプル分バッファリングする。以下、Ｍサンプルの単位をフレームと呼ぶこととする。Ｍサンプルバッファ２０１は、Ｍサンプル分のデータが溜まると、Ｍサンプル分のデータ２０２をゼロ値挿入手段１０５に入力する。ゼロ値挿入手段１０５は、長さが（Ｍ＋Ｎ＋α）になるまで入力されたデータ２０２の後ろにゼロ値を挿入し、（Ｍ＋Ｎ＋α）ポイントＦＦＴ手段２０４へ送信する。（Ｍ＋Ｎ＋α）ポイントＦＦＴ手段２０４は、入力された（Ｍ＋Ｎ＋α）個のデータ２０３に対して（Ｍ＋Ｎ＋α）ポイントのＦＦＴを実施し、算出した（Ｍ＋Ｎ＋α）個のスペクトル係数２０５を乗算手段１０９に向けて送信する。
【００３５】
乗算手段１０９は、あらかじめ算出しておいたインパルスレスポンス１１１のスペクトルをメモリＡ１１０より得て、先のＦＦＴの出力信号２０５とサンプル単位での乗算を行い、乗算結果２０６を（Ｍ＋Ｎ＋α）ポイント逆ＦＦＴ手段２０７に入力する。逆ＦＦＴ手段２０７は、入力された信号２０６に対して（Ｍ＋Ｎ＋α）ポイントの逆ＦＦＴを実施し、得られた信号２０８をサンプル分割手段２０９へ向けて送信する。
【００３６】
サンプル分割手段２０９は、入力された信号２０８を時系列に従って先頭からＭサンプルづつ分割する。分割されたサンプル列において、一番古い（先頭の）サンプル列から順番に第１ブロック、第２ブロックなどと称することとする。第１ブロックのサンプル２１０−１は加算手段１（１２２−１）へ入力する。第２ブロックのサンプル２１０−２は次のフレームの処理で使用するために、メモリＢ−１（１１９−１）へ格納する。以下、同様に、分割するデータがＭ＋Ｎサンプルを超えるまでそれぞれ以降のフレームの処理のためにメモリＢ−ｘ（１１９−ｘ）に格納する。
【００３７】
ここで、サンプル分割手段２０９において分割する方法について補足しておく。分割するデータの末尾のサンプルが、先頭から数えてＭ＋Ｎ以上（Ｍ＋Ｎ＋α）以下に位置するサンプルであれば、分割を終了し、それ以降のデータを破棄する。（Ｍ＋Ｎ＋α）よりも大きい場合は、足りないサンプルを０で置き換えてＭサンプルの長さにして保存してもよいも良いし、端数のみを保存してもどちらでも良い。例えば、Ｎ＝１００、Ｍ＝１０、α＝１８の場合、１１回の分割を行い、残りの１８サンプルは破棄する。Ｎ＝１００、Ｍ＝２８、α＝０の場合は、５回の分割を行い、第５フレームは１６サンプルのみ保存してもよいし、末尾に０を付加して２８サンプルとして保存してもよい。また便宜上、分割数をｋとする。
【００３８】
さて、加算手段１（１２２−１）は、逆ＦＦＴ手段２０７より、現フレームの第１ブロックのサンプル２１０−１を得ると、メモリＢ−１（１１９−１）より前フレームで格納しておいた第２ブロックのサンプル２１１−１を得て、これらのサンプルをサンプル単位で加算し、加算結果２１２を加算手段２（１２２−２）へ向けて送信する。加算手段２（１２２−２）は、サンプル２１２が入力されると、メモリＢ−２（１１９−２）から２フレーム前の第３ブロックのサンプル２１１−２を得て、これらをサンプル単位で加算し、出力結果次の加算手段へ出力する。以下同様に、ｋ−１回の加算を行い、出力信号１２４を得る。
【００３９】
このようにして得られた出力信号は、入力信号に対してインパルスレスポンスを正確に畳み込んだ信号となる。
【００４０】
本構成により、バッファリングするサイズがＮからＭに減少するため、遅延量をＮからＭへと減少させることができる。また、Ｍは任意の正の整数でよいため、システム設計上の自由度が非常に高くなる。
【００４１】
実施の形態３．
図３は、本発明による実施の形態３を示す構成図であり、図において、
３０１は、バッファリングされたデータを保存しておくメモリＣ、
３０２は、２ＮポイントＦＦＴ手段１０７へ入力するデータ、
３０３は、２Ｎ個のスペクトル、
３０４は、乗算されたスペクトル、
３０５は、２Ｎサンプルのデータである。
なお、図１と同様な部分は同じ符号を付し、説明を省略する。
【００４２】
次に動作を説明する。
まず、図３におけるメモリＡ１１０には、実施の形態１と同様に長さＮのインパルスレスポンスｈの後半をゼロ挿入して２Ｎサンプルのデータを作成し、この２Ｎサンプルのデータに対して２ＮポイントＦＦＴを実施して得られるスペクトル係数１１１を格納しておく。
【００４３】
図３に示す通り、Ｎ／２サンプルバッファ１０３は、畳み込み演算装置１０１に入力されたデータ１０２をＮ／２サンプル分バッファリングする。以下、Ｎ／２サンプルの単位をフレームと呼ぶこととする。Ｎ／２サンプルバッファ１０３は、Ｎ／２サンプル分のデータが溜まると、Ｎ／２サンプル分のデータ１０４をメモリＣ３０１に入力する。メモリＣ３０１では、入力されたＮ／２サンプルのデータ１０４を先入れ先出し法により３Ｎ／２サンプル分保存しておく。便宜上、今入力されたＮ／２サンプル１０４は、Ｎ＋１〜３Ｎ／２までに保存されているものとし、最も古いサンプルは先頭に保存されているものとする（当然、３Ｎ／２サンプルのリングバッファとしても良いし、時系列の整合さえつけば別々の場所に保存しておいてもよい）。
【００４４】
２ＮポイントＦＦＴ手段１０７にある長さ２ＮのＦＦＴバッファには、メモリＣ３０１より３Ｎ／２サンプルのデータ３０２を得て、古いほうから順にサンプルを入れる。残り（３Ｎ／２＋１〜２Ｎ）はゼロクリアされているものとする。２ＮポイントＦＦＴ手段１０７は、ＦＦＴバッファにあるＮ個のデータに対して２ＮポイントのＦＦＴを実施し、算出した２Ｎ個のスペクトル係数３０３を乗算手段１０９に向けて送信する。乗算手段１０９は、あらかじめ算出しておいたインパルスレスポンスのスペクトル１１１をメモリＡ１１０より得て、先のＦＦＴの出力信号３０３とサンプル単位の乗算を行い、乗算結果３０４を２Ｎポイント逆ＦＦＴ手段１１３に入力する。
【００４５】
逆ＦＦＴ手段１１３は、入力された信号３０４に対して２Ｎポイントの逆ＦＦＴを実施し、得られた信号３０５をサンプル４分割手段１１５へ向けて送信する。サンプル４分割手段１１５は、入力された信号を時系列に従って４分割する。分割された４つのサンプル列において、一番古い（先頭の）サンプル列から順番に第１ブロック、第２ブロック、第４ブロックなどと称することとする。分割されたブロックのうち、第３ブロックのデータのみを出力信号１２４として出力する。なお、他のブロックのデータは全て破棄する。
【００４６】
本実施の形態の入出力信号について補足しておく。図１１は、本実施の形態における入出力信号とインパルスレスポンスの関係を示した図である。図にして示した通り、まず、インパルスレスポンスｈと、過去２フレーム前までの入力信号を結合した信号との畳み込みを実施し、長さ２Ｎの信号ｙを得る。信号ｙは４分割され、第３ブロックの信号のみを取り出し出力信号ｚを得る。
【００４７】
このようにして得られた出力信号は、入力信号に対してインパルスレスポンスを正確に畳み込んだ信号となる。
【００４８】
本構成により、バッファリングするサイズがＮからＮ／２に減少するため、遅延量をＮからＮ／２へと半減させることができる。また、メモリＣの容量は、３Ｎ／２個分の入力データを保存しておけば良く、実施の形態１に比較してメモリ容量が少なくて済むという効果もある。
【００４９】
実施の形態４．
図４は本発明によるまた別の実施の形態であり、
４０１は、（Ｍ＋Ｎ＋α）ポイントＦＦＴ手段へ入力するデータ、
４０２は、（Ｍ＋Ｎ＋α）個のスペクトル、
４０３は、乗算された（Ｍ＋Ｎ＋α）個のスペクトル、
４０４は、（Ｍ＋Ｎ＋α）サンプルのデータ、
４０５は、入力されたサンプル列から、特定のサンプル列を取り出す手段である。
なお、図１〜図３と同様な部分は同じ符号を付し、説明を省略する。
【００５０】
次に動作を説明する。
まず、図４におけるメモリＡ１１０には、実施の形態２と同様に長さＮのインパルスレスポンスｈの後半に、全体の長さが、設定したい遅延量ＭとＮを加算した長さ以上の最小の２のべき乗の長さになるように、（Ｍ＋α）個のゼロ値を挿入して得られたデータに対して（Ｍ＋Ｎ＋α）ポイントＦＦＴを実施して得られるスペクトル係数１１１を格納しておく。
【００５１】
図４に示す通り、Ｍサンプルバッファ２０１は、畳み込み演算装置１０１に入力されたデータ１０２をＭサンプル分バッファリングする。以下、Ｍサンプルの単位をフレームと呼ぶこととする。Ｍサンプルバッファ２０１は、Ｍサンプル分のデータが溜まると、Ｍサンプル分のデータ２０２をメモリＣ３０１に入力する。メモリＣ３０１では、入力されたＭサンプルのデータ２０２を先入れ先出し法によりＭ＋Ｎサンプル分保存しておく。便宜上、今入力されたＭサンプルは、Ｎ＋１〜Ｍまでに保存されているものとし、最も古いサンプルは先頭に保存されているものとする（当然、Ｍ＋Ｎサンプルのリングバッファとしても良いし、時系列の整合さえつけば別々の場所に保存しておいてもよい）。
【００５２】
（Ｍ＋Ｎ＋α）ポイントＦＦＴ手段２０４内にあるＦＦＴバッファには、メモリＣ３０１よりＭ＋Ｎサンプルのデータ４０１を得て、古いほうから順にサンプルを入れる。αがゼロでない場合には、残りのαサンプル分はゼロクリアされているものとする。
（Ｍ＋Ｎ＋α）ポイントＦＦＴ手段２０４は、ＦＦＴバッファにある（Ｍ＋Ｎ＋α）個のデータに対して（Ｍ＋Ｎ＋α）ポイントのＦＦＴを実施し、算出した（Ｍ＋Ｎ＋α）個のスペクトル係数４０３を乗算手段１０９に向けて送信する。
【００５３】
乗算手段１０９は、あらかじめ算出しておいたインパルスレスポンスのスペクトル１１１をメモリＡ１１０より得て、先のＦＦＴの出力信号４０２とサンプル単位の乗算を行い、乗算結果４０３を（Ｍ＋Ｎ＋α）ポイント逆ＦＦＴ手段２０７に入力する。逆ＦＦＴ手段２０７は、入力された信号４０３に対して（Ｍ＋Ｎ＋α）ポイントの逆ＦＦＴを実施し、得られた信号４０４を、サンプル取りだし手段４０５へと送信する。サンプル取りだし手段４０５は、入力された信号４０４のうち、先頭から数えてＮ＋１〜Ｎ＋Ｍ番目のＭ個のサンプルを取りだし、これを出力信号１２４として出力する。なお、他のデータは全て破棄する。
【００５４】
このようにして得られた出力信号は、入力信号に対してインパルスレスポンスを正確に畳み込んだ信号となる。
【００５５】
本構成により、バッファリングするサイズがＮからＭに減少するため、遅延量をＮからＭへと減少させることができる。また、Ｍは任意の正の整数でよいため、システム設計上の自由度が非常に高くなる。さらに、メモリＣ３０１の容量は、Ｍ＋Ｎ個分の入力データを保存しておけば良く、実施の形態２に比較してメモリ容量が少なくて済むという効果もある。
【００５６】
実施の形態５．
図５は、本発明による実施の形態５を示す構成図であり、図において、
５０１は、ゼロ値挿入手段によってゼロ値が挿入されたＮサンプルのデータ列、
５０２は、ＮポイントＦＦＴを実施する手段、
５０３は、Ｎ個のスペクトル、
５０４−１、５０４−２は、２分割されたインパルスレスポンスをそれぞれゼロ詰して得たスペクトル、
５０５、５０６は、乗算されたＮ個のスペクトル、
５０７−１、５０７−２は、Ｎポイント逆ＦＦＴを実施する手段、
５０８、５１０は、逆ＦＦＴされたＮ個のデータ
５０９−１５０９−２は、入力されたサンプルを２分割する手段、
５１１は、サンプル２分割手段１（５０９−１）により分割された第１ブロック、
５１２は、サンプル２分割手段１（５０９−１）により分割された第２ブロック、
５１３は、サンプル２分割手段２（５０９−２）により分割された第１ブロック、
５１４は、サンプル２分割手段２（５０９−２）により分割された第２ブロック、
５１５は、１フレーム前の処理で格納されたデータ、
５１６は、１フレーム前の処理で格納されたデータ、
５１７は、２フレーム前の処理で格納されたデータ、
５１８は、加算手段１（１２２−１）により加算されたデータ、
５１９は、加算手段２（１２２−２）により加算されたデータである。
なお、図１と同様な部分は同じ符号を付し、説明を省略する。
【００５７】
次に動作を説明する。
まず、長さＮのインパルスレスポンスｈ（ｎ）を２分割し、ｈ０（ｎ）、ｈ１（ｎ）とする。図５におけるメモリＡ−１（１１０−１）には、ｈ０の後半をゼロ挿入してＮサンプルのデータを作成し、このＮサンプルのデータに対してＮポイントＦＦＴを実施して得られるスペクトル係数５０４−１を格納しておく。メモリＡ−２（１１０−２）には、ｈ１の後半をゼロ挿入してＮサンプルのデータを作成し、このＮサンプルのデータに対してＮポイントＦＦＴを実施して得られるスペクトル係数５０４−２を格納しておく。
【００５８】
図５に示す通り、Ｎ／２サンプルバッファ１０３は、畳み込み演算装置１０１に入力されたデータ１０２をＮ／２サンプル分バッファリングする。以下、Ｎ／２サンプルの単位をフレームと呼ぶこととする。Ｎ／２サンプルバッファ１０３は、Ｎ／２サンプル分のデータが溜まると、Ｎ／２サンプル分のデータ１０４をゼロ値挿入手段１０５に入力する。ゼロ値挿入手段１０５は、長さがＮになるまで入力されたデータ１０４の後ろにゼロ値を挿入し、ＮポイントＦＦＴ手段５０２へ送信する。ＮポイントＦＦＴ手段５０２は、入力されたＮ個のデータ５０１に対してＮポイントのＦＦＴを実施し、算出したＮ個のスペクトル係数５０３を乗算手段１（１０９−１）と乗算手段２（１０９−２）に向けて送信する。
【００５９】
乗算手段１（１０９−１）は、あらかじめ算出しておいたインパルスレスポンスのスペクトル５０４−１をメモリＡ−１（１１０−１）より得て、先のＦＦＴの出力信号５０３とサンプル単位の乗算を行い、乗算結果５０５をＮポイント逆ＦＦＴ手段５０７−１に入力する。逆ＦＦＴ手段５０７−１は、入力された信号５０５に対してＮポイントの逆ＦＦＴを実施し、得られた信号５０８をサンプル２分割手段１（５０９−１）へ向けて送信する。サンプル２分割手段１（５０９−１）は、入力された信号５０８を時系列に従って２分割する。分割された２つのサンプル列において、一番古い（先頭の）サンプル列から順番に第１ブロック、第２ブロックと称することとする。第１ブロックのサンプル５１１は加算手段１（１２２−１）へ入力する。第２ブロックのサンプル５１２は次のフレームの処理で使用するために、メモリＢ−１（１１９−１）へ格納する。
【００６０】
一方、乗算手段２（１０９−２）は、あらかじめ算出しておいたインパルスレスポンスのスペクトル５０４−２をメモリＡ−２（１１０−２）より得て、先のＦＦＴの出力信号５０３とサンプル単位の乗算を行い、乗算結果５０６をＮポイント逆ＦＦＴ手段５０７−２に入力する。逆ＦＦＴ手段５０７−２は、入力された信号５０６に対してＮポイントの逆ＦＦＴを実施し、得られた信号５１０をサンプル２分割手段２（５０９−２）へ向けて送信する。サンプル２分割手段２（５０９−２）は、入力された信号５１０を時系列に従って２分割する。第１ブロックのサンプル５１３は次のフレームの処理で使用するために、メモリＢ−２（１１９−２）へ格納する。第２ブロックのサンプルは２フレーム後の処理で使用するためにメモリＢ−３（１１９−３）へ格納する。
【００６１】
さて、加算手段１（１２２−１）は、サンプル２分割手段１（５０９−１）よりＮ／２個のサンプル５１１を得ると、メモリＢ−１（１１９−１）より、前フレームの処理で格納しておいたＮ／２個のサンプル５１５を得て、これらのサンプルをサンプル単位で加算し、加算結果５１８を加算手段２（１２２−２）へ向けて送信する。加算処理２（１２２−２）は、サンプル５１８が入力されると、メモリＢ−２（１１９−２）から１フレーム前に格納したＮ／２個のサンプル５１６を得て、これらをサンプル単位で加算し、加算結果５１９を加算手段３（１２２−３）へ向けて送信する。加算手段３（１２２−３）は、加算手段２（１２２−２）よりＮ／２個のサンプル５１９を得ると、メモリＢ−３（１１９−３）より、２フレーム前の処理で格納したＮ／２個のサンプル５１７を得て、これらのサンプルをサンプル単位で加算し、出力信号１２４として出力する。
【００６２】
本実施の形態の入出力信号について補足しておく。図１２は、本実施の形態における入出力信号とインパルスレスポンスの関係を示した図である。図にして示した通り、まず、分割したインパルスレスポンスｈ０とｈ１と、入力信号ｘの畳み込みをそれぞれ実施し、信号ｖと信号ｗを得る。信号ｖは２分割され、前半は現フレームにて使用する。後半は１フレーム先の処理に使用する。信号ｗも２分割され、前半は次のフレーム、後半は２フレーム後まで保存しておく。現フレームの処理では、現フレームの処理で得た信号ｖの前半と、１フレーム前の処理にて得た信号ｖの後半と、１フレーム前の処理にて得た信号ｗの前半と、２フレーム前の処理で得た信号ｘの後半の４つのデータを加算し、出力信号ｚを得る。
【００６３】
このようにして得られた出力信号は、入力信号に対してインパルスレスポンスを正確に畳み込んだ信号となる。
【００６４】
本構成により、バッファリングするサイズがＮからＮ／２に減少するため、遅延量をＮからＮ／２へと半減させることができる。また、実施の形態１や３と比較して、ＦＦＴおよび逆ＦＦＴのポイント数が２ＮからＮに減少するため、演算量がさらに減少するという効果もある。
【００６５】
実施の形態６．
図６は、本発明の実施の形態６による畳み込み装置の構成図であり、
６０１は、Ｍサンプル（ここではＭは２のべき乗とする）のデータをバッファリングするバッファ、
６０２は、バッファリングされたＭサンプルのデータ、
６０３は、ゼロ値が挿入された２Ｍ個のデータ、
６０４は、２ＭポイントＦＦＴを実施する手段、
６０５は、２Ｍ個のスペクトル、
６０６−１、６０６−２、６０６−ｋは、ｋ分割されたインパルスレスポンスをそれぞれゼロ詰して得たスペクトル、
６０７−１、６０７−２、６０７−ｋは、乗算されたスペクトル、
６０８−１、６０８−２、６０８−ｋは、２Ｍポイント逆ＦＦＴを実施する手段、
６０９−１、６０９−２、６０９−ｋは、逆ＦＦＴされた２Ｍ個のデータ
６１０−１、６１０−２、６１０−ｋは、入力されたサンプルを２分割する手段、
６１１−ｘ０、６１１−ｘ１は、２分割されたデータであり、添え字ｘ０はサンプル分割手段ｘにより分割された第１ブロックのデータ、添え字ｘ１は、サンプル分割手段ｘにより分割された第２ブロックのデータ、
６１２−ｘは、以前の処理で格納されたデータ、
６１３−ｘは、第ｘ段目の加算手段ｘから出力されたデータである。
なお、図１と同様な部分は同じ符号を付し、説明を省略する。
【００６６】
次に動作を説明する。
まず、設定したい遅延量をＭサンプルとし、長さＮのインパルスレスポンスｈ（ｎ）を先頭からＭサンプルづつ分割して、ｋ個のインパルスレスポンスｈ０（ｎ），ｈ１（ｎ），．．．，ｈｋ−１（ｎ）を得る。もし、ＮがＭで割り切れない場合は、ｈの末尾にＭで割り切れるようにゼロ値を挿入しておく。ここでは、Ｍは２のべき乗を仮定する。
【００６７】
図６におけるメモリＡ−１（１１０−１）には、ｈ０の後半をゼロ挿入して２Ｍサンプルのデータを作成し、この２Ｍサンプルのデータに対して２ＭポイントＦＦＴを実施して得られるスペクトル係数６０６−１を格納しておく。メモリＡ−２（１１０−２）には、ｈ１の後半をゼロ挿入して２Ｍサンプルのデータを作成し、この２Ｍサンプルのデータに対して２ＭポイントＦＦＴを実施して得られるスペクトル係数６０６−２を格納しておく。以下、ｋ個のインパルスレスポンスについて同様に後半をゼロ詰めしてスペクトルを算出し、これをメモリＡ−ｘに格納しておく。
【００６８】
図６に示す通り、Ｍサンプルバッファ６０１は、畳み込み演算装置１０１に入力されたデータ１０２をＭサンプル分バッファリングする。以下、Ｍサンプルの単位をフレームと呼ぶこととする。Ｍサンプルバッファ６０１は、Ｍサンプル分のデータが溜まると、Ｍサンプル分のデータ６０２をゼロ値挿入手段１０５に入力する。ゼロ値挿入手段１０５は、長さが２Ｍになるまで入力されたデータ６０２の後ろにゼロ値を挿入して２Ｍ個のデータ６０３を生成し、２ＭポイントＦＦＴ手段６０４へ送信する。２ＭポイントＦＦＴ手段６０４は、入力された２Ｍ個のデータ６０３に対して２ＭポイントのＦＦＴを実施し、算出した２Ｍ個のスペクトル係数６０５を乗算手段１（１０９−１）、乗算手段２（１０９−２）へと、乗算手段ｋ（１０９−ｋ）まで同じ信号を送信する。
【００６９】
乗算手段１（１０９−１）は、あらかじめ算出しておいたインパルスレスポンスのスペクトル６０６−１をメモリＡ−１（１１０−１）より得て、先のＦＦＴの出力信号６０５とサンプル単位の乗算を行い、乗算結果６０７−１を２Ｍポイント逆ＦＦＴ手段６０８−１に入力する。逆ＦＦＴ手段６０８−１は、入力された信号６０７−１に対して２Ｍポイントの逆ＦＦＴを実施し、得られた信号６０９−１をサンプル２分割手段１（６１０−１）へ向けて送信する。サンプル２分割手段１（６１０−１）は、入力された信号６０９−１を時系列に従って２分割する。分割された２つのサンプル列において、一番古い（先頭の）サンプル列から順番に第１ブロック、第２ブロックと称することとする。第１ブロックのサンプル６１１−１０は加算手段１（１２２−１）へ入力する。第２ブロックのサンプル６１１−１１は次のフレームの処理で使用するために、メモリＢ−１（１１９−１）へ格納する。
【００７０】
一方、乗算手段２（１０９−２）は、あらかじめ算出しておいたインパルスレスポンスのスペクトル６０６−２をメモリＡ−２（１１０−２）より得て、先のＦＦＴの出力信号６０５とサンプル単位の乗算を行い、乗算結果６０７−２を２Ｍポイント逆ＦＦＴ手段６０８−２に入力する。２Ｍポイント逆ＦＦＴ手段６０８−２は、入力された信号６０７−２に対して２Ｍポイントの逆ＦＦＴを実施し、得られた信号６０９−２をサンプル２分割手段２（６１０−２）へ向けて送信する。サンプル２分割手段２（６１０−２）は、入力された信号６０９−２を時系列に従って２分割する。第１ブロックのサンプル６１１−２０は次のフレームの処理で使用するために、メモリＢ−２（１１９−２）へ格納する。第２ブロックのサンプル６１１−２１は２フレーム後の処理で使用するためにメモリＢ−３（１１９−３）へ格納する。
【００７１】
以下同様に、乗算手段ｍ（ｍ＝３，．．．，ｋ）は、あらかじめ算出しておいたインパルスレスポンスのスペクトル６０６−ｍをメモリＡ−ｍ（１１０−ｍ）より得て、先のＦＦＴの出力信号６０５とサンプル単位の乗算を行い、乗算結果６０７−ｍを２Ｍポイント逆ＦＦＴ手段６０８−ｍに入力する。２Ｍポイント逆ＦＦＴ手段６０８−ｍは、入力された信号６０７−ｍに対して２Ｍポイントの逆ＦＦＴを実施し、得られた信号６０９−ｍをサンプル２分割手段ｍ（６１０−ｍ）へ向けて送信する。サンプル２分割手段ｍ（６１０−ｍ）は、入力された信号６０９−ｍを時系列に従って２分割する。第１ブロックのサンプル６１１−ｍ０はｍ−１フレーム後の処理で使用するために、メモリＢ−（２ｍ−２）（１１９−（２ｍ−２））へ格納する。第２ブロックのサンプル６１１−ｍ１はｍフレーム後の処理で使用するためにメモリＢ−（２ｍ−１）（１１９−（２ｍ−１））へ格納する。
【００７２】
さて、加算手段１（１２２−１）は、サンプル２分割手段１（６１０−１）よりＭ個のサンプル６１１−１０を得ると、メモリＢ−１（１１９−１）より、前フレームの処理で格納しておいたＭ個のサンプル６１２−１を得て、これらのサンプルをサンプル単位で加算し、加算結果６１３−１を加算手段２（１２２−２）へ向けて送信する。加算処理２（１２２−２）は、サンプル６１３−１が入力されると、メモリＢ−２（１１９−２）から１フレーム前に格納したＭ個のサンプル６１１−２を得て、これらをサンプル単位で加算し、加算結果６１３−２を加算手段３（１２２−３）へ向けて送信する。
【００７３】
以下同様に、加算手段ｍ（ｍ＝３，．．．２ｋ−２）では、加算手段ｍ−１（１２２−（ｍ−１））よりＭ個のサンプル６１３−（ｍ−１）を得ると、メモリＢ−ｍ（１１９−ｍ）より、Ｍ個のサンプル６１１−ｍを得て、これらのサンプルをサンプル単位で加算し、加算結果６１３−ｍを加算手段ｍ＋１（１２２−（ｍ＋１））へ向けて送信する。
【００７４】
ここで、メモリＢ−ｍ（１１９−ｍ）に保存しておくデータについて補足する。
メモリＢ−ｍ（１１９−ｍ）では、ｍを２で割った値を切り上げた値を仮にｐとし、ｐフレーム前までのサンプルを格納しておくこととする。また、現フレームの処理において加算手段ｍ（１２２−ｍ）に向けて出力するサンプルは一番古いｐフレーム前のＭ個のサンプルである。
最後段の加算手段２ｋ−１（１２２−（２ｋ−１））では、加算手段２ｋ−２（１２２−（２ｋ−２））よりＭ個のサンプル６１３−（２ｋ−２）を得ると、メモリＢ−（２ｋ−１）より、ｋフレーム前の処理で格納しておいたＭ個のサンプル６１１−（２ｋ−１）を得て、これらのサンプルをサンプル単位で加算し、出力信号１２４として出力する。
【００７５】
このようにして得られた出力信号は、入力信号に対してインパルスレスポンスを正確に畳み込んだ信号となる。
【００７６】
本構成により、バッファリングするサイズがＮからＭに減少するため、遅延量をＮからＭへと減少させることができる。また、実施の形態１や３と比較して、ＦＦＴおよび逆ＦＦＴのポイント数が２Ｎから２Ｍに減少するため、演算量がさらに減少するという効果もある。
【００７７】
実施の形態７．
図７は、本発明の実施の形態７．による畳み込み装置の構成図であり、
７０１は、Ｌサンプルのデータをバッファリングするバッファ、
７０２は、バッファリングされたＬサンプルのデータ、
７０３は、ゼロ値が挿入された２（Ｌ＋α）個のデータ、
７０４は、２（Ｌ＋α）ポイントＦＦＴを実施する手段、
７０５は、２（Ｌ＋α）個のスペクトル、
７０６−１、７０６−２、７０６−ｋは、ｋ分割されたインパルスレスポンスをそれぞれゼロ詰して得たスペクトル、
７０７−１、７０７−２、７０７−ｋは、乗算されたスペクトル、
７０８−１、７０８−２、７０８−ｋは、２（Ｌ＋α）ポイント逆ＦＦＴを実施する手段、
７０９−１、７０９−２、７０９−ｋは、逆ＦＦＴされた２（Ｌ＋α）個のデータ
７１０−１、７１０−２、７１０−ｋは、入力されたサンプルから任意のサンプルを取り出す手段、
７１１−ｘ０、７１１−ｘ１は、サンプル取りだし手段７１０−ｘによって取り出されたデータであり、添え字ｘ０はサンプル取りだし手段ｘにより取り出された第１ブロックのデータ、添え字ｘ１は、サンプル取りだし手段−ｘにより取り出された第２ブロックのデータ、
７１２−ｘは、以前の処理で格納されたデータ、
７１３−ｘは、第ｘ段目の加算手段ｘから出力されたデータである。
なお、図１と同様な部分は同じ符号を付し、説明を省略する。
【００７８】
次に動作を説明する。
まず、設定したい遅延量をＬサンプルとし、長さＮのインパルスレスポンスｈ（ｎ）を先頭からＬサンプルづつ分割して、ｋ個のインパルスレスポンスｈ０（ｎ），ｈ１（ｎ），．．．，ｈｋ−１（ｎ）を得る。もし、ＮがＬで割り切れない場合は、ｈの末尾にＬで割り切れるようにゼロ値を挿入しておく。ここで、Ｌは任意の非負の整数である。また、（Ｌ＋α）が２のべき乗となる最小の正の整数αを定義する。例えばＬ＝１００のときはα＝２８であり、Ｌ＝１２８のきはα＝０である。
【００７９】
図７におけるメモリＡ−１（１１０−１）には、ｈ０の後半をゼロ挿入して２（Ｌ＋α）サンプルのデータを作成し、この２（Ｌ＋α）サンプルのデータに対して２（Ｌ＋α）ポイントＦＦＴを実施して得られるスペクトル係数７０６−１を格納しておく。メモリＡ−２（１１０−２）には、ｈ１の後半をゼロ挿入して２（Ｌ＋α）サンプルのデータを作成し、この２（Ｌ＋α）サンプルのデータに対して２（Ｌ＋α）ポイントＦＦＴを実施して得られるスペクトル係数７０６−２を格納しておく。以下、ｋ個のインパルスレスポンスについて同様に後半をゼロ詰めしてスペクトルを算出し、これをメモリＡ−ｘに格納しておく。
【００８０】
図７に示す通り、Ｌサンプルバッファ７０１は、畳み込み演算装置１０１に入力されたデータ１０２をＬサンプル分バッファリングする。以下、Ｌサンプルの単位をフレームと呼ぶこととする。Ｌサンプルバッファ７０１は、Ｌサンプル分のデータが溜まると、Ｌサンプル分のデータ７０２をゼロ値挿入手段１０５に入力する。ゼロ値挿入手段１０５は、長さが２（Ｌ＋α）になるまで、入力されたデータ７０２の後ろにゼロ値を挿入し２（Ｌ＋α）個のデータ７０３を生成して、２（Ｌ＋α）ポイントＦＦＴ手段７０４へ送信する。２（Ｌ＋α）ポイントＦＦＴ手段７０４は、入力された２（Ｌ＋α）個のデータ７０３に対して２（Ｌ＋α）ポイントのＦＦＴを実施し、算出した２（Ｌ＋α）個のスペクトル係数７０５を乗算手段１（１０９−１）、乗算手段２（１０９−２）へと、乗算手段ｋ（１０９−ｋ）まで同じ信号を送信する。
【００８１】
乗算手段１（１０９−１）は、あらかじめ算出しておいたインパルスレスポンスのスペクトル７０６−１をメモリＡ−１（１１０−１）より得て、先のＦＦＴの出力信号７０５とサンプル単位の乗算を行い、乗算結果７０７−１を２（Ｌ＋α）ポイント逆ＦＦＴ手段７０８−１に入力する。２（Ｌ＋α）ポイント逆ＦＦＴ手段７０８−１は、入力された信号７０７−１に対して２（Ｌ＋α）ポイントの逆ＦＦＴを実施し、得られた信号７０９−１をサンプル取りだし手段１（７１０−１）へ向けて送信する。サンプル取りだし手段１（７１０−１）は、入力された信号７０９−１を時系列に従い、Ｌサンプルを一つのブロックとして、先頭から２ブロック分取り出す。取り出された２つのブロックにおいて、一番古い（先頭の）ブロックから順番に第１ブロック、第２ブロックと称することとする。第１ブロックのサンプル７１１−１０は加算手段１（１２２−１）へ入力する。第２ブロックのサンプル７１１−１１は次のフレームの処理で使用するために、メモリＢ−１（１１９−１）へ格納する。
【００８２】
一方、乗算手段２（１０９−２）は、あらかじめ算出しておいたインパルスレスポンスのスペクトル７０６−２をメモリＡ−２（１１０−２）より得て、先のＦＦＴの出力信号７０５とサンプル単位の乗算を行い、乗算結果７０７−２を２（Ｌ＋α）ポイント逆ＦＦＴ手段７０８−２に入力する。２（Ｌ＋α）ポイント逆ＦＦＴ手段７０８−２は、入力された信号７０７−２に対して２（Ｌ＋α）ポイントの逆ＦＦＴを実施し、得られた信号７０９−２をサンプル取りだし手段２（７１０−２）へ向けて送信する。サンプル取りだし手段２（７１０−２）は、入力された信号７０９−２を時系列に従いＬサンプルを一つのブロックとして、先頭から２ブロック分取り出す。第１ブロックのサンプル７１１−２０は次のフレームの処理で使用するために、メモリＢ−２（１１９−２）へ格納する。第２ブロックのサンプル７１１−２１は２フレーム後の処理で使用するためにメモリＢ−３（１１９−３）へ格納する。
【００８３】
以下同様に、乗算手段ｍ（ｍ＝３，．．．，ｋ）は、あらかじめ算出しておいたインパルスレスポンスのスペクトル７０６−ｍをメモリＡ−ｍ（１１０−ｍ）より得て、先のＦＦＴの出力信号７０５とサンプル単位の乗算を行い、乗算結果７０７−ｍを２（Ｌ＋α）ポイント逆ＦＦＴ手段７０８−ｍに入力する。２（Ｌ＋α）ポイント逆ＦＦＴ手段７０８−ｍは、入力された信号７０７−ｍに対して２（Ｌ＋α）ポイントの逆ＦＦＴを実施し、得られた信号７０９−ｍをサンプル取りだし手段ｍ（７１０−ｍ）へ向けて送信する。サンプル取りだし手段ｍ（７１０−ｍ）は、入力された信号７０９−ｍを時系列に従いＬサンプルを一つのブロックとして、先頭から２ブロック分取り出す。第１ブロックのサンプル７１１−ｍ０はｍ−１フレーム後の処理で使用するために、メモリＢ−（２ｍ−２）（１１９−（２ｍ−２））へ格納する。第２ブロックのサンプル７１１−ｍ１はｍフレーム後の処理で使用するためにメモリＢ−（２ｍ−１）（１１９−（２ｍ−１））へ格納する。
【００８４】
さて、加算手段１（１２２−１）は、サンプル取りだし手段１（７１０−１）よりＬ個のサンプル７１１−１０を得ると、メモリＢ−１（１１９−１）より、前フレームの処理で格納しておいたＬ個のサンプル７１２−１を得て、これらのサンプルをサンプル単位で加算し、加算結果７１３−１を加算手段２（１２２−２）へ向けて送信する。加算処理２（１２２−２）は、サンプル７１３−１が入力されると、メモリＢ−２（１１９−２）から１フレーム前に格納したＬ個のサンプル７１１−２を得て、これらをサンプル単位で加算し、加算結果７１３−２を加算手段３（１２２−３）へ向けて送信する。
【００８５】
以下同様に、加算手段ｍ（ｍ＝３，．．．２ｋ−２）では、加算手段ｍ−１（１２２−（ｍ−１））よりＬ個のサンプル７１３−（ｍ−１）を得ると、メモリＢ−ｍ（１１９−ｍ）より、Ｌ個のサンプル７１１−ｍを得て、これらのサンプルをサンプル単位で加算し、加算結果７１３−ｍを加算手段ｍ＋１（１２２−（ｍ＋１））へ向けて送信する。
【００８６】
ここで、メモリＢ−ｍ（１１９−ｍ）に保存しておくデータについて補足する。
メモリＢ−ｍ（１１９−ｍ）では、ｍを２で割った値を切り上げた値を仮にｐとし、ｐフレーム前までのサンプルを格納しておくこととする。また、現フレームの処理において加算手段ｍ（１２２−ｍ）に向けて出力するサンプルは一番古いｐフレーム前のＬ個のサンプルである。
【００８７】
最後段の加算手段２ｋ−１（１２２−（２ｋ−１））では、加算手段２ｋ−２（１２２−（２ｋ−２））よりＬ個のサンプル７１３−（２ｋ−２）を得ると、メモリＢ−（２ｋ−１）より、ｋフレーム前の処理で格納しておいたＬ個のサンプル７１１−（２ｋ−１）を得て、これらのサンプルをサンプル単位で加算し、出力信号１２４として出力する。
【００８８】
このようにして得られた出力信号は、入力信号に対してインパルスレスポンスを正確に畳み込んだ信号となる。
【００８９】
本構成により、バッファリングするサイズがＮからＬに減少するため、遅延量をＮからＬへと減少させることができる。また、実施の形態１や３と比較して、ＦＦＴおよび逆ＦＦＴのポイント数が２Ｎから２（Ｌ＋α）に減少するため、演算量がさらに減少するという効果もある。さらに、実施の形態６では、遅延量Ｍを２のべき乗としなければならなかったが、本実施の形態ではこの条件は無く、より自由度の高い遅延量の設定が可能である。
【００９０】
実施の形態８．
図８は、本発明による畳み込み方式の原理説明図であり、実施の形態１、２、５、６におけるメモリを削減することを目的としたものであり、具体例として実施の形態５に対して有効となる構成を示した図である。もちろん、実施の形態１、２、６においても同様に適用できる。
【００９１】
図８において
８０１は、加算手段２（１２２−２）の出力信号、
８０２は、２フレーム前の処理で格納したデータ、
８０３は、加算手段３（１２２−３）の出力信号、
８０４は、１フレーム前の処理で格納したデータである。
なお、図１及び図５と同様な部分は同様な符号を付し、説明を省略する。
【００９２】
次に動作を説明する。
サンプル２分割手段１（５０９−１）およびサンプル２分割手段２（５０９−２）までの動作は実施の形態５と同様の動作をする。以下、実施の形態５と異なった動作をする箇所のみ説明する。
サンプル２分割手段１（５０９−１）では、２分割したブロックのうち、第１ブロック５１１を加算手段１（１２２−１）へ向けて出力する。第２ブロック５１２は加算手段２（１２２−２）へ出力する。
サンプル２分割手段２（５０９−１）では、第１ブロック５１３を加算手段１（１２２−１）へ、第２ブロック５１４は加算手段２（１２２−２）に向けて出力する。
【００９３】
加算手段２（１２２−２）は、サンプル２分割手段１（５０９−１）およびサンプル２分割手段２（５０９−２）より得たＮ／２個のサンプルをそれぞれサンプル単位で加算し、加算結果８０１を加算手段３（１２２−３）へ向けて出力する。加算手段３（１２２−３）では、メモリＢ−１（１１９−１）より、２フレーム前の処理で格納したデータ８０２を得て、加算手段２（１２２−２）より得たＮ／２個のサンプル８０１とそれぞれサンプル単位で加算し、加算結果８０３をメモリＢ−２（１１９−２）へ向けて出力する。
【００９４】
一方、加算手段１（１２２−１）は、サンプル２分割手段１（５０９−１）から得たＮ／２個のサンプル５１１と、メモリＢ−２（１１９−２）から得た、１フレーム前の処理で格納しておいたＮ／２個のサンプル８０４をそれぞれサンプル単位で加算し、加算結果を出力信号１２４として出力する。
【００９５】
このようにして得られた出力信号は、入力信号に対してインパルスレスポンスを正確に畳み込んだ信号となる。本実施の形態は、サンプル分割手段により分割されたデータをメモリに保存する前にあらかじめ加算しておく構成となっていることにより、保存しておくデータ量を削減することが可能となる。
【００９６】
本構成により、実施の形態１、２、５、６に比較してメモリ容量が減少するという効果がある。
【００９７】
実施の形態９
図９は、本発明による実施の形態９を示す図であり、実施の形態５、６において、入力信号が実数である場合に、演算量を削減することが可能となる構成となっており、具体例として実施の形態５に対して有効な図である。もちろん、実施の形態６においても同様に適用できる。
【００９８】
図９において、
９０１は、２分割されたインパルスレスポンスを実数成分、虚数成分を使用して一つの複素数列として、さらに後半をゼロ詰して得たスペクトル、
９０２は、乗算されたスペクトル、
９０３は、逆ＦＦＴして得たデータ、
９０４は、入力信号に対して、実数／虚数成分を分割する手段、
９０５は、実数／虚数分割手段９０４で分割された実数成分、
９０６は、実数／虚数分割手段９０４で分割された虚数成分である。
なお、図１及び図５と同様な部分は同様な符号を付し、説明を省略する。
【００９９】
次に動作を説明する。
まず、ｈ０を実数、ｈ１を虚数としてＮ／２個の複素数を生成し、これを新たなインパルスレスポンスｇとする。ｇの長さはＮ／２である。図９におけるメモリＡ（１１０）には、ｇの後半をゼロ詰して長さＮの複素数を生成し、このＮサンプルの複素数に対してＮポイントＦＦＴを実施して得られるスペクトル係数９０１を格納しておく。
【０１００】
図９において、ＮポイントＦＦＴ手段５０２までの動作は実施の形態５と同様の動作をする。以下、実施の形態５と異なった動作をする箇所のみ説明する。
【０１０１】
乗算手段１０９は、ＮポイントＦＦＴ手段５０２より入力されたＮ個のスペクトル５０３を得ると、メモリＡ（１１０）からあらかじめ算出しておいたインパルスレスポンスのスペクトル９０１を得て、先のＦＦＴの出力信号５０３との乗算を行い、乗算結果９０２をＮポイント逆ＦＦＴ手段５０７に入力する。Ｎポイント逆ＦＦＴ手段５０７は、入力された信号９０２に対してＮポイントの逆ＦＦＴを実施し、得られたサンプル９０３を実数／虚数分割手段９０４に出力する。実数／虚数分割手段９０４は、Ｎ個のサンプル９０３を得ると、実数成分と虚数成分に分割し、実数成分９０５をサンプル２分割手段１（５０９−１）へ、虚数成分９０６をサンプル２分割手段２（５０９−２）へと出力する。
【０１０２】
以下、サンプル２分割手段１（５０９−１）およびサンプル２分割手段２（５０９−２）以降の動作は、実施の形態５と同様の動作である。
【０１０３】
このようにして得られた出力信号は、入力信号に対してインパルスレスポンスを正確に畳み込んだ信号となる。なお、上記はｈ０を実数成分、ｈ１を虚数成分として複素数を生成しているが、これに限らず、ｈ０を虚数成分、ｈ１を実数成分としても、サンプル２分割手段１（５０９−１）およびサンプル２分割手段２（５０９−２）に入力する信号を逆にすることで同様の効果を得られる。
【０１０４】
本実施の形態は、ＦＦＴに入力する虚数成分を有効に使用することにより、演算量を削減することが可能となる効果がある。実施の形態７でも同様に適用でき、具体的には、分割数ｋが偶数の場合には２個のインパルスレスポンスをそれぞれ実数成分、虚数成分としてｋ／２の複素数を生成することにより適用できる。ｋが奇数の場合でも、最後のｈｋ−１以外のインパルスレスポンスをそれぞれ実数成分、虚数成分としてｋ／２−１の複素数を生成することにより適用できる。
【０１０５】
本構成により、実施の形態５と比較して、乗算手段、逆ＦＦＴ手段の数が減少することによって演算量が減少し、回路規模を小さく出来るという効果がある。
【０１０６】
【発明の効果】
以上のように本発明によれば、出力信号は入力信号に対してインパルスレスポンスを正確に畳み込んだ信号となり、所望の演算結果が正しく得られる。
また、バッファリングするサイズが減少するため、遅延量を減すことができる。
【図面の簡単な説明】
【図１】本発明の実施の形態１による畳み込み装置の構成図。
【図２】本発明の実施の形態２による構成図。
【図３】本発明の実施の形態３による構成図。
【図４】本発明の実施の形態４による構成図。
【図５】本発明の実施の形態５による構成図。
【図６】本発明の実施の形態６による構成図。
【図７】本発明の実施の形態７による構成図。
【図８】本発明の実施の形態８による構成図。
【図９】本発明の実施の形態９による構成図。
【図１０】実施の形態１における入出力信号とインパルスレスポンスの関係図。
【図１１】実施の形態３における入出力信号とインパルスレスポンスの関係図。
【図１２】実施の形態５における入出力信号とインパルスレスポンスの関係図。
【図１３】従来技術の原理説明図。
【符号の説明】
１０１：畳み込み演算装置、１０２：入力信号、１０３：バッファ、１０５：ゼロ値挿入手段、１０７：２ＮポイントＦＦＴ手段、１０９：乗算手段、１１０：メモリＡ、１１３：２Ｎポイント逆ＦＦＴ手段、１１５：分割手段、１１９−１、１１９−２：メモリＢ、１２２−１、１２２−２：加算手段、１２４：出力信号、２０１：バッファ、２０４：（Ｍ＋Ｎ＋α）ポイントＦＦＴを実施する手段、２０７：（Ｍ＋Ｎ＋α）ポイントの逆ＦＦＴを実施する手段、２０９：分割手段、３０１：バッファリングデータ用メモリ、４０５：特定サンプル列取出手段、５０７−１、５０７−２：Ｎポイント逆ＦＦＴ手段、５０９−１５０９−２：入力サンプル２分割手段、６０１：Ｍサンプルデータ用バッファ、６０４：２ＭポイントＦＦＴ手段、６０８−１、６０８−２、６０８−ｋ：２Ｍポイント逆ＦＦＴ手段、６１０−１、６１０−２、６１０−ｋ：入力サンプル２分割手段、７０１：Ｌサンプルデータ用バッファ、７０４：２（Ｌ＋α）ポイントＦＦＴ手段、７０８−１、７０８−２、７０８−ｋ：２（Ｌ＋α）ポイント逆ＦＦＴ手段、７１０−１、７１０−２、７１０−ｋ：任意サンプル取出手段、９０４：実数／虚数成分分割手段。
【図１】
2004184536.tif 000003
【図２】
2004184536.tif 000004
【図３】
2004184536.tif 000005
【図４】
2004184536.tif 000006
【図５】
2004184536.tif 000007
【図６】
2004184536.tif 000008
【図７】
2004184536.tif 000009
【図８】
2004184536.tif 000010
【図９】
2004184536.tif 000011
【図１０】
2004184536.tif 000012
【図１１】
2004184536.tif 000013
【図１２】
2004184536.tif 000014
【図１３】
2004184536.tif 000015