【解決手段】入力信号に窓関数を乗算してフーリエ変換する。そして、そのフーリエ変換して得た特定の周波数ビンの出力と、その周波数ビンの近傍の周波数ビンの出力との振幅の比を算出する。その比算出結果から、入力信号に含まれる正弦成分の周波数を検出する。得られた入力信号に含まれる正弦成分の周波数から、正弦成分の振幅及び位相を検出する。
前記窓関数は、窓長の時間軸中点を時刻0とする実数値偶関数で窓の両端で値が小さくなる特性を持つ関数であり、前記窓長を有限に設定することで、前記フーリエ変換部が短時間フーリエ変換を行う
請求項1または2に記載の信号中に含まれる正弦成分抽出装置。
前記フーリエ変換部が変換して得た周波数ビンの出力の位相として、第1の正弦成分の位相と第2の正弦成分の位相が含まれ、それぞれの正弦成分の位相が別の複数の周波数ビンの出力から検出されたとき、前記比算出部は、それぞれの位相の2つの周波数ビンの出力の比を算出して、入力信号に含まれる複数の正弦成分を検出する
請求項1〜3に記載の信号中に含まれる正弦成分抽出装置。
前記比算出部が比を算出する周波数ビンは、前記フーリエ変換部が変換して得た周波数ビンの出力の内の極大を検出した周波数ビンと、その極大を検出した周波数ビンの近傍の周波数ビンで位相が等しいあるいはほぼ等しいビンである
請求項1〜3のいずれかに記載の信号中に含まれる正弦成分抽出装置。
【発明を実施するための形態】
【0012】
[1.実施の形態例の装置構成]
図1に、本発明の実施の形態例の正弦成分抽出装置の構成例を示す。
入力端子11に得られる入力信号が、乗算器13に供給される。
【0013】
乗算器13は、入力信号に、窓関数入力端子12に得られる窓関数をずらしながら乗算する。窓関数は後段の離散フーリエ変換回路14でのフーリエ変換用の窓関数である。窓関数は実数値偶関数である。
乗算器13で窓関数が乗算された入力信号は、フーリエ変換部である離散フーリエ変換回路14に供給される。離散フーリエ変換回路14は、窓関数が乗算された入力信号を短時間フーリエ変換する。離散フーリエ変換に高速フーリエ変換を用いることができる。
【0014】
離散フーリエ変換回路14がフーリエ変換した信号は、記憶部15に供給され記憶される。記憶部15は、離散フーリエ変換回路14がフーリエ変換した信号を、フーリエ変換によって生成された周波数ビンごとに記憶する。
【0015】
そして、記憶部15に記憶された信号は、正弦成分検出部16に供給され、正弦成分を含むビンが検出される。
入力端子11に得られる入力信号中に正弦成分が複数あり、それらの周波数が互いに十分離れていて、一つのビンに複数の正弦成分が現れない場合に、正弦成分検出部16は、記憶部15で記憶された周波数ビンの信号の内で、振幅が極大、すなわち、近傍のビンの出力の振幅よりも大きく、かつ、位相が同相、すなわち、近傍のビンの出力の位相と等しい周波数ビンを検出する。例えば、正弦成分検出部16が周波数ビンkを検出したとき、周波数ビンkに近接した周波数ビンk−1,k−2,…と周波数ビンk+1,k+2,…の信号の振幅は周波数ビンkの信号の振幅より小さく、これらの近接した周波数ビンの信号の位相は周波数ビンkの信号の位相と等しい。周波数ビンkに近接した周波数ビンk−1,k−2,…と周波数ビンk+1,k+2,…の範囲は窓関数に依存して決まる。
【0016】
入力端子11に得られる入力信号中に正弦成分が複数あり、周波数が互いに数ビン程度近接している正弦成分がある場合、これらの周波数の間に中心周波数を持つビンの信号の出力には、これらの正弦成分をフーリエ変換した信号の和が表れる。したがって、このビンの信号の位相は、この近傍のビンの信号の位相とは必ずしも同位相にはならない。しかし、低い周波数の正弦成分に最も近いビンに対して、そのビンより低い周波数のビンでは、高い周波数の正弦成分の影響は少なくなり、それらのビン間の位相は同相になる。同様に、高い周波数の正弦成分に最も近いビンに対しても、そのビンより高い周波数のビンでは、低い周波数の正弦成分の影響は少なくなり、それらのビン間の位相は同相になる。
具体的には、ある特定の周波数ビンで第1の正弦成分の位相の信号を検出し、その特定の周波数ビンに近接した周波数ビンで第1の正弦成分の位相とほぼ同じ位相の信号を検出したとき、それらの周波数ビンの信号を記憶部15から読み出して、比算出部17に供給する。また、これらの読み出した周波数ビンとは別の周波数ビンから第2の正弦成分の位相の信号を検出し、第2の正弦成分の位相の信号を検出した周波数ビンに隣接した周波数ビン(又は近傍の周波数ビン)で第2の正弦成分の位相とほぼ同じ位相の信号を検出したとき、その2つの周波数ビンの信号を記憶部15から読み出して、比算出部17に供給する。
【0017】
正弦成分検出部16の指示で記憶部15から読み出された特定の周波数ビンとその近接した周波数ビンの信号は、比算出部17に供給される。比算出部17は、供給される特定の周波数ビンに対するその近接した周波数ビンの出力の振幅の比をそれぞれ算出する。比算出部17での算出結果は、周波数検出部18に供給され、特定の周波数ビンに対するその近傍の周波数ビンの出力との比の算出結果から入力信号に含まれる正弦成分の周波数を抽出し、出力端子19から出力する。特定の周波数ビンに対するその近接した周波数ビンの出力の振幅の比を算出する数式の例については後述する。
【0018】
また、周波数検出部18が抽出した正弦成分の周波数は、正弦成分算出部20に供給される。正弦成分算出部20は、特定の周波数ビンの信号と正弦成分の周波数から、窓関数の特性を利用して、正弦成分の振幅と位相を算出して、その振幅値Aと位相値φを振幅・位相出力端子21に供給する。
【0019】
[2.実施の形態例の処理工程]
次に、
図2のフローチャートを参照して、実施の形態例の正弦成分抽出装置で行われる処理の流れを説明する。
まず、離散フーリエ変換回路14が、窓関数が乗算された入力信号の短時間フーリエ変換処理を行う(ステップS21)。この短時間フーリエ変換処理のために乗算された窓関数は、窓長の時間軸中点を時刻0とする実数値偶関数である。また、離散フーリエ変換回路14は、乗算器13で入力信号に窓掛けをすることによって短時間フーリエ変換を行うことができる。
そして、正弦成分検出部16は、正弦成分を含む周波数ビンを検出する(ステップS22)。短時間フーリエ変換で得た周波数ビンの出力の振幅が近傍のビンの出力の振幅よりも大きく、かつ、近傍のビンの出力の位相と等しい周波数ビンがあるか否かを判断する。入力した信号に近接した正弦成分が含まれるときは、振幅が近傍のビンの出力の振幅よりも大きくても、位相が近傍のビンの出力の位相と等しくなるとは限らないが、その場合には、近傍のビン間で位相が等しいビンを検出する。
正弦成分を含む周波数ビンが検出できない場合には、処理を終了する。
【0020】
次に、比算出部17が、ステップS22で選ばれた周波数ビン間の出力の振幅の比を算出する(ステップS23)。周波数検出部18がその比の値から正弦成分の周波数fを抽出する(ステップS24)。さらに、正弦成分算出部20が、周波数検出部18で抽出した正弦成分の周波数f、窓関数の特性、および、正弦成分を含む周波数ビンの出力から振幅Aと位相φを算出する(ステップS25)。
次に、ステップS22の判断に戻り、正弦成分検出部16が、別の正弦成分を含む周波数ビンがあるか否かを判断する。
【0021】
[3.具体的な検出状態の例]
次に、実施の形態例で示した処理を行う具体的な例について説明する。
まず、入力端子11に得られる入力信号x(t)が、以下の[数1]式で示すように、振幅Aと初期位相φを持つ周波数fの正弦成分であるとする。
【0023】
この正弦成分に対して、窓関数w(t)を用いて以下に示す[数2]式で定義される短時間フーリエ変換を行う。ここで、Lは窓長であり、窓関数w(t)は、窓長Lの時間軸中点を時刻0とする実数値偶関数である。X(k,t)は、短時間フーリエ変換で得られたk番目の周波数ビンの出力であり、W(ξ)は、[数3]式で定義される窓関数w(t)のフーリエ変換である。(厳密には W(-ξ)が窓関数w(t)のフーリエ変換であるが、窓関数w(t)が実数値偶関数であることから、W(ξ)は W(-ξ)等しい。)[数2]式と[数3]式から[数4]式に示されるように,信号x(t)のW(fL−k)倍が、k番目の周波数ビンの出力X(k,t)である。
【0027】
窓関数w(t)は、実数値で偶関数であることから、[数3]式のようにW(ξ)を定義すると、この値W(ξ)は実数になる。
したがって、[数4]式より、周波数ビンkに依らずにX(k,t)の位相はx(t)の位相に等しく、振幅はx(t)のW(fL−k)倍である。
【0028】
例えば、非特許文献2に示されているnタームの窓では、窓関数w(t)は[数5]式のように定義される。
【0029】
【数5】
この[数5]式の窓関数を用いたとき、W(ξ)は、以下の[数6]式で表される。
【0031】
非特許文献2に示されているように、[数3]式で定義されるW(ξ)は矩形窓を除きメインローブの幅が2ビン以上ある。例えばハミング(Hamming)窓やハニング(Hanning)窓などの2タームの窓では、前後2ビン、合計4ビンの幅を持ち、ミニマム3ターム(Minimum 3-term)窓などの3タームの窓では、前後3ビン、合計6ビンの幅を持つ。また、一般にnタームの窓では、前後nビン、合計2nビンの幅を持つ。
【0032】
上記のようにnタームの窓関数のメインローブの幅が2nビンであることから、正弦成分の周波数が(k−n)/L<f<(k+n)/Lの範囲(ξ=fL−kと置くと、−n<ξ<nの範囲)にあれば、周波数ビンkのメインローブの中に正弦成分x(t)の周波数fがあり、周波数ビンkの出力X(k,t)に正弦成分x(t)が現れる。
また、このことは周波数fの正弦成分の短時間フーリエ変換は、fL−n<k<fL+nの範囲の周波数ビンkのそれぞれのメインローブの中にあり、正弦成分x(t)はそれぞれの周波数ビンkの出力X(k,t)にも現れる。
【0033】
図3に、窓関数がミニマム3ターム(Minimum 3-term)窓の場合のW(ξ)の例を示す。
図3において横軸はξの値であり、縦軸がデシベル値である。この
図3から分かるように、ミニマム3ターム窓を用いたとき、周波数ビンのサイドローブは、―71.48dB以下に抑えられていることが分かる。ミニマム4ターム窓では、サイドローブはー98.17dB以下に抑えられる。
図4は、窓関数がミニマム3ターム(Minimum 3-term)窓の場合の近接する周波数ビンの重なりを示す図である。この
図4に示すように、W(ξ)はW(ξ−3)、W(ξ−2)、W(ξ−1)、W(ξ+1)、W(ξ+2)、W(ξ+3)と重なっている。
【0034】
窓関数がミニマム3ターム(Minimum 3-term)窓の場合、
図3からわかるように、周波数fの正弦成分に対する周波数ビンkにおけるξが、ξ=fL−kであることから、周波数ビンkの出力には、−3<ξ<3、すなわち(k−3)/L<f<(k+3)/Lの範囲の周波数の正弦成分が含まれる。
このことは逆に、窓関数のサイドローブにおける|W(ξ)|が十分小さければ、周波数fの信号は、その近傍の周波数ビンにだけ出力が現れる。ミニマム3ターム(Minimum 3-term)窓に対しては、周波数ビンkについて、ξ=fL−kより、
図4の−0.5<ξ<0.5の範囲の周波数fの正弦成分は、k−3番目の周波数ビンからk+3番目の周波数ビンに出力が現れる。
たとえば、周波数fがξ=fL−k=−0.4となる正弦成分に対しては、
図5に示すように、周波数ビンk−2には信号x(t)にW(−0.4+2)を掛けた信号が、周波数ビンk−1にはW(−0.4+1)を、周波数ビンk,k+1,k+2には、それぞれW(−0.4),W(−0.4−1),W(−0.4−2)を掛けた信号が出力される。
【0035】
周波数fがξ=fL−k=−0.4となる正弦成分に対する、ある時刻tにおけるX(k,t)のフェーザを
図6に示す。このように、[数4]式からも分かるように、X(k,t)の近傍のビンの出力は同じ位相を示す。すなわち、
図6に示すそれぞれの周波数ビンの信号は、位相を示す傾きが等しく、信号の振幅が異なっている。
図1に示す正弦成分検出部16では、それぞれの周波数ビンの位相(
図6での傾き)が同じであることが検出される。
【0036】
次に、このように示される周波数ビンの内の2つのビン間の出力の比から、正弦成分が求まることを説明する。
まず、正弦成分の周波数fに最も近い中心周波数を持つ周波数ビンをkとする。このとき、ξ=fL−kと置くと、ξは−0.5<ξ<0.5の範囲にある。
周波数fの正弦成分の近傍に他の正弦成分がない場合は、[数4]式から近傍の周波数ビンk+i(i=・・・,−2,−1,0,1,2,・・・)での値は、次のようになる。
【0039】
ここで、W(ξ−i)とW(ξ)が実数であることより、X(k+i,t)とX(k,t)はx(t)と同位相となり、それぞれの振幅の比をとるとx(t)の振幅が約分され、以下に示すようにW(ξ−i)とW(ξ)の比になる。
【0041】
この[数9]式の右辺は信号に依存せず、窓関数w(t)だけで定まる。そこで、右辺のdB値を以下のように、ξの関数r
i(ξ)と定義する。
【0043】
r
i(ξ)の逆関数r
i−1(r)も信号に依存せず、窓関数だけで定まる。
X(k+i,t)とX(k,t)の振幅の比のdB値rを、次式[数11]のように求める。
【0045】
正弦成分に対しては[数9]式が成り立つことより、[数10]式および[数11]式からr=r
i(ξ)が得られる。したがって、正弦成分の周波数fを、逆関数r
i−1(r)を用いて、次式[数12]、[数13]のように求めることができる。
【0048】
さらに、この周波数fを用いると、W(ξ)を計算することができ、[数4]式よりx(t)を、次式[数14]より求めることができる。
【0050】
次に、窓関数がミニマム3ターム(Minimum 3-term)窓のときの例を示す。
ミニマム3ターム窓に対しては、正弦成分の周波数fと周波数ビンkに対してξ=fL−kとすると、r
i(ξ)[dB]は、
図7に示すようになる。この
図7は、第k番目の周波数ビンの出力に対する第k+i番目の周波数ビンの出力の比を示す。
ここで、ミニマム3ターム窓の場合には、r
i(ξ)の逆関数r
i−1(r)を、例えば、以下の[数15]式に示すように逆正接関数を用いて近似することができる。
図8は、この逆関数を示す図であり、周波数ビンの出力の比に対するξを示す。
【0052】
ここで、周波数ビン間の出力の比から正弦成分を求める手順をまとめると、以下のようになる。
1.信号x(t)の短時間フーリエ変換X(k,t) (k=0,1,・・・ )を求める。
2.信号x(t)中に複数の正弦成分があっても、それらの周波数が互いに十分離れ、X(k+i,t) (i=・・・,−2,−1,0,1,2,・・・)に複数の正弦成分が含まれていない場合は、その正弦成分について以下を行う。
(a)正弦成分の周波数fに最も近い中心周波数を持つ周波数ビンをkとし、ξ=fL−kとする。近傍に他の正弦成分がないときには、X(k+i,t)(i=・・・,−2,−1,0,1,2,・・・)はx(t)と同位相になる。
(b)[数11]式を用いて、X(k+i,t)とX(k,t)の振幅の比のdB値rを求める。
(c)[数12]式,[数13]式を用いて周波数fを計算する。
(d)周波数fからW(ξ)を計算し、[数14]式を用いてx(t)を求める。
(e)[数1]式からx(t)の振幅A、位相φを求める。
【0053】
次に、周波数が近接する2つの正弦成分がある場合の具体的な検出状態について説明する。
ここでは、信号x(t)が第1の正弦成分x
1(t)と第2の正弦成分x
2(t)の和x(t)=x
1(t)+x
2(t)であり、それぞれの周波数f
1とf
2が近接している場合を考える。これらの周波数に近い周波数ビンの短時間フーリエ変換の値X(k,t)は、[数16]式となる。
【0055】
周波数f
1と周波数f
2が互いに数ビン程度近接している場合は、W(f
1L−k)とW(f
2L−k)が共に無視できない値を持つ。そのため、正弦成分が一つの場合のように単純に|X(k+i,t)|
2と|X(k,t)|
2の比を取ることはできない。
ここで、ξ=f
11L−kと置き、−0.5<ξ<0.5とし、x
2(t)の周波数がηビン離れ、f
2L=f
1L+ηとする。
まず、ηが正の場合、つまり、低い周波数の正弦成分をx
1(t)とする場合を説明する。
信号x(t)が、ηビン離れた2つの正弦成分x
1(t)とx
2(t)の和であることから、次の[数17]式,[数18]式で表される。
【0058】
ηが正で、ある程度大きい場合は、次の[数19]式が成立し、[数17]式[数18]式は[数20]式のように近似できる。
【0061】
このとき、X(k−2,t)とX(k−1,t)は、x
1(t)とほぼ同位相になる。
そこで、[数11]式及び[数9]式から、次の[数21]式が成立する。
【0063】
また、正弦成分x
1(t)の周波数f
1を逆関数r
−1−1(r)を用いて、次の[数22]式及び[数23]式のように求めることができる。
【0066】
この周波数f1を用いて、W(ξ+1)を求め、次の[数24]式からx1
1(t)を求め、その振幅と位相を求めることができる。
【0068】
但し、ηが正であっても、その値が余り大きくない場合、つまり、2つの周波数が非常に接近している場合は、[数19]式が成立せず、この方法を用いることはできない。
【0069】
次に、ηが負の場合、つまり、高い周波数の正弦成分をx
1(t)とする場合を説明する。
ηが負の場合、次の[数25]式及び[数26]式で示される。
【0072】
ここで、ηが負で、その絶対値がある程度大きい場合は、次の[数27]式が成立し、[数25], [数26]式は[数28]式に近似できる。
【0075】
このとき、X(k+1,t)とX(k+2,t)は、x
1(t)とほぼ同位相になり、ηが正のときと同様に、次の[数29]式が成立する。
【0076】
【数29】
正弦成分x
1(t)の周波数f
1を逆関数r
1−1(r)を用いて、次の[数30]式及び[数31]式のように求めることができる。
【0079】
この周波数f
1を用いて、W(ξ−1)を求め、次の[数32]式からx
1(t)を求め、その振幅と位相を求めることができる。
【0081】
なお、このηが負の場合にも、2つの周波数が非常に接近している場合は、この手法を用いることはできない。
【0082】
次に、周波数が互いに数ビン程度近接している正弦成分がある場合の例として、窓関数がミニマム3ターム窓のときの例を示す。
ここでは、
図9に示すように、周波数fがξ=fL−k=−0.4となる正弦成分と2ビン離れたξ=1.6の正弦成分が存在する場合を想定する。
図10は、この周波数fがξ=fL−k=−0.4とξ=1.6の正弦成分に対するある時刻tにおけるX(k,t)と、その成分X
1(k,t)及びX
2(k,t)を示す。
【0083】
図10において、破線のラインがξ=−0.4のX
1(k,t)成分であり、一点鎖線のラインがξ=1.6のX
2(k,t)成分である。そして、実線の欄がこれらを合成したX(k,t)である。なお、
図1に示す構成で、実際に各ビンで検出される信号は、合成した成分である。
この
図10に示すように、近接したビンに正弦成分がある場合は、各ビンの出力はそれぞれの成分を合わせたものとなり、同じ位相にはならない。しかしながら、他の正弦成分から離れたビン間では、同じ位相となる。
図1の構成では、この同じ位相のビンを検出して、x
1(t)やx
2(t)の推定を行うものである。
【0084】
ここで、周波数が近接する二つの正弦成分がある場合に、それぞれの正弦成分を求める手順をまとめると以下のようになる。
1.x(t)の短時間フーリエ変換X(k,t)(k=0,1,・・・ )を求める。
2.x(t)中に複数の正弦成分があり、近接する信号成分の周波数が近接しすぎず、[数19]式あるいは、[数27]式が成り立つ場合は、以下のように正弦成分の抽出を行う。
(a)[数21]式あるいは[数29]式を用いて、周波数f
1の正弦成分に対応するビンから離れたビン間の振幅の比rを計算する。
(b)この比rから、[数22]式あるいは[数30]式を用いて、ξを計算する。
(c)ξから、[数23]式あるいは[数31]式を用いて、周波数f
1を計算する。
(d)周波数f
1から、[数24]式あるいは[数32]式を用いて、x
1(t)を求め、その振幅と位相を求める。
【0085】
以上説明したように本発明の正弦成分抽出装置によると、信号を短時間フーリエ変換をし、正弦成分の周波数に近い中心周波数を持つ周波数ビンの出力に対する近傍のビンの出力の振幅の比から、窓関数の特性を用いることでその正弦成分の周波数fを求めることができ、また、各ビンからの出力が正弦成分の位相と等しいことを利用して、正弦成分の振幅と位相を抽出することができる。
このため、本発明によると、信号中から正弦成分が抽出できるようになり、信号の周波数推定、ピッチ同期分析、波動の到来方向推定など様々な分野で本発明が利用できる。また、本発明は、雑音が重畳している信号から正弦成分を抽出するための基礎となる方法であり、雑音除去、音声強調,音声や楽曲などの信号分離の基礎技術として期待できる。
【0086】
[4.適用例]
図11は、本発明の正弦成分抽出装置を音解析に適用した例である。
すなわち、
図11に示すように、マイクロフォン1と音入力装置2とを接続する。そして、音入力装置2は、マイクロフォン1から入力された信号による音信号を生成する。音入力装置2により生成された音信号は、音声解析装置3に供給される。
また、音入力装置2により生成された音信号は、正弦成分抽出装置4に供給される。この正弦成分抽出装置4は、
図1に示す構成の装置であり、音信号に含まれる正弦成分として、音信号に含まれる基本周波数の正弦成分やその高調波の正弦成分を抽出する。そして、正弦成分抽出装置4で抽出された正弦成分の周波数,振幅,位相の情報が、音声解析装置3に供給される。音声解析装置3は、正弦成分抽出装置4から供給される正弦成分の周波数,振幅,位相の情報に基づいて、入力した音信号の解析を行い、解析結果を出力端子5に出力する。
【0087】
図12は、本発明の正弦成分抽出装置を音源分離に適用した例である。
すなわち、
図12に示すように、マイクロフォン1から音入力装置2に入力された信号による音信号を生成し、その生成された音信号が音源分離装置6に供給される。音源分離装置6は、マイクロフォン1に入力された音が、複数の正弦成分からなる音である場合に、その複数の音源成分を分離するものである。
ここで、音入力装置2が生成した音信号が、正弦成分抽出装置4に供給され、この正弦成分抽出装置4が音信号に含まれる正弦成分を抽出し、抽出された正弦成分の周波数,振幅,位相の情報が、音源分離装置6に供給される。音源分離装置6は、正弦成分抽出装置4から供給される正弦成分の周波数,振幅,位相の情報に基づいて、入力信号に含まれるそれぞれの音源からの正弦成分を分離し、個別の出力端子7,8に出力する。例えば入力信号が複数の楽曲の演奏信号であるときには、
図12の構成を利用して、1つ1つの楽器ごとの演奏信号を分離することができる。
【0088】
これら
図11,
図12は正弦成分抽出装置の適用例のごく一部の例であり、その他の各種信号処理に適用可能である。音信号や楽曲の演奏信号に適用することも一例であり、その他の信号に含まれる周波数成分の抽出に適用が可能である。
【0089】
また、
図1に示した正弦成分抽出装置の構成は、好適な一例を示したものであり、本発明の正弦成分抽出装置及び抽出方法は、
図1に示す構成のものに限定されない。例えば、実施の形態例のフーリエ変換処理を行うプログラムを実装したコンピュータ装置を用意して、そのコンピュータ装置での演算処理で、同様の正弦成分抽出処理を行うようにしてもよい。コンピュータ装置に実装するプログラムとしては、例えば
図2に示した手順を実行するものとする。