JP2005065231A - 信号処理装置及びその方法 - Google Patents

信号処理装置及びその方法 Download PDF

Info

Publication number
JP2005065231A
JP2005065231A JP2004178077A JP2004178077A JP2005065231A JP 2005065231 A JP2005065231 A JP 2005065231A JP 2004178077 A JP2004178077 A JP 2004178077A JP 2004178077 A JP2004178077 A JP 2004178077A JP 2005065231 A JP2005065231 A JP 2005065231A
Authority
JP
Japan
Prior art keywords
unit
vector
complex
input
coefficient
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.)
Granted
Application number
JP2004178077A
Other languages
English (en)
Other versions
JP4638695B2 (ja
Inventor
Yoshinori Kumamoto
義則 熊本
Kazutada Abe
一任 阿部
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial 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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2004178077A priority Critical patent/JP4638695B2/ja
Publication of JP2005065231A publication Critical patent/JP2005065231A/ja
Application granted granted Critical
Publication of JP4638695B2 publication Critical patent/JP4638695B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】 1入力多出力または多入力多出力の畳み込み方法および信号処理装置において、単位時間当たりの演算回数を削減する。
【解決手段】 第1の係数を実数入力部に入れ、第2の係数を虚数入力部に入れ、高速フーリエ変換を実行し、周波数領域での係数ベクトルを生成する。入力信号を高速フーリエ変換で周波数領域の信号ベクトルに変換した後、変換結果と係数ベクトルと要素ごとに乗算する。乗算結果を逆高速フーリエ変換すると、変換結果の実数出力部が第1の出力信号系列、虚数出力部が第2の出力信号系列となる。
【選択図】 図1

Description

本発明は、1入力多出力、または多入力多出力のデジタルフィルタとして利用できる信号処理装置及びその方法に関するものである。
1入力多出力または多入力多出力のデジタルフィルタは、様々な場面で広く用いられている。この種のデジタルフィルタは、例えば、音を任意の位置に定位させるシステムや、音に反射音を付加して拡がり感を持たせるシステム等において使用される。
デジタルフィルタは、フィードバック部を有するIIRフィルタと、フィードバック部を持たないFIRフィルタとに分類される。ここでは、後者のFIRフィルタについて説明を行う。
図19(a)は、従来の1入力2出力の時間領域FIRフィルタの詳細ブロック図である。
図19(a)において、入力端子1から入力される入力信号xは、FIRフィルタ5に入力され、遅延器8により遅延をかけられ遅延信号となる。各遅延信号は、乗算器7により所定の係数が乗ぜられ、加算器9に入力される。加算器9は、これらの入力を加算して、加算結果を出力信号y1として出力端子2へ出力する。
同様に、入力端子1から入力される入力信号xは、FIRフィルタ6に入力され、出力端子3から出力信号y2が出力される。
図19(b)は、FIRフィルタ5、6を簡略化して示している。図19(b)と同様に表示すると、2入力2出力の系統では、図19(c)(加算器9が追加されている)のようになり、6入力4出力の系統では、図20に示すような構成となる。
図19、図20に示すFIRフィルタは、時間領域において処理を行う。図20から明らかなように、時間領域での処理によると、FIRフィルタの次数(タップ数)が増加するにつれ、回路構成が非常に複雑になってしまう。
時間領域での処理ではなく、周波数領域での処理を行うと、単位時間当たりの演算回数(乗算、および加減算)が少なくなることが、知られている。時間領域の畳み込みは、周波数領域では、ベクトル同士の対応する要素の単純な積に相当するためである。
周波数領域で処理を行うには、次のようにする。まず、時間領域の信号を、ある定められた時間窓毎に離散フーリエ変換を用いて周波数領域に変換する。離散フーリエ変換を少ない演算回数で行うために、離散フーリエ変換の高速算法である高速フーリエ変換(FFT)がよく用いられる。次に、変換された信号ベクトルと、係数ベクトル(周波数領域)とについて、対応する要素の積を計算する。
さらに、その積を逆高速フーリエ変換(IFFT)し、時間領域に戻す。この処理は、高次数のFIRフィルタの演算に、適している。
この周波数領域でのFIRフィルタの詳細については、非特許文献1(「高速フーリエ変換とその応用」第5章(佐川雅彦・貴家仁志著、昭晃堂))、非特許文献2(“Fast Fourier Transform and Convolution Algorithms”第3−4章(Henri J. Nussbaumer著、1982年)−和訳名「高速フーリエ変換のアルゴリズム」(佐川雅彦・本間仁志訳、1993年、科学技術出版社))に記述がある。
非特許文献1、2が指摘するように、周波数領域での畳み込みは、通常循環畳み込み(circular convolution)となるため、時間領域と同じ直線畳み込み(linear convolution)となるような工夫が必要である。
そして、非特許文献1、2は、その具体的手法として、重複保持法(overlap―save method)と、重複加算法(overlap−add method)とを紹介する。
図21を参照しながら、これらの手法のうち、重複保持法を用いる例を説明する。ここは、入力信号系列xに係数hを畳み込み、出力信号系列yを求めるものとする。図中、「Re」は実数であることを示し、同様に、「Im」は虚数、「Co」は複素数であることを示す。以降、他の図でも同様である。
まず、現在の時間窓Wnの窓長をN(サンプル)、係数長をL(サンプル)とする。この時データの更新長をM(サンプル)とすると
M=N−L
となる。
ここで、時間窓Wn−1は直前の時間窓であり、時間窓Wn+1は、次の時間窓である。時間窓Wn−1、Wn、Wn+1は、同じ窓長を持ち、互いに係数長L(サンプル)だけ重なり合うように設定される。
また、入力信号系列xのうち、現在の時間窓Wn内の成分は、FFT部11の実数入力部11aに入力される。FFT部11の虚数入力部11bは、使用されず、「0」のみのデータ(Nサンプル)が虚数入力部11bに入力される。つまり、入力は、1系統である。
一方、係数hについて、長さLの係数を前詰めし、後ろに長さMのゼロを付加し、長さNの時間領域の実数係数を作る。係数hの実数系列は、FFT部10の実数入力部10aに入力され、FFT部10の虚数入力部10bは、使用されず、「0」のみのデータ(Nサンプル)が虚数入力部10bに入力される。つまり、係数は、1系統である。
この実数係数に対し、FFT部10により、窓長NのFFTを行うと、FFT部11の複素出力部11cから、長さNの係数ベクトルH(複素数、周波数領域)が出力される。
次に、入力信号系列xについて、直前の時間窓Wn−1で使用したデータの後ろからLサンプル取り、現在の時間窓Wnのデータの後からMサンプルのデータを取り、長さNの実数信号系列としたものを、FFT部11の実数部11aに入力する。そして、FFT部11により、FFTを行うと、複素出力部11cから長さNのデータベクトルX(複素数、周波数領域)が出力される。
次に、複素乗算部12は、係数ベクトルHとデータベクトルXとについて、要素毎に複素乗算を行う。
すなわち、係数ベクトルHを
H=[H(1),H(2),…,H(N)]
とし、データベクトルXを
X=[X(1),X(2),…,X(N)]
としたとき、複素乗算部12は、複素乗算結果が
Y=H・X=[H(1)X(1),H(2)X(2),…,H(N)X(N)]
となるように演算を行い、この演算結果Yを、IFFT部13の複素入力部13cへ出力する。
IFFT部13は、演算結果Yを、窓長Nの逆高速フーリエ変換(IFFT)して時間領域に戻し、IFFT部13の実数出力部13aから出力信号系列yが出力される。なお、IFFT部13の虚数出力部13bは使用されない。
求められた出力信号系列yのうち、先頭のLサンプル(×印)は、循環畳み込みの影響を受けているため廃棄される。廃棄されず残ったMサンプルの信号データが、求める出力信号系列yとされる。
次に、図22を参照して、重複加算法について説明する。重複加算法によっても、基本的には、重複保持法と同じである。例えば、実数系列xに係数hを畳み込み、実数系列yを求める場合、FFTの窓長N(サンプル)、係数長L(サンプル)、データの更新長M(サンプル)、長さNの係数ベクトルHの求め方は、上述したとおりである。
但し、重複加算法では、現在の時間窓Wnの入力データの後ろからLサンプルのデータは「0」とする。また、IFFT部13が求めた信号データのうち、先頭のLサンプルと、直前の時間窓Wn−1において得られた信号データの後ろからのLサンプルとを加算する。
こうして得られた先頭からMサンプルの信号データが、求める出力信号系列yとなる。この時、IFFT部13は、時間窓Wnに関する後ろからLサンプルを、次回の畳み込みにおける加算のために、メモリ14に格納する。
次に、重複保持法、重複加算法による演算回数を評価する。ここでは、上述のように、M(=N−L)サンプル当たりの演算回数について考える。
重複保持法では、
FFT 複素乗算(N/2)log2(N−1)
複素加算Nlog2
ベクトル乗算複素乗算N
IFFT 複素乗算(N/2)log2(N−1)
複素加算Nlog2
となり、合計で
複素乗算Nlog2(N−1)+N
複素加算2Nlog2
となる。
また、重複加算法についても、上記とほぼ同等の演算回数となる。
ここで、係数のFFTについては、起動時に1回のみ求め、入力信号系列に関するリアルタイム系の処理から切り離すことができるため、上記の演算回数には、入れないことにする。
これらの方法を基本にし、複素FFTの性質を利用してメモリ量や単位時間当たりの演算回数の削減を図った方法が、幾つか提案されている。
特許文献1(米国特許第3679882号公報)は、1回のFFTと1回のIFFTの代わりに、1回の複素FFTとフィードバックを用いて実現する方法を開示する。
また、非特許文献1、2は、別の方法(以下「従来改良法」という)を開示する。次に、図23を参照しながら、従来改良法について説明する。
図23に示すように、従来改良法では、入力信号系列xについて、現在の時間窓Wnと次の時間窓Wn+1とを、一度に使用する。なお、各時間窓Wn−1、Wn、Wn+1の関係は、上述と同様である。
時間窓Wn内のデータをFFT部11の実数入力部11aに入力し、時間窓Wn+1内のデータをFFT部11の虚数入力部11bに入力する。
そして、FFT部11により複素FFTを行い、複素数のデータベクトルXが、FFT部11の複素出力部11cから複素乗算部12へ出力される。
係数ベクトルHについては、上述と同様である。
ところが、IFFT部13が、IFFTを行うと、IFFT部12の実数出力部13aから時間窓Wnに対応する出力信号系列yが出力され、IFFT部12の虚数出力部13bから時間窓Wn+1に対応する出力信号系列yが出力される。
従来改良法によると、図21に示す重複保持法と同じ演算回数で、2倍の2Mサンプル分の処理が可能となり、有利である。
以上に示した方法は、いずれも1入力1出力のFIRフィルタについての効率化を目指している。
したがって、これを1入力多出力、多入力多出力のFIRフィルタに拡張する場合には、時間領域のFIRフィルタと同じように、1入力1出力のFIRフィルタを並列に配置することになる。
図24(a)は、従来の1入力2出力の信号処理装置を示し、図24(b)は、従来の2入力2出力の信号処理装置を示す。
図24(a)は、図19(b)における時間領域のFIRフィルタを、周波数領域のフィルタに変更したものに相当し、図24(b)は、図19(c)における時間領域のFIRフィルタを、周波数領域のフィルタに変更したものに相当する。
なお、図24(a)では、FFT部15、IFFT部16、17、複素乗算部18、19が具備される。また、図24(b)では、図24(a)の要素に、FFT部20、複素乗算部21、22、加算器23、24が追加されている。
次に、従来改良法による演算回数を評価する。
周波数領域のフィルタ構成では、通常の重複保持法で、1入力2出力の場合、演算回数は、M(=N−L)サンプル当たり
FFT 複素乗算(N/2)log2(N−1)
複素加算Nlog2
ベクトル乗算複素乗算2N
IFFT 複素乗算Nlog2(N−1)
複素加算2Nlog2
となり、合計で
複素乗算(3N/2)log2(N−1)+2N
複素加算3Nlog2
となる。
また、2入力2出力の場合、演算回数は、M(=N−L)サンプル当たり
FFT 複素乗算Nlog2(N−1)
複素加算2Nlog2
ベクトル乗算複素乗算4N
ベクトル加算複素加算2N
IFFT 複素乗算Nlog2(N−1)
複素加算2Nlog2
となり、合計で
複素乗算2Nlog2(N−1)+4N
複素加算4Nlog2N+2N
となる。
図23に示した従来改良法を用いれば、上記と同じ演算回数で2Mサンプル分の演算が実行可能である。
しかしながら、図23から明らかなように、従来改良法では、時間窓Wnのデータと時間窓Wn+1のデータとの両方が、そろうまで処理を実行できない。したがって、従来改良法では、図21の重複保持法や図22の重複加算法に比べて、データがそろうまでの遅延時間が、約2倍になってしまうという問題点がある。
米国特許第3679882号公報 特開平8−501667号公報 国際公開WO 94/1933号公報 米国特許第4992967号公報 米国特許第5768165号公報 特開2000−267682号公報 「高速フーリエ変換とその応用」第5章(佐川雅彦・貴家仁志著、昭晃堂) "Fast Fourier Transform and Convolution Algorithms"第3−4章(Henri J. Nussbaumer著、1982年)−和訳名「高速フーリエ変換のアルゴリズム」(佐川雅彦・本間仁志訳、1993年、科学技術出版社)
1入力多出力および多入力多出力のFIRフィルタにおいて、更に単位時間当たりの演算回数を小さくしたい、処理遅延量も短くしたいという要求がある。しかしながら、1入力多出力および多入力多出力の観点による最適化は今まで考慮されておらず、更なる高効率化が必要である。
そこで本発明は、単位時間当たりの演算回数、処理遅延量の観点から、1入力多出力または多入力多出力において、処理効率を向上できる信号処理装置を提供することを目的とする。
第1の発明に係る信号処理装置は、入力信号系列の時間窓内の成分を変換し複素数のデータベクトルを出力する第1の離散フーリエ変換部と、データベクトルと係数ベクトルとを要素毎に複素乗算した演算結果を出力するベクトル乗算部と、実数出力部と虚数出力部とを有する逆離散フーリエ変換部であって、演算結果を逆変換し、実数出力部より第1の出力信号系列を出力し、虚数出力部より第2の出力信号系列を出力する逆離散フーリエ変換部とを備える。
この構成により、1入力多出力における処理効率を向上できる。具体的には、従来改良法よりも、演算回数を削減でき、かつ、データがそろうまでの遅延時間を短縮できる。
第2の発明に係る信号処理装置は、入力信号系列の時間窓内の成分を変換し複素数のデータベクトルを出力する第1の離散フーリエ変換部と、実数入力部と虚数入力部とを有する第2の離散フーリエ変換部であって、実数入力部に第1の係数が入力され、かつ、虚数入力部に第2の係数が入力され、実数入力部と虚数入力部への入力を変換して複素数の係数ベクトルを出力する第2の離散フーリエ変換部と、データベクトルと係数ベクトルとを要素毎に複素乗算した演算結果を出力するベクトル乗算部と、実数出力部と虚数出力部とを有する逆離散フーリエ変換部であって、演算結果を逆変換し、実数出力部より第1の出力信号系列を出力し、虚数出力部より第2の出力信号系列を出力する逆離散フーリエ変換部とを備える。
この構成により、出力信号系列に第1の係数を作用させ、出力される第2の出力信号系列に第2の係数を作用させることができる。
第3の発明に係る信号処理装置は、実数入力部と虚数入力部とを有する第1の離散フーリエ変換部であって、実数入力部に第1の入力信号系列における第1の時間窓内の成分が入力され、かつ、虚数入力部に第2の入力信号系列における第2の時間窓内の成分が入力され、実数入力部と虚数入力部への入力を変換して複素数のデータベクトルを出力する第1の離散フーリエ変換部と、データベクトルと係数ベクトルとを要素毎に複素乗算した演算結果を出力するベクトル乗算部と、実数出力部と虚数出力部を有する逆離散フーリエ変換部であって、演算結果を逆変換し、実数出力部より第1の出力信号系列を、虚数出力部より第2の出力信号系列を出力する逆離散フーリエ変換部とを備え、第1の時間窓と第2の時間窓とは時間軸上同じ位置にある。
この構成により、多入力多出力における処理効率を向上できる。具体的には、従来改良法よりも、演算回数を削減でき、かつ、データがそろうまでの遅延時間を短縮できる。特に、2チャンネル以上の音響信号処理に好適である。
第4の発明に係る信号処理装置では、ベクトル乗算部は、さらに、データベクトルを、第1の入力信号系列に係る第1の成分と第2の入力信号系列に係る第2の成分とに分離するスプリッタと、第1係数ベクトルを供給する第1係数ベクトル供給部と、第2係数ベクトルを供給する第2係数ベクトル供給部と、第1の成分と第1係数ベクトルとを複素乗算する第1の複素乗算部と、第2の成分と第2係数ベクトルとを複素乗算する第2の複素乗算部と、第1の複素乗算部の乗算結果と第2の複素乗算部の乗算結果とを加算して演算結果とする加算器とを備える。
この構成において、スプリッタにより、複素数のデータベクトルを、第1の入力信号系列に係る第1の成分と、第2の入力信号系列に係る第2の成分とに分離できる。
また、この分離の後、第1の複素乗算部により、第1の成分に、第1係数を独立して作用させることができ、第2の複素乗算部により、第2の成分に、第2係数を独立して作用させることができる。
第5の発明に係る信号処理装置では、ベクトル乗算部は、さらに、第1係数ベクトルと第2係数ベクトルとに基づいて第3係数ベクトルを生成する第3係数ベクトル供給部と、第1係数ベクトルと第2係数ベクトルとに基づいて第4係数ベクトルを生成する第4係数ベクトル供給部と、データベクトルと第3係数ベクトルとを複素乗算する第1の複素乗算部と、データベクトルを反転させたデータの複素共役成分と第4係数ベクトルとを複素乗算する第2の複素乗算部と、第1の複素乗算部の乗算結果と第2の複素乗算部の乗算結果とを加算して演算結果とする加算器とを備える。
この構成により、スプリッタを省略することができ、演算回数及び/又は回路規模を削減できる。
また、スプリッタを省略しながらも、結果として、第1の入力信号系列に係る第1の成分に、第1係数を独立して作用させることができ、第2の入力信号系列に係る第2の成分に、第2係数を独立して作用させることができる。
第6の発明に係る信号処理装置では、さらに、周波数領域たすきがけ演算部を備える。
この構成により、周波数領域でたすきがけ演算を実現できる。
第7の発明に係る信号処理装置では、逆離散フーリエ変換部は、離散フーリエ変換部と反転部とにより構成される。
この構成により、逆離散フーリエ変換部を設けずに、離散フーリエ変換部だけで変換部を構成でき、要素共通性を向上できる。なお、反転部自体は、例えば、アドレッシングの工夫など簡単な構成で実現できる。
本発明によれば、1入力多出力、および多入力多出力の信号処理において、離散フーリエ変換のバッファによる遅延を考慮した場合、その単位時間当たりの演算量が、従来法に比べ、1入力多出力で20%前後、多入力多出力の系で40%程度削減され、高速な信号処理を実現できる。
以下図面を参照しながら、本発明の実施の形態を説明する。
(実施の形態1)
図1は、本発明の実施の形態1における信号処理装置のブロック図であり、重複保持法を用いる例を示す。図2は、本発明の実施の形態1における信号処理装置のブロック図であり、重複加算法を用いる例を示す。実施の形態1は、1入力2出力系の信号処理装置に関する。
まず、図1を参照しながら、重複保持法を用いる例を説明する。ここでは、入力信号系列xに係数hを畳み込み、出力信号系列yを求めるものとする。時間窓等の設定は、図21と同様である。
即ち、現在の時間窓Wnの窓長をN(サンプル)、係数長をL(サンプル)とする。この時データの更新長をM(サンプル)とすると
M=N−L
となる。
ここで、時間窓Wn−1は直前の時間窓であり、時間窓Wn+1は、次の時間窓である。時間窓Wn−1、Wn、Wn+1は、同じ窓長を持ち、互いに係数長L(サンプル)だけ重なり合うように設定される。
第1のFFT部であるFFT部11は、実数系列の時間窓Wn内の成分を変換し、その複素出力部11cから複素数のデータベクトルXを出力する。FFT部11は、実数入力部11aと虚数入力部11bとを備え、入力信号系列xの時間窓Wn内の成分は、実数入力部11aにのみ入力される。
また、FFT部11の虚数入力部11bは、使用されず、「0」のみのデータ(Nサンプル)が虚数入力部11bに入力される。つまり、入力信号系列は、1系統である。
本形態のベクトル乗算部30は、複素数データXと係数ベクトルHとを要素毎に複素乗算を行い、演算結果Yを出力する。
ベクトル乗算部30は、第2のFFT部であるFFT部10と、係数ベクトルHを記憶する係数ベクトル記憶部31を備える。
FFT部10は、実数入力部10aと虚数入力部10bと複素出力部10cを有する。ここで、第1の係数h1について、長さLの係数h1を前詰めし、後ろに長さMのゼロを付加し、長さNの時間領域の係数を作る。同様に、第2の係数h2について、長さLの係数h2を前詰めし、後ろに長さMのゼロを付加し、長さNの時間領域の係数を作る。
FFT部10の実数入力部10aには、第1の係数h1に関する成分が入力され、FFT部10の虚数入力部10bには、第2の係数h2に関する成分が入力される。つまり、係数の入力は、図21と異なり2系統である。
そして、FFT部10は、第1の係数h1に関する成分と、第2の係数h2に関する成分とを、複素FFTし、その複素出力部10cから長さNの係数ベクトルH(複素数、周波数領域)を出力する。
出力された係数ベクトルHは、係数ベクトル記憶部31に格納される。
この係数ベクトルHの計算及び係数ベクトル記憶部31への係数ベクトルHの格納は、入力信号系列xの入力に先立って行うのが好ましい。こうすると、係数ベクトルHについては、単に係数ベクトル記憶部31から読み出すだけで済み、処理を高速化できるからである。
ベクトル乗算部30の複素乗算部12は、係数ベクトルHとデータベクトルXとについて、要素毎に複素乗算を行う。
すなわち、係数ベクトルHを
H=[H(1),H(2),…,H(N)]
とし、データベクトルXを
X=[X(1),X(2),…,X(N)]
としたとき、複素乗算部12は、複素乗算結果が
Y=H・X=[H(1)X(1),H(2)X(2),…,H(N)X(N)]
となるように演算を行い、演算結果Yを、IFFT部13の複素入力部13cへ出力する。
IFFT部13は、ベクトル乗算部30の演算結果Yを、窓長Nの逆高速フーリエ変換(IFFT)して時間領域に戻す。
その結果、IFFT部13の実数出力部13aから出力信号系列y1が出力される。この出力信号系列y1は、入力信号系列xに第1の係数h1を作用させたものである。
また、IFFT部13の虚数出力部13bから出力信号系列y2が出力される。この出力信号系列y2は、入力信号系列xに第2の係数h2を作用させたものである。
図1では、IFFT部13からの出力を重複保持法により利用する。従って、実数出力部13aから出力される出力信号系列y1のうち、先頭のLサンプル(×印)は、循環畳み込みの影響を受けているため廃棄される。廃棄されず残ったMサンプルの信号データが、求める出力信号系列y1とされる。
同様に、虚数出力部13bから出力される出力信号系列y2のうち、先頭のLサンプル(×印)は、循環畳み込みの影響を受けているため廃棄される。廃棄されず残ったMサンプルの信号データが、求める出力信号系列y2とされる。
次に、図2を参照しながら、逆FFT部13の出力を、重複加算法により利用する例を説明する。図2と図1を比較すればわかるように、IFFT部13までの構成は、図1とほぼ同様である。
ただし、図2に示すように、重複加算法によるときは、従来の技術の項で述べたように、現在の時間窓Wnの入力データの後ろからLサンプルのデータは「0」とする。また、時間窓Wnに関する出力信号系列の後ろからLサンプルを、次回の畳み込みにおける加算のために、記憶しておく必要がある。
また、図1の説明で述べたように、IFFT部13は、出力信号系列y1と出力信号系列y2の2つの出力を行う。このため、出力信号系列y1の時間窓Wnに関する後ろからLサンプルを記憶する第1記憶部26と、出力信号系列y2の時間窓Wnに関する後ろからLサンプルを記憶する第2記憶部27とが設けられている。
以下、図1、図2による場合について、演算回数等を評価する。ただし、本形態では、入力信号系列xの処理に先立って、係数ベクトルHの演算結果を係数ベクトル記憶部31に格納するから、以下の評価において、係数ベクトルHの演算回数は、単位時間当たりの演算回数に含めない。
本形態では、1回のFFT、1回のベクトル乗算、1回のFFTで2つの畳み込みが実行されている。単位時間当たりの演算回数を考えると、M(=N−L)サンプル当たり
FFT 複素乗算(N/2)log2(N−1)
複素加算Nlog2
ベクトル乗算複素乗算N
ベクトル加算複素加算なし
IFFT 複素乗算(N/2)log2(N−1)
複素加算Nlog2
となり、合計で
複素乗算Nlog2(N−1)+N
複素加算2Nlog2
となる。これは、従来では
複素乗算(3N/2)log2(N−1)+2N
複素加算3Nlog2
となり、1.5倍の高速化が図れている。
この結果によると、従来改良法の方が演算回数が少ないように見える。しかしながら、従来改良法は、2Mサンプル毎の更新となるため、FFTの入力データが揃うまでのバッファ保存による遅延時間が、図1の回路の2倍になってしまう。すなわち、同じ更新時間(バッファ保存のための遅延時間)とフィルタタップ数にして評価しないと、正しい比較とはいえない。
すなわち、従来改良法については、
N=(M/2+L)
なる新しいNをFFTの窓長とする必要がある。すなわち、Mサンプル当たりの演算回数は
複素乗算0.75(M+2L)log2{M/2+L−1}+(M+2L)
複素加算3(M/2+L)log2{M/2+L}
となる。
本形態による信号処理装置では、
N=M+L
のままでよいので、Mサンプル当たりの演算回数は
複素乗算(M+L)log2(M+L−1)+(M+L)
複素加算2(M+L)log2(M+L)
となる。
ここで、これらを比較するために、典型的な値として、
M=2048 L=4096
の値を代入すると、従来改良法では
複素乗算104870
複素加算189260
となり、本形態では
複素乗算83465
複素加算154641
となり、共に本形態の方が、演算回数は、単位時間当たり、約20%削減されている。
他の実用的な数値を代入した場合においても、削減率の大小はあるものの、本形態の方が、演算回数が少ない。
以上のように、時間領域の係数の一方を実数部、他方を虚数部に入れてFFTした周波数領域の係数列を用いることで、単位時間当たりの演算量を削減する効果が得られる。
(実施の形態2)
本発明の実施の形態2における信号処理装置について、図3〜図6を参照しながら説明する。本形態は、実施の形態1とは異なり、2入力2出力系の信号処理装置に関する。
図3は、図1に対応し、本発明の実施の形態2における信号処理装置のブロック図であり、重複保持法による例を示す。図4は、図2に対応し、本発明の実施の形態2における信号処理装置のブロック図であり、重複加算法による例を示す。
図3は、図1に対応し、本発明の実施の形態2における信号処理装置のブロック図であり、重複保持法による例を示す。図4は、図2に対応し、本発明の実施の形態2における信号処理装置のブロック図であり、重複加算法による例を示す。
第1のFFT部であるFFT部11と逆FFT部11の構成は、実施の形態1と同様である。ただし、上述したように、本形態は、多入力多出力系に関し、FFT部11の実数入力部11aに入力信号系列(第1の入力信号系列)x1(時間窓Wn)が入力され、FFT部11の虚数入力部11bに入力信号系列(第2の入力信号系列)x2(時間窓Wm)が入力される。時間窓Wn,Wmの窓長は等しく、実施の形態1と同様である。
ここで、入力信号系列x1、x2は、異なる実数系列とすることができ、さらに、時間窓Wnと時間窓Wmとは、時間軸上同じ位置にあるものとする。
典型的には、2チャンネルの音響信号について、左チャンネル(Lch)の成分を入力信号系列x1とし、右チャンネル(Rch)の成分を入力信号系列x2とすることができる。
また、逆FFT部13の実数出力部13aから出力信号系列y1(時間領域)が出力され、逆FFT部13の虚数出力部13bから出力信号系列y2(時間領域)が出力される。
ベクトル乗算部40は、複素数のデータベクトルXと係数ベクトルとを畳み込み、演算結果Yを出力する点、及び、係数ベクトルを記憶する係数ベクトル記憶部を備える点においては、実施の形態1と同様である。
しかしながら、ベクトル乗算部40には、入力信号系列x1に係る成分と、入力信号系列x2に係る成分とが、データベクトルXにまとめられた状態で入力される。このため、ベクトル乗算部40の構成は、以下に述べるように、実施の形態1と異なる。
図5は、本発明の実施の形態2におけるベクトル乗算部のブロック図である。図5の構成の説明に先立ち、以下、ベクトル乗算部40による処理の原理を説明する。など、図3、図4に示すように、このベクトル乗算部40は、重複保持法、重複加算法に共通して使用できる。
さて、入力信号系列x1、x2と、出力信号系列y1、y2と、係数h11、h12、h21、h22とは、
y1=h11・x1+h21・x2
y2=h12・x1+h22・x2
なる関係を満たすものとする。
また、時間窓Wn、Wmに共通して、窓長がN(サンプル)であり、係数長がL(サンプル)であり、データの更新長がM(サンプル)であるとすると
M=N−L
となる。これは、これまでと同様である。
しかしながら、上述したように、データベクトルXは、入力信号系列x1、x2の成分がまとめられた状態でベクトル乗算部40に入力される。そこで、実施の形態2では、スプリッタを設け、データベクトルXを、入力信号系列x1に係る成分と、入力信号系列x2に係る成分とに、一旦分離し、分離されたそれぞれの成分に該当する係数ベクトルを畳み込む。その後、それぞれの演算結果を合成して、ベクトル乗算部の演算結果Yとして出力する。
即ち、図5に示すように、ベクトル乗算部40は、次の要素を備える。
スプリッタ43は、複素数のデータベクトルX(k)を、第1の入力信号系列x1に係る第1の成分X1(k)と第2の入力信号系列x2に係る第2の成分X2(k)とに分離する。
第1係数ベクトル供給部50は、第1係数ベクトルH1(k)を供給し、第2係数ベクトル供給部60は、第2係数ベクトルH2(k)を供給する。
第1の複素乗算部18は、第1の成分X1(k)と第1係数ベクトルH1(k)とを複素乗算し、第2の複素乗算部19は、第2の成分X2(k)と第2係数ベクトルH2(k)とを複素乗算する。
加算器23は、第1の複素乗算部18の乗算結果と第2の複素乗算部19の乗算結果とを加算してベクトル乗算部の演算結果Y(k)とする。
第1係数ベクトル供給部50及び第2係数ベクトル供給部60は、図1及び図2に示したベクトル乗算部30から複素乗算部12を除いたものと同様の構成である。
即ち、第1係数ベクトル供給部50は、FFT部10と第1係数ベクトル記憶部41とを有する。実数入力部10aには、係数h11に関する長さNの時間領域の系列が入力される。虚数入力部10bは、係数h12に関する長さNの時間領域の系列が入力される。複素出力部10cから係数h11と係数h12とを複素FFTした係数ベクトルH1が出力され、この係数ベクトルは、第1係数ベクトル記憶部41に格納される。
同様に、第2係数ベクトル供給部60は、FFT部11と第2係数ベクトル記憶部42とを有する。実数入力部11aには、係数h21に関する長さNの時間領域の系列が入力される。虚数入力部11bは、係数h22に関する長さNの時間領域の系列が入力される。複素出力部11cから係数h21と係数h22とを複素FFTした係数ベクトルH2が出力され、この係数ベクトルは、第2係数ベクトル記憶部42に格納される。
なお例えば、係数h11としてLchからLchへ作用させる係数を選び、係数h12としてLchからRchへ作用させる係数を選び、係数h21としてRchからLchへ作用させる係数を選び、係数h22としてRchからRchへ作用させる係数を選ぶとよい。
次に、図6を用いて、スプリッタ43の構成例を説明する。まず、スプリッタ43の原理を説明する。
2つの実数系列x1(n)、x2(n)を、それぞれ独立してFFTし周波数領域に変換した複素数のデータを、X1(k)、X2(k)とする。さらに、
x(n)=x1(n)+jx2(n) (以下、「j」は虚数単位)
なる複素信号系列x(n)を定義する。この複素信号系列x(n)をFFTした複素数データX(k)は、
X(k)=X1(k)+jX2(k)
となる。このとき、X(k)を用いると、X1(k)、X2(k)は、
X1(k)={X(k)+X*(N−k)}/2
X2(k)={X(k)−X*(N−k)}/2j
(*は複素共役を表す。以下同じ。)
と表せる。
すなわち、図5に示すスプリッタ43を、以上の関係式を満たすように構成すれば、複素数のデータベクトルX(k)を、入力信号系列x1に係る成分X1(k)と入力信号系列x2に係る成分X2(k)とに分離できる。
具体的には、図6(b)に示すコア部44を用い、図6(a)に示すように、入力系(X(0),X(1),…,X(N−1))と、出力系(X1(0),…,X1(N/2),X2(0),…,X2(N/2))とを、接続すればよい。
なお、図6(a)では、スプリッタ43の出力が「0」から「N/2」までしかないが、元の信号系列x1、x2が実数系列なので
X1(k)=X1(N−k)
X2(k)=X2(N−k)
なる性質があるため、N/2を超えるものは省略して差し支えないのである。
以下、実施の形態2における演算回数を評価する。なお、重複保持法、重複加算法とでは、演算回数は同様である。
さて、本形態では、1回のFFT、1回のスプリッタ処理、2回のベクトル乗算、1回のベクトル加算、1回のIFFTで4つの畳み込みが実行されている。単位時間当たりの演算回数を考えると、M(=N−L)サンプル当たり
FFT 複素乗算(N/2)log2(N−1)
複素加算Nlog2
スプリッタ複素加算N
ベクトル乗算複素乗算2N
ベクトル加算複素加算N
IFFT 複素乗算(N/2)log2(N−1)
複素加算Nlog2
となり、合計で
複素乗算Nlog2(N−1)+2N
複素加算2Nlog2N+2N
となる。これは、従来と比べ2倍の高速化が図れている。
ここでも、従来改良法との比較を行う。2入力2出力の場合は2Mサンプル当たりの演算回数は
複素乗算2Nlog2(N−1)+4N
複素加算4Nlog2N+2N
となるが、実施の形態1の場合と同じく、
N=(M/2+L)
なる新しいNをFFTの窓長とする必要がある。すなわち、Mサンプル当たりの演算回数は
複素乗算(M+2L)log2{M/2+L−1}+2(M+2L)
複素加算2(M+2L)log2{M/2+L}+(M+2L)
となる。
本形態による信号処理装置では、
N=M+L
のままでよいので、Mサンプル当たりの演算回数は
複素乗算(M+L)log2(M+L−1)+2(M+L)
複素加算2(M+L)log2(M+L)+2(M+L)
となる。
ここで、これらを比較するために、典型的な値として、
M=2048 L=4096
の値を代入すると、従来改良法では
複素乗算146654
複素加算262587
となり、本形態では
複素乗算89609
複素加算166929
となり、共に本形態の方が、単位時間当たりの演算回数が、約38%削減されており、1入力2出力の場合に比べ、より削減率が高い。
以上のように、本形態では、入力信号系列x1、x2を、一方を実数入力部に、他方を虚数入力部に入れてFFTし、そのFFT出力をスプリッタ43を用いて分離した後に、実施の形態1と同様の係数を乗じている。これにより、多入力多出力系において、単位時間当たりの演算量を削減できる。
(実施の形態3)
本発明の実施の形態3における信号処理装置について、図7を参照しながら説明する。
本形態の信号処理装置は、実施の形態2と同様に、2入力2出力系の信号処理装置である。重複保持法によるときは、図3に示すようになり、重複加算法によるときは、図4に示すようになる。
ただし、本形態では、図5に示されるベクトル乗算部において、A部の内容が異なる。本形態では、スプリッタなしでベクトル乗算部を構成する。
図7(a)は、本形態の実施の形態3におけるベクトル乗算部のブロック図である。まず、ベクトル乗算部90の原理を説明する。
さて、演算結果Y(k)のうち、入力信号系列x1に係る成分をY1(k)とし、入力信号系列x2に係る成分をY2(k)とする。
このとき、Y1(k)、Y2(k)は
Y1(k)=H11(k)X1(k)+H21(k)X2(k)
Y2(k)=H12(k)X1(k)+H22(k)X2(k)
と表される。ここで、
Y(k)=Y1(k)+jY2(k)
H1(k)=H11(k)+jH12(k)
H2(k)=H21(k)+jH22(k)
と定義すると
Y(k)=H1(k)X1(k)+H2(k)X2(k)
と表される。前述のように、
X1(k)={X(k)+X*(N−k)}/2
X2(k)={X(k)−X*(N−k)}/2j
であるから、
Y(k)=H1(k){X(k)+X*(N−k)}/2
―jH2(k){X(k)−X*(N−k)}/2
={H1(k)―jH2(k)}X(k)/2
+{H1(k)+jH2(k)}X*(N−k)/2
と変形できる。すなわち、
M(k)={H1(k)―jH2(k)}/2
={H11(k)+H22(k)}/2
+j{H12(k)―H21(k)}/2
P(k)={H1(k)+jH2(k)}/2
={H11(k)−H22(k)}/2
+j{H12(k)+H21(k)}/2
とおくと
Y(k)=M(k)X(k)+P(k)X*(N−k)
となる。
この関係式に基づいて、図7(a)のように構成すれば、図5のA部と等価な処理部であって、かつ、スプリッタがないものを実現できる。
図7(a)において、係数ベクトルM(k)を供給する第4係数ベクトル記憶部70と、係数ベクトルP(k)を供給する第5係数ベクトル記憶部80とは、図7(b)に示すように、加算器23、24を用いたたすきがけ演算を行えば実現できる。
さらに、図7(c)には、入力系(X(0),X(1),…,X(N−1))と、出力系(Y(0),Y(1),…,Y(N−1))との、接続例を示している。
本形態では、実施の形態2よりも、スプリッタ処理の分だけ演算回数が削減されている。以下、本形態の演算回数を評価する。なお、重複保持法と重複加算法とでは、演算回数は同様である。
すなわち、単位時間当たりの演算回数を考えると、M(=N−L)サンプル当たり
FFT 複素乗算(N/2)log2(N−1)
複素加算Nlog2
ベクトル乗算複素乗算2N
ベクトル加算複素加算N
IFFT 複素乗算(N/2)log2(N−1)
複素加算Nlog2
となり、合計で
複素乗算Nlog2(N−1)+2N
複素加算2Nlog2N+N
となり、実施の形態2に比べ、複素加算回数がNだけ削減されている。
(実施の形態4)
本発明の実施の形態4における信号処理装置について、図8を参照しながら説明する。
図8(a)は、多入力多出力の信号処理装置の例として、6入力4出力の信号処理装置を示している。なお、図8(a)では明示してないが、重複保持法における入力信号系列のオーバーラップと出力信号系列先頭の廃棄、重複加算法における入力信号系列のゼロ付加と出力信号系列のオーバーラップ加算は実施されるものとする。
図8(a)のように、入力信号系列について、2つずつセットにして考える。一方は実数部、他方は虚数部とした複素系列を3セットつくり、FFT部13により、その各々についてFFTし、周波数領域の信号系列Xへ変換する。
また、ベクトル乗算部40を全ての経路の分用意する。このベクトル乗算部40は、実施の形態2のものでも、実施の形態3のものでも良く、あるいは、これらを混在させて使用しても良い。
それぞれの演算結果Yは、加算器23、24により、加算され、それぞれの加算結果をIFFT部13により、時間領域の出力信号系列y1、y2、y3、y4に逆変換する。
このように、入力信号系列のチャンネル数の1/2個のFFT部、出力信号系列のチャンネル数の加算器とIFFT部、FFT部の個数とIFFT部の個数との積の個数のベクトル乗算部を用いることで、多入力多出力の信号処理装置を実現できる。
なお、多入力多出力の畳み込みであっても、畳み込みが不要な経路が存在する場合もある。このような場合、図8(b)に示すように、不要な経路に合わせてベクトル乗算部を一部省略してもよい。
(実施の形態5)
本発明の実施の形態5における信号処理装置の適用例について、図9を参照しながら説明する。
図9は、マルチチャンネルのオーディオ信号が作り出す音場と同等な音場を、前方2つのスピーカやヘッドホンで作り出すバーチャル・サラウンド装置を示している。
入力は、左チャンネル(Lch)、右チャンネル(Rch)、左サラウンド・チャンネル(SLch)、右サラウンド・チャンネル(SRch)、センター・チャンネル(Cch)、サラウンドバック・チャンネル(SBch)、の6チャンネルに重低音専用チャンネル(LFEch)を加え、6.1チャンネルと呼ばれているものである。
図9の信号処理装置は、これを、出力左チャンネル(Lch)、右チャンネル(Rch)の2チャンネルにダウンミックスするものである。ここで、通常のダウンミックスではなく、音源位置から耳元までの音の伝搬過程での変化を表した頭部伝達関数に基づいて算出されたフィルタを用いフィルタリング、すなわち畳み込み演算を施してダウンミックスを行う。
まず、入力について、LchとRchを1セット、SLchとSRchを1セット、CchとSBchを1セットにし、一方を実数部、他方を虚数部に入れ、FFTし、周波数領域のデータベクトルXへ変換する。それぞれ、ベクトル乗算部40によりでフィルタリングに相当する演算を行い、加算器23で加算した後、IFFTする。
こうして得られた時間領域の信号系列の実数部がLch、虚数部がRchに相当する。このLchとRchの信号系列に、LFEchの信号に関し遅延器8による遅延信号を、適切な係数を乗じて加算し、2チャンネルの出力信号系列を得る。
このようにすれば、より演算回数が少なく、低コストのバーチャル・サラウンド装置を実現できる。
なお、ここではLchとRch、SLchとSRch、CchとSBchとをペアにしたが、そのペアの仕方は任意である。例えば、LchとSLch、RchとSRchのようなペアでも良い。
また、LFEchについては、時間領域で遅延させて出力近くで加算したが、これもFFT部を用いた畳み込みに代えてもよい。
(実施の形態6)
本発明の実施の形態6における信号処理装置について、図10から図16を参照しながら説明する。
図10は、本発明の実施の形態6における信号処理装置のブロック図である。図10に示すように、実施の形態6では、ベクトル乗算器40の前後に、周波数領域たすきがけ演算部100、101が設けられる。
以下、周波数領域たすきがけ演算部100、101のいくつかの具体例を説明する。最初に、図11から図14を参照しながら、スプリッタ43を用いた例を説明する。なお以下において、スプリッタ43は、図6に示したものと同様である。
図11は、フィードフォワード型の周波数領域たすきがけ演算部100、101のブロック図である。図11(a)において、スプリッタ43は、データベクトルUを2つの成分(U1、U2)に分離し、スプリッタ43の後段は、時間領域と同じスカラー係数(C11〜C22)を用い、スカラー係数(C11〜C22)と2つの成分(U1、U2)とを乗算し、たすきがけ演算を行う。
ここで、図11(b)のように、スカラー係数(C11〜C22)を複素数jを用いてまとめてもよい。
フィードバック型の周波数領域たすきがけ演算部100、101は、さらに図12(a)、図12(b)、図13に示すように構成することができる。
なお、周波数領域たすきがけ演算部100、101とベクトル乗算部40とが接続される場合、次のように、周波数領域たすきがけ演算部100、101とベクトル乗算部40とにおいて、スプリッタ43を共用化できる。スプリッタ43を共用化すると、フィードフォワード型では図14(a)のようになり、フィードバック型では図14(b)のようになる。
このように、周波数領域たすきがけ演算部100、101とベクトル乗算部40とにおいてスプリッタ43を共用化すると、スプリッタ43の1つ分、回路規模/演算回数を削減できる。
次に、図15〜図16を参照しながら、スプリッタ43を用いずに、周波数領域たすきがけ演算部100、101を構成する例を説明する。
まず、フィードフォワード型について説明する。時間領域の入力信号u1をFFTした結果をU1(k)とし、入力信号u2をFFTした結果をU2(k)とする。また、実数部にu1、虚数部にu2を入力してFFTした結果をU(k)とする。
同様に、たすきがけ演算後の周波数領域信号X1(k)をIFFTした結果をx1とし、X2(k)をIFFTした結果をx2とする。また、たすきがけ演算後の周波数領域信号XをIFFTした結果、その実数部にx1、虚数部にx2が出力されるものとする。
このとき、U1(k)、U2(k)とU(k)の関係は次式のようになる。
U1(k)={U(k)+U*(N−k)}/2
U2(k)={U(k)―U*(N−k)}/2j
次に、4つのスカラー係数によるたすきがけ演算の関係は
X1(k)=C11・U1(k)+C21・U2(k)
X2(k)=C12・U1(k)+C22・U2(k)
となる。
したがって、
X(k)=X1(k)+jX2(k)
なる関係式より、X(k)をU(k)、U*(N−k)を用いて表すと
X(k)=EA・U(k)+EB・U*(N−k)
となる。ただし、
EA=(C11+C22)+j(C12−C21)
EB=(C11−C22)+j(C12+C21)
である。
この関係を採用すると、フィードフォワード型の周波数領域たすきがけ演算部100、101は、図15のように構成できる。図15(a)は、たすきがけ演算コア部150を示し、図15(b)は、周波数領域たすきがけ演算部の全体を示す。
同様に、フィードバック型の周波数領域たすきがけ演算部100、101は、図16のように構成できる。図16(a)は、たすきがけ演算コア部151を示し、図16(b)は、周波数領域たすきがけ演算部の全体を示す。
以上のように、本発明により、周波数領域でのたすきがけ演算が実現できるようになった。
なお、実際のたすきがけ演算では
C11=C22
C12=C21
のように、対称な係数が使われる場合が多く、この場合には、周波数領域の係数が
EA=2・C11
EB=j2・C12
となり、この関係を利用すると、さらに演算回数を削減できる。
(実施の形態7)
実施の形態1から実施の形態6では、IFFT部13を用いて、演算結果Yを時間領域へ逆変換している。しかしながら、図17に示すように、IFFT部13に代えて、FFT部15と反転部45との組み合わせで構成することもできる。
ここで、IFFT部13を単にFFT部15に置換しただけでは、
(問題1)出力レベルがFFT部の窓長倍になる。
(問題2)時間領域の出力信号系列yが反転する。
という問題がある。
(問題1)については、係数又は信号のいずれかを、1/N(Nは窓長)倍すればよい。例えば、係数ベクトルを予め1/N(Nは窓長)倍しておくとよい。
(問題2)については、図17(a)のように、反転部45により、時間領域の出力信号系列yを反転させると良い。あるいは、図17(b)のように、反転部45が、周波数領域においてベクトル乗算部の演算結果Yを反転するようにしてもよいし、図17(c)に示すように、反転部45が、周波数領域においてデータベクトルXを反転するようにしてもよい。
なお、反転部45の処理は、単なるアドレッシング(例えば、メモリアドレスの操作等)ですむため、反転部45による演算負担はわずかである。IFFT部を使用しないようにすると、FFT部を共用できるため、システム資源の負担を軽減できる。
本発明に係る信号処理装置は、例えば、1入力多出力、多入力多出力の音響信号処理装置等或いはそれを含む応用技術又は関連技術の分野で好適に使用できる。
本発明の実施の形態1における信号処理装置のブロック図 本発明の実施の形態1における信号処理装置のブロック図 本発明の実施の形態2における信号処理装置のブロック図 本発明の実施の形態2における信号処理装置のブロック図 本発明の実施の形態2におけるベクトル乗算部のブロック図 (a)本発明の実施の形態2におけるスプリッタのブロック図 (b)本発明の実施の形態2におけるコア部のブロック図 (a)本発明の実施の形態3におけるベクトル乗算部のブロック図 (b)本発明の実施の形態3における第3係数ベクトル供給部のブロック図 (c)本発明の実施の形態3におけるベクトル乗算部のブロック図 (a)本発明の実施の形態4における6入力4出力の信号処理装置のブロック図 (b)本発明の実施の形態4における6入力4出力の信号処理装置のブロック図 本発明の実施の形態5におけるバーチャル・サラウンド装置のブロック図 本発明の実施の形態6における信号処理装置のブロック図 (a)本発明の実施の形態6における周波数領域たすきがけ演算部のブロック図 (b)本発明の実施の形態6における周波数領域たすきがけ演算部のブロック図 (a)本発明の実施の形態6における周波数領域たすきがけ演算部のブロック図 (b)本発明の実施の形態6における周波数領域たすきがけ演算部のブロック図 本発明の実施の形態6における周波数領域たすきがけ演算部のブロック図 (a)本発明の実施の形態6において、周波数領域たすきがけ演算部とベクトル乗算部でスプリッタを共用化した回路のブロック図 (b)本発明の実施の形態6において、周波数領域たすきがけ演算部とベクトル乗算部でスプリッタを共用化した回路のブロック図 (a)本発明の実施の形態6におけるたすきがけ演算コア部のブロック図 (b)本発明の実施の形態6における周波数領域たすきがけ演算部のブロック図 (a)本発明の実施の形態6におけるたすきがけ演算コア部のブロック図 (b)本発明の実施の形態6における周波数領域たすきがけ演算部のブロック図 (a)本発明の実施の形態6における信号処理装置のブロック図 (b)本発明の実施の形態6における信号処理装置のブロック図 (c)本発明の実施の形態6における信号処理装置のブロック図 (a)本発明の実施の形態6におけるベクトル乗算部のブロック図 (b)本発明の実施の形態6におけるベクトル乗算部のブロック図 (a)従来の信号処理装置のブロック図 (b)従来の信号処理装置のブロック図 (c)従来の信号処理装置のブロック図 従来の信号処理装置のブロック図 従来の信号処理装置のブロック図 従来の信号処理装置のブロック図 従来の信号処理装置のブロック図 (a)従来の信号処理装置のブロック図 (b)従来の信号処理装置のブロック図
符号の説明
10、11、15、20 FFT部
12、18、19、21、22 複素乗算部
23、24 加算器
30、40、90 ベクトル乗算部
41 第1係数ベクトル記憶部
42 第2係数ベクトル記憶部
43 スプリッタ
44 コア部
45 反転部
50 第1係数ベクトル供給部
60 第2係数ベクトル供給部
70 第3係数ベクトル供給部
80 第4係数ベクトル供給部
100、101 周波数領域たすきがけ演算部
150、151 たすきがけ演算コア部
W 時間窓
x 入力信号系列
y 出力信号系列
X データベクトル
H 係数ベクトル
Y ベクトル乗算部の演算結果

Claims (20)

  1. 入力信号系列の時間窓内の成分を変換し複素数のデータベクトルを出力する第1の離散フーリエ変換部と、
    前記データベクトルと係数ベクトルとを要素毎に複素乗算した演算結果を出力するベクトル乗算部と、
    実数出力部と虚数出力部とを有する逆離散フーリエ変換部であって、前記演算結果を逆変換し、前記実数出力部より第1の出力信号系列を出力し、前記虚数出力部より第2の出力信号系列を出力する逆離散フーリエ変換部とを備える、信号処理装置。
  2. 入力信号系列の時間窓内の成分を変換し複素数のデータベクトルを出力する第1の離散フーリエ変換部と、
    実数入力部と虚数入力部とを有する第2の離散フーリエ変換部であって、前記実数入力部に第1の係数が入力され、かつ、前記虚数入力部に第2の係数が入力され、前記実数入力部と前記虚数入力部への入力を変換して複素数の係数ベクトルを出力する第2の離散フーリエ変換部と、
    前記データベクトルと前記係数ベクトルとを要素毎に複素乗算した演算結果を出力するベクトル乗算部と、
    実数出力部と虚数出力部とを有する逆離散フーリエ変換部であって、前記演算結果を逆変換し、前記実数出力部より第1の出力信号系列を出力し、前記虚数出力部より第2の出力信号系列を出力する逆離散フーリエ変換部とを備える、信号処理装置。
  3. 実数入力部と虚数入力部とを有する第1の離散フーリエ変換部であって、前記実数入力部に第1の入力信号系列における第1の時間窓内の成分が入力され、かつ、前記虚数入力部に第2の入力信号系列における第2の時間窓内の成分が入力され、前記実数入力部と前記虚数入力部への入力を変換して複素数のデータベクトルを出力する第1の離散フーリエ変換部と、
    前記データベクトルと係数ベクトルとを要素毎に複素乗算した演算結果を出力するベクトル乗算部と、
    実数出力部と虚数出力部を有する逆離散フーリエ変換部であって、前記演算結果を逆変換し、前記実数出力部より第1の出力信号系列を、前記虚数出力部より第2の出力信号系列を出力する逆離散フーリエ変換部とを備え、
    前記第1の時間窓と前記第2の時間窓とは時間軸上同じ位置にある、信号処理装置。
  4. 前記ベクトル乗算部は、さらに、
    前記データベクトルを、前記第1の入力信号系列に係る第1の成分と前記第2の入力信号系列に係る第2の成分とに分離するスプリッタと、
    第1係数ベクトルを供給する第1係数ベクトル供給部と、
    第2係数ベクトルを供給する第2係数ベクトル供給部と、
    前記第1の成分と前記第1係数ベクトルとを複素乗算する第1の複素乗算部と、
    前記第2の成分と前記第2係数ベクトルとを複素乗算する第2の複素乗算部と、
    前記第1の複素乗算部の乗算結果と前記第2の複素乗算部の乗算結果とを加算して前記演算結果とする加算器とを備える、請求項3記載の信号処理装置。
  5. 前記ベクトル乗算部は、さらに、
    第1係数ベクトルと第2係数ベクトルとに基づいて第3係数ベクトルを生成する第3係数ベクトル供給部と、
    第1係数ベクトルと第2係数ベクトルとに基づいて第4係数ベクトルを生成する第4係数ベクトル供給部と、
    前記データベクトルと前記第3係数ベクトルとを複素乗算する第1の複素乗算部と、
    前記データベクトルを反転させたデータの複素共役成分と前記第4係数ベクトルとを複素乗算する第2の複素乗算部と、
    前記第1の複素乗算部の乗算結果と前記第2の複素乗算部の乗算結果とを加算して前記演算結果とする加算器とを備える、請求項3記載の信号処理装置。
  6. 前記第1の離散フーリエ変換部の出力側と前記逆離散フーリエ変換部の入力側との少なくとも一方に、周波数領域たすきがけ演算部を設けた、請求項1から5記載の信号処理装置。
  7. 前記周波数領域たすきがけ演算部は、
    入力されるデータベクトルを、第1の成分と第2の成分とに分離するスプリッタを備え、
    前記周波数領域たすきがけ演算部は、前記スプリッタにより分離された第1の成分と第2の成分に関し、たすきがけ演算し、たすきがけ演算結果を出力する、請求項6記載の信号処理装置。
  8. 前記周波数領域たすきがけ演算部は、入力される第1のデータベクトルと、前記第1のデータベクトルを反転させ複素共役をとった第2のデータベクトルとを、要素毎に所定の係数を乗じて加算し、加算結果を出力する、請求項6記載の信号処理装置。
  9. 前記周波数領域たすきがけ演算部は、前記周波数領域たすきがけ演算部の過去の演算結果である第1のデータベクトルと、前記第1のデータベクトルを反転させ複素共役をとった第2のデータベクトルと、入力される第3のデータベクトルとを、要素毎に所定の係数を乗じて加算し、加算結果を出力する、請求項6記載の信号処理装置。
  10. 前記逆離散フーリエ変換部は、離散フーリエ変換部と反転部とにより構成される、請求項1から9記載の信号処理装置。
  11. 入力信号系列の時間窓内の成分を変換し複素数のデータベクトルを出力するステップと、
    前記データベクトルと係数ベクトルとを要素毎に複素乗算した演算結果を出力するステップと、
    前記演算結果を逆変換して複素数の逆変換結果を求め、前記逆変換結果の実数部を第1の出力信号系列とし、前記逆変換結果の虚数部を第2の出力信号系列とするステップとを備える、信号処理方法。
  12. 入力信号系列の時間窓内の成分を変換し複素数のデータベクトルを出力するステップと、
    実数部と虚数部とを有する複素数であって、前記実数部に第1の係数がセットされ、前記虚数部に第2の係数がセットされたものを入力し、複素数の係数ベクトルを出力するステップと、
    前記データベクトルと前記係数ベクトルとを要素毎に複素乗算した演算結果を出力するステップと、
    前記演算結果を逆変換して複素数の逆変換結果を求め、前記逆変換結果の実数部を第1の出力信号系列とし、前記逆変換結果の虚数部を第2の出力信号系列とするステップとを備える、信号処理方法。
  13. 離散フーリエ変換部の実数入力部に第1の入力信号系列における第1の時間窓内の成分を入力し、かつ、前記離散フーリエ変換部の虚数入力部に第2の入力信号系列における第2の時間窓内の成分を入力し、前記実数入力部と前記虚数入力部への入力を変換して複素数のデータベクトルを出力するステップと、
    前記データベクトルと係数ベクトルとを要素毎に複素乗算した演算結果を出力するステップと、
    前記演算結果を逆変換して複素数の逆変換結果を求め、前記逆変換結果の実数部を第1の出力信号系列とし、前記逆変換結果の虚数部を第2の出力信号系列とするステップとを備え、
    前記第1の時間窓と前記第2の時間窓とは時間軸上同じ位置にある、信号処理方法。
  14. 前記畳み込みを行うステップは、さらに、
    前記データベクトルを、前記第1の入力信号系列に係る第1の成分と前記第2の入力信号系列に係る第2の成分とに分離するステップと、
    第1係数ベクトルを供給するステップと、
    第2係数ベクトルを供給するステップと、
    前記第1の成分と前記第1係数ベクトルとを複素乗算して第1の乗算結果を求めるステップと、
    前記第2の成分と前記第2係数ベクトルとを複素乗算して第2の乗算結果を求めるステップと、
    前記第1の乗算結果と前記第2の乗算結果とを加算して前記演算結果とするステップとを備える、請求項13記載の信号処理方法。
  15. 前記畳み込みを行うステップは、さらに、
    第1係数ベクトルと第2係数ベクトルとに基づいて第3係数ベクトルを生成するステップと、
    第1係数ベクトルと第2係数ベクトルとに基づいて第4係数ベクトルを生成するステップと、
    前記データベクトルと前記第3係数ベクトルとを複素乗算して第3の乗算結果を求めるステップと、
    前記データベクトルを反転させたデータの複素共役成分と前記第4係数ベクトルとを複素乗算して第4の乗算結果を求めるステップと、
    前記第3の乗算結果と前記第4の乗算結果とを加算して前記演算結果とするステップとを備える、請求項13記載の信号処理方法。
  16. 前記係数ベクトルを記憶する係数ベクトル記憶部から前記係数ベクトルを読み出して複素乗算を行う、請求項11から15記載の信号処理方法。
  17. 前記データベクトルに周波数領域たすきがけ演算を施すステップをさらに備える、請求項11から16記載の信号処理方法。
  18. 前記周波数領域たすきがけ演算を施すステップは、
    前記データベクトルを第1の成分と第2の成分とに分離するステップと、
    第1の成分と第2の成分をたすきがけ演算し、たすきがけ演算結果を出力するステップとを含む、請求項17記載の信号処理方法。
  19. 前記周波数領域たすきがけ演算を施すステップは、
    入力される第1のデータベクトルと、前記第1のデータベクトルを反転させ複素共役をとった第2のデータベクトルとを、要素毎に所定の係数を乗じて加算し加算結果を出力するステップを含む、請求項17記載の信号処理方法。
  20. 前記周波数領域たすきがけ演算を施すステップは、
    過去の演算結果である第1のデータベクトルと、前記第1のデータベクトルを反転させ複素共役をとった第2のデータベクトルと、入力される第3のデータベクトルとを、要素毎に所定の係数を乗じて加算し加算結果を出力する、請求項17記載の信号処理方法。
JP2004178077A 2003-07-31 2004-06-16 信号処理装置及びその方法 Active JP4638695B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004178077A JP4638695B2 (ja) 2003-07-31 2004-06-16 信号処理装置及びその方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2003284058 2003-07-31
JP2004178077A JP4638695B2 (ja) 2003-07-31 2004-06-16 信号処理装置及びその方法

Publications (2)

Publication Number Publication Date
JP2005065231A true JP2005065231A (ja) 2005-03-10
JP4638695B2 JP4638695B2 (ja) 2011-02-23

Family

ID=34380245

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004178077A Active JP4638695B2 (ja) 2003-07-31 2004-06-16 信号処理装置及びその方法

Country Status (1)

Country Link
JP (1) JP4638695B2 (ja)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006340343A (ja) * 2005-05-09 2006-12-14 Sony Computer Entertainment Europe Ltd 音声処理
SG133451A1 (en) * 2005-12-30 2007-07-30 Oki Techno Ct Singapore Pte A processor and method for performing a fast fourier transform and/or an inverse fast fourier transform of a complex input signal
JP2009210642A (ja) * 2008-02-29 2009-09-17 Nippon Telegr & Teleph Corp <Ntt> 音響信号フィルタとそのフィルタリング方法と、そのプログラムと記録媒体
WO2010041381A1 (ja) * 2008-10-06 2010-04-15 三菱電機株式会社 信号処理回路
JP2012090079A (ja) * 2010-10-20 2012-05-10 Sony Corp 受信装置、受信方法、およびプログラム
JP2012137945A (ja) * 2010-12-27 2012-07-19 Shimizu Corp 畳み込み演算システム及び畳み込み演算プログラム
WO2013094308A1 (ja) * 2011-12-20 2013-06-27 日本電気株式会社 ディジタルフィルタ回路およびディジタルフィルタ処理方法
WO2013125173A1 (ja) * 2012-02-20 2013-08-29 日本電気株式会社 ディジタルフィルタ回路、ディジタルフィルタ処理方法及びディジタルフィルタ処理プログラム記憶媒体
JP2015502597A (ja) * 2011-10-27 2015-01-22 エルエスアイ コーポレーション Firフィルタリングのためのベクトル畳み込み関数を含む命令セットを有するベクトル・プロセッサ
JP2015210637A (ja) * 2014-04-25 2015-11-24 日本電信電話株式会社 高速畳込近似装置、高速畳込近似方法、プログラム
KR20160098657A (ko) * 2015-02-10 2016-08-19 주식회사 쏠리드 로우 리소스 복소수 연산 필터
CN107766845A (zh) * 2017-11-20 2018-03-06 苏州蓝珀医疗科技股份有限公司 一种基于光线震动传感器的呼吸及bcg信号提取方法
US10334389B2 (en) 2013-12-12 2019-06-25 Socionext Inc. Audio reproduction apparatus and game apparatus
US10855255B2 (en) 2015-12-02 2020-12-01 Nec Corporation Digital filter, filter processing method, and recording medium

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59178809A (ja) * 1983-03-30 1984-10-11 Oki Electric Ind Co Ltd オ−デイオ用デジタルイコライザアンプ

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59178809A (ja) * 1983-03-30 1984-10-11 Oki Electric Ind Co Ltd オ−デイオ用デジタルイコライザアンプ

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006340343A (ja) * 2005-05-09 2006-12-14 Sony Computer Entertainment Europe Ltd 音声処理
SG133451A1 (en) * 2005-12-30 2007-07-30 Oki Techno Ct Singapore Pte A processor and method for performing a fast fourier transform and/or an inverse fast fourier transform of a complex input signal
US7818360B2 (en) 2005-12-30 2010-10-19 Oki Techno Centre (Singapore) Pte Ltd. Processor and method for performing a fast fourier transform and/or an inverse fast fourier transform of a complex input signal
JP2009210642A (ja) * 2008-02-29 2009-09-17 Nippon Telegr & Teleph Corp <Ntt> 音響信号フィルタとそのフィルタリング方法と、そのプログラムと記録媒体
US8583717B2 (en) 2008-10-06 2013-11-12 Mitsubishi Electric Corporation Signal processing circuit
WO2010041381A1 (ja) * 2008-10-06 2010-04-15 三菱電機株式会社 信号処理回路
JP2012090079A (ja) * 2010-10-20 2012-05-10 Sony Corp 受信装置、受信方法、およびプログラム
JP2012137945A (ja) * 2010-12-27 2012-07-19 Shimizu Corp 畳み込み演算システム及び畳み込み演算プログラム
JP2015502597A (ja) * 2011-10-27 2015-01-22 エルエスアイ コーポレーション Firフィルタリングのためのベクトル畳み込み関数を含む命令セットを有するベクトル・プロセッサ
WO2013094308A1 (ja) * 2011-12-20 2013-06-27 日本電気株式会社 ディジタルフィルタ回路およびディジタルフィルタ処理方法
JPWO2013094308A1 (ja) * 2011-12-20 2015-04-27 日本電気株式会社 ディジタルフィルタ回路およびディジタルフィルタ処理方法
US9509282B2 (en) 2011-12-20 2016-11-29 Nec Corporation Digital filter circuit and digital filter processing method
WO2013125173A1 (ja) * 2012-02-20 2013-08-29 日本電気株式会社 ディジタルフィルタ回路、ディジタルフィルタ処理方法及びディジタルフィルタ処理プログラム記憶媒体
JPWO2013125173A1 (ja) * 2012-02-20 2015-07-30 日本電気株式会社 ディジタルフィルタ回路、ディジタルフィルタ処理方法及びディジタルフィルタ処理プログラム
US9571066B2 (en) 2012-02-20 2017-02-14 Nec Corporation Digital filter circuit, digital filter processing method and digital filter processing program storage medium
US10334389B2 (en) 2013-12-12 2019-06-25 Socionext Inc. Audio reproduction apparatus and game apparatus
JP2015210637A (ja) * 2014-04-25 2015-11-24 日本電信電話株式会社 高速畳込近似装置、高速畳込近似方法、プログラム
KR20160098657A (ko) * 2015-02-10 2016-08-19 주식회사 쏠리드 로우 리소스 복소수 연산 필터
US10855255B2 (en) 2015-12-02 2020-12-01 Nec Corporation Digital filter, filter processing method, and recording medium
CN107766845A (zh) * 2017-11-20 2018-03-06 苏州蓝珀医疗科技股份有限公司 一种基于光线震动传感器的呼吸及bcg信号提取方法

Also Published As

Publication number Publication date
JP4638695B2 (ja) 2011-02-23

Similar Documents

Publication Publication Date Title
JP4638695B2 (ja) 信号処理装置及びその方法
JP4814344B2 (ja) メディア信号の処理方法及び装置
CN106465033B (zh) 用于处理频域中的信号的设备和方法
US7502816B2 (en) Signal-processing apparatus and method
EP2829082B1 (en) Method and system for head-related transfer function generation by linear mixing of head-related transfer functions
KR101512995B1 (ko) 공간 디코더 유닛, 공간 디코더 장치, 오디오 시스템, 한 쌍의 바이노럴 출력 채널들을 생성하는 방법
WO2003096746A1 (fr) Appareil audio et son programme de reproduction
EP2708041B1 (en) Apparatus and method and computer program for generating a stereo output signal for providing additional output channels
JP4951985B2 (ja) 音声信号処理装置、音声信号処理システム、プログラム
EP2730026B1 (en) Low-delay filtering
EP4007310A1 (en) Method of processing an input audio signal for generating a stereo output audio signal having specific reverberation characteristics
JP5428481B2 (ja) 帯域分割フィルターおよびプログラム
Haghparast et al. A computationally efficient coefficient update technique for Lagrange fractional delay filters
JP2000308199A (ja) 信号処理装置および信号処理装置の製造方法
Franck Efficient frequency-domain filter crossfading for fast convolution with application to binaural synthesis
JP5022577B2 (ja) Firフィルタ演算器
JP2007202020A (ja) 音声信号処理装置、音声信号処理方法、プログラム
Wang et al. Blind preprocessing method for multichannel feedforward active noise control
Jang et al. Virtual Sound Algorithm for Wide Stereo Sound Stage
Haddad et al. On IIR Filters and Convergence Acceleration for Convolutive Blind Source Separation
JPH1051881A (ja) スピーカの歪み除去装置
JP2000333299A (ja) サラウンド音響信号生成装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070420

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100428

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100616

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

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

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

Free format text: PAYMENT UNTIL: 20131203

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4638695

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150