(57)【特許請求の範囲】
【請求項１】
時系列の強度信号として与えられる時系列信号から、その構成要素となる複数の周期信号を抽出する時系列信号の解析方法であって、
解析対象となる時系列信号を、デジタルデータとして取り込む入力段階と、
取り込んだ時系列信号の時間軸上に複数の単位区間を設定する区間設定段階と、
複数通りの周波数を設定し、同一の周波数をもった正弦関数および余弦関数からなる一対の関数を、当該周波数についての周期関数と定義することにより、各周波数についての周期関数からなる関数群を定義する関数群定義段階と、
１つの単位区間内の時系列信号を区間信号Ｘとして抽出するとともに、この区間信号Ｘを第１番目の差分信号Ｓ（１）と定義する区間信号抽出段階と、
前記関数群の中から、前記区間信号Ｘに対する相関値Ｅが最も高く、かつ、第ｊ番目の差分信号Ｓ（ｊ）に対する相関値ＥＥと前記相関値Ｅとの関係が所定の設定条件を満足している周期関数を第ｊ番目の要素関数として選出し、前記第ｊ番目の要素関数を前記関数群から除外し、前記第ｊ番目の要素関数と前記相関値ＥＥとの積で与えられる第ｊ番目の含有信号Ｇ（ｊ）を求め、前記第ｊ番目の差分信号Ｓ（ｊ）から前記第ｊ番目の含有信号Ｇ（ｊ）を減じることにより得られる信号を新たな差分信号Ｓ（ｊ＋１）とする処理を、ｊ＝１〜Ｊ（Ｊは任意の整数）までＪ回繰り返して行う要素関数選出段階と、
を有し、
前記関数群定義段階において、ＭＩＤＩのノートナンバーに対応する半音単位の複数α通りの標準周波数について、それぞれ１／β半音単位の複数β通りのバリエーションをもった近接周波数（標準周波数と同一のものを含んでいてもよい）を、互いに隣接する標準周波数についての近接周波数帯が重なり合わない範囲内で設定し、各近接周波数をもった近接周期関数をそれぞれ定義し、合計α×β通りの近接周期関数によって関数群を構成するようにし、
前記要素関数選出段階において、所定の周期関数と所定の信号との相関値として、正弦関数についての相関値と余弦関数についての相関値との実効値を用いるようにし、
前記要素関数選出段階において、ある１つの近接周期関数を前記関数群から除外する際には、当該近接周期関数のバリエーションとなる近接周期関数も含めて合計β通りの近接周期関数すべてを除外するようにし、
前記区間信号抽出段階および前記要素関数選出段階を、個々の単位区間のそれぞれについて行い、各単位区間ごとに複数の含有信号を求め、各単位区間について求められた含有信号を当該単位区間内の時系列信号の構成要素となる周期信号として抽出することを特徴とする時系列信号の解析方法。
【請求項２】
請求項１に記載の時系列信号の解析方法において、
要素関数選出段階において、関数群の中から、区間信号Ｘに対する相関値Ｅが最も高く、かつ、第ｊ番目の差分信号Ｓ（ｊ）に対する相関値ＥＥと前記相関値Ｅとの関係が所定の設定条件を満足している周期関数を第ｊ番目の要素関数として選出する処理を行う際に、
区間信号Ｘに対する相関値Ｅが最も高い周期関数を仮要素関数として選出し、この仮要素関数についての第ｊ番目の差分信号Ｓ（ｊ）に対する相関値ＥＥを計算して条件判断を行い、
前記条件判断の結果、前記設定条件を満足していた場合には、当該仮要素関数を第ｊ番目の要素関数として選出する処理を行うとともに、この第ｊ番目の要素関数を関数群から除外する処理を行い、
前記条件判断の結果、前記設定条件を満足していない場合には、当該仮要素関数を関数群から除外する処理を行った上で新たな仮要素関数を選出する処理を、前記設定条件が満足されるまで繰り返し行うことを特徴とする時系列信号の解析方法。
【請求項３】
請求項１または２に記載の時系列信号の解析方法において、
要素関数選出段階において、相関値ＥＥと相関値Ｅとの関係についての所定の設定条件として、所定のしきい値Δを設定したときに、｜Ｅ−ＥＥ｜＜ΔまたはＥＥ＞Ｅ−Δという条件を用いることを特徴とする時系列信号の解析方法。
【請求項４】
請求項１〜３のいずれかに記載の時系列信号の解析方法において、
要素関数選出段階において、選出された要素関数がもつ周波数の整数倍の周波数をもち、かつ、関数群の中に含まれている１つまたは複数の近接周期関数を、倍音成分関数として選出し、「各倍音成分関数」と「当該倍音成分関数の差分信号Ｓ（ｊ）に対する相関値ＥＥ」との積で与えられる各倍音含有信号を求め、差分信号Ｓ（ｊ）から含有信号Ｇ（ｊ）と前記各倍音含有信号とを減じることにより得られる信号を新たな差分信号Ｓ（ｊ＋１）とする処理を行うことを特徴とする時系列信号の解析方法。
【請求項５】
請求項１〜４のいずれかに記載の時系列信号の解析方法において、
各単位区間ごとに求められた含有信号の周波数をそれぞれ近接した標準周波数に置き換えることにより、各単位区間内の時系列信号の構成要素として最終的に抽出される周期信号が、いずれかの標準周波数をもった信号となるようにしたことを特徴とする時系列信号の解析方法。
【請求項６】
請求項１〜５のいずれかに記載の時系列信号の解析方法を利用した音響信号の符号化方法であって、
符号化対象となる音響信号を、解析対象となる時系列信号として取り扱うことにより、個々の単位区間のそれぞれについての含有信号を求め、
特定の単位区間について求められた含有信号についての振幅を示す情報および周波数もしくはその近傍の周波数を示す情報、ならびに前記特定の単位区間の時間軸上での位置を示す情報を含む符号データを作成し、この符号データにより前記特定の単位区間内の音響信号を符号化することを特徴とする音響信号の符号化方法。
【請求項７】
請求項６に記載の音響信号の符号化方法において、
個々の単位区間ごとに、得られたＪ個の含有信号のうち振幅の大きい順にＭ個（Ｍ＜Ｊ）の含有信号を選出し、このＭ個の含有信号に基づいて符号データの作成を行うことを特徴とする音響信号の符号化方法。
【請求項８】
請求項６または７に記載の音響信号の符号化方法において、
特定の単位区間について求められた含有信号についての振幅を示す情報としてベロシティーを用い、周波数もしくはその近傍の周波数を示す情報としてノートナンバーを用い、前記特定の単位区間の時間軸上での区間開始位置を示す情報としてノートオン時刻を用い、区間終了位置を示す情報としてノートオフ時刻を用い、符号データとしてＭＩＤＩデータを作成することを特徴とする音響信号の符号化方法。
【請求項９】
請求項１〜８のいずれかに記載の時系列信号の解析方法または音響信号の符号化方法をコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は時系列信号の解析方法および音響信号の符号化方法に関し、時系列の強度信号として与えられる時系列信号から、その構成要素となる複数の周期信号を抽出することにより解析を行い、更に、この解析方法を利用して音響信号を符号化する技術に関する。特に、本発明は一般の音響信号を、ＭＩＤＩ形式の符号データに効率良く変換する処理への利用に適しており、放送メディア（ラジオ、テレビ）、通信メディア（ＣＳ映像・音声配信、インターネット配信）、パッケージメディア（ＣＤ、ＭＤ、カセット、ビデオ、ＬＤ、ＣＤ−ＲＯＭ、ゲームカセット）などで提供する各種オーディオコンテンツを制作する種々の産業分野や、医療聴診音（たとえば、心音）などの各種音響信号解析や診断の分野への応用が期待される。
【０００２】
【従来の技術】
音響信号に代表される時系列信号には、その構成要素として複数の周期信号が含まれている。このため、与えられた時系列信号にどのような周期信号が含まれているかを解析する手法は、古くから知られている。たとえば、フーリエ解析は、与えられた時系列信号に含まれる周波数成分を解析するための方法として広く利用されている。
【０００３】
このような時系列信号の解析手法を利用すれば、音響信号を符号化することも可能である。コンピュータの普及により、原音となるアナログ音響信号を所定のサンプリング周波数でサンプリングし、各サンプリング時の信号強度を量子化してデジタルデータとして取り込むことが容易にできるようになってきており、こうして取り込んだデジタルデータに対してフーリエ解析などの手法を適用し、原音信号に含まれていた周波数成分を抽出すれば、各周波数成分を示す符号によって原音信号の符号化が可能になる。
【０００４】
一方、電子楽器による楽器音を符号化しようという発想から生まれたＭＩＤＩ（Musical Instrument Digital Interface）規格も、パーソナルコンピュータの普及とともに盛んに利用されるようになってきている。このＭＩＤＩ規格による符号データ（以下、ＭＩＤＩデータという）は、基本的には、楽器のどの鍵盤キーを、どの程度の強さで弾いたか、という楽器演奏の操作を記述したデータであり、このＭＩＤＩデータ自身には、実際の音の波形は含まれていない。そのため、実際の音を再生する場合には、楽器音の波形を記憶したＭＩＤＩ音源が別途必要になるが、その符号化効率の高さが注目を集めており、ＭＩＤＩ規格による符号化および復号化の技術は、現在、パーソナルコンピュータを用いて楽器演奏、楽器練習、作曲などを行うソフトウエアに広く採り入れられている。
【０００５】
そこで、音響信号に代表される時系列信号に対して、所定の手法で解析を行うことにより、その構成要素となる周期信号を抽出し、抽出した周期信号をＭＩＤＩデータを用いて符号化しようとする提案がなされている。たとえば、特開平１０−２４７０９９号公報、特開平１１−７３１９９号公報、特開平１１−７３２００号公報、特開平１１−９５７５３号公報、特開２０００−０９９００９号公報、特開２０００−０９９０９３号公報、特開２０００−２６１３２２号公報、特開２００１−００５４５０号公報、特開２００１−１４８６３３号公報、には、任意の時系列信号について、構成要素となる周波数成分を解析し、その解析結果からＭＩＤＩデータを作成することができる種々の方法が提案されている。
【０００６】
【発明が解決しようとする課題】
前掲の各文献に開示された解析方法は、いずれも、解析対象となる時系列信号の時間軸に沿って複数の単位区間を設定し、各単位区間ごとに相関の高い所定の周期関数を対応させ、各周期関数に相当する信号を構成要素となる周期信号として抽出するという手順を採っている。ところが、この解析過程において、もとの時系列信号には本来存在しない周期関数が拾われてしまう、という問題が生じている。特に、楽器音からなる原音響信号に対してこれらの解析方法を実施すると、実際に演奏された音に対応する本来の周波数だけでなく、その周辺の周波数や倍音成分の周波数が拾われてしまい、最終的にＭＩＤＩデータを作成した場合、本来の演奏音とは異なる符号が作成されてしまうという問題が生じることになる。このような問題に対処するために、前掲の特開２０００−２６１３２２号公報では、フーリエ解析の代わりに一般化調和解析を用いる手法が開示され、前掲の特開２００１−００５４５０号公報では相関演算の対象となる周期関数をよりきめ細かく設定する手法が開示され、前掲の特開２００１−１４８６３３号公報では、位相差を用いた周波数補正を行う手法が開示されている。しかしながら、これまで提案されてきたこれらの手法では、必ずしも正確な周波数解析を行うことができず、符号化を行った場合、再生音に歪みが発生するなど品質低下の問題が生じていた。
【０００７】
そこで本発明は、時系列信号に対するより正確な周波数解析を行うことができ、原音響信号の符号化を高い品質をもって行うことが可能な時系列信号の解析方法および音響信号の符号化方法を提供することを目的とする。
【０００８】
【課題を解決するための手段】
(1)   本発明の第１の態様は、時系列の強度信号として与えられる時系列信号から、その構成要素となる複数の周期信号を抽出する時系列信号の解析方法において、
解析対象となる時系列信号を、デジタルデータとして取り込む入力段階と、
取り込んだ時系列信号の時間軸上に複数の単位区間を設定する区間設定段階と、
複数通りの周波数を設定し、同一の周波数をもった正弦関数および余弦関数からなる一対の関数を、当該周波数についての周期関数と定義することにより、各周波数についての周期関数からなる関数群を定義する関数群定義段階と、
１つの単位区間内の時系列信号を区間信号Ｘとして抽出するとともに、この区間信号Ｘを第１番目の差分信号Ｓ（１）と定義する区間信号抽出段階と、
定義した関数群の中から、区間信号Ｘに対する相関値Ｅが最も高く、かつ、第ｊ番目の差分信号Ｓ（ｊ）に対する相関値ＥＥと相関値Ｅとの関係が所定の設定条件を満足している周期関数を第ｊ番目の要素関数として選出し、第ｊ番目の要素関数を関数群から除外し、第ｊ番目の要素関数と相関値ＥＥとの積で与えられる第ｊ番目の含有信号Ｇ（ｊ）を求め、第ｊ番目の差分信号Ｓ（ｊ）から第ｊ番目の含有信号Ｇ（ｊ）を減じることにより得られる信号を新たな差分信号Ｓ（ｊ＋１）とする処理を、ｊ＝１〜Ｊ（Ｊは任意の整数）までＪ回繰り返して行う要素関数選出段階と、
を行い、
関数群定義段階において、ＭＩＤＩのノートナンバーに対応する半音単位の複数α通りの標準周波数について、それぞれ１／β半音単位の複数β通りのバリエーションをもった近接周波数（標準周波数と同一のものを含んでいてもよい）を、互いに隣接する標準周波数についての近接周波数帯が重なり合わない範囲内で設定し、各近接周波数をもった近接周期関数をそれぞれ定義し、合計α×β通りの近接周期関数によって関数群を構成するようにし、
要素関数選出段階において、所定の周期関数と所定の信号との相関値として、正弦関数についての相関値と余弦関数についての相関値との実効値を用いるようにし、
要素関数選出段階において、ある１つの近接周期関数を関数群から除外する際には、当該近接周期関数のバリエーションとなる近接周期関数も含めて合計β通りの近接周期関数すべてを除外するようにし、
区間信号抽出段階および要素関数選出段階については、個々の単位区間のそれぞれについて行うようにし、各単位区間ごとに複数の含有信号を求め、各単位区間について求められた含有信号を当該単位区間内の時系列信号の構成要素となる周期信号として抽出するようにしたものである。
【０００９】
(2)   本発明の第２の態様は、上述の第１の態様に係る時系列信号の解析方法において、
要素関数選出段階において、関数群の中から、区間信号Ｘに対する相関値Ｅが最も高く、かつ、第ｊ番目の差分信号Ｓ（ｊ）に対する相関値ＥＥと相関値Ｅとの関係が所定の設定条件を満足している周期関数を第ｊ番目の要素関数として選出する処理を行う際に、
区間信号Ｘに対する相関値Ｅが最も高い周期関数を仮要素関数として選出し、この仮要素関数についての第ｊ番目の差分信号Ｓ（ｊ）に対する相関値ＥＥを計算して条件判断を行い、
条件判断の結果、設定条件を満足していた場合には、当該仮要素関数を第ｊ番目の要素関数として選出する処理を行うとともに、この第ｊ番目の要素関数を関数群から除外する処理を行い、
条件判断の結果、設定条件を満足していない場合には、当該仮要素関数を関数群から除外する処理を行った上で新たな仮要素関数を選出する処理を、設定条件が満足されるまで繰り返し行うようにしたものである。
【００１０】
(3)   本発明の第３の態様は、上述の第１または第２の態様に係る時系列信号の解析方法において、
要素関数選出段階において、相関値ＥＥと相関値Ｅとの関係についての所定の設定条件として、所定のしきい値Δを設定したときに、｜Ｅ−ＥＥ｜＜ΔまたはＥＥ＞Ｅ−Δという条件を用いるようにしたものである。
【００１２】
(4)   本発明の第４の態様は、上述の第１〜第３の態様に係る時系列信号の解析方法において、
要素関数選出段階において、選出された要素関数がもつ周波数の整数倍の周波数をもち、かつ、関数群の中に含まれている１つまたは複数の近接周期関数を、倍音成分関数として選出し、「各倍音成分関数」と「当該倍音成分関数の差分信号Ｓ（ｊ）に対する相関値ＥＥ」との積で与えられる各倍音含有信号を求め、差分信号Ｓ（ｊ）から含有信号Ｇ（ｊ）と各倍音含有信号とを減じることにより得られる信号を新たな差分信号Ｓ（ｊ＋１）とする処理を行うようにしたものである。
【００１３】
(5)   本発明の第５の態様は、上述の第１〜第４の態様に係る時系列信号の解析方法において、
各単位区間ごとに求められた含有信号の周波数をそれぞれ近接した標準周波数に置き換えることにより、各単位区間内の時系列信号の構成要素として最終的に抽出される周期信号が、いずれかの標準周波数をもった信号となるようにしたものである。
【００１６】
(6)   本発明の第６の態様は、上述の第１〜第５の態様に係る時系列信号の解析方法を利用した音響信号の符号化方法において、
符号化対象となる音響信号を、解析対象となる時系列信号として取り扱うことにより、個々の単位区間のそれぞれについての含有信号を求め、
特定の単位区間について求められた含有信号についての振幅を示す情報および周波数もしくはその近傍の周波数を示す情報、ならびに当該特定の単位区間の時間軸上での位置を示す情報を含む符号データを作成し、この符号データにより当該特定の単位区間内の音響信号を符号化するようにしたものである。
【００１７】
(7)   本発明の第７の態様は、上述の第６の態様に係る音響信号の符号化方法において、
個々の単位区間ごとに、得られたＪ個の含有信号のうち振幅の大きい順にＭ個（Ｍ＜Ｊ）の含有信号を選出し、このＭ個の含有信号に基づいて符号データの作成を行うようにしたものである。
【００１８】
(8)   本発明の第８の態様は、上述の第６または第７の態様に係る音響信号の符号化方法において、
特定の単位区間について求められた含有信号についての振幅を示す情報としてベロシティーを用い、周波数もしくはその近傍の周波数を示す情報としてノートナンバーを用い、特定の単位区間の時間軸上での区間開始位置を示す情報としてノートオン時刻を用い、区間終了位置を示す情報としてノートオフ時刻を用い、符号データとしてＭＩＤＩデータを作成するようにしたものである。
【００１９】
(9)   本発明の第９の態様は、上述の第１〜第８の態様に係る時系列信号の解析方法または音響信号の符号化方法をコンピュータに実行させるためのプログラムを、コンピュータ読み取り可能な記録媒体に記録するようにしたものである。
【００２０】
【発明の実施の形態】
以下、本発明を図示する実施形態に基づいて説明する。
【００２１】
§１．本発明に係る解析方法および符号化方法の基本原理
はじめに、本発明に係る時系列信号の解析方法および音響信号の符号化方法の基本原理を述べておく。この基本原理は、前掲の各公報あるいは明細書に開示されているので、ここではその概要のみを簡単に述べることにする。
【００２２】
いま、図１(a) に示すように、時系列信号としてアナログ音響信号が与えられたものとしよう。図示の例では、横軸に時間ｔ、縦軸に振幅（強度）をとってこの音響信号を示している。ここでは、まずこのアナログ音響信号を、デジタルの音響データとして取り込む処理を行う。これは、従来の一般的なＰＣＭの手法を用い、所定のサンプリング周期でこのアナログ音響信号をサンプリングし、振幅を所定の量子化ビット数を用いてデジタルデータに変換する処理を行えばよい。
【００２３】
続いて、この解析対象となる音響信号の時間軸上に、複数の単位区間を設定する。図１(a) に示す例では、時間軸ｔ上に等間隔に６つの時刻ｔ１〜ｔ６が定義され、これら各時刻を始点および終点とする５つの単位区間ｄ１〜ｄ５が設定されている。図示の例では、すべて同一の区間長をもった単位区間が設定されているが、個々の単位区間ごとに区間長を変えるようにしてもかまわない。あるいは、隣接する単位区間が時間軸上で部分的に重なり合うような区間設定を行ってもかまわない。
【００２４】
こうして単位区間が設定されたら、各単位区間ごとの音響信号（以下、区間信号と呼ぶことにする）について、それぞれ代表周波数を選出する。各区間信号には、通常、様々な周波数成分が含まれているが、たとえば、その中で振幅の大きな周波数成分を代表周波数として選出すればよい。代表周波数は１つだけ選出してもよいが、複数の代表周波数を選出した方が、より精度の高い符号化が可能になる。図１(b) には、個々の単位区間ごとにそれぞれ３つの代表周波数を選出し、１つの代表周波数を１つの代表符号コード（図では便宜上、音符として示してある）として符号化した例が示されている。ここでは、代表符号コード（音符）を収容するために３つのトラックＴ１，Ｔ２，Ｔ３が設けられているが、これは個々の単位区間ごとに選出された３つずつの代表符号コードを、それぞれ異なるトラックに収容するためである。なお、ここでの「コード」は記号を意味する「code」の意味であり、和音を示す「chord」の意味ではない。
【００２５】
たとえば、単位区間ｄ１について選出された代表符号コードｎ（ｄ１，１），ｎ（ｄ１，２），ｎ（ｄ１，３）は、それぞれトラックＴ１，Ｔ２，Ｔ３に収容されている。ここで、各コードｎ（ｄ１，１），ｎ（ｄ１，２），ｎ（ｄ１，３）は、ＭＩＤＩ符号におけるノートナンバーを示すコードである。ＭＩＤＩ符号におけるノートナンバーは、０〜１２７までの１２８通りの値をとり、それぞれピアノの鍵盤の１つのキーを示すことになる。具体的には、たとえば、代表周波数として４４０Ｈｚが選出された場合、この周波数はノートナンバーｎ＝６９（ピアノの鍵盤中央の「ラ音（Ａ３音）」に対応）に相当するので、代表符号コードとしては、ｎ＝６９が選出されることになる。もっとも、図１(b) は、上述の方法によって得られる代表符号コードを音符の形式で示した概念図であり、実際には、各音符にはそれぞれ強度に関するデータも付加されている。たとえば、トラックＴ１には、ノートナンバーｎ（ｄ１，１），ｎ（ｄ２，１）…なる音階を示すデータとともに、ｅ（ｄ１，１），ｅ（ｄ２，１）…なる強度を示すデータが収容されることになる。この強度を示すデータは、各代表周波数の成分が、もとの区間信号にどの程度の度合いで含まれていたかによって決定される。具体的には、各代表周波数をもった周期関数の区間信号に対する相関値に基づいて強度を示すデータが決定されることになる。また、図１(b) に示す概念図では、音符の横方向の位置によって、個々の単位区間の時間軸上での位置が示されているが、実際には、この時間軸上での位置を正確に数値として示すデータが各音符に付加されていることになる。
【００２６】
音響信号を符号化する形式としては、必ずしもＭＩＤＩ形式を採用する必要はないが、この種の符号化形式としてはＭＩＤＩ形式が最も普及しているため、実用上はＭＩＤＩ形式の符号データを用いるのが最も好ましい。ＭＩＤＩ形式では、「ノートオン」データもしくは「ノートオフ」データが、「デルタタイム」データを介在させながら存在する。「ノートオン」データは、特定のノートナンバーＮとベロシティーＶとを指定して特定の音の演奏開始を指示するデータであり、「ノートオフ」データは、特定のノートナンバーＮとベロシティーＶとを指定して特定の音の演奏終了を指示するデータである。また、「デルタタイム」データは、所定の時間間隔を示すデータである。ベロシティーＶは、たとえば、ピアノの鍵盤などを押し下げる速度（ノートオン時のベロシティー）および鍵盤から指を離す速度（ノートオフ時のベロシティー）を示すパラメータであり、特定の音の演奏開始操作もしくは演奏終了操作の強さを示すことになる。
【００２７】
前述の方法では、第ｉ番目の単位区間ｄｉについて、代表符号コードとしてＪ個のノートナンバーｎ（ｄｉ，１），ｎ（ｄｉ，２），…，ｎ（ｄｉ，Ｊ）が得られ、このそれぞれについて強度ｅ（ｄｉ，１），ｅ（ｄｉ，２），…，ｅ（ｄｉ，Ｊ）が得られる。そこで、次のような手法により、ＭＩＤＩ形式の符号データを作成することができる。まず、「ノートオン」データもしくは「ノートオフ」データの中で記述するノートナンバーＮとしては、得られたノートナンバーｎ（ｄｉ，１），ｎ（ｄｉ，２），…，ｎ（ｄｉ，Ｊ）をそのまま用いればよい。一方、「ノートオン」データもしくは「ノートオフ」データの中で記述するベロシティーＶとしては、得られた強度ｅ（ｄｉ，１），ｅ（ｄｉ，２），…，ｅ（ｄｉ，Ｊ）を、所定の方法で規格化した値を用いればよい。また、「デルタタイム」データは、各単位区間の長さに応じて設定すればよい。
【００２８】
§２．周期関数との相関を求める具体的な方法
上述した基本原理に基く方法では、区間信号に対して、１つまたは複数の代表周波数が選出され、この代表周波数をもった周期信号によって、当該区間信号が表現されることになる。ここで選出される代表周波数は、文字どおり、当該単位区間内の信号成分を代表する周波数である。この代表周波数を選出する具体的な方法には、§３で述べるように、短時間フーリエ変換を利用する方法と、一般化調和解析の手法を利用する方法とがある。いずれの方法も、基本的な考え方は同じであり、予め周波数の異なる複数の周期関数を用意しておき、これら複数の周期関数の中から、当該単位区間内の区間信号に対する相関が高い周期関数を見つけ出し、この相関の高い周期関数の周波数を代表周波数として選出する、という手法を採ることになる。すなわち、代表周波数を選出する際には、予め用意された複数の周期関数と、単位区間内の区間信号との相関を求める演算を行うことになる。そこでここでは、周期関数との相関を求める具体的な方法を述べておく。
【００２９】
いま、複数の周期関数として、図２に示すような三角関数が用意されているものとしよう。これらの三角関数は、同一周波数をもった正弦関数と余弦関数との対から構成されており、１２８通りの標準周波数ｆ（０）〜ｆ（１２７）のそれぞれについて、正弦関数および余弦関数の対が定義されていることになる。ここでは、同一の周波数をもった正弦関数および余弦関数からなる一対の関数を、当該周波数についての周期関数として定義することにする。別言すれば、ある特定の周波数についての周期関数は、一対の正弦関数および余弦関数によって構成されることになる。このように、一対の正弦関数と余弦関数とにより周期関数を定義するのは、信号に対する周期関数の相関値を求める際に、相関値が位相の影響を受けることを排除するためである。なお、図２に示す各三角関数内の変数Ｆおよびｋは、区間信号Ｘについてのサンプリング周波数Ｆおよびサンプル番号ｋに相当する変数である。たとえば、周波数ｆ（０）についての正弦波は、sin （２πｆ（０）ｋ／Ｆ）で示され、任意のサンプル番号ｋを与えると、区間信号を構成する第ｋ番目のサンプルと同一時間位置における周期関数の振幅値が得られる。
【００３０】
ここでは、１２８通りの標準周波数ｆ（０）〜ｆ（１２７）を、図３に示すような式で定義した例を示すことにする。すなわち、第ｎ番目（０≦ｎ≦１２７）の標準周波数ｆ（ｎ）は、
ｆ（ｎ）＝４４０・２γ（ｎ）
γ（ｎ）＝（ｎ−６９）／１２
なる式で定義されることになる。このような式によって標準周波数を定義しておくと、最終的にＭＩＤＩデータを用いた符号化を行う際に便利である。なぜなら、このような定義によって設定される１２８通りの標準周波数ｆ（０）〜ｆ（１２７）は、等比級数をなす周波数値をとることになり、ＭＩＤＩデータで利用されるノートナンバーに対応した周波数になるからである。たとえば、ノートナンバーｎ＝６９は、前述したようにピアノの鍵盤中央の「ラ音（Ａ３音）」を示しており、４４０Ｈｚの音に相当することになるが、図３に示す式によって第ｎ番目の標準周波数ｆ（ｎ）を定義しておけば、ｎ＝６９を代入すると、ｆ（ｎ）＝４４０が得られることになる。別言すれば、図３に示す式によって定義された１２８通りの標準周波数ｆ（０）〜ｆ（１２７）は、ＭＩＤＩデータにおける１２８通りのノートナンバーｎ＝０〜１２７に対応した周波数ということになる。ノートナンバーｎは、１オクターブ上がると、周波数が２倍になる対数尺度の音階を示すため、周波数軸ｆに対して線形には対応しない。したがって、図２に示す１２８通りの標準周波数ｆ（０）〜ｆ（１２７）は、対数尺度で示した周波数軸上に等間隔（ＭＩＤＩにおける半音単位）に設定した周波数ということになる。このため、本願では、図に掲載するグラフにおけるノートナンバー軸を、いずれも対数尺度で示すことにする。
【００３１】
続いて、任意の区間信号に対する各周期関数の相関の求め方について、もう少し具体的な説明を行っておこう。たとえば、図４に示すように、ある単位区間ｄについて区間信号Ｘが与えられたとする。ここでは、区間長Ｌをもった単位区間ｄについて、サンプリング周波数Ｆでサンプリングが行われており、全部でｗ個のサンプル値が得られているものとし、サンプル番号を図示のように、０，１，２，３，…，ｋ，…，ｗ−２，ｗ−１としよう（白丸で示す第ｗ番目のサンプルは、右に隣接する次の単位区間の先頭に含まれるサンプルとする）。この場合、任意のサンプル番号ｋについては、Ｘ（ｋ）なる振幅値がデジタルデータとして与えられていることになる。
【００３２】
このような区間信号Ｘに対して、第ｎ番目の標準周波数ｆ（ｎ）をもった正弦関数Ｒｎとの相関値を求める原理を示そう。両者の相関値Ａ（ｎ）は、図５の第１の演算式によって定義することができる。ここで、Ｘ（ｋ）は、図４に示すように、区間信号Ｘにおけるサンプル番号ｋの振幅値であり、sin （２πｆ（ｎ）・ｋ／Ｆ）は、時間軸上での同位置における正弦関数Ｒｎの振幅値である。この第１の演算式は、単位区間ｄ内の全サンプル番号ｋ＝０〜ｗ−１の位置について、それぞれ区間信号Ｘの振幅値と正弦関数Ｒｎの振幅値との積を求め、その総和を求める式ということができる。振幅値は正負の符号を有しているので、その積も正負の符号を有したものになる。したがって、区間信号Ｘと正弦関数Ｒｎとの間に全く相関がなかったとすれば、両振幅の積の符号は、全くランダムに正になったり負になったりするので、その総和は０になる。逆に、両者間に相関があれば、両振幅の積の総和の絶対値は、相関の程度に応じて大きくなる。たとえば、区間信号Ｘの振幅が正である時には、正弦関数Ｒｎの振幅も常に正であり、区間信号Ｘの振幅が負である時には、正弦関数Ｒｎの振幅も常に負である、というような正の相関がある場合（区間信号Ｘと正弦関数Ｒｎとが同一周波数で同位相）ならば、積の総和は正の最大値になり、これとは逆に、区間信号Ｘの振幅が正である時には、正弦関数Ｒｎの振幅は常に負であり、区間信号Ｘの振幅が負である時には、正弦関数Ｒｎの振幅は常に正である、というような負の相関がある場合（区間信号Ｘと正弦関数Ｒｎとが同一周波数で逆位相）ならば、積の総和は負の最大値になる。
【００３３】
同様に、図５の第２の演算式は、区間信号Ｘと、第ｎ番目の標準周波数ｆ（ｎ）をもった余弦関数との相関値を求める式であり、両者の相関値はＢ（ｎ）で与えられる。なお、相関値Ａ（ｎ）を求めるための第１の演算式も、相関値Ｂ（ｎ）を求めるための第２の演算式も、最終的に係数２／ｗが乗ぜられているが、これは相関値を規格化するためのものである。すなわち、分母のｗは、単位区間ｄ内に含まれる総サンプル数であり、ｋ＝０〜ｗ−１の全ｗ個のサンプルについて求めた総和を、総サンプル数ｗで割ることにより、１サンプル分についての平均を求める意味をもっている。一方、分子の２は、相関値Ａ（ｎ），Ｂ（ｎ）が−１〜＋１の間の値となるようにするための定数である。
【００３４】
区間信号Ｘと標準周波数ｆ（ｎ）をもった周期関数との総合的な相関は、たとえば、図５の第３の演算式に示すように、正弦関数との相関値Ａ（ｎ）と余弦関数との相関値Ｂ（ｎ）との実効値、すなわち、二乗和平方根値Ｅ（ｎ）によって示すことができる。このように、二乗和平方根値を用いれば、正の相関と負の相関との双方を反映させた総合的な相関を求めることができ、位相の影響を排除した正確な相関を求めることができる。たとえば、正弦関数に対しては正の相関を示し、余弦関数に対しては負の相関を示すような場合、相関値Ａ（ｎ）は正の値となり、相関値Ｂ（ｎ）は負の値となるが、二乗和平方根値Ｅ（ｎ）は、両相関値の絶対値を反映した値となる。
【００３５】
図５に示す演算式は、周期関数として三角関数を用いた場合の例（別言すれば、波形形状が正弦波になる関数の例）であるが、本発明を実施する上で用いる周期関数の波形形状は、正弦波に限定されるものではなく、三角波、矩形波、鋸歯状波などの波形形状をもった周期関数を用いてもかまわない。たとえば、周期関数として、その波形形状が正弦波、三角波、矩形波、鋸歯状波になる複数通りの関数を定義しておき、取り込んだ音響データの特性に基いて、所定の波形形状をもった関数を手動（オペレータの指示）により選択的に用いるようなこともできる。もちろん、オペレータの選択指示を待たずに、取り込んだ音響データの特性を分析し、最も適した周期関数を自動選択するような機能をもたせておくこともできる。
【００３６】
図６に示す式は、三角関数の代わりに、標準周波数ｆ（ｎ）をもった一般的な周期関数Ｒｎを用いた場合の相関を定義する演算式である。相関値Ａ（ｎ）を求める演算式では、周期関数Ｒｎ（ｋ）が用いられているのに対し、相関値Ｂ（ｎ）を求める演算式では、周期関数Ｒｎ（ｋ＋Ｆ／４ｆ（ｎ））が用いられているのは、両周期関数は、同じ標準周波数ｆ（ｎ）を有しているにもかかわらず、互いに位相がπ／２だけ異なっているためである。上述したように、Ｆは区間信号Ｘのサンプリング周波数であり、Ｆ／ｆ（ｎ）は、１周期内のサンプル総数に相当する。したがって、Ｆ／４ｆ（ｎ）は、１／４周期に相当する時間内のサンプル数を示す値となり、位相差π／２をサンプル番号の単位で示した値となる。このように、標準周波数ｆ（ｎ）をもち、互いに位相がπ／２だけ異なる一対の周期関数について、それぞれ相関値Ａ（ｎ），Ｂ（ｎ）を求めれば、その二乗和平方根値Ｅ（ｎ）が、標準周波数ｆ（ｎ）をもった周期関数に対する総合的な相関を示すパラメータになる。
【００３７】
§３．代表周波数を選出する２通りの方法
既に§２で述べたように、特定の区間信号に対して代表周波数を選出する基本原理は、予め用意された複数の周期関数と当該区間信号との相関を求め、相関の高い周期関数の周波数を代表周波数として選出することにある。この代表周波数を選出する具体的な方法としては、短時間フーリエ変換を利用する方法と、一般化調和解析の手法を利用する方法との２通りの方法が提案されている。ここでは、この２通りの方法について説明を行う。
【００３８】
フーリエ変換を利用する方法では、まず、用意されたすべての周期関数について、それぞれ区間信号Ｘに対する相関値を求める。たとえば、図２に示すように１２８通りの周期関数が用意されていた場合、これらすべての周期関数について、図５の式に示されている演算を行い、相関値Ｅ（０）〜Ｅ（１２７）を求めることになる。こうして求まった相関値を相関強度Ｅ（ｎ）としてプロットしてグラフにすれば、図７のような強度グラフが得られることになる。この強度グラフは、図１に示す音響信号の単位区間ｄ１内の区間信号Ｘについての周波数成分を示すグラフであり、いわゆるフーリエスペクトルを示すものである。このようなフーリエスペクトルを求める処理がフーリエ変換であるが、単位区間ｄ１のような短い時間区間内の信号について、フーリエ変換を行う場合（短時間フーリエ変換）、通常は、ハニング窓（Hanning Window )などの重み関数を用いて、区間信号Ｘにフィルタをかけてから演算を行うのが一般的である。そもそも本来のフーリエ変換は、切り出した区間前後に同様な信号が無限に存在することを想定した理論に基づくため、短時間フーリエ変換において重み関数を用いない場合、作成したスペクトルに高周波ノイズがのることが多い。ハニング窓関数など区間の両端の重みが０になるような重み関数を用いると、このような弊害をある程度抑制できる。ハニング窓関数Ｈ（ｋ）は、単位区間長をＬとすると、ｋ＝１…Ｌに対して（ｋは単位区間内の位置を示すパラメータ）、
Ｈ（ｋ）＝０．５−０．５＊ｃｏｓ（２πｋ／Ｌ）
で与えられる関数である。
【００３９】
こうして求められた単位区間ｄ１の強度グラフは、単位区間ｄ１内の区間信号Ｘに含まれるノートナンバーｎ＝０〜１２７に相当する各周波数成分の割合を相関強度Ｅ（ｎ）として示すグラフということができる。そこで、この強度グラフに示されている各相関強度Ｅ（ｎ）に基いて、全１２８個のノートナンバーの中からＪ個のノートナンバーを選択し、このＪ個のノートナンバーを、単位区間ｄ１を代表する代表周波数として選出すればよい。たとえば、「相関強度Ｅ（ｎ）の大きい順に３個の符号コードを抽出する」という基準に基いて抽出を行えば、図７に示す例では、第１番目の代表周波数としてノートナンバーｎ（ｄ１，１）が、第２番目の代表周波数としてノートナンバーｎ（ｄ１，２）が、第３番目の代表周波数としてノートナンバーｎ（ｄ１，３）が、それぞれ選出されることになる。
【００４０】
このようにして、Ｊ個の代表周波数が選出されたら、これら各代表周波数とその相関強度によって、単位区間ｄ１についての区間信号Ｘを符号化することができる。たとえば、上述の例の場合、図７に示す強度グラフにおいて、ノートナンバーｎ（ｄ１，１）、ｎ（ｄ１，２）、ｎ（ｄ１，３）の相関強度がそれぞれｅ（ｄ１，１）、ｅ（ｄ１，２）、ｅ（ｄ１，３）であったとすれば、以下に示す３組のデータ対によって、単位区間ｄ１内の区間信号Ｘを表現することができる。
ｎ（ｄ１，１），ｅ（ｄ１，１）
ｎ（ｄ１，２），ｅ（ｄ１，２）
ｎ（ｄ１，３），ｅ（ｄ１，３）
図１(b) の各トラックの単位区間ｄ１に対応する位置に配置された符号コードは、こうして得られた符号コードである。以上が短時間フーリエ変換の手法である。
【００４１】
続いて、一般化調和解析の手法を説明しよう。この手法の詳細は、たとえば、特開２０００−２６１３２２号公報に開示されているが、その基本原理は次のとおりである。いま、図８(a) に示すような単位区間ｄについて、信号Ｓ（ｊ）なるものが存在するとしよう。ここで、ｊは後述するように、繰り返し処理のためのパラメータである（ｊ＝１〜Ｊ）。まず、この信号Ｓ（ｊ）についてのフーリエスペクトルを求める。すなわち、上述した短時間フーリエ変換の手法と同様に、図７に示すような強度グラフが得られることになる。ただ、上述した短時間フーリエ変換の手法では、この強度グラフに基づいて、相関強度の大きい順にＪ個（上述の例ではＪ＝３）の周波数を代表周波数として選出していたが、ここでは、相関強度が最も大きい周波数１つだけを代表周波数として選出する。続いて、図８(b) に示すような含有信号Ｇ（ｊ）を定義する。この含有信号Ｇ（ｊ）は、選出された代表周波数をもった周期関数であり、その振幅は、信号Ｓ（ｊ）に対する相関強度に応じた値となる。より具体的には、たとえば、周期関数として図２に示すように、一対の正弦関数と余弦関数とを用い、周波数ｆ（ｎ）が代表周波数として選出された場合、振幅Ａ（ｎ）をもった正弦関数Ａ（ｎ） sin（２πｆ（ｎ）ｋ／Ｆ）と、振幅Ｂ（ｎ）をもった余弦関数Ｂ（ｎ） cos（２πｆ（ｎ）ｋ／Ｆ）との和からなる信号が含有信号Ｇ（ｊ）ということになる（図８(b) では、図示の便宜上、一方の関数しか示していない）。ここで、Ａ（ｎ），Ｂ（ｎ）は、図５の式で得られる規格化された相関値であるから、結局、含有信号Ｇ（ｊ）は、信号Ｓ（ｊ）内に含まれている周波数ｆ（ｎ）をもった信号成分ということができる。
【００４２】
こうして、含有信号Ｇ（ｊ）が求まったら、信号Ｓ（ｊ）から含有信号Ｇ（ｊ）を減じることにより、差分信号Ｓ（ｊ＋１）を求める。図８(c) は、このようにして求まった差分信号Ｓ（ｊ＋１）を示している。この差分信号Ｓ（ｊ＋１）は、もとの信号Ｓ（ｊ）の中から、周波数ｆ（ｎ）をもった信号成分を取り去った残りの信号成分からなる信号ということができる。そこで、パラメータｊを１だけ増加させることにより、この差分信号Ｓ（ｊ＋１）を新たな信号Ｓ（ｊ）として取り扱い、同様の処理を、パラメータｊをｊ＝１〜Ｊまで１ずつ増やしながらＪ回繰り返し実行すれば、Ｊ個の代表周波数を選出することができる。
【００４３】
結局、所定の単位区間内の区間信号Ｘについて、一般化調和解析の手法を適用して、合計Ｊ個の代表周波数を選出するには、まず、パラメータｊを初期値１に設定し、この区間信号Ｘを第１番目の差分信号Ｓ（１）と定義し、前述した処理を、パラメータｊをｊ＝１〜Ｊまで１ずつ増やしながらＪ回繰り返し実行すればよい（ｊ＝１の場合の差分信号Ｓ（１）は、解析対象となる区間信号Ｘそのものであり、「差分信号」と呼ぶべきものではないが、ここでは信号Ｓ（ｊ）を「差分信号」と呼ぶことにしているので、信号Ｓ（１）も、便宜上、「差分信号」と呼ぶことにする。）。前述したフーリエ変換による手法の場合、もとの区間信号Ｘに対する相関に基づいて、Ｊ個の代表周波数のすべてが選出されることになるのに対し、この一般化調和解析の手法の場合、代表周波数が１つ決定されるたびに、もとの区間信号Ｘからこの代表周波数成分を減じた差分信号が求められ、この差分信号に対する相関に基づいて次の代表周波数が決定される、という手順がＪ回繰り返されることになる。
【００４４】
§４．２通りの方法の特性および本発明の基本概念
§３では、特定の区間信号に対して代表周波数を選出するための２通りの方法、すなわち、短時間フーリエ変換による方法と、一般化調和解析による方法とを述べた。これら２通りの方法には、それぞれ固有の特性がある。概して、一般化調和解析による方法は、短時間フーリエ変換による方法に比べて、演算負担は増えるが、より正確な代表周波数の選出が可能である。
【００４５】
たとえば、図９に示す例は、楽器音に対するスペクトル解析を、２通りの方法で行った結果を示すものである。図９(a) は、原信号となる楽器音のスペクトルを示し、図９(b) は、これを短時間フーリエ変換によって解析したスペクトルを示し、図９(c) は、これを一般化調和解析によって解析したスペクトルを示す。いずれも横軸はノートナンバー（対数尺度）を示しており、１目盛りが半音単位の周波数差に相当する。原信号は、図９(a) に示すように、ノートナンバーＮ１とＮ２の和音（長三度の協和音程）であり、たとえば、ピアノの場合、ノートナンバーＮ１に対応するキーと、Ｎ２に対応するキーとを同時に叩いた状態に相当する。したがって、原信号はノートナンバーＮ１とＮ２の成分を基本として構成されているため、この原信号によって生じる音響信号をＭＩＤＩ符号化した場合、本来であれば、ノートナンバーＮ１に対応するＭＩＤＩ符号と、ノートナンバーＮ２に対応するＭＩＤＩ符号とが生成されるべきである。
【００４６】
ところが、この音響信号に対して短時間フーリエ変換による解析を施すと、図９(b) に示すように、ノートナンバーＮ１に対応する基本音（Ｎ１基本音という）と、ノートナンバーＮ２に対応する基本音（Ｎ２基本音という）の他に、多くの倍音成分が現れ、更にそれらの周辺音が現れることになる。図では、基本音および倍音の成分を太線で示し、それらの周辺音の成分を細線で示してある。基本音に対する倍音成分がスペクトル上に現れるのは、アコースティック楽器（電子楽器のように人工音を発生する楽器ではなく、古くから用いられている自然な楽器）の物理的な特性により、意図的に鳴らした演奏音の周波数成分だけでなく、その整数倍の周波数成分が含まれてくるためである。図示の例では、基本音Ｎ１，Ｎ２のそれぞれについて、２倍音、３倍音、４倍音、５倍音、６倍音の各倍音成分が現れている。ノートナンバーは、対数尺度の周波数軸上に等間隔で定義された周波数パラメータであるため、ノートナンバーの数字そのものに着目すると、２倍音は基本音のノートナンバーに１２を加えたノートナンバーに対応し、以下、３倍音は＋１９、４倍音は＋２４、５倍音は＋２８、６倍音は＋３１に対応する。
【００４７】
上述したように、本来、フーリエ変換は、信号を切り出した単位区間の前後に同様な信号が無限に存在することを想定した理論に基づいている。ところが、現実的には、有限の区間長をもった単位区間内の区間信号は、そのような理想的な信号にはなっていない。このため、短時間フーリエ変換を行うと、上記倍音成分に加えて、更にそれらの周辺音成分が現れることになる。これらの周辺音は、場合によっては、本来の基本音をぼやかせる要因となる。たとえば、図９(b) に示す例の場合、各基本音は太線で示されているため図の上では識別可能であるが、実際には、Ｎ２基本音はＮ１基本音の周辺音によって隠されてしまっている。すなわち、図９(b) に示すフーリエスペクトルの中から、相関強度の大きい順に３つのノートナンバーを選出すると、基本音Ｎ１は選出されるが、基本音Ｎ２は周辺音に埋没して選出から漏れてしまうことになる。
【００４８】
一方、同じ音響信号に対して一般化調和解析による解析を施すと、図９(c) に示すように、太線で示す倍音成分は依然として残るものの、細線で示す周辺音成分に関してはかなり抑制されることがわかる。したがって、この図９(c) に示すフーリエスペクトルの中から、相関強度の大きい順に３つのノートナンバーを選出すれば、基本音Ｎ１，Ｎ２ともに選出されることになる。しかしながら、この一般化調和解析の手法を用いて、周辺音成分や倍音成分を完全に除去できるわけではない。したがって、周辺音成分による基本音の埋没は依然として生じる可能性があり、符号化を行う際に、基本音が埋没して正しく選出されないおそれがある。また、本来の基本音成分に混入して、このような周辺音成分までもが符号化されてしまうと、再生時に不快なノイズが発生することになる。和声学理論で知られているように、半音の音程をもつ隣接音が同時に鳴ると和声的に不協和音となり、これが数多く集まるとノイズになる。ちなみに、図９(a) に示すＮ１音，Ｎ２音は、長三度の協和音程であり、４倍音と５倍音とが共鳴する協和音である。
【００４９】
このように、従来提案されている時系列信号の解析方法には、基本音成分だけでなく、その倍音成分および周辺音成分もスペクトルに現れてしまうため、もともとの信号強度が低かった本来の基本音成分が埋没して選出されなかったり、不要な成分が誤って選出されてしまったりする問題がある。本願発明は、このような問題を解決するための新たな手法に基づくものである。
【００５０】
まず、周辺音成分を完全に除去する方法の基本原理について説明する。いま、図９(b) ，(c) に示すスペクトルを比較すると、Ｎ１基本音およびＮ２基本音については、ほぼ同程度の相関強度が現れているのに対し、細線で示す周辺音については、相関強度が両者で相違していることがわかる。すなわち、図示の例の場合、図９(b) に示す短時間フーリエ変換によるスペクトルでの周辺音成分に比べて、図９(c) に示す一般化調和解析によるスペクトルでの周辺音成分は全般的に小さくなっている。このように、短時間フーリエ変換による解析結果と、一般化調和解析による解析結果とを比較すると、基本音に関する相関強度はほぼ同一であるのに対し、周辺音に関する相関強度はかなり相違する、という性質があることがわかる。逆に言えば、両方の解析結果が与えられたときに、相関強度に大きな差が生じている周波数（この例の場合、ノートナンバー）があれば、当該周波数成分は、本来の基本音成分ではなく、周辺音成分であると判断してもよいことになる。
【００５１】
本発明の基本概念は、上述の原理に基づいたものであり、解析対象となる区間信号が与えられた場合、この区間信号に対して、短時間フーリエ変換による解析結果と、一般化調和解析による解析結果との双方を行い、両者における相関強度に大きな差が生じている周波数については、代表周波数として選出すべき本来の周波数ではないものと判断し、選出を行わないことにする、という考えに基づくものである。このような考えに従えば、図９に示す例の場合、細線で示す周辺音成分は、いずれも代表周波数として選出されなくなることがわかるであろう。具体的には、両方の相関強度差について、所定のしきい値Δを定め、両者の差がこのしきい値Δ以内となる条件設定を行い、この設定条件を満足する周波数だけを代表周波数として選出するようにすればよい。すなわち、所定のしきい値Δについて、相関強度差｜Ｅ−ＥＥ｜＜Δなる条件が満たされればよい。Δは正の値で、たとえばＥ／２程度とする。たとえば、図９に示すＮ１基本音およびＮ２基本音は、いずれもこの設定条件を満足しており（図９(b) における各基本音の相関強度と、図９(c) における各基本音の相関強度は、ほぼ同一であり、その差は所定のしきい値Δ以内となっている）、代表周波数として選出されることになる。
【００５２】
なお、この手法だけでは、各倍音成分が代表周波数として選出されてしまうことになるが、倍音成分を除去する付加的な手法については、§６において述べることにする。また、本願発明者が種々の音響信号に対して実験を行ったところ、周辺音成分は、短時間フーリエ変換によるスペクトル上での相関強度Ｅに比べ、一般化調和解析によるスペクトル上での相関強度ＥＥの方が小さくなるケースが圧倒的に多いことが判明した。したがって、代表周波数として選出するか否かを判断する設定条件としては、｜Ｅ−ＥＥ｜＜Δなる条件のかわりに、ＥＥ＞Ｅ−Δという条件を用いてもよい。
【００５３】
§５．本発明に係る時系列信号の解析方法の基本手順
続いて、本発明に係る時系列信号の解析方法の基本手順を、図１０の流れ図に基づいて説明する。
【００５４】
まず、ステップＳ１において、解析対象となる時系列信号を、デジタルデータとして取り込む。アナログ音響信号が解析対象である場合、たとえば、４４．１ｋＨｚのサンプリング周波数でサンプリングを行い、デジタルデータとして取り込めばよい。続くステップＳ２において、取り込んだ時系列信号の時間軸上に複数の単位区間を設定する。たとえば、図１に示す例では、所定の区間長をもった単位区間ｄ１〜ｄ５が設定されている。４４．１ｋＨｚのサンプリング周波数でサンプリングを行った場合、１つの単位区間に含まれるサンプル数を、たとえば２０４８個とすれば、単位区間の区間長は約４６ｍｓとなる。
【００５５】
次のステップＳ３では、複数通りの周波数を設定し、各周波数をもった周期関数からなる関数群を定義する。前述の例では、図２に示すように、ＭＩＤＩのノートナンバー０〜１２７に対応した１２８通りの標準周波数ｆ（０）〜ｆ（１２７）を定義し、１２８対の正弦関数および余弦関数を定義することになる。このように、同一の周波数をもった正弦関数および余弦関数からなる一対の関数を、当該周波数についての周期関数とするのは、既に述べたように、相関を求める際に位相の影響を避けるためである。この周期関数と所定の信号との相関値としては、図５に示すように、正弦関数についての相関値Ａ（ｎ）と余弦関数についての相関値Ｂ（ｎ）との実効値Ｅ（ｎ）を用いることになる。
【００５６】
続いて、ステップＳ４において、１つの単位区間内の時系列信号を区間信号Ｘとして抽出するとともに、この区間信号Ｘを第１番目の差分信号Ｓ（１）と定義する。この差分信号Ｓ（１）は、図８(a) に示す信号Ｓ（ｊ）に相当するものであり、一般化調和解析を行う上での最初の解析対象となる信号である（前述したように、ｊ＝１における差分信号Ｓ（１）は、本来、「差分信号」と呼ぶべき信号ではないが、ここでは便宜上、「差分信号」と呼んでいる。）。次のステップＳ５では、この一般化調和解析の繰り返し回数を示すパラメータｊが初期値１に設定され、以下、ステップＳ６〜Ｓ８の処理が、ステップＳ９の条件、すなわち、パラメータｊが所定回数Ｊに到達するまで、ステップＳ１０においてパラメータｊを１ずつ増加させながら繰り返し実行されることになる。この繰り返し処理は、基本的には、前述した一般化調和解析の処理であるが、通常の一般化調和解析では、相関値の大きさ順に無条件で代表周波数を選出していたのに対し、ここでは、差分信号Ｓ（ｊ）に対する相関値ＥＥと区間信号Ｘに対する相関値Ｅとの関係が所定の設定条件を満足しているか否かを判断し、条件を満足している場合に限り、代表周波数としての選出を行うようにする。
【００５７】
すなわち、ステップＳ６において、ステップＳ３で定義した関数群の中から、区間信号Ｘに対する相関値Ｅが最も高く、かつ、第ｊ番目の差分信号Ｓ（ｊ）に対する相関値ＥＥと相関値Ｅとの関係が所定の設定条件を満足している周期関数を第ｊ番目の要素関数として選出する処理が行われる。ここで、要素関数とは、区間信号Ｘの構成要素となっているものと判断できる周期関数であり、代表周波数として選出するのに相応しい周波数をもった周期関数のことである。上述したように、従来の一般化調和解析では、相関値が最も高い周期関数を無条件で要素関数として選出していたが、ここでは、相関値Ｅが最も高い周期関数をとりあえず仮要素関数とし、この仮要素関数について、第ｊ番目の差分信号Ｓ（ｊ）に対する相関値ＥＥが求められ、相関値Ｅと相関値ＥＥとの関係が所定の設定条件を満足していた場合に限り、当該仮要素関数が、正式な要素関数として選出されることになる。もし、仮要素関数が、所定の設定条件を満足していなかった場合には、区間信号Ｘに対する相関値Ｅの値がその次の大きさをもつ周期関数を次の仮要素関数として選出し、同様に、第ｊ番目の差分信号Ｓ（ｊ）に対する相関値ＥＥを求め、相関値Ｅと相関値ＥＥとの関係が所定の設定条件を満足しているか否かが判断されることになる。
【００５８】
なお、関数群の中で、区間信号Ｘに対する相関値Ｅが最も高い周期関数が、必ずしも所定の設定条件を満足しているとは限らないので、このステップＳ６における「区間信号Ｘに対する相関値Ｅが最も高く」という文言の意味は、「所定の設定条件を満足している周期関数の中では最も高い」という意味である。また、「所定の設定条件」とは、§４で述べたように、周辺音を除外するための設定条件であり、具体的には、相関値ＥＥ（図９(c) に示す一般化調和解析スペクトルの相関強度に相当）と相関値Ｅ（図９(b) に示す短時間フーリエ変換スペクトルの相関強度に相当）とが所定範囲内で近似しているか、あるいは、前者が後者よりも小さくないという条件を用いればよい。ステップＳ６において、このような設定条件を満たし、区間信号Ｘに対する相関値Ｅが最も高い周期関数を要素関数として選出することにより、図９に細線で示す周辺音成分の周波数に該当する周期関数が要素関数として選出されることを防ぐことができる。もっとも、ｊ＝１の段階では、差分信号Ｓ（ｊ）＝区間信号Ｘであるから、相関値Ｅ＝相関値ＥＥとなり、「所定の設定条件」は必ず満足されることになる。したがって、このステップＳ６の条件判断が意味をもつのは、ｊ＝２以降の段階においてである。なお、相関値Ｅと相関値ＥＥとをできるだけ同じ条件で比較することができるように、相関値演算を行う際には、§３で述べたハニング窓は設定しないようにする。
【００５９】
こうして、第ｊ番目の要素関数が選出されたら、ステップＳ７において、この第ｊ番目の要素関数を関数群から除外する処理が行われる。これは、一度要素関数として選出された周期関数が、後に再び要素関数として重複選出されることを防ぐためである。
【００６０】
続くステップＳ８では、選出された第ｊ番目の要素関数に基づいて、第ｊ番目の含有信号Ｇ（ｊ）が求められる。要素関数は、図２に示す１２８通りの周期関数のうちから選出された関数（同一周波数をもつ正弦関数および余弦関数の対）であり、振幅となるべき係数をもっていない関数である。含有信号Ｇ（ｊ）は、この要素関数に振幅を示す係数を付加することにより得られる信号であり、具体的には、要素関数に相関値ＥＥを乗じることにより得られる信号である。相関値ＥＥは、当該要素関数と第ｊ番目の差分信号Ｓ（ｊ）との相関を示す値であり、この相関値ＥＥが大きければ、それだけ当該要素関数の周波数成分が大きく含まれていることになる。前述したように、相関値としては規格化された値が用いられているため、要素関数と相関値ＥＥとの積で与えられる含有信号は、差分信号Ｓ（ｊ）内に含まれている当該要素関数の周波数成分をもった信号ということになる。実際には、要素関数は、同一周波数をもつ正弦関数および余弦関数の対であるため、含有信号Ｇ（ｊ）は、図５に示す式で得られる相関値Ａ（ｎ）を係数にもつ正弦信号と、相関値Ｂ（ｎ）を係数にもつ余弦信号との和からなる信号ということになる。
【００６１】
次に、第ｊ番目の差分信号Ｓ（ｊ）から、第ｊ番目の含有信号Ｇ（ｊ）を減じることにより、新たな差分信号Ｓ（ｊ＋１）を求める。この差分信号Ｓ（ｊ＋１）は、もとの差分信号Ｓ（ｊ）から含有信号Ｇ（ｊ）の成分を取り去った残りの信号ということになり、結局、ステップＳ８の処理は、差分信号Ｓ（ｊ）から含有信号Ｇ（ｊ）を抽出する処理ということになる。
【００６２】
こうして、ステップＳ６〜Ｓ８の処理を、ｊ＝１〜Ｊ（Ｊは任意の整数）までＪ回繰り返して行えば、合計Ｊ個の含有信号Ｇ（１）〜Ｇ（Ｊ）が抽出されることになる。このＪ個の含有信号は、もとの区間信号Ｘに含まれていた信号成分であり、しかも周辺音成分ではない信号成分である。かくして、解析対象となる区間信号Ｘについて、その構成要素となる周期信号として、Ｊ個の含有信号Ｇ（１）〜Ｇ（Ｊ）が抽出されたことになる。
【００６３】
以上は、１つの単位区間についての処理であるが、ステップＳ１１を経てステップＳ３へと戻ることにより、次の単位区間についても全く同様の処理が実行されることになる。こうして、ステップＳ１１において、全単位区間についての処理が完了したと判断されれば、この手順はすべて完了である。結局、全単位区間について、それぞれＪ個の含有信号Ｇ（１）〜Ｇ（Ｊ）が抽出されることになる。各含有信号は、所定の周波数（代表周波数）に関する情報と、所定の振幅（強度）に関する情報を有しており、また、各単位区間は時間軸上での位置を示す情報を有しているため、これらの情報に基づいて符号データを作成すれば、ステップＳ１において時系列信号として入力した音響信号を符号化することが可能になる。たとえば、符号データとしてＭＩＤＩデータを作成するのであれば、各単位区間について求められた含有信号についての振幅を示す情報としてベロシティーを用い、周波数を示す情報としてノートナンバーを用い、各単位区間の時間軸上での区間開始位置を示す情報としてノートオン時刻を用い、区間終了位置を示す情報としてノートオフ時刻を用いるようにすればよい。
【００６４】
なお、ステップＳ９において、Ｊ回の繰り返し処理を行うと、各単位区間ごとに合計Ｊ個の含有信号Ｇ（１）〜Ｇ（Ｊ）が抽出されることになるが、符号化を行う際には、必ずしもこのＪ個のすべての含有信号についての情報を用いる必要はない。たとえば、個々の単位区間ごとに、得られたＪ個の含有信号のうち振幅の大きい順にＭ個（Ｍ＜Ｊ）の含有信号を選出し、このＭ個の含有信号に基づいて符号データの作成を行うようにすれば、振幅の大きな主要な周波数成分についてのみ選択的に符号化することが可能になる。
【００６５】
以上、図１０の流れ図に基づいて、本発明に係る時系列信号の解析方法および音響信号の符号化方法の基本概念の流れを説明した。そこで、ここでは、この基本概念に基づく処理を、コンピュータを用いて実際に実行する際の配慮を述べることにする。
【００６６】
まず、ステップＳ６の処理は、要するに、関数群の中から１つの要素関数を選出する処理である。図２に示すような関数群を用意した場合であれば、この１２８通りの周期関数のうちから１つの要素関数を選出することになる。選出の条件としては、「区間信号Ｘに対する相関値Ｅが最も高く」かつ「差分信号Ｓ（ｊ）に対する相関値ＥＥと、区間信号Ｘに対する相関値Ｅとの関係が、所定の設定条件を満足する」という条件になる。このような条件に基づく要素関数の選出を行うためには、実際には、次のような処理を行えばよい。
【００６７】
まず、区間信号Ｘと、１２８通りの周期関数との相関値Ｅ（ｎ）をすべて計算する（ｎ＝０〜１２７）。ここで、相関値Ｅ（ｎ）は、図５に示す式で求まる実効値である。区間信号Ｘ自体は、繰り返し回数を示すパラメータｊが１ずつ増加したとしても不変であるため、この１２８通りの相関値Ｅ（ｎ）を求める演算は、パラメータｊ＝１のときに１回だけ行い、これを記録しておくようにすれば足りる。
【００６８】
次に、こうして求めた相関値Ｅ（ｎ）の値が最も高い周期関数を、仮要素関数として選出する。そして、この仮要素関数について、差分信号Ｓ（ｊ）に対する相関値ＥＥ（ｎ）を計算する。差分信号Ｓ（ｊ）は、パラメータｊが増加するたびに変わるので、選出した仮要素関数について相関値ＥＥ（ｎ）を求める演算は、毎回行う必要がある。そして、ＥＥ（ｎ）とＥ（ｎ）との関係が、所定の設定条件を満足しているか否かを判断する。その結果、設定条件を満足していた場合には、当該仮要素関数を正式に第ｊ番目の要素関数として選出するが、設定条件を満足していなかった場合には、新たな仮要素関数を選出し、同様の処理を行うようにする。こうして、設定条件が満足されるまで、同様の処理を繰り返し行えば、やがて正式な要素関数が選出されることになる。
【００６９】
なお、要素関数として正式に選出された周期関数については、ステップＳ７において、関数群から除外される処理が行われ、重複選出が避けられることになるが、実際には、一度仮要素関数として選出されたにもかかわらず、所定の設定条件を満足していなかったために、正式に要素関数として選出されることがなかった周期関数についても、関数群から除外する処理を行ってしまうのが好ましい。既に述べたように、所定の設定条件を満足していない周期関数は、周辺音成分となる周波数をもった周期関数であるため、要素関数として選出するには不適当な周期関数である。したがって、そのような周期関数は、仮要素関数として選出された段階で、関数群から除去してしまった方がよい。したがって、実際には、関数群からの除外処理は、ステップＳ７において行わずに、ステップＳ６において仮要素関数を選出した段階で行うようにするとよい。すなわち、ステップＳ６において、一旦、仮要素関数として選出された周期関数については、正式な要素関数として選出されるか否かにかかわらず、すべてこの時点で関数群から除外してしまうようにすればよい。そうすれば、関数群から新たな仮要素関数を選出する際には、常に、その時点で関数群に残っている周期関数の中から、相関値Ｅ（ｎ）の値が最も高い周期関数を仮要素関数として選出すればよいので、選別作業が容易になる。
【００７０】
ところで、実際にコンピュータを利用して「特定の周期関数を関数群から除外する」という処理を行うには、フラグのＯＮ／ＯＦＦを用いるようにすると便利である。すなわち、ステップＳ３において、１２８通りの周期関数からなる関数群を定義した時点で、この１２８通りの周期関数のそれぞれにＯＮ状態のフラグを設定するようし、特定の周期関数をこの関数群から除外する際には、当該周期関数についてのフラグをＯＦＦ状態にすればよい。個々の時点で関数群に残っている周期関数は、その時点でフラグがＯＮ状態となっている周期関数ということになる。
【００７１】
§６．倍音成分を除去する手順
上述した§５の基本手順を実行すれば、図９に細線で示す周辺音成分の周波数をもつ要素関数が選出されることを防ぐことはできるが、図９に太線で示す倍音成分の周波数をもつ要素関数の選出を防ぐことはできない。音響信号をＭＩＤＩデータを用いて符号化した際、このような倍音成分までもがそのまま符号化されてしまうと、本来の楽器（たとえば、ピアノ）では、Ｎ１音およびＮ２音の２つの鍵盤しか叩いていないのに、太線で示す倍音成分に相当する多数の鍵盤についてのＭＩＤＩデータが作成されてしまうことになる。
【００７２】
解析時あるいは符号化時において、このような倍音成分を除去する方法が、特開平１１−９５７５３号公報に開示されている。その基本原理は、基本音の周波数が代表周波数として選出できた段階で、当該基本音周波数の整数倍の周波数成分を単純に除外してしまうというものである。この方法によれば、たとえば、図９(b) において、Ｎ１基本音が代表周波数として選出された段階でこのＮ１の各倍音成分が除去され、更に、Ｎ２基本音が代表周波数として選出された段階でこのＮ２の各倍音成分が除去されることになるため、倍音成分の周波数が代表周波数として選出されることはなくなる。したがって、確かに図９に示す例では、倍音を除去する有効な方法となる。しかしながら、実際には、この方法では問題が生じることが多い。それは、同一楽器でオクターブ和音（互いに倍音関係にある２つの音）が演奏されたときなどでは、第１の基本音の倍音周波数に、第２の基本音の周波数が重なってしまうためである。図９(a) に示す例では、Ｎ２音はＮ１音の倍音にはなっていないため、このような問題は生じていないが、仮に、Ｎ２音がＮ１音の倍音位置にあったとすると、Ｎ１基本音が代表周波数として選出された段階で行われる倍音成分除去処理により、Ｎ２基本音も除去されてしまうことになる。
【００７３】
結局、与えられた命題は、基本音に対する倍音成分が現れたときに、この倍音成分が和音として基本音とともに実際に演奏された音に基づく成分なのか、あるいは、基本音に付随して生じる単なる倍音成分なのか、を識別することにある。解析をする際には、前者の場合は、当該倍音成分は除外してはならないが、後者の場合は、これを除外するべきである。
【００７４】
本願発明者は、ノートナンバー単位（ＭＩＤＩの半音単位）の粗い周波数解析では、上述した識別は困難であるが、より細かな周波数解析を行えば、この識別が可能であることに気が付いた。これを図１１の例で説明しよう。図１１(a) は、単一楽器で単一音を演奏したときに得られる周波数スペクトルを示している。横軸は、ノートナンバー軸であり、対数尺度の周波数に相当する。ただし、互いに倍音関係にあるノートナンバーの周波数付近をグラフ上で詳細に示すための便宜上、横軸は各所で分断され不連続となっている。単一楽器で単一音を鳴らした場合（たとえば、ピアノの鍵盤の１つを叩いた場合）、図１１(a) に示すように、基本音（叩いた鍵盤に対応する本来の音）となるノートナンバーＮの位置に信号強度が得られるとともに、２倍音となるノートナンバーＮ＋１２、３倍音となるノートナンバーＮ＋１９、４倍音となるノートナンバーＮ＋２４、５倍音となるノートナンバーＮ＋２８、６倍音となるノートナンバーＮ＋３１の各位置に、それぞれ倍音成分となる信号強度が得られることになる。これらの各倍音成分は、基本音周波数に対して正確に整数倍の周波数をもつことになる。
【００７５】
一方、図１１(b) は、単一楽器でオクターブ和音を演奏したときに得られる周波数スペクトルを示している。たとえば、ピアノの「ド」の音と、１オクターブ高い「ド」の音とを同時に叩いた場合のスペクトルに相当する。この場合、第１の「ド」がノートナンバーＮであったとすれば、第２の「ド」はノートナンバーＮ＋１２に相当する音になる。ところが、実際の楽器では、１オクターブが正確に２倍の周波数となるような調律はなされておらず、厳密な意味では、多少の誤差が生じることになる。これは、「一般の楽器では、正しい調律が行われていない」という意味ではなく、むしろ「正しい調律では、１オクターブが正確に２倍の周波数となるような設定は行わない」という意味である。このため、周波数軸を細かくとると、図１１(b) に示すように、第１の「ド」が実線で示すノートナンバーＮであったとすると、第２の「ド」は破線で示すノートナンバーＮ＋１２となる。すなわち、実線で示すノートナンバーＮ＋１２は、第１の「ド」の２倍音成分であるのに対し、破線で示すノートナンバーＮ＋１２は、全く独立した第２の「ド」の成分になる。もちろん、この第２の「ド」についても倍音成分が生じることになるが、これらの倍音成分はいずれも、この第２の「ド」の周波数に対して正確に整数倍の周波数をもった成分となる。このため、細かな周波数軸上でみれば、図１１(b) に示すように、実線で示す第１の「ド」およびその倍音成分と、破線で示す第２の「ド」およびその倍音成分とは、互いに所定周波数分だけずれた関係になり、決して重なることはない。
【００７６】
このような事情は、異なる楽器についても全く同様である。図１１(c) は、二種楽器で同一音を合奏したときに得られる周波数スペクトルを示している。たとえば、ピアノで「ド」を演奏し、木琴で同じ音程の「ド」を演奏したような場合に相当する。この場合、たとえば、ピアノの「ド」が実線で示すノートナンバーＮの周波数をもっていたとすると、木琴の「ド」は破線で示すノートナンバーＮの周波数をもっていることになり、両者の周波数は、同一のノートナンバーＮの音であるにもかかわらず若干異なることになる。しかも、ピアノの音の倍音成分は、ピアノの基本音の周波数に対して正確に整数倍の周波数を有し、木琴の音の倍音成分は、木琴の基本音の周波数に対して正確に整数倍の周波数を有する、という関係が維持されるので、図示のとおり、実線で示すピアノ系の倍音成分と、破線で示す木琴系の倍音成分とは、互いに所定周波数分だけずれた関係になり、決して重なることはない。
【００７７】
このような現象を考慮すれば、基本音に付随して生じる倍音成分のみを除去し、和音によって生じる倍音成分は除去せずに残す、という倍音除去処理が可能になる。具体的には、§５までに述べた実施形態では、図２に示すように、１２８通りの周波数ｆ（０）〜ｆ（１２７）を定義し、ＭＩＤＩのノートナンバーに対応する半音間隔の周波数精度で解析を行っていたが、この周波数精度をより高めるようにすればよい。たとえば、１／１０半音間隔で周波数を定義すれば、図２の１０倍の周波数精度が得られるようになり、１２８０通りの周波数を定義することができる。この場合、周期関数も１２８０通り用意することになるので、演算負担はかなり増大することになるが、周波数軸の解像度が向上するため、図１１(b) ，(c) に実線で示す成分と破線で示す成分とを互いに区別することが可能になる。したがって、たとえば、図１１(b) に示す例において、実線で示すノートナンバーＮに対応する周波数を代表周波数として選出した際に、その倍音成分を除去する処理を行ったとしても、除去の対象となる倍音成分は、代表周波数に対して正確に整数倍となる周波数をもった実線で示す成分だけであり、破線で示す成分が除去されることはなくなる。このため、続いて、破線で示すノートナンバーＮ＋１２に対応する周波数が代表周波数として選出されることになる。
【００７８】
ただし、最終的にＭＩＤＩデータとして符号データを得るような符号化を行う際には（実用上は、このような符号化を行うケースが最も多いと思われるが）、単に周波数精度を上げるだけの対応を採ることは適当でない。なぜなら、一般的なＭＩＤＩデータは、あくまでも半音単位の周波数精度を前提とした符号であり、周波数に関しては、０〜１２７までの１２８通りのノートナンバーを用いて表現することが前提となっているためである。したがって、ＭＩＤＩ符号化を行う際には、最終的には、ノートナンバーに対応する半音単位の周波数を用いた符号化が必要になる。
【００７９】
そこで、本実施形態では、階層構造をもった周波数定義を行うようにしている。すなわち、関数群を定義する際には、まず、上位階層となる複数α通りの標準周波数を定義し、各標準周波数について、それぞれβ通りのバリエーションをもった近接周波数（標準周波数の近傍に位置する周波数という意味で用いており、標準周波数と同一のものを含んでいてもよい）を定義する。このとき、互いに隣接する標準周波数についての近接周波数帯が重なり合わない範囲内で設定するようにする。具体的には、ノートナンバーに対応する１２８通りの周波数を上位階層となる標準周波数として定義する（α＝１２８）。そして、個々の標準周波数について、たとえば、１３通りのバリエーションをもった近接周波数を定義する（β＝１３）。
【００８０】
図１２は、このような近接周波数定義の一例を示す図であり、第ｉ番目のノートナンバーＮ（ｉ）に対応する標準周波数について、１３通りの近接周波数が定義された状態が示されている。標準周波数は、ノートナンバーに対応する周波数であるから半音単位の周波数となっており、図においてノートナンバーＮ（ｉ−１）の周波数とノートナンバーＮ（ｉ）の周波数との間隔は半音であり、ノートナンバーＮ（ｉ）の周波数とノートナンバーＮ（ｉ＋１）の周波数との間隔も半音である。これに対し、１３通りの近接周波数としては、１／１３半音単位の周波数を用いるようにしており、図に丸数字で示した１３通りの近接周波数の間隔はすべて１／１３半音となっている。図に＋または−を付して示した各分数（分母はいずれも１３）は、ノートナンバーＮ（ｉ）に対応する標準周波数に対する周波数差を示している。ここで、中央の近接周波数▲７▼は、標準周波数と同一である。
【００８１】
このように、１つの標準周波数について、複数β通りのバリエーションをもった近接周波数を定義するわけであるが、互いに隣接する標準周波数についての近接周波数帯が重なり合わないようにする必要がある。図には、この第ｉ番目の標準周波数についての近接周波数帯が示されているが、この近接周波数帯は、左側に位置する第（ｉ−１）番目の標準周波数についての近接周波数帯とも、右側に位置する第（ｉ＋１）番目の標準周波数についての近接周波数帯とも、重なり合わないようにする。図示の例では、１／１３半音単位の周波数をもった１３通りの近接周波数を定義しているので、各標準周波数の間を１３分割することにより、各近接周波数帯がうまく隣接するように配置されている。
【００８２】
このように、α通りの標準周波数について、それぞれβ通りの近接周波数を定義すると、合計でα×β通りの近接周波数が定義されることになる。このすべての近接周波数について、当該近接周波数をもった近接周期関数を定義する。結局、合計α×β通りの近接周期関数が定義されることになる。上述の例の場合、合計１２８×１３通りの近接周期関数が定義されることになる。図１３は、このようにして定義された近接周期関数の一覧を示す図である。たとえば、第ａ番目のノートナンバー（標準周波数）についての第ｂ番目のバリエーションに該当する近接周期関数は、ｆ（ａ，ｂ）ということになる。もっとも、この近接周期関数ｆ（ａ，ｂ）は、実際には一対の正弦関数と余弦関数から構成されることになる。
【００８３】
さて、このように１２８×１３通りの近接周期関数を定義して、倍音成分の除去処理を付加した解析および符号化の手順を、再び図１０の流れ図を参照して説明しよう。この流れ図において、ステップＳ１の入力処理およびステップＳ２の単位区間設定処理は、§５で述べた場合と全く同様である。ただし、ステップＳ３における関数群定義処理では、上述したように、１２８×１３通りの近接周期関数からなる関数群が定義されることになる。続くステップＳ４において、区間信号Ｘを抽出し、これを第１番目の差分信号Ｓ（１）と定義する点も、§５で述べたとおりである。そして、ステップＳ５において、パラメータｊ＝１に設定し、ステップＳ６の処理を行うことになる。
【００８４】
このステップＳ６では、関数群を構成する１２８×１３通りの近接周期関数の中から、要素関数が選出されることになる。すなわち、１／１３半音単位の周波数解像度で、区間信号Ｘに対する相関値Ｅが最も高く、かつ、差分信号Ｓ（ｊ）に対する相関値ＥＥと相関値Ｅとの関係が所定の設定条件を満足している近接周期関数が、要素関数として選出されることになる。したがって、この要素関数は、１／１３半音単位の周波数解像度をもった正確な周波数によって定義される関数となる。なお、実際の演算を行う上では、§５で述べたように、１２８×１３通りの全近接周期関数について、それぞれ区間信号Ｘとの相関値を予め計算し、その結果を記録しておくようにすれば、同じ演算をパラメータｊが変わるたびに毎回行う必要はない。
【００８５】
続くステップＳ７では、選出された要素関数を関数群から除去する処理が行われるが、このとき、ある１つの近接周期関数を関数群から除外する際には、当該近接周期関数のバリエーションとなる近接周期関数も含めて合計β通りの近接周期関数すべてを除外するようする。これは、後述するように、最終的な符号化の段階では、ノートナンバーに対応する粗い周波数解像度での符号化が行われるため、１つの標準周波数について、いずれか１つのバリエーションが要素関数として選出された場合には、もはや同一の標準周波数についてのバリエーションを要素関数として選出する必要がなくなるためである。
【００８６】
次に、ステップＳ８において、含有信号Ｇ（ｊ）が求められる。この含有信号Ｇ（ｊ）は、既に述べたように、選出された要素関数（近接周期関数）に、当該要素関数の差分信号Ｓ（ｊ）に対する相関値ＥＥを乗じることにより得られる信号である。したがって、この含有信号Ｇ（ｊ）も、１／１３半音単位の周波数解像度をもった正確な周波数によって定義される信号となる。§５で述べた手順では、差分信号Ｓ（ｊ）から含有信号Ｇ（ｊ）を減じることにより、新たな差分信号Ｓ（ｊ＋１）を求めていたが、ここでは倍音成分の除去を行うために、選出された要素関数がもつ周波数の整数倍の周波数をもち、かつ、関数群の中に含まれている１つまたは複数の近接周期関数を、倍音成分関数として選出し、「各倍音成分関数」と「当該倍音成分関数の差分信号Ｓ（ｊ）に対する相関値ＥＥ」との積で与えられる各倍音含有信号を求め、差分信号Ｓ（ｊ）から含有信号Ｇ（ｊ）と各倍音含有信号とを減じることにより得られる信号を新たな差分信号Ｓ（ｊ＋１）とする処理を行うようにする。
【００８７】
たとえば、図１１(b) に示す例において、ノートナンバーＮに対応する標準周波数についての１３通りのバリエーションのうちの１つに相当する特定の近接周期関数が、要素関数として選出されたものとしよう。この場合、当該近接周期関数のもつ周波数に対して正確に整数倍の周波数をもつ倍音成分関数が選出されることになる。ここで選出される倍音成分関数のバリエーション番号は、要素関数として選出された近接周期関数のバリエーション番号と同じになるはずである（倍音成分関数が、正確に整数倍の周波数をもつため）。たとえば、図１３に示す表における近接周期関数ｆ（ａ，ｂ）が要素関数として選出された場合、２倍音の倍音成分関数はｆ（ａ＋１２，ｂ）であり、３倍音の倍音成分関数はｆ（ａ＋１９，ｂ）であり、４倍音の倍音成分関数はｆ（ａ＋２４，ｂ）であり、５倍音の倍音成分関数はｆ（ａ＋２８，ｂ）であり、６倍音の倍音成分関数はｆ（ａ＋３１，ｂ）である。したがって、この場合、これら各倍音成分関数のそれぞれについて、差分信号Ｓ（ｊ）に対する相関値ＥＥが求められる。たとえば、各関数ｆ（ａ，ｂ），ｆ（ａ＋１２，ｂ），ｆ（ａ＋１９，ｂ），ｆ（ａ＋２４，ｂ），ｆ（ａ＋２８，ｂ），ｆ（ａ＋３１，ｂ）について求められた相関値が、それぞれＥＥ１，ＥＥ２，ＥＥ３，ＥＥ４，ＥＥ５，ＥＥ６であったとすると、含有信号Ｇ（ｊ）＝ＥＥ１・ｆ（ａ，ｂ）となり、倍音含有信号は、それぞれＥＥ２・ｆ（ａ＋１２，ｂ），ＥＥ３・ｆ（ａ＋１９，ｂ），ＥＥ４・ｆ（ａ＋２４，ｂ），ＥＥ５・ｆ（ａ＋２８，ｂ），ＥＥ６・ｆ（ａ＋３１，ｂ）ということになる（相関値ＥＥは実効値であり、実際には、正弦関数と余弦関数とでそれぞれ別個の相関値が用いられる）。差分信号Ｓ（ｊ）からは、含有信号Ｇ（ｊ）だけではなく、これらの倍音含有信号がすべて減じられることになり、その結果、新たな差分信号Ｓ（ｊ＋１）が求まる。
【００８８】
結局、新たな差分信号Ｓ（ｊ＋１）は、もとの差分信号Ｓ（ｊ）から含有信号Ｇ（ｊ）の成分と、その倍音成分とを差し引いた信号ということになり、図１１(b) の例では、実線で示した成分をすべて差し引いた信号ということになる。ただし、破線で示した成分については差し引かれていないので、パラメータｊが更新され、次の回の要素関数の選出段階においては、この破線で示した成分を要素関数として選出することができる。このように、上述した実施形態によれば、符号化する必要のない、基本音に付随して生じる倍音成分については除去され、符号化する必要がある、和音として演奏された倍音成分については除去されずに残すことが可能になる。
【００８９】
なお、この手順によって最終的に得られる含有信号は、いずれも１／１３半音単位の周波数解像度をもった正確な周波数をもった信号となるので、そのままではＭＩＤＩ符号化するのに不適当である。そこで、符号化にあたっては、各単位区間ごとに最終的に求められた含有信号の周波数をそれぞれ近接した標準周波数に置き換え、各単位区間内の時系列信号の構成要素として最終的に抽出される周期信号が、いずれかの標準周波数をもった信号となるようにした上で、ＭＩＤＩデータに変換するようにする。たとえば、上述の例において、Ｇ（ｊ）＝ＥＥ１・ｆ（ａ，ｂ）なる含有信号が得られた場合、これをＧ（ｊ）＝ＥＥ１・ｆ（ａ）なる含有信号に変更し、ノートナンバーＮ＝ａに相当するＭＩＤＩデータを生成するようにすればよい。
【００９０】
なお、最終的にＭＩＤＩ符号を作成した後、実用上は、必要に応じて、時間軸上で隣接する複数のＭＩＤＩ符号を統合する処理を行うようにするのが好ましい。たとえば、ノートオフ時刻とノートオン時刻とが近接する２つのＭＩＤＩ符号が存在し、これらのノートナンバーが同一または近似し、ベロシティーが同一または近似しているような場合、これらの２つのＭＩＤＩ符号を統合して１つにまとめる処理を行うようにするとよい。具体的には、先行するＭＩＤＩ符号のノートオフ時刻を、後続するＭＩＤＩ符号のノートオフ時刻に変更し、後続するＭＩＤＩ符号を削除すればよい。このとき、後続するＭＩＤＩ符号のベロシティーが先行するＭＩＤＩ符号のベロシティーよりも大きい場合には、先行するＭＩＤＩ符号のベロシティーを後続するＭＩＤＩ符号のベロシティーで置換するようにするのが好ましい。また、統合されたＭＩＤＩ音符の中でも、音符の長さ（ノートオン時刻からノートオフ時刻に至るまでの時間）が所定の値よりも短いものや、ベロシティーが所定の値よりも小さいものは削除するような処理を行うのが好ましい。
【００９１】
以上述べた実施形態によれば、周辺音成分および不要な倍音成分を除去した符号化が可能になる。従来の方法に比べて、演算負荷は増大することにはなるが、代表周波数の選出精度が向上し、不要な倍音成分が抽出されなくなるので、符号化品質および符号化効率が向上する。特に、演奏録音から自動的に楽譜をおこす自動採譜への応用には非常に効果的である。また、ボーカルの符号化においては、再生時にノイズや歪みの要因となる不要な音成分の混入が抑制され、逆に、従来の方法では帯域制約によって落とされていた重要な音成分が忠実に符号化されることになるため、より自然でリアルな再生品質が得られるようになる。
【００９２】
以上、本発明を図示するいくつかの実施形態について説明したが、本発明はこれらの実施形態に限定されるものではない。また、本発明は、コンピュータ処理によって実現できる発明であり、本発明を実施するための種々の処理はプログラムとして記述することができ、コンピュータ読取り可能な記録媒体に記録して配付することが可能である。
【００９３】
【発明の効果】
以上のとおり本発明によれば、時系列信号に対するより正確な周波数解析を行うことができ、原音響信号の符号化を高い品質をもって行うことが可能になる。
【図面の簡単な説明】
【図１】本発明に係る時系列信号の解析方法および音響信号の符号化方法の基本原理を示す図である。
【図２】本発明に係る方法で利用される周期関数の一例を示す図である。
【図３】図２に示す各周期関数の周波数とＭＩＤＩノートナンバーｎとの関係式を示す図である。
【図４】解析対象となる信号と周期信号との相関計算の手法を示す図である。
【図５】図４に示す相関計算を行うための計算式を示す図である。
【図６】図５に示す計算式を一般の周期関数にまで拡張した式を示す図である。
【図７】一般的なフーリエ解析によって得られるスペクトル強度グラフを示す図である。
【図８】一般化調和解析の基本的な手法を示す図である。
【図９】短時間フーリエ変換に基づく解析結果と一般化調和解析に基づく解析結果とを比較するための図である。
【図１０】本発明に係る時系列信号の解析方法の基本手順を示す流れ図である。
【図１１】種々の倍音成分のスペクトルを示すグラフである。
【図１２】本発明に係る時系列信号の解析方法において定義される近接周波数の概念を示す図である。
【図１３】本発明に係る時系列信号の解析方法において定義された多数の近接周期関数の一例を示す図である。
【符号の説明】
Ａ（ｎ），Ｂ（ｎ）…相関値
ｄ，ｄ１〜ｄ５…単位区間
Ｅ（ｎ）…相関値（実効値）
ｅ（ｄ１，１），ｅ（ｄ１，２），ｅ（ｄ１，３），ｅ（ｄ２，１），ｅ（ｄ２，２），ｅ（ｄ２，３）…振幅強度
Ｆ…サンプリング周波数
ｆ（０）〜ｆ（１２７），ｆ（ｎ）…標準周波数
ｆ（ａ，ｂ）…近接周期関数
Ｇ（ｊ）…含有信号
ｉ…ノートナンバー又は単位区間を示すパラメータ
ｊ…繰り返し回数を示すパラメータ
ｋ…サンプル番号を示すパラメータ
Ｌ…区間長
Ｎ１，Ｎ２，Ｎ（ｉ−１），Ｎ（ｉ），Ｎ（ｉ＋１）…ノートナンバー
ｎ，ｎ（ｄ１，１），ｎ（ｄ１，２），ｎ（ｄ１，３），ｎ（ｄ２，１），ｎ（ｄ２，２），ｎ（ｄ２，３）…ノートナンバー／代表符号コード
Ｒｎ…周期関数
Ｓ（ｊ），Ｓ（ｊ＋１）…差分信号
Ｔ１〜Ｔ３…トラック
ｔ１〜ｔ６…時刻
ｗ…サンプル番号
Ｘ，Ｘ（ｋ）…区間信号
【図１】
0004331373.tif 000002
【図２】
0004331373.tif 000003
【図３】
0004331373.tif 000004
【図４】
0004331373.tif 000005
【図５】
0004331373.tif 000006
【図６】
0004331373.tif 000007
【図７】
0004331373.tif 000008
【図８】
0004331373.tif 000009
【図９】
0004331373.tif 000010
【図１０】
0004331373.tif 000011
【図１１】
0004331373.tif 000012
【図１２】
0004331373.tif 000013
【図１３】
0004331373.tif 000014