JP2005215058A5 - - Google Patents

Download PDF

Info

Publication number
JP2005215058A5
JP2005215058A5 JP2004018606A JP2004018606A JP2005215058A5 JP 2005215058 A5 JP2005215058 A5 JP 2005215058A5 JP 2004018606 A JP2004018606 A JP 2004018606A JP 2004018606 A JP2004018606 A JP 2004018606A JP 2005215058 A5 JP2005215058 A5 JP 2005215058A5
Authority
JP
Japan
Prior art keywords
sample value
value sequence
fft
represented
processing
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.)
Pending
Application number
JP2004018606A
Other languages
English (en)
Other versions
JP2005215058A (ja
Filing date
Publication date
Application filed filed Critical
Priority to JP2004018606A priority Critical patent/JP2005215058A/ja
Priority claimed from JP2004018606A external-priority patent/JP2005215058A/ja
Publication of JP2005215058A publication Critical patent/JP2005215058A/ja
Publication of JP2005215058A5 publication Critical patent/JP2005215058A5/ja
Pending legal-status Critical Current

Links

Description

FFTを用いた畳み込み演算方法
本発明は、特性が、有限長のインパルス応答の標本値列{hn}で表現されるシステムに、標本値列{xn}で表現される信号が入力された場合の出力{yn}を、FFTを用いた畳み込み演算によって求める方法に関する発明である。
従来より、設計段階の劇場やコンサートホール等の音場における受聴点での音の予測には、想定した位置に発音源(スピーカ等)があったと仮定して、指定した受聴点での音を連続畳み込み演算によって求めることによって行われている。(例えば、特許文献1参照)
特開2001−100765号公報
そして、受聴点での音{yn}を計算する場合には、音源信号を標本値列{xn}で表現し、音源から受聴点までの音の伝搬経路のインパルス応答特性を標本値列{hn}として、畳み込み演算yn=xn*hnとして計算することができる。
連続畳み込みの計算には、通常FFTを用いたオーバーラップ加算法もしくはオーバーラップ保留法が採用される。これは、長い入力信号とインパルス応答との畳み込みに際して、入力信号を小区間に分割し、各小区間とインパルス応答との畳み込みを計算しておいて、それらの出力結果を統合するものである。
ところが、これらの方法では、FFTのサイズとしてはインパルス応答の標本点数と入力信号の小区間の標本点数の和(厳密にはそれより1点少なくてもよい。)に相当する配列(メモリ)が必要である。
例えば、可聴域全体の扱うためにサンプリングレートを48ksamples/sec(但しk=103、以下同様)とし、残響の長い部屋での受聴信号の計算をする場合、インパルス応答の長さを5秒とすると、その標本値列の長さDkは48k×5=240k点となり、これに入力の適当な小区間の標本点数dxを加えて2の整数べき乗の値を探すと、dx=16kと抑えてもFFTのサイズN=216=256kとなる。
小規模な演算装置(市販のパソコン等)を用いた場合には、このサイズの複素配列を実メモリ上で確保して計算することは難しくなる。
従来のオーバーラップ処理の問題点
特性が、有限長のインパルス応答の標本値列{hn}で表現されるシステムに、標本値列{xn}で表現される信号が入力された場合の出力{yn}を、FFTを用いた畳み込み演算によって計算する場合を考える。
標本値列{hn}と標本値列{xn}の畳み込み演算は,通常時間領域での直接計算では手数がかかるので,それぞれのDFT(離散的フーリエ変換){Hk}と{Xk}を求めて、それらの積Yk=Xk×Hkを周波数領域で計算し、その逆DFTとして{yn}を求めるのが普通である。
ただし、通常入力信号{xn}は非常に長く,{Xk}を一括計算することは不可能であるので,連続処理するためには,従来{xn}を適当な長さの小区間に区切って順次取り込んで逐次処理(オーバーラップ加算あるいはオーバーラップ保留)によって長い{xn}に対処していた。
この場合,FFTの処理には{hn}の長さDhと{xn}の小区間の長さdxの長さを足したサイズ(あるいはアルゴリズムを工夫したとしても,少なくともその半分)の複素配列を主メモリ上に用意する必要があった。しかし,{xn}に加えてインパルス応答{hn}も長い場合,主メモリの大きいスーパーコンピュータを使えば計算は可能であるが,小規模な演算装置(出来合いのFFTハードウェアや通常規模のパソコン等)しかない場合には,従来の手法では処理できないという問題があった。
そこで、本発明は、小規模な演算装置(通常規模のパソコン等)を用いて、{xn}に加えてインパルス応答{hn}が長い場合でも、無限に長い入力との連続畳み込みを可能にする技術を提供することを目的としてなされたものである。
本発明にかかるFFTを用いた畳み込み演算方法の請求項1では、
特性が、有限長のインパルス応答の標本値列{hn}で表現されるシステムに、標本値列{xn}で表現される信号が入力された場合の出力{yn}を、FFTハードウェアを用いた畳み込み演算を行う方法において、
前記標本値列{xn}を所定の条件のもとで小区間に分割するとともに、
前記標本値列{hn}も所定の条件のもとで小区間に分割し、
それぞれの小区間ずつ、オーバーラップ加算法もしくはオーバーラップ保留法によって、
分割処理するように構成した。
請求項2の発明では、
特性が、有限長のインパルス応答の標本値列{hn}で表現されるシステムに、標本値列{xn}で表現される信号が入力された場合の出力{yn}を、サイズNのFFTハードウェアを用いた畳み込み演算を行う方法において、
前記標本値列{xn}を所定の条件のもとで小区間に分割する手順と、
標本値列{hn}も前から順にdhの長さの小区間に分割(前から順に{h(1) n}, {h(2) n}, {h(3) n}・・・・とし,最後の標本点数はちょうどdhでなくても,dh以下ならばよい)し,N= dx+dh−1となるようにする手順と、
前記所定の条件のもとで,N点FFTを使って,通常のオーバーラップ処理によって{xn}*{h(i) n}を各 i について求める手順と、
最終的にそれらをすべてのiについて、{xn}*{h(i) n}の始点をdh×(i−1)ずつずらせて加算する手順(オーバーラップ加算法の場合)と、
を含むように構成した。
本発明においては、入力信号の標本値列{xn}およびインパルス応答の標本値列{hn}が長い場合でも、前記標本値列{xn}だけでなく前記標本値列{hn}も所定の条件のもとで小区間に分割して畳み込み処理(2重オーバーラップ法)することによって、主メモリの大きいスーパーコンピュータを使わずに、小規模な演算装置(出来合いのFFTハードウェアや通常規模のパソコン等)を使って処理解析できるようになった。
以下に、本発明にかかるFFTを用いた畳み込み演算方法を、その実施の形態を示した図面に基づいて詳細に説明する。
本発明の最良の形態としては、通常規模の市販のパソコンを用いて、本発明の方法に基づいた処理プログラムによって以下の通りに実行することによって行う。
このとき、図6に示したように、音源信号を表現する標本値列{xn}を記憶した外部の第1記憶手段A1と、第1記憶手段に記憶された前記標本値列{xn}を所定の条件のもとで小区間に分割して順次出力する第1出力手段B1と、有限長のインパルス応答を表現する標本値列{hn}を記憶した外部の第2記憶手段A2と、第2記憶手段に記憶された前記標本値列{hn}を前から順にdhの長さの小区間に分割(前から順に{h(1)n}, {h(2)n}, {h(3)n}・・・・とし,最後の標本点数はちょうどdhでなくても,dh以下ならばよい)して順次出力する第2出力手段B2と、前記所定の条件のもとで,前記第1出力手段からの出力と第2出力手段からの出力を、N点FFTを使って,通常のオーバーラップ処理によって{xn}*{h(i) n}を各 i について求める演算手段Cと、最終的にそれらをすべてのiについて、{xn}*{h(i) n}の始点をdh×(i−1)ずつずらせて加算する加算手段Dとを、前記パソコンのハードウェアと処理プログラムによって実現する。
本発明に用いるFFTについて、
定義に基づいてN点DFTを行うのに要していた計算量がN2のオーダであったのに対し、FFTのアルゴリズムはこれをNlog2Nのオーダに抑えるものである。
FFTは標本点数が2の整数べき乗である場合が最も効率が高く,与えられた標本点数が2の整数べき乗でない場合にも,適当な個数の0を標本値列に付加して、処理対象の標本点数を強制的に2の整数べき乗にすることが可能である。アルゴリズムとしてはNが素数の整数べき乗の積で表される場合に対するアルゴリズムがあるが,ここではNが2の整数べき乗である場合のものを用いる。
本発明に用いる2重オーバーラップ処理について
(1)オーバーラップ加算法
畳み込みをする場合、インパルス応答の標本値列{hn}は比較的短いが入力の標本値列{xn}が長い場合には、標本値列{xn}を少しずつ取り込んで逐次処理を行わなければならない。
第i番目の区間の標本値列を{xn}、i=1、1、・・・・、Iとすると、畳み込みの式は以下のようになる。
Figure 2005215058
ただし、xk=0 for k≦0、hk=0 for k≦0,k>Dh(Dhの長さは有限とする。)
{xn}をdx点ごとの小区間に区切る。小区間の番号をiとする、
Figure 2005215058
とすると
Figure 2005215058
ただし{xn}の長さは事実上無限でもかまわないが、ここではdx×Iとしておく。Iは区間の個数。i=1,2,・・・I、n=1,2,・・・dx
(2)2重オーバーラップ処理
上と同様に{hn}をdh点ごとの小区間に区切り,
Figure 2005215058
とすると
Figure 2005215058
ただし,Jは区間の個数、j=1,2,・・・J、n=1,2,・・・dh
このようにすると,
Figure 2005215058
として求めることができる。
即ちサイズN≧dx+dh−1のFFTを使うとして、{xk}k=1,2,・・・Dxをdx点ずつのI個の区間に区切って{x(i) n}とすると、{hk}k=1,2,・・・Dhをdh点ずつのJ個の区間に区切り{h(j) n}とする。
{h(j) n}と{xk}のコンボリューション{y(j) n}を求めておき
Figure 2005215058
として
Figure 2005215058
として{yk}k=1、2、・・・・Dx+Dh−1を求めることになる。
2重オバーラップの処理の流れを図1に示す。但し,yのsuperfixは{hk}の第j区間と{xk}の第i区間のコンボリューションを示し、これをy(ji) kと書くことにする
具体的な2重オーバーラップ処理の例
100標本点の入力信号の標本値列{xn}と60標本点のインパルス応答の標本値列{hn}の畳み込み例を示す。
(1)一括処理について通常の計算は、N=256点FFTを使って一括処理をする。
ただし,ここでは<F>はFFT、<F-1>は逆FFTを表わすオペレータである。
Figure 2005215058
(2) 2重オーバーラップ処理(オーバーラップ加算を用いる)N=32点のFFTを用いてDx=100点とDh=60点の畳み込みを行うこととする。60点から成る標本値列{hn}を20点ずつの3部分に分割し、100点から成る標本値列{xn}を13点ずつの8部分に分割する。これで、N=dx(13)+dh(20)−1=32が成立していることになる。最後の処理フレームでは余った部分には0を付加する。
Figure 2005215058
{xn}の第i区間と{hn}の第j区間の畳み込みを{y(ji) k}とする。
つまり
Figure 2005215058
とおくことにすると,{hn}の第j区間と{xn}全体に対する出力は
Figure 2005215058
となる。{hn}全体による{xn}全体に対する出力は、これらすべてを加えて
Figure 2005215058
として求められる。
式(11)による計算結果が一括処理で求めた{yn}と一致していることを図2、3に示す。
計算負荷について
長さDxの入力標本列と長さ{Dh}のインパルス応答標本列の畳み込みをFFTを用いて計算する場合の計算手数の比を種々の処理仕様について比較したものを示す。
ここでDx=10,000,000、Dh=240,000とする。
これは標本化速度を48ksamples/secとした時に,3分余りの入力信号に5秒のインパルス応答を畳み込むことに相当する。
処理仕様は、FFTの標本点数をNとし,I=1、J=1、N>Dx+Dh−1とした場合の手数を基準とする。
(1)基準手数
I=1、J=1の条件下ではDx+Dh≒10MなのでNはDx+Dhより大きい2のべき乗をとる必要があるのでN=16M(=224)となる。
手数の大部分は、FFTの手数であるので、基準となる積和計算の手数C0は、C0=N0log20=16×106×24≒400Mとなる。
(2)通常のオーバーラップ加算の場合の積和計算の手数
{xn}の分割数をIとするとNがDhよりも十分大きい場合は、N≒N0/Iとできる。具体的にはN=N0/I+Dhとなり,この場合の手数CsはほぼCs=(N0/I×log2(N0/I))×Iとなる。
ただし,NがDhと同程度になると、Dx/I(=dx)+Dhであることを考慮しなければならない。
そうすると入力信号の分割はDxを長さN−Dhの小区間に分割することにより、分割数はI=dx/(N−Dh)。
従って、Cs=(N0/I×log2(N0/I))×dx/(N−Dh)となり、Cs=(N0/I×log2(N0/I))×Iよりは増えてくる。
図4に、NがDhより十分大きいときのCs(点線)と,Dhを考慮したCs(実線)の例を示す。点線と実線の差はNとDhの関係によって決まる。
2重オーバーラップ加算の場合の積和計算の手数
I=Dx/dx,J=Dh/dhでN=dx+dh−1点FFTをIJ回行うとき、
N=Dx/I+Dh/Jとすると、そのときの手数CDは、
Figure 2005215058
となる。
図5で、I=1、J=1が一括処理の場合をJ=1の線上が通常のオーバーラップ処理の場合をそれぞれ表す。これから分割数を増やすほど計算負荷は軽くなる傾向にあることが分かる。
以上のように、入力信号およびインパルス応答が長い場合に畳み込みを行う際、主メモリの大きいスーパーコンピュータを使えば計算は可能であるが、小規模な演算装置(出来合いのFFTハードウェアや市販のパソコン等)しかない場合には,従来の手法では処理できなかったという問題を。2重オーバーラップ法によって解決できることを示した。よって,小規模な演算装置(FFT専用のハードウェアや市販のパソコン等)でも十分に、入力信号およびインパルス応答が長い場合にも対応できるのである。
本発明にかかるFFTを用いた畳み込み演算方法の実施の形態の処理フローを示した図である。 本発明の実施例における処理例の一部である。(図3と合わせて全体) 本発明の実施例における処理例の一部である。 通常のオーバーラップ加算法の場合の手数を見積もった図である。 本発明による2重オーバーラップ加算法の場合の手数を見積もった図である。 本発明に用いる畳み込み演算の処理フローを示した図である。
符号の説明
A1 第1記憶手段
B1 第1出力手段
A2 第2記憶手段
B2 第2出力手段
C 演算手段
D 加算手段

Claims (2)

  1. 特性が、有限長のインパルス応答の標本値列{hn}で表現されるシステムに、標本値列{xn}で表現される信号が入力された場合の出力{yn}を、FFTハードウェアを用いて畳み込み演算を行う方法において、
    前記標本値列{xn}を所定の条件のもとで小区間に分割するとともに、
    前記標本値列{hn}も所定の条件のもとで小区間に分割し、
    それぞれの小区間ずつ、前記FFT処理ハードウェアを用いて、オーバーラップ加算法もしくはオーバーラップ保留法によって、分割処理することを特徴とするFFTを用いた畳み込み演算方法。
  2. 特性が、有限長のインパルス応答の標本値列{hn}で表現されるシステムに、標本値列{xn}で表現される信号が入力された場合の出力{yn}を、サイズNのFFT処理が可能なFFTハードウェアを用いて畳み込み演算を行う方法において、
    前記標本値列{xn}を所定の条件のもとで小区間に分割する手順と、
    標本値列{hn}も前から順にdhの長さの小区間に分割(前から順{h(1) n}, {h(2) n},{h(3) n}・・・・とし,最後の標本点数はちょうどdhでなくても,dh以下ならばよい。)し,N=dx+dh−1となるようにする手順と、
    前記所定の条件のもとで,N点FFTを使って,通常のオーバーラップ処理によって
    {xn}*{h(i) n}を各 i について求める手順と、
    最終的にそれらをすべてのiについて、{xn}*{h(i) n}の始点をdh×(i−1)ずつずらせて加算する手順と、
    を含むことを特徴とするFFTを用いた畳み込み演算方法。
JP2004018606A 2004-01-27 2004-01-27 Fftによるインパルス応答計算方法 Pending JP2005215058A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004018606A JP2005215058A (ja) 2004-01-27 2004-01-27 Fftによるインパルス応答計算方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004018606A JP2005215058A (ja) 2004-01-27 2004-01-27 Fftによるインパルス応答計算方法

Publications (2)

Publication Number Publication Date
JP2005215058A JP2005215058A (ja) 2005-08-11
JP2005215058A5 true JP2005215058A5 (ja) 2006-08-17

Family

ID=34903068

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004018606A Pending JP2005215058A (ja) 2004-01-27 2004-01-27 Fftによるインパルス応答計算方法

Country Status (1)

Country Link
JP (1) JP2005215058A (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012137945A (ja) * 2010-12-27 2012-07-19 Shimizu Corp 畳み込み演算システム及び畳み込み演算プログラム
JP6724828B2 (ja) 2017-03-15 2020-07-15 カシオ計算機株式会社 フィルタ演算処理装置、フィルタ演算方法、及び効果付与装置
US11227214B2 (en) * 2017-11-14 2022-01-18 Advanced Micro Devices, Inc. Memory bandwidth reduction techniques for low power convolutional neural network inference applications
JP7147804B2 (ja) 2020-03-25 2022-10-05 カシオ計算機株式会社 効果付与装置、方法、およびプログラム

Similar Documents

Publication Publication Date Title
EP3166105B1 (en) Neural network training apparatus and method
EP3142106B1 (en) Apparatus and method for generating acoustic model, and apparatus and method for speech recognition
US20150242180A1 (en) Non-negative Matrix Factorization Regularized by Recurrent Neural Networks for Audio Processing
US20160241346A1 (en) Source separation using nonnegative matrix factorization with an automatically determined number of bases
US11544526B2 (en) Computing device and method
Birpoutsoukis et al. Efficient multidimensional regularization for Volterra series estimation
JP4796339B2 (ja) メモリの読み出し及び書き込み方法
Adámek et al. GPU fast convolution via the overlap-and-save method in shared memory
Záviška et al. Revisiting synthesis model in sparse audio declipper
US8787422B2 (en) Dual fixed geometry fast fourier transform (FFT)
Queffélec et al. On Bernstein’s inequality for polynomials
JP2005215058A5 (ja)
JP2005215058A (ja) Fftによるインパルス応答計算方法
CN102541813B (zh) 一种多粒度并行fft蝶形计算的方法及相应的装置
JP2011170190A (ja) 信号分離装置、信号分離方法、および、信号分離プログラム
US20220092392A1 (en) Audio Representation for Variational Auto-encoding
US11437023B2 (en) Apparatus and method with speech recognition and learning
US11900902B2 (en) Deep encoder for performing audio processing
JP5172536B2 (ja) 残響除去装置、残響除去方法、コンピュータプログラムおよび記録媒体
US6907439B1 (en) FFT address generation method and apparatus
US8868631B2 (en) Method for processing a signal, in particular a digital audio signal
Muqri et al. A Taste of Java: Discrete and Fast Fourier Transforms
JP7156064B2 (ja) 潜在変数最適化装置、フィルタ係数最適化装置、潜在変数最適化方法、フィルタ係数最適化方法、プログラム
JP2022045086A (ja) 残響を求めるためのシステム
JP2020027245A (ja) 情報処理方法および情報処理装置