JP2004184536A - 畳み込み演算装置及び畳み込み演算プログラム - Google Patents
畳み込み演算装置及び畳み込み演算プログラム Download PDFInfo
- Publication number
- JP2004184536A JP2004184536A JP2002348780A JP2002348780A JP2004184536A JP 2004184536 A JP2004184536 A JP 2004184536A JP 2002348780 A JP2002348780 A JP 2002348780A JP 2002348780 A JP2002348780 A JP 2002348780A JP 2004184536 A JP2004184536 A JP 2004184536A
- Authority
- JP
- Japan
- Prior art keywords
- fft
- memory
- data
- output
- sample
- 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.)
- Abandoned
Links
Images
Abstract
【解決手段】入力信号の任意長さの信号に対して、ゼロ値を挿入して規定の長さにし、FFTを実施する。一方、インパルスレスポンスにゼロ値を挿入し、規定長にしたデータをFFTして得たスペクトルを予めメモリAに保存する。FFT手段の出力スペクトルとメモリAからのスペクトルとを係数ごとに乗算し、その出力に逆FFTを実施して規定の長さに分割し、複数のメモリBにより所望の処理フレームまで保存し、分割手段の出力と、先に処理されメモリBに保存された信号とをサンプル単位で加算し、この加算結果とさらに先に処理され他のメモリBに保存された信号とをサンプル単位で加算する処理を順次所定回数実施する。
【選択図】 図1
Description
【発明の属する技術分野】
本発明は、ディジタル信号に対して有限時間長インパルス応答を畳み込む技術、特に立体音響技術における頭部音響伝達関数の畳み込み処理や残響などの各種エフェクト付加、帯域分割フィルタリング処理、無線通信におけるコサインロールオフフィルタなどの各種フィルタリング処理において、FFTを用いて高速に畳み込み演算を実施する装置およびプログラムに関する。
【0002】
【従来の技術】
あるディジタル信号(以下、データ若しくはサンプルと称す)に対し、長さがNサンプルのインパルス応答hの畳み込み演算を実施する場合、単純に時間軸上で畳み込み演算を実施すると、N個のデータを処理するのに、Nの2乗に比例する回数の乗算と加算が必要となる。これはNが比較的長い場合には膨大な演算量となり、回路規模が増大するなどの問題が発生する。
【0003】
これに対し、FFTを用いて周波数軸上で畳み込み演算を実施すると、N log Nに比例する回数の乗算および加算で済むことが知られている。これはOverlap−Add方式やOverlap−Save方式などと呼ばれる手法を用いて実現することができ、Nが長い場合によく用いられている。上記2方式の詳細については、Jonathan Stein著の文献「Digital Signal Processing」Wiley−interscience pp.531−578, 2000などを参考にするとよい。
【0004】
しかし、上記2方式はNサンプルのバッファリングが必要であるため、入力するデータが時系列データである場合、畳み込み演算を施した出力信号を得るためには、演算時間をゼロとした理想状態を仮定してもNサンプル時間の遅延量が発生してしまう。これは、Nが比較的大きい場合には多大な遅延量が発生することを意味するため、リアルタイム性が求められるシステムに適用する場合には大きな問題となる。
【0005】
本問題点を解決しようとした従来技術に、特開2000−267682号公報がある。この従来技術の原理説明図を図13に示す。以下、特開2000−267682号公報にて記述されている例を引用しながら動作を説明する。
図13において、インパルス応答h(n)を処理する場合には、
・インパルス応答h(n)のデータをインパルス応答バッファに順次入力し(入力ブロック1311)、
・次いでN/2サンプル分のインパルス応答h(n)を取得すると、N/2サンプル分のインパルス応答h(n)のデータ長と同じ長さの「0」をインパルス応答h(n)の前に付加することにより、Nサンプル分のインパルス応答h(n)を2つのブロックに分割する(分割ブロック1312)。これを前半後半に分けてh0(n)、h1(n)と呼ぶことにする。
・次いでこの「0」を付加したNサンプルで1ブロック分(N/2サンプル分)のFFT処理を行い(FFT処理ブロック1313)、
・FFT処理結果をインパルス応答バッファにストアする(FFT処理結果ストアブロック1314)。
【0006】
入力信号x(n)を処理する場合には、
・入力信号x(n)をN/2サンプル(ブロック)毎に第1、第2の入力バッファ(不図示)に交互に入力する(入力ブロック1315)。
・そして、第1の入力バッファがN/2サンプルの入力信号xm(n)で満たされると(バッファリングブロック1316)、入力バッファとは別のNサンプル分の入力信号用バッファの後半にコピーし、また、前半には1ブロック(N/2サンプル)前の入力信号xm−1(n)で埋める(ただし、初回は「0」で埋める)(ストアブロック1317)。
・そして、Nサンプルで1ブロック分のFFT処理を行い、処理結果を入力信号用バッファにストアする(FFT処理ブロック1318)。
【0007】
・次いでブロック毎の入力信号x(n)のFFT処理結果とインパルス応答h(n)のFFT処理結果を乗算し(乗算処理ブロック1319)、
・次いでブロック毎の乗算結果を逆FFT処理し(逆FFT処理ブロック1320)、
・次いでブロック毎の乗算結果を2ブロック分(Nサンプル分)加算し(加算ブロック1321)、
・次いでこの加算結果をNサンプル分の畳み込み演算結果として出力バッファcに書き込む(ステップ1322)。
【0008】
上記従来技術では、バッファリングするサイズがN/2となるので、通常のOverlap−Add方式やOverlap−Save方式に比較して遅延量が半減する。上の例では分割数が2であるが、一般的に分割数をDとすると、N/Dまで遅延を減少させることができ、リアルタイム性を向上させることができる。
【0009】
しかし、上記従来技術の乗算ブロック1319の処理では、正しく所望の演算結果が得られないという問題がある。すなわち、上記従来技術の動作を信号処理的に解釈すると、レスポンス長がN/2のh0とh1を加算して新たに得られるレスポンス長N/2のh’を畳み込むことと等価となり、本来求めたいレスポンス長Nのh(n)を畳み込む処理とはならない。これは、h0(n)に関しては、N/2サンプル分の長さであるため、xm(n)とxm−1(n)の畳み込み演算結果を正しく得ることができるが、h1(n)に関しては、本来、Nサンプル分の長さであるため、xm−1(n)のレスポンス分は、xm+1に畳み込まれるべき信号であるためにもかかわらず、xm(n)の信号に畳み込まれるからである。
【0010】
さらに、加算ブロック1321において、過去のNサンプルからのインパルス応答を全て現在のサンプルに畳み込むことが出来ないという問題もある。すなわち、h1(n)に関しては、本来、その長さはNであるため、さらに1フレーム過去の入力信号xm−2(n)のレスポンスをxm(n)に畳み込まなければならないが、上記従来技術では本演算を実行する処理が存在しないのである。端的に言うと、h0は上記従来技術に従ってxmとxm−1に関してそのレスポンスを求めれば良いが、h1はxm−2に関してもそのレスポンスを求める必要があるのである。これは、上記の従来技術では、例え、xm−2(n)をバッファリングするようにもう一つの処理ブロックを追加したとしても、上記従来技術にて記述されているように、入力信号を交互にバッファリングし、Overlap−Save法に基づいて算出している(入力ブロック1315、ストアブロック1317、乗算処理ブロック1319に記述されている)限りは、xm−2だけに関するh1の純粋なレスポンスを得ることは不可能である。
【0011】
さらに、上記従来技術では、インパルスレスポンス長Nは分割数Dで割り切れる必要があり、遅延量もN/Dに制限されてしまうため、任意の長さの遅延量を実現することは出来ない。
【0012】
また、上記と類似した別の従来技術として、特開2000−341139号公報がある。詳細は特開2000−341139号公報を参照すれば良いために省略するが、本方式は、前記特開2000−267682号公報のように、過去のデータの応答を反映させることが出来ないという問題は解決している。しかし、FFTする際に、インパルス応答、入力データ共に後半をゼロ詰めしてからFFTをしないと、FFTの周期性から発生する周り込み成分(円状畳み込みの成分)がノイズとなって、正確な畳み込み演算が実施できないが、この従来技術にはゼロ詰をする機能をもったブロックの記述はなく、大きなノイズが発生してしまうという問題がある。
【0013】
仮に、この従来技術を、円状畳み込みの影響をキャンセルするようにFFTの入力データに修正を加えたとしても、以下のような問題も依然として存在する。すなわち、まず、インパルス応答を2のべき乗で等分し、分割されたブロックの前半をさらに2のべき乗で当分割し、2回目の分割により分割されたブロックの一部をさらに2のべき乗で分割しなければならないという分割方法上の大きな制約がある。これは、Nが2のべき乗である特別な場合には、問題無く機能する場合もあると思われるが、例えば、インパルス応答の長さNが768の場合、最小の分割数で分割したとして、まず768を384づつ2つのブロックに2分割し、その前半のブロックを192で2分割し、最後に前半のブロックの2番目(ただし、最後に分割するブロックの位置は任意となっている)を96づつ2分割することとなる。この場合、FFTが2のべき乗のサンプル数でしか変換できないという制約から、96のデータなら128個のデータとしてFFTする必要があり(円状畳み込みの影響をキャンセルするように上記従来技術を修正した場合にはFFTのポイント数は倍の256ポイント)、明らかに冗長となる。なお、理想状態の遅延量(以下、遅延量の算出は常に理想状態を仮定する)は、256サンプル時間となる。
【0014】
この例の場合、例えば、もしhを3分割して処理することができれば、3系列の256個のデータに対して無駄なくFFTすることができるので、冗長な部分を取り除くことが期待できる。遅延時間も256サンプル時間であり、上記従来技術と同等となる。
以上述べた通り、上記従来技術では、インパルスレスポンスを分割する上で多大な制約があり、かつ任意の長さの遅延量を実現することが出来ないという問題がある。
【0015】
【非特許文献1】
Jonathan Stein著「Digital Signal Processing」Wiley−interscience pp.531−578, 2000
【0016】
【特許文献1】
特開2000−267682号公報
【0017】
【特許文献2】
特開2000−341139号公報
【0018】
【発明が解決しようとする課題】
以上のように非特許文献1では、Nサンプル時間の遅延量が発生し、リアルタイム性が求められるシステムに適用する場合は大きな問題となる。
また、特許文献1では、Nサンプル分の後半インパルス応答h1(n)に関しては、本来、Nサンプル分の長さであるため、xm−1(n)のレスポンス分は、xm+1に畳み込まれるべき信号であるためにもかかわらず、xm(n)の信号に畳み込まれるため、所望の演算結果が正しく得られないという問題がある。。
さらに、特許文献2では、インパルス応答、入力データ共後半のゼロ詰め機能をもたず大きなノイズが発生してしまうという問題がある。
本発明は上記問題点を鑑み、全ての過去のインパルス応答を正しく、高速かつ低遅延量で畳み込むことができ、かつ、その遅延量の設計の自由度が高い畳み込み演算装置および方式を提供することを目的とする。
【0019】
【課題を解決するための手段】
本発明に係る畳み込み演算装置は、入力信号に対して、任意の長さの信号をバッファリングするバッファと、
バッファにバッファリングされた信号に対して、ゼロ値を挿入して規定の長さにするゼロ値挿入手段と
ゼロ値挿入手段の出力に対しFFTを実施するFFT手段と、
インパルスレスポンスにゼロ値を挿入し、規定の長さにしたデータをFFTして得たスペクトルを予め保存しておくメモリAと、
FFT手段の出力スペクトルとメモリからのスペクトルとの2系列のスペクトルを係数ごとに乗算する乗算手段と、
乗算手段の出力に対し逆FFTを実施する逆FFT手段と、
逆FFT手段から出力されたサンプルを規定の長さで分割する分割手段と、
分割手段の出力を所望の処理フレームまでデータを保存しておく複数のメモリBと
分割手段の出力と、先に処理されメモリBに保存された信号との2系列の信号をサンプル単位で加算し、この加算結果とさらに先に処理され他のメモリBに保存された信号との2系列の信号をサンプル単位で加算する処理を順次所定回実施する複数の加算手段と、
を備える。
【0020】
また、本発明に係る畳み込み演算プログラムは、入力信号に対して、任意の長さの信号をバッファにバッファリングする手順と、
バッファにバッファリングされた信号に対して、ゼロ値を挿入して規定の長さにするゼロ値挿入手順と
ゼロ値挿入手順の出力に対しFFTを実施するFFT手順と、
インパルスレスポンスにゼロ値を挿入し、規定の長さにしたデータをFFTして得たスペクトルを予めメモリAに保存する手順と、
FFT手順の出力スペクトルとメモリからのスペクトルとの2系列のスペクトルを係数ごとに乗算する乗算手順と、
乗算手順の出力に対し逆FFTを実施する逆FFT手順と、
逆FFT手順から出力されたサンプルを規定の長さで分割する分割手順と、
分割手順の出力を所望の処理フレームまでデータを複数のメモリBに保存しておく手順と
分割手順の出力と、先に処理されメモリBに保存された信号との2系列の信号をサンプル単位で加算し、この加算結果とさらに先に処理され他のメモリBに保存された信号との2系列の信号をサンプル単位で加算する処理を順次所定回実施する加算手順と、
をコンピュータに実行させる。
【0021】
【発明の実施の形態】
実施の形態1.
【0022】
図1は、本発明の実施の形態1による畳み込み演算装置の構成図であり、
101は、本発明による畳み込み演算装置、
102は、入力信号、
103は、N/2サンプルのデータをバッファリングするバッファ、
104は、バッファリングされたN/2個のデータ、
105は、ゼロ値挿入手段、
106は、ゼロ値挿入手段105によってゼロ値が挿入された2Nサンプルのデータ列、
107は、2NポイントFFTを実施する手段、
108は、2NポイントFFT107の処理結果である2N個のスペクトル、
110は、インパルスレスポンスのスペクトルを格納するメモリA、
111は、インパルスレスポンスのスペクトル、
109は、スペクトル111と2N個のスペクトル108をサンプル単位で乗算を実行する乗算手段、
112は、乗算手段109により乗算されたスペクトル、
113は、スペクトル112を2Nポイントの逆FFTを実施する手段、
114は、2Nポイント逆FFT113により処理された2N個のデータ、
115は、サンプルを4分割する手段、
116は、第1ブロックのデータ、
117は、第2ブロックのデータ、
118は、第3ブロックのデータ、
119−1、119−2は、データを格納するメモリB、、
120は、1フレーム前の処理で格納されたデータ、
121は、2フレーム前の処理で格納されたデータ、
122−1、122−2は、サンプル単位で加算する加算手段、
123は、加算手段1の出力信号、
124は、出力信号を表す。
【0023】
次に動作を説明する。
まず、メモリA110には、長さNのインパルスレスポンスhの後半をゼロ挿入して2Nサンプルのデータを作成し、この2Nサンプルのデータに対して2NポイントFFTを実施して得られるスペクトル係数111を格納しておく。
【0024】
図1に示す通り、N/2サンプルバッファ103は、畳み込み演算装置に入力されたデータ102をN/2サンプル分バッファリングする。以下、N/2サンプルの単位をフレームと呼ぶこととする。N/2サンプルバッファ103は、N/2サンプル分のデータが溜まると、N/2サンプル分のデータ104をゼロ値挿入手段105に入力する。ゼロ値挿入手段105は、長さが2Nになるまで入力されたデータ104の後ろにゼロ値を挿入し、2NポイントFFT手段107へ送信する。2NポイントFFT手段107は、入力された2N個のデータ106に対して2NポイントのFFTを実施し、算出した2N個のスペクトル係数108を乗算手段109に向けて送信する。
【0025】
乗算手段109は、あらかじめ算出しておいたインパルスレスポンスのスペクトル111をメモリA110より得て、先のFFTの出力信号108との乗算をサンプル単位で行い、乗算結果112を2Nポイント逆FFT手段113に入力する。逆FFT手段113は、入力された信号112に対して2Nポイントの逆FFTを実施し、得られた信号114をサンプル4分割手段115へ向けて送信する。
【0026】
サンプル4分割手段115は、入力された信号114を時系列に従って4分割する。分割された4つのサンプル列において、一番古い(先頭の)サンプル列から順番に第1ブロック、第2ブロック、第3ブロック、第4ブロックと称することとする。第1ブロックのサンプル116は加算手段1(122−1)へ入力する。第2ブロックのサンプル117は次のフレームの処理で使用するために、メモリB−1(119−1)へ格納する。第3ブロックのサンプル118は2フレーム後の処理で使用するためにメモリB−2(119−2)へ格納する。第4ブロックのサンプルは破棄する。
【0027】
さて、加算手段1(122−1)は、逆FFT手段113から現フレームの第1ブロックのサンプル114を得ると、メモリB−1(119−1)より前フレームで格納しておいた第2ブロックのサンプル120を得て、これらのサンプルをサンプル単位で加算し、加算結果123を加算手段2(122−2)へ向けて送信する。加算処理2(122−2)は、サンプル123が入力されると、メモリB−2(119−2)から2フレーム前の第3ブロックのサンプル121を得て、これらをサンプル単位で加算し出力信号124として出力する。
【0028】
本装置の入出力信号について補足しておく。図10は、本実施の形態における入出力信号とインパルスレスポンスの関係を示した図である。図にして示した通り、インパルスレスポンスhと入力信号xの畳み込みを実施した長さ2Nの信号yは4分割され、第1ブロックは現フレームにて使用し、第2ブロックは次のフレーム、第3ブロックは2フレーム後の処理まで保存する。第4ブロックは破棄する。現フレームの処理では、1フレーム前の第2ブロックと2フレーム前の第3ブロックの信号を加算して、出力信号zを得る。
【0029】
このようにして得られた出力信号は、入力信号に対してインパルスレスポンスを正確に畳み込んだ信号となる。
【0030】
以上のような処理は畳み込み演算プログラムによって実現される。
【0031】
本構成により、バッファリングするサイズがNからN/2に減少するため、遅延量をNからN/2へと半減させることができる。
実施の形態2.
【0032】
図2は、本発明による実施の形態2を表す構成図である。本実施の形態では、インパルスレスポンス長Nによらず、遅延量をMサンプルとして任意に設計することが出来る。
図2において、
201は、Mサンプルのデータをバッファリングするバッファ、
202は、バッファリングされたMサンプルのデータ、
203は、ゼロ値挿入手段105によってゼロ値が挿入された(M+N+α)サンプルのデータ列、
204は、(M+N+α)ポイントFFTを実施する手段、
205は、(M+N+α)個のスペクトル、
206は、乗算手段109により乗算されたスペクトル、
207は、(M+N+α)ポイントの逆FFTを実施する手段、
208は、(M+N+α)サンプルのデータ、
209は、入力を分割する手段、
210−1、210−2、210−kは、それぞれ、第1ブロックのデータ、第2ブロックのデータ、第kブロックのデータ、
211−1、211−2、211−kは、それぞれ、過去のフレームで格納された第1ブロックのデータ、第2ブロックのデータ、第kブロックのデータ、
212は、加算手段1から出力されたデータ、
213は、加算手段k−2から出力されたデータである。
なお、図1と同様な部分は同じ符号を付し、説明を省略する。
【0033】
次に動作を説明する。
まず、メモリA(110)には、長さNのインパルスレスポンスhの後半に、全体の長さが、設定する遅延量MとNを加算した長さ以上の最小の2のべき乗の長さになるように、(M+α)個のゼロ値を挿入して得られたデータに対して(M+N+α)ポイントFFTを実施して得られるスペクトル係数111を格納しておく。ここでαは、全体の長さが2のべき乗になるように調節する非負の整数である。例えば、M+Nがちょうど2のべき乗になる場合にはαは0となる。そうでない場合、例えばN=100、M=10であれば、αは18となる(N+M+α=128となる)。
【0034】
図2に示す通り、Mサンプルバッファ201は、畳み込み演算装置101に入力されたデータ102をMサンプル分バッファリングする。以下、Mサンプルの単位をフレームと呼ぶこととする。Mサンプルバッファ201は、Mサンプル分のデータが溜まると、Mサンプル分のデータ202をゼロ値挿入手段105に入力する。ゼロ値挿入手段105は、長さが(M+N+α)になるまで入力されたデータ202の後ろにゼロ値を挿入し、(M+N+α)ポイントFFT手段204へ送信する。(M+N+α)ポイントFFT手段204は、入力された(M+N+α)個のデータ203に対して(M+N+α)ポイントのFFTを実施し、算出した(M+N+α)個のスペクトル係数205を乗算手段109に向けて送信する。
【0035】
乗算手段109は、あらかじめ算出しておいたインパルスレスポンス111のスペクトルをメモリA110より得て、先のFFTの出力信号205とサンプル単位での乗算を行い、乗算結果206を(M+N+α)ポイント逆FFT手段207に入力する。逆FFT手段207は、入力された信号206に対して(M+N+α)ポイントの逆FFTを実施し、得られた信号208をサンプル分割手段209へ向けて送信する。
【0036】
サンプル分割手段209は、入力された信号208を時系列に従って先頭からMサンプルづつ分割する。分割されたサンプル列において、一番古い(先頭の)サンプル列から順番に第1ブロック、第2ブロックなどと称することとする。第1ブロックのサンプル210−1は加算手段1(122−1)へ入力する。第2ブロックのサンプル210−2は次のフレームの処理で使用するために、メモリB−1(119−1)へ格納する。以下、同様に、分割するデータがM+Nサンプルを超えるまでそれぞれ以降のフレームの処理のためにメモリB−x(119−x)に格納する。
【0037】
ここで、サンプル分割手段209において分割する方法について補足しておく。分割するデータの末尾のサンプルが、先頭から数えてM+N以上(M+N+α)以下に位置するサンプルであれば、分割を終了し、それ以降のデータを破棄する。(M+N+α)よりも大きい場合は、足りないサンプルを0で置き換えてMサンプルの長さにして保存してもよいも良いし、端数のみを保存してもどちらでも良い。例えば、N=100、M=10、α=18の場合、11回の分割を行い、残りの18サンプルは破棄する。N=100、M=28、α=0の場合は、5回の分割を行い、第5フレームは16サンプルのみ保存してもよいし、末尾に0を付加して28サンプルとして保存してもよい。また便宜上、分割数をkとする。
【0038】
さて、加算手段1(122−1)は、逆FFT手段207より、現フレームの第1ブロックのサンプル210−1を得ると、メモリB−1(119−1)より前フレームで格納しておいた第2ブロックのサンプル211−1を得て、これらのサンプルをサンプル単位で加算し、加算結果212を加算手段2(122−2)へ向けて送信する。加算手段2(122−2)は、サンプル212が入力されると、メモリB−2(119−2)から2フレーム前の第3ブロックのサンプル211−2を得て、これらをサンプル単位で加算し、出力結果次の加算手段へ出力する。以下同様に、k−1回の加算を行い、出力信号124を得る。
【0039】
このようにして得られた出力信号は、入力信号に対してインパルスレスポンスを正確に畳み込んだ信号となる。
【0040】
本構成により、バッファリングするサイズがNからMに減少するため、遅延量をNからMへと減少させることができる。また、Mは任意の正の整数でよいため、システム設計上の自由度が非常に高くなる。
【0041】
実施の形態3.
図3は、本発明による実施の形態3を示す構成図であり、図において、
301は、バッファリングされたデータを保存しておくメモリC、
302は、2NポイントFFT手段107へ入力するデータ、
303は、2N個のスペクトル、
304は、乗算されたスペクトル、
305は、2Nサンプルのデータである。
なお、図1と同様な部分は同じ符号を付し、説明を省略する。
【0042】
次に動作を説明する。
まず、図3におけるメモリA110には、実施の形態1と同様に長さNのインパルスレスポンスhの後半をゼロ挿入して2Nサンプルのデータを作成し、この2Nサンプルのデータに対して2NポイントFFTを実施して得られるスペクトル係数111を格納しておく。
【0043】
図3に示す通り、N/2サンプルバッファ103は、畳み込み演算装置101に入力されたデータ102をN/2サンプル分バッファリングする。以下、N/2サンプルの単位をフレームと呼ぶこととする。N/2サンプルバッファ103は、N/2サンプル分のデータが溜まると、N/2サンプル分のデータ104をメモリC301に入力する。メモリC301では、入力されたN/2サンプルのデータ104を先入れ先出し法により3N/2サンプル分保存しておく。便宜上、今入力されたN/2サンプル104は、N+1〜3N/2までに保存されているものとし、最も古いサンプルは先頭に保存されているものとする(当然、3N/2サンプルのリングバッファとしても良いし、時系列の整合さえつけば別々の場所に保存しておいてもよい)。
【0044】
2NポイントFFT手段107にある長さ2NのFFTバッファには、メモリC301より3N/2サンプルのデータ302を得て、古いほうから順にサンプルを入れる。残り(3N/2+1〜2N)はゼロクリアされているものとする。2NポイントFFT手段107は、FFTバッファにあるN個のデータに対して2NポイントのFFTを実施し、算出した2N個のスペクトル係数303を乗算手段109に向けて送信する。乗算手段109は、あらかじめ算出しておいたインパルスレスポンスのスペクトル111をメモリA110より得て、先のFFTの出力信号303とサンプル単位の乗算を行い、乗算結果304を2Nポイント逆FFT手段113に入力する。
【0045】
逆FFT手段113は、入力された信号304に対して2Nポイントの逆FFTを実施し、得られた信号305をサンプル4分割手段115へ向けて送信する。サンプル4分割手段115は、入力された信号を時系列に従って4分割する。分割された4つのサンプル列において、一番古い(先頭の)サンプル列から順番に第1ブロック、第2ブロック、第4ブロックなどと称することとする。分割されたブロックのうち、第3ブロックのデータのみを出力信号124として出力する。なお、他のブロックのデータは全て破棄する。
【0046】
本実施の形態の入出力信号について補足しておく。図11は、本実施の形態における入出力信号とインパルスレスポンスの関係を示した図である。図にして示した通り、まず、インパルスレスポンスhと、過去2フレーム前までの入力信号を結合した信号との畳み込みを実施し、長さ2Nの信号yを得る。信号yは4分割され、第3ブロックの信号のみを取り出し出力信号zを得る。
【0047】
このようにして得られた出力信号は、入力信号に対してインパルスレスポンスを正確に畳み込んだ信号となる。
【0048】
本構成により、バッファリングするサイズがNからN/2に減少するため、遅延量をNからN/2へと半減させることができる。また、メモリCの容量は、3N/2個分の入力データを保存しておけば良く、実施の形態1に比較してメモリ容量が少なくて済むという効果もある。
【0049】
実施の形態4.
図4は本発明によるまた別の実施の形態であり、
401は、(M+N+α)ポイントFFT手段へ入力するデータ、
402は、(M+N+α)個のスペクトル、
403は、乗算された(M+N+α)個のスペクトル、
404は、(M+N+α)サンプルのデータ、
405は、入力されたサンプル列から、特定のサンプル列を取り出す手段である。
なお、図1〜図3と同様な部分は同じ符号を付し、説明を省略する。
【0050】
次に動作を説明する。
まず、図4におけるメモリA110には、実施の形態2と同様に長さNのインパルスレスポンスhの後半に、全体の長さが、設定したい遅延量MとNを加算した長さ以上の最小の2のべき乗の長さになるように、(M+α)個のゼロ値を挿入して得られたデータに対して(M+N+α)ポイントFFTを実施して得られるスペクトル係数111を格納しておく。
【0051】
図4に示す通り、Mサンプルバッファ201は、畳み込み演算装置101に入力されたデータ102をMサンプル分バッファリングする。以下、Mサンプルの単位をフレームと呼ぶこととする。Mサンプルバッファ201は、Mサンプル分のデータが溜まると、Mサンプル分のデータ202をメモリC301に入力する。メモリC301では、入力されたMサンプルのデータ202を先入れ先出し法によりM+Nサンプル分保存しておく。便宜上、今入力されたMサンプルは、N+1〜Mまでに保存されているものとし、最も古いサンプルは先頭に保存されているものとする(当然、M+Nサンプルのリングバッファとしても良いし、時系列の整合さえつけば別々の場所に保存しておいてもよい)。
【0052】
(M+N+α)ポイントFFT手段204内にあるFFTバッファには、メモリC301よりM+Nサンプルのデータ401を得て、古いほうから順にサンプルを入れる。αがゼロでない場合には、残りのαサンプル分はゼロクリアされているものとする。
(M+N+α)ポイントFFT手段204は、FFTバッファにある(M+N+α)個のデータに対して(M+N+α)ポイントのFFTを実施し、算出した(M+N+α)個のスペクトル係数403を乗算手段109に向けて送信する。
【0053】
乗算手段109は、あらかじめ算出しておいたインパルスレスポンスのスペクトル111をメモリA110より得て、先のFFTの出力信号402とサンプル単位の乗算を行い、乗算結果403を(M+N+α)ポイント逆FFT手段207に入力する。逆FFT手段207は、入力された信号403に対して(M+N+α)ポイントの逆FFTを実施し、得られた信号404を、サンプル取りだし手段405へと送信する。サンプル取りだし手段405は、入力された信号404のうち、先頭から数えてN+1〜N+M番目のM個のサンプルを取りだし、これを出力信号124として出力する。なお、他のデータは全て破棄する。
【0054】
このようにして得られた出力信号は、入力信号に対してインパルスレスポンスを正確に畳み込んだ信号となる。
【0055】
本構成により、バッファリングするサイズがNからMに減少するため、遅延量をNからMへと減少させることができる。また、Mは任意の正の整数でよいため、システム設計上の自由度が非常に高くなる。さらに、メモリC301の容量は、M+N個分の入力データを保存しておけば良く、実施の形態2に比較してメモリ容量が少なくて済むという効果もある。
【0056】
実施の形態5.
図5は、本発明による実施の形態5を示す構成図であり、図において、
501は、ゼロ値挿入手段によってゼロ値が挿入されたNサンプルのデータ列、
502は、NポイントFFTを実施する手段、
503は、N個のスペクトル、
504−1、504−2は、2分割されたインパルスレスポンスをそれぞれゼロ詰して得たスペクトル、
505、506は、乗算されたN個のスペクトル、
507−1、507−2は、Nポイント逆FFTを実施する手段、
508、510は、逆FFTされたN個のデータ
509−1509−2は、入力されたサンプルを2分割する手段、
511は、サンプル2分割手段1(509−1)により分割された第1ブロック、
512は、サンプル2分割手段1(509−1)により分割された第2ブロック、
513は、サンプル2分割手段2(509−2)により分割された第1ブロック、
514は、サンプル2分割手段2(509−2)により分割された第2ブロック、
515は、1フレーム前の処理で格納されたデータ、
516は、1フレーム前の処理で格納されたデータ、
517は、2フレーム前の処理で格納されたデータ、
518は、加算手段1(122−1)により加算されたデータ、
519は、加算手段2(122−2)により加算されたデータである。
なお、図1と同様な部分は同じ符号を付し、説明を省略する。
【0057】
次に動作を説明する。
まず、長さNのインパルスレスポンスh(n)を2分割し、h0(n)、h1(n)とする。図5におけるメモリA−1(110−1)には、h0の後半をゼロ挿入してNサンプルのデータを作成し、このNサンプルのデータに対してNポイントFFTを実施して得られるスペクトル係数504−1を格納しておく。メモリA−2(110−2)には、h1の後半をゼロ挿入してNサンプルのデータを作成し、このNサンプルのデータに対してNポイントFFTを実施して得られるスペクトル係数504−2を格納しておく。
【0058】
図5に示す通り、N/2サンプルバッファ103は、畳み込み演算装置101に入力されたデータ102をN/2サンプル分バッファリングする。以下、N/2サンプルの単位をフレームと呼ぶこととする。N/2サンプルバッファ103は、N/2サンプル分のデータが溜まると、N/2サンプル分のデータ104をゼロ値挿入手段105に入力する。ゼロ値挿入手段105は、長さがNになるまで入力されたデータ104の後ろにゼロ値を挿入し、NポイントFFT手段502へ送信する。NポイントFFT手段502は、入力されたN個のデータ501に対してNポイントのFFTを実施し、算出したN個のスペクトル係数503を乗算手段1(109−1)と乗算手段2(109−2)に向けて送信する。
【0059】
乗算手段1(109−1)は、あらかじめ算出しておいたインパルスレスポンスのスペクトル504−1をメモリA−1(110−1)より得て、先のFFTの出力信号503とサンプル単位の乗算を行い、乗算結果505をNポイント逆FFT手段507−1に入力する。逆FFT手段507−1は、入力された信号505に対してNポイントの逆FFTを実施し、得られた信号508をサンプル2分割手段1(509−1)へ向けて送信する。サンプル2分割手段1(509−1)は、入力された信号508を時系列に従って2分割する。分割された2つのサンプル列において、一番古い(先頭の)サンプル列から順番に第1ブロック、第2ブロックと称することとする。第1ブロックのサンプル511は加算手段1(122−1)へ入力する。第2ブロックのサンプル512は次のフレームの処理で使用するために、メモリB−1(119−1)へ格納する。
【0060】
一方、乗算手段2(109−2)は、あらかじめ算出しておいたインパルスレスポンスのスペクトル504−2をメモリA−2(110−2)より得て、先のFFTの出力信号503とサンプル単位の乗算を行い、乗算結果506をNポイント逆FFT手段507−2に入力する。逆FFT手段507−2は、入力された信号506に対してNポイントの逆FFTを実施し、得られた信号510をサンプル2分割手段2(509−2)へ向けて送信する。サンプル2分割手段2(509−2)は、入力された信号510を時系列に従って2分割する。第1ブロックのサンプル513は次のフレームの処理で使用するために、メモリB−2(119−2)へ格納する。第2ブロックのサンプルは2フレーム後の処理で使用するためにメモリB−3(119−3)へ格納する。
【0061】
さて、加算手段1(122−1)は、サンプル2分割手段1(509−1)よりN/2個のサンプル511を得ると、メモリB−1(119−1)より、前フレームの処理で格納しておいたN/2個のサンプル515を得て、これらのサンプルをサンプル単位で加算し、加算結果518を加算手段2(122−2)へ向けて送信する。加算処理2(122−2)は、サンプル518が入力されると、メモリB−2(119−2)から1フレーム前に格納したN/2個のサンプル516を得て、これらをサンプル単位で加算し、加算結果519を加算手段3(122−3)へ向けて送信する。加算手段3(122−3)は、加算手段2(122−2)よりN/2個のサンプル519を得ると、メモリB−3(119−3)より、2フレーム前の処理で格納したN/2個のサンプル517を得て、これらのサンプルをサンプル単位で加算し、出力信号124として出力する。
【0062】
本実施の形態の入出力信号について補足しておく。図12は、本実施の形態における入出力信号とインパルスレスポンスの関係を示した図である。図にして示した通り、まず、分割したインパルスレスポンスh0とh1と、入力信号xの畳み込みをそれぞれ実施し、信号vと信号wを得る。信号vは2分割され、前半は現フレームにて使用する。後半は1フレーム先の処理に使用する。信号wも2分割され、前半は次のフレーム、後半は2フレーム後まで保存しておく。現フレームの処理では、現フレームの処理で得た信号vの前半と、1フレーム前の処理にて得た信号vの後半と、1フレーム前の処理にて得た信号wの前半と、2フレーム前の処理で得た信号xの後半の4つのデータを加算し、出力信号zを得る。
【0063】
このようにして得られた出力信号は、入力信号に対してインパルスレスポンスを正確に畳み込んだ信号となる。
【0064】
本構成により、バッファリングするサイズがNからN/2に減少するため、遅延量をNからN/2へと半減させることができる。また、実施の形態1や3と比較して、FFTおよび逆FFTのポイント数が2NからNに減少するため、演算量がさらに減少するという効果もある。
【0065】
実施の形態6.
図6は、本発明の実施の形態6による畳み込み装置の構成図であり、
601は、Mサンプル(ここではMは2のべき乗とする)のデータをバッファリングするバッファ、
602は、バッファリングされたMサンプルのデータ、
603は、ゼロ値が挿入された2M個のデータ、
604は、2MポイントFFTを実施する手段、
605は、2M個のスペクトル、
606−1、606−2、606−kは、k分割されたインパルスレスポンスをそれぞれゼロ詰して得たスペクトル、
607−1、607−2、607−kは、乗算されたスペクトル、
608−1、608−2、608−kは、2Mポイント逆FFTを実施する手段、
609−1、609−2、609−kは、逆FFTされた2M個のデータ
610−1、610−2、610−kは、入力されたサンプルを2分割する手段、
611−x0、611−x1は、2分割されたデータであり、添え字x0はサンプル分割手段xにより分割された第1ブロックのデータ、添え字x1は、サンプル分割手段xにより分割された第2ブロックのデータ、
612−xは、以前の処理で格納されたデータ、
613−xは、第x段目の加算手段xから出力されたデータである。
なお、図1と同様な部分は同じ符号を付し、説明を省略する。
【0066】
次に動作を説明する。
まず、設定したい遅延量をMサンプルとし、長さNのインパルスレスポンスh(n)を先頭からMサンプルづつ分割して、k個のインパルスレスポンスh0(n),h1(n),...,hk−1(n)を得る。もし、NがMで割り切れない場合は、hの末尾にMで割り切れるようにゼロ値を挿入しておく。ここでは、Mは2のべき乗を仮定する。
【0067】
図6におけるメモリA−1(110−1)には、h0の後半をゼロ挿入して2Mサンプルのデータを作成し、この2Mサンプルのデータに対して2MポイントFFTを実施して得られるスペクトル係数606−1を格納しておく。メモリA−2(110−2)には、h1の後半をゼロ挿入して2Mサンプルのデータを作成し、この2Mサンプルのデータに対して2MポイントFFTを実施して得られるスペクトル係数606−2を格納しておく。以下、k個のインパルスレスポンスについて同様に後半をゼロ詰めしてスペクトルを算出し、これをメモリA−xに格納しておく。
【0068】
図6に示す通り、Mサンプルバッファ601は、畳み込み演算装置101に入力されたデータ102をMサンプル分バッファリングする。以下、Mサンプルの単位をフレームと呼ぶこととする。Mサンプルバッファ601は、Mサンプル分のデータが溜まると、Mサンプル分のデータ602をゼロ値挿入手段105に入力する。ゼロ値挿入手段105は、長さが2Mになるまで入力されたデータ602の後ろにゼロ値を挿入して2M個のデータ603を生成し、2MポイントFFT手段604へ送信する。2MポイントFFT手段604は、入力された2M個のデータ603に対して2MポイントのFFTを実施し、算出した2M個のスペクトル係数605を乗算手段1(109−1)、乗算手段2(109−2)へと、乗算手段k(109−k)まで同じ信号を送信する。
【0069】
乗算手段1(109−1)は、あらかじめ算出しておいたインパルスレスポンスのスペクトル606−1をメモリA−1(110−1)より得て、先のFFTの出力信号605とサンプル単位の乗算を行い、乗算結果607−1を2Mポイント逆FFT手段608−1に入力する。逆FFT手段608−1は、入力された信号607−1に対して2Mポイントの逆FFTを実施し、得られた信号609−1をサンプル2分割手段1(610−1)へ向けて送信する。サンプル2分割手段1(610−1)は、入力された信号609−1を時系列に従って2分割する。分割された2つのサンプル列において、一番古い(先頭の)サンプル列から順番に第1ブロック、第2ブロックと称することとする。第1ブロックのサンプル611−10は加算手段1(122−1)へ入力する。第2ブロックのサンプル611−11は次のフレームの処理で使用するために、メモリB−1(119−1)へ格納する。
【0070】
一方、乗算手段2(109−2)は、あらかじめ算出しておいたインパルスレスポンスのスペクトル606−2をメモリA−2(110−2)より得て、先のFFTの出力信号605とサンプル単位の乗算を行い、乗算結果607−2を2Mポイント逆FFT手段608−2に入力する。2Mポイント逆FFT手段608−2は、入力された信号607−2に対して2Mポイントの逆FFTを実施し、得られた信号609−2をサンプル2分割手段2(610−2)へ向けて送信する。サンプル2分割手段2(610−2)は、入力された信号609−2を時系列に従って2分割する。第1ブロックのサンプル611−20は次のフレームの処理で使用するために、メモリB−2(119−2)へ格納する。第2ブロックのサンプル611−21は2フレーム後の処理で使用するためにメモリB−3(119−3)へ格納する。
【0071】
以下同様に、乗算手段m(m=3,...,k)は、あらかじめ算出しておいたインパルスレスポンスのスペクトル606−mをメモリA−m(110−m)より得て、先のFFTの出力信号605とサンプル単位の乗算を行い、乗算結果607−mを2Mポイント逆FFT手段608−mに入力する。2Mポイント逆FFT手段608−mは、入力された信号607−mに対して2Mポイントの逆FFTを実施し、得られた信号609−mをサンプル2分割手段m(610−m)へ向けて送信する。サンプル2分割手段m(610−m)は、入力された信号609−mを時系列に従って2分割する。第1ブロックのサンプル611−m0はm−1フレーム後の処理で使用するために、メモリB−(2m−2)(119−(2m−2))へ格納する。第2ブロックのサンプル611−m1はmフレーム後の処理で使用するためにメモリB−(2m−1)(119−(2m−1))へ格納する。
【0072】
さて、加算手段1(122−1)は、サンプル2分割手段1(610−1)よりM個のサンプル611−10を得ると、メモリB−1(119−1)より、前フレームの処理で格納しておいたM個のサンプル612−1を得て、これらのサンプルをサンプル単位で加算し、加算結果613−1を加算手段2(122−2)へ向けて送信する。加算処理2(122−2)は、サンプル613−1が入力されると、メモリB−2(119−2)から1フレーム前に格納したM個のサンプル611−2を得て、これらをサンプル単位で加算し、加算結果613−2を加算手段3(122−3)へ向けて送信する。
【0073】
以下同様に、加算手段m(m=3,...2k−2)では、加算手段m−1(122−(m−1))よりM個のサンプル613−(m−1)を得ると、メモリB−m(119−m)より、M個のサンプル611−mを得て、これらのサンプルをサンプル単位で加算し、加算結果613−mを加算手段m+1(122−(m+1))へ向けて送信する。
【0074】
ここで、メモリB−m(119−m)に保存しておくデータについて補足する。
メモリB−m(119−m)では、mを2で割った値を切り上げた値を仮にpとし、pフレーム前までのサンプルを格納しておくこととする。また、現フレームの処理において加算手段m(122−m)に向けて出力するサンプルは一番古いpフレーム前のM個のサンプルである。
最後段の加算手段2k−1(122−(2k−1))では、加算手段2k−2(122−(2k−2))よりM個のサンプル613−(2k−2)を得ると、メモリB−(2k−1)より、kフレーム前の処理で格納しておいたM個のサンプル611−(2k−1)を得て、これらのサンプルをサンプル単位で加算し、出力信号124として出力する。
【0075】
このようにして得られた出力信号は、入力信号に対してインパルスレスポンスを正確に畳み込んだ信号となる。
【0076】
本構成により、バッファリングするサイズがNからMに減少するため、遅延量をNからMへと減少させることができる。また、実施の形態1や3と比較して、FFTおよび逆FFTのポイント数が2Nから2Mに減少するため、演算量がさらに減少するという効果もある。
【0077】
実施の形態7.
図7は、本発明の実施の形態7.による畳み込み装置の構成図であり、
701は、Lサンプルのデータをバッファリングするバッファ、
702は、バッファリングされたLサンプルのデータ、
703は、ゼロ値が挿入された2(L+α)個のデータ、
704は、2(L+α)ポイントFFTを実施する手段、
705は、2(L+α)個のスペクトル、
706−1、706−2、706−kは、k分割されたインパルスレスポンスをそれぞれゼロ詰して得たスペクトル、
707−1、707−2、707−kは、乗算されたスペクトル、
708−1、708−2、708−kは、2(L+α)ポイント逆FFTを実施する手段、
709−1、709−2、709−kは、逆FFTされた2(L+α)個のデータ
710−1、710−2、710−kは、入力されたサンプルから任意のサンプルを取り出す手段、
711−x0、711−x1は、サンプル取りだし手段710−xによって取り出されたデータであり、添え字x0はサンプル取りだし手段xにより取り出された第1ブロックのデータ、添え字x1は、サンプル取りだし手段−xにより取り出された第2ブロックのデータ、
712−xは、以前の処理で格納されたデータ、
713−xは、第x段目の加算手段xから出力されたデータである。
なお、図1と同様な部分は同じ符号を付し、説明を省略する。
【0078】
次に動作を説明する。
まず、設定したい遅延量をLサンプルとし、長さNのインパルスレスポンスh(n)を先頭からLサンプルづつ分割して、k個のインパルスレスポンスh0(n),h1(n),...,hk−1(n)を得る。もし、NがLで割り切れない場合は、hの末尾にLで割り切れるようにゼロ値を挿入しておく。ここで、Lは任意の非負の整数である。また、(L+α)が2のべき乗となる最小の正の整数αを定義する。例えばL=100のときはα=28であり、L=128のきはα=0である。
【0079】
図7におけるメモリA−1(110−1)には、h0の後半をゼロ挿入して2(L+α)サンプルのデータを作成し、この2(L+α)サンプルのデータに対して2(L+α)ポイントFFTを実施して得られるスペクトル係数706−1を格納しておく。メモリA−2(110−2)には、h1の後半をゼロ挿入して2(L+α)サンプルのデータを作成し、この2(L+α)サンプルのデータに対して2(L+α)ポイントFFTを実施して得られるスペクトル係数706−2を格納しておく。以下、k個のインパルスレスポンスについて同様に後半をゼロ詰めしてスペクトルを算出し、これをメモリA−xに格納しておく。
【0080】
図7に示す通り、Lサンプルバッファ701は、畳み込み演算装置101に入力されたデータ102をLサンプル分バッファリングする。以下、Lサンプルの単位をフレームと呼ぶこととする。Lサンプルバッファ701は、Lサンプル分のデータが溜まると、Lサンプル分のデータ702をゼロ値挿入手段105に入力する。ゼロ値挿入手段105は、長さが2(L+α)になるまで、入力されたデータ702の後ろにゼロ値を挿入し2(L+α)個のデータ703を生成して、2(L+α)ポイントFFT手段704へ送信する。2(L+α)ポイントFFT手段704は、入力された2(L+α)個のデータ703に対して2(L+α)ポイントのFFTを実施し、算出した2(L+α)個のスペクトル係数705を乗算手段1(109−1)、乗算手段2(109−2)へと、乗算手段k(109−k)まで同じ信号を送信する。
【0081】
乗算手段1(109−1)は、あらかじめ算出しておいたインパルスレスポンスのスペクトル706−1をメモリA−1(110−1)より得て、先のFFTの出力信号705とサンプル単位の乗算を行い、乗算結果707−1を2(L+α)ポイント逆FFT手段708−1に入力する。2(L+α)ポイント逆FFT手段708−1は、入力された信号707−1に対して2(L+α)ポイントの逆FFTを実施し、得られた信号709−1をサンプル取りだし手段1(710−1)へ向けて送信する。サンプル取りだし手段1(710−1)は、入力された信号709−1を時系列に従い、Lサンプルを一つのブロックとして、先頭から2ブロック分取り出す。取り出された2つのブロックにおいて、一番古い(先頭の)ブロックから順番に第1ブロック、第2ブロックと称することとする。第1ブロックのサンプル711−10は加算手段1(122−1)へ入力する。第2ブロックのサンプル711−11は次のフレームの処理で使用するために、メモリB−1(119−1)へ格納する。
【0082】
一方、乗算手段2(109−2)は、あらかじめ算出しておいたインパルスレスポンスのスペクトル706−2をメモリA−2(110−2)より得て、先のFFTの出力信号705とサンプル単位の乗算を行い、乗算結果707−2を2(L+α)ポイント逆FFT手段708−2に入力する。2(L+α)ポイント逆FFT手段708−2は、入力された信号707−2に対して2(L+α)ポイントの逆FFTを実施し、得られた信号709−2をサンプル取りだし手段2(710−2)へ向けて送信する。サンプル取りだし手段2(710−2)は、入力された信号709−2を時系列に従いLサンプルを一つのブロックとして、先頭から2ブロック分取り出す。第1ブロックのサンプル711−20は次のフレームの処理で使用するために、メモリB−2(119−2)へ格納する。第2ブロックのサンプル711−21は2フレーム後の処理で使用するためにメモリB−3(119−3)へ格納する。
【0083】
以下同様に、乗算手段m(m=3,...,k)は、あらかじめ算出しておいたインパルスレスポンスのスペクトル706−mをメモリA−m(110−m)より得て、先のFFTの出力信号705とサンプル単位の乗算を行い、乗算結果707−mを2(L+α)ポイント逆FFT手段708−mに入力する。2(L+α)ポイント逆FFT手段708−mは、入力された信号707−mに対して2(L+α)ポイントの逆FFTを実施し、得られた信号709−mをサンプル取りだし手段m(710−m)へ向けて送信する。サンプル取りだし手段m(710−m)は、入力された信号709−mを時系列に従いLサンプルを一つのブロックとして、先頭から2ブロック分取り出す。第1ブロックのサンプル711−m0はm−1フレーム後の処理で使用するために、メモリB−(2m−2)(119−(2m−2))へ格納する。第2ブロックのサンプル711−m1はmフレーム後の処理で使用するためにメモリB−(2m−1)(119−(2m−1))へ格納する。
【0084】
さて、加算手段1(122−1)は、サンプル取りだし手段1(710−1)よりL個のサンプル711−10を得ると、メモリB−1(119−1)より、前フレームの処理で格納しておいたL個のサンプル712−1を得て、これらのサンプルをサンプル単位で加算し、加算結果713−1を加算手段2(122−2)へ向けて送信する。加算処理2(122−2)は、サンプル713−1が入力されると、メモリB−2(119−2)から1フレーム前に格納したL個のサンプル711−2を得て、これらをサンプル単位で加算し、加算結果713−2を加算手段3(122−3)へ向けて送信する。
【0085】
以下同様に、加算手段m(m=3,...2k−2)では、加算手段m−1(122−(m−1))よりL個のサンプル713−(m−1)を得ると、メモリB−m(119−m)より、L個のサンプル711−mを得て、これらのサンプルをサンプル単位で加算し、加算結果713−mを加算手段m+1(122−(m+1))へ向けて送信する。
【0086】
ここで、メモリB−m(119−m)に保存しておくデータについて補足する。
メモリB−m(119−m)では、mを2で割った値を切り上げた値を仮にpとし、pフレーム前までのサンプルを格納しておくこととする。また、現フレームの処理において加算手段m(122−m)に向けて出力するサンプルは一番古いpフレーム前のL個のサンプルである。
【0087】
最後段の加算手段2k−1(122−(2k−1))では、加算手段2k−2(122−(2k−2))よりL個のサンプル713−(2k−2)を得ると、メモリB−(2k−1)より、kフレーム前の処理で格納しておいたL個のサンプル711−(2k−1)を得て、これらのサンプルをサンプル単位で加算し、出力信号124として出力する。
【0088】
このようにして得られた出力信号は、入力信号に対してインパルスレスポンスを正確に畳み込んだ信号となる。
【0089】
本構成により、バッファリングするサイズがNからLに減少するため、遅延量をNからLへと減少させることができる。また、実施の形態1や3と比較して、FFTおよび逆FFTのポイント数が2Nから2(L+α)に減少するため、演算量がさらに減少するという効果もある。さらに、実施の形態6では、遅延量Mを2のべき乗としなければならなかったが、本実施の形態ではこの条件は無く、より自由度の高い遅延量の設定が可能である。
【0090】
実施の形態8.
図8は、本発明による畳み込み方式の原理説明図であり、実施の形態1、2、5、6におけるメモリを削減することを目的としたものであり、具体例として実施の形態5に対して有効となる構成を示した図である。もちろん、実施の形態1、2、6においても同様に適用できる。
【0091】
図8において
801は、加算手段2(122−2)の出力信号、
802は、2フレーム前の処理で格納したデータ、
803は、加算手段3(122−3)の出力信号、
804は、1フレーム前の処理で格納したデータである。
なお、図1及び図5と同様な部分は同様な符号を付し、説明を省略する。
【0092】
次に動作を説明する。
サンプル2分割手段1(509−1)およびサンプル2分割手段2(509−2)までの動作は実施の形態5と同様の動作をする。以下、実施の形態5と異なった動作をする箇所のみ説明する。
サンプル2分割手段1(509−1)では、2分割したブロックのうち、第1ブロック511を加算手段1(122−1)へ向けて出力する。第2ブロック512は加算手段2(122−2)へ出力する。
サンプル2分割手段2(509−1)では、第1ブロック513を加算手段1(122−1)へ、第2ブロック514は加算手段2(122−2)に向けて出力する。
【0093】
加算手段2(122−2)は、サンプル2分割手段1(509−1)およびサンプル2分割手段2(509−2)より得たN/2個のサンプルをそれぞれサンプル単位で加算し、加算結果801を加算手段3(122−3)へ向けて出力する。加算手段3(122−3)では、メモリB−1(119−1)より、2フレーム前の処理で格納したデータ802を得て、加算手段2(122−2)より得たN/2個のサンプル801とそれぞれサンプル単位で加算し、加算結果803をメモリB−2(119−2)へ向けて出力する。
【0094】
一方、加算手段1(122−1)は、サンプル2分割手段1(509−1)から得たN/2個のサンプル511と、メモリB−2(119−2)から得た、1フレーム前の処理で格納しておいたN/2個のサンプル804をそれぞれサンプル単位で加算し、加算結果を出力信号124として出力する。
【0095】
このようにして得られた出力信号は、入力信号に対してインパルスレスポンスを正確に畳み込んだ信号となる。本実施の形態は、サンプル分割手段により分割されたデータをメモリに保存する前にあらかじめ加算しておく構成となっていることにより、保存しておくデータ量を削減することが可能となる。
【0096】
本構成により、実施の形態1、2、5、6に比較してメモリ容量が減少するという効果がある。
【0097】
実施の形態9
図9は、本発明による実施の形態9を示す図であり、実施の形態5、6において、入力信号が実数である場合に、演算量を削減することが可能となる構成となっており、具体例として実施の形態5に対して有効な図である。もちろん、実施の形態6においても同様に適用できる。
【0098】
図9において、
901は、2分割されたインパルスレスポンスを実数成分、虚数成分を使用して一つの複素数列として、さらに後半をゼロ詰して得たスペクトル、
902は、乗算されたスペクトル、
903は、逆FFTして得たデータ、
904は、入力信号に対して、実数/虚数成分を分割する手段、
905は、実数/虚数分割手段904で分割された実数成分、
906は、実数/虚数分割手段904で分割された虚数成分である。
なお、図1及び図5と同様な部分は同様な符号を付し、説明を省略する。
【0099】
次に動作を説明する。
まず、h0を実数、h1を虚数としてN/2個の複素数を生成し、これを新たなインパルスレスポンスgとする。gの長さはN/2である。図9におけるメモリA(110)には、gの後半をゼロ詰して長さNの複素数を生成し、このNサンプルの複素数に対してNポイントFFTを実施して得られるスペクトル係数901を格納しておく。
【0100】
図9において、NポイントFFT手段502までの動作は実施の形態5と同様の動作をする。以下、実施の形態5と異なった動作をする箇所のみ説明する。
【0101】
乗算手段109は、NポイントFFT手段502より入力されたN個のスペクトル503を得ると、メモリA(110)からあらかじめ算出しておいたインパルスレスポンスのスペクトル901を得て、先のFFTの出力信号503との乗算を行い、乗算結果902をNポイント逆FFT手段507に入力する。Nポイント逆FFT手段507は、入力された信号902に対してNポイントの逆FFTを実施し、得られたサンプル903を実数/虚数分割手段904に出力する。実数/虚数分割手段904は、N個のサンプル903を得ると、実数成分と虚数成分に分割し、実数成分905をサンプル2分割手段1(509−1)へ、虚数成分906をサンプル2分割手段2(509−2)へと出力する。
【0102】
以下、サンプル2分割手段1(509−1)およびサンプル2分割手段2(509−2)以降の動作は、実施の形態5と同様の動作である。
【0103】
このようにして得られた出力信号は、入力信号に対してインパルスレスポンスを正確に畳み込んだ信号となる。なお、上記はh0を実数成分、h1を虚数成分として複素数を生成しているが、これに限らず、h0を虚数成分、h1を実数成分としても、サンプル2分割手段1(509−1)およびサンプル2分割手段2(509−2)に入力する信号を逆にすることで同様の効果を得られる。
【0104】
本実施の形態は、FFTに入力する虚数成分を有効に使用することにより、演算量を削減することが可能となる効果がある。実施の形態7でも同様に適用でき、具体的には、分割数kが偶数の場合には2個のインパルスレスポンスをそれぞれ実数成分、虚数成分としてk/2の複素数を生成することにより適用できる。kが奇数の場合でも、最後のhk−1以外のインパルスレスポンスをそれぞれ実数成分、虚数成分としてk/2−1の複素数を生成することにより適用できる。
【0105】
本構成により、実施の形態5と比較して、乗算手段、逆FFT手段の数が減少することによって演算量が減少し、回路規模を小さく出来るという効果がある。
【0106】
【発明の効果】
以上のように本発明によれば、出力信号は入力信号に対してインパルスレスポンスを正確に畳み込んだ信号となり、所望の演算結果が正しく得られる。
また、バッファリングするサイズが減少するため、遅延量を減すことができる。
【図面の簡単な説明】
【図1】本発明の実施の形態1による畳み込み装置の構成図。
【図2】本発明の実施の形態2による構成図。
【図3】本発明の実施の形態3による構成図。
【図4】本発明の実施の形態4による構成図。
【図5】本発明の実施の形態5による構成図。
【図6】本発明の実施の形態6による構成図。
【図7】本発明の実施の形態7による構成図。
【図8】本発明の実施の形態8による構成図。
【図9】本発明の実施の形態9による構成図。
【図10】実施の形態1における入出力信号とインパルスレスポンスの関係図。
【図11】実施の形態3における入出力信号とインパルスレスポンスの関係図。
【図12】実施の形態5における入出力信号とインパルスレスポンスの関係図。
【図13】従来技術の原理説明図。
【符号の説明】
101:畳み込み演算装置、102:入力信号、103:バッファ、105:ゼロ値挿入手段、107:2NポイントFFT手段、109:乗算手段、110:メモリA、113:2Nポイント逆FFT手段、115:分割手段、119−1、119−2:メモリB、122−1、122−2:加算手段、124:出力信号、201:バッファ、204:(M+N+α)ポイントFFTを実施する手段、207:(M+N+α)ポイントの逆FFTを実施する手段、209:分割手段、301:バッファリングデータ用メモリ、405:特定サンプル列取出手段、507−1、507−2:Nポイント逆FFT手段、509−1509−2:入力サンプル2分割手段、601:Mサンプルデータ用バッファ、604:2MポイントFFT手段、608−1、608−2、608−k:2Mポイント逆FFT手段、610−1、610−2、610−k:入力サンプル2分割手段、701:Lサンプルデータ用バッファ、704:2(L+α)ポイントFFT手段、708−1、708−2、708−k:2(L+α)ポイント逆FFT手段、710−1、710−2、710−k:任意サンプル取出手段、904:実数/虚数成分分割手段。
Claims (10)
- 入力信号に対して、任意の長さの信号をバッファリングするバッファと、
バッファにバッファリングされた信号に対して、ゼロ値を挿入し規定の長さにするゼロ値挿入手段と
ゼロ値挿入手段の出力に対しFFTを実施するFFT手段と、
インパルスレスポンスにゼロ値を挿入し、規定の長さにしたデータをFFTして得たスペクトルを予め保存しておくメモリAと、
FFT手段の出力スペクトルとメモリAからのスペクトルとの2系列のスペクトルを係数ごとに乗算する乗算手段と、
乗算手段の出力に対し逆FFTを実施する逆FFT手段と、
逆FFT手段から出力されたサンプルを規定の長さで分割する分割手段と、
分割手段の出力を所望の処理フレームまでデータを保存しておく複数のメモリBと
分割手段の出力と、先に処理されメモリBに保存された信号との2系列の信号をサンプル単位で加算し、この加算結果とさらに先に処理され他のメモリBに保存された信号との2系列の信号をサンプル単位で加算する処理を順次所定回実施する複数の加算手段と、
を備える畳み込み演算装置。 - バッファはバッファリングされる信号の長さを、インパルスレスポンス長の半分の長さとし、
ゼロ値挿入手段はゼロ値を挿入する規定の長さを、インパルスレスポンス長の2倍の長さとし、
メモリAはインパルスレスポンスにゼロ値を挿入し、長さを2倍にしたデータをFFTして得たスペクトルを保存し、
分割手段は逆FFT手段から出力されたサンプルを4分割し、
メモリBは2フレーム前のデータまでを保存する2個とし、
加算手段は2フレーム前のデータまでを加算する2個とした
ことを特徴とする請求項1記載の畳み込み演算装置。 - ゼロ値挿入手段は、入力された信号に対して、ゼロ値を挿入してインパルスレスポンス長と同じ長さにし、
メモリAは、インパルスレスポンスを2分割し、得られた2つのデータに夫々ゼロ値を挿入して長さを2倍にし、その2倍にした2つのデータ夫々に対してFFTして得た2つのスペクトル列を保存し、
乗算手段はFFT手段の出力スペクトルとメモリAに保存された2つのスペクトルとを別個に係数ごとに乗算する2個の乗算器を備え、
逆FFT手段は2個の乗算器からの出力を別個に逆FFT処理する2個の逆FFT器を備え、
分割手段は2個の逆FFTから夫々出力されたサンプルを各々2分割する2個の分割器を備え、
メモリBは分割手段からのデータを1〜3フレーム前まで夫々保存する3個とし、
加算手段は3フレーム前のデータまでを加算する3個とした
ことを特徴とする請求項1記載の畳み込み演算装置。 - バッファはバッファリングされる信号の長さを、2のべき乗の任意の長さとし、
ゼロ値挿入手段は規定の長さが、2のべき乗の任意の長さの2倍の長さとなるようゼロ値を挿入し、
メモリAはインパルスレスポンスを上記2のべき乗の任意の長さで複数に分割し、得られた複数のデータに対してぞれぞれゼロ値を挿入して2倍の長さにしたデータに対してFFTして得た複数のスペクトル列を保存しておき、
乗算手段はFFT手段の出力スペクトルとメモリAに保存された複数のスペクトルとを別個に係数ごとに乗算する複数の乗算器を備え、
逆FFT手段は複数の乗算器からの出力を別個に逆FFT処理する複数の逆FFT器を備え、
分割手段は複数の逆FFTから夫々出力されたサンプルを各々2分割する複数の分割器を備え、
メモリBは分割手段からのデータを複数フレーム前まで夫々保存する複数個を備え、
加算手段はメモリBが保存する複数フレーム前のデータまでを加算する複数個とした
ことを特徴とする請求項1記載の畳み込み演算装置。 - メモリAは、インパルスレスポンスを規定の長さで複数に分割して得られた複数のデータに対してぞれぞれゼロ値を挿入して規定の長さにしてFFT処理し、得られた複数のスペクトル列を保存しておき、
乗算手段はFFT手段の出力スペクトルとメモリAに保存された複数のスペクトルとを係数ごとに別個に乗算する複数の乗算器を備え、
逆FFT手段は複数乗算器からの出力を別個に逆FFT処理する複数個を備え、
分割手段は、複数の逆FFT器に対応して複数個備え、夫々複数の逆FFT器の出力サンプルから規定の位置の規定の長さのデータを取り出す構成にされ、
メモリBは分割手段の出力を所望の処理フレーム後までデータを保存する複数個備え、
加算手段は分割手段の出力とメモリBのデータとの2系列の信号をサンプル単位で複数フレーム前までを順次加算する複数個とした
ことを特徴とする請求項1記載の畳み込み演算装置。 - 分割手段は、夫々の逆FFT手段の出力サンプルを2分割する2個を備え、
加算手段とメモリBは夫々3個を備え、
第1の分割手段の出力は、第1の加算手段と、第2の加算手段に出力され、
第2の分割手段の出力は、第2の加算手段と、第1のメモリB1に出力され、
第3の加算手段は、第2の加算手段の出力と、第1のメモリB1の出力を加算し、その出力は第2のメモリB2に入力され、上記第1の加算手段は上記第1の分割手段の出力とメモリB2の出力を加算し、その結果を演算装置の出力とすることを特徴とする請求項3記載の畳み込み演算装置。 - 入力信号とインパルスレスポンスが共に実数である場合に、メモリAは、インパルスレスポンスを規定の長さで複数に分割して得られた複数のデータに対して、2組のデータとなるようにそれぞれを選択し、実数成分、虚数成分として複数個の複素数列を作成し、さらに作成した複素数列にゼロ値を挿入して規定の長さにしたデータに対してFFTして得たスペクトルを保存し、
分割手段は、入力された複素数信号に対して、実数成分と虚数成分を分割する構成とされたことを特徴とする、
請求項3〜6の何れかに記載の畳み込み演算装置。 - 入力信号に対して、任意の長さの信号をバッファリングするバッファと、
上記バッファによりバッファリングされたデータを規定量だけ保存するメモリCと、
メモリCに保存された信号のFFTを実施するFFT手段と、
インパルスレスポンスにゼロ値を挿入し、規定の長さにしたデータをFFTして得たスペクトルを保存しておくメモリAと
FFT手段の出力スペクトルとメモリAからのスペクトルとの2系列のスペクトルを係数ごとに乗算する手段と、
乗算手段の出力を逆FFTを実施する逆FFT手段と、
逆FFT手段が出力したサンプルから規定の位置の規定の長さのデータを取り出すデータ取出手段と、
を備える畳み込み演算装置。 - バッファは入力信号に対して、インパルスレスポンス長の半分の長さの信号をバッファリングし、
メモリAは、インパルスレスポンスにゼロ値を挿入し、長さを2倍にしたデータをFFTして得たスペクトルを保存し、
データ取出手段は逆FFT手段が出力したサンプルを4分割する、
ことを特徴とする請求項8記載の畳み込み演算装置。 - 入力信号に対して、任意の長さの信号をバッファにバッファリングする手順と、
バッファにバッファリングされた信号に対して、ゼロ値を挿入して規定の長さにするゼロ値挿入手順と
ゼロ値挿入手順の出力に対しFFTを実施するFFT手順と、
インパルスレスポンスにゼロ値を挿入し、規定の長さにしたデータをFFTして得たスペクトルを予めメモリAに保存する手順と、
FFT手順の出力スペクトルとメモリからのスペクトルとの2系列のスペクトルを係数ごとに乗算する乗算手順と、
乗算手順の出力に対し逆FFTを実施する逆FFT手順と、
逆FFT手順から出力されたサンプルを規定の長さで分割する分割手順と、
分割手順の出力を所望の処理フレームまでデータを複数のメモリBに保存しておく手順と
分割手順の出力と、先に処理されメモリBに保存された信号との2系列の信号をサンプル単位で加算し、この加算結果とさらに先に処理され他のメモリBに保存された信号との2系列の信号をサンプル単位で加算する処理を順次所定回実施する加算手順と、
をコンピュータに実行させる畳み込み演算プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002348780A JP2004184536A (ja) | 2002-11-29 | 2002-11-29 | 畳み込み演算装置及び畳み込み演算プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002348780A JP2004184536A (ja) | 2002-11-29 | 2002-11-29 | 畳み込み演算装置及び畳み込み演算プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004184536A true JP2004184536A (ja) | 2004-07-02 |
Family
ID=32751601
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002348780A Abandoned JP2004184536A (ja) | 2002-11-29 | 2002-11-29 | 畳み込み演算装置及び畳み込み演算プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004184536A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006227152A (ja) * | 2005-02-16 | 2006-08-31 | Nippon Telegr & Teleph Corp <Ntt> | 計算装置およびその計算装置を利用した収音装置 |
JP2012150507A (ja) * | 2006-10-18 | 2012-08-09 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandte Forschung E V | 合成フィルターバンク、デコーダ、ミキサー及び会議システム |
CN110046435A (zh) * | 2019-04-19 | 2019-07-23 | 湖南银河电气有限公司 | 一种集成数字滤波谐波显示方法及系统 |
-
2002
- 2002-11-29 JP JP2002348780A patent/JP2004184536A/ja not_active Abandoned
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006227152A (ja) * | 2005-02-16 | 2006-08-31 | Nippon Telegr & Teleph Corp <Ntt> | 計算装置およびその計算装置を利用した収音装置 |
JP2012150507A (ja) * | 2006-10-18 | 2012-08-09 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandte Forschung E V | 合成フィルターバンク、デコーダ、ミキサー及び会議システム |
JP2013210656A (ja) * | 2006-10-18 | 2013-10-10 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandte Forschung E V | 合成フィルターバンク、フィルタリング方法及びコンピュータプログラム |
USRE45277E1 (en) | 2006-10-18 | 2014-12-02 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. | Analysis filterbank, synthesis filterbank, encoder, de-coder, mixer and conferencing system |
USRE45276E1 (en) | 2006-10-18 | 2014-12-02 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. | Analysis filterbank, synthesis filterbank, encoder, de-coder, mixer and conferencing system |
USRE45294E1 (en) | 2006-10-18 | 2014-12-16 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. | Analysis filterbank, synthesis filterbank, encoder, de-coder, mixer and conferencing system |
USRE45339E1 (en) | 2006-10-18 | 2015-01-13 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. | Analysis filterbank, synthesis filterbank, encoder, de-coder, mixer and conferencing system |
USRE45526E1 (en) | 2006-10-18 | 2015-05-19 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. | Analysis filterbank, synthesis filterbank, encoder, de-coder, mixer and conferencing system |
CN110046435A (zh) * | 2019-04-19 | 2019-07-23 | 湖南银河电气有限公司 | 一种集成数字滤波谐波显示方法及系统 |
CN110046435B (zh) * | 2019-04-19 | 2023-06-09 | 湖南银河电气有限公司 | 一种集成数字滤波谐波显示方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0660247B1 (en) | Method and apparatus for performing discrete cosine transform and its inverse | |
US5875122A (en) | Integrated systolic architecture for decomposition and reconstruction of signals using wavelet transforms | |
US20080288569A1 (en) | Pipelined fft processor with memory address interleaving | |
Cooklev | An efficient architecture for orthogonal wavelet transforms | |
US5038311A (en) | Pipelined fast fourier transform processor | |
US9934199B2 (en) | Digital filter device, digital filtering method, and storage medium having digital filter program stored thereon | |
US7428564B2 (en) | Pipelined FFT processor with memory address interleaving | |
Li et al. | Permutation polynomials (xpm− x+ δ) s1+ (xpm− x+ δ) s2+ x over Fpn | |
KR100989797B1 (ko) | Fft/ifft 연산코어 | |
US6189021B1 (en) | Method for forming two-dimensional discrete cosine transform and its inverse involving a reduced number of multiplication operations | |
CN104349260B (zh) | 低功耗wola滤波器组及其综合阶段电路 | |
KR20050098967A (ko) | 프라임 팩터 알고리즘을 사용한 최적화된 이산 푸리에 변환방법 및 장치 | |
US20100128818A1 (en) | Fft processor | |
JP2004184536A (ja) | 畳み込み演算装置及び畳み込み演算プログラム | |
CN102957993B (zh) | 低功耗wola滤波器组及其分析阶段电路 | |
WO2022252876A1 (en) | A hardware architecture for memory organization for fully homomorphic encryption | |
JPH08137832A (ja) | バタフライ演算回路および同回路を用いた高速フーリエ変換装置 | |
TW200811672A (en) | Optimized multi-mode DFT implementation | |
Das et al. | Efficient VLSI Architectures of Split-Radix FFT using New Distributed Arithmetic | |
JPH0619955A (ja) | 可変高速フーリエ変換回路 | |
EP0500048A2 (en) | Orthogonal transform apparatus for video signal processing | |
KR100577005B1 (ko) | 고속 하다마드 변환 및 고속 푸리에 변환의 선택적 수행장치 및 방법 | |
US8572148B1 (en) | Data reorganizer for fourier transformation of parallel data streams | |
Jamin et al. | FPGA implementation of the wavelet packet transform for high speed communications | |
US9952648B2 (en) | Digital filtering device, digital filtering method, and storage media storing program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20040709 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20051026 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080526 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20081202 |
|
A762 | Written abandonment of application |
Free format text: JAPANESE INTERMEDIATE CODE: A762 Effective date: 20090107 |