(57)【特許請求の範囲】
【請求項１】
分析対象波形に対し、基準となる分析ポイントで周波数分析を行うことにより、各周波数成分について、周波数データ、位相データ、及び、振幅データの実測値を得、
前記分析対象波形に対し、前記基準となる分析ポイントから所定距離だけ移動して次の分析ポイントで周波数分析を行い、少なくとも１つの周波数成分について少なくとも位相データの実測値を得るとともに、前記少なくとも１つの周波数成分について、前記基準となる分析ポイントでの位相データの実測値に、前記基準となる分析ポイントでの周波数データの実測値を有する波形の、前記次の分析ポイントまでの位相変化量を加算することにより、前記次の分析ポイントでの少なくとも位相データの予測値を得、
前記次の分析ポイントでの前記少なくとも１つの周波数成分について、前記少なくとも位相データの予測値と前記少なくとも位相データの実測値とを比較し、
比較された全ての周波数成分について、前記少なくとも位相データの予測値と実測値との誤差を加算し、加算された誤差が許容範囲内になるまで前記所定距離を短くすることにより、次の分析ポイントを確定する、
ことを特徴とする波形分析方法。
【請求項２】
分析対象波形に対し、最後に確定された分析ポイントから、時間軸に沿って順次移動した複数の分析ポイントで周波数分析を行うことにより、前記各分析ポイントにおける各周波数成分について、周波数データ、位相データ、及び、振幅データの実測値を得る波形分析方法であって、
前記分析対象波形に対し、前記最後に確定された分析ポイントから所定距離だけ移動して次の分析ポイントで周波数分析を行うことにより、少なくとも１つの周波数成分について少なくとも位相データの実測値を得るとともに、前記少なくとも１つの周波数成分について、既に確定された少なくとも１つの分析ポイントでの位相データの実測値及び周波数データの実測値を用い、前記次の分析ポイントまでの、位相データの実測値及び周波数データの実測値の変動が大きくないものとして、前記次の分析ポイントでの少なくとも位相データの予測値を得、
前記次の分析ポイントでの前記少なくとも１つの周波数成分について、前記少なくとも位相データの予測値と前記少なくとも位相データの実測値とを比較し、
比較された全ての周波数成分について、前記少なくとも位相データの予測値と実測値との誤差を加算し、加算された誤差が許容範囲内になるまで前記所定距離を短くすることにより、次の分析ポイントを確定する、
ことを特徴とする波形分析方法。
【請求項３】
分析対象波形に対し、基準となる分析ポイントで周波数分析を行うことにより、各周波数成分について、周波数データ、位相データ、及び、振幅データの実測値を得る手段と、
前記基準となる分析ポイントから所定距離だけ移動して次の分析ポイントを仮決定する仮決定手段と、
少なくとも１つの周波数成分について、前記基準となる分析ポイントでの位相データの実測値に、前記基準となる分析ポイントでの周波数データの実測値を有する波形の、前記次の分析ポイントまでの位相変化量を加算することにより、仮決定された前記次の分析ポイントでの少なくとも位相データの予測値を得る予測手段と、
前記仮決定された次の分析ポイントで周波数分析を行い、前記少なくとも１つの周波数成分について少なくとも位相データの実測値を得るとともに、前記少なくとも位相データの予測値と前記少なくとも位相データの実測値とを比較し、比較された全ての周波数成分について、前記少なくとも位相データの予測値と実測値の誤差を加算し、加算された誤差が許容範囲内にあるときには、前記仮決定された分析ポイントを前記次の分析ポイントとして確定し、
前記加算された誤差が許容範囲外にあるときには、移動距離を短くして、再度、前記次の分析ポイントを仮決定する分析ポイント確定手段、
を有することを特徴とする波形分析装置。
【請求項４】
分析対象波形に対し、基準となる分析ポイントから、時間軸に沿って順次移動した複数の分析ポイントで周波数分析を行うことにより、前記各分析ポイントにおける各周波数成分について、周波数データ、位相データ、及び、振幅データの実測値を得る波形分析装置であって、
最後に確定された前記分析ポイントから移動して次の前記分析ポイントを仮決定する仮決定手段と、
少なくとも１つの周波数成分について、既に確定された少なくとも１つの分析ポイントでの位相データの実測値及び周波数データの実測値を用い、仮決定された前記次の分析ポイントまでの、位相データの実測値及び周波数データの実測値の変動が大きくないものとして、前記仮決定された次の分析ポイントでの少なくとも位相データの予測値を得る予測手段と、
前記仮決定された次の分析ポイントで周波数分析を行うことにより、少なくとも１つの周波数成分について少なくとも位相データの実測値を得るとともに、前記少なくとも１つの周波数成分について、前記少なくとも位相データの予測値と前記少なくとも位相データの実測値とを比較し、比較された全ての周波数成分について、前記少なくとも位相データの予測値と実測値との誤差を加算し、加算された誤差が許容範囲内にあるときには、前記仮決定された分析ポイントを前記次の分析ポイントとして確定し、
前記加算された誤差が許容範囲外にあるときには、移動距離を短くして、再度、前記次の分析ポイントを仮決定する分析ポイント確定手段、
を有することを特徴とする波形分析装置。
【請求項５】
前記仮決定された分析ポイントが新たに確定された前記分析ポイントよりも以前の分析ポイントとなるまでは、前記仮決定された分析ポイントでの前記少なくとも１つの周波数成分について、前記少なくとも位相データの実測値を一時記憶しておく記憶手段を有し、
前記分析ポイント確定手段は、新たに仮決定された前記分析ポイントでの前記少なくとも１つの周波数成分について、前記少なくとも位相データの実測値が前記記憶手段に記憶されているときには、前記新たに仮決定された分析ポイントでの前記少なくとも位相データの実測値として、前記記憶手段に一時記憶されているものを用いる、
ことを特徴とする請求項４に記載の波形分析装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、楽音や人声音、音響信号、機械振動波形等の波形を分析する波形分析方法および波形分析装置に関するものである。
【０００２】
【従来の技術】
楽音波形合成の一方法として、分析・合成（Analysis & synthesis）方式が知られている。この方式は、例えば、特開平２０００−１０５６５号公報，特開２０００−１０５６７号公報等で知られたもので、楽音波形のスペクトルを分析しておき、各スペクトル成分の信号を発生させ、これらを加算することにより楽音波形を合成するものである。
【０００３】
分析の手順としては、まず、楽音波形を周波数分析し、楽音波形に含まれている基音成分および倍音成分等の線スペクトル成分を抽出する。分析対象の波形の基本ピッチは大体わかっているものとする。通常、この周波数分析は、分析対象となる楽音波形をサンプリングし、サンプリングされた楽音波形に窓関数を掛けたものに対し、ＦＦＴ（高速フーリエ変換：Fast Fourier Transform）を行い、周波数成分の周波数，振幅、位相のデータを出力するという、短時間フーリエ分析（ＳＴＦ分析：Short Time Fourier analysis）を用いて行われる。各分析ポイントにおいて、その出力の周波数成分の振幅データからピークを成す全ての周波数位置を検出する。
以上の処理を、上述した分析ポイントを中心とする時間窓を移動しながら行い、得られた複数のピークのうち、分析ポイントの移動につれて軌跡を成すものを追跡する。
【０００４】
得られた軌跡の中から所望の周波数成分の軌跡のデータを選択し、その一つ一つから正弦波を合成し、複数の合成された正弦波を加算することにより、元の楽音波形のうち、決定論的に得られる波形（Deterministic Wave）を合成する。
次に、元波形から上述した決定論的に得られる波形を引き算することにより、残差波形（Residual Wave）を得る。
得られた軌跡のデータをモディファイすれば、決定論的に得られる波形をモディファイすることができる。一方、残差波形は、ＥＱ（イコライザ），ＦＦＴその他の信号処理によりモディファイすることができる。これらのモディファイされた決定論的に得られる波形と残差波形とを加算することにより、所望の楽音波形を得ることができる。
【０００５】
図５は、従来の波形分析装置の実施の一形態を示す波形分析合成装置のハードウエア構成のブロック図である。
５１は波形分析合成装置全体の制御を行うＣＰＵ、５２はＣＰＵ５１が実行する各種制御プログラム、楽音分析プログラム、および、楽音合成プログラムなどの各種プログラムを記憶するプログラムメモリ、５３は各種制御情報、各種データの記憶および一時記憶領域（バッファ）やワークエリアとして使用されるデータメモリ、５４は表示装置、５５はキーボード，ポインティングデバイスなどの入力装置、５６は鍵盤などの演奏操作子、５７は楽音波形データを合成する楽音合成部、５８は楽音波形データをアナログ信号に変換し、図示しないサウンドシステムに出力するデジタルアナログ変換器（ＤＡＣ）である。
また、５９は、電話回線，インターネット，ＬＡＮなどの通信ネットワーク６１と接続するためのネットワークインターフェース回路、６０はシステムバスである。
【０００６】
上述した、楽音合成部５７の内部においては、上述した各周波数成分のピーク軌跡に対応する波形をそれぞれ発生する複数の正弦波波形生成部を有し、楽音波形を分析して検出された各ピーク軌跡の各々に対応した正弦波波形を生成する。また、残差波形生成部とミキサを有し、このミキサは、複数個の正弦波波形生成部の出力と残差波形生成部の出力とを合成して、合成楽音波形をＤＡＣ変換器５８に出力する。
なお、演奏操作子５６および楽音合成部５７は、本装置の外部に設けてもよい。また、データメモリ５３に記憶された演奏データを再生する際には、演奏操作子５６は不要である。また、図示を省略したが、ＣＤ−ＲＯＭ（Compact Disk-Read Only Memory），ＤＶＤ（Digital  Versatile  Disk），ＭＯ（光磁気ディスク），ＦＤ（フレキシブル磁気ディスク）などの外部記憶媒体を駆動する装置を接続してもよい。
なお、楽音波形分析は、上述したような楽音波形の合成のためにだけ用いるものではない。楽器音の特徴と楽器の物理的性質との関連を明らかにするために、あるいは、楽器音の機械認識などのためにも用いられる。また、楽音波形に限らず、一般の振動波形等を対象とする波形分析においても使用可能である。
【０００７】
図６は、従来の短時間フーリエ変換を用いた分析の説明図である。
短時間フーリエ変換に用いられる窓関数の移動距離（Hop Size Shift）は、分析対象波形である楽音波形の基本周期（ピッチ）に応じた一定値に設定している。楽音波形の周波数変化および振幅変化は、経験的に、その基本周波数に依存していることがわかっている。すなわち、低い基本周波数の波形はゆっくりと変化し、高い基本周波数の波形はすばやく変化する。したがって上述した窓関数の移動距離、言い換えれば、分析ポイントの移動距離は、例えば、楽音波形の基本周期の１／８としている。一方、時間窓の幅（ウインドウサイズ）は、ウインドウサイズを大きくしすぎると変化に追従できなくなるが、ある程度大きくしなければ周波数精度が悪くなるので、例えば、楽音波形の基本周期の８倍としている。
また、低い基本周波数の波形であっても、その高い周波数成分の変動に正確に追従させるためには、窓の移動距離（Hop Size Shift）を短くする必要がある。そのため、例えば、最初に８倍音未満の低い周波数成分について、上述した条件で分析して合成する。次に、原波形から合成波形を差し引いた残差波形について、８倍音以上の高い周波数成分について、窓関数の移動距離を基本周期の１／６４とし、ウインドウサイズを基本周期として分析する。
【０００８】
一方、ピアノのアタック部など、急峻な変化をする波形に追従できるようにするためには、窓の移動距離は短く設定する。しかし、管楽器や擦弦楽器の定常（サステイン）部のように、ビブラートのようなゆっくりした変化しかない楽音波形では、余り細かく分析する必要がない。そのため、窓の移動距離が短いと、計算時間，計算データ量ともに無駄になる。逆に、ゆっくりとした変化に合わせて時間窓の移動距離を決めた場合、ピアノのアタック部などに追従するのが難しくなってしまう。
図７は、楽音波形の一例を示す波形図である。なお、図示のエンヴェロープは、簡略して記載している。
一般的には、楽音波形の振幅エンヴェロープを見て、アタック部とサステイン部とを決定し、このアタック部とサステイン部とで時間窓の移動距離を異なった値に設定すればよい。アタック部では窓の移動距離を短く、例えば、基本周期の１／１６とし、サステイン部では窓の移動距離を長く、例えば、基本周期の１／４とするといった分析手法をとれば、計算データ量，計算時間ともに有効な、波形分析装置を得ることができる。
【０００９】
しかし、分析対象とする箇々の楽音波形に応じて、窓の移動距離を、アタック部，サステイン部等の波形部分に対し、いくらに設定すればよいかは経験的にしかわからない。
また、アタック部とサステイン部等とに区分するためには、振幅のエンヴェロープを見て、例えば、このエンヴェロープが最大になった時点（アタックマックスポイント）以前をアタック部、以後をサステイン部とする。しかし、この方法では、振幅のエンヴェロープのみからアタック部とサステイン部の境界を決めているので、サステイン部で何かすばやい変化が起こったときには対応できない。また、アタック部と思われていた範囲であっても、ストリングスのアタックのように、ゆったりした変化しかない場合は、データ量，計算時間ともに無駄が生じる。
したがって、波形の変動に追従でき、かつ、効率よく計算できるように、窓の移動距離を可変制御する波形分析手法が望まれている。
【００１０】
【発明が解決しようとする課題】
本発明は、上述した問題点を解決するためになされたもので、分析対象波形の変動特性に応じて、波形分析の高速化が可能な波形分析方法および波形分析装置を提供することを目的とするものである。
【００１１】
【課題を解決するための手段】
本発明は、請求項１に記載の発明においては、波形分析方法において、分析対象波形に対し、基準となる分析ポイントで周波数分析を行うことにより、各周波数成分について、周波数データ、位相データ、及び、振幅データの実測値を得、前記分析対象波形に対し、前記基準となる分析ポイントから所定距離だけ移動して次の分析ポイントで周波数分析を行い、少なくとも１つの周波数成分について少なくとも位相データの実測値を得るとともに、前記少なくとも１つの周波数成分について、前記基準となる分析ポイントでの位相データの実測値に、前記基準となる分析ポイントでの周波数データの実測値を有する波形の、前記次の分析ポイントまでの位相変化量を加算することにより、前記次の分析ポイントでの少なくとも位相データの予測値を得、前記次の分析ポイントでの前記少なくとも１つの周波数成分について、前記少なくとも位相データの予測値と前記少なくとも位相データの実測値とを比較し、比較された全ての周波数成分について、前記少なくとも位相データの予測値と実測値との誤差を加算し、加算された誤差が許容範囲内になるまで前記所定距離を短くすることにより、次の分析ポイントを確定するものである。
したがって、次の分析ポイントでの予測値と実測値との誤差が許容範囲内になったときに、初めて次の分析ポイントを確定している。そのため、分析対象波形の変化が大きいところに比べて、分析対象波形の変化が小さいところでの移動距離を比較的長く設定することができるから、波形分析の高速化が可能となる。
また、１つの基準となる分析ポイントから、時間軸の一方向に沿った周波数分析が終了したときに、この基準ポイントから時間軸を逆方向に遡るように、同様にして周波数分析を行うことにより、基準となる分析ポイントから時間軸の両方向に、それぞれの領域の波形の変動に応じた分析ポイントの移動距離を確定することができる。
【００１２】
請求項２に記載の発明においては、分析対象波形に対し、最後に確定された分析ポイントから、時間軸に沿って順次移動した複数の分析ポイントで周波数分析を行うことにより、前記各分析ポイントにおける各周波数成分について、周波数データ、位相データ、及び、振幅データの実測値を得る波形分析方法であって、前記分析対象波形に対し、前記最後に確定された分析ポイントから所定距離だけ移動して次の分析ポイントで周波数分析を行うことにより、少なくとも１つの周波数成分について少なくとも位相データの実測値を得るとともに、前記少なくとも１つの周波数成分について、既に確定された少なくとも１つの分析ポイントでの位相データの実測値及び周波数データの実測値を用い、前記次の分析ポイントまでの、位相データの実測値及び周波数データの実測値の変動が大きくないものとして、前記次の分析ポイントでの少なくとも位相データの予測値を得、前記次の分析ポイントでの前記少なくとも１つの周波数成分について、前記少なくとも位相データの予測値と前記少なくとも位相データの実測値とを比較し、比較された全ての周波数成分について、前記少なくとも位相データの予測値と実測値との誤差を加算し、加算された誤差が許容範囲内になるまで前記所定距離を短くすることにより、次の分析ポイントを確定するものである。
したがって、分析対象波形の変化が大きいところに比べて、分析対象波形の変化が小さいところでの移動距離を比較的長く設定することができるから、波形分析の高速化が可能となる。
さらに、既に確定された複数の分析ポイントでの実測値に基づいて、次の分析ポイントでの予測値を得た場合には、予測の精度が高くなるので、誤差の評価が正確になる。
【００１３】
請求項３に記載の発明においては、波形分析装置において、分析対象波形に対し、基準となる分析ポイントで周波数分析を行うことにより、各周波数成分について、周波数データ、位相データ、及び、振幅データの実測値を得る手段と、前記基準となる分析ポイントから所定距離だけ移動して次の分析ポイントを仮決定する仮決定手段と、少なくとも１つの周波数成分について、前記基準となる分析ポイントでの位相データの実測値に、前記基準となる分析ポイントでの周波数データの実測値を有する波形の、前記次の分析ポイントまでの位相変化量を加算することにより、仮決定された前記次の分析ポイントでの少なくとも位相データの予測値を得る予測手段と、前記仮決定された次の分析ポイントで周波数分析を行い、前記少なくとも１つの周波数成分について少なくとも位相データの実測値を得るとともに、前記少なくとも位相データの予測値と前記少なくとも位相データの実測値とを比較し、比較された全ての周波数成分について、前記少なくとも位相データの予測値と実測値の誤差を加算し、加算された誤差が許容範囲内にあるときには、前記仮決定された分析ポイントを前記次の分析ポイントとして確定し、前記加算された誤差が許容範囲外にあるときには、移動距離を短くして、再度、前記次の分析ポイントを仮決定する分析ポイント確定手段を有するものである。
したがって、次の分析ポイントでの予測値と実測値との誤差が許容範囲内になるまで移動距離を短くして、次の分析ポイントを確定している。そのため、分析対象波形の変化が大きいところに比べて、分析対象波形の変化が小さいところでの移動距離を、比較的長く設定することができるから、波形分析の高速化が可能となる。
【００１４】
ここで、仮決定手段は、仮決定するごとに、所定距離を、現在値の所定割合に短縮するか、または、移動距離の初期値の所定割合ずつ短縮することにより、所定距離を短くすることができる。
なお、分析対象波形に対し、基準となる分析ポイントから、時間軸に沿って順次移動した複数の分析ポイントで周波数分析を行う際に、上述した基準となる分析ポイントから、確定された次の分析ポイントまでの移動距離を、各分析ポイント間の移動距離として固定的に設定する設定部を有するものとしたときには、分析対象波形の変動に応じた移動距離の設定制御を１回行うだけで、簡単に設定することができる。
また、基準となる分析ポイントは、複数設定されてもよい。仮決定手段は、これら複数の基準となる分析ポイントの１つから所定距離だけ移動して次の前記分析ポイントを仮決定し、予測手段は、複数の基準となる分析ポイントでの周波数分析値に基づいて、仮決定された分析ポイントでの予測値を得るようにすることができる。
ここで、複数の基準となる分析ポイントの一例として、仮決定される分析ポイントを挟んで、時間軸の両方向に基準ポイントがある場合には、予め決めた時間軸のいずれか一方向側にある基準ポイントを選択するか、あるいは、この仮決定される分析ポイントに距離が近い方の基準ポイントを選択する。
【００１５】
請求項４に記載の発明においては、分析対象波形に対し、基準となる分析ポイントから、時間軸に沿って順次移動した複数の分析ポイントで周波数分析を行うことにより、前記各分析ポイントにおける各周波数成分について、周波数データ、位相データ、及び、振幅データの実測値を得る波形分析装置であって、最後に確定された前記分析ポイントから移動して次の前記分析ポイントを仮決定する仮決定手段と、少なくとも１つの周波数成分について、既に確定された少なくとも１つの分析ポイントでの位相データの実測値及び周波数データの実測値を用い、仮決定された前記次の分析ポイントまでの、位相データの実測値及び周波数データの実測値の変動が大きくないものとして、前記仮決定された次の分析ポイントでの少なくとも位相データの予測値を得る予測手段と、前記仮決定された次の分析ポイントで周波数分析を行うことにより、少なくとも１つの周波数成分について少なくとも位相データの実測値を得るとともに、前記少なくとも１つの周波数成分について、前記少なくとも位相データの予測値と前記少なくとも位相データの実測値とを比較し、比較された全ての周波数成分について、前記少なくとも位相データの予測値と実測値との誤差を加算し、加算された誤差が許容範囲内にあるときには、前記仮決定された分析ポイントを前記次の分析ポイントとして確定し、前記加算された誤差が許容範囲外にあるときには、移動距離を短くして、再度、前記次の分析ポイントを仮決定する分析ポイント確定手段を有するものである。
したがって、仮決定された次の分析ポイントでの予測値と実測値との誤差が許容範囲内になったときに、次の分析ポイントを確定している。そのため、分析対象波形の変化が大きいところに比べて、分析対象波形の変化が小さいところでの移動距離を比較的長く設定することができるから、波形分析の高速化が可能となる。
【００１６】
ここでも、仮決定手段は、仮決定するごとに、所定距離を、現在値の所定割合に短縮するか、または、移動距離の初期値の所定割合ずつ短縮することにより、所定距離を短くすることができる。
さらに、既に確定された複数の分析ポイントでの実測値に基づいて、仮決定された次の分析ポイントでの予測値を得た場合には、予測の精度が高くなるので、誤差の評価が正確になる。
また、時間軸の一方向に確定して行く複数の分析ポイントの一方向の前記周波数分析が終了したときに、基準ポイントから時間軸を逆方向に移動距離を切り替える分析方向切替手段を有するものとすることもできる。
【００１７】
請求項５に記載の発明においては、請求項４に記載の波形分析装置において、前記仮決定された分析ポイントが新たに確定された前記分析ポイントよりも以前の分析ポイントとなるまでは、前記仮決定された分析ポイントでの前記少なくとも１つの周波数成分について、前記少なくとも位相データの実測値を一時記憶しておく記憶手段を有し、前記分析ポイント確定手段は、新たに仮決定された前記分析ポイントでの前記少なくとも１つの周波数成分について、前記少なくとも位相データの実測値が前記記憶手段に記憶されているときには、前記新たに仮決定された分析ポイントでの前記少なくとも位相データの実測値として、前記記憶手段に一時記憶されているものを用いるものである。
したがって、既に周波数分析された分析ポイントにおける実測値を利用することにより、再度、周波数分析する必要がなく、データ量および計算時間を短縮することができる。
【００１９】
【発明の実施の形態】
図１は、本発明の波形分析方法および装置の実施の一形態を説明するための機能ブロック構成図である。ハードウエア構成については、図５を参照して説明した従来の構成でよい。
この実施の形態は、分析対象波形に対し、基準となる分析ポイントから、時間軸に沿って順次移動して、複数の分析ポイントで周波数分析を行う波形分析装置である。時間軸に沿った複数のサンプリングポイントにおいて、短時間フーリエ変換により分析を行うサンプリングポイントを分析ポイントということにする。
【００２０】
図中、１は分析対象波形サンプル記憶部であって、分析対象となる波形のサンプルが記憶されている。２は短時間フーリエ変換部であって、周波数分析を行う。３は分析値予測部であって、基準となる分析ポイントなど、先に確定された少なくとも１つの分析ポイントで短時間フーリエ変換を行った分析値に基づいて、後述する仮決定された分析ポイントで短時間フーリエ変換を行ったときの分析値を予測するものである。
【００２１】
４は比較部であって、仮決定された分析ポイントで短時間フーリエ変換を行った実測分析値と、分析値予測部３で予測された予測分析値とを比較することにより、分析値予測部３で予測された分析値の、短時間フーリエ変換を行った実測分析値からの誤差が許容範囲内にあるか、許容範囲外にあるかを判定するものである。
５は出力部であって、誤差が許容範囲内にあると判定されたときには、上述した仮決定された分析ポイントを、次の分析ポイントとして確定させて、このときの分析値を出力するものである。
６は分析ポイントの仮決定制御部であって、最後に確定された分析ポイントから所定距離だけ移動して次の分析ポイントを仮決定するものである。仮決定された分析ポイントで、予測された分析値と、実際に周波数分析を行った実測分析値との誤差が、許容範囲外にあると比較部４が判定したときに、上述した所定距離を短くして、再度、次の分析ポイントを仮決定し直す。
同様の処理が繰り返されて、最終的に、次の分析ポイントが確定される。分析ポイントの仮決定部６は、最後に確定された分析ポイントから所定距離だけ移動して次の分析ポイントを仮決定し、同様な処理を繰り返して、次の分析ポイントを確定する。
【００２２】
図２は、本発明の波形分析方法および装置の実施の一形態において、時間窓の移動距離を自動的に決定するアルゴリズムを説明するための線図である。
図中、横軸は分析対象波形のサンプリングポイントで表わした時間軸であり、縦軸はある１つのスペクトル成分の位相である。１１は分析ポイントＡでの分析データである周波数データｆAおよび位相データｄAに基づいて、分析ポイントＡから離れた位置にあるサンプリングポイントにおいて予測される位相を表わす直線である。
【００２３】
基準となる分析ポイントＡにおいて、短時間フーリエ変換部２が周波数分析を行った結果、各スペクトル成分における周波数、振幅、位相の各データが得られる。ここで、位相データとは、各周波数成分に対応する波形の位相を意味する。したがって、周波数分析されて得られる各周波数成分の基準位相に対する位相差という意味での位相ではない。基準位相にこの位相差を加算した位相である。
ある周波数成分の位相データをｄA［rad］、周波数データをｆA［Hz］とする。分析ポイントの仮決定部６は、分析ポイントＡから、移動距離の初期値Ｔ［sec］だけ分析ポイントを進めて、次の分析ポイントＢを仮決定する。すなわち時間窓の中心である分析ポイントを初期値Ｔ［sec］だけ移動させる。この初期値Ｔ［sec］は、ある程度大きな値に設定されている。短時間フーリエ変換部２は、分析ポイントＢで周波数分析を行う。この結果得られた同じスペクトル成分の位相データをｄB［rad］とする。
【００２４】
ここで、分析ポイントＡ，Ｂ間において、ある周波数成分の周波数が一定のｆA［Hz］であるとみなすと、先に分析された位相データｄA［rad］を使って分析ポイントＢでの位相データｄB［rad］の予測をすることができる。分析値予測部３は、予測位相データｐBを出力する。予測位相データｐB［rad］は、次式で表わされる。
ｐB＝２πｆAＴ＋ｄA
比較部３は、得られた予測位相データＢpを使って、短時間フーリエ変換部２から出力される、実際に短時間フーリエ変換されて得た位相データｄBとを比較する。図２では、ある１つのスペクトル成分の位相の予測を示しているが、複数のスペクトル成分について、同様な位相予測を行う。比較は、予め決められた１つまたは複数のスペクトル成分のそれぞれについて行う。
【００２５】
次に、各スペクトル成分についての位相データの比較結果を総合した上で、実際の位相データが、予測された位相データから許容範囲内にあるかどうかを比較する。例えば、各スペクトル成分について、それぞれの予測位相データｐBと実際に測定された位相データｄBとの位相誤差の絶対値を算出し、この絶対値を全てのスペクトル成分について加算した位相誤差が許容範囲内にあるか否かによって行う。
許容範囲内にあるときは、分析ポイントＡから仮決定された次の分析ポイントＢにかけては、分析値にそれ程大きな変動はなかったことを意味する。したがって、最初に仮決定された分析ポイントＢを、基準となる分析ポイントＡの次の分析ポイントとして確定して、出力部５および分析ポイントの仮決定部６を制御する。出力部５は、分析ポイントＢでの、位相データを始めとする全ての分析値を有効として出力する。一方、分析ポイントの仮決定部６は、次の分析ポイントでの周波数分析に移行する。
【００２６】
許容範囲外にあるときには、比較部４は、基準となる分析ポイントＡと仮決定された次の分析ポイントＢとの間にある分析ポイントＢ1を改めて仮決定された次の分析ポイントとして決定する。
図示の例では、分析ポイントＡから分析ポイントＢ1までの移動距離を初期値Ｔの１／２にする。短時間フーリエ変換部２は、分析ポイントＢ1で、短時間フーリエ変換により実際に分析された実測位相データｄB1を出力する。比較部４は、先程と同様に、実測位相データｄB1と、基準となる分析ポイントＡにおける位相データｄAに基づいた予測位相データｐB1とを比較する。
ここでも、各スペクトル成分についての位相データの比較結果を総合した上で、位相誤差が許容範囲外であれば、分析ポイントの仮決定部６は、移動距離Ｔ／２をさらに１／２とした分析ポイントＢ2を、新たに、仮決定された次の分析ポイントとする。
【００２７】
同様にして、比較部４は、分析ポイントＢ2で、短時間フーリエ変換により分析された実測位相データｄB2と、先の基準となる分析ポイントＡにおける予測位相データｄAに基づいた予測値ｐB2とを比較する。
各スペクトル成分についての位相データの比較結果を総合した上で、実際の位相データが、予測された位相データから許容範囲内にあるかどうかを比較する。許容範囲内であれば、新たに、分析ポイントＢ2を次の分析ポイントとして確定し、分析ポイントＢ2での分析値を有効なものとして出力し、分析ポイントＢ2を分析ポイントＡと読み替え、次の分析ステップを確定する動作に移る。
時間窓の移動距離は、再び、初期値Ｔから始め、分析ポイントの仮決定部６は、仮決定された次の分析ポイントＢに時間窓の中心を移動させる。
【００２８】
上述した手順によって周波数分析を行えば、分析対象波形の変動の大きいところでは、移動距離を短くして分析を細かくし、変化のゆったりしたところでは、移動距離を大きいままにして荒い分析を行うことになるから、計算時間および計算データ量を削減することができる。
さらに計算時間の削減手法として、仮決定された次の分析ポイントにおいて一度計算した分析データをテンポラリーなデータとしてメモリに残しておくことにより、これらを再利用できる。
すなわち、最後に確定された分析ポイントＢ2を基点として、計算を開始したとき、場合によっては、前回の計算における、最初の仮決定された次の分析ポイントＢおよび仮決定された次の分析ポイントＢ1での分析データが再度必要になることがある。
【００２９】
この場合、同じ計算をしなくてよいように、仮決定された次の分析ポイントＢ，Ｂ1での分析データをバッファに格納しておけば、計算を省略できる。しかし、全ての仮決定された次の分析ポイントのデータを、テンポラリーなデータとして格納しておいたのでは、バッファ容量が大きくなってしまい、本末転倒となる。そこで、テンポラリーなデータをクリアするタイミングが必要である。
テンポラリーなデータのクリアは、ある仮決定された次の分析ポイントが分析ポイントとして確定して、その分析データが採用されたとき、この新たに確定した分析ポイントよりも前の仮決定された次の分析ポイントの分析データは、再利用されることがないので、消去しても差し支えない。この方法により、再度、同じ仮決定された次の分析ポイントでスペクトル分析をしなくても、上述したアルゴリズムでの分析がそのまま行えるから、計算速度および計算データ量の削減ができる。
【００３０】
上述した説明では、移動距離を初期値Ｔから、公比を１／２とした等比数列にしたがって変更した。これに代えて、初期値Ｔから、公差を初期値の所定割合、例えば１０％とした等差数列、０．９Ｔ，０．８Ｔ，・・・にしたがって設定変更してもよい。
これらに代えて、予測誤差が、移動距離に直線比例すると仮定して、移動距離の初期値Ｔにおける予測誤差の値に基づき、誤差が許容範囲の限界値となる移動距離を予測してもよい。
【００３１】
上述した説明では、スペクトル成分の位相データのみを予測したが、振幅データを加味して予測してもよい。また、予測の根拠とする確定した分析ポイントとして、直前の分析ポイントＡだけではなく、分析ポイントＡ以前の、いくつかの既に確定した分析ポイントの周波数データおよび位相データを用いて、より精度の高い位相データの予測を行ってもよい。
あるいは、直前の分析ポイントＡよりも後の時間軸方向（未来）にも基準となる分析ポイントがあるときなど、確定した分析ポイントがある場合に、仮決定された次の分析ポイントを挟む、過去の確定した分析ポイントの周波数データ，位相データ、および、未来の周波数データ，位相データとを用いて、仮決定された次の分析ポイントでの予測位相データを計算してもよい。
【００３２】
図３は、本発明の波形分析方法および装置の実施の一形態の具体的な分析動作のフローチャートである。
図４は、本発明の波形分析方法および装置の実施の一形態の具体的な分析動作を説明するための説明図であり、図４（ａ）はエンヴェロープ波形、図４（ｂ）は分析ポイントの説明図である。４１は楽音波形の振幅エンヴェロープである。
【００３３】
予め、分析対象波形のサンプリング処理が実行され、分析対象波形が、例えば、４４．１[kHz]のサンプリング周波数でサンプリングされ、サンプリングデータが、図５に示したデータメモリ５３、図１に示した分析対象波形サンプル記憶部１に格納される。次に、分析条件が入力されるとともに分析の前処理が行われる。すなわち、分析対象波形サンプルの振幅調整、イコライズ処理、フィルタリング処理などが行われ、同時に分析範囲の設定も行われる。
一般に、ＦＦＴの時間窓サイズは、波形の基本周期の整数倍とするのが適切であり、例えば、８倍とされる。また、ＦＦＴサイズは、２のベキ数でなければならず、ここでは、窓サイズを超える最少の２のベキ数を選ぶこととし、例えば、２０４８点とする。
【００３４】
図３のＳ２１において、分析を開始するポイントである、基準となる分析ポイントｔmを設定する。例えば、図４（ａ）に示したように、楽音波形の振幅が最大レベルに到達した時刻（アタックマックスポイント）を検出し、この時刻を基準となる分析ポイントｔmとする。これに代えて、楽音波形の開始点、楽音波形のサステイン部の冒頭部の時刻を、基準となる分析ポイントｔmとしてもよい。
しかし、アタックマックスポイントでは、追従が必要な全てのピークが出揃っている蓋然性が高いので、この位置から分析を開始すると好適である。基準となる分析ポイントは、複数個設定してもよい。
別の方法として、予め粗い周波数分析を行っておき、追従が必要な全てのピークが出揃っている蓋然性が高い位置を検出して、基準となる分析ポイントを設定してもよい。
【００３５】
Ｓ２２において、ｋ←０；ｔ←ｔm；ｔb←ｔ＋Ｔとする。ここで、ｋは時間窓の移動距離、言い換えれば仮決定された次の分析ポイントまでの移動距離を決定する変数、ｔbは仮決定された次の分析ポイントの位置、Ｔは基準となる分析ポイントあるいは最後に確定された分析ポイントから、仮決定された次の分析ポイントまでの移動距離の初期値である。図４では、最初のｔbをｔb1として示している。ここで、初期値Ｔは、比較的大きな値、例えば、楽音波形の基本周期とする。最初、基準となる分析ポイントｔmから、図４（ａ）に示す時間軸の順方向にディケイ部、サステイン部へと分析を進める。
【００３６】
Ｓ２３において、短時間フーリエ変換による分析演算stFFT(ｔ)を行い、分析演算結果をDATA(ｔ)とする。Ｓ２４においては、分析演算結果DATA(ｔ)をトーンファイル（TONEFILE）にセーブする。Ｓ２５においては、仮決定された次の分析ポイントｔbにおける分析演算結果DATA(ｔb)が、テンポラリバッファ（TMP）に格納されていないかどうかを判定する。テンポラリバッファ（TMP）に格納されていない場合にはＳ２６に処理を進め、格納されている場合にはＳ２７に処理を進める。
【００３７】
Ｓ２６において、短時間フーリエ変換による分析演算stFFT(ｔb)を行い、分析演算結果をDATA(ｔb)とする。一方、Ｓ２７においては、分析演算結果DATA(ｔb)をテンポラリバッファ（TMP）から読み出す。いずれの場合もＳ２８に処理を進め、分析ポイントｔにおける分析演算結果DATA(ｔ)に基づいて、仮決定された次の分析ポイントｔbにおける予測演算Predict[DATA(ｔ),ｔb]を行い、予測演算結果をPDATA(ｔb)とする。ここでは、分析演算結果として、各周波数成分の位相データおよび振幅データの予測を行うものとする。
【００３８】
位相データの予測については既に説明した。振幅データの予測は、各スペクトル成分について、最後に確定した分析ポイント（基準となる分析ポイントの場合を含む）の振幅データが、仮決定された次の分析ポイントにおいてもそのまま維持されているものとして行う。あるいは、最後に確定した振幅データおよびその１つ前に確定した分析ポイントの振幅データから外挿補間して予測する。すなわち、外挿を直線補間でする場合には、上述した２つの確定した分析ポイントを直線で結び、この直線を予測振幅直線として、仮決定された次の分析ポイントにおける振幅の予測値を計算する。
なお、周波数データについても予測する場合には、各周波数成分の周波数データについて、振幅データと同様に、最後に確定した分析ポイントの周波数データが、仮決定された次の分析ポイントにおいてもそのまま維持されているものとして行う。あるいは、各周波数成分について、最後に確定した分析ポイントの周波数データおよびその１つ前に確定した分析ポイントの周波数データから外挿補間して予測する。
【００３９】
Ｓ２９において、仮決定された次の分析ポイントｔbにおける、分析演算結果DATA(ｔb)と予測演算結果PDATA(ｔb)とを比較する。予測演算結果PDATA(ｔb)と分析演算結果DATA(ｔb)との比較方法としては、例えば、DATA(ｔb), PDATA(ｔb)内の、各対応する周波数成分の対応するデータ同士の差の絶対値の累計値、または、差の二乗の値の累計値を用いる。差の絶対値を用いる場合は次式のようにする。
Σ{|phaseiDATA(ｔb)−phaseiPDATA(ｔb)|＋|magiDATA(ｔb)−magiPDATA(ｔb)|}ここで、phasei(ｔ) ，magi(ｔ)（ｉ＝１〜ｎ）は、それぞれ、分析ポイントｔにおける、第ｉ倍音成分の位相，振幅を表わす。基音成分は第１倍音とする。各位相データは、０以上２π未満の値として用いられ、位相差は、位相の正および負方向の位相差のうち、小さい方の値とする。
【００４０】
この例では、基音成分から所定の第ｎ倍音までの分析演算結果および予測演算結果を用いている。これに代えて、分析データの倍音の中から、重要と判断される少ない数の周波数成分についてのみ予測を行ってもよい。例えば、基音成分についてのみ予測を行ってもよい。
【００４１】
Ｓ３０においては、予測誤差が許容範囲外であるか否かを判定し、許容範囲外であればＳ３１に処理を進め、許容範囲内であればＳ３６に処理を進める。
Ｓ３１においては、Ｔ／２(k+1)＜1／ｆsであるか否かを判定する。この判定は、確定された分析ポイントから仮決定された次の分析ポイントへの時間窓の移動距離Ｔ／２(k+1)が、分析対象波形のサンプリングポイント間隔1／fs未満になるか否かを調べるものである。
最初はｋ＝０であったから、移動距離は初期値Ｔの１／２となる。上述した条件を満足すれば、仮決定された次の分析ポイントまでの移動距離を、短くすることが可能であるので、Ｓ３３に処理を進める。満足しなければ、仮決定された次の分析ポイントの移動距離を、これ以上短くできないので、仮決定された次の分析ポイントの再設定処理をあきらめて、Ｓ３２に処理を進める。
【００４２】
Ｓ３３においては、テンポラリバッファ（TMP）に分析演算結果DATA(ｔb)をセーブする。Ｓ３４においてｋを＋１し、Ｓ３５においては、時間窓の移動距離、すなわち、時間窓の中心である分析ポイントの移動距離をＴ／２kに短縮する変更をし、ｔbをｔ＋Ｔ／２kとする。この計算は、移動距離のデータが２進数で表現されているときに、１ビットシフトすることにより実現される。図４（ｂ）においては、このｔbをｔb2と記載している。
次に、Ｓ２５に処理を戻し、再度、短時間フーリエ変換による分析演算を行う。Ｓ２５に処理を戻す際に、既に説明したように、テンポラリバッファ（TMP）に残っている不要なデータを整理する。
一方、Ｓ３２においては、図４（ａ）に示す、順方向の分析が終了したか否かを判定し、終了したときにはＳ３８に処理を進め、終了していないときには、Ｓ３６に処理を進める。
順方向の分析の終了ポイントは、楽音波形のサンプリングデータを予め調べておき、周波数分析を行いたい範囲に応じて予め設定しておけばよい。
【００４３】
Ｓ３６においては、次の分析ポイントとして確定された分析ポイントの分析演算結果DATA(ｔb)を、トーンファイル（TONEFILE）にセーブし、Ｓ３７においては、最後に確定された分析ポイントｔを、確定された次の分析ポイントに移動させる。
すなわち、仮決定された次の分析ポイントｔbを最後に確定された分析ポイントとし、新たに仮決定された次の分析ポイントまでの移動距離を初期値Ｔに戻し、次の移動距離ｔbをｔ＋Ｔとする。変数kも初期値０に戻す。このような設定を行った後、Ｓ２５に処理を戻し、新たに確定された分析ポイントｔについて、これまでと同様な短時間フーリエ変換による分析演算を行う。
【００４４】
一方、Ｓ３８においては、基準となる分析ポイントｔmから遡行方向（楽音波形の開始点方向）にある部分、図４（ａ）の例では、分析対象波形のアタック部の分析処理を行う。具体的な処理ステップは省略するが、分析ポイントの移動距離Ｔを負の値とすることを除き、これまで説明した順方向処理Ｓ２２〜Ｓ３７のステップと、同様である。
遡行方向の分析の終了サンプリングポイントも、分析を行いたい範囲に応じて予め設定しておく。楽音波形の立上がりの開始点付近は切り捨てる場合がある。
【００４５】
Ｓ３８が終了した時点で、トーンファイル（TONEFILE）が完成する。トーンファイルには、次のようなデータが格納されている。
TONEFILE={DATA(0), ... ,DATA(ｔm), ... ,DATA(t), ...}
ここで、DATA(ｔ)={mag1(ｔ),freq1(ｔ),phase1(ｔ); mag2(ｔ),freq2(ｔ）,phase2(ｔ); ....; magn(ｔ),freqn(ｔ),phasen(ｔ)}である。
ここで、magi(ｔ),freqi(ｔ),phasei(ｔ)（ｉ＝１〜ｎ）は、分析ポイントｔにおける、第ｉ倍音成分の振幅，周波数，位相を表わす。
ここで、これまでの位相予測に用いたような各周波数成分に対応する波形の位相データに代えて、既に説明した、各周波数成分の基準位相に対する位相差のデータを格納してもよい。
【００４６】
図４（ｂ）を参照して、波形分析装置における分析ポイントの移動態様を例示する。
基準となる分析ポイントｔmにおいて、時間窓の移動距離の初期値をＴとすると、仮決定された次の分析ポイントは、ｔb1＝ｔm＋Ｔとなる。このとき、予測値と分析値との誤差が許容範囲外であったときに移動距離をＴ／２とする。仮決定された分析ポイントは、ｔb2＝ｔm＋Ｔ／２となる。
このとき、誤差がまだ許容範囲外であるときに、移動距離をＴ／４とする。仮決定された分析ポイントは、ｔb3＝ｔm＋Ｔ／４となる。
このとき、誤差が、いまだ許容範囲外であるときに、移動距離をＴ／８とする。仮決定された分析ポイントは、ｔb4＝ｔm＋Ｔ／８となる。
ここで、初めて予測値と分析値との誤差が許容範囲内となれば、基準となる分析ポイントｔmの次に確定する分析ポイントは、tb4＝ｔm＋Ｔ／８となる。
次の分析フレームにおける、仮決定された分析ポイントは、ｔb5＝ｔm＋Ｔ（１／８＋１）=tm＋９Ｔ／８となる。
ここで、誤差が許容範囲外であったときに、仮決定された次の分析ポイントは、ｔb6＝ｔm＋Ｔ（１／８＋１／２）＝ｔm＋５Ｔ／８となる。
誤差が、いまだ、許容範囲外であったときに、仮決定された次の分析ポイントは、ｔb7＝ｔm＋Ｔ（１／８＋１／４）＝ｔm＋３Ｔ／８となる。
【００４７】
いまだ、予測値と分析値との比較誤差が許容範囲外であったときに、仮決定された次の分析ポイントは、ｔb8＝ｔm＋Ｔ（１／８＋１／８）＝ｔm＋Ｔ／４となる。この分析ポイントは、既に分析済みの仮決定された分析ポイントｔb3と同一であるから、再度の分析演算をすることなく、テンポラリレジスタ（TMP）に格納されている演算結果DATA(ｔm＋Ｔ／４)が使える。
この分析ポイントｔb8において、予測値と分析値との比較誤差が許容範囲内になれば、これ以前の分析ポイントの演算結果DATA(ｔm)，DATA(ｔm＋Ｔ／８)は不要となる。ただし、基準となる分析ポイントの演算結果DATA(ｔm)は、遡行方向の分析においては必要であるので残しておく。
【００４８】
上述したフローチャートでは、分析ポイントの移動距離を分析対象波形に応じて適応的に制御して分析ポイントを順次確定させた。
これに代えて、基準となる分析ポイントからの移動距離を１回だけ適応的に制御して設定し、以後の分析ポイントは、設定された移動距離を固定してそのまま使用し、順次分析ポイントを確定して周波数分析してもよい。
その際、基準となる分析ポイントから時間軸の順方向と遡行方向とに、独立してそれぞれ１回だけ移動距離を適応的に制御して設定し、順方向，遡行方向とに、それぞれ設定された移動距離を固定して、順次分析ポイントを確定して周波数分析してもよい。
【００４９】
図４（ａ）において、例えば、アタックマックスポイントの他に、第１ディケイ部と第２ディケイ部との境界など、複数のサンプリングポイントに基準となる分析ポイントを設定することができる。
例えば、第１の方法として、第１ディケイ部内の分析ポイントは、アタックマックスポイントを基準となる分析ポイントとして順方向に分析ポイントを順次確定して行き、第２ディケイ部内の分析ポイントは、第１ディケイ部と第２ディケイ部との境界を、基準となる分析ポイントとして順方向に順次確定して行く。アタック部内の分析ポイントは、アタックマックスポイントを基準となる分析ポイントとして遡行方向に分析ポイントを順次確定して行く。
第２の方法として、第１ディケイ部内の分析ポイントについては、２つの基準となる分析ポイントの中間を境に、アタックマックスポイントに近い分析ポイントは、アタックマックスポイントを基準となる分析ポイントとして順方向に分析ポイントを順次確定して行き、第２ディケイ部に近い分析ポイントは、第１ディケイ部と第２ディケイ部との境界の基準となる分析ポイントから、遡行方向に順次確定して行く。
【００５０】
【発明の効果】
本発明は、上述した説明から明らかなように、波形の変動に適応して周波数分析の分析ポイントの移動距離を制御するようにしたので、波形分析を高速化することができるという効果がある。
【図面の簡単な説明】
【図１】  本発明の波形分析方法および装置の実施の一形態を説明するための機能ブロック構成図である。
【図２】  本発明の波形分析方法および装置の実施の一形態において、時間窓の移動距離を自動的に決定するアルゴリズムを説明するための線図である。
【図３】  本発明の波形分析方法および装置の実施の一形態の具体的な分析動作のフローチャートである。
【図４】  本発明の波形分析方法および装置の実施の一形態の具体的な分析動作を説明するための説明図である。
【図５】  従来の波形分析装置の実施の一形態を示す波形分析合成装置のハードウエア構成のブロック図である。
【図６】  従来の短時間フーリエ変換を用いた分析の説明図である。
【図７】  楽音波形の一例を示す波形図である。
【符号の説明】
１  分析対象波形サンプル記憶部、２  短時間フーリエ変換部、３  分析値予測部、４  比較部、５  出力部、６  分析ポイントの仮決定制御部
【図１】
0003744315.tif 000002
【図２】
0003744315.tif 000003
【図３】
0003744315.tif 000004
【図４】
0003744315.tif 000005
【図５】
0003744315.tif 000006
【図６】
0003744315.tif 000007
【図７】
0003744315.tif 000008