(57)【特許請求の範囲】
【請求項１】
時系列の強度信号として与えられる音響信号を符号化するための符号化方法であって、
符号化対象となる音響信号の時間軸上に複数の単位区間を設定し、個々の単位区間ごとにそれぞれ区間信号を抽出する区間信号抽出段階と、
前記区間信号の構成要素となるべき複数通りの要素信号を準備する要素信号準備段階と、
前記複数通りの要素信号の中から、前記区間信号に対する相関値が最も高い要素信号を調和信号として選出する調和信号選出段階と、
前記調和信号とこの調和信号について得られた相関値との積で与えられる含有信号を、前記区間信号から減じることにより差分信号を求める差分信号演算段階と、
前記差分信号を新たな区間信号として、前記調和信号選出段階および前記差分信号演算段階を実行して新たな含有信号および新たな差分信号を得る処理を、繰り返し行うことにより複数通りの含有信号を求め、求めた含有信号に基づいて、前記区間信号を表現するための複数の符号コードを生成する符号化段階と、
を有し、個々の単位区間ごとに生成された符号コードの集合によって、前記音響信号を表現することを特徴とする音響信号の符号化方法。
【請求項２】
請求項１に記載の符号化方法において、
要素信号準備段階において、互いに周波数の異なる複数通りの要素信号を準備するようにし、
調和信号選出段階において、区間信号に対してフーリエ変換を行い、得られたフーリエスペクトルのピーク周波数に対応する要素信号を調和信号として選出することを特徴とする音響信号の符号化方法。
【請求項３】
請求項１に記載の符号化方法において、
調和信号選出段階においては、区間信号のピーク位置に関する情報のみを用いて相関値を演算する簡易相関演算を行い、この簡易相関演算の結果得られた相関値に基づいて調和信号を選出するようにし、
差分信号演算段階においては、選出された調和信号の全情報を用いて相関値を再演算し、この再演算の結果得られた相関値を用いて含有信号を求める演算を行うようにしたことを特徴とする音響信号の符号化方法。
【請求項４】
請求項１に記載の符号化方法において、
各単位区間の区間信号について第１回目の調和信号を選出する際に、複数Ｘ通りの要素信号の中から、前記区間信号に対する相関値の高い順に第１位〜第Ｙ位までの複数Ｙ個（Ｙ＜Ｘ）の候補を選出しておき、第１位の候補を第１回目の調和信号として選出し、第２回目以降の調和信号を選出する際には、前記複数Ｙ個の候補の中から区間信号に対する相関値が最も高い要素信号を調和信号として選出することを特徴とする音響信号の符号化方法。
【請求項５】
請求項１に記載の符号化方法において、
区間信号抽出段階で、隣接する単位区間が時間軸上で部分的に重複するような設定を行うことを特徴とする音響信号の符号化方法。
【請求項６】
請求項５に記載の符号化方法において、
第１の単位区間の区間信号についての調和信号を選出する際に、複数Ｘ通りの要素信号の中から、前記区間信号に対する相関値の高い順に第１位〜第Ｚ位までの複数Ｚ個（Ｚ＜Ｘ）の候補を選出しておき、この複数Ｚ個の候補の中から調和信号を選出するようにし、
前記第１の単位区間に対して時間軸上で所定の時間以上にわたって重複するような第２の単位区間の区間信号についての調和信号を選出する際には、前記複数Ｚ個の候補の中から調和信号を選出するようにすることを特徴とする音響信号の符号化方法。
【請求項７】
請求項１〜６のいずれかに記載の符号化方法において、
要素信号準備段階で、互いに同一の周波数をもった正弦関数と余弦関数との合成関数を１要素信号とし、等比級数をなす複数Ｘ個の周波数についての各合成関数をそれぞれ各要素信号とすることを特徴とする音響信号の符号化方法。
【請求項８】
請求項１〜６のいずれかに記載の符号化方法において、
要素信号準備段階で、等比級数をなす複数Ｘ個の周波数を定義し、第ｎ番目（ｎ＝１，２，…，Ｘ）の周波数ｆ（ｎ）について、
単位区間と同一区間内に定義され、この区間内における周波数ｆ（ｎ）をもった正弦関数と余弦関数との合成により得られる第１の合成関数と、
単位区間と同一区間内に定義され、この区間内で区間開始周波数ｆ（ｎ）から区間終了周波数ｆ（ｎ−１）に至るまで連続的に周波数が変化するような正弦関数と余弦関数との合成により得られる第２の合成関数と、
単位区間と同一区間内に定義され、この区間内で区間開始周波数ｆ（ｎ）から区間終了周波数ｆ（ｎ＋１）に至るまで連続的に周波数が変化するような正弦関数と余弦関数との合成により得られる第３の合成関数と、
を定義することにより合計３Ｘ個の合成関数を定義し、これらの合成関数をそれぞれ要素信号として用いて相関値を求める演算を行い、前記第２の合成関数または前記第３の合成関数についての相関値が最も高いと判断された場合には、当該合成関数に対応する前記第１の合成関数を調和信号として選出することを特徴とする音響信号の符号化方法。
【請求項９】
請求項１〜６のいずれかに記載の符号化方法において、
要素信号準備段階で、比例定数αの等比級数をなす複数Ｘ個の周波数を定義し、第ｎ番目（ｎ＝１，２，…，Ｘ）の周波数ｆ（ｎ）について、
単位区間と同一区間内に定義され、この区間内における周波数ｆ（ｎ）をもった正弦関数と余弦関数との合成により得られる第１の合成関数と、
単位区間と同一区間内に定義され、この区間内における周波数ｆ（ｎ）＊βをもった正弦関数と余弦関数との合成により得られる第２の合成関数と、
単位区間と同一区間内に定義され、この区間内における周波数ｆ（ｎ）／βをもった正弦関数と余弦関数との合成により得られる第３の合成関数と、
を定義することにより合計３Ｘ個の合成関数を定義し（ただし、１＜β＜平方根α）、これらの合成関数をそれぞれ要素信号として用いて相関値を求める演算を行い、前記第２の合成関数または前記第３の合成関数についての相関値が最も高いと判断された場合には、当該合成関数に対応する前記第１の合成関数を調和信号として選出することを特徴とする音響信号の符号化方法。
【請求項１０】
請求項７〜９のいずれかに記載の符号化方法において、
複数Ｘ個の周波数として、ＭＩＤＩデータで利用される各ノートナンバーに対応した周波数を用いるようにし、
符号化段階で、個々の単位区間の音響信号を、各含有信号の周波数に対応したノートナンバーと、その振幅に基いて決定されたベロシティーと、当該単位区間の長さに基いて決定されたデルタタイムと、を示すデータからなるＭＩＤＩ形式の符号データによって表現することを特徴とする音響信号の符号化方法。
【請求項１１】
請求項１〜１０のいずれかに記載の符号化方法において、
所定の周波数ｆをもった要素信号に対する相関を求める演算を行う代わりに、正弦関数および余弦関数についての倍角公式を用いることにより、周波数ｆ／２ｑ（ｑは所定の整数）をもった要素信号に対する相関を求める演算を行うことを特徴とする音響信号の符号化方法。
【請求項１２】
請求項１〜１１のいずれかに記載の符号化方法を、コンピュータに実行させるための音響信号の符号化のためのプログラムが記録されたコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は音響信号の符号化方法に関し、時系列の強度信号として与えられる音響信号を符号化し、これを復号化して再生する技術に関する。特に、本発明は一般の音響信号を、ＭＩＤＩ形式の符号データに効率良く変換する処理に適しており、放送メディア  （ラジオ、テレビ）、通信メディア（ＣＳ映像・音声配信、インターネット配信）、パッケージメディア（ＣＤ、ＭＤ、カセット、ビデオ、ＬＤ、ＣＤ−ＲＯＭ、ゲームカセット）などで提供する各種オーディオコンテンツを制作する種々の産業分野への応用が期待される。
【０００２】
【従来の技術】
音響信号を符号化する技術として、ＰＣＭ（Pulse Code Modulation ）の手法は最も普及している手法であり、現在、オーディオＣＤやＤＡＴなどの記録方式として広く利用されている。このＰＣＭの手法の基本原理は、アナログ音響信号を所定のサンプリング周波数でサンプリングし、各サンプリング時の信号強度を量子化してデジタルデータとして表現する点にあり、サンプリング周波数や量子化ビット数を高くすればするほど、原音を忠実に再生することが可能になる。ただ、サンプリング周波数や量子化ビット数を高くすればするほど、必要な情報量も増えることになる。そこで、できるだけ情報量を低減するための手法として、信号の変化差分のみを符号化するＡＤＰＣＭ（Adaptive Differential Pulse Code Modulation ）の手法も用いられている。
【０００３】
一方、電子楽器による楽器音を符号化しようという発想から生まれたＭＩＤＩ（Musical Instrument Digital Interface）規格も、パーソナルコンピュータの普及とともに盛んに利用されるようになってきている。このＭＩＤＩ規格による符号データ（以下、ＭＩＤＩデータという）は、基本的には、楽器のどの鍵盤キーを、どの程度の強さで弾いたか、という楽器演奏の操作を記述したデータであり、このＭＩＤＩデータ自身には、実際の音の波形は含まれていない。そのため、実際の音を再生する場合には、楽器音の波形を記憶したＭＩＤＩ音源が別途必要になる。しかしながら、上述したＰＣＭの手法で音を記録する場合に比べて、情報量が極めて少なくてすむという特徴を有し、その符号化効率の高さが注目を集めている。このＭＩＤＩ規格による符号化および復号化の技術は、現在、パーソナルコンピュータを用いて楽器演奏、楽器練習、作曲などを行うソフトウエアに広く採り入れられており、カラオケ、ゲームの効果音といった分野でも広く利用されている。
【０００４】
【発明が解決しようとする課題】
上述したように、ＰＣＭの手法により音響信号を符号化する場合、十分な音質を確保しようとすれば情報量が膨大になり、データ処理の負担が重くならざるを得ない。したがって、通常は、ある程度の情報量に抑えるため、ある程度の音質に妥協せざるを得ない。もちろん、ＭＩＤＩ規格による符号化の手法を採れば、非常に少ない情報量で十分な音質をもった音の再生が可能であるが、上述したように、ＭＩＤＩ規格そのものが、もともと楽器演奏の操作を符号化するためのものであるため、広く一般音響への適用を行うことはできない。別言すれば、ＭＩＤＩデータを作成するためには、実際に楽器を演奏するか、あるいは、楽譜の情報を用意する必要がある。
【０００５】
このように、従来用いられているＰＣＭの手法にしても、ＭＩＤＩの手法にしても、それぞれ音響信号の符号化方法としては一長一短があり、一般の音響について、少ない情報量で十分な音質を確保することはできない。ところが、一般の音響についても効率的な符号化を行いたいという要望は、益々強くなってきている。いわゆるヴォーカル音響と呼ばれる人間の話声や歌声を取り扱う分野では、かねてからこのような要望が強く出されている。たとえば、語学教育、声楽教育、犯罪捜査などの分野では、ヴォーカル音響信号を効率的に符号化する技術が切望されている。このような要求に応えるために、特願平９−２７３９４９号明細書や特願平１０−２８３４５３号明細書には、ＭＩＤＩデータを利用することが可能な新規な符号化方法が提案されている。これらの方法では、音響信号の時間軸に沿って複数の単位区間を設定し、各単位区間ごとにフーリエ変換を行ってスペクトルを求め、このスペクトルに応じたＭＩＤＩデータを作成するという手順が実行される。しかしながら、フーリエ変換を利用した周波数解析法は、もともと一定周波数の信号が時間軸上で無限に連続するという前提で数式が定義されているため、時間軸上で有限の幅をもった単位区間ごとの解析に利用すると、必ずしも忠実な符号化を行うことができない。このため、品質の高い符号化という観点においては問題があった。
【０００６】
そこで本発明は、ＭＩＤＩデータのような符号データへの変換を高い品質をもって行うことが可能な音響信号の符号化方法を提供することを目的とする。
【０００７】
【課題を解決するための手段】
(1)   本発明の第１の態様は、時系列の強度信号として与えられる音響信号を符号化するための音響信号の符号化方法において、
符号化対象となる音響信号の時間軸上に複数の単位区間を設定し、個々の単位区間ごとにそれぞれ区間信号を抽出する区間信号抽出段階と、
この区間信号の構成要素となるべき複数通りの要素信号を準備する要素信号準備段階と、
準備した複数通りの要素信号の中から、区間信号に対する相関値が最も高い要素信号を調和信号として選出する調和信号選出段階と、
この調和信号とその相関値との積で与えられる含有信号を、区間信号から減じることにより差分信号を求める差分信号演算段階と、
差分信号を新たな区間信号として、調和信号選出段階および差分信号演算段階を実行して新たな含有信号および新たな差分信号を得る処理を、繰り返し行うことにより複数通りの含有信号を求め、求めた含有信号に基づいて、区間信号を表現するための複数の符号コードを生成する符号化段階と、
を行い、個々の単位区間ごとに生成された符号コードの集合によって、音響信号を表現するようにしたものである。
【０００８】
(2)   本発明の第２の態様は、上述の第１の態様に係る音響信号の符号化方法において、
要素信号準備段階で、互いに周波数の異なる複数通りの要素信号を準備するようにし、
調和信号選出段階で、区間信号に対してフーリエ変換を行い、得られたフーリエスペクトルのピーク周波数に対応する要素信号を調和信号として選出するようにしたものである。
【０００９】
(3)   本発明の第３の態様は、上述の第１の態様に係る音響信号の符号化方法において、
調和信号選出段階では、区間信号のピーク位置に関する情報のみを用いて相関値を演算する簡易相関演算を行い、この簡易相関演算の結果得られた相関値に基づいて調和信号を選出するようにし、
差分信号演算段階では、選出された調和信号の全情報を用いて相関値を再演算し、この再演算の結果得られた相関値を用いて含有信号を求める演算を行うようにしたものである。
【００１０】
(4)   本発明の第４の態様は、上述の第１の態様に係る音響信号の符号化方法において、
各単位区間の区間信号について第１回目の調和信号を選出する際に、複数Ｘ通りの要素信号の中から、区間信号に対する相関値の高い順に第１位〜第Ｙ位までの複数Ｙ個（Ｙ＜Ｘ）の候補を選出しておき、第１位の候補を第１回目の調和信号として選出し、第２回目以降の調和信号を選出する際には、既に選出された複数Ｙ個の候補の中から区間信号に対する相関値が最も高い要素信号を調和信号として選出するようにしたものである。
【００１１】
(5)   本発明の第５の態様は、上述の第１の態様に係る音響信号の符号化方法において、
区間信号抽出段階で、隣接する単位区間が時間軸上で部分的に重複するような設定を行うようにしたものである。
【００１２】
(6)   本発明の第６の態様は、上述の第５の態様に係る音響信号の符号化方法において、
第１の単位区間の区間信号についての調和信号を選出する際に、複数Ｘ通りの要素信号の中から、区間信号に対する相関値の高い順に第１位〜第Ｚ位までの複数Ｚ個（Ｚ＜Ｘ）の候補を選出しておき、この複数Ｚ個の候補の中から調和信号を選出するようにし、
第１の単位区間に対して時間軸上で所定の時間以上にわたって重複するような第２の単位区間の区間信号についての調和信号を選出する際には、既に選出された複数Ｚ個の候補の中から調和信号を選出するようにしたものである。
【００１３】
(7)   本発明の第７の態様は、上述の第１〜第６の態様に係る音響信号の符号化方法において、
要素信号準備段階で、互いに同一の周波数をもった正弦関数と余弦関数との合成関数を１要素信号とし、等比級数をなす複数Ｘ個の周波数についての各合成関数をそれぞれ各要素信号とするようにしたものである。
【００１４】
(8)   本発明の第８の態様は、上述の第１〜第６の態様に係る音響信号の符号化方法において、
要素信号準備段階で、等比級数をなす複数Ｘ個の周波数を定義し、第ｎ番目（ｎ＝１，２，…，Ｘ）の周波数ｆ（ｎ）について、
単位区間と同一区間内に定義され、この区間内における周波数ｆ（ｎ）をもった正弦関数と余弦関数との合成により得られる第１の合成関数と、
単位区間と同一区間内に定義され、この区間内で区間開始周波数ｆ（ｎ）から区間終了周波数ｆ（ｎ−１）に至るまで連続的に周波数が変化するような正弦関数と余弦関数との合成により得られる第２の合成関数と、
単位区間と同一区間内に定義され、この区間内で区間開始周波数ｆ（ｎ）から区間終了周波数ｆ（ｎ＋１）に至るまで連続的に周波数が変化するような正弦関数と余弦関数との合成により得られる第３の合成関数と、
を定義することにより合計３Ｘ個の合成関数を定義し、これらの合成関数をそれぞれ要素信号として用いて相関値を求める演算を行い、第２の合成関数または第３の合成関数についての相関値が最も高いと判断された場合には、当該合成関数に対応する第１の合成関数を調和信号として選出するようにしたものである。
【００１５】
(9)   本発明の第９の態様は、上述の第１〜第６の態様に係る音響信号の符号化方法において、
要素信号準備段階で、比例定数αの等比級数をなす複数Ｘ個の周波数を定義し、第ｎ番目（ｎ＝１，２，…，Ｘ）の周波数ｆ（ｎ）について、
単位区間と同一区間内に定義され、この区間内における周波数ｆ（ｎ）をもった正弦関数と余弦関数との合成により得られる第１の合成関数と、
単位区間と同一区間内に定義され、この区間内における周波数ｆ（ｎ）＊βをもった正弦関数と余弦関数との合成により得られる第２の合成関数と、
単位区間と同一区間内に定義され、この区間内における周波数ｆ（ｎ）／βをもった正弦関数と余弦関数との合成により得られる第３の合成関数と、
を定義することにより合計３Ｘ個の合成関数を定義し（ただし、１＜β＜平方根α）、これらの合成関数をそれぞれ要素信号として用いて相関値を求める演算を行い、第２の合成関数または第３の合成関数についての相関値が最も高いと判断された場合には、当該合成関数に対応する第１の合成関数を調和信号として選出するようにしたものである。
【００１６】
(10)  本発明の第１０の態様は、上述の第７〜第９の態様に係る音響信号の符号化方法において、
複数Ｘ個の周波数として、ＭＩＤＩデータで利用される各ノートナンバーに対応した周波数を用いるようにし、
符号化段階で、個々の単位区間の音響信号を、各含有信号の周波数に対応したノートナンバーと、その振幅に基いて決定されたベロシティーと、当該単位区間の長さに基いて決定されたデルタタイムと、を示すデータからなるＭＩＤＩ形式の符号データによって表現するようにしたものである。
【００１７】
(11)  本発明の第１１の態様は、上述の第１〜第１０の態様に係る音響信号の符号化方法において、
所定の周波数ｆをもった要素信号に対する相関を求める演算を行う代わりに、正弦関数および余弦関数についての倍角公式を用いることにより、周波数ｆ／２ｑ（ｑは所定の整数）をもった要素信号に対する相関を求める演算を行うようにしたものである。
【００１８】
(12)  本発明の第１２の態様は、上述の第１〜第１１の態様に係る音響信号の符号化方法をコンピュータに実行させるためのプログラムを、コンピュータ読み取り可能な記録媒体に記録するようにしたものである。
【００１９】
【発明の実施の形態】
以下、本発明を図示する実施形態に基づいて説明する。
【００２０】
§１．フーリエ変換を利用した音響信号の符号化方法の基本原理
はじめに、本発明に対する先願発明となる特願平１０−２８３４５３号明細書において提案されているフーリエ変換を利用した音響信号の符号化方法の基本原理を説明する。いま、図１(a) に示すように、時系列の強度信号としてアナログ音響信号が与えられたものとしよう。図示の例では、横軸に時間ｔ、縦軸に振幅（強度）をとってこの音響信号を示している。ここでは、まずこのアナログ音響信号を、デジタルの音響データとして取り込む処理を行う。これは、従来の一般的なＰＣＭの手法を用い、所定のサンプリング周期でこのアナログ音響信号をサンプリングし、振幅を所定の量子化ビット数を用いてデジタルデータに変換する処理を行えばよい。ここでは、説明の便宜上、ＰＣＭの手法でデジタル化した音響データの波形も、図１(a) のアナログ音響信号と同一の波形で示すことにする。
【００２１】
続いて、この符号化対象となる音響信号の時間軸上に、複数の単位区間を設定する。図１(a) に示す例では、時間軸ｔ上に等間隔に６つの時刻ｔ１〜ｔ６が定義され、これら各時刻を始点および終点とする５つの単位区間ｄ１〜ｄ５が設定されている（より実用的な区間設定方法については後述する）。
【００２２】
こうして単位区間が設定されたら、各単位区間ごとの音響信号（ここでは、区間信号と呼ぶことにする）に対してそれぞれフーリエ変換を行い、スペクトルを作成する。このとき、ハニング窓（Hanning Window )などの重み関数で、切り出した区間信号にフィルタをかけてフーリエ変換を施す。一般にフーリエ変換は、切り出した区間前後に同様な信号が無限に存在することが想定されているため、重み関数を用いない場合、作成したスペクトルに高周波ノイズがのることが多い。ハニング窓関数など区間の両端の重みが０になるような重み関数を用いると、このような弊害をある程度抑制できる。ハニング窓関数Ｈ（ｋ）は、単位区間長をＬとすると、ｋ＝１…Ｌに対して、
Ｈ（ｋ）＝０．５−０．５＊ｃｏｓ（２πｋ／Ｌ）
で与えられる関数である。
【００２３】
図１(b) には、単位区間ｄ１について作成されたスペクトルの一例が示されている。このスペクトルでは、横軸上に定義された周波数ｆによって、単位区間ｄ１についての区間信号に含まれる周波数成分（０〜Ｆ：ここでＦはサンプリング周波数）が示されており、縦軸上に定義された複素強度Ａによって、各周波数成分ごとの複素強度が示されている。
【００２４】
次に、このスペクトルの周波数軸ｆに対応させて、離散的に複数Ｘ個の符号コードを定義する。この例では、符号コードとしてＭＩＤＩデータで利用されるノートナンバーｎを用いており、ｎ＝０〜１２７までの１２８個の符号コードを定義している。ノートナンバーｎは、音符の音階を示すパラメータであり、たとえば、ノートナンバーｎ＝６９は、ピアノの鍵盤中央の「ラ音（Ａ３音）」を示しており、４４０Ｈｚの音に相当する。このように、１２８個のノートナンバーには、いずれも所定の周波数が対応づけられるので、スペクトルの周波数軸ｆ上の所定位置に、それぞれ１２８個のノートナンバーｎが離散的に定義されることになる。
【００２５】
ここで、ノートナンバーｎは、１オクターブ上がると、周波数が２倍になる対数尺度の音階を示すため、周波数軸ｆに対して線形には対応しない。そこで、ここでは周波数軸ｆを対数尺度で表し、この対数尺度軸上にノートナンバーｎを定義した強度グラフを作成してみる。図１(c) は、このようにして作成された単位区間ｄ１についての強度グラフを示す。この強度グラフの横軸は、図１(b) に示すスペクトログラムの横軸を対数尺度に変換したものであり、ノートナンバーｎ＝０〜１２７が等間隔にプロットされている。一方、この強度グラフの縦軸は、図１(b) に示すスペクトルの複素強度Ａを実効強度Ｅに変換したものであり、各ノートナンバーｎの位置における強度を示している。一般に、フーリエ変換によって得られる複素強度Ａは、実数部Ｒと虚数部Ｉとによって表されるが、実効強度Ｅは、Ｅ＝（Ｒ２＋Ｉ２）１／２なる演算によって求めることができる。
【００２６】
こうして求められた単位区間ｄ１の強度グラフは、単位区間ｄ１についての区間信号に含まれる振動成分について、ノートナンバーｎ＝０〜１２７に相当する各振動成分の割合を実効強度として示すグラフということができる。そこで、この強度グラフに示されている各実効強度に基いて、全Ｘ個（この例ではＸ＝１２８）のノートナンバーの中からＰ個のノートナンバーを選択し、このＰ個のノートナンバーｎを、単位区間ｄ１を代表する代表符号コードとして抽出する。ここでは、説明の便宜上、Ｐ＝３として、全１２８個の候補の中から３個のノートナンバーを代表符号コードとして抽出する場合を示すことにする。たとえば、「候補の中から強度の大きい順にＰ個の符号コードを抽出する」という基準に基いて抽出を行えば、図１(c) に示す例では、第１番目の代表符号コードとしてノートナンバーｎ（ｄ１，１）が、第２番目の代表符号コードとしてノートナンバーｎ（ｄ１，２）が、第３番目の代表符号コードとしてノートナンバーｎ（ｄ１，３）が、それぞれ抽出されることになる。
【００２７】
このようにして、Ｐ個の代表符号コードが抽出されたら、これらの代表符号コードとその実効強度によって、単位区間ｄ１についての区間信号を表現することができる。たとえば、上述の例の場合、図１(c) に示す強度グラフにおいて、ノートナンバーｎ（ｄ１，１）、ｎ（ｄ１，２）、ｎ（ｄ１，３）の実効強度がそれぞれｅ（ｄ１，１）、ｅ（ｄ１，２）、ｅ（ｄ１，３）であったとすれば、以下に示す３組のデータ対によって、単位区間ｄ１の音響信号を表現することができる。
ｎ（ｄ１，１），ｅ（ｄ１，１）
ｎ（ｄ１，２），ｅ（ｄ１，２）
ｎ（ｄ１，３），ｅ（ｄ１，３）
以上、単位区間ｄ１についての処理について説明したが、単位区間ｄ２〜ｄ５についても、それぞれ別個に同様の処理が行われ、代表符号コードおよびその強度を示すデータが得られることになる。たとえば、単位区間ｄ２については、
ｎ（ｄ２，１），ｅ（ｄ２，１）
ｎ（ｄ２，２），ｅ（ｄ２，２）
ｎ（ｄ２，３），ｅ（ｄ２，３）
なる３組のデータ対が得られる。このようにして各単位区間ごとに得られたデータによって、原音響信号を符号化することができる。
【００２８】
図２は、上述の方法による符号化の概念図である。図２(a) には、図１(a) と同様に、原音響信号について５つの単位区間ｄ１〜ｄ５を設定した状態が示されており、図２(b) には、各単位区間ごとに得られた符号データが音符の形式で示されている。この例では、個々の単位区間ごとに３個の代表符号コードを抽出しており（Ｐ＝３）、これら代表符号コードに関するデータを３つのトラックＴ１〜Ｔ３に分けて収容するようにしている。たとえば、単位区間ｄ１について抽出された代表符号コードｎ（ｄ１，１），ｎ（ｄ１，２），ｎ（ｄ１，３）は、それぞれトラックＴ１，Ｔ２，Ｔ３に収容されている。もっとも、図２(b) は、上述の方法によって得られる符号データを音符の形式で示した概念図であり、実際には、各音符にはそれぞれ強度に関するデータが付加されている。たとえば、トラックＴ１には、ノートナンバーｎ（ｄ１，１），ｎ（ｄ２，１），ｎ（ｄ３，１）…なる音階を示すデータとともに、ｅ（ｄ１，１），ｅ（ｄ２，１），ｅ（ｄ３，１）…なる強度を示すデータが収容されることになる。
【００２９】
なお、ここで採用する符号化の形式としては、必ずしもＭＩＤＩ形式を採用する必要はないが、この種の符号化形式としてはＭＩＤＩ形式が最も普及しているため、実用上はＭＩＤＩ形式の符号データを用いるのが最も好ましい。ＭＩＤＩ形式では、「ノートオン」データもしくは「ノートオフ」データが、「デルタタイム」データを介在させながら存在する。「ノートオン」データは、特定のノートナンバーＮとベロシティーＶとを指定して特定の音の演奏開始を指示するデータであり、「ノートオフ」データは、特定のノートナンバーＮとベロシティーＶとを指定して特定の音の演奏終了を指示するデータである。また、「デルタタイム」データは、所定の時間間隔を示すデータである。ベロシティーＶは、たとえば、ピアノの鍵盤などを押し下げる速度（ノートオン時のベロシティー）および鍵盤から指を離す速度（ノートオフ時のベロシティー）を示すパラメータであり、特定の音の演奏開始操作もしくは演奏終了操作の強さを示すことになる。
【００３０】
前述の方法では、第ｉ番目の単位区間ｄｉについて、代表符号コードとしてＰ個のノートナンバーｎ（ｄｉ，１），ｎ（ｄｉ，２），…，ｎ（ｄｉ，Ｐ）が得られ、このそれぞれについて実効強度ｅ（ｄｉ，１），ｅ（ｄｉ，２），…，ｅ（ｄｉ，Ｐ）が得られる。そこで、次のような手法により、ＭＩＤＩ形式の符号データを作成することができる。まず、「ノートオン」データもしくは「ノートオフ」データの中で記述するノートナンバーＮとしては、得られたノートナンバーｎ（ｄｉ，１），ｎ（ｄｉ，２），…，ｎ（ｄｉ，Ｐ）をそのまま用いていればよい。一方、「ノートオン」データもしくは  「ノートオフ」データの中で記述するベロシティーＶとしては、得られた実効強度ｅ  （ｄｉ，１），ｅ（ｄｉ，２），…，ｅ（ｄｉ，Ｐ）を、値が０〜１の範囲となるように規格化し、この規格化後の実効強度Ｅの平方根に、たとえば１２７を乗じた値を用いるようにする。すなわち、実効強度Ｅについての最大値をＥmax とした場合、
Ｖ＝（Ｅ／Ｅmax ）１／２・１２７
なる演算で求まる値Ｖをベロシティーとして用いる。あるいは対数をとって、
Ｖ＝ｌｏｇ（Ｅ／Ｅmax ）・１２７＋１２７
（ただし、Ｖ＜０の場合はＶ＝０とする）
なる演算で求まる値Ｖをベロシティーとして用いてもよい。また、「デルタタイム」データは、各単位区間の長さに応じて設定すればよい。
【００３１】
結局、上述した実施形態では、３トラックからなるＭＩＤＩ符号データが得られることになる。このＭＩＤＩ符号データを３台のＭＩＤＩ音源を用いて再生すれば、６チャンネルのステレオ再生音として音響信号が再生される。
【００３２】
§２．より実用的な区間設定方法
前述した§１では、非常に単純な区間設定例を述べたが、ここでは、区間設定を行う上でのより実用的な手法を説明する。図２(a) に示された例では、時間軸ｔ上に等間隔に定義された６つの時刻ｔ１〜ｔ６を境界として、５つの単位区間ｄ１〜ｄ５が設定されている。このような区間設定に基いて符号化を行った場合、再生時に、境界となる時刻において音の不連続が発生しやすい。したがって、実用上は、隣接する単位区間が時間軸上で部分的に重複するような区間設定を行うのが好ましい。
【００３３】
図３(a) は、このように部分的に重複する区間設定を行った例である。図示されている単位区間ｄ１〜ｄ４は、いずれも部分的に重なっており、このような区間設定に基いて前述の処理を行うと、図３(b) の概念図に示されているような符号化が行われることになる。この例では、それぞれの単位区間の中心を基準位置として、各音符をそれぞれの基準位置に配置しているが、単位区間に対する相対的な基準位置は、必ずしも中心に設定する必要はない。図３(b) に示す概念図を図２(b) に示す概念図と比較すると、音符の密度が高まっていることがわかる。このように重複した区間設定を行うと、作成される符号データの数は増加することになるが、再生時に音の不連続が生じない自然な符号化が可能になる。
【００３４】
図４は、時間軸上で部分的に重複する区間設定を行う具体的な手法を示す図である。この具体例では、音響信号を２２ｋＨｚのサンプリング周波数でサンプリングすることによりデジタル音響データとして取り込み、個々の単位区間の区間長Ｌを１０２４サンプル分（約４７ｍｓｅｃ）に設定し、各単位区間ごとのずれ量を示すオフセット長ΔＬを２０サンプル分（約０．９ｍｓｅｃ）に設定したものである。すなわち、任意のｉに対して、第ｉ番目の単位区間の始点と第（ｉ＋１）番目の単位区間の始点との時間軸上での隔たりがオフセット長ΔＬに設定されることになる。たとえば、第１番目の単位区間ｄ１は、１〜１０２４番目のサンプルを含んでおり、第２番目の単位区間ｄ２は、２０サンプル分ずれた２１〜１０４４番目のサンプルを含んでいることになる。
【００３５】
§３．スペクトル強度の効率的な演算方法
さて、図１で説明した原理に係る符号化方法の基本手順は、まず、図１(a) に示すように、音響データの時間軸上に複数の単位区間ｄ１，ｄ２，ｄ３，…を設定し、区間ｄ１内の音響データに対してフーリエ変換を行い、図１(b) に示すようなスペクトルを求め、図１(c) に示すように、このスペクトルのピーク周波数に相当するいくつかの符号ｎ（ｄ１，１），ｎ（ｄ１，２），ｎ（ｄ１，３）によって、区間ｄ１の音響信号を表現する、ということになる。ここでは、図１(b) に示すようなスペクトルを求めるための効率的な演算方法を述べることにする。
【００３６】
図１(a) に示すような振動成分をもった信号について、図１(b) に示すようなスペクトルを得る場合、フーリエ変換を利用するのが一般的であり、実用上は、高速フーリエ変換（ＦＦＴ）の手法を用いた演算が行われる。しかしながら、一般的なフーリエ変換は、線形な周波数軸を用いたスペクトルを得ることを前提としており、ＭＩＤＩデータなどの非線形な符号データへの変換には必ずしも適していない。これは次のような理由によるものである。
【００３７】
いま、図５に示すような線形尺度によるフーリエスペクトルを考えてみよう。このフーリエスペクトルは、横軸に線形尺度による周波数ｆをとり、縦軸にスペクトル強度をとったグラフである。ここで、横軸（周波数軸）上には、複数Ｍ個の測定ポイントが等間隔に離散的に定義されており、各測定ポイントごとに、そのスペクトル強度が棒グラフで示されている。グラフの下欄▲１▼には、各測定ポイントの番号が記されており、グラフの下欄▲２▼には、これら各測定ポイントに相当する周波数値が記されている。この例は、サンプリング周波数Ｆ＝２２．０５ｋＨｚで音響信号をデータとして取り込んだ例であり、測定ポイントの数Ｍ＝１０２４に設定してある。したがって、周波数ｆ＝０となる第０番目の測定ポイントから、周波数ｆ＝１１０１４Ｈｚ（サンプリング周波数Ｆのほぼ１／２）となる第１０２３番目の測定ポイントに至るまで、合計１０２４個の測定ポイントのそれぞれにおいて、棒グラフの長さに相当するスペクトル強度が求まっている。一般のフーリエ変換では、このように線形な周波数軸上に等間隔で定義された多数の測定ポイントについて、それぞれスペクトル強度が求められることになる。
【００３８】
ところが、この図５のように、線形な周波数軸上に等間隔で定義された測定ポイントについて強度が得られているスペクトルを、ＭＩＤＩデータのように、周波数に関して非線形な特性を有する符号系への変換に利用することは効率的ではない。図６は、図５に示すスペクトルの周波数軸を対数尺度に書き直したものである。グラフの下欄▲１▼には、各測定ポイントの番号が記されており、グラフの下欄▲２▼には、これら各測定ポイントに対応づけられたノートナンバー（log ｆに相当）が記されている。測定ポイントの数Ｍ＝１０２４である点は図５と同じであるが、周波数軸が対数尺度となっているため、各測定ポイントは横軸上で等間隔には配置されていない。別言すれば、低周波領域では、測定ポイントの配置は粗いが、高周波領域にゆくにしたがって、測定ポイントの配置は密になる。
【００３９】
図６の例における低周波領域では、第１の測定ポイントについては、ノートナンバーｎ＝４、第２の測定ポイントについては、ノートナンバーｎ＝１６、第３の測定ポイントについては、ノートナンバーｎ＝２４を割り当てているが、これらの中間に位置するノートナンバーについては対応する測定ポイントが存在しないため、スペクトル強度が得られない結果となっており、いわば歯抜けの櫛のような状態となっている。したがって、サンプリング周波数Ｆ＝２２．０５ｋＨｚ、測定ポイントの数Ｍ＝１０２４という設定では、ノートナンバーｎ＝５〜１５，１７〜２３についての強度を定義することができなくなる。もちろん、測定ポイントの数Ｍ＝１０２４を更に増やすようにすれば、歯抜けの状態を解消することは可能であるが、そのような多数の測定ポイントについての演算を行うこと自体が非効率的である。
【００４０】
逆に、高周波領域では、第９７０番目の測定ポイント〜第１０２３番目の測定ポイントに至るまでの合計５４個の測定ポイントが、同一のノートナンバーｎ＝１２４に割り当てられている。もちろん、この場合、全５４個の測定ポイントについてのスペクトル強度の平均値をノートナンバーｎ＝１２４についての強度と定義すれば問題はないが、１つのノートナンバーｎ＝１２４についての強度値を求めるのに、５４個もの測定ポイントについての演算を行うこと自体が非効率的である。
【００４１】
結局、ＭＩＤＩデータのような非線形な符号コードへの変換を効率よく行うためには、必要な符号コードに合わせて周波数軸上に複数Ｍ個の測定ポイントを離散的に定義し、音響信号に含まれるＭ個の測定ポイントに相当する周波数成分についてのスペクトル強度だけを求めるようにすればよい。特に、ＭＩＤＩデータへの変換を行う場合は、対数尺度の周波数軸上で等間隔となるように複数Ｍ個の測定ポイントを離散的に定義すればよい。別言すれば、各測定ポイントの周波数が等比数列をなすように、複数Ｍ個の測定ポイントを離散的に定義すればよい。図７は、このようにして定義した測定ポイントの一部分を示す図である。図示されている各測定ポイントには、ノートナンバーｎ＝６０〜６５が割り当てられており、これら各測定ポイントは、対数尺度の周波数軸上で等間隔となっている。また、各測定ポイントの具体的な周波数値２６２，２７８，２９４，…に着目すると、等比数列をなしている。フーリエ変換によりスペクトル強度を演算する際には、これら各測定ポイントについてのスペクトル強度のみを演算するようにすれば、無駄な演算を省くことができる。このような無駄を省いた効率的な演算を行うための具体的な方法は、前掲の特願平１０−２８３４５３号明細書に詳述されているので、ここでは詳しい説明は省略する。
【００４２】
§４．一般化調和解析を用いた符号化方法
以上、§１〜§３において、先願発明において提案されているフーリエ解析を用いた符号化方法の概略を述べた。本願で提案する符号化方法は、大筋においては、前述した先願発明の符号化方法と同じである。すなわち、符号化対象となる音響信号の時間軸上に複数の単位区間を設定し、個々の単位区間ごとにそれぞれ区間信号（符号化対象となる音響信号のうちの各単位区間内に位置する部分）を抽出し、各区間信号を所定の符号コードに置き換えるという手法を採る。ただ、各区間信号を所定の符号コードに置き換える際に、先願発明ではフーリエ解析の手法を用いていたが、本願発明では一般化調和解析の手法を用いる点が異なっている。
【００４３】
たとえば、図８の上段に示すように、ある単位区間ｄについて区間信号ｘが与えられたとしよう。ここでは、区間長Ｌをもった単位区間ｄについて、サンプリング周波数Ｆでサンプリングが行われており、全部でｗ個のサンプル値が得られているものとし、サンプル番号を図示のように、０，１，２，３，…，ｋ，…，ｗ−２，ｗ−１としよう。ここで、任意のサンプル番号ｋについては、ｘ（ｋ）なる振幅値がデジタルデータとして与えられていることになる。
【００４４】
先願発明において提案されているフーリエ解析を用いた符号化方法の場合、この区間信号ｘについてのフーリエスペクトルを求め、スペクトル強度の高い周波数に対応するノートナンバーを所定の数だけ選出し、選出されたノートナンバーとそのスペクトル強度とに基づいて、ＭＩＤＩ符号化を行っていた。しかしながら、本来、フーリエ解析は、時間軸上に無限に連続する信号波形を対象とした解析手法であるため、図８の例のように、区間長Ｌという有限の時間内にしか存在しない区間信号ｘについての解析に適用した場合、正確な周波数解析を行うことができない。このため、高品質の符号化を行う際には問題があることは、既に述べたとおりである。
【００４５】
本願発明において適用する一般化調和解析の基本概念は、区間信号ｘをあらかじめ規定されたＩ個の調和関数に分解して取り扱うという点にある。一般の音響信号は可聴領域として２０Ｈｚから２０ｋＨｚの調和関数が連続して含まれていると考えられるが、本願の目的は、与えられた音響信号を、ＭＩＤＩで定義されている１２８種の不連続な周波数で強引に表現しようというものである。すなわち、図８に示すような、一見ランダムな信号波形を、数式で定義される複数の信号波形の和として表現しよう、という試みを行うことになる。そのために、まず、区間信号ｘの構成要素の候補となるべき複数通りの要素信号を準備しておく。ここでは、図８の下段の表に示されているような１２８通りの要素信号を準備することにする。各要素信号は、互いに同一の周波数をもった正弦関数と余弦関数との合成関数により構成されており、それぞれノートナンバー０〜１２７に対応している。たとえば、ノートナンバーｎに対応した要素信号は、周波数ｆ（ｎ）をもった正弦関数 sin（２πｆ（ｎ）ｋ／Ｆ）と余弦関数 cos（２πｆ（ｎ）ｋ／Ｆ）との合成関数として与えられる。変数ｋは図８上段に示されたサンプル番号、Ｆはサンプリング周波数であり、上記三角関数の項（ｋ／Ｆ）は、単位区間ｄの左端位置を基準としたときの時間ｔに相当するものである。また、図８の下段の表において各三角関数の頭に付されたＡ（ｎ），Ｂ（ｎ）は、振幅を示す係数である。ただし、各要素信号は、あくまでも区間信号ｘが存在する単位区間ｄと同一の区間内にのみ定義された信号である。なお、各ノートナンバー０〜１２７に相当する周波数をｆ（０）〜ｆ（１２７）とすれば、これらの周波数は等比級数をなすことになる（ノートナンバーが１２だけ隔たると１オクターブの隔たりとなり、周波数としては２倍の隔たりとなる）。
【００４６】
ここで行う一般化調和解析の目的は、区間信号ｘに相当する関数ｘ（ｋ）について、図９の式で示されるような誤差値Error を最小とするような近似関数ξ（ｋ）を求めることである。誤差値Error は、ｗ個の各サンプル番号位置（０〜（ｗ−１））における関数ｘ（ｋ）と近似関数ξ（ｋ）との二乗誤差の総和であり、この誤差値Error が小さければ小さいほど、近似関数ξ（ｋ）は関数ｘ（ｋ）に近似することになる。近似関数ξ（ｋ）は、図９の式に示されているように、１２８通りの要素信号（図８の下段の表に掲載されたもの）の総和であり、各要素信号の係数Ａ（ｎ），Ｂ（ｎ）をそれぞれ特定することにより定まる。別言すれば、図８の下段の表に掲載された各三角関数の係数Ａ（０）〜Ａ（１２７），Ｂ（０）〜Ｂ（１２７）の値をそれぞれ固有の値に定めた上で、これらすべての三角関数の総和を求めれば、この総和が近似関数ξ（ｋ）となる。誤差値Error を最小にするような近似関数ξ（ｋ）を求めるということは、そのような近似関数ξ（ｋ）の構成要素となる各要素信号についての個々の係数値を求めることに他ならない。このように、誤差値Error を最小にするための係数値を求めるには、たとえば、個々の係数値がとりうるすべての値を入れた膨大な組み合わせについて誤差値Error を演算し、最小値が得られた係数値の組み合わせをとればよい。しかしながら、このような方法は、演算負担が膨大なものとなるため現実的ではない。また、現在入手可能なＭＩＤＩ音源で同時に合成できる音は標準規格では１６であり、与えられた音響信号をＩ個の調和関数に分解する場合、Ｉを１６以下に設定しておかないと再生できない。そこで、本願では、次のような簡便な手法で一般化調和解析を行う。
【００４７】
まず、図８の上段に示すような区間信号ｘが与えられたら、とりあえず、この区間信号ｘに対してフーリエ変換を実行し、図１０に示すようなフーリエスペクトルを求める。フーリエ変換の演算負担は、ＦＦＴなどの手法を利用すれば、一般のパソコンを用いても実行可能な程度であり、特に、前述の§３で述べたように、１２８通りのノートナンバーに相当する周波数位置のみについてのスペクトル強度を求める効率的な演算手法を採れば、パソコンで十分に実行可能である（一般に、「フーリエ変換」という言葉は、線形周波数軸をもった周波数スペクトルを求める処理をさすが、本願明細書では、§３で述べたような対数周波数軸をもった周波数スペクトルを求める処理も含めた広義の意味で用いることにする）。続いて、こうして求められたフーリエスペクトルのピーク周波数に対応する要素信号を調和信号として選出する。ここで、調和信号とは、複数通りの要素信号の中から、区間信号ｘに対する相関値が最も高い信号を言う。たとえば、図１０に示す例の場合、フーリエスペクトルのピーク周波数ｆ（ｎ）に対応する要素信号が調和信号として選出されることになる（ピーク位置が、１２８通りの周波数のいずれかに正確に一致しない場合には、周波数軸上で最も近くにある周波数をとればよい）。この例の場合、フーリエ解析に基づく相関値が最も高い要素信号として、周波数ｆ（ｎ）をもった正弦関数 sin（２πｆ（ｎ）ｋ／Ｆ）と余弦関数 cos（２πｆ（ｎ）ｋ／Ｆ）との合成関数が選出されたことになる。前述したように、周波数ｆ（ｎ）は、ノートナンバーｎに相当する周波数であり、周波数ｆ（ｎ）とノートナンバーｎとの間には、図１０の下段に示すような関係式が成り立ち、ノートナンバーｎ＝６９に対応する周波数ｆ（６９）が４４０Ｈｚになる。
【００４８】
さて、こうして周波数ｆ（ｎ）をもった正弦関数 sin（２πｆ（ｎ）ｋ／Ｆ）と余弦関数 cos（２πｆ（ｎ）ｋ／Ｆ）との合成関数が調和信号として選出されたら、続いて、図１１に示す式に基づいて、係数Ａ（ｎ）とＢ（ｎ）とを求める。ここで、これらの係数は、実は、この調和信号と区間信号ｘとの相関値となっている。すなわち、係数Ａ（ｎ）は、正弦関数 sin（２πｆ（ｎ）ｋ／Ｆ）と区間信号ｘ（ｋ）との相関を示す値となっており、係数Ｂ（ｎ）は、余弦関数 cos（２πｆ（ｎ）ｋ／Ｆ）と区間信号ｘ（ｋ）との相関を示す値となっている。
【００４９】
たとえば、係数Ａ（ｎ）を求める式の右辺に着目すると、第ｋ番目のサンプル位置において、区間信号ｘ（ｋ）の値と、正弦関数 sin（２πｆ（ｎ）ｋ／Ｆ）の値との積が求められているが、もし両関数が全く同一の関数であったとすれば（別言すれば、最大の相関を有していたとすれば）、サンプル位置ｋの値によらず、両関数値は必ず同符号となるため、両者の積は必ず正になる。よって、ｋ＝０〜（ｗ−１）についての総和、すなわち係数Ａ（ｎ）の値は、正の大きな値になる。これに対して、もし両関数の間に全く相関がなかったとすれば、サンプル位置ｋの値により、両関数値は同符号となったり、異符号となったりし、両者の積は全くランダムに正になったり負になったりする。よって、ｋ＝０〜（ｗ−１）についての総和、すなわち係数Ａ（ｎ）の値は、０に近くなる。
【００５０】
なお、前述したように、周波数ｆ（ｎ）をもった正弦関数 sin（２πｆ（ｎ）ｋ／Ｆ）と余弦関数 cos（２πｆ（ｎ）ｋ／Ｆ）との合成関数が、調和信号として選出されたのは、図１０に示すフーリエスペクトルにおいて、周波数ｆ（ｎ）がピークを示したためである。したがって、区間信号ｘには、周波数ｆ（ｎ）をもった要素信号の成分が最も多く含まれていると予想されるので、相関を示す値である係数Ａ（ｎ）とＢ（ｎ）とは、比較的大きな値になるはずである。
【００５１】
さて、ここで、図１２に示すような信号Ｇ（ｋ）を定義する。この信号Ｇ（ｋ）は、調和信号（上述の各三角関数）と、この調和信号について得られた相関値（上述の係数Ａ（ｎ），Ｂ（ｎ））との積で与えられる信号であり、いわば選出された調和信号に、相関値に対応した振幅値を与えたものである。別言すれば、この信号Ｇ（ｋ）は、区間信号ｘ（ｋ）内に含まれている主たる構成信号のひとつと言うことができる。前述したように、一般化調和解析の目的は、区間信号ｘに近似する近似関数ξ（ｋ）を求めることであるが、信号Ｇ（ｋ）は、この近似関数ξ（ｋ）の構成要素の１つということになる。したがって、本願明細書では、この信号Ｇ（ｋ）のことを、区間信号ｘ（ｋ）内に含まれている信号のひとつという意味で、「含有信号」と呼ぶことにする。もちろん、区間信号ｘ（ｋ）内には、他にも多数の信号が含まれており、上述の手法で求まった第１の含有信号Ｇ（ｋ）以外にも、含有信号となるべき信号をみつける必要がある。
【００５２】
そのために、図１３に示すような差分演算を行う。すなわち、区間信号ｘから含有信号Ｇを減じることにより、差分信号を求めるのである。具体的には、ｘ（ｋ）−Ｇ（ｋ）なる演算を、すべてのｋの値（ｋ＝０〜（ｗ−１））について行えばよい。こうして得られた差分信号は、第１の含有信号Ｇ（ｋ）以外の信号成分からなる信号ということができる。したがって、この差分信号を新たな区間信号（前述の区間信号ｘ（ｋ）を第１の区間信号と呼べば、ｘ（ｋ）−Ｇ（ｋ）で求まる差分信号は、第２の区間信号ということになる）として、上述の手法と同等の手法を繰り返し実行すれば、今度は、第２の含有信号を求めることができる。この第２の含有信号は、第１の含有信号とともに、第１の区間信号ｘ（ｋ）に構成要素として含まれていた信号ということになる。更に、第２の区間信号から第２の含有信号を減じることにより第２の差分信号を求め、この第２の差分信号を新たな区間信号、すなわち、第３の区間信号として、更に同じ手法を繰り返せば、第３の含有信号を求めることができる。
【００５３】
このような処理を繰り返してゆけば、複数Ｐ個の含有信号を求めることができ、各含有信号に基づいて、複数Ｐ個の符号コードを生成することができる。たとえば、上述の処理を３回繰り返すことにより、
0004132362.tif 000002
なる３つの含有信号が得られたとすると（ここで、ｎ１，ｎ２，ｎ３は、０〜１２７のうちのいずれかのノートナンバー）、ノートナンバーが「ｎ１」、ベロシティーが「Ａ（ｎ１）２＋Ｂ（ｎ１）２」の平方根（実行振幅値）となるようなＭＩＤＩ符号と、ノートナンバーが「ｎ２」、ベロシティーが「Ａ（ｎ２）２＋Ｂ（ｎ２）２」の平方根（実行振幅値）となるようなＭＩＤＩ符号と、ノートナンバーが「ｎ３」、ベロシティーが「Ａ（ｎ３）２＋Ｂ（ｎ３）２」の平方根（実行振幅値）となるようなＭＩＤＩ符号と、によって、区間信号ｘが符号化されることになる。
【００５４】
上述の処理を、図１４〜図１６に示す一般式を用いて説明すると次のようになる。すなわち、第ｉ番目の区間信号ｘｉ（ｋ）が与えられたら、この区間信号ｘｉ（ｋ）についてのフーリエスペクトルを求め、そのピーク周波数ｆ（ｎｉ）を決定する。そして、このピーク周波数ｆ（ｎｉ）に相当する要素信号を第ｉ番目の調和信号として選出し、この調和信号についての係数Ａ（ｎｉ），Ｂ（ｎｉ）を、図１４の式に基づいて計算する。続いて、図１５の式のように、第ｉ番目の含有信号Ｇｉ（ｋ）を定義し、図１６の式のように、第ｉ番目の区間信号ｘｉ（ｋ）から第ｉ番目の含有信号Ｇｉ（ｋ）を減ずることにより差分信号を求め、この差分信号を、第（ｉ＋１）番目の区間信号ｘｉ＋１（ｋ）とする。このような処理を、初期値ｉ＝１から、ｉを１ずつ増やしながら、必要な回数だけ繰り返し実行すればよい。
【００５５】
以上が、一般化調和解析として知られている周波数解析法である。相関値が最も高い要素信号を調和信号として選出する際にフーリエ変換を利用しているが、基本的には、複数の要素信号の総和として原信号を表現する手法を採っており、フーリエ解析とは異なるアプローチを採っている。なお、図１１あるいは図１４の式において、右辺の先頭に２／ｗなる項が存在するが、この項における分母「ｗ」は、全サンプル数ｗで除すことを示しており、分子の「２」は、この一般化調和解析を行うのに最も適した係数値として経験的に知られている数値である（理論的にも説明のつく数値であるが、ここでは詳しい説明は省略する）。
【００５６】
最後に、一般化調和解析を利用した本発明に係る符号化方法の基本手順を図１７の流れ図に基づいて説明する。まず、ステップＳ１において、符号化対象となる音響信号を入力する。具体的には、既に述べたように、所定のサンプリング周波数Ｆでサンプリングし、ＰＣＭの手法でデジタルデータとして取り込むことになる。続いて、ステップＳ２において、時間軸上に複数の単位区間を設定し、個々の単位区間ごとにそれぞれ区間信号ｘを抽出する。単位区間の設定は、§２で述べたように、隣接する単位区間が時間軸上で部分的に重複するようにするのが好ましい。続いて、ステップＳ３において、パラメータｉを１に設定する。このパラメータｉは、上述した繰り返し処理の回数をカウントするためのものである。
【００５７】
次に、ステップＳ４において、第ｉ番目の区間信号ｘｉをフーリエ変換する。ｉ＝１の場合、ステップＳ２で抽出された区間信号ｘが、ステップＳ４における区間信号ｘｉとなる。そして、ステップＳ５において、得られたフーリエスペクトルのピークに対応する周波数ｆ（ｎｉ）を１２８通りの候補の中から決定する。ここで、１２８通りの候補は、図８の下段の表に示された周波数ｆ（０）〜ｆ（１２７）であり、ＭＩＤＩにおける１２８通りのノートナンバーに対応した周波数である。このステップＳ５における周波数ｆ（ｎｉ）の決定処理は、１２８通りの要素信号の中から、区間信号ｘｉに対する相関値（この場合は、フーリエスペクトルの強度）が最も高い要素信号を決定する処理に相当し、周波数ｆ（ｎｉ）をもった要素信号を、ここでは調和信号と呼んでいる。
【００５８】
続いて、ステップＳ６において、この調和信号についての係数Ａ（ｎｉ），Ｂ（ｎｉ）を算出し（図１４の式）、第ｉ番目の含有信号Ｇｉを求める（図１５の式）。ここで算出したＡ（ｎｉ），Ｂ（ｎｉ）が、区間信号ｘｉに対する調和信号の相関値に相当するものであることは既に述べたとおりである。なお、この相関値は、ステップＳ４においてフーリエスペクトルを求める際にも計算されているので、これをそのまま利用してもかまわない。
【００５９】
次に、ステップＳ７において、第ｉ番目の区間信号ｘｉから、第ｉ番目の含有信号Ｇｉを減じることにより差分信号を求め、この差分信号を第（ｉ＋１）番目の区間信号ｘ（ｉ＋１）とする。そして、ステップＳ８において、パラメータｉが所定回数値Ｉまで到達したか否かが判定され、Ｉに達していない場合には、ステップＳ９へと進み、ｉが１だけ更新され、ステップＳ４へと戻ることになる。このステップＳ４では、今度は、第（ｉ＋１）番目の区間信号ｘ（ｉ＋１）についてのフーリエ変換が行われることになる。所定回数値Ｉは、１つの単位区間をいくつの符号データで表現するかを示すパラメータになる。たとえば、図３に示す例では、１つの単位区間を３つのＭＩＤＩ符号データによって表現し、これらをトラックＴ１〜Ｔ３に配置している。この場合、Ｉ＝３に設定し、３つの含有信号Ｇ１，Ｇ２，Ｇ３を求め、それぞれからＭＩＤＩ符号データを求めればよい。実際には、Ｉ＝８程度に設定し、８トラック分のＭＩＤＩ符号データを生成するのが好ましい。
【００６０】
この図１７に示す例では、ステップＳ４〜Ｓ８までの処理が必ずＩ回分繰り返されることになるが、ｉ＜Ｉであっても、図９に示すError 値が所定の設定値よりも小さくなるような近似関数ξ（ｋ）が得られた場合には、そこで繰り返し作業を打ち切るようにしてもかまわない。たとえば、上述の処理を３回繰り返すと、３つの含有信号Ｇ１，Ｇ２，Ｇ３が求まる。ここで、近似関数ξ（ｋ）＝Ｇ１＋Ｇ２＋Ｇ３として、図９に示すError 値を計算した結果、所定の設定値よりも小さかった場合、３つの含有信号Ｇ１，Ｇ２，Ｇ３の総和により、区間信号ｘ（ｋ）にかなり近い信号が既に実現できていることになる。したがって、ステップＳ８の直前に、ξ（ｋ）＝ΣＧｉを求め、図９に示すError 値を計算し、所定の設定値と比較するステップを追加し、所定の設定値以下であった場合には、ステップＳ１０へと進むようにしておいてもよい。
【００６１】
なお、ステップＳ５において、１２８通りの候補の中から、１つの周波数ｆ（ｎｉ）を選出したときに、既に選出済みの周波数が再び選出される可能性もある（一般的には、ステップＳ７において、一度選出された周波数を含む信号が引き算されるので、残った差分信号には、当該周波数成分はあまり多く含まれておらず、既に選出済みの周波数が再選出される可能性は低いと考えられるが）。このような場合、同一周波数の再選出を許す取り扱いと、許さない取り扱いとの２通りの取り扱いができる。前者の取り扱いを行うのであれば、ステップＳ５において、重複選出か否かをチェックすることなく、そのままフーリエスペクトルのピークに対応する周波数を選出すればよい。この場合、最終的に得られた含有信号の中に、周波数が同一のものが含まれることになり、異なるトラックに、同一音階のＭＩＤＩ符号データが配置されることになる。一方、後者の取り扱いを行うのであれば、ステップＳ５において、重複選出か否かをチェックし、もし重複選出となる場合には、次の候補（フーリエスペクトルの次のピークに対応する周波数）を選出すればよい。
【００６２】
こうして、必要な回数の繰り返し処理が完了したら、当該単位区間についての符号化は完了するので、ステップＳ１０からステップＳ１１へと進み、単位区間の更新が行われる。たとえば、図４に示すような区間設定を行っているのであれば、単位区間をオフセット長ΔＬ（２０サンプル分）だけずらした単位区間がステップＳ２において新たに設定され、この新たな単位区間について採取された１０２４サンプル分のデータが、新たな区間信号ｘとして抽出されることになる。このような処理が、全区間について完了すれば、ステップＳ１０を経て、この符号化の手順は終了する。
【００６３】
§５．一般化調和解析の演算負担を軽減する工夫
さて、本発明の骨子は、§４で述べたように、一般化調和解析を行うことにより、区間信号を複数の含有信号に分解し、個々の含有信号をそれぞれ符号データに変換することにある。ただ、一般化調和解析の手法は、図１７の流れ図にも示されているように、多数の信号相互間で相関を求める演算が必要になるため、フーリエ解析の手法に比べると演算負担は膨大なものとなる。このため、現状では、一般的な利用にまでは至っていない。そこで、本願発明者は、この一般化調和解析の演算負担を軽減させるための工夫をいくつか案出した。これらの工夫を行うことにより、実際の音響信号の符号化を、パソコンを用いて実用レベルで行うことが可能になる。以下、これらの工夫を順に述べる。これらの工夫は、それぞれ単独で実施することも可能であるが、実用上は、すべてを組み合わせるのが好ましい。
【００６４】
(1).簡易相関演算の導入
§４で述べた手法において、２つの信号（関数）の相関を演算するステップは、２か所に存在する。第１のステップは、１２８通りの要素信号の中から、１つの調和信号（区間信号に対する相関値が最も高い信号）を選出するステップであり、図１７の流れ図では、ステップＳ４において区間信号ｘｉをフーリエ変換し、ステップＳ５において１２８候補の中からスペクトルピークに対応する周波数を決定する処理に相当する。一方、第２のステップは、選出された調和信号についての係数Ａ（ｎ），Ｂ（ｎ）を求めるためのステップであり、図１７の流れ図では、ステップＳ６における演算処理に相当する。実は、図１７のステップＳ４とステップＳ６とは、本質的には同じことを行っている。
【００６５】
そもそも、ステップＳ４において行われるフーリエ変換は、図１８に示すように、特定の三角関数との相関値を求める演算である。たとえば、図１８(a) に示すように、単位区間ｄ内に所定の区間信号ｘが与えられていたとしよう。ここで、単位区間ｄは、区間長Ｌをもった区間であり、区間信号ｘはサンプリング周波数Ｆでサンプリングされたデータである。サンプル番号ｋ（ｋ＝０，１，２，…，ｗ−１）で示される区間信号ｘのサンプル値は、ｘ（ｋ）となる。この区間信号ｘに対して、たとえば、図１８(b) に示すような、同一の単位区間に定義された周波数ｆ（ｎ）の正弦波 sin（２πｆ（ｎ）ｋ／Ｆ）を用意する。ここで、区間信号ｘとこの正弦波信号との相関値Ｓ１（ｎ）は、図１８(c) の式によって計算できる。この式の右辺に着目すると、第ｋ番目のサンプル位置において、区間信号ｘ（ｋ）の値と、正弦関数 sin（２πｆ（ｎ）ｋ／Ｆ）の値との積が求められている。もし両関数が全く同一の関数であったとすれば（別言すれば、最大の相関を有していたとすれば）、サンプル位置ｋの値によらず、両関数値は必ず同符号となるため、両者の積は必ず正になる。よって、ｋ＝０〜（ｗ−１）についての総和、すなわち相関値Ｓ１（ｎ）の値は、正の大きな値になる。これに対して、もし両関数の間に全く相関がなかったとすれば、サンプル位置ｋの値により、両関数値は同符号となったり、異符号となったりし、両者の積は全くランダムに正になったり負になったりする。よって、ｋ＝０〜（ｗ−１）についての総和、すなわち相関値Ｓ１（ｎ）の値は、０に近くなる。
【００６６】
一方、正弦波 sin（２πｆ（ｎ）ｋ／Ｆ）の代わりに、余弦波 cos（２πｆ（ｎ）ｋ／Ｆ）を用いた相関値Ｓ２（ｎ）も、図１８(c) の式によって計算できる。周波数ｆ（ｎ）の成分をもった周期信号との相関を求める上では、位相差の影響を避けるために、正弦波に対する相関と余弦波に対する相関との双方を考慮する必要がある（どのような位相であっても、正弦波と余弦波との双方を考慮すれば、いずれかで相関が検出できる）。そこで、実際には、図１８(c) の最下段の式に示されているように、正弦波に対する相関値Ｓ１（ｎ）と余弦波に対する相関値Ｓ２（ｎ）との二乗和の平方根Ｅ（ｎ）を、周波数ｆ（ｎ）の成分をもった周期信号との相関値として求め、フーリエスペクトルを得るようにする。図１(c) における実行強度Ｅは、この二乗和の平方根Ｅ（ｎ）の値に相当する。
【００６７】
ところで、図１８(c) に示した相関値Ｓ１（ｎ），Ｓ２（ｎ）に関する式は、図１１に示した係数Ａ（ｎ），Ｂ（ｎ）に関する式とほぼ同じである。これはいずれも、周波数ｆ（ｎ）の成分をもった周期信号と区間信号ｘとの相関値を求める式であるためである（図１１の式において、２／ｗなる項は、前述したように、調和解析を行う上で経験的に得られた係数である）。結局、図１７のステップＳ４とステップＳ６とでは、ほぼ同じ演算処理が実行されることになる。ただし、ステップＳ４の目的は、１２８通りの要素関数の中で、区間信号ｘに対する相関値が最も高いものを調和信号として選出することにあるのに対し、ステップＳ６の目的は、選出された調和信号についての相関値を求め、調和信号に相関値を乗じることにより含有信号Ｇｉを得ることにある。
【００６８】
この目的の相違に着目すると、次の２つの特徴が明らかになる。第１の特徴は、ステップＳ４では、１２８通りのすべての要素関数に対する相関を計算する必要があるのに対し、ステップＳ６では、調和関数について（つまり、１２８通りの中から選出された１通りの要素関数について）の相関さえ計算できればよい、ということである。そして第２の特徴は、ステップＳ４では、１２８通りの要素関数についての相関の大小関係が判別できればよいので、相関の演算精度はあまり要求されないのに対し、ステップＳ６では、含有信号Ｇｉの振幅値に相当する係数Ａ（ｎ），Ｂ（ｎ）を決定する必要があるため、ある程度の演算精度をもった相関値が要求される、ということである。
【００６９】
このような２つの特徴を考慮すると、ステップＳ４では、１２８通りのすべての要素関数についての相関を求めねばならないが、粗い相関値が求まれば十分であり、ステップＳ６では、１通りの要素関数（調和関数）についてのみ、高い精度での相関値を求めればよい、ということがわかる。
【００７０】
ステップＳ４において行う粗い相関演算としては、たとえば、図１９に示すような簡易相関演算の手法を用いることができる。まず、図１９(a) に示すような区間信号ｘについて、振幅のピーク位置を検出する。なお、ここでは、正のピークと負のピークとが交互に現れるという前提で各ピーク位置を決定しており、同極性のピークが連続して現れるような場合には、よりピーク値の大きい一方だけをピークとして認識するようにしている。図示の例では、５つのピーク位置Ｐ１〜Ｐ５（それぞれ時間ｔ（Ｐ１）〜ｔ（Ｐ５）に現れる）が検出されている。こうして、区間信号ｘのピーク位置が検出されたら、このピーク位置に関する情報のみを用いて相関値を演算するのである。
【００７１】
たとえば、図１９(b) に示すような周波数ｆ（ｎ）の正弦波との相関値を演算するのであれば、時間ｔ（Ｐ１）〜ｔ（Ｐ５）の５ヶ所の位置のみにおける振幅値の積を演算し、その総和をとることになる。別言すれば、通常の相関演算（フーリエ解析）では、図１８(c) に示す式に基づいて、相関値Ｓ１（ｎ），Ｓ２（ｎ）を求め、最終的な相関値（実効値）Ｅ（ｎ）を得ていたのに対し、簡易相関演算では、図１９(c) に示す式に基づいて、簡易相関値ＳＳ１（ｎ），ＳＳ２（ｎ）を求め、最終的な簡易相関値（実効値）ＥＥ（ｎ）を得ることになる。ここで、パラメータｊは、ピーク位置番号を示し、ｘ（Ｐｊ）は、ｊ番目のピーク位置における区間信号ｘの値を、ｔ（Ｐｊ）は、ｊ番目のピーク位置の時間値を、Ｊは、ピーク位置の総数を、それぞれ示している。
【００７２】
こうして、１２８通りの簡易相関値ＥＥ（ｎ）が求まったら、その中で最も大きな値を示す簡易相関値に対応した周波数ｆ（ｎ）をもつ要素信号を調和信号として選出すればよい。そして、ステップＳ６では、この調和信号についてのみ、図１１に示す式に基づいて、通常の相関演算（調和信号のピーク位置だけではなく、全情報（全サンプル位置）を用いた相関値の演算）を行い、この再演算の結果得られた相関値（係数Ａ（ｎ），Ｂ（ｎ））を用いて含有信号Ｇを求めるようにすればよい。
【００７３】
このような簡易相関演算を導入する手法を採った場合の処理手順を図２０の流れ図に示す。ここで、図１７の流れ図と同一のステップについては同一番号を付してある。図１７の流れ図と異なるステップは、ステップＳ４１およびステップＳ５１である。図１７のステップＳ４では、フーリエ変換（１２８通りの要素信号すべてに対しての通常の相関演算）が行われていたのに対し、図２０のステップＳ４１では、１２８通りの要素信号に対して上述の簡易相関演算を行っている。また、図１７のステップＳ５では、フーリエスペクトルのピーク位置に対応する要素信号を調和信号として選出していたのに対し、図２０のステップＳ５１では、１２８通りの簡易相関演算の結果、最も強い相関を示す要素信号を調和信号として選出することになる。
【００７４】
具体的な数値を掲げておけば、たとえば、１単位区間内のサンプル数ｗが１０２４であるのに対し、振幅のピーク位置の数Ｊが１００程度であったとすれば、簡易相関演算を採用することにより、演算負担は１／１０程度にまで軽減されることになる。
【００７５】
(2).要素信号候補の絞り込み（その１）
上述した図２０の流れ図に示す処理では、ステップＳ６において第ｉ番目の含有信号Ｇｉが求まり、ステップＳ７において、第（ｉ＋１）番目の区間信号ｘ（ｉ＋１）が求まり、ステップＳ９においてｉの値が更新された後、再びステップＳ４１において、新たな区間信号と１２８通りの要素信号との間で相関演算（簡易相関演算）が行われる。もちろん、パラメータｉの更新により、区間信号ｘｉも更新されるので（ステップＳ７の演算における差分信号が新たな区間信号となる）、ステップＳ４１において、この新たな区間信号ｘｉにについての相関演算を行うことは意味のあることではあるが、演算効率をより高めるために、このステップＳ４１において毎回行われる相関演算を一部省略することができる。
【００７６】
図２１に示す流れ図は、このような省略を行った処理を示している。図２０の流れ図と相違するステップは、ステップＳ４２，ステップＳ５２，ステップＳ９２である。図２０のステップＳ４１では、１２８通りの要素信号と区間信号ｘｉとの間で簡易相関演算が行われたが、図２１のステップＳ４２では、更に、この簡易相関演算の結果として得られた相関の強い順に、上位１６候補を抽出する処理が加わる（抽出する候補の数は、ステップＳ８のＩの値の倍数に設定するのが好ましい。本実施例では、Ｉ＝８としているため、その２倍の１６候補を抽出するようにしている。）。そして、ステップＳ５２では、この抽出した１６候補の中で、相関が最も強い要素信号を調和信号として選出する処理が行われる。もっとも、この時点では、ステップＳ５２の処理内容は、ステップＳ５１の処理内容と全く変わりはない（１２８候補中の第１位と、１６候補中の第１位とは当然同じである）。調和信号として選出される要素信号は、常に、相関が最も強い要素信号ということになるので、ステップＳ４２において、上位１６候補を抽出したとしても、続くステップＳ５２では、第１位のみが調和信号として選出されることになり、第２位〜第１６位までの候補は、この時点では何ら意味をもたない。
【００７７】
しかしながら、図２１に示す手順の場合、ステップＳ９によりパラメータｉの値が更新された後は、ステップＳ４２の処理を実行する代わりに、ステップＳ９２の処理を実行することになる。このステップＳ９２の処理は、既に抽出された１６候補の要素信号と、区間信号ｘｉとの間での簡易相関演算を行う処理である。ステップＳ４２の処理では、１２８通りすべての要素信号に対する相関を計算していたのに対し、ステップＳ９２の処理では、１６通りの要素信号に対する相関を計算するだけですむ。この手法は、パラメータｉの値が更新されたとしても、区間信号ｘｉに含まれている周波数成分に大きな変わりはないであろうとの考え方に基づくものである。結局、パラメータｉ＝１として、区間信号ｘ１（原音響信号）について上位１６候補を抽出したら、この上位１６候補以外の要素信号は、パラメータｉ＝２以降の区間信号ｘｉ（ｉ個の含有信号を次々に減じていった残りの信号）については一切考慮しないことになるが、大きな支障は生じない。
【００７８】
この手法を採れば、１２８通りのすべての要素信号についての相関演算を行うのは、パラメータｉ＝１、すなわち、第１回目の調和信号Ｇ１を選出する際だけに限られ、第２回目の調和信号Ｇ２，Ｇ３，…を選出する際には、抽出された１６候補の要素信号についての相関演算を行えばよいので、演算負担は、１／８程度にまで軽減されることになる。
【００７９】
なお、この要素信号候補の絞り込み手法は、簡易相関演算を行わない図１７に示す処理にも適用可能である。要するに、この手法では、各単位区間の区間信号について第１回目の調和信号を選出する際に、複数Ｘ通り（上例の場合Ｘ＝１２８）の要素信号の中から、この区間信号に対する相関値の高い順に第１位〜第Ｙ位（上例の場合Ｙ＝１６）までの複数Ｙ個（Ｙ＜Ｘ）の候補を選出しておき、第１位の候補を第１回目の調和信号として選出し、第２回目以降の調和信号を選出する際には、複数Ｙ個の候補の中から区間信号に対する相関値が最も高い要素信号を調和信号として選出すればよい。
【００８０】
(3).要素信号候補の絞り込み（その２）
前述の候補絞り込み手法では、パラメータｉが２に更新された後に、候補を絞り込んだ演算を行っていた。これに対し、ここで述べる候補絞り込み手法では、単位区間が更新された後に、候補を絞り込んだ演算を行うことになる。このような絞り込み手法は、§２で述べたように、隣接する単位区間が時間軸上で部分的に重複するような設定を行った場合に有効である。たとえば、図４に示す例で、単位区間ｄ１内の１０２４個のサンプルデータと、単位区間ｄ２内の１０２４個のサンプルデータとを比較すると、わずか２０サンプル分だけが相違しており、残りの１００４個分のデータは全く共通である。ところが、図１７，図２０，図２１に示す手順では、いずれもステップＳ１１で単位区間が更新された後は、再び前回と同じ処理を繰り返している。ここで述べる絞り込み手法は、この点に着目して演算効率を向上させる手法である。
【００８１】
図２２は、この手法の処理を示す流れ図である。図２１の流れ図と相違するステップは、ステップＳ４３〜Ｓ４５である。まず、ステップＳ２において特定の単位区間が設定されたら、ステップＳ３においてパラメータｉを初期値１に設定し、ステップＳ４３において、詳細演算を行うか否かを判断する。ステップＳ２で抽出された区間信号が、最初の区間信号の場合は、詳細演算を行うことになり、ステップＳ４３からステップＳ４４へと進む。このステップＳ４４では、図２１のステップＳ４２の処理とほぼ同じ処理が行われる。すなわち、１２８通りの要素信号と区間信号ｘｉとの間で簡易相関演算が行われ、この簡易相関演算の結果として得られた相関の強い順に、複数の候補が抽出される。ただし、この図２２に示す例では、上位３２候補を抽出するようにしている（ここでも、抽出する候補の数は、ステップＳ８のＩの値の倍数に設定するのが好ましい。本実施例では、Ｉ＝８としており、その４倍の３２候補を抽出するようにしている。）。
【００８２】
続くステップＳ５２は、図２１に示すステップＳ５２と全く同じであり、抽出した１６候補の中から、相関が最も強い要素信号を調和信号として選出する処理が行われる。ステップＳ４４では、上位３２候補が抽出されているが、ステップＳ５２では、そのうちの上位１６候補のみが利用されている。以下の手順は、図２１の手順と全く同様である。すなわち、ステップＳ９でパラメータｉが更新された後は、ステップＳ４４を実行する代わりに、ステップＳ９２が実行され、常に１６候補についての相関演算のみが行われることになる。したがって、この時点では、ステップＳ４４において抽出された上位３２候補のうち、第１７位〜第３２位までの候補は何ら利用されることはない。
【００８３】
こうして、パラメータｉが設定値Ｉに到達すると、当該単位区間についての処理は完了し、ステップＳ１０からステップＳ１１を経て、再びステップＳ２へと戻ることになる。ここで、新たな単位区間が設定され、新たな区間信号が抽出されるが、前述したように、新区間信号と旧区間信号とは、時間軸上で大部分が重複している。このように、過去にステップＳ４４で、旧区間信号に対して、１２８通りの要素信号についての相関演算が行われており、新区間信号と旧区間信号とが時間軸上で所定の時間以上にわたって重複している場合には、ステップＳ４３において、詳細演算は行わないこととし、ステップＳ４５へと進むようにする。このステップＳ４５では、１２８通りの要素信号についての相関を演算する代わりに、過去にステップＳ４４で抽出された３２候補の要素信号についての相関演算が行われ、その結果、上位１６候補が抽出される。以下、ステップＳ５２以降では、この１６候補の中から調和信号の選出が行われることになる。
【００８４】
このような手法を採れば、単位区間が更新されるごとに、１２８通りすべての要素信号についての相関演算を繰り返し行う必要がなくなり、演算負担はほぼ１／４程度に軽減されることになる。なお、この手法は、図２１に示す処理だけでなく、図１７，図２０に示す処理にも適用可能である。要するに、この手法では、第１の単位区間の区間信号についての調和信号を選出する際に、複数Ｘ通り（上例の場合Ｘ＝１２８）の要素信号の中から、区間信号に対する相関値の高い順に第１位〜第Ｚ位（上例の場合、Ｚ＝３２）までの複数Ｚ個（Ｚ＜Ｘ）の候補を選出しておき、この複数Ｚ個の候補の中から調和信号を選出するようにし、この第１の単位区間に対して時間軸上で所定の時間以上にわたって重複するような第２の単位区間の区間信号についての調和信号を選出する際には、複数Ｚ個の候補の中から調和信号を選出するようにすればよい。
【００８５】
ステップＳ４３において、詳細演算を行うか否かの判断基準は、単位区間のずれ量を考慮して適当な値を設定すればよく、たとえば、単位区間の区間長Ｌの半分の長さ（Ｌ／２）以上ずれるごとに、詳細演算を行うように設定しておけばよい。図４に示す例の場合であれば、１単位区間内のサンプル数が１０２４であるから、その半分の５１２サンプル以上ずれた場合に、詳細演算を行うようにすればよい。具体的には、この場合、１回の単位区間更新によって２０サンプル分ずれるので、ステップＳ１１における単位区間更新を約２５回行うたびに、詳細演算が行われることになる。
【００８６】
§６．周波数ゆらぎに対する対処方法
ビブラートを伴う楽器音や、人間の声音（ボーカル音）などには、微小な周波数ゆらぎが含まれている。ところが、これまで述べてきた手法では、要素信号をいずれも調和関数（正弦関数や余弦関数など、単一周波数をもった関数）によって構成していたため、微小な周波数ゆらぎを含んだ音響信号については、必ずしも正しい相関が得られない可能性がある。たとえば、１単位区間内において、ノートナンバーｎに対応する周波数ｆ（ｎ）から、ノートナンバー（ｎ＋１）に対応する周波数ｆ（ｎ＋１）に至までの周波数変動があった場合、この単位区間内の区間信号に対して、周波数ｆ（ｎ）をもった要素信号および周波数ｆ（ｎ＋１）をもった要素信号についての相関を調べると、いずれについても５０％程度の相関しか得られなくなってしまう。ここでは、このような周波数ゆらぎに対する対処方法について述べる。
【００８７】
(1).非調和関数を用いる対処方法
まず、要素信号として、調和関数だけでなく、非調和関数を用いる方法を述べる。図２３(a) には、代表的な調和関数である正弦波の波形が示されている。この正弦波は、単一の周波数ｆ（ｎ）をもった調和関数であり、サンプリング周波数をＦ、サンプル番号をｋとすれば、 sin（２πｆ（ｎ）ｋ／Ｆ）なる式で表される。これに対して、図２３(b) に示すような非調和関数を考えてみる。この非調和関数の周波数は、区間長Ｌにわたって徐々に変化している。すなわち、区間の左側では周波数が低く、区間の右側では周波数が高くなっており、周波数はサンプル番号ｋに依存して変わることになる。この非調和関数は、 sin（２πｆｊ（ｎ，ｋ）ｋ／Ｆ）なる式で表される。ここで、ｆｊ（ｎ，ｋ）は、図２３(c) に示す式で表される関数であり、ｊ＝−１，０，＋１である。
【００８８】
図２４は、関数ｆｊ（ｎ，ｋ）の意味を説明するための図であり、ｊ＝−１，０，＋１の３種類の場合に分けて、この意味が説明されている。たとえば、ｊ＝−１の場合、関数ｆｊ（ｎ，ｋ）＝（ｆ（ｎ−１）−ｆ（ｎ））ｋ／ｗ＋ｆ（ｎ）となる。ここで、ｋ＝０を代入すると、ｆｊ（ｎ，０）＝ｆ（ｎ）、ｋ＝ｗを代入すると、ｆｊ（ｎ，ｗ）＝ｆ（ｎ−１）となるので、図２４上段に示すように、区間長Ｌの左端では周波数ｆ（ｎ）、右端では周波数ｆ（ｎ−１）をもち、左から右へゆくにしたがって、周波数が徐々に減少する非調和関数になることがわかる。また、ｊ＝０の場合は、関数ｆｊ（ｎ，ｋ）＝ｆ（ｎ）となり、図２４中段に示すように、周波数が常に一定の調和関数（図２３(a) の正弦関数）になることがわかる。更に、ｊ＝＋１の場合、関数ｆｊ（ｎ，ｋ）＝（ｆ（ｎ＋１）−ｆ（ｎ））ｋ／ｗ＋ｆ（ｎ）となる。ここで、ｋ＝０を代入すると、ｆｊ（ｎ，０）＝ｆ（ｎ）、ｋ＝ｗを代入すると、ｆｊ（ｎ，ｗ）＝ｆ（ｎ＋１）となるので、図２４下段に示すように、区間長Ｌの左端では周波数ｆ（ｎ）、右端では周波数ｆ（ｎ＋１）をもち、左から右へゆくにしたがって、周波数が徐々に増加する非調和関数（図２３(b) に示すような関数）になることがわかる。
【００８９】
§４で述べた方法では、図８の下段の表に示すように、ノートナンバー０〜１２７に対応して、周波数ｆ（０）〜ｆ（１２７）をもった１２８通りの調和関数（正弦関数と余弦関数との合成関数）が要素信号として用意された。ここでは、この１２８通りの要素信号のそれぞれについて、図２３(c) に示す式におけるｊの値を−１と＋１にした非調和関数を用意する。たとえば、周波数ｆ（ｎ）については、図２３(a) に示すような正弦関数 sin（２πｆ（ｎ）ｋ／Ｆ）と、余弦関数 cos（２πｆ（ｎ）ｋ／Ｆ）との合成によって得られる第１の合成関数（ｊ＝０に相当する調和関数）と、ｊ＝−１に設定することにより定義される第２の合成関数（区間開始周波数ｆ（ｎ）から区間終了周波数ｆ（ｎ−１）に至るまで連続的に周波数が変化するような正弦関数と余弦関数との合成により得られる非調和関数）と、ｊ＝＋１に設定することにより定義される第３の合成関数（区間開始周波数ｆ（ｎ）から区間終了周波数ｆ（ｎ＋１）に至るまで連続的に周波数が変化するような正弦関数と余弦関数との合成により得られる非調和関数）と、の３通りの要素信号を用意する。結局、合計１２８×３通りの要素信号が用意されることになる。
【００９０】
そして、調和信号を選出するための相関演算（図１７のステップＳ４，図２０のステップＳ４１，図２１のステップＳ４２，Ｓ９２，図２２のステップＳ４４，Ｓ４５，Ｓ９２）においては、合計１２８×３通り（候補の絞り込みを行う場合には、１６×３通りまたは３２×３通り）の相関演算を行うようにする。そして、もし、ｊ＝−１あるいはｊ＝＋１に相当する非調和関数をもった要素信号との相関値が最大となった場合には、これに対応するｊ＝０に相当する調和関数をもった要素信号を調和信号として選出するようにする。このような方法を採れば、演算負担は３倍に増えることになるが、微小な周波数ゆらぎを含む音響信号に対しても、より正確な相関演算を行うことが可能になり、より正確な符号化が可能になる。
【００９１】
(2).中間の周波数を用いる対処方法
図８の下段の表に示した１２８通りの周波数ｆ（０）〜ｆ（１２７）は、ＭＩＤＩ符号のノートナンバーに対応した周波数であり、比例定数α（αは２の１２乗根）の等比級数をなしている。そこで、第ｎ番目の周波数ｆ（ｎ）について、周波数ｆ（ｎ）をもった正弦関数と余弦関数との合成により得られる第１の合成関数（図８の下段の表に掲載された関数）と、周波数ｆ（ｎ）＊βをもった正弦関数と余弦関数との合成により得られる第２の合成関数と、周波数ｆ（ｎ）／βをもった正弦関数と余弦関数との合成により得られる第３の合成関数と、を定義することにより、合計１２８×３通りの合成関数を用意し、これらを要素信号として用いることにする。ただし、１＜β＜平方根αとなるように設定する。そして、調和信号を選出するための相関演算（図１７のステップＳ４，図２０のステップＳ４１，図２１のステップＳ４２，Ｓ９２，図２２のステップＳ４４，Ｓ４５，Ｓ９２）においては、合計１２８×３通り（候補の絞り込みを行う場合には、１６×３通りまたは３２×３通り）の相関演算を行うようにする。そして、もし、第２の合成関数または第３の合成関数についての相関値が最も高いと判断された場合には、当該合成関数に対応する第１の合成関数を調和信号として選出する。このような方法を採れば、演算負担は３倍に増えることになるが、やはり微小な周波数ゆらぎを含む音響信号に対しても、より正確な相関演算を行うことが可能になり、より正確な符号化が可能になる。
【００９２】
図２５は、上述の手法をより具体的に示す図である。ここでは、β＝３乗根αに設定してある。周波数ｆを対数軸で示した場合、ノートナンバーは、図示のように、周波数軸上で等間隔に位置することになるが（ノートナンバーの間隔が等比級数の比例定数αになる）、β＝３乗根αに設定すると、周波数ｆ（ｎ）＊βおよびｆ（ｎ）／βは、それぞれ、ノートナンバーの間隔を３等分した位置にプロットされる。結局、ノートナンバーｎの近傍には、ノートナンバーｎ、ノートナンバー（ｎ＋１／３）、ノートナンバー（ｎ−１／３）に対応する３通りの周波数をもった要素信号が用意されるので、この３通りのいずれかについての相関が高いと認定された場合には、常に、ノートナンバーｎに対応する要素信号を調和信号として選出するようにすればよい（これは、ＭＩＤＩ符号データには、ノートナンバー（ｎ＋１／３）、ノートナンバー（ｎ−１／３）といった符号データは定義されていないため、ノートナンバーｎに代表させるためである）。
【００９３】
§７．オクターブ下降を利用した手法
一般に、高い周波数をもった要素信号との相関演算は、演算精度が低下する。これは、図２６に示す例のように、区間信号ｘと周波数ｆ（ｎ）の正弦波との相関をとる場合を考えると、周波数ｆ（ｎ）が高くなればなるほど、１周期あたりに対応するサンプル数が少なくなるためである。この程度高い周波数になると、周波数ｆ（ｎ）についての相関値と、周波数ｆ（ｎ＋１）についての相関値との間に、相違が出にくくなる。
【００９４】
このような問題に対処するためには、所定の周波数ｆをもった要素信号に対する相関を求める演算を行う代わりに、正弦関数および余弦関数についての倍角公式を用いることにより、周波数ｆ／２ｑ（ｑは所定の整数）をもった要素信号に対する相関を求める演算を行うようにすればよい。別言すれば、ｑオクターブ低い周波数の関数を用いた相関演算を行えばよい。図２７は、三角関数についての一般的な倍角公式であり、 sin２θについての演算を行う代わりに、２ sinθ・ cosθなる演算を利用することができ、また、 cos２θについての演算を行う代わりに、 cos２θ− sin２θなる演算を利用することができることを示している。そこで、たとえば、図２８に示すような式の置換が可能になる。ここで、左辺の sin（２πｆ（ｎ）ｋ／Ｆ）や、 cos（２πｆ（ｎ）ｋ／Ｆ）は、これまで述べてきた種々の式で用いられている関数であるが、これを右辺の式に置換すると、周波数ｆ（ｎ）を、周波数ｆ（ｎ−１２）に置換することができる。ＭＩＤＩにおいてノートナンバーが１２だけ隔たりをもつことは、１オクターブの隔たりをもつことに相当し（１２半音が１オクターブ）、周波数にして２倍の隔たりが生じることになる。
【００９５】
結局、図２９に示すように、ノートナンバー０〜１１までに対応する１２通りの周波数をもった三角関数を基本三角関数と呼ぶことにすれば、ノートナンバー１２以降に対応するすべての周波数をもった三角関数は、この基本三角関数を用いた演算に置き換えることが可能になる。そこで、本発明において、このオクターブ下降を利用した手法を利用すれば、常に、低い周波数をもった三角関数に対する相関演算を行うことができるようになり、より高い精度で相関を求めることが可能になる。
【００９６】
以上、本発明を図示する実施形態に基づいて説明したが、本発明はこれらの実施形態に限定されるものではなく、この他にも種々の態様で実施可能である。特に、上述した種々の符号化処理は、実際にはコンピュータを用いて実行されるものであり、本発明による符号化処理を実現するためのプログラムは、磁気ディスクや光ディスクなどのコンピュータ読み取り可能な記録媒体に記録して供給することができ、また、本発明による符号化処理によって符号化された符号データは、同様に、磁気ディスクや光ディスクなどのコンピュータ読み取り可能な記録媒体に記録して供給することができる。
【００９７】
【発明の効果】
以上のとおり本発明に係る音響信号の符号化方法によれば、ＭＩＤＩデータのような符号データへの変換を高い品質をもって行うことが可能になる。
【図面の簡単な説明】
【図１】先願発明に係る音響信号の符号化方法の基本原理を示す図である。
【図２】図１(c) に示す強度グラフに基いて作成された符号コードを示す図である。
【図３】時間軸上に部分的に重複するように単位区間設定を行うことにより作成された符号コードを示す図である。
【図４】時間軸上に部分的に重複するような単位区間設定の具体例を示す図である。
【図５】周波数軸を線形尺度で表示したフーリエスペクトルの一例を示すグラフである。
【図６】周波数軸を対数尺度で表示したフーリエスペクトルの一例を示すグラフである。
【図７】周波数軸を対数尺度で表示したフーリエスペクトルとノートナンバーとの対応関係を示すグラフである。
【図８】符号化の対象となる区間信号ｘと、これを分解するために用意された１２８通りの要素信号とを示す図である。
【図９】調和解析の基本方針を説明するための式を示す図である。
【図１０】フーリエスペクトルのピークに基づいて、最も相関の高い要素信号を調和信号として選出する概念を示す図である。
【図１１】選出された調和信号についての相関値を求めるための式を示す図である。
【図１２】選出された調和信号に基づいて、含有信号Ｇ（ｋ）を定義する式を示す図である。
【図１３】区間信号ｘと含有信号Ｇとの差分信号を求める例を示すグラフである。
【図１４】選出された調和信号についての相関値を求めるための一般式を示す図である。
【図１５】選出された調和信号に基づいて、含有信号Ｇｉ（ｋ）を定義する一般式を示す図である。
【図１６】区間信号ｘｉ（ｋ）と含有信号Ｇｉ（ｋ）との差分信号を、新たな区間信号ｘ（ｉ＋１）（ｋ）とする一般式を示す図である。
【図１７】本発明に係る音響信号の符号化方法の基本手順を示す流れ図である。
【図１８】フーリエ変換における一般的な相関値の決定原理を示す図である。
【図１９】本発明で利用する簡易相関演算法の基本原理を示す図である。
【図２０】簡易相関演算法を利用した音響信号の符号化方法の基本手順を示す流れ図である。
【図２１】要素信号候補を絞り込む手法を利用した音響信号の符号化方法の基本手順を示す流れ図である。
【図２２】要素信号候補を絞り込む手法を利用した音響信号の符号化方法の別な基本手順を示す流れ図である。
【図２３】調和関数ととも用意する非調和関数の例を示す図である。
【図２４】調和関数と非調和関数との関係を説明するための図である。
【図２５】中間周波数をもった要素信号を用意する例を説明するための図である。
【図２６】比較的高い周波数をもった正弦波に対する相関演算を示す図である。
【図２７】三角関数の倍角公式を示す図である。
【図２８】三角関数の倍角公式を利用した式の置換方法を示す図である。
【図２９】本発明に適用可能なオクターブ下降法を説明する図である。
【符号の説明】
Ａ…複素強度
Ａ（ｎ），Ｂ（ｎ）…係数（相関値）
ｄ１〜ｄ５…単位区間
Ｅ，Ｅ（ｎ），ＥＥ（ｎ）…実効強度
Error …誤差値
ｅ（ｉ，ｊ）…符号コードｎ（ｉ，ｊ）の実効強度
Ｆ…サンプリング周波数
ｆ，ｆ（ｎ）…周波数
Ｇ（ｋ）…含有信号
ｉ…繰り返し回数を示すパラメータ
Ｉ…所定回数値
ｊ…ピーク位置番号示すパラメータ／非調和関数を示すパラメータ
Ｊ…ピーク位置の総数
ｋ…１単位区間内のサンプル番号
Ｌ…単位区間の区間長
ΔＬ…オフセット長
Ｍ…測定ポイントの数
ｎ，ｎ１，ｎ２，ｎ３…ノートナンバー
ｎ（ｉ，ｊ）…単位区間ｄｉについて抽出された第ｊ番目の符号コード
Ｐ１〜Ｐ５…ピーク位置番号
Ｓ１（ｎ），Ｓ２（ｎ）…三角関数との相関値
ＳＳ１（ｎ），ＳＳ２（ｎ）…三角関数との簡易相関値
Ｔ１〜Ｔ３…トラック
ｔ１〜ｔ６…時刻
ｗ…１単位区間内のサンプル数
ｘ，ｘｉ…区間信号
ξ（ｋ）…近似関数
【図１】
0004132362.tif 000003
【図２】
0004132362.tif 000004
【図３】
0004132362.tif 000005
【図４】
0004132362.tif 000006
【図５】
0004132362.tif 000007
【図６】
0004132362.tif 000008
【図７】
0004132362.tif 000009
【図８】
0004132362.tif 000010
【図９】
0004132362.tif 000011
【図１０】
0004132362.tif 000012
【図１１】
0004132362.tif 000013
【図１２】
0004132362.tif 000014
【図１３】
0004132362.tif 000015
【図１４】
0004132362.tif 000016
【図１５】
0004132362.tif 000017
【図１６】
0004132362.tif 000018
【図１７】
0004132362.tif 000019
【図１８】
0004132362.tif 000020
【図１９】
0004132362.tif 000021
【図２０】
0004132362.tif 000022
【図２１】
0004132362.tif 000023
【図２２】
0004132362.tif 000024
【図２３】
0004132362.tif 000025
【図２４】
0004132362.tif 000026
【図２５】
0004132362.tif 000027
【図２６】
0004132362.tif 000028
【図２７】
0004132362.tif 000029
【図２８】
0004132362.tif 000030
【図２９】
0004132362.tif 000031