(57)【特許請求の範囲】
【請求項１】
時間的に振幅が変化する時系列信号から、その構成要素となる複数の周期信号を抽出する時系列信号の解析方法であって、
解析対象となる時系列信号を、それぞれ所定の振幅をもった一連のサンプルからなるデジタルデータとして取り込む入力段階と、
取り込んだ時系列信号の時間軸上に複数の単位区間を設定する区間設定段階と、
複数通りの周波数を設定し、各周波数をもった周期関数を定義する周期関数定義段階と、
各単位区間内の時系列信号をそれぞれ各単位区間についての区間信号として抽出し、各区間信号と前記各周期関数との相関を計算し、その結果を各単位区間ごとに出力する相関演算段階と、
を有し、
前記区間設定段階において、
予め、単位区間についての最小区間長と最大区間長とを定めておき、
時間軸上における所定の起点を第１の単位区間の始点とし、以下、前の単位区間の終点または終点以降に位置する点を次の単位区間の始点として、時間軸上に複数の単位区間を順次設定する処理を行うようにし、
１つの単位区間の終点を決める際に、当該単位区間の区間長が前記最小区間長〜前記最大区間長の範囲となるように、かつ、時系列信号を構成する一連のサンプルについて、１つのサンプルの振幅の符号が直前のサンプルの振幅の符号に対して反転している箇所を零交差点として検出し、いずれかの零交差点を構成するサンプルの位置が単位区間の終点として選択されるように、終点を決めることを特徴とする時系列信号の解析方法。
【請求項２】
請求項１に記載の時系列信号の解析方法において、
始点および終点を除いた単位区間内に奇数個の零交差点が含まれる、という条件を満たすように、終点を決めることを特徴とする時系列信号の解析方法。
【請求項３】
請求項１または２に記載の時系列信号の解析方法において、
隣接する零交差点間に存在するサンプルの中で振幅の絶対値が最大となるピークサンプルを求め、各ピークサンプルの振幅の絶対値をピーク値と定義したときに、このピーク値が極小となるようなピークサンプルの近傍に位置する極小零交差点を求め、この極小零交差点を構成するサンプルの位置を単位区間の終点として選択することを特徴とする時系列信号の解析方法。
【請求項４】
請求項１〜３のいずれかに記載の時系列信号の解析方法において、
相関演算段階で、区間信号と特定の周期関数との相関を求める際に、当該特定の周期関数の周期の整数倍の長さをもった区間のうち、当該単位区間を越えない範囲内で最大の長さをもった区間を、相関計算対象区間と定め、この相関計算対象区間内についての相関のみを計算するようにしたことを特徴とする時系列信号の解析方法。
【請求項５】
請求項１〜４のいずれかに記載の時系列信号の解析方法において、
相関演算段階で、区間信号と各周期関数との相関を計算する際に、第ｊ番目の差分信号Ｓ（ｊ）と周期関数定義段階で定義されたすべての周期関数との相関を求め、最大の相関が得られた周期関数を第ｊ番目の要素関数として抽出し、この要素関数にその相関値を乗じることにより第ｊ番目の含有信号Ｇ（ｊ）を求め、前記差分信号Ｓ（ｊ）から前記含有信号Ｇ（ｊ）を減じることにより得られる信号を新たな差分信号Ｓ（ｊ＋１）とする処理を、前記区間信号を第１番目の差分信号Ｓ（１）として、ｊ＝１〜Ｊ（Ｊは任意の整数）までＪ回繰り返し実行し、得られたＪ個の含有信号Ｇ（１）〜Ｇ（Ｊ）を、当該区間に関する相関演算の結果として出力することを特徴とする時系列信号の解析方法。
【請求項６】
時間的に振幅が変化する時系列信号として与えられた音響信号を符号化する方法であって、
与えられた時系列信号を、それぞれ所定の振幅をもった一連のサンプルからなるデジタルデータとして取り込む入力段階と、
取り込んだ時系列信号の時間軸上に複数の単位区間を設定する区間設定段階と、
複数通りの周波数を設定し、各周波数をもった周期関数を定義する周期関数定義段階と、
各単位区間内の時系列信号をそれぞれ各単位区間についての区間信号として抽出し、各区間信号と前記各周期関数との相関を示す相関値をそれぞれ計算する相関演算段階と、
各単位区間について、相関値が大きい順にＱ個の周期関数をそれぞれ選出し、選出された周期関数の周波数に対応する「音の高さを示す情報」、選出された周期関数の相関値に対応する「音の強さを示す情報」、当該単位区間の始点に対応する「音の発音開始時刻を示す情報」、当該単位区間の終点に対応する「音の発音終了時刻を示す情報」、なる４つの情報を含むＱ個の符号データを作成し、１つの単位区間内の音響信号をＱ個の符号データにより符号化する符号化段階と、
を有し、
前記区間設定段階において、
予め、単位区間についての最小区間長と最大区間長とを定めておき、
時間軸上における所定の起点を第１の単位区間の始点とし、以下、前の単位区間の終点または終点以降に位置する点を次の単位区間の始点として、時間軸上に複数の単位区間を順次設定する処理を行うようにし、
１つの単位区間の終点を決める際に、当該単位区間の区間長が前記最小区間長〜前記最大区間長の範囲となるように、かつ、時系列信号を構成する一連のサンプルについて、１つのサンプルの振幅の符号が直前のサンプルの振幅の符号に対して反転している箇所を零交差点として検出し、いずれかの零交差点を構成するサンプルの位置が単位区間の終点として選択されるように、終点を決めることを特徴とする音響信号の符号化方法。
【請求項７】
請求項６に記載の音響信号の符号化方法において、
符号化段階で、第１の符号データの発音終了時刻と第２の符号データの発音開始時刻が一致し、これら２つの符号データに含まれる「音の高さを示す情報」および「音の強さを示す情報」が所定の許容範囲で類似している場合に、前記第１の符号データの発音終了時刻を前記第２の符号データの発音終了時刻に変更するとともに前記第２の符号データを削除することにより、これら２つの符号データを単一の符号データに統合する処理を更に行うことを特徴とする音響信号の符号化方法。
【請求項８】
請求項６または７に記載の音響信号の符号化方法において、
符号化段階で、「音の高さを示す情報」としてノートナンバーを用い、「音の強さを示す情報」としてベロシティーを用い、「音の発音開始時刻を示す情報」としてノートオン時刻を用い、「音の発音終了時刻を示す情報」としてノートオフ時刻を用い、符号データとしてＭＩＤＩデータを作成することを特徴とする音響信号の符号化方法。
【請求項９】
請求項６〜８のいずれかに記載の音響信号の符号化方法において、
区間設定段階で、始点および終点を除いた単位区間内に奇数個の零交差点が含まれる、という条件を満たすように、終点を決めることを特徴とする音響信号の符号化方法。
【請求項１０】
請求項６〜９のいずれかに記載の音響信号の符号化方法において、
区間設定段階で、隣接する零交差点間に存在するサンプルの中で振幅の絶対値が最大となるピークサンプルを求め、各ピークサンプルの振幅の絶対値をピーク値と定義したときに、このピーク値が極小となるようなピークサンプルの近傍に位置する極小零交差点を求め、この極小零交差点を構成するサンプルの位置を単位区間の終点として選択することを特徴とする音響信号の符号化方法。
【請求項１１】
請求項６〜１０のいずれかに記載の音響信号の符号化方法において、
相関演算段階で、区間信号と特定の周期関数との相関を求める際に、当該特定の周期関数の周期の整数倍の長さをもった区間のうち、当該単位区間を越えない範囲内で最大の長さをもった区間を、相関計算対象区間と定め、この相関計算対象区間内についての相関のみを計算するようにしたことを特徴とする音響信号の符号化方法。
【請求項１２】
請求項６〜１１のいずれかに記載の音響信号の符号化方法において、
相関演算段階で、区間信号と各周期関数との相関を計算する際に、第ｊ番目の差分信号Ｓ（ｊ）と周期関数定義段階で定義されたすべての周期関数との相関を求め、最大の相関が得られた周期関数を第ｊ番目の要素関数として抽出し、この要素関数にその相関値を乗じることにより第ｊ番目の含有信号Ｇ（ｊ）を求め、前記差分信号Ｓ（ｊ）から前記含有信号Ｇ（ｊ）を減じることにより得られる信号を新たな差分信号Ｓ（ｊ＋１）とする処理を、前記区間信号を第１番目の差分信号Ｓ（１）として、ｊ＝１〜Ｊ（Ｊは任意の整数）までＪ回繰り返し実行し、得られたＪ個の含有信号Ｇ（１）〜Ｇ（Ｊ）を、当該区間の相関値とすることを特徴とする音響信号の符号化方法。
【請求項１３】
請求項１〜１２のいずれかに記載の時系列信号の解析方法または音響信号の符号化方法をコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は時系列信号の解析方法および音響信号の符号化方法に関し、時系列の強度信号として与えられる時系列信号から、その構成要素となる複数の周期信号を抽出することにより解析を行い、更に、この解析方法を利用して音響信号を符号化する技術に関する。特に、本発明は一般の音響信号を、ＭＩＤＩ形式の符号データに効率良く変換する処理への利用に適しており、放送メディア（ラジオ、テレビ）、通信メディア（ＣＳ映像・音声配信、インターネット配信）、パッケージメディア（ＣＤ、ＭＤ、カセット、ビデオ、ＬＤ、ＣＤ−ＲＯＭ、ゲームカセット）などで提供する各種オーディオコンテンツを制作する種々の産業分野や、医療聴診音（たとえば、心音）などの各種音響信号解析や診断の分野への応用が期待される。
【０００２】
【従来の技術】
音響信号に代表される時系列信号には、その構成要素として複数の周期信号が含まれている。このため、与えられた時系列信号にどのような周期信号が含まれているかを解析する手法は、古くから知られている。たとえば、フーリエ解析は、与えられた時系列信号に含まれる周波数成分を解析するための方法として広く利用されている。
【０００３】
このような時系列信号の解析手法を利用すれば、音響信号を符号化することも可能である。コンピュータの普及により、原音となるアナログ音響信号を所定のサンプリング周波数でサンプリングし、各サンプリング時の信号強度を量子化してデジタルデータとして取り込むことが容易にできるようになってきており、こうして取り込んだデジタルデータに対してフーリエ解析などの手法を適用し、原音信号に含まれていた周波数成分を抽出すれば、各周波数成分を示す符号によって原音信号の符号化が可能になる。
【０００４】
一方、電子楽器による楽器音を符号化しようという発想から生まれたＭＩＤＩ（Musical Instrument Digital Interface）規格も、パーソナルコンピュータの普及とともに盛んに利用されるようになってきている。このＭＩＤＩ規格による符号データ（以下、ＭＩＤＩデータという）は、基本的には、楽器のどの鍵盤キーを、どの程度の強さで弾いたか、という楽器演奏の操作を記述したデータであり、このＭＩＤＩデータ自身には、実際の音の波形は含まれていない。そのため、実際の音を再生する場合には、楽器音の波形を記憶したＭＩＤＩ音源が別途必要になるが、その符号化効率の高さが注目を集めており、ＭＩＤＩ規格による符号化および復号化の技術は、現在、パーソナルコンピュータを用いて楽器演奏、楽器練習、作曲などを行うソフトウエアに広く採り入れられている。
【０００５】
そこで、音響信号に代表される時系列信号に対して、所定の手法で解析を行うことにより、その構成要素となる周期信号を抽出し、抽出した周期信号をＭＩＤＩデータを用いて符号化しようとする提案がなされている。たとえば、特開平１０−２４７０９９号公報、特開平１１−７３１９９号公報、特開平１１−７３２００号公報、特開平１１−９５７５３号公報、特願平１０−２８３４５３号明細書、特願平１０−２８３４５４号明細書、特願平１１−５８４３１号明細書、特願平１１−１７７８７５号明細書、特願平１１−３２９２９７号明細書、には、任意の時系列信号について、構成要素となる周波数成分を解析し、その解析結果からＭＩＤＩデータを作成することができる種々の方法が提案されている。
【０００６】
【発明が解決しようとする課題】
前掲の各文献に開示された解析方法は、いずれも、解析対象となる時系列信号の時間軸に沿って複数の単位区間を設定し、各単位区間ごとに相関の高い所定の周期関数を対応させ、各周期関数に相当する信号を構成要素となる周期信号として抽出するという手順を採っている。このとき、１つの単位区間の長さをどのように設定するかは、解析結果に大きな影響を与える重要な問題である。すなわち、区間長を短く設定すればするほど、時間分解能が向上するため、音声信号（ボーカル信号）などの周波数変化を解析するには好都合であるが、逆に、周波数分解能は低下するため、解析精度は低下するという問題が生じることになる。そこで従来は、１つの単位区間の中に、解析に最も都合が良いと思われるサンプル数（たとえば、１０２４サンプル）が含まれるように、標準的な区間長を予め定めておき、この固定の区間長に基づいて時間軸を機械的に区切ってゆくという方法を採るのが一般的である。
【０００７】
しかしながら、固定長の単位区間を機械的に設定するという方法では、解析対象となる時系列信号がどのような信号であるかに拘らず、常に一義的な区間設定が行われることになるため、単位区間の境界部分において不連続性が生じるおそれがある。すなわち、隣接する単位区間についての周波数解析の結果に、大きな差が生じてしまうことがある。一般に、得られた周波数解析の結果を、スペクトルのグラフとして観察するために利用するような場合には、単位区間の境界において解析結果に差が生じていても、大きな問題にはならない。ところが、音響信号に対する解析結果を利用して、原音響信号に対応する符号データを作成するような場合、境界部分における不連続性は大きな問題となる。このような方法で符号化されたデータに基づいて、原音響信号を再生しようとすると、単位区間の境界において、音程の急激な変動が生じたり、音とびが生じたりすることになる。
【０００８】
このような境界における不連続性を避けるために、時間軸上において単位区間を部分的に重複させて設定する方法も提案されているが、時間軸上の同一部分に対して重複した解析処理が必要になるため、演算負担が増加するという別な問題が生じることになる。
【０００９】
そこで本発明は、時系列信号を互いに重複することのない複数の単位区間に分割しつつ、単位区間の境界において解析結果に不連続性が生じることのない正確な周波数解析を行うことができ、原音響信号の符号化を高い品質をもって行うことが可能な時系列信号の解析方法および音響信号の符号化方法を提供することを目的とする。
【００１０】
【課題を解決するための手段】
(1)   本発明の第１の態様は、時間的に振幅が変化する時系列信号から、その構成要素となる複数の周期信号を抽出する時系列信号の解析方法において、
解析対象となる時系列信号を、それぞれ所定の振幅をもった一連のサンプルからなるデジタルデータとして取り込む入力段階と、
取り込んだ時系列信号の時間軸上に複数の単位区間を設定する区間設定段階と、
複数通りの周波数を設定し、各周波数をもった周期関数を定義する周期関数定義段階と、
各単位区間内の時系列信号をそれぞれ各単位区間についての区間信号として抽出し、各区間信号と各周期関数との相関を計算し、その結果を各単位区間ごとに出力する相関演算段階と、
を行うようにし、
区間設定段階において、
予め、単位区間についての最小区間長と最大区間長とを定めておき、
時間軸上における所定の起点を第１の単位区間の始点とし、以下、前の単位区間の終点または終点以降に位置する点を次の単位区間の始点として、時間軸上に複数の単位区間を順次設定する処理を行うようにし、
１つの単位区間の終点を決める際に、当該単位区間の区間長が最小区間長〜最大区間長の範囲となるように、かつ、時系列信号を構成する一連のサンプルについて、１つのサンプルの振幅の符号が直前のサンプルの振幅の符号に対して反転している箇所を零交差点として検出し、いずれかの零交差点を構成するサンプルの位置が単位区間の終点として選択されるように、終点を決めるようにしたものである。
【００１２】
(2)   本発明の第２の態様は、上述の第１の態様に係る時系列信号の解析方法において、
始点および終点を除いた単位区間内に奇数個の零交差点が含まれる、という条件を満たすように、終点を決めるようにしたものである。
【００１３】
(3)   本発明の第３の態様は、上述の第１または２の態様に係る時系列信号の解析方法において、
隣接する零交差点間に存在するサンプルの中で振幅の絶対値が最大となるピークサンプルを求め、各ピークサンプルの振幅の絶対値をピーク値と定義したときに、このピーク値が極小となるようなピークサンプルの近傍に位置する極小零交差点を求め、この極小零交差点を構成するサンプルの位置を単位区間の終点として選択するようにしたものである。
【００１４】
(4)   本発明の第４の態様は、上述の第１〜第３の態様に係る時系列信号の解析方法において、
相関演算段階で、区間信号と特定の周期関数との相関を求める際に、当該特定の周期関数の周期の整数倍の長さをもった区間のうち、当該単位区間を越えない範囲内で最大の長さをもった区間を、相関計算対象区間と定め、この相関計算対象区間内についての相関のみを計算するようにしたものである。
【００１５】
(5)   本発明の第５の態様は、上述の第１〜第４の態様に係る時系列信号の解析方法において、
相関演算段階で、区間信号と各周期関数との相関を計算する際に、第ｊ番目の差分信号Ｓ（ｊ）と周期関数定義段階で定義されたすべての周期関数との相関を求め、最大の相関が得られた周期関数を第ｊ番目の要素関数として抽出し、この要素関数にその相関値を乗じることにより第ｊ番目の含有信号Ｇ（ｊ）を求め、差分信号Ｓ（ｊ）から含有信号Ｇ（ｊ）を減じることにより得られる信号を新たな差分信号Ｓ（ｊ＋１）とする処理を、区間信号を第１番目の差分信号Ｓ（１）として、ｊ＝１〜Ｊ（Ｊは任意の整数）までＪ回繰り返し実行し、得られたＪ個の含有信号Ｇ（１）〜Ｇ（Ｊ）を、当該区間に関する相関演算の結果として出力するようにしたものである。
【００１６】
(6)   本発明の第６の態様は、時間的に振幅が変化する時系列信号として与えられた音響信号を符号化する音響信号の符号化方法において、
与えられた時系列信号を、それぞれ所定の振幅をもった一連のサンプルからなるデジタルデータとして取り込む入力段階と、
取り込んだ時系列信号の時間軸上に複数の単位区間を設定する区間設定段階と、
複数通りの周波数を設定し、各周波数をもった周期関数を定義する周期関数定義段階と、
各単位区間内の時系列信号をそれぞれ各単位区間についての区間信号として抽出し、各区間信号と各周期関数との相関を示す相関値をそれぞれ計算する相関演算段階と、
各単位区間について、相関値が大きい順にＱ個の周期関数をそれぞれ選出し、選出された周期関数の周波数に対応する「音の高さを示す情報」、選出された周期関数の相関値に対応する「音の強さを示す情報」、当該単位区間の始点に対応する「音の発音開始時刻を示す情報」、当該単位区間の終点に対応する「音の発音終了時刻を示す情報」、なる４つの情報を含むＱ個の符号データを作成し、１つの単位区間内の音響信号をＱ個の符号データにより符号化する符号化段階と、
を行うようにし、
区間設定段階において、
予め、単位区間についての最小区間長と最大区間長とを定めておき、
時間軸上における所定の起点を第１の単位区間の始点とし、以下、前の単位区間の終点または終点以降に位置する点を次の単位区間の始点として、時間軸上に複数の単位区間を順次設定する処理を行うようにし、
１つの単位区間の終点を決める際に、当該単位区間の区間長が最小区間長〜最大区間長の範囲となるように、かつ、時系列信号を構成する一連のサンプルについて、１つのサンプルの振幅の符号が直前のサンプルの振幅の符号に対して反転している箇所を零交差点として検出し、いずれかの零交差点を構成するサンプルの位置が単位区間の終点として選択されるように、終点を決めるようにしたものである。
【００１７】
(7)   本発明の第７の態様は、上述の第６の態様に係る音響信号の符号化方法において、
符号化段階で、第１の符号データの発音終了時刻と第２の符号データの発音開始時刻が一致し、これら２つの符号データに含まれる「音の高さを示す情報」および「音の強さを示す情報」が所定の許容範囲で類似している場合に、第１の符号データの発音終了時刻を第２の符号データの発音終了時刻に変更するとともに第２の符号データを削除することにより、これら２つの符号データを単一の符号データに統合する処理を更に行うようにしたものである。
【００１８】
(8)   本発明の第８の態様は、上述の第６または第７の態様に係る音響信号の符号化方法において、
符号化段階で、「音の高さを示す情報」としてノートナンバーを用い、「音の強さを示す情報」としてベロシティーを用い、「音の発音開始時刻を示す情報」としてノートオン時刻を用い、「音の発音終了時刻を示す情報」としてノートオフ時刻を用い、符号データとしてＭＩＤＩデータを作成するようにしたものである。
【００１９】
(9)   本発明の第９の態様は、上述の第１〜第８の態様に係る時系列信号の解析方法または音響信号の符号化方法をコンピュータに実行させるためのプログラムを、コンピュータ読み取り可能な記録媒体に記録するようにしたものである。
【００２０】
【発明の実施の形態】
以下、本発明を図示する実施形態に基づいて説明する。
【００２１】
§１．本発明に係る解析方法および符号化方法の基本原理
はじめに、本発明に係る時系列信号の解析方法および音響信号の符号化方法の基本原理を述べておく。この基本原理は、前掲の各公報あるいは明細書に開示されているので、ここではその概要のみを簡単に述べることにする。
【００２２】
いま、図１(a) に示すように、時系列信号としてアナログ音響信号が与えられたものとしよう。図示の例では、横軸に時間ｔ、縦軸に振幅（強度）をとってこの音響信号を示している。ここでは、まずこのアナログ音響信号を、デジタルの音響データとして取り込む処理を行う。これは、従来の一般的なＰＣＭの手法を用い、所定のサンプリング周期でこのアナログ音響信号をサンプリングし、振幅を所定の量子化ビット数を用いてデジタルデータに変換する処理を行えばよい。すなわち、この音響信号は、それぞれ所定の振幅をもった一連のサンプルからなるデジタルデータとして取り込まれることになる。
【００２３】
続いて、この解析対象となる音響信号の時間軸上に、複数の単位区間を設定する。図１(a) に示す例では、時間軸ｔ上に等間隔に６つの時刻ｔ１〜ｔ６が定義され、これら各時刻を始点および終点とする５つの単位区間ｄ１〜ｄ５が設定されている。もっとも、この図１に示す例は、従来提案されている一般的な解析方法における単位区間の設定例であり、すべて同一の固定区間長をもった単位区間が時間軸上で機械的に割り当てられている。本発明のポイントは、この単位区間の設定方法にあり、従来のように固定区間長を定めて機械的に割り当てる代わりに、解析対象となる音響信号の内容に応じた変動区間を設定する点にある。その詳細な方法については後述する。
【００２４】
こうして単位区間が設定されたら、各単位区間ごとの音響信号（以下、区間信号と呼ぶことにする）について、それぞれ代表周波数を選出する。各区間信号には、通常、様々な周波数成分が含まれているが、たとえば、その中で振幅の大きな周波数成分を代表周波数として選出すればよい。代表周波数は１つだけ選出してもよいが、複数Ｑ個の代表周波数を選出した方が、より精度の高い符号化が可能になる。図１(b) には、個々の単位区間ごとにそれぞれ３つの代表周波数（Ｑ＝３）を選出し、１つの代表周波数を１つの代表符号コード（図では便宜上、音符として示してある）として符号化した例が示されている。ここでは、代表符号コード（音符）を収容するために３つのトラックＴ１，Ｔ２，Ｔ３が設けられているが、これは個々の単位区間ごとに選出された３つずつの代表符号コードを、それぞれ異なるトラックに収容するためである。なお、ここでの「コード」は記号を意味する「code」の意味であり、和音を示す「chord」の意味ではない。
【００２５】
たとえば、単位区間ｄ１について選出された代表符号コードｎ（ｄ１，１），ｎ（ｄ１，２），ｎ（ｄ１，３）は、それぞれトラックＴ１，Ｔ２，Ｔ３に収容されている。ここで、各コードｎ（ｄ１，１），ｎ（ｄ１，２），ｎ（ｄ１，３）は、ＭＩＤＩ符号におけるノートナンバーを示すコードである。ＭＩＤＩ符号におけるノートナンバーは、０〜１２７までの１２８通りの値をとり、それぞれピアノの鍵盤の１つのキーを示すことになる。具体的には、たとえば、代表周波数として４４０Ｈｚが選出された場合、この周波数はノートナンバーｎ＝６９（ピアノの鍵盤中央の「ラ音（Ａ３音）」に対応）に相当するので、代表符号コードとしては、ｎ＝６９が選出されることになる。もっとも、図１(b) は、上述の方法によって得られる代表符号コードを音符の形式で示した概念図であり、実際には、各音符にはそれぞれ強度に関するデータも付加されている。たとえば、トラックＴ１には、ノートナンバーｎ（ｄ１，１），ｎ（ｄ２，１）…なる音階を示すデータとともに、ｅ（ｄ１，１），ｅ（ｄ２，１）…なる強度を示すデータが収容されることになる。この強度を示すデータは、各代表周波数の成分が、もとの区間信号にどの程度の度合いで含まれていたかによって決定される。具体的には、各代表周波数をもった周期関数の区間信号に対する相関値に基づいて強度を示すデータが決定されることになる。また、図１(b) に示す概念図では、音符の横方向の位置によって、個々の単位区間の時間軸上での位置が示されているが、実際には、この時間軸上での位置を正確に数値として示すデータが各音符に付加されていることになる。
【００２６】
音響信号を符号化する形式としては、必ずしもＭＩＤＩ形式を採用する必要はないが、この種の符号化形式としてはＭＩＤＩ形式が最も普及しているため、実用上はＭＩＤＩ形式の符号データを用いるのが最も好ましい。ＭＩＤＩ形式では、「ノートオン」データもしくは「ノートオフ」データが、「デルタタイム」データを介在させながら存在する。「ノートオン」データは、特定のノートナンバーＮとベロシティーＶとを指定して特定の音の演奏開始を指示するデータであり、「ノートオフ」データは、特定のノートナンバーＮとベロシティーＶとを指定して特定の音の演奏終了を指示するデータである。また、「デルタタイム」データは、所定の時間間隔を示すデータである。ベロシティーＶは、たとえば、ピアノの鍵盤などを押し下げる速度（ノートオン時のベロシティー）および鍵盤から指を離す速度（ノートオフ時のベロシティー）を示すパラメータであり、特定の音の演奏開始操作もしくは演奏終了操作の強さを示すことになる。
【００２７】
前述の方法では、第ｉ番目の単位区間ｄｉについて、代表符号コードとしてＱ個のノートナンバーｎ（ｄｉ，１），ｎ（ｄｉ，２），…，ｎ（ｄｉ，Ｑ）が得られ、このそれぞれについて強度ｅ（ｄｉ，１），ｅ（ｄｉ，２），…，ｅ（ｄｉ，Ｑ）が得られる。そこで、次のような手法により、ＭＩＤＩ形式の符号データを作成することができる。まず、「ノートオン」データもしくは「ノートオフ」データの中で記述するノートナンバーＮとしては、得られたノートナンバーｎ（ｄｉ，１），ｎ（ｄｉ，２），…，ｎ（ｄｉ，Ｑ）をそのまま用いればよい。一方、「ノートオン」データもしくは「ノートオフ」データの中で記述するベロシティーＶとしては、得られた強度ｅ（ｄｉ，１），ｅ（ｄｉ，２），…，ｅ（ｄｉ，Ｑ）を、所定の方法で規格化した値を用いればよい。また、「デルタタイム」データは、各単位区間の長さに応じて設定すればよい。
【００２８】
§２．周波数解析の基本手順
図２は、上述した基本原理に基づいて、任意の時系列信号についての周波数解析を行う基本手順を示す流れ図である。まず、ステップＳ１において、時系列信号の入力段階が行われる。ここでは、解析対象となる時系列信号を、それぞれ所定の振幅をもった一連のサンプルからなるデジタルデータとして取り込む処理が行われる。図３は、このようにして取り込まれたデジタルデータの具体例を示す図である。この例では、２２ｋＨｚのサンプリング周波数による取り込みが行われており、時間軸上において、約４５．５μｓ間隔で所定の振幅をもったサンプルが取り込まれることになる。
【００２９】
続くステップＳ２において、取り込んだ時系列信号の時間軸上に複数の単位区間を設定する区間設定段階が行われる。たとえば、１０２４サンプル分を含むような固定区間長Ｌを定めておいたとすると、図３に示すように、約４７ｍｓの長さをもった区間が第１の単位区間ｄ１として設定されることになる。別言すれば、第１の単位区間ｄ１の終点は、始点位置から１０２４サンプル分だけ経過した位置として決定されることになる。この第１の単位区間ｄ１の終点を、後続する単位区間の始点として、同様に１０２４サンプル分だけ経過した位置に終点を決めれば、第２の単位区間ｄ２が設定される。図１(a) に示す各単位区間ｄ１〜ｄ５は、このようにして設定された区間である。ただ、このような単位区間設定を行うと、既に述べたように、区間の境界部分において、解析結果が不連続になり、そのような解析結果に基づいて符号化を行った場合、再生時に音が不連続になるという問題が生じるおそれがある。そこで、時間軸上において部分的に重複させながら、単位区間設定を行う提案もなされている。たとえば、図４に示す例では、単位区間ｄ１，ｄ２，ｄ３，ｄ４，…は、いずれも相互に重複しており、このように重複して設定した個々の単位区間ごとに周波数解析を行えば、区間境界における不連続性を緩和することができる。しかしながら、同一の信号成分を、複数の単位区間で重複して解析する必要が生じるため、演算負担はかなり重くなり、決して効率的な方法とは言えない。本発明の区間設定方法では、単位区間を重複して設定することなしに、区間境界における不連続性を緩和することが可能になるが、その具体的な方法については、§３において詳述する。
【００３０】
次のステップＳ３において、複数通りの周波数を設定し、各周波数をもった周期関数を定義する周期関数定義段階が行われる。一般に、時系列信号の周波数解析は、予め多数の周期関数を用意しておき、これら各周期関数のそれぞれに対する時系列信号の相関を求めることにより行われる。相関の大きな周期関数は、この時系列信号にそれだけ多く含まれている周波数成分であると考えることができる。ステップＳ３において定義される周期関数は、このような相関を求めるための周期関数である。
【００３１】
以上の各段階を経たら、周波数解析の準備は完了である。以下、個々の単位区間ごとに、それぞれ周波数解析を実行することになる。まず、ステップＳ４において、区間信号抽出段階が行われる。この段階では、特定の単位区間内の時系列信号が、解析対象となる信号として抽出されることになる。ここでは、このように各単位区間について抽出された信号を区間信号と呼ぶことにする。続くステップＳ５の相関計算段階では、抽出した区間信号と、各周期関数のそれぞれとの相関を求めるため、具体的な相関値が計算される。こうして計算された各周期関数ごとの相関値は、ステップＳ６の相関出力段階において出力される。このようなステップＳ４〜Ｓ６の処理が、ステップＳ７を経て、設定されたすべての単位区間について繰り返し実行される。
【００３２】
結局、ステップＳ６において出力される各周期関数ごとの相関値が、個々の単位区間内の信号（区間信号）の周波数解析結果ということになる。たとえば、相関値の大きい順に上位３つまでの周期関数を選出すれば、これら選出された周期関数の周波数は、当該区間信号についての代表周波数ということになる。この３つの代表周波数を、ＭＩＤＩのノートナンバーとして表現すれば、たとえば、単位区間ｄ１については、ノートナンバーｎ（ｄ１，１），ｎ（ｄ１，２），ｎ（ｄ１，３）が得られ、これら代表周波数をもった周期関数についての相関値に相当する値を強度（振幅）と定義すれば、上記各ノートナンバーについて、それぞれ強度ｅ（ｄ１，１），ｅ（ｄ１，２），ｅ（ｄ１，３）が得られることになる。図１(b) の各トラックＴ１〜Ｔ３に配置された各符号データは、このようにして得られる。
【００３３】
最終的に、ＭＩＤＩデータとして符号化するのであれば、ステップＳ３において用意する周期関数は、ＭＩＤＩの各ノートナンバーに対応した標準周波数をもった周期関数にしておくと便利である。図５は、このような周期関数として、一対の三角関数を用意した例を示している。この図５に示された三角関数は、同一周波数をもった正弦関数と余弦関数との対から構成されており、１２８通りの標準周波数ｆ（０）〜ｆ（１２７）のそれぞれについて、正弦関数および余弦関数の対が定義されていることになる。ここでは、同一の周波数をもった正弦関数および余弦関数からなる一対の関数が、当該周波数についての周期関数ということになる。別言すれば、ある特定の周波数についての周期関数は、一対の正弦関数および余弦関数によって構成されることになる。このように、一対の正弦関数と余弦関数とにより周期関数を定義するのは、区間信号に対する周期関数の相関値を求める際に、相関値が位相の影響を受けることを排除するためである。なお、図５に示す各三角関数内の変数Ｆおよびｋは、区間信号についてのサンプリング周波数Ｆおよびサンプル番号ｋに相当する変数である。たとえば、周波数ｆ（０）についての正弦波は、sin （２πｆ（０）ｋ／Ｆ）で示され、任意のサンプル番号ｋを与えると、区間信号を構成する第ｋ番目のサンプルと同一時間位置における周期関数の振幅値が得られる。
【００３４】
ここでは、１２８通りの標準周波数ｆ（０）〜ｆ（１２７）を、図６に示すような式で定義している。すなわち、第ｎ番目（０≦ｎ≦１２７）の標準周波数ｆ（ｎ）は、
ｆ（ｎ）＝４４０・２γ（ｎ）
γ（ｎ）＝（ｎ−６９）／１２
なる式で定義されることになる。このような式によって標準周波数を定義しておくと、最終的にＭＩＤＩデータを用いた符号化を行う際に便利である。なぜなら、このような定義によって設定される１２８通りの標準周波数ｆ（０）〜ｆ（１２７）は、等比級数をなす周波数値をとることになり、ＭＩＤＩデータで利用されるノートナンバーに対応した周波数になるからである。たとえば、ノートナンバーｎ＝６９は、前述したようにピアノの鍵盤中央の「ラ音（Ａ３音）」を示しており、４４０Ｈｚの音に相当することになるが、図６に示す式によって第ｎ番目の標準周波数ｆ（ｎ）を定義しておけば、ｎ＝６９を代入すると、ｆ（ｎ）＝４４０が得られることになる。別言すれば、図６に示す式によって定義された１２８通りの標準周波数ｆ（０）〜ｆ（１２７）は、ＭＩＤＩデータにおける１２８通りのノートナンバーｎ＝０〜１２７に対応した周波数ということになる。ノートナンバーｎは、１オクターブ上がると、周波数が２倍になる対数尺度の音階を示すため、周波数軸ｆに対して線形には対応しない。したがって、図５に示す１２８通りの標準周波数ｆ（０）〜ｆ（１２７）は、対数尺度で示した周波数軸上に等間隔（ＭＩＤＩにおける半音単位）に設定した周波数ということになる。
【００３５】
§３．本発明の特徴となる区間設定方法の基本概念
さて、既に述べたように、本発明の特徴は、時間軸上における単位区間の設定方法にあり、その基本的な考え方は、図３に示すような固定区間長Ｌを採らずに、個々の単位区間ごとにそれぞれ区間長が異なる可変区間長を採る点にある。たとえば、第ｉ番目の単位区間であれば、当該区間に最も適した可変区間長Ｌｉが設定されることになる。
【００３６】
いま、図３に基づいて、一義的な固定区間長Ｌを採用した場合の弊害を考えてみよう。固定区間長Ｌを採ることによる最も顕著な弊害は、区間の終点位置が信号の振幅とは全く無関係に決められてしまうという点である。たとえば、図３に示す例の場合、単位区間ｄ１の始点位置における信号の振幅は零となっているが、終点位置における信号は任意の振幅値を有している（図示の例の場合、ほぼピークに近い振幅値をもったサンプル位置が終点となっている）。このように、たまたま振幅が大きな箇所に区間境界が設定されてしまうと、この区間境界における解析結果に不連続性が生じやすい。たとえば、解析結果をＭＩＤＩデータで表現して符号化したとすると、この区間境界を挟んで、それぞれ別個のＭＩＤＩ音符が作成されることになる。図１における単位区間ｄ１，ｄ２については、それぞれ３つずつの音符が示されているが、単位区間ｄ１について作成された音符と、単位区間ｄ２について作成された音符との間に、大きな音程差が生じていると、再生した際に、音の不連続性が生じることになる。
【００３７】
本発明における最も重要な考え方は、振幅が零となるような位置を区間境界として設定すれば、このような不連続性を抑制できるであろう、という考え方である。たとえば、図３に示すような区間設定を行う代わりに、図７に示すような区間設定を行うと、区間の始点位置および終点位置の双方とも、振幅が零となる。そこで、時間軸上における所定の起点（できれば、振幅が零となるような箇所を起点として定めるのが好ましい）を第１の単位区間ｄ１の始点とし、以下、前の単位区間の終点を次の単位区間の始点として、時間軸上に複数の単位区間を順次設定する処理を行うようにし、第ｉ番目の単位区間ｄｉを設定する際に、「終点位置の時系列信号の振幅が零になる」という条件に基づいて、可変長区間Ｌｉを設定するようにすれば、第（ｉ＋１）番目の単位区間の始点位置の振幅も零になるので、個々の区間境界がすべて「振幅が零の位置」に設定されることになる。ただし、このような区間設定処理は、所定のサンプリング間隔で取り込まれたデジタルデータに対して行われるので、個々のサンプルの振幅値それ自身が零になることはまれである。したがって、実際には、「終点位置の時系列信号の振幅が『ほぼ零になる』」という条件に基づいて、可変長区間の設定を行うことになる。なお、「ほぼ零になる」という条件を満足したか否かを判断する具体的な手法については後述する。
【００３８】
ところで、実際に単位区間の終点位置を決定するにあたっては、振幅がほぼ零になる位置ならどこにでも終点位置を決めてよい、というわけにはゆかない。なぜなら、１つの単位区間の区間長は、後に行われる解析の結果に大きな影響を与える重要なファクターとなるからである。すなわち、区間長を短く設定すればするほど、時間分解能が向上するが、逆に、周波数分解能は低下するため、解析精度は低下するという問題が生じることになる。そこで、本発明では、予め、単位区間についての最小区間長Ｌmin と最大区間長Ｌmax とを定めておき、１つの単位区間の終点を決める際に、当該単位区間の区間長がこの最小区間長Ｌmin 〜最大区間長Ｌmax の範囲となる、という条件を満足するようにしている。ここで、最小区間長Ｌmin と最大区間長Ｌmax とは、時間分解能および周波数分解能の兼ね合いを考慮して、適当な値に設定しておくようにする。一般的には、最小区間長Ｌmin は最大区間長Ｌmax の半分程度に設定するのが好ましい。
【００３９】
図８は、このような条件を考慮した上で、単位区間の終点を決定する方法を示す図である。任意の単位区間ｄｉの可変区間長Ｌｉは、どんなに短くても最小区間長Ｌmin 未満となることはなく、どんなに長くても最大区間長Ｌmax を越えることはない。したがって、この単位区間ｄｉの終点としては、図示した終点探索区間内の１点が選ばれることになる。結局、本発明では、「終点位置の時系列信号の振幅が『ほぼ零になる』」という第１の条件と、「区間長が最小区間長Ｌmin 〜最大区間長Ｌmax の範囲となる」という第２の条件との２条件（以下、２つの主条件という）を満足するような位置に、単位区間の終点が置かれることになる。具体的には、図８に示す終点探索区間内を探索し、この終点探索区間内において振幅がほぼ零になる位置を見つけ出し、その位置を終点とすればよい。
【００４０】
続いて、「振幅がほぼ零になる」という第１の条件を満たすサンプル位置を決定するための具体的な方法を説明する。いま、図９に示すような時系列信号Ｘについてサンプリングが行われ、いくつかのサンプルが得られているものとする。図において、ｋ−３，ｋ−２，ｋ−１，ｋ，ｋ＋１，ｋ＋２，ｋ＋３と記した時間軸上の位置は、各サンプルの位置である。デジタルデータとして入力された時系列信号Ｘは、もはや図示されているようなカーブをもった信号としての情報はもっておらず、各サンプル位置における振幅値（たとえば、Ｘ（ｋ−１），Ｘ（ｋ），Ｘ（ｋ＋１）といった値）しかもっていないことになる。したがって、時系列信号Ｘの本来のカーブが横軸と交差する点Ｚ（すなわち、振幅が零となる点、以下、零交差点と呼ぶことにし、図面上では黒い四角形で示すことにする）がたまたまサンプル位置となることは稀であり、また、各サンプルの振幅値からこの零交差点Ｚの正確な位置を直接求めることはできない。ただ、零交差点Ｚの両側に位置する２つのサンプル、すなわち、図示の例の場合、第ｋ番目のサンプルと、第（ｋ＋１）番目のサンプルは、両者の振幅の符号が反転していることから認識することができる。
【００４１】
この点に着目すれば、時間軸上に所定間隔で並んだ一連のサンプルの各振幅を追ってゆき、１つのサンプルの振幅の符号が直前のサンプルの振幅の符号に対して反転している箇所が発見できれば、その箇所に零交差点があると認識することが可能である。たとえば、図９に示す例の場合、振幅Ｘ（ｋ−１），Ｘ（ｋ）まではいずれも符号が正であったのに、次の振幅Ｘ（ｋ＋１）では符号が負に反転している。したがって、第ｋ番目のサンプルと、第（ｋ＋１）番目のサンプルの間に、零交差点Ｚが存在すると認識することができる。この場合、零交差点Ｚを挟む２つのサンプル（ここでは、零交差点Ｚを構成するサンプルと呼ぶことにする）の位置は、いずれも「振幅がほぼ零になる」という第１の条件を満たすサンプル位置であるので、これらのうちのいずれかのサンプル位置を単位区間の終点として選択してよいことになる。零交差点Ｚを構成する２つのサンプルの位置のいずれを選択しても大差はないが、理論的には、零交差点Ｚを構成する２つのサンプルのうち、振幅の絶対値がより小さい方を、単位区間の終点として選択するのが好ましい。
【００４２】
図９では、１つの零交差点Ｚの周辺を拡大して示したが、実際には、図１０に示すように、時系列信号Ｘの振動に伴い、時間軸上に多数の零交差点が認識されることになる。図では、合計１０個の零交差点Ｚ１〜Ｚ１０が認識された例が示されている。前述した２つの主条件を満たす終点を決定するには、終点探索区間内に認識されたいずれかの零交差点を構成するサンプル位置（零交差点を挟むサンプル位置）を終点位置として選択すればよい。
【００４３】
ただ、実際には、終点探索区間内に多数の零交差点が認識されるのが一般的であり、これら多数の零交差点のうちの１つを終点位置として選択する際には、上記２つの主条件の他に、いくつかの副条件を定めておき、多数の零交差点の中から単位区間の終点として最も好ましい零交差点を選択するようにする方がよい。そこで、ここでは次のような２つの副条件を定めて、終点の選択を行うようにしている。
【００４４】
まず、第１の副条件は、「始点および終点を除いた単位区間内に奇数個の零交差点が含まれる」という条件である。たとえば、図１０に示す例において、零交差点Ｚ１を始点とする新たな単位区間を設定する場合を考えよう。この場合、始点位置から最小区間長Ｌmin 内に含まれてしまう零交差点および最大区間長Ｌmax を越えた範囲内にある零交差点は除かれるものの、終点探索区間内に存在する零交差点はすべて終点位置として選択することができる。上記第１の副条件は、別言すれば、「始点位置にある零交差点Ｚ１を第１番目の零交差点として数えたときに、偶数番目にある零交差点を選択の対象から除外する」ということを意味している。具体的には、図１０において、零交差点Ｚ２，Ｚ４，Ｚ６，Ｚ８，Ｚ１０は、選択対象から除外されることになる。なぜなら、もしこれらの零交差点を終点位置として選択すると、「始点および終点を除いた単位区間内に偶数個の零交差点が含まれる」ことになってしまうからである。たとえば、零交差点Ｚ８を終点位置に選択すると、始点（Ｚ１）および終点（Ｚ８）を除いた単位区間内に、Ｚ２〜Ｚ７という６個（偶数個）の零交差点が含まれてしまうことになる。
【００４５】
単位区間内に偶数個の零交差点が含まれると好ましくない理由は、単位区間内の時系列信号Ｘの周期が整数個にならないためである。たとえば、図１０において、Ｚ１を始点、Ｚ３を終点とする区間内には、時系列信号が１周期分含まれており、Ｚ１を始点、Ｚ５を終点とする区間内には、時系列信号が２周期分含まれており、Ｚ１を始点、Ｚ７を終点とする区間内には、時系列信号が３周期分含まれている。このように、「始点および終点を除いた区間内に奇数個の零交差点が含まれる」という条件を満たす区間の場合、時系列信号が整数周期分含まれる。ところが、Ｚ１を始点、Ｚ４を終点とする区間内には、時系列信号が１．５周期分含まれ、Ｚ１を始点、Ｚ６を終点とする区間内には、時系列信号が２．５周期分含まれ、Ｚ１を始点、Ｚ９を終点とする区間内には、時系列信号が３．５周期分含まれることになり、「始点および終点を除いた区間内に偶数個の零交差点が含まれる」という条件を満たす区間の場合、時系列信号が半周期分余分に含まれてしまう。
【００４６】
一般に、周期信号を整数周期分取り出せば、振幅の正負がバランスをとりあうことになるが、半周期分だけ余分になると、この半周期分によって、振幅の正負のバランスが崩れてしまうことになる。このように正負のバランスが崩れた信号について、各周期関数との相関計算を行うと、実際には相関のない周期関数に対しても相関を示す結果が現れる可能性がある。このような弊害を避けるためには、単位区間内には、時系列信号Ｘの整数周期分が含まれていた方が好ましいことになる。第１の副条件である「始点および終点を除いた単位区間内に奇数個の零交差点が含まれる」なる条件は、正に、この点を考慮した条件であり、この条件を満足するように終点位置を決定すれば、必ず時系列信号Ｘの整数周期分を含んだ単位区間が設定されることになる。
【００４７】
第２の副条件は、時系列信号Ｘの振幅に着目し、「できるだけ振幅のくびれた部分を終点として選択する」という基本概念に基づく条件である。たとえば、図１(a) に示す時系列信号を見ると、信号の振幅には、いわゆる「うねり」が存在することがわかる。一般的な音響信号の場合、信号にこのような「うねり」が存在することが多い。ここで、たとえば、時刻ｔ２の位置は、大きな「うねり」が収まった直後の「くびれた部分」に対応しているのに対し、時刻ｔ３の位置は、大きな「うねり」に乗った位置となっている。信号自体は振動しているため、時刻ｔ２の位置にも、時刻ｔ３の位置にも、それぞれ零交差点が存在することになるが、区間境界における音の不連続性を抑制する、という本発明の目的を達成するためには、「うねり」に乗った時刻ｔ３の位置を単位区間の終点として選択するよりも、「くびれた部分」に対応する時刻ｔ２の位置を単位区間の終点として選択した方が好ましいことがわかる。
【００４８】
このように、概念的には、「できるだけ振幅のくびれた部分を終点として選択する」ということになるが、実際には、次のような方法を行うことにより、このような概念に合致した最適の零交差点を選択することが可能になる。まず、それぞれ隣接する零交差点間に存在するサンプルの中で振幅の絶対値が最大となるピークサンプルを求める。たとえば、図１０に示す時系列信号Ｘについて、このようなピークサンプルを求めると、図１１のようになる。ここで、矢印で示すＰ２〜Ｐ１０がそれぞれピークサンプルである。なお、ここで最初のピークサンプルを、Ｐ１とせずにＰ２としたのは、後の説明において、各ピークサンプルをそれぞれ後続する零交差点に対応づけるための便宜である。隣接する零交差点間に存在するサンプルの中で振幅の絶対値が最大となるサンプル１つだけがピークサンプルとなるので、たとえば、図１２に示すように、隣接する零交差点Ｚａ，Ｚｂ間に、２つのピークＰａ，Ｐｂが存在したとしても、絶対値の大きなピークＰｂのみがピークサンプルとして認識されることになる。
【００４９】
続いて、各ピークサンプルの振幅の絶対値をピーク値と定義し、このピーク値が極小となるようなピークサンプルの近傍に位置する零交差点を求める。このような零交差点を極小零交差点と呼ぶことにする。ピーク値が極小となるようなピークサンプルの近傍に位置する零交差点は、当該ピークサンプルを挟む位置に２つ存在するが、ここでは、便宜上、当該ピークサンプルに後続する零交差点を、極小零交差点とすることにする。図１３は、図１１に示す各ピークサンプルＰ２〜Ｐ１０のピーク値（矢印の長さ）を比較するために、各矢印の向きをすべて上向きにして並べた図である。ここで、各矢印の先端を結ぶ包絡線Ｅを描けば、ピークサンプルＰ９のピーク値が極小となっていることがわかる。このピークサンプルＰ９の近傍に位置する零交差点は、ピークサンプルＰ９を挟む位置にある零交差点Ｚ８およびＺ９であるが、ここでは、ピークサンプルＰ９に後続する零交差点Ｚ９を極小零交差点とする。こうして求めた極小零交差点Ｚ９は、もとの時系列信号Ｘの振幅のくびれた部分に位置することになる。したがって、この極小零交差点Ｚ９を構成するサンプルの位置を単位区間の終点として選択すれば、第２の副条件を考慮した終点決定を行うことができる。なお、終点候補となる極小零交差点が複数存在する場合には、たとえば、対応するピークサンプルのピーク値がより小さい方を選択する、といった基準を設定しておけばよい。あるいは、できるだけ解析精度を高めるために、できるだけ区間長を長く設定したいという要望があれば、より最大区間長Ｌmax に近い区間長を確保できるように、時間軸上でより右側にある極小零交差点を選択する、といった基準を設定するようにしてもかまわない。
【００５０】
§４．具体的な区間設定の手順
上述したように、本発明では、主条件として「終点位置の時系列信号の振幅が『ほぼ零になる』」という第１の条件と、「区間長が最小区間長Ｌmin 〜最大区間長Ｌmax の範囲となる」という第２の条件を設定し、更に、副条件として、「始点および終点を除いた単位区間内に奇数個の零交差点が含まれる」という第１の条件と、「できるだけ振幅のくびれた部分を終点として選択する」という第２の条件を設定している。ここでは、これら４条件を満たす区間設定を行うための具体的な方法を図１４の流れ図に基づいて説明する。
【００５１】
まず、ステップＳ１１において、入力した全時系列信号Ｘにわたって、零交差点を求める処理を行う。零交差点の認識方法は、既に述べたように、時間軸上に所定間隔で並んだ一連のサンプルの各振幅を追ってゆき、１つのサンプルの振幅の符号が直前のサンプルの振幅の符号に対して反転している箇所を発見すればよい。ここでは、たとえば、図１５(a) に示すように、時系列信号Ｘについて零交差点Ｚ１〜Ｚ７が求まったものとしよう。
【００５２】
続くステップＳ１２では、これらの零交差点のうち、偶数番目の零交差点を消去する処理が行われる。図１５(a) の場合、零交差点Ｚ２，Ｚ４，Ｚ６が消去されることになる。この偶数番目の零交差点を消去する理由は、「始点および終点を除いた単位区間内に奇数個の零交差点が含まれる」という第１の副条件を満たすことが可能な零交差点のみを、終点位置の候補として残すためである。
【００５３】
次のステップＳ１３では、残った零交差点（すなわち、奇数番目の零交差点）について、直前の零交差点（残っている零交差点の中で直前のもの）との間の区間における振幅の絶対値の最大値を、当該零交差点についてのピーク値として求める処理を行う。これは、「できるだけ振幅のくびれた部分を終点として選択する」という第２の副条件を考慮するための処理であり、隣接する零交差点間に存在するピークサンプルを求め、このピークサンプルのピーク値を、後続する零交差点についてのピーク値とする処理である。たとえば、図１５(a) に示す例について、ステップＳ１２における偶数番目の零交差点を消去する処理を行った後、ステップＳ１３の処理を行うと、図１５(b) に示すように、零交差点Ｚ３についてはピークサンプルＰ３、零交差点Ｚ５についてはピークサンプルＰ５、零交差点Ｚ７についてはピークサンプルＰ７がそれぞれ対応づけられ、各零交差点Ｚ３，Ｚ５，Ｚ７のピーク値として、それぞれピークサンプルＰ３，Ｐ５，Ｐ７のピーク値が与えられることになる。なお、この例では、たまたますべてのピークサンプルが正の振幅をもっているが、もちろん負の振幅をもったピークサンプルが選ばれることもありうる。
【００５４】
次のステップＳ１４では、こうして所定のピーク値が与えられた零交差点のうち、ピーク値が所定のしきい値Ｐmin よりも小さい零交差点が存在した場合には、これを消去する処理が行われる。これは、振幅の小さなノイズ成分が含まれていたときに、このノイズ成分に関するピークを無視するための処置である。こうして残った零交差点は、いずれも単位区間の始点／終点として選択されるのに相応しい零交差点であり、ここではノード点と呼ぶことにする。ここでは、図１５(b) に示す例において、零交差点Ｚ３，Ｚ５，Ｚ７がいずれもノード点として残ったものとして、以下の説明を行う。
【００５５】
ステップＳ１５において、単位区間の番号を示すパラメータｉを初期値１に設定する。そして、第１のノード点（図１５(b) に示す例の場合は、ノード点Ｚ１）を第１の単位区間ｄ１の始点とする。このように、単位区間ｄ１の始点が定まれば、この始点を基準として、図１５(b) に示すように、最小区間長Ｌmin に相当する区間および最大区間長Ｌmax に相当する区間も定まり、両区間の差に相当する終点探索区間も定まる。そこで、ステップＳ１６において、終点探索区間内にノード点があるか否かを調べる。通常は、終点探索区間内に複数のノード点が存在する。図１５(b) の例では、２つのノード点Ｚ５，Ｚ７が終点探索区間内に存在している。そこで、ステップＳ１７において、この終点探索区間内において、ピーク値が最小となるノード点を捜し、そのようなノード点を（正確に言えば、そのようなノード点を挟む一対のサンプル位置のいずれか一方を）、第ｉ番目の単位区間の終点とする（図１５(b) の例では、ｉ＝１）。したがって、図示の例の場合、ノード点Ｚ５のピーク値（ピークサンプルＰ５の振幅値）とノード点Ｚ７のピーク値（ピークサンプルＰ７の振幅値）とが比較され、小さい方のノード点Ｚ７（正確には、ノード点Ｚ７を挟む一対のサンプル位置のいずれか一方）が、第１番目の単位区間ｄ１の終点として選択されることになる。
【００５６】
こうして、第１番目の単位区間ｄ１の終点が求まったら、ステップＳ１８からステップＳ１９へと進む。ステップＳ１９では、第ｉ番目の単位区間の終点を、第（ｉ＋１）番目の単位区間の始点とする処理が行われる。この例の場合、第１番目の単位区間ｄ１の終点が、第２番目の単位区間ｄ２の始点となる。以下、同様の処理が、ステップＳ２０において、パラメータｉを１ずつ増加させながら繰り返し実行され、必要なすべての単位区間の設定が完了したら、ステップＳ１８を経て、この手順は完了することになる。
【００５７】
なお、時系列信号Ｘ内に、実質的に信号成分がしばらく途絶えているような箇所が存在する場合、ステップＳ１６において、終点探索区間内に１つもノード点が発見されないことも起こり得る。その場合は、ステップＳ１６からステップＳ２１へと分岐し、無音区間設定処理が行われる。この無音区間設定処理は、ノード点が存在しない区間を無音区間として設定するための処理であり、この無音区間は、いわば単位区間どうしの空白ともいうべき区間になる。これまでの説明では、各単位区間は密接に隣接し、１つの単位区間の終点は次の単位区間の始点となるように区間設定が行われていたが、実質的に信号成分がしばらく途絶えているような箇所が存在する場合には、このような無音区間を例外的に設定するのが望ましい。
【００５８】
ステップＳ２１の無音区間の設定処理は、具体的には次のように行えばよい。まず、終点探索区間内を探索した結果、ノード点が１つも発見されなかった場合には、とにかく最初のノード点が発見できるまで、最大区間長Ｌmax を越えて更に時間軸上で右方向へと探索を続けてゆく。そして、最初のノード点が発見できたら、現時点での始点位置から、当該最初に発見されたノード点位置までを無音区間として設定し、この最初に発見されたノード点の位置まで現時点の始点位置を移動させ、ステップＳ１６の処理へ戻るようにする。たとえば、図１５(c) に示すように、始点としてノード点Ｚａが与えられ（これは、前の単位区間の終点として与えられる）、終点探索区間内を探索した結果、１つもノード点が発見されなかった場合には、探索範囲を更に右へと延伸し、最初のノード点Ｚｂが発見されるまで探索を続ける。そしてノード点Ｚａ〜Ｚｂまでの区間を無音区間として設定する（この無音区間は実体のある本来の区間ではなく、当然、この無音区間については、周波数解析の処理は実行しないことになる）。そして、第ｉ番目の単位区間の始点をノード点Ｚｂに設定しなおし、再びステップＳ１６の処理へと戻り、当該単位区間を設定する処理を続けてゆけばよい。無音区間は、特に区間長の制限がないので、たとえば、人間の会話などの音声信号が時系列信号として入力されたような場合、会話が中断した部分などを効率的に処理することが可能になる。このように実体のない無音区間が設定されると、本来の単位区間の終点とその次の単位区間の始点とは一致しなくなる。
【００５９】
§５．相関計算の具体的な方法
以上、§３および§４にわたって説明した単位区間の設定方法は、本発明の重要な特徴となる方法であり、図２に示すステップＳ２の段階で行われる方法である。こうして、各単位区間が定まったら、ステップＳ３で各周期関数が定義され、ステップＳ４で各区間ごとの区間信号が抽出され、ステップＳ５において、区間信号と各周期関数との相関が計算され、その結果がステップＳ６で出力されることになる。そこで、ここでは、ステップＳ５における相関計算の具体的な方法を述べておく。
【００６０】
いま、第ｉ番目の単位区間ｄｉについて、図１６に示すような区間信号Ｘ（解析対象となる時系列信号Ｘのうちの単位区間ｄｉ内の部分）が得られたものとしよう。このとき、単位区間ｄｉの区間長Ｌｉが、可変区間長となることは、§３および§４で述べたとおりである。ここでは、この単位区間ｄｉの中に、サンプリング周波数Ｆでサンプリングを行うことにより得られた合計ｗ個のサンプルが含まれていたものとし、サンプル番号を図示のように、０，１，２，３，…，ｋ，…，ｗ−２，ｗ−１としよう（白丸で示す第ｗ番目のサンプルは、右に隣接する次の単位区間の先頭に含まれるサンプルとする）。この場合、任意のサンプル番号ｋについては、Ｘ（ｋ）なる振幅値がデジタルデータとして与えられていることになる。前述した基本概念に基づいて区間設定が行われた場合、単位区間ｄｉの始点および終点は零交差点となり、区間信号Ｘとして整数周期分（図示の例では２周期分）の周期信号がこの単位区間ｄｉ内に得られることになる。
【００６１】
一方、複数の周期関数としては、前述したように、図５に示すような１２８通りの三角関数対が用意される。各三角関数内の変数Ｆおよびｋは、図１６に示すように、区間信号Ｘについてのサンプリング周波数Ｆおよびサンプル番号ｋに相当する変数である。たとえば、周波数ｆ（０）についての正弦関数は、sin （２πｆ（０）ｋ／Ｆ）で示され、任意のサンプル番号ｋを与えると、第ｋ番目のサンプルと同一時間位置における周期関数の振幅値が得られる。また、１２８通りの標準周波数ｆ（０）〜ｆ（１２７）は、等比級数をなす周波数値をとることになり、ＭＩＤＩデータで利用されるノートナンバーに対応した周波数になる。相関計算段階では、これらすべての三角関数と、区間信号Ｘとの相関が計算されることになる。
【００６２】
続いて、図１６を参照しながら、区間信号Ｘと、第ｎ番目の標準周波数ｆ（ｎ）をもった正弦関数Ｒｎとの相関値を求める原理を示そう。両者の相関値Ａ（ｎ）は、図１７の第１の演算式によって定義することができる。ここで、Ｘ（ｋ）は、図１６に示すように、区間信号Ｘにおけるサンプル番号ｋの振幅値であり、sin （２πｆ（ｎ）・ｋ／Ｆ）は、時間軸上での同位置における正弦関数Ｒｎの振幅値である。この第１の演算式は、単位区間ｄｉ内の全サンプル番号ｋ＝０〜ｗ−１の位置について、それぞれ区間信号Ｘの振幅値と正弦関数Ｒｎの振幅値との積を求め、その総和を求める式ということができる。振幅値は正負の符号を有しているので、その積も正負の符号を有したものになる。したがって、区間信号Ｘと正弦関数Ｒｎとの間に全く相関がなかったとすれば、両振幅の積の符号は、全くランダムに正になったり負になったりするので、その総和は０になる。逆に、両者間に相関があれば、両振幅の積の総和の絶対値は、相関の程度に応じて大きくなる。たとえば、区間信号Ｘの振幅が正である時には、正弦関数Ｒｎの振幅も常に正であり、区間信号Ｘの振幅が負である時には、正弦関数Ｒｎの振幅も常に負である、というような正の相関がある場合（区間信号Ｘと正弦関数Ｒｎとが同一周波数で同位相）ならば、積の総和は正の最大値になり、これとは逆に、区間信号Ｘの振幅が正である時には、正弦関数Ｒｎの振幅は常に負であり、区間信号Ｘの振幅が負である時には、正弦関数Ｒｎの振幅は常に正である、というような負の相関がある場合（区間信号Ｘと正弦関数Ｒｎとが同一周波数で逆位相）ならば、積の総和は負の最大値になる。
【００６３】
同様に、図１７の第２の演算式は、区間信号Ｘと、第ｎ番目の標準周波数ｆ（ｎ）をもった余弦関数との相関値を求める式であり、両者の相関値はＢ（ｎ）で与えられる。なお、相関値Ａ（ｎ）を求めるための第１の演算式も、相関値Ｂ（ｎ）を求めるための第２の演算式も、最終的に係数２／ｗが乗ぜられているが、これは相関値を規格化するためのものである。すなわち、分母のｗは、単位区間ｄｉ内に含まれる総サンプル数であり、ｋ＝０〜ｗ−１の全ｗ個のサンプルについて求めた総和を、総サンプル数ｗで割ることにより、１サンプル分についての平均を求める意味をもっている。一方、分子の２は、相関値Ａ（ｎ），Ｂ（ｎ）が−１〜＋１の間の値となるようにするための定数である。
【００６４】
区間信号Ｘと標準周波数ｆ（ｎ）をもった標準周期関数との総合的な相関は、たとえば、図１７の第３の演算式に示すように、正弦関数との相関値Ａ（ｎ）と余弦関数との相関値Ｂ（ｎ）との二乗和平方根値Ｅ（ｎ）によって示すことができる。このように、二乗和平方根値を用いれば、正の相関と負の相関との双方を反映させた総合的な相関を求めることができる。たとえば、正弦関数に対しては正の相関を示し、余弦関数に対しては負の相関を示すような場合、相関値Ａ（ｎ）は正の値となり、相関値Ｂ（ｎ）は負の値となるが、二乗和平方根値Ｅ（ｎ）は、両相関値の絶対値を反映した値となる。
【００６５】
図１７に示す演算式は、周期関数として三角関数を用いた場合の例（別言すれば、波形形状が正弦関数になる関数の例）であるが、本発明を実施する上で用いる周期関数の波形形状は、正弦関数に限定されるものではなく、三角波、矩形波、鋸歯状波などの波形形状をもった周期関数を用いてもかまわない。フーリエスペクトルの実効強度Ｅは、図１７の演算式による二乗和平方根値Ｅ（ｎ）に他ならず、各周期関数との総合的な相関を示す値となる。
【００６６】
このような相関計算を行った結果を利用すれば、区間信号Ｘに含まれている任意の標準周波数ｆ（ｎ）をもった標準周期関数Ｒｎの振幅成分を、二乗和平方根値Ｅ（ｎ）として得ることができる。この二乗和平方根値Ｅ（ｎ）の値は、区間信号Ｘと標準周波数ｆ（ｎ）を有する標準周期関数Ｒｎとの総合的な相関を示す値ということができるので、この相関値の大きな標準周期関数の周波数を代表周期数として選出すれば、この代表周波数を用いて区間信号Ｘを符号化することができる。
【００６７】
結局、ある１つの単位区間ｄｉ内の区間信号Ｘを符号化するのであれば、次のような手法を採ればよい。まず、図５に示すような１２８通りの標準周波数をもった標準周期関数をそれぞれ一対ずつ用意する（１つの周波数について、互いに位相がπ／２だけ異なる一対の周期関数を用意する）。このとき、各標準周波数値が等比級数配列となるような設定をしておくと、ノートナンバーに対応した符号データを得る上で都合がよい。そして、図１７に示す演算式に基いて、標準周波数ｆ（ｎ）をもった標準周期関数との相関値Ａ（ｎ），Ｂ（ｎ）を求める処理を、ｎ＝０〜１２７のそれぞれについて行い、それぞれについて二乗和平方根値Ｅ（ｎ）を求める。ここまでが、周波数解析の手順である。この手順により、各標準周波数について得られた二乗和平方根値Ｅ（ｎ）が、各標準周波数についての相関値ということになり、周波数解析の結果として出力されることになる。この解析結果を用いて、もとの時系列信号を符号化するのであれば、この相関値Ｅ（ｎ）が所定の基準以上の大きさとなる１つまたは複数の標準周波数を代表周波数として選出すればよい。なお、ここで「相関値Ｅ（ｎ）が所定の基準以上の大きさとなる」という選出条件は、たとえば、何らかの閾値を設定しておき、相関値Ｅ（ｎ）がこの閾値を越えるような標準周波数ｆ（ｎ）をすべて代表周波数として選出する、という絶対的な選出条件を設定してもよいが、たとえば、相関値Ｅ（ｎ）の大きさの順にＱ番目までを選出する、というような相対的な選出条件を設定してもよい。
【００６８】
こうして、各単位区間について、相関値の大きい順にＱ個の標準周波数が選出されたら、このＱ個の標準周波数に対応する「音の高さを示す情報」、選出された標準周波数の相関値に対応する「音の強さを示す情報」、当該単位区間の始点に対応する「音の発音開始時刻を示す情報」、当該単位区間の終点に対応する「音の発音終了時刻を示す情報」、なる４つの情報を含むＱ個の符号データを作成すれば当該単位区間内の区間信号ＸをＱ個の符号データにより符号化することができる。符号データとして、ＭＩＤＩデータを作成するのであれば、「音の高さを示す情報」としてノートナンバーを用い、「音の強さを示す情報」としてベロシティーを用い、「音の発音開始時刻を示す情報」としてノートオン時刻を用い、「音の発音終了時刻を示す情報」としてノートオフ時刻を用いるようにすればよい。
【００６９】
§６．相関計算対象区間の設定
さて、§５で述べた相関計算は、当然、１つ１つの単位区間ごとに行われることになる。たとえば、図１６に示す例の場合、単位区間ｄｉ内に存在する区間信号Ｘと、同じく単位区間ｄｉ内に存在する所定の周期関数Ｒｎ（図示の例では標準周波数ｆ（ｎ）をもった正弦関数）との相関が計算されることになる。しかしながら、より精度の高い相関計算の結果を得るためには、この単位区間ｄｉの全区間長Ｌｉにわたって相関計算を行わない方がよい。その理由を以下に説明する。
【００７０】
既に述べたように、図１６に示す区間信号Ｘと周期関数Ｒｎとの相関は、図１７に示す演算式により求められる相関値Ａ（ｎ），Ｂ（ｎ）で与えられることになる。ところが、この演算式に示す相関値Ａ（ｎ），Ｂ（ｎ）は、必ずしも正確な相関値にはならない。たとえば、区間信号Ｘが周波数ｆ（ｎ）をもった正弦関数であった場合、同じ周波数ｆ（ｎ）をもった正弦関数からなる周期関数Ｒｎに対する相関値は、本来であれば最大になるはずであるが、任意の可変区間長Ｌｉについて、図１７の式による計算を行うと、相関値Ａ（ｎ）は必ずしも最大値をとらない。同様に、区間信号Ｘが周期関数Ｒｎに対して全く相関がない場合、本来であれば相関値が零になるはずであるが、任意の可変区間長Ｌｉについて、図１７の式による計算を行うと、相関値Ａ（ｎ）は必ずしも零にはならない。なぜなら、可変区間長Ｌｉは、区間信号Ｘにとって都合のよい区間として（周波数解析時に境界での不連続性がなるべく生じないような区間として）設定されたわけであるが、周期関数Ｒｎの周期との間には何ら関係がないため、相関計算の対象となる区間が必ずしも周期関数Ｒｎの周期の整数倍にはならないためである。
【００７１】
たとえば、図１６に図示されている例では、単位区間ｄｉ内に、周期関数Ｒｎが約１．２５周期分含まれている。このように、周期関数Ｒｎの周期の整数倍にはならない区間について、相関計算を行うと、区間信号Ｘが完全相関を示す信号であった場合でも、計算により得られる相関値は最大値にはならず、逆に、区間信号Ｘが全く相関のない信号であった場合でも、計算によって得られる相関値は零にはならない。そもそも、図１７に示す式は、周期関数の整数倍の区間を計算対象区間とする前提で立てられた式なのである。したがって、より精度の高い相関計算を行うためには、相関計算の対象区間を、周期関数の周期の整数倍に相当する長さをもった区間とし、この相関計算対象区間に対してのみ、相関計算を実行するようにしなくてはならない。
【００７２】
これを図１８に示す具体例で説明してみよう。この例では、可変区間長Ｌｉをもった単位区間ｄｉが示されており、この単位区間ｄｉ内に区間信号Ｘが与えられている。この区間信号Ｘについての周波数解析を行うために、種々の周波数をもった周期関数との相関が計算されるわけであるが、このとき、各周期関数ごとに、異なる相関計算対象区間を設定するのである。たとえば、第ｎ番目の標準周波数ｆ（ｎ）をもった標準周期関数Ｒｎとの相関計算を行う場合、この標準周期関数Ｒｎの周期の整数倍に相当する区間を相関計算対象区間とし、この相関計算対象区間に対してのみ、相関計算を実行するのである。図示の例の場合、単位区間ｄｉ内には、サンプル番号０〜ｗ−１までの全ｗ個のサンプルが含まれているが（前述のように、第ｗ番目のサンプルは右に隣接する次の単位区間の先頭に含まれるサンプルとして取り扱う）、この単位区間ｄｉの区間長Ｌｉは、標準周期関数Ｒｎの周期の整数倍にはなっていない。そこで、標準周期関数Ｒｎの周期の整数倍となるような区間、すなわち、サンプル番号０〜ｗ（ｎ）に至る区間を相関計算対象区間として設定する。この相関計算対象区間内には、サンプル番号０〜ｗ（ｎ）−１までの全ｗ（ｎ）個のサンプルが含まれることになる（第ｗ（ｎ）番目のサンプルは、相関計算対象区間内のサンプルとしては取り扱わない）。
【００７３】
１つの単位区間に含まれるサンプル数ｗは、個々の単位区間ごとに異なる。なぜなら、個々の単位区間の区間長は可変となるためである。しかしながら、一旦、１つの単位区間についての区間長が決定されたら、この単位区間内に含まれるサンプル数ｗも一義的に決定されることになる。したがって、図１８において、第ｉ番目の単位区間ｄｉについての区間長Ｌｉが、§３で述べた手順により決定されれば、この単位区間ｄｉの終点に位置するサンプル番号ｗは一義的に定まる。これに対し、サンプル番号ｗ（ｎ）は、標準周波数ｆ（ｎ）をもった標準周期関数Ｒｎとの相関計算を行うために、この標準周波数ｆ（ｎ）に応じて定まる番号ということになる。したがって、図５に示す１２８通りの標準周波数をもった標準周期関数との相関計算を行う際には、それぞれの相関計算ごとに異なる相関計算対象区間が設定されることになる。このように、標準周期関数の周期の整数倍の区間についてのみ相関計算を行うようにすれば、より精度の高い相関値を得ることができるようになる。
【００７４】
上述のような手法を用いることにより、高精度の相関値Ａ（ｎ），Ｂ（ｎ）および二乗和平方根値Ｅ（ｎ）を求めるには、図１７に示す演算式の代わりに、図１９に示す演算式を用いるようにすればよい。図１７の演算式における定数ｗの代わりに、図１９の演算式では変数ｗ（ｎ）が用いられている。ここで、変数ｗ（ｎ）は、上述したように、相関計算の対象となる標準周期関数Ｒｎの周波数ｆ（ｎ）に応じて定まる値であり、標準周期関数Ｒｎの周期の整数倍に相当する相関計算対象区間を設定したときに、その中に含まれるサンプルの総数に相当する値ということになる。区間信号Ｘと標準周期関数Ｒｎとの振幅値の積は、ｋ＝０から、ｋ＝ｗ（ｎ）−１に至るまでの合計ｗ（ｎ）個分だけ加算されることになる。
【００７５】
ところで、相関計算対象区間は、理論的には、標準周期関数Ｒｎの周期の整数倍に相当する区間であれば、どのような長さをもった区間であってもかまわないが、実用上は、単位区間を超えない範囲内で、できるだけ長い区間に設定した方が好ましい。相関計算を行う上で、できるだけサンプル数を増やした方が、精度の高い結果が得られるのは当然である。そこで、実用上は、単位区間を超えない範囲内で最も長く、かつ、標準周期関数Ｒｎの周期の整数倍の長さを有する区間を、相関計算対象区間に設定すればよい。この条件を式で示せば、ｗ（ｎ）は、ｗ（ｎ）≦ｗという条件下で、ｗ（ｎ）＝Ｍ・Ｆ／ｆ（ｎ）を満たす最大値（Ｍは整数）ということになる。ここで、Ｆはサンプリング周波数、ｆ（ｎ）は標準周期関数Ｒｎの周波数であり、Ｆ／ｆ（ｎ）は、標準周期関数Ｒｎの１周期分に含まれるサンプル数ということになり、標準周期関数Ｒｎの周期のＭ倍に相当する区間が相関計算対象区間として設定されることになる。
【００７６】
なお、図１７の演算式における変数ｋが、図１９の演算式では（ｋ＋Ｋ）に置き換わっているが、これは、区間信号Ｘを構成する各サンプルの番号を、絶対サンプル番号として示したためである。すなわち、これまでの説明では、ある１つの単位区間内の区間信号Ｘを符号化する手順を述べたが、実際には、時間軸上に多数の単位区間が隣接配置され、個々の単位区間ごとにそれぞれ符号化を行うことになる。したがって、特定の単位区間内においてのみ意味をもつ相対サンプル番号（当該単位区間の先頭のサンプルを第０番目のサンプルとしたもの）を用いる代わりに、どの単位区間についても共通の絶対サンプル番号を用いた方が好ましい。たとえば、第１の単位区間の始点に位置するサンプルを第０番目のサンプルとして、以下連続番号を付した番号を絶対サンプル番号として用いることができる。結局、図１８の左端のサンプルは、単位区間ｄｉ内における相対サンプル番号としては、第０番目のサンプルということになるが、絶対サンプル番号としては、第Ｋ番目のサンプルということになる。したがって、単位区間ｄ内において相対サンプル番号ｋで特定されるサンプルは、絶対サンプル番号を用いて表記すると、絶対サンプル番号（ｋ＋Ｋ）で特定されることになる。
【００７７】
図２０は、以上のような理論に基づいて、実際に設定された相関計算対象区間の一例を示す図である。図２０(a) は、解析対象となる時系列信号Ｘを示している。§３で述べた方法で各単位区間の設定を行えば、時刻ｔ１〜ｔ４が各単位区間の始点あるいは終点として決定され、図２０(b) に示されるように、３つの単位区間ｄ１，ｄ２，ｄ３が設定されることになる。これらの単位区間は、§３で述べたすべての条件を満たしている。すなわち、いずれの単位区間も、始点および終点は、時系列信号Ｘの零交差点となっており、最小区間長Ｌmin 〜最大区間長Ｌmax の範囲内の区間長を有している。また、各単位区間内には、奇数個の零交差点が存在し（別言すれば、整数周期分の信号が含まれており）、振幅のくびれた部分に終点が置かれている。
【００７８】
さて、このような３つの単位区間ｄ１，ｄ２，ｄ３内の各区間信号に対して、第ｎ番目の標準周波数ｆ（ｎ）をもった標準周期関数Ｒｎについての相関演算を行う場合に、相関計算対象区間を設定すると、図２０(c) に示すような形になる。ここで、各単位区間に描かれている標準周期関数Ｒｎはいずれも同一の標準周波数ｆ（ｎ）をもった正弦関数であるが、いずれも整数周期分だけが描かれている。たとえば、単位区間ｄ１では、周期関数Ｒｎの３周期分に相当する区間が相関計算対象区間となり、相関計算は、この３周期分に相当する区間についてのみ行われることになる。もちろん、第（ｎ＋１）番目の標準周波数ｆ（ｎ＋１）をもった標準周期関数Ｒｎ＋１についての相関演算を行う場合には、それぞれの単位区間において、標準周期関数Ｒｎ＋１の整数周期分に相当する相関計算対象区間が設定されることになる。結局、図５に示す１２８通りの標準周期関数すべてとの相関計算を行うには、各単位区間ごとに１２８通りの相関計算対象区間が設定されることになる。
【００７９】
こうして、１２８通りの標準周期関数のそれぞれについての相関計算が行われたら、図２０(d) に示すように、各周期関数と、そのそれぞれについての相関値とが、周波数解析の結果として出力されることになる。符号化を行うのであれば、各単位区間ごとに、たとえば、相関値の大きさの順にＱ個の標準周期関数を選出し、この標準周期関数の周波数を音の高さとして示し、相関値を音の強さとして示す示す符号データを作成すればよい。
【００８０】
§７．一般化調和解析の手法
ここでは、本発明に係る時系列信号の解析方法を利用して、音響信号の符号化を行う際に有用な一般化調和解析の手法を述べておく。既に述べたように、音響信号を符号化する場合、個々の単位区間内の区間信号について、相関値の高いいくつかの代表周波数を選出することになる。一般化調和解析は、より高い精度で代表周波数の選出を可能にする手法であり、その基本原理は次のとおりである。
【００８１】
いま、図２１(a) に示すような単位区間ｄについて、信号Ｓ（ｊ）なるものが存在するとしよう。ここで、ｊは後述するように、繰り返し処理のためのパラメータである（ｊ＝１〜Ｊ）。まず、この信号Ｓ（ｊ）に対して、図５に示すような１２８通りの周期関数すべてについての相関値を求める。そして、最大の相関値が得られた１つの周期関数の周波数を代表周波数として選出し、当該代表周波数をもった周期関数を要素関数として抽出する。続いて、図２１(b) に示すような含有信号Ｇ（ｊ）を定義する。この含有信号Ｇ（ｊ）は、抽出された要素関数に、その振幅として、当該要素関数の信号Ｓ（ｊ）に対する相関値を乗じることにより得られる信号である。たとえば、周期関数として図５に示すように、一対の正弦関数と余弦関数とを用い、周波数ｆ（ｎ）が代表周波数として選出された場合、振幅Ａ（ｎ）をもった正弦関数Ａ（ｎ） sin（２πｆ（ｎ）ｋ／Ｆ）と、振幅Ｂ（ｎ）をもった余弦関数Ｂ（ｎ） cos（２πｆ（ｎ）ｋ／Ｆ）との和からなる信号が含有信号Ｇ（ｊ）ということになる（図２１(b) では、図示の便宜上、一方の関数しか示していない）。ここで、Ａ（ｎ），Ｂ（ｎ）は、図１７の式で得られる規格化された相関値であるから、結局、含有信号Ｇ（ｊ）は、信号Ｓ（ｊ）内に含まれている周波数ｆ（ｎ）をもった信号成分ということができる。
【００８２】
こうして、含有信号Ｇ（ｊ）が求まったら、信号Ｓ（ｊ）から含有信号Ｇ（ｊ）を減じることにより、差分信号Ｓ（ｊ＋１）を求める。図２１(c) は、このようにして求まった差分信号Ｓ（ｊ＋１）を示している。この差分信号Ｓ（ｊ＋１）は、もとの信号Ｓ（ｊ）の中から、周波数ｆ（ｎ）をもった信号成分を取り去った残りの信号成分からなる信号ということができる。そこで、パラメータｊを１だけ増加させることにより、この差分信号Ｓ（ｊ＋１）を新たな信号Ｓ（ｊ）として取り扱い、同様の処理を、パラメータｊをｊ＝１〜Ｊまで１ずつ増やしながらＪ回繰り返し実行すれば、Ｊ個の代表周波数を選出することができる。
【００８３】
結局、所定の単位区間内の区間信号Ｘについて、一般化調和解析の手法を適用して、合計Ｊ個の代表周波数を選出するには、まず、パラメータｊを初期値１に設定し、この区間信号Ｘを第１番目の差分信号Ｓ（１）と定義し、前述した処理を、パラメータｊをｊ＝１〜Ｊまで１ずつ増やしながらＪ回繰り返し実行すればよい（ｊ＝１の場合の差分信号Ｓ（１）は、解析対象となる区間信号Ｘそのものであり、「差分信号」と呼ぶべきものではないが、ここでは信号Ｓ（ｊ）を「差分信号」と呼ぶことにしているので、信号Ｓ（１）も、便宜上、「差分信号」と呼ぶことにする。）。要するに、この一般化調和解析の手法では、代表周波数が１つ決定されるたびに、もとの区間信号Ｘからこの代表周波数成分を減じた差分信号が求められ、この差分信号に対する相関に基づいて次の代表周波数が決定される、という手順がＪ回繰り返されることになる。
【００８４】
このような相関計算の結果として出力されるＪ個の含有信号Ｇ（１）〜Ｇ（Ｊ）は、もとの区間信号Ｘの構成要素となる信号であり、もとの区間信号Ｘを符号化する場合には、これらＪ個の含有信号の周波数を示す情報および振幅（強度）を示す情報を符号データとして用いるようにすればよい。
【００８５】
§８．符号データの統合処理
さて、本発明による時系列信号の解析方法を行うと、各単位区間ごとに、それぞれいくつかの代表周波数（音の高さを示す情報）とその相関値（音の強さを示す情報）とが得られることになる。この解析結果に基づいて、もとの時系列信号を符号化するのであれば、これらの情報に、更に各単位区間の始点（発音開始時刻を示す情報）と終点（発音終了時刻を示す情報）を加えた符号データを作成すればよい。
【００８６】
たとえば、図２２(a) は、隣接する２つの単位区間について作成された符号データの概念図である。この例は、１単位区間について１代表周波数のみを抽出した例であるため、合計２つの符号データＡ，Ｂによって、２つの単位区間についての音響信号が符号化されている。第１の単位区間は、時刻ｔ１〜ｔ２にわたる区間であり、第２の単位区間は、時刻ｔ２〜ｔ３にわたる区間である。上述のように、本発明に係る単位区間設定方法では、無音区間が設けられる例外を除き、第１の単位区間の終点ｔ２が、第２の単位区間の始点ｔ２に一致する。ここで、符号データＡ，Ｂは、いずれも、音の高さを示す情報（ＭＩＤＩデータの場合はノートナンバー）と、音の強さを示す情報（ＭＩＤＩデータの場合はベロシティー）と、発音開始時刻（始点）を示す情報（ＭＩＤＩデータの場合はノートオン時刻）と、発音終了時刻（終点）を示す情報（ＭＩＤＩデータの場合はノートオフ時刻）と、を有している。
【００８７】
このように、隣接する２つの符号データが生成された場合に、もし、両符号データの有する音の高さの情報と音の強さの情報とが、所定の許容範囲で類似している場合（もちろん、完全に一致している場合も含めて）は、両符号を統合する処理を行った方が、効率的な符号化が可能になる。たとえば、図２２(a) において、符号データＡ，ＢがＭＩＤＩデータであったとして、両者のノートナンバーおよびベロシティーが同一もしくは近似していた場合には、図２２(b) に示すように、符号データＢを消去する代わりに、符号データＡのノートオフ時刻をｔ２からｔ３に変更する処理を行えばよい。
【００８８】
一般的には、第１の符号データの発音終了時刻と第２の符号データの発音開始時刻が一致し、これら２つの符号データに含まれる音の高さを示す情報および音の強さを示す情報が所定の許容範囲で類似している場合に、第１の符号データの発音終了時刻を第２の符号データの発音終了時刻に変更するとともに第２の符号データを削除することにより、これら２つの符号データを単一の符号データに統合する処理を行えばよいことになる。ここでは、隣接する２つの符号データの統合処理のみを示したが、もちろん、このような統合処理を時間軸上の左側から右側へ沿って順次実施してゆけば、連続配置された３つ以上の符号データを順次統合してゆくことが可能になり、全体として符号データの数を減らし、効率的な符号化が可能になる。
【００８９】
以上、本発明を図示する実施形態に基づいて説明したが、本発明はこれらの実施形態に限定されるものではなく、この他にも種々の態様で実施可能である。また、本発明に係る時系列信号の解析方法および音響信号の符号化方法は、コンピュータによって実行される処理であり、コンピュータにこのような処理を行わせるためのプログラムは、コンピュータ読み取り可能な記録媒体に記録して配付することが可能である。
【００９０】
【発明の効果】
以上のとおり本発明によれば、時系列信号を互いに重複することのない複数の単位区間に分割しつつ、単位区間の境界において解析結果に不連続性が生じることのない正確な周波数解析を行うことができ、原音響信号の符号化を高い品質をもって行うことが可能になる。
【図面の簡単な説明】
【図１】本発明に係る時系列信号の解析方法の基本概念を示す図である。
【図２】本発明に係る時系列信号の解析方法の基本手順を示す流れ図である。
【図３】図２のステップＳ１における時系列信号の入力段階を説明する図である。
【図４】入力した時系列信号に対して、部分的に重複した複数の単位区間設定を行った例を示す図である。
【図５】図２のステップＳ３における周期関数定義段階で定義される周期関数の一例を示す図である。
【図６】図５に示す周期関数のもつ周波数ｆ（ｎ）が、ノートナンバーに対応していることを示す図である。
【図７】本発明に係る解析方法の特徴となる可変区間長Ｌｉをもった単位区間ｄｉを設定する際の第１の主条件を示す図である。
【図８】本発明に係る解析方法の特徴となる可変区間長Ｌｉをもった単位区間ｄｉを設定する際の第２の主条件を示す図である。
【図９】時系列信号Ｘについての零交差点Ｚを認識する方法を示す図である。
【図１０】時系列信号Ｘについて認識された複数の零交差点Ｚ１〜Ｚ１０を示す図である。
【図１１】図１０に示す時系列信号Ｘについて、ピークサンプルＰ２〜Ｐ１０を求めた状態を示す図である。
【図１２】隣接する零交差点間には、ただ一つのピークサンプルのみが求められることを示す図である。
【図１３】各ピークサンプルのピーク値の包絡線Ｅに基づいて、時系列信号Ｘのくびれた部分を認識する方法を示す図である。
【図１４】本発明に係る方法によって単位区間設定を行う具体的な手順を示す流れ図である。
【図１５】図１４の流れ図に示す手順の内容を具体的に説明する図である。
【図１６】本発明に係る方法における相関計算の具体的な方法を示す図である。
【図１７】図１６に示す相関計算において用いられる計算式を示す図である。
【図１８】単位区間ｄｉに対して、相関計算対象区間を設定した状態を示す図である。
【図１９】図１８に示すような相関計算対象区間を設定した場合に用いられる相関計算の計算式を示す図である。
【図２０】具体的な時系列信号Ｘに対して、単位区間設定を行うとともに、相関計算対象区間の設定も行った状態を示す図である。
【図２１】本発明に係る音響信号の符号化方法を実施する上で有用な一般化調和解析の基本概念を示す図である。
【図２２】本発明に係る音響信号の符号化方法によって得られた符号データに対して施す統合処理を説明する図である。
【符号の説明】
Ａ，Ｂ…符号データ
Ａ（ｎ），Ｂ（ｎ）…相関値
ｄ，ｄ１〜ｄ５，ｄｉ…単位区間
Ｅ…ピーク値の包絡線
Ｅ（ｎ）…相関値（実効値）
ｅ（ｄ１，１），ｅ（ｄ１，２），ｅ（ｄ１，３），ｅ（ｄ２，１），ｅ（ｄ２，２），ｅ（ｄ２，３）…振幅強度
Ｆ…サンプリング周波数
ｆ（０）〜ｆ（１２７），ｆ（ｎ）…標準周波数
Ｇ（ｊ）…含有信号
ｉ…単位区間を示すパラメータ
ｊ…繰り返し回数を示すパラメータ
ｋ…サンプル番号を示すパラメータ
Ｌ…固定区間長
Ｌｉ…第ｉ番目の単位区間について設定された可変区間長
Ｌmax …最大区間長
Ｌmin …最小区間長
ｎ，ｎ（ｄ１，１），ｎ（ｄ１，２），ｎ（ｄ１，３），ｎ（ｄ２，１），ｎ（ｄ２，２），ｎ（ｄ２，３）…ノートナンバー
Ｐ２〜Ｐ１０…ピークサンプル
Ｐａ，Ｐｂ…ピーク位置のサンプル
Ｒｎ…周期関数
Ｓ（ｊ），Ｓ（ｊ＋１）…差分信号
Ｔ１〜Ｔ３…トラック
ｔ１〜ｔ６…時刻
ｗ…サンプル番号
Ｘ…時系列信号／区間信号
Ｘ（ｋ）…第ｋ番目のサンプルの振幅値
Ｚ，Ｚ１〜Ｚ１０，Ｚａ，Ｚｂ…零交差点
【図１】
0004398049.tif 000002
【図２】
0004398049.tif 000003
【図３】
0004398049.tif 000004
【図４】
0004398049.tif 000005
【図５】
0004398049.tif 000006
【図６】
0004398049.tif 000007
【図７】
0004398049.tif 000008
【図８】
0004398049.tif 000009
【図９】
0004398049.tif 000010
【図１０】
0004398049.tif 000011
【図１１】
0004398049.tif 000012
【図１２】
0004398049.tif 000013
【図１３】
0004398049.tif 000014
【図１４】
0004398049.tif 000015
【図１５】
0004398049.tif 000016
【図１６】
0004398049.tif 000017
【図１７】
0004398049.tif 000018
【図１８】
0004398049.tif 000019
【図１９】
0004398049.tif 000020
【図２０】
0004398049.tif 000021
【図２１】
0004398049.tif 000022
【図２２】
0004398049.tif 000023