(57)【要約】【課題】従来、入力信号の周期を評価・検出する場合には、入力信号の全てのデータに対して評価・検出の処理を行っていたため、高速かつ正確に処理を行うことができなかった。【解決手段】入力信号の周期を検出する信号周期検出方法であって、前記入力信号から所定条件を満たすピークを複数抽出する工程ＳＴ３と、前記複数のピークの各々をシフト時間τだけシフトする工程ＳＴ５と、前記シフト前のピークと前記シフト後のピークとの相関関係に基づいて前記シフト時間τに関する評価値Ｓ（τ）を算出する工程ＳＴ６とを含んで成り、前記シフト時間τを順次変化させて前記評価値Ｓ（τ）を求め、当該評価値Ｓ（τ）に基づいて前記信号の周期を検出する信号周期検出方法によって上記課題を解決することができる。【選択図】　　　　図２
2004028730.tif 000002
【特許請求の範囲】
【請求項１】
入力信号の周期Ｔを検出する信号周期検出装置であって、
前記入力信号から所定条件を満たす複数の特徴点を抽出する手段と、
シフト時間τを順次変化させて、当該シフト時間τ毎に評価値Ｓ（τ）を算出する手段であって、
前記複数の特徴点の各々を前記シフト時間τだけシフトする手段と、
前記シフト前の特徴点と前記シフト後の特徴点との相関関係に基づいて前記シフト時間τに対する評価値Ｓ（τ）を算出する手段と、を含む手段と、
前記シフト時間τ毎に対して算出された評価値Ｓ（τ）に基づいて前記入力信号の周期Ｔを検出する手段と、
を含むことを特徴とする信号周期検出装置。
【請求項２】
請求項１に記載の信号周期検出装置において、
前記シフト前の特徴点と前記シフト後の特徴点との相関関係に基づいて前記シフト時間τに対する評価値Ｓ（τ）を算出する手段は、
前記シフト前の特徴点のうちから１つを順次選択し、前記シフト前の特徴点毎に相関値を算出する手段であって、
前記シフト後の特徴点のうちから、前記選択されたシフト前の特徴点と所定条件を満たす前記シフト後の特徴点を順次選択し、前記選択されたシフト前の特徴点と前記選択されたシフト後の特徴点との時間差に基づいて、前記選択されたシフト前の特徴点に対する相関値を算出する手段と、
前記シフト前の特徴点毎に算出された相関値に基づいて、前記シフト時間τに対する評価値Ｓ（τ）を算出する手段と、
を含むことを特徴とする信号周期検出装置。
【請求項３】
請求項１に記載の信号周期検出装置において、
前記シフト前の特徴点と前記シフト後の特徴点との相関関係に基づいて前記シフト時間τに対する評価値Ｓ（τ）を算出する手段は、
前記シフト前の特徴点のうちから１つを順次選択し、前記シフト前の特徴点毎に相関値を算出する手段であって、
前記シフト後の特徴点のうちから、前記選択されたシフト前の特徴点と所定条件を満たす前記シフト後の特徴点を順次選択し、前記選択されたシフト前の特徴点の信号強度及び出現時刻と前記選択されたシフト後の特徴点の信号強度及び出現時刻とに基づいて、前記選択されたシフト前の特徴点に対する相関値を算出する手段と、
前記シフト前の特徴点毎に算出された相関値に基づいて、前記シフト時間τに対する評価値Ｓ（τ）を算出する手段と、
を含むことを特徴とする信号周期検出装置。
【請求項４】
入力信号の周期Ｔを検出する信号周期検出方法であって、
前記入力信号から所定条件を満たす複数の特徴点を抽出する工程と、
シフト時間τを順次変化させて、当該シフト時間τ毎に評価値Ｓ（τ）を算出する工程であって、
前記複数の特徴点の各々を前記シフト時間τだけシフトする工程と、
前記シフト前の特徴点と前記シフト後の特徴点との相関関係に基づいて前記シフト時間τに対する評価値Ｓ（τ）を算出する工程と、を含む工程と、
前記シフト時間τ毎に算出された評価値Ｓ（τ）に基づいて前記入力信号の周期Ｔを検出する工程と、
を含むことを特徴とする信号周期検出方法。
【請求項５】
請求項４に記載の信号周期検出方法において、
前記シフト前の特徴点と前記シフト後の特徴点との相関関係に基づいて前記シフト時間τに対する評価値Ｓ（τ）を算出する工程は、
前記シフト前の特徴点のうちから１つを順次選択し、前記シフト前の特徴点毎に相関値を算出する工程であって、
前記シフト後の特徴点のうちから、前記選択されたシフト前の特徴点と所定条件を満たす前記シフト後の特徴点を順次選択し、前記選択されたシフト前の特徴点と前記選択されたシフト後の特徴点との時間差に基づいて、前記選択されたシフト前の特徴点に対する相関値を算出する工程と、
前記シフト前の特徴点毎に算出された相関値に基づいて、前記シフト時間τに対する評価値Ｓ（τ）を算出する工程と、
を含むことを特徴とする信号周期検出方法。
【請求項６】
請求項４に記載の信号周期検出方法において、
前記シフト前の特徴点と前記シフト後の特徴点との相関関係に基づいて前記シフト時間τに対する評価値Ｓ（τ）を算出する工程は、
前記シフト前の特徴点のうちから１つを順次選択し、前記シフト前の特徴点毎に相関値を算出する工程であって、
前記シフト後の特徴点のうちから、前記選択されたシフト前の特徴点と所定条件を満たす前記シフト後の特徴点を順次選択し、前記選択されたシフト前の特徴点の信号強度及び出現時刻と前記選択されたシフト後の特徴点の信号強度及び出現時刻とに基づいて、前記選択されたシフト前の特徴点に対する相関値を算出する工程と、
前記シフト前の特徴点毎に算出された相関値に基づいて、前記シフト時間τに対する評価値Ｓ（τ）を算出する工程と、
を含むことを特徴とする信号周期検出方法。
【請求項７】
入力信号の周期Ｔを検出する信号周期検出プログラムであって、
コンピュータに、
前記入力信号から所定条件を満たす複数の特徴点を抽出する工程と、
シフト時間τを順次変化させて、当該シフト時間τ毎に評価値Ｓ（τ）を算出する工程であって、
前記複数の特徴点の各々を前記シフト時間τだけシフトする工程と、
前記シフト前の特徴点と前記シフト後の特徴点との相関関係に基づいて前記シフト時間τに対する評価値Ｓ（τ）を算出する工程と、を含む工程と、
前記シフト時間τ毎に算出された評価値Ｓ（τ）に基づいて前記入力信号の周期Ｔを検出する工程と、
を含む処理を実行させることを特徴とする信号周期検出プログラム。
【請求項８】
請求項７に記載の信号周期検出プログラムにおいて、
前記シフト前の特徴点と前記シフト後の特徴点との相関関係に基づいて前記シフト時間τに対する評価値Ｓ（τ）を算出する工程は、
前記シフト前の特徴点のうちから１つを順次選択し、前記シフト前の特徴点毎に相関値を算出する工程であって、
前記シフト後の特徴点のうちから、前記選択されたシフト前の特徴点と所定条件を満たす前記シフト後の特徴点を順次選択し、前記選択されたシフト前の特徴点と前記選択されたシフト後の特徴点との時間差に基づいて、前記選択されたシフト前の特徴点に対する相関値を算出する工程と、
前記シフト前の特徴点毎に算出された相関値に基づいて、前記シフト時間τに対する評価値Ｓ（τ）を算出する工程と、
を含むことを特徴とする信号周期検出プログラム。
【請求項９】
請求項７に記載の信号周期検出プログラムにおいて、
前記シフト前の特徴点と前記シフト後の特徴点との相関関係に基づいて前記シフト時間τに対する評価値Ｓ（τ）を算出する工程は、
前記シフト前の特徴点のうちから１つを順次選択し、前記シフト前の特徴点毎に相関値を算出する工程であって、
前記シフト後の特徴点のうちから、前記選択されたシフト前の特徴点と所定条件を満たす前記シフト後の特徴点を順次選択し、前記選択されたシフト前の特徴点の信号強度及び出現時刻と前記選択されたシフト後の特徴点の信号強度及び出現時刻とに基づいて、前記選択されたシフト前の特徴点に対する相関値を算出する工程と、
前記シフト前の特徴点毎に算出された相関値に基づいて、前記シフト時間τに対する評価値Ｓ（τ）を算出する工程と、
を含むことを特徴とする信号周期検出プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、高速かつ正確に入力信号の周期を検出する信号周期検出装置、信号周期検出方法および信号周期検出プログラムに関する。
【０００２】
【従来の技術】
音楽信号のようにパルス状のピークが周期的に現れる入力信号に対して、周期性の評価または周期の検出を行うために、一般的に自己相関関数の演算を実行する方法が用いられている。また、別の方法として、入力信号からピークを抽出し、そのピークの時間間隔を統計的に処理する方法も広く用いられている。
【０００３】
特開昭６２−２７００００号公報には、自己相関関数を用いた入力信号の周期検出方法が開示されている。自己相関関数とは、入力信号をシフト時間τだけ時間的にシフトした信号を求め、各時刻におけるシフト前の入力信号とシフト後の信号の積を信号全体にわたって加算する関数をいう。周期性Ｔの周期性をもった信号に対して自己相関関数を演算すると、周期Ｔの整数倍のシフト時間τにおいて極大値を示す自己相関値を得ることができる。従って、この自己相関値を信号の周期性の評価に利用し、自己相関値が最大となるシフト時間τを信号の周期として検出することができる。
【０００４】
また、特開平５−２６５４９０号公報には、自己相関関数を用いた周期性の評価方法を改良したものとして、シフト前の信号とシフト後との差分を算出し、その差分を信号全体に対して加算することによって、信号の周期を求める手段が開示されている。この方法では、通常の自己相関関数の算出のように乗算を必要とせず、加減算のみで処理を行うことができるために、高速処理に対して有利である。
【０００５】
一方、信号に存在するピークの時間間隔を統計処理することによって周期を求める方法が知られている。例えば、ピーク間隔の平均値から信号の周期を求める方法やピーク間隔が近似するピークの度数分布から信号の周期を求める方法が挙げられる。
【０００６】
ピーク間隔の平均値から周期を検出する方法では、信号中にピークが現れる時刻を検出し、連続して現れる２つのピーク間の時間間隔をそれぞれ求め、それらの平均値を信号の周期とする。また、ピーク度数分布を求める方法では、連続して現れるピーク間の時間間隔を求め、最も頻度が高い時間間隔を信号の周期とする。
【０００７】
【発明が解決しようとする課題】
しかしながら、特開昭６２−２７００００号公報に記載の技術においては、入力信号全体に対して乗算を伴う演算を繰り返す必要があるため、演算処理時間が長くなり、さらに大容量の記憶装置や高性能の演算装置を必要とする問題がある。特開平５−２６５４９０号公報に開示された方法においても、計算量を多少は軽減できるものの、依然として信号全体に対して演算処理を行う必要があり、上記問題は解消されない。
【０００８】
また、ベースギター等の音楽楽器から発せられた音などでは、図８のように、周期Ｔ毎に現れる主ピークに伴って、周期性をもった減衰振動がみられる。このように、主ピークの周期Ｔに加えて、異なった周期性を有する信号に対して自己相関関数を演算すると、図９のように、信号の主ピークの周期Ｔに対するピークに加えて、減衰振動に起因する周期性のノイズが現れる。実際の音楽信号などでは、主ピークの周期性のばらつきや減衰振動の強弱によって、信号の周期の検出に誤りを生ずる可能性がある。同様に、入力信号が急激に立ち上がった場合のオーバーシュートに伴う振動によっても正確な評価が困難となる。
【０００９】
一方、従来のピーク間隔を統計処理する方法では、信号中のピークのみに対して演算を行うため演算量は少なくできる。しかしながら、例えば、図１０（ａ）のように、信号の周期Ｔが１．５拍、１．５拍および１拍の組合せからなる周期Ｔ（＝４拍）を有する音楽は図１０（ｂ）のような信号となり、このとき、信号のピーク間隔の平均値を取ると１．３３拍となり、正しい周期Ｔを得ることができない。また、ピーク度数の分布から周期を求める場合でも、最も頻度が高いピーク間隔は１．５拍と検出され、正確な周期を求めることができない。
【００１０】
さらに、ピーク間隔の平均を取る方法では、外乱などにより信号からピークが抜けたり、ノイズが重畳した場合に演算結果に誤差を生ずる問題がある。
【００１１】
本発明は、上記従来技術の課題を鑑みて、少ない計算量によって正確かつ高速に信号の周期を検出できる信号周期検出装置、信号周期検出方法および信号周期検出プログラムを提供することを目的とする。
【００１２】
【課題を解決するための手段】
上記課題を解決するための本発明は、入力信号の周期Ｔを検出する信号周期検出装置であって、前記入力信号から所定条件を満たす複数の特徴点を抽出する手段と、シフト時間τを順次変化させて、当該シフト時間τ毎に評価値Ｓ（τ）を算出する手段であって、前記複数の特徴点の各々を前記シフト時間τだけシフトする手段と、前記シフト前の特徴点と前記シフト後の特徴点との相関関係に基づいて前記シフト時間τに対する評価値Ｓ（τ）を算出する手段と、を含む手段と、前記シフト時間τ毎に対して算出された評価値Ｓ（τ）に基づいて前記入力信号の周期Ｔを検出する手段とを含むことを特徴とする。
【００１３】
さらに、上記信号周期検出装置において、前記シフト前の特徴点と前記シフト後の特徴点との相関関係に基づいて前記シフト時間τに対する評価値Ｓ（τ）を算出する手段は、前記シフト前の特徴点のうちから１つを順次選択し、前記シフト前の特徴点毎に相関値を算出する手段であって、前記シフト後の特徴点のうちから、前記選択されたシフト前の特徴点と所定条件を満たす前記シフト後の特徴点を順次選択し、前記選択されたシフト前の特徴点と前記選択されたシフト後の特徴点との時間差に基づいて、前記選択されたシフト前の特徴点に対する相関値を算出する手段と、前記シフト前の特徴点毎に算出された相関値に基づいて、前記シフト時間τに対する評価値Ｓ（τ）を算出する手段とを含むことが好適である。
【００１４】
また、上記信号周期検出装置において、前記シフト前の特徴点と前記シフト後の特徴点との相関関係に基づいて前記シフト時間τに対する評価値Ｓ（τ）を算出する手段は、前記シフト前の特徴点のうちから１つを順次選択し、前記シフト前の特徴点毎に相関値を算出する手段であって、前記シフト後の特徴点のうちから、前記選択されたシフト前の特徴点と所定条件を満たす前記シフト後の特徴点を順次選択し、前記選択されたシフト前の特徴点の信号強度及び出現時刻と前記選択されたシフト後の特徴点の信号強度及び出現時刻とに基づいて、前記選択されたシフト前の特徴点に対する相関値を算出する手段と、前記シフト前の特徴点毎に算出された相関値に基づいて、前記シフト時間τに対する評価値Ｓ（τ）を算出する手段とを含むことも好適である。
【００１５】
上記課題を解決するための本発明は、入力信号の周期Ｔを検出する信号周期検出方法であって、前記入力信号から所定条件を満たす複数の特徴点を抽出する工程と、シフト時間τを順次変化させて、当該シフト時間τ毎に評価値Ｓ（τ）を算出する工程であって、前記複数の特徴点の各々を前記シフト時間τだけシフトする工程と、前記シフト前の特徴点と前記シフト後の特徴点との相関関係に基づいて前記シフト時間τに対する評価値Ｓ（τ）を算出する工程と、を含む工程と、前記シフト時間τ毎に算出された評価値Ｓ（τ）に基づいて前記入力信号の周期Ｔを検出する工程とを含むことを特徴とする。
【００１６】
さらに、上記信号周期検出方法において、前記シフト前の特徴点と前記シフト後の特徴点との相関関係に基づいて前記シフト時間τに対する評価値Ｓ（τ）を算出する工程は、前記シフト前の特徴点のうちから１つを順次選択し、前記シフト前の特徴点毎に相関値を算出する工程であって、前記シフト後の特徴点のうちから、前記選択されたシフト前の特徴点と所定条件を満たす前記シフト後の特徴点を順次選択し、前記選択されたシフト前の特徴点と前記選択されたシフト後の特徴点との時間差に基づいて、前記選択されたシフト前の特徴点に対する相関値を算出する工程と、前記シフト前の特徴点毎に算出された相関値に基づいて、前記シフト時間τに対する評価値Ｓ（τ）を算出する工程とを含むことが好適である。
【００１７】
また、上記信号周期検出方法において、前記シフト前の特徴点と前記シフト後の特徴点との相関関係に基づいて前記シフト時間τに対する評価値Ｓ（τ）を算出する工程は、前記シフト前の特徴点のうちから１つを順次選択し、前記シフト前の特徴点毎に相関値を算出する工程であって、前記シフト後の特徴点のうちから、前記選択されたシフト前の特徴点と所定条件を満たす前記シフト後の特徴点を順次選択し、前記選択されたシフト前の特徴点の信号強度及び出現時刻と前記選択されたシフト後の特徴点の信号強度及び出現時刻とに基づいて、前記選択されたシフト前の特徴点に対する相関値を算出する工程と、前記シフト前の特徴点毎に算出された相関値に基づいて、前記シフト時間τに対する評価値Ｓ（τ）を算出する工程とを含むことも好適である。
【００１８】
上記課題を解決するための本発明は、入力信号の周期Ｔを検出する信号周期検出プログラムであって、コンピュータに、前記入力信号から所定条件を満たす複数の特徴点を抽出する工程と、シフト時間τを順次変化させて、当該シフト時間τ毎に評価値Ｓ（τ）を算出する工程であって、前記複数の特徴点の各々を前記シフト時間τだけシフトする工程と、前記シフト前の特徴点と前記シフト後の特徴点との相関関係に基づいて前記シフト時間τに対する評価値Ｓ（τ）を算出する工程と、を含む工程と、前記シフト時間τ毎に算出された評価値Ｓ（τ）に基づいて前記入力信号の周期Ｔを検出する工程とを含む処理を実行させることを特徴とする。
【００１９】
さらに、上記信号周期検出プログラムにおいて、前記シフト前の特徴点と前記シフト後の特徴点との相関関係に基づいて前記シフト時間τに対する評価値Ｓ（τ）を算出する工程は、前記シフト前の特徴点のうちから１つを順次選択し、前記シフト前の特徴点毎に相関値を算出する工程であって、前記シフト後の特徴点のうちから、前記選択されたシフト前の特徴点と所定条件を満たす前記シフト後の特徴点を順次選択し、前記選択されたシフト前の特徴点と前記選択されたシフト後の特徴点との時間差に基づいて、前記選択されたシフト前の特徴点に対する相関値を算出する工程と、前記シフト前の特徴点毎に算出された相関値に基づいて、前記シフト時間τに対する評価値Ｓ（τ）を算出する工程とを含むことが好適である。
【００２０】
また、上記信号周期検出プログラムにおいて、前記シフト前の特徴点と前記シフト後の特徴点との相関関係に基づいて前記シフト時間τに対する評価値Ｓ（τ）を算出する工程は、前記シフト前の特徴点のうちから１つを順次選択し、前記シフト前の特徴点毎に相関値を算出する工程であって、前記シフト後の特徴点のうちから、前記選択されたシフト前の特徴点と所定条件を満たす前記シフト後の特徴点を順次選択し、前記選択されたシフト前の特徴点の信号強度及び出現時刻と前記選択されたシフト後の特徴点の信号強度及び出現時刻とに基づいて、前記選択されたシフト前の特徴点に対する相関値を算出する工程と、前記シフト前の特徴点毎に算出された相関値に基づいて、前記シフト時間τに対する評価値Ｓ（τ）を算出する工程とを含むことも好適である。
【００２１】
【発明の実施の形態】
本発明実施の形態における信号周期検出装置について、図を参照して詳細に説明する。本実施の形態の信号周期検出装置は、入力信号を音声としてマイクロフォンから入力し、その入力信号の周期を検出する。
【００２２】
信号周期検出装置１００は、図１のように、制御部１０、記憶部１２、出力部１４、入力部１６、データインターフェース部１８およびバス２０から基本的に構成される。制御部１０、記憶部１２、出力部１４および入力部１６はバス２０を介して情報伝達可能に接続されている。また、信号周期検出装置１００は、データインターフェース部１８を介して外部のマイクロフォン２２と接続される。
【００２３】
制御部１０は、記憶部１２に格納されている信号周期検出プログラムを実行することによって、記憶部１２にデータとして格納された入力信号を取り出し、またはデータインターフェース部１８からのデータとして受け、そのデータに対して演算および処理を行う。処理された結果は、記憶部１２または出力部１４へ出力される。
【００２４】
記憶部１２は、信号周期検出プログラム、データおよび処理結果などを格納する。格納されたプログラムやデータは、制御部１０によって適宜読み出され、実行または処理される。記憶部１２には、ＲＡＭやＲＯＭなどの半導体メモリ、ハードディスク、光磁気ディスク、ディジタルオーディオテープ（ＤＡＴ）又は磁気テープなどの一般的な記憶装置を適宜選択して用いることができる。
【００２５】
出力部１４は、制御部１０で検出された信号の周期をユーザが確認できる態様で表示する。出力部１４には、ディスプレイやプリンタ等の一般的な出力装置を適宜選択して用いることができる。
【００２６】
入力部１６は、制御部１０に対するユーザからのコマンドの入力に用いられる。例えば、データ処理の開始などの制御コマンドが入力される。入力部１６には、キーボードやマウス等の一般的な入力装置を適宜選択して用いることができる。
【００２７】
データインターフェース部１８は、マイクロフォン２２から入力された音声信号を制御部１０で処理可能なデータに変換する。例えば、データインターフェース部１８はアナログ／デジタル変換（Ａ／Ｄ変換）装置を含み、マイクロフォン２２から入力されたアナログ信号をデジタル信号に変換し、制御部１０へ出力する。
【００２８】
以下に、信号周期検出装置１００を用いた信号周期の検出方法を、図２を参照して詳細に説明する。
【００２９】
信号周期検出方法はプログラムとしてコード化し、記憶部１２に格納及び保持し、制御部１０によって実行することができる。
【００３０】
本実施の形態では、信号から特徴点を抽出し、その特徴点の周期的な出現を調べることによって、信号の周期性を検出する。より具体的には、抽出された特徴点をシフト時間τだけ時間的にシフトした場合に、シフト前の特徴点とシフト後の特徴点との重なり具合を評価値Ｓ（τ）として算出する。その評価値Ｓ（τ）は入力信号の周期を評価する指標として用いることができ、例えば、評価値Ｓ（τ）の値が最も高いシフト時間τを信号の周期として検出することができる。
【００３１】
特徴点としては、例えば、信号に含まれるピーク、信号の時間的変化の変極点等が挙げられる。以下の説明においては、特徴点としてピークを用いた場合について説明を行う。
【００３２】
ステップＳＴ１では、周期の評価に用いるシフト時間τの設定を行う。処理の初期設定時には、シフト時間τを増減値Δτとする。ステップＳＴ７から処理が戻ってきた場合は、シフト時間τの値をさらに増減値Δτだけ増加させる。
【００３３】
増減値Δτは、入力信号の周期がある程度予想できる場合には、その予想される周期よりも十分短い時間を設定する。入力信号の周期が予め予想できない場合には、入力信号のサンプリング間隔の最小値を設定することが好ましい。
【００３４】
ステップＳＴ２では、マイクロフォン２２から処理の対象となる信号を入力する。マイクロフォン２２では、図３に示すように、入力信号はアナログ信号として入力される。データインターフェース部１８では、マイクロフォン２２から受けた入力信号を所定のサンプリング間隔でデジタルの信号データへ変換する。このとき、サンプリング間隔は、入力信号の周期よりも十分短いことが好ましい。入力信号のサンプリングデータは記憶部１２に格納・記憶される。
【００３５】
このとき、以後の処理を容易にするために、予備的な処理を行っておくことも好適である。例えば、信号の周期Ｔがある程度予想できる場合は、信号を周波数フィルタに通し、不要な高周波成分および低周波成分を除去しておくことによって、周期の検出の確度を向上することができる。また、信号を二乗処理することで負の値とならないようにし、平滑化処理によって信号変化を滑らかにしておくことも好ましい。これらは、良く知られた既存の電子回路またはコンピュータ処理によって実現できる。
【００３６】
ステップＳＴ３では、制御部１０において、記憶部１２に格納された入力信号からピークを抽出する。本実施の形態では、図３のように、所定の閾値を定め、その閾値を超える範囲をピーク領域とみなし、そのピーク領域から最大値を持つ点をピークとして抽出する。また、そのピークが現れる時刻をピーク時刻とする。ここで、閾値は、入力信号の平均値や最大値などを基準として定めることができる。例えば、平均値をそのまま閾値とし、又は、最大値の３０％の値を閾値とすることが好適である。
【００３７】
入力信号全体に対して、図４（ａ）に示すように、Ｐ１・・・Ｐｉ−１，Ｐｉのピーク列が抽出され、それぞれのピークが出現する時刻がピーク時刻Ｔ１・・・Ｔｉ−１，Ｔｉとして求められる。
【００３８】
ステップＳＴ４では、ステップＳＴ３で抽出されたピーク列およびピーク時刻を記憶部１２に格納・記憶する。
【００３９】
ステップＳＴ５では、ステップＳＴ３で得られたピークの各々を一律にシフト時間τだけ時間的にシフトさせる。例えば、図４（ａ）に示したピークＰｉをシフト時間τだけシフトさせた場合、時刻Ｔｉ＋τに出現するピークＰ’ｉとなる。他のピークについても同様の処理を行うことによって、図４（ｂ）に示すようなシフト後のピーク列Ｐ’１・・・Ｐ’ｉを得ることができる。また、これらのピーク列に対するピーク時刻Ｔ’１・・・Ｔ’ｉが求められる。
【００４０】
ステップＳＴ６では、シフト前のピーク列とシフト後のピーク列の相関関係をシフト時間τの関数である評価値Ｓ（τ）として演算する。図５に、ステップＳＴ６における処理をサブルーチンとして示す。
【００４１】
ステップＳＴ６０１では、評価値Ｓ（τ）およびパラメータが初期化される。パラメータｉおよびｊは１に設定され、評価値Ｓ（τ）およびパラメータｋは０に設定される。また、ピーク列に含まれるピーク数をｉｍａｘとする。パラメータｉ，ｊおよびｋを順次変化させ、シフト前のピークＰｉとシフト後のピークＰ’（ｊ＋ｋ）の時間差に基づいて評価値Ｓ（τ）を求める。
【００４２】
ステップＳＴ６０２では、パラメータｊ＋ｋの値がｉｍａｘを超えている場合、シフト後の最後のピークＰ’ｉｍａｘまで既に評価が終了しているので、ステップＳＴ６０７へ処理を移行する。
【００４３】
ステップＳＴ６０３では、シフト前のｉ番目のピークＰｉとシフト後のｊ＋ｋ番目のピークＰ’（ｊ＋ｋ）との時間差を算出し、その値が評価ウィンドウ内に収まっているか否かが判断される。ピークＰｉとピークＰ’（ｊ＋ｋ）との時間差が評価ウィンドウ内に収まっていれば、それらのピーク間の時間差に基づいて相関値Ｓｋを求める。評価ウィンドウ内に収まっていなければ相関値Ｓｋを求めない。
【００４４】
本実施の形態では、シフト前のピークＰｉのピーク時刻Ｔｉの前後Ｗ／２を評価ウィンドウとした。時間幅Ｗは、信号周期の検出に必要とされる確度、信号周期検出装置１００の記憶容量又は処理速度に応じて適宜定めることができる。時間幅Ｗを大きくすれば、ピークＰｉから大きく離れた時刻におけるピークＰ’（ｊ＋ｋ）も周期の評価に加えられ、評価をより確度良く行うことができる。しかし、処理に必要な記憶容量が増加し、処理時間も長くなる。反対に、時間幅Ｗを小さくすれば、ピークＰｉに近いピークＰ’（ｊ＋ｋ）のみが評価の対象となり、評価の確度が低下するが、必要な記憶容量は少なくなり、処理時間も短くできる。また、許容される処理時間が十分に長い場合には、評価ウィンドウを設けずに、全てのピークに対して処理を行っても良い。
【００４５】
シフト後のピークＰ’（ｊ＋ｋ）の時刻Ｔ’（ｊ＋ｋ）が評価ウィンドウ内にある場合、すなわちＴｉ−Ｗ／２≦Ｔ’（ｊ＋ｋ）≦Ｔｉ＋Ｗ／２の条件が満たされる場合には、ステップＳＴ６０４に処理を移行する。時刻Ｔ’（ｊ＋ｋ）が評価ウィンドウよりも以前にある場合、すなわちＴ’（ｊ＋ｋ）＜Ｔｉ−Ｗ／２の条件が満たされる場合には、ステップＳＴ６０６に処理を移行する。時刻Ｔ’（ｊ＋ｋ）が評価ウィンドウよりも以後にある場合、すなわちＴｉ＋Ｗ／２＜Ｔ’（ｊ＋ｋ）の条件が満たされる場合には、ステップＳＴ６０７に処理を移行する。
【００４６】
ステップＳＴ６０４では、シフト前のピークＰｉとシフト後のピークＰ’（ｊ＋ｋ）との相関関係が相関値Ｓｋとして求められる。相関値Ｓｋは、例えば数式（１）のように、ピーク時刻Ｔｉとピーク時刻Ｔ’（ｊ＋ｋ）との時間差の関数値とすることが好適である。
【数１】
Ｓｋ＝ｍａｘ（０，Ｒ−｜Ｔｉ−Ｔ’（ｊ＋ｋ）｜）・・・・・・（１）
【００４７】
但し、ｍａｘ（ａ，ｂ）はａまたはｂのいずれか大きい値を出力する関数、Ｒは任意の定数とする。
【００４８】
相関値Ｓｋの算出方法はこれに限られるものではない。例えば、数式（２）のように、時間差とピーク強度の積の関数とすることも好適である。
【数２】
Ｓｋ＝ｍａｘ（０，Ｒ−｜Ｐｉ・Ｔｉ−Ｐ’（ｊ＋ｋ）・Ｔ’（ｊ＋ｋ）｜）・・・（２）
【００４９】
ステップＳＴ６０５では、ｋの値を１だけ増加させ、ステップＳＴ６０２へ処理を戻す。これにより、次のシフト後のピークとの相関値の算出処理に移行する。
【００５０】
ステップＳＴ６０６では、ｊの値を１だけ増加させて、ステップＳＴ６０２へ処理を戻す。すなわち、ステップＳＴ６０３において、ピークＰ’（ｊ＋ｋ）が評価ウィンドウ内にないものと判断されたので、相関値Ｓｋを算出することなく次のシフト後のピークとの相関値の算出処理に移行する。
【００５１】
ステップＳＴ６０７では、各相関値Ｓｋに基づいて評価値Ｓ（τ）をシフト時間τの関数として算出する。例えば、相関値Ｓ１，Ｓ２・・・Ｓｋの値の平均値をＳ（τ）に加算する。評価値Ｓ（τ）の計算方法はこれに限られるものではなく、相関値Ｓ１，Ｓ２・・・Ｓｋの最大値をＳ（τ）に加算する等の他の方法を用いることも好適である。
【００５２】
ステップＳＴ６０８では、ｉの値を１だけ増加し、ｋの値を０に戻す。
【００５３】
ステップＳＴ６０９では、ｉの値がピーク数ｉｍａｘを超えているか否かを判断する。ｉの値がピーク数ｉｍａｘを超えている場合は、シフト前の全てのピークに対する相関値が評価値Ｓ（τ）に反映されているので、サブルーチンでの処理を終了する。ｉの値がピーク数ｉｍａｘ以内にある場合には、ステップＳＴ６０２へ処理を戻し、次のシフト前のピークに対する処理を行う。
【００５４】
サブルーチンによって求められた評価値Ｓ（τ）は記憶部１２へ格納・記憶され、メインルーチンのステップＳＴ７へ処理が移行する。
【００５５】
ステップＳＴ７では、制御部１０において、現在のシフト時間τとτｍａｘが比較され、τがτｍａｘより大きければステップＳＴ８へ処理を移行する。τがτｍａｘ以下であればステップＳＴ１へ処理を戻す。τｍａｘとしては、例えば、信号の周期として考えられる最大値を予め設定しておく。
【００５６】
ステップＳＴ８では、評価値Ｓ（τ）から信号の周期Ｔを検出する。評価値Ｓ（τ）が一番大きな値を示すときのシフト時間τを周期Ｔとする。
【００５７】
例えば、図８に示した音楽信号に対して、異なるシフト時間τについて評価値Ｓ（τ）を算出した結果を図６に示す。ピーク検出の閾値は、信号の最大強度の３０％とした。相関値の計算には数式（１）を用い、Ｒの値は３とした。
【００５８】
シフト時間τと評価値Ｓ（τ）との関係について、図６と図９を比較すると、本実施の形態を用いた方が周期Ｔにおけるピークがより明確に検出できることが分かる。また、従来の自己相関関数を用いた処理と、本実施の形態の処理に要した計算量と記憶容量の使用量を表１に示す。従来技術に比べて本実施の形態では、計算量および記憶容量の使用量を大幅に減少させることができる。
【表１】
2004028730.tif 000003
【００５９】
さらに、図１０（ｂ）に示した信号に対して、評価値Ｓ（τ）を算出した結果を図７に示す。ピーク検出の閾値は、信号の最大値の３０％とした。相関値の計算には数式（１）を用い、Ｒの値は０．４とした。
【００６０】
図１０（ｂ）のように、異なるピーク間隔の組合せによって信号の周期が定められる場合においても、評価値Ｓ（τ）が一番大きな値を示すのは、シフト時間τが４拍のときであり、これが信号の周期Ｔと検出される。すなわち、ピークを４拍だけシフトした場合に、シフト前とシフト後のピーク列の類似性が高くなり、評価値Ｓ（τ）の値が大きくなる。
【００６１】
検出された評価値Ｓ（τ）または信号の周期Ｔは、出力部１４においてユーザが確認可能な態様で出力される。また、記憶部１２に、他の処理で使用できるデータとして格納・記憶しても良い。評価値Ｓ（τ）は、対象信号について固有の値を有するが、例えば、シフト時間τ＝０の場合の評価値Ｓ（τ＝０）を求めて、そのＳ（０）によって評価値Ｓ（τ）を正規化することによって、評価値Ｓ（τ）に汎用性を持たせることもできる。
【００６２】
以上のように、本実施の形態によれば、予め信号から顕著なピーク列を抽出しておき、そのピーク列に対して処理を行うことによって、信号の周期を検出することができる。
【００６３】
本実施の形態では、入力信号はマイクロフォン２２を通じて音声信号として信号周期検出装置１００へ取り込んだが、入力信号の形態としてはこれに限られるものではない。例えば、予め記憶部１２へ信号をデータとして記憶しておいても良いし、信号周期検出装置１００をネットワークへ接続しておき、そのネットワークを介して既存の信号のデータを取り込んで処理を施しても良い。
【００６４】
例えば、ベルトコンベア上を流れる商品等の個数を検知する赤外線検知装置等から出力される周期的な信号に対して、その信号の周期を検出する場合等に適用することも可能である。
【００６５】
本実施の形態では、所定の閾値を超えるピーク領域の最大点をピークとして抽出したが、入力信号の態様によって異なる信号の特徴点を抽出して処理を行っても良い。例えば、極小値をとる信号部分や信号の変極点等を特徴点として抽出しても同様の作用および効果を得ることができる。
【００６６】
以上のように、本実施の形態によれば、信号の変化がなだらかな場合やピークとして抽出された部分のノイズが高い場合にも、これらの影響を受けることなく信頼性高く評価値を求められ、正確に信号の周期を検出することができる。また、異なるピーク間隔の組合せによって全体の周期が定まる場合でも、正確に信号の周期を求めることができる。さらに、全てのサンプリングデータに対して自己相関関数の計算を行う必要がなく、処理に必要な記憶容量を小さくでき、高速に信号の周期を求めることができる。
【００６７】
【発明の効果】
本発明によれば、入力信号の周期の評価および検出を高速かつ正確に行うことができる。特に、信号の変化がなだらかな場合や信号中のノイズが大きい場合においても、正確に信号の周期を評価および検出することができる。
【００６８】
また、異なるピーク間隔の組合せによって信号の周期が定まる場合でも、正確に信号の周期を求めることができる。
【図面の簡単な説明】
【図１】本発明の実施の形態における信号周期検出装置の構成のブロック図である。
【図２】本発明の実施の形態における信号周期検出方法のフローチャートを示す図である。
【図３】本発明の実施の形態における信号からのピークの抽出の作用の説明図である。
【図４】本発明の実施の形態におけるピーク列のシフト処理の説明図である。
【図５】本発明の実施の形態における評価値Ｓ（τ）の算出処理のフローチャートを示す図である。
【図６】本発明の実施の形態における評価値Ｓ（τ）の算出結果の一例を示す図である。
【図７】本発明の実施の形態における評価値Ｓ（τ）の算出結果の別の一例を示す図である。
【図８】減衰振動を伴う入力信号の一例を示す図である。
【図９】従来技術による減衰振動を伴う入力信号に対する自己相関値の算出結果を示す図である。
【図１０】異なるピーク間隔の組合せによって周期Ｔが定まる入力信号の一例を示す図である。
【符号の説明】
１０　制御部、１２　記憶部、１４　出力部、１６　入力部、１８　データインターフェース部、２０　バス、２２　マイクロフォン、１００　信号周期検出装置。
【図１】
2004028730.tif 000004
【図２】
2004028730.tif 000005
【図３】
2004028730.tif 000006
【図４】
2004028730.tif 000007
【図５】
2004028730.tif 000008
【図６】
2004028730.tif 000009
【図７】
2004028730.tif 000010
【図８】
2004028730.tif 000011
【図９】
2004028730.tif 000012
【図１０】
2004028730.tif 000013