JP2004028730A - 信号周期検出装置、信号周期検出方法および信号周期検出プログラム - Google Patents
信号周期検出装置、信号周期検出方法および信号周期検出プログラム Download PDFInfo
- Publication number
- JP2004028730A JP2004028730A JP2002184069A JP2002184069A JP2004028730A JP 2004028730 A JP2004028730 A JP 2004028730A JP 2002184069 A JP2002184069 A JP 2002184069A JP 2002184069 A JP2002184069 A JP 2002184069A JP 2004028730 A JP2004028730 A JP 2004028730A
- Authority
- JP
- Japan
- Prior art keywords
- shift
- calculating
- signal
- feature points
- time
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Measuring Frequencies, Analyzing Spectra (AREA)
Abstract
【課題】従来、入力信号の周期を評価・検出する場合には、入力信号の全てのデータに対して評価・検出の処理を行っていたため、高速かつ正確に処理を行うことができなかった。
【解決手段】入力信号の周期を検出する信号周期検出方法であって、前記入力信号から所定条件を満たすピークを複数抽出する工程ST3と、前記複数のピークの各々をシフト時間τだけシフトする工程ST5と、前記シフト前のピークと前記シフト後のピークとの相関関係に基づいて前記シフト時間τに関する評価値S(τ)を算出する工程ST6とを含んで成り、前記シフト時間τを順次変化させて前記評価値S(τ)を求め、当該評価値S(τ)に基づいて前記信号の周期を検出する信号周期検出方法によって上記課題を解決することができる。
【選択図】 図2
【解決手段】入力信号の周期を検出する信号周期検出方法であって、前記入力信号から所定条件を満たすピークを複数抽出する工程ST3と、前記複数のピークの各々をシフト時間τだけシフトする工程ST5と、前記シフト前のピークと前記シフト後のピークとの相関関係に基づいて前記シフト時間τに関する評価値S(τ)を算出する工程ST6とを含んで成り、前記シフト時間τを順次変化させて前記評価値S(τ)を求め、当該評価値S(τ)に基づいて前記信号の周期を検出する信号周期検出方法によって上記課題を解決することができる。
【選択図】 図2
Description
【0001】
【発明の属する技術分野】
本発明は、高速かつ正確に入力信号の周期を検出する信号周期検出装置、信号周期検出方法および信号周期検出プログラムに関する。
【0002】
【従来の技術】
音楽信号のようにパルス状のピークが周期的に現れる入力信号に対して、周期性の評価または周期の検出を行うために、一般的に自己相関関数の演算を実行する方法が用いられている。また、別の方法として、入力信号からピークを抽出し、そのピークの時間間隔を統計的に処理する方法も広く用いられている。
【0003】
特開昭62−270000号公報には、自己相関関数を用いた入力信号の周期検出方法が開示されている。自己相関関数とは、入力信号をシフト時間τだけ時間的にシフトした信号を求め、各時刻におけるシフト前の入力信号とシフト後の信号の積を信号全体にわたって加算する関数をいう。周期性Tの周期性をもった信号に対して自己相関関数を演算すると、周期Tの整数倍のシフト時間τにおいて極大値を示す自己相関値を得ることができる。従って、この自己相関値を信号の周期性の評価に利用し、自己相関値が最大となるシフト時間τを信号の周期として検出することができる。
【0004】
また、特開平5−265490号公報には、自己相関関数を用いた周期性の評価方法を改良したものとして、シフト前の信号とシフト後との差分を算出し、その差分を信号全体に対して加算することによって、信号の周期を求める手段が開示されている。この方法では、通常の自己相関関数の算出のように乗算を必要とせず、加減算のみで処理を行うことができるために、高速処理に対して有利である。
【0005】
一方、信号に存在するピークの時間間隔を統計処理することによって周期を求める方法が知られている。例えば、ピーク間隔の平均値から信号の周期を求める方法やピーク間隔が近似するピークの度数分布から信号の周期を求める方法が挙げられる。
【0006】
ピーク間隔の平均値から周期を検出する方法では、信号中にピークが現れる時刻を検出し、連続して現れる2つのピーク間の時間間隔をそれぞれ求め、それらの平均値を信号の周期とする。また、ピーク度数分布を求める方法では、連続して現れるピーク間の時間間隔を求め、最も頻度が高い時間間隔を信号の周期とする。
【0007】
【発明が解決しようとする課題】
しかしながら、特開昭62−270000号公報に記載の技術においては、入力信号全体に対して乗算を伴う演算を繰り返す必要があるため、演算処理時間が長くなり、さらに大容量の記憶装置や高性能の演算装置を必要とする問題がある。特開平5−265490号公報に開示された方法においても、計算量を多少は軽減できるものの、依然として信号全体に対して演算処理を行う必要があり、上記問題は解消されない。
【0008】
また、ベースギター等の音楽楽器から発せられた音などでは、図8のように、周期T毎に現れる主ピークに伴って、周期性をもった減衰振動がみられる。このように、主ピークの周期Tに加えて、異なった周期性を有する信号に対して自己相関関数を演算すると、図9のように、信号の主ピークの周期Tに対するピークに加えて、減衰振動に起因する周期性のノイズが現れる。実際の音楽信号などでは、主ピークの周期性のばらつきや減衰振動の強弱によって、信号の周期の検出に誤りを生ずる可能性がある。同様に、入力信号が急激に立ち上がった場合のオーバーシュートに伴う振動によっても正確な評価が困難となる。
【0009】
一方、従来のピーク間隔を統計処理する方法では、信号中のピークのみに対して演算を行うため演算量は少なくできる。しかしながら、例えば、図10(a)のように、信号の周期Tが1.5拍、1.5拍および1拍の組合せからなる周期T(=4拍)を有する音楽は図10(b)のような信号となり、このとき、信号のピーク間隔の平均値を取ると1.33拍となり、正しい周期Tを得ることができない。また、ピーク度数の分布から周期を求める場合でも、最も頻度が高いピーク間隔は1.5拍と検出され、正確な周期を求めることができない。
【0010】
さらに、ピーク間隔の平均を取る方法では、外乱などにより信号からピークが抜けたり、ノイズが重畳した場合に演算結果に誤差を生ずる問題がある。
【0011】
本発明は、上記従来技術の課題を鑑みて、少ない計算量によって正確かつ高速に信号の周期を検出できる信号周期検出装置、信号周期検出方法および信号周期検出プログラムを提供することを目的とする。
【0012】
【課題を解決するための手段】
上記課題を解決するための本発明は、入力信号の周期Tを検出する信号周期検出装置であって、前記入力信号から所定条件を満たす複数の特徴点を抽出する手段と、シフト時間τを順次変化させて、当該シフト時間τ毎に評価値S(τ)を算出する手段であって、前記複数の特徴点の各々を前記シフト時間τだけシフトする手段と、前記シフト前の特徴点と前記シフト後の特徴点との相関関係に基づいて前記シフト時間τに対する評価値S(τ)を算出する手段と、を含む手段と、前記シフト時間τ毎に対して算出された評価値S(τ)に基づいて前記入力信号の周期Tを検出する手段とを含むことを特徴とする。
【0013】
さらに、上記信号周期検出装置において、前記シフト前の特徴点と前記シフト後の特徴点との相関関係に基づいて前記シフト時間τに対する評価値S(τ)を算出する手段は、前記シフト前の特徴点のうちから1つを順次選択し、前記シフト前の特徴点毎に相関値を算出する手段であって、前記シフト後の特徴点のうちから、前記選択されたシフト前の特徴点と所定条件を満たす前記シフト後の特徴点を順次選択し、前記選択されたシフト前の特徴点と前記選択されたシフト後の特徴点との時間差に基づいて、前記選択されたシフト前の特徴点に対する相関値を算出する手段と、前記シフト前の特徴点毎に算出された相関値に基づいて、前記シフト時間τに対する評価値S(τ)を算出する手段とを含むことが好適である。
【0014】
また、上記信号周期検出装置において、前記シフト前の特徴点と前記シフト後の特徴点との相関関係に基づいて前記シフト時間τに対する評価値S(τ)を算出する手段は、前記シフト前の特徴点のうちから1つを順次選択し、前記シフト前の特徴点毎に相関値を算出する手段であって、前記シフト後の特徴点のうちから、前記選択されたシフト前の特徴点と所定条件を満たす前記シフト後の特徴点を順次選択し、前記選択されたシフト前の特徴点の信号強度及び出現時刻と前記選択されたシフト後の特徴点の信号強度及び出現時刻とに基づいて、前記選択されたシフト前の特徴点に対する相関値を算出する手段と、前記シフト前の特徴点毎に算出された相関値に基づいて、前記シフト時間τに対する評価値S(τ)を算出する手段とを含むことも好適である。
【0015】
上記課題を解決するための本発明は、入力信号の周期Tを検出する信号周期検出方法であって、前記入力信号から所定条件を満たす複数の特徴点を抽出する工程と、シフト時間τを順次変化させて、当該シフト時間τ毎に評価値S(τ)を算出する工程であって、前記複数の特徴点の各々を前記シフト時間τだけシフトする工程と、前記シフト前の特徴点と前記シフト後の特徴点との相関関係に基づいて前記シフト時間τに対する評価値S(τ)を算出する工程と、を含む工程と、前記シフト時間τ毎に算出された評価値S(τ)に基づいて前記入力信号の周期Tを検出する工程とを含むことを特徴とする。
【0016】
さらに、上記信号周期検出方法において、前記シフト前の特徴点と前記シフト後の特徴点との相関関係に基づいて前記シフト時間τに対する評価値S(τ)を算出する工程は、前記シフト前の特徴点のうちから1つを順次選択し、前記シフト前の特徴点毎に相関値を算出する工程であって、前記シフト後の特徴点のうちから、前記選択されたシフト前の特徴点と所定条件を満たす前記シフト後の特徴点を順次選択し、前記選択されたシフト前の特徴点と前記選択されたシフト後の特徴点との時間差に基づいて、前記選択されたシフト前の特徴点に対する相関値を算出する工程と、前記シフト前の特徴点毎に算出された相関値に基づいて、前記シフト時間τに対する評価値S(τ)を算出する工程とを含むことが好適である。
【0017】
また、上記信号周期検出方法において、前記シフト前の特徴点と前記シフト後の特徴点との相関関係に基づいて前記シフト時間τに対する評価値S(τ)を算出する工程は、前記シフト前の特徴点のうちから1つを順次選択し、前記シフト前の特徴点毎に相関値を算出する工程であって、前記シフト後の特徴点のうちから、前記選択されたシフト前の特徴点と所定条件を満たす前記シフト後の特徴点を順次選択し、前記選択されたシフト前の特徴点の信号強度及び出現時刻と前記選択されたシフト後の特徴点の信号強度及び出現時刻とに基づいて、前記選択されたシフト前の特徴点に対する相関値を算出する工程と、前記シフト前の特徴点毎に算出された相関値に基づいて、前記シフト時間τに対する評価値S(τ)を算出する工程とを含むことも好適である。
【0018】
上記課題を解決するための本発明は、入力信号の周期Tを検出する信号周期検出プログラムであって、コンピュータに、前記入力信号から所定条件を満たす複数の特徴点を抽出する工程と、シフト時間τを順次変化させて、当該シフト時間τ毎に評価値S(τ)を算出する工程であって、前記複数の特徴点の各々を前記シフト時間τだけシフトする工程と、前記シフト前の特徴点と前記シフト後の特徴点との相関関係に基づいて前記シフト時間τに対する評価値S(τ)を算出する工程と、を含む工程と、前記シフト時間τ毎に算出された評価値S(τ)に基づいて前記入力信号の周期Tを検出する工程とを含む処理を実行させることを特徴とする。
【0019】
さらに、上記信号周期検出プログラムにおいて、前記シフト前の特徴点と前記シフト後の特徴点との相関関係に基づいて前記シフト時間τに対する評価値S(τ)を算出する工程は、前記シフト前の特徴点のうちから1つを順次選択し、前記シフト前の特徴点毎に相関値を算出する工程であって、前記シフト後の特徴点のうちから、前記選択されたシフト前の特徴点と所定条件を満たす前記シフト後の特徴点を順次選択し、前記選択されたシフト前の特徴点と前記選択されたシフト後の特徴点との時間差に基づいて、前記選択されたシフト前の特徴点に対する相関値を算出する工程と、前記シフト前の特徴点毎に算出された相関値に基づいて、前記シフト時間τに対する評価値S(τ)を算出する工程とを含むことが好適である。
【0020】
また、上記信号周期検出プログラムにおいて、前記シフト前の特徴点と前記シフト後の特徴点との相関関係に基づいて前記シフト時間τに対する評価値S(τ)を算出する工程は、前記シフト前の特徴点のうちから1つを順次選択し、前記シフト前の特徴点毎に相関値を算出する工程であって、前記シフト後の特徴点のうちから、前記選択されたシフト前の特徴点と所定条件を満たす前記シフト後の特徴点を順次選択し、前記選択されたシフト前の特徴点の信号強度及び出現時刻と前記選択されたシフト後の特徴点の信号強度及び出現時刻とに基づいて、前記選択されたシフト前の特徴点に対する相関値を算出する工程と、前記シフト前の特徴点毎に算出された相関値に基づいて、前記シフト時間τに対する評価値S(τ)を算出する工程とを含むことも好適である。
【0021】
【発明の実施の形態】
本発明実施の形態における信号周期検出装置について、図を参照して詳細に説明する。本実施の形態の信号周期検出装置は、入力信号を音声としてマイクロフォンから入力し、その入力信号の周期を検出する。
【0022】
信号周期検出装置100は、図1のように、制御部10、記憶部12、出力部14、入力部16、データインターフェース部18およびバス20から基本的に構成される。制御部10、記憶部12、出力部14および入力部16はバス20を介して情報伝達可能に接続されている。また、信号周期検出装置100は、データインターフェース部18を介して外部のマイクロフォン22と接続される。
【0023】
制御部10は、記憶部12に格納されている信号周期検出プログラムを実行することによって、記憶部12にデータとして格納された入力信号を取り出し、またはデータインターフェース部18からのデータとして受け、そのデータに対して演算および処理を行う。処理された結果は、記憶部12または出力部14へ出力される。
【0024】
記憶部12は、信号周期検出プログラム、データおよび処理結果などを格納する。格納されたプログラムやデータは、制御部10によって適宜読み出され、実行または処理される。記憶部12には、RAMやROMなどの半導体メモリ、ハードディスク、光磁気ディスク、ディジタルオーディオテープ(DAT)又は磁気テープなどの一般的な記憶装置を適宜選択して用いることができる。
【0025】
出力部14は、制御部10で検出された信号の周期をユーザが確認できる態様で表示する。出力部14には、ディスプレイやプリンタ等の一般的な出力装置を適宜選択して用いることができる。
【0026】
入力部16は、制御部10に対するユーザからのコマンドの入力に用いられる。例えば、データ処理の開始などの制御コマンドが入力される。入力部16には、キーボードやマウス等の一般的な入力装置を適宜選択して用いることができる。
【0027】
データインターフェース部18は、マイクロフォン22から入力された音声信号を制御部10で処理可能なデータに変換する。例えば、データインターフェース部18はアナログ/デジタル変換(A/D変換)装置を含み、マイクロフォン22から入力されたアナログ信号をデジタル信号に変換し、制御部10へ出力する。
【0028】
以下に、信号周期検出装置100を用いた信号周期の検出方法を、図2を参照して詳細に説明する。
【0029】
信号周期検出方法はプログラムとしてコード化し、記憶部12に格納及び保持し、制御部10によって実行することができる。
【0030】
本実施の形態では、信号から特徴点を抽出し、その特徴点の周期的な出現を調べることによって、信号の周期性を検出する。より具体的には、抽出された特徴点をシフト時間τだけ時間的にシフトした場合に、シフト前の特徴点とシフト後の特徴点との重なり具合を評価値S(τ)として算出する。その評価値S(τ)は入力信号の周期を評価する指標として用いることができ、例えば、評価値S(τ)の値が最も高いシフト時間τを信号の周期として検出することができる。
【0031】
特徴点としては、例えば、信号に含まれるピーク、信号の時間的変化の変極点等が挙げられる。以下の説明においては、特徴点としてピークを用いた場合について説明を行う。
【0032】
ステップST1では、周期の評価に用いるシフト時間τの設定を行う。処理の初期設定時には、シフト時間τを増減値Δτとする。ステップST7から処理が戻ってきた場合は、シフト時間τの値をさらに増減値Δτだけ増加させる。
【0033】
増減値Δτは、入力信号の周期がある程度予想できる場合には、その予想される周期よりも十分短い時間を設定する。入力信号の周期が予め予想できない場合には、入力信号のサンプリング間隔の最小値を設定することが好ましい。
【0034】
ステップST2では、マイクロフォン22から処理の対象となる信号を入力する。マイクロフォン22では、図3に示すように、入力信号はアナログ信号として入力される。データインターフェース部18では、マイクロフォン22から受けた入力信号を所定のサンプリング間隔でデジタルの信号データへ変換する。このとき、サンプリング間隔は、入力信号の周期よりも十分短いことが好ましい。入力信号のサンプリングデータは記憶部12に格納・記憶される。
【0035】
このとき、以後の処理を容易にするために、予備的な処理を行っておくことも好適である。例えば、信号の周期Tがある程度予想できる場合は、信号を周波数フィルタに通し、不要な高周波成分および低周波成分を除去しておくことによって、周期の検出の確度を向上することができる。また、信号を二乗処理することで負の値とならないようにし、平滑化処理によって信号変化を滑らかにしておくことも好ましい。これらは、良く知られた既存の電子回路またはコンピュータ処理によって実現できる。
【0036】
ステップST3では、制御部10において、記憶部12に格納された入力信号からピークを抽出する。本実施の形態では、図3のように、所定の閾値を定め、その閾値を超える範囲をピーク領域とみなし、そのピーク領域から最大値を持つ点をピークとして抽出する。また、そのピークが現れる時刻をピーク時刻とする。ここで、閾値は、入力信号の平均値や最大値などを基準として定めることができる。例えば、平均値をそのまま閾値とし、又は、最大値の30%の値を閾値とすることが好適である。
【0037】
入力信号全体に対して、図4(a)に示すように、P1・・・Pi−1,Piのピーク列が抽出され、それぞれのピークが出現する時刻がピーク時刻T1・・・Ti−1,Tiとして求められる。
【0038】
ステップST4では、ステップST3で抽出されたピーク列およびピーク時刻を記憶部12に格納・記憶する。
【0039】
ステップST5では、ステップST3で得られたピークの各々を一律にシフト時間τだけ時間的にシフトさせる。例えば、図4(a)に示したピークPiをシフト時間τだけシフトさせた場合、時刻Ti+τに出現するピークP’iとなる。他のピークについても同様の処理を行うことによって、図4(b)に示すようなシフト後のピーク列P’1・・・P’iを得ることができる。また、これらのピーク列に対するピーク時刻T’1・・・T’iが求められる。
【0040】
ステップST6では、シフト前のピーク列とシフト後のピーク列の相関関係をシフト時間τの関数である評価値S(τ)として演算する。図5に、ステップST6における処理をサブルーチンとして示す。
【0041】
ステップST601では、評価値S(τ)およびパラメータが初期化される。パラメータiおよびjは1に設定され、評価値S(τ)およびパラメータkは0に設定される。また、ピーク列に含まれるピーク数をimaxとする。パラメータi,jおよびkを順次変化させ、シフト前のピークPiとシフト後のピークP’(j+k)の時間差に基づいて評価値S(τ)を求める。
【0042】
ステップST602では、パラメータj+kの値がimaxを超えている場合、シフト後の最後のピークP’imaxまで既に評価が終了しているので、ステップST607へ処理を移行する。
【0043】
ステップST603では、シフト前のi番目のピークPiとシフト後のj+k番目のピークP’(j+k)との時間差を算出し、その値が評価ウィンドウ内に収まっているか否かが判断される。ピークPiとピークP’(j+k)との時間差が評価ウィンドウ内に収まっていれば、それらのピーク間の時間差に基づいて相関値Skを求める。評価ウィンドウ内に収まっていなければ相関値Skを求めない。
【0044】
本実施の形態では、シフト前のピークPiのピーク時刻Tiの前後W/2を評価ウィンドウとした。時間幅Wは、信号周期の検出に必要とされる確度、信号周期検出装置100の記憶容量又は処理速度に応じて適宜定めることができる。時間幅Wを大きくすれば、ピークPiから大きく離れた時刻におけるピークP’(j+k)も周期の評価に加えられ、評価をより確度良く行うことができる。しかし、処理に必要な記憶容量が増加し、処理時間も長くなる。反対に、時間幅Wを小さくすれば、ピークPiに近いピークP’(j+k)のみが評価の対象となり、評価の確度が低下するが、必要な記憶容量は少なくなり、処理時間も短くできる。また、許容される処理時間が十分に長い場合には、評価ウィンドウを設けずに、全てのピークに対して処理を行っても良い。
【0045】
シフト後のピークP’(j+k)の時刻T’(j+k)が評価ウィンドウ内にある場合、すなわちTi−W/2≦T’(j+k)≦Ti+W/2の条件が満たされる場合には、ステップST604に処理を移行する。時刻T’(j+k)が評価ウィンドウよりも以前にある場合、すなわちT’(j+k)<Ti−W/2の条件が満たされる場合には、ステップST606に処理を移行する。時刻T’(j+k)が評価ウィンドウよりも以後にある場合、すなわちTi+W/2<T’(j+k)の条件が満たされる場合には、ステップST607に処理を移行する。
【0046】
ステップST604では、シフト前のピークPiとシフト後のピークP’(j+k)との相関関係が相関値Skとして求められる。相関値Skは、例えば数式(1)のように、ピーク時刻Tiとピーク時刻T’(j+k)との時間差の関数値とすることが好適である。
【数1】
Sk=max(0,R−|Ti−T’(j+k)|)・・・・・・(1)
【0047】
但し、max(a,b)はaまたはbのいずれか大きい値を出力する関数、Rは任意の定数とする。
【0048】
相関値Skの算出方法はこれに限られるものではない。例えば、数式(2)のように、時間差とピーク強度の積の関数とすることも好適である。
【数2】
Sk=max(0,R−|Pi・Ti−P’(j+k)・T’(j+k)|)・・・(2)
【0049】
ステップST605では、kの値を1だけ増加させ、ステップST602へ処理を戻す。これにより、次のシフト後のピークとの相関値の算出処理に移行する。
【0050】
ステップST606では、jの値を1だけ増加させて、ステップST602へ処理を戻す。すなわち、ステップST603において、ピークP’(j+k)が評価ウィンドウ内にないものと判断されたので、相関値Skを算出することなく次のシフト後のピークとの相関値の算出処理に移行する。
【0051】
ステップST607では、各相関値Skに基づいて評価値S(τ)をシフト時間τの関数として算出する。例えば、相関値S1,S2・・・Skの値の平均値をS(τ)に加算する。評価値S(τ)の計算方法はこれに限られるものではなく、相関値S1,S2・・・Skの最大値をS(τ)に加算する等の他の方法を用いることも好適である。
【0052】
ステップST608では、iの値を1だけ増加し、kの値を0に戻す。
【0053】
ステップST609では、iの値がピーク数imaxを超えているか否かを判断する。iの値がピーク数imaxを超えている場合は、シフト前の全てのピークに対する相関値が評価値S(τ)に反映されているので、サブルーチンでの処理を終了する。iの値がピーク数imax以内にある場合には、ステップST602へ処理を戻し、次のシフト前のピークに対する処理を行う。
【0054】
サブルーチンによって求められた評価値S(τ)は記憶部12へ格納・記憶され、メインルーチンのステップST7へ処理が移行する。
【0055】
ステップST7では、制御部10において、現在のシフト時間τとτmaxが比較され、τがτmaxより大きければステップST8へ処理を移行する。τがτmax以下であればステップST1へ処理を戻す。τmaxとしては、例えば、信号の周期として考えられる最大値を予め設定しておく。
【0056】
ステップST8では、評価値S(τ)から信号の周期Tを検出する。評価値S(τ)が一番大きな値を示すときのシフト時間τを周期Tとする。
【0057】
例えば、図8に示した音楽信号に対して、異なるシフト時間τについて評価値S(τ)を算出した結果を図6に示す。ピーク検出の閾値は、信号の最大強度の30%とした。相関値の計算には数式(1)を用い、Rの値は3とした。
【0058】
シフト時間τと評価値S(τ)との関係について、図6と図9を比較すると、本実施の形態を用いた方が周期Tにおけるピークがより明確に検出できることが分かる。また、従来の自己相関関数を用いた処理と、本実施の形態の処理に要した計算量と記憶容量の使用量を表1に示す。従来技術に比べて本実施の形態では、計算量および記憶容量の使用量を大幅に減少させることができる。
【表1】
【0059】
さらに、図10(b)に示した信号に対して、評価値S(τ)を算出した結果を図7に示す。ピーク検出の閾値は、信号の最大値の30%とした。相関値の計算には数式(1)を用い、Rの値は0.4とした。
【0060】
図10(b)のように、異なるピーク間隔の組合せによって信号の周期が定められる場合においても、評価値S(τ)が一番大きな値を示すのは、シフト時間τが4拍のときであり、これが信号の周期Tと検出される。すなわち、ピークを4拍だけシフトした場合に、シフト前とシフト後のピーク列の類似性が高くなり、評価値S(τ)の値が大きくなる。
【0061】
検出された評価値S(τ)または信号の周期Tは、出力部14においてユーザが確認可能な態様で出力される。また、記憶部12に、他の処理で使用できるデータとして格納・記憶しても良い。評価値S(τ)は、対象信号について固有の値を有するが、例えば、シフト時間τ=0の場合の評価値S(τ=0)を求めて、そのS(0)によって評価値S(τ)を正規化することによって、評価値S(τ)に汎用性を持たせることもできる。
【0062】
以上のように、本実施の形態によれば、予め信号から顕著なピーク列を抽出しておき、そのピーク列に対して処理を行うことによって、信号の周期を検出することができる。
【0063】
本実施の形態では、入力信号はマイクロフォン22を通じて音声信号として信号周期検出装置100へ取り込んだが、入力信号の形態としてはこれに限られるものではない。例えば、予め記憶部12へ信号をデータとして記憶しておいても良いし、信号周期検出装置100をネットワークへ接続しておき、そのネットワークを介して既存の信号のデータを取り込んで処理を施しても良い。
【0064】
例えば、ベルトコンベア上を流れる商品等の個数を検知する赤外線検知装置等から出力される周期的な信号に対して、その信号の周期を検出する場合等に適用することも可能である。
【0065】
本実施の形態では、所定の閾値を超えるピーク領域の最大点をピークとして抽出したが、入力信号の態様によって異なる信号の特徴点を抽出して処理を行っても良い。例えば、極小値をとる信号部分や信号の変極点等を特徴点として抽出しても同様の作用および効果を得ることができる。
【0066】
以上のように、本実施の形態によれば、信号の変化がなだらかな場合やピークとして抽出された部分のノイズが高い場合にも、これらの影響を受けることなく信頼性高く評価値を求められ、正確に信号の周期を検出することができる。また、異なるピーク間隔の組合せによって全体の周期が定まる場合でも、正確に信号の周期を求めることができる。さらに、全てのサンプリングデータに対して自己相関関数の計算を行う必要がなく、処理に必要な記憶容量を小さくでき、高速に信号の周期を求めることができる。
【0067】
【発明の効果】
本発明によれば、入力信号の周期の評価および検出を高速かつ正確に行うことができる。特に、信号の変化がなだらかな場合や信号中のノイズが大きい場合においても、正確に信号の周期を評価および検出することができる。
【0068】
また、異なるピーク間隔の組合せによって信号の周期が定まる場合でも、正確に信号の周期を求めることができる。
【図面の簡単な説明】
【図1】本発明の実施の形態における信号周期検出装置の構成のブロック図である。
【図2】本発明の実施の形態における信号周期検出方法のフローチャートを示す図である。
【図3】本発明の実施の形態における信号からのピークの抽出の作用の説明図である。
【図4】本発明の実施の形態におけるピーク列のシフト処理の説明図である。
【図5】本発明の実施の形態における評価値S(τ)の算出処理のフローチャートを示す図である。
【図6】本発明の実施の形態における評価値S(τ)の算出結果の一例を示す図である。
【図7】本発明の実施の形態における評価値S(τ)の算出結果の別の一例を示す図である。
【図8】減衰振動を伴う入力信号の一例を示す図である。
【図9】従来技術による減衰振動を伴う入力信号に対する自己相関値の算出結果を示す図である。
【図10】異なるピーク間隔の組合せによって周期Tが定まる入力信号の一例を示す図である。
【符号の説明】
10 制御部、12 記憶部、14 出力部、16 入力部、18 データインターフェース部、20 バス、22 マイクロフォン、100 信号周期検出装置。
【発明の属する技術分野】
本発明は、高速かつ正確に入力信号の周期を検出する信号周期検出装置、信号周期検出方法および信号周期検出プログラムに関する。
【0002】
【従来の技術】
音楽信号のようにパルス状のピークが周期的に現れる入力信号に対して、周期性の評価または周期の検出を行うために、一般的に自己相関関数の演算を実行する方法が用いられている。また、別の方法として、入力信号からピークを抽出し、そのピークの時間間隔を統計的に処理する方法も広く用いられている。
【0003】
特開昭62−270000号公報には、自己相関関数を用いた入力信号の周期検出方法が開示されている。自己相関関数とは、入力信号をシフト時間τだけ時間的にシフトした信号を求め、各時刻におけるシフト前の入力信号とシフト後の信号の積を信号全体にわたって加算する関数をいう。周期性Tの周期性をもった信号に対して自己相関関数を演算すると、周期Tの整数倍のシフト時間τにおいて極大値を示す自己相関値を得ることができる。従って、この自己相関値を信号の周期性の評価に利用し、自己相関値が最大となるシフト時間τを信号の周期として検出することができる。
【0004】
また、特開平5−265490号公報には、自己相関関数を用いた周期性の評価方法を改良したものとして、シフト前の信号とシフト後との差分を算出し、その差分を信号全体に対して加算することによって、信号の周期を求める手段が開示されている。この方法では、通常の自己相関関数の算出のように乗算を必要とせず、加減算のみで処理を行うことができるために、高速処理に対して有利である。
【0005】
一方、信号に存在するピークの時間間隔を統計処理することによって周期を求める方法が知られている。例えば、ピーク間隔の平均値から信号の周期を求める方法やピーク間隔が近似するピークの度数分布から信号の周期を求める方法が挙げられる。
【0006】
ピーク間隔の平均値から周期を検出する方法では、信号中にピークが現れる時刻を検出し、連続して現れる2つのピーク間の時間間隔をそれぞれ求め、それらの平均値を信号の周期とする。また、ピーク度数分布を求める方法では、連続して現れるピーク間の時間間隔を求め、最も頻度が高い時間間隔を信号の周期とする。
【0007】
【発明が解決しようとする課題】
しかしながら、特開昭62−270000号公報に記載の技術においては、入力信号全体に対して乗算を伴う演算を繰り返す必要があるため、演算処理時間が長くなり、さらに大容量の記憶装置や高性能の演算装置を必要とする問題がある。特開平5−265490号公報に開示された方法においても、計算量を多少は軽減できるものの、依然として信号全体に対して演算処理を行う必要があり、上記問題は解消されない。
【0008】
また、ベースギター等の音楽楽器から発せられた音などでは、図8のように、周期T毎に現れる主ピークに伴って、周期性をもった減衰振動がみられる。このように、主ピークの周期Tに加えて、異なった周期性を有する信号に対して自己相関関数を演算すると、図9のように、信号の主ピークの周期Tに対するピークに加えて、減衰振動に起因する周期性のノイズが現れる。実際の音楽信号などでは、主ピークの周期性のばらつきや減衰振動の強弱によって、信号の周期の検出に誤りを生ずる可能性がある。同様に、入力信号が急激に立ち上がった場合のオーバーシュートに伴う振動によっても正確な評価が困難となる。
【0009】
一方、従来のピーク間隔を統計処理する方法では、信号中のピークのみに対して演算を行うため演算量は少なくできる。しかしながら、例えば、図10(a)のように、信号の周期Tが1.5拍、1.5拍および1拍の組合せからなる周期T(=4拍)を有する音楽は図10(b)のような信号となり、このとき、信号のピーク間隔の平均値を取ると1.33拍となり、正しい周期Tを得ることができない。また、ピーク度数の分布から周期を求める場合でも、最も頻度が高いピーク間隔は1.5拍と検出され、正確な周期を求めることができない。
【0010】
さらに、ピーク間隔の平均を取る方法では、外乱などにより信号からピークが抜けたり、ノイズが重畳した場合に演算結果に誤差を生ずる問題がある。
【0011】
本発明は、上記従来技術の課題を鑑みて、少ない計算量によって正確かつ高速に信号の周期を検出できる信号周期検出装置、信号周期検出方法および信号周期検出プログラムを提供することを目的とする。
【0012】
【課題を解決するための手段】
上記課題を解決するための本発明は、入力信号の周期Tを検出する信号周期検出装置であって、前記入力信号から所定条件を満たす複数の特徴点を抽出する手段と、シフト時間τを順次変化させて、当該シフト時間τ毎に評価値S(τ)を算出する手段であって、前記複数の特徴点の各々を前記シフト時間τだけシフトする手段と、前記シフト前の特徴点と前記シフト後の特徴点との相関関係に基づいて前記シフト時間τに対する評価値S(τ)を算出する手段と、を含む手段と、前記シフト時間τ毎に対して算出された評価値S(τ)に基づいて前記入力信号の周期Tを検出する手段とを含むことを特徴とする。
【0013】
さらに、上記信号周期検出装置において、前記シフト前の特徴点と前記シフト後の特徴点との相関関係に基づいて前記シフト時間τに対する評価値S(τ)を算出する手段は、前記シフト前の特徴点のうちから1つを順次選択し、前記シフト前の特徴点毎に相関値を算出する手段であって、前記シフト後の特徴点のうちから、前記選択されたシフト前の特徴点と所定条件を満たす前記シフト後の特徴点を順次選択し、前記選択されたシフト前の特徴点と前記選択されたシフト後の特徴点との時間差に基づいて、前記選択されたシフト前の特徴点に対する相関値を算出する手段と、前記シフト前の特徴点毎に算出された相関値に基づいて、前記シフト時間τに対する評価値S(τ)を算出する手段とを含むことが好適である。
【0014】
また、上記信号周期検出装置において、前記シフト前の特徴点と前記シフト後の特徴点との相関関係に基づいて前記シフト時間τに対する評価値S(τ)を算出する手段は、前記シフト前の特徴点のうちから1つを順次選択し、前記シフト前の特徴点毎に相関値を算出する手段であって、前記シフト後の特徴点のうちから、前記選択されたシフト前の特徴点と所定条件を満たす前記シフト後の特徴点を順次選択し、前記選択されたシフト前の特徴点の信号強度及び出現時刻と前記選択されたシフト後の特徴点の信号強度及び出現時刻とに基づいて、前記選択されたシフト前の特徴点に対する相関値を算出する手段と、前記シフト前の特徴点毎に算出された相関値に基づいて、前記シフト時間τに対する評価値S(τ)を算出する手段とを含むことも好適である。
【0015】
上記課題を解決するための本発明は、入力信号の周期Tを検出する信号周期検出方法であって、前記入力信号から所定条件を満たす複数の特徴点を抽出する工程と、シフト時間τを順次変化させて、当該シフト時間τ毎に評価値S(τ)を算出する工程であって、前記複数の特徴点の各々を前記シフト時間τだけシフトする工程と、前記シフト前の特徴点と前記シフト後の特徴点との相関関係に基づいて前記シフト時間τに対する評価値S(τ)を算出する工程と、を含む工程と、前記シフト時間τ毎に算出された評価値S(τ)に基づいて前記入力信号の周期Tを検出する工程とを含むことを特徴とする。
【0016】
さらに、上記信号周期検出方法において、前記シフト前の特徴点と前記シフト後の特徴点との相関関係に基づいて前記シフト時間τに対する評価値S(τ)を算出する工程は、前記シフト前の特徴点のうちから1つを順次選択し、前記シフト前の特徴点毎に相関値を算出する工程であって、前記シフト後の特徴点のうちから、前記選択されたシフト前の特徴点と所定条件を満たす前記シフト後の特徴点を順次選択し、前記選択されたシフト前の特徴点と前記選択されたシフト後の特徴点との時間差に基づいて、前記選択されたシフト前の特徴点に対する相関値を算出する工程と、前記シフト前の特徴点毎に算出された相関値に基づいて、前記シフト時間τに対する評価値S(τ)を算出する工程とを含むことが好適である。
【0017】
また、上記信号周期検出方法において、前記シフト前の特徴点と前記シフト後の特徴点との相関関係に基づいて前記シフト時間τに対する評価値S(τ)を算出する工程は、前記シフト前の特徴点のうちから1つを順次選択し、前記シフト前の特徴点毎に相関値を算出する工程であって、前記シフト後の特徴点のうちから、前記選択されたシフト前の特徴点と所定条件を満たす前記シフト後の特徴点を順次選択し、前記選択されたシフト前の特徴点の信号強度及び出現時刻と前記選択されたシフト後の特徴点の信号強度及び出現時刻とに基づいて、前記選択されたシフト前の特徴点に対する相関値を算出する工程と、前記シフト前の特徴点毎に算出された相関値に基づいて、前記シフト時間τに対する評価値S(τ)を算出する工程とを含むことも好適である。
【0018】
上記課題を解決するための本発明は、入力信号の周期Tを検出する信号周期検出プログラムであって、コンピュータに、前記入力信号から所定条件を満たす複数の特徴点を抽出する工程と、シフト時間τを順次変化させて、当該シフト時間τ毎に評価値S(τ)を算出する工程であって、前記複数の特徴点の各々を前記シフト時間τだけシフトする工程と、前記シフト前の特徴点と前記シフト後の特徴点との相関関係に基づいて前記シフト時間τに対する評価値S(τ)を算出する工程と、を含む工程と、前記シフト時間τ毎に算出された評価値S(τ)に基づいて前記入力信号の周期Tを検出する工程とを含む処理を実行させることを特徴とする。
【0019】
さらに、上記信号周期検出プログラムにおいて、前記シフト前の特徴点と前記シフト後の特徴点との相関関係に基づいて前記シフト時間τに対する評価値S(τ)を算出する工程は、前記シフト前の特徴点のうちから1つを順次選択し、前記シフト前の特徴点毎に相関値を算出する工程であって、前記シフト後の特徴点のうちから、前記選択されたシフト前の特徴点と所定条件を満たす前記シフト後の特徴点を順次選択し、前記選択されたシフト前の特徴点と前記選択されたシフト後の特徴点との時間差に基づいて、前記選択されたシフト前の特徴点に対する相関値を算出する工程と、前記シフト前の特徴点毎に算出された相関値に基づいて、前記シフト時間τに対する評価値S(τ)を算出する工程とを含むことが好適である。
【0020】
また、上記信号周期検出プログラムにおいて、前記シフト前の特徴点と前記シフト後の特徴点との相関関係に基づいて前記シフト時間τに対する評価値S(τ)を算出する工程は、前記シフト前の特徴点のうちから1つを順次選択し、前記シフト前の特徴点毎に相関値を算出する工程であって、前記シフト後の特徴点のうちから、前記選択されたシフト前の特徴点と所定条件を満たす前記シフト後の特徴点を順次選択し、前記選択されたシフト前の特徴点の信号強度及び出現時刻と前記選択されたシフト後の特徴点の信号強度及び出現時刻とに基づいて、前記選択されたシフト前の特徴点に対する相関値を算出する工程と、前記シフト前の特徴点毎に算出された相関値に基づいて、前記シフト時間τに対する評価値S(τ)を算出する工程とを含むことも好適である。
【0021】
【発明の実施の形態】
本発明実施の形態における信号周期検出装置について、図を参照して詳細に説明する。本実施の形態の信号周期検出装置は、入力信号を音声としてマイクロフォンから入力し、その入力信号の周期を検出する。
【0022】
信号周期検出装置100は、図1のように、制御部10、記憶部12、出力部14、入力部16、データインターフェース部18およびバス20から基本的に構成される。制御部10、記憶部12、出力部14および入力部16はバス20を介して情報伝達可能に接続されている。また、信号周期検出装置100は、データインターフェース部18を介して外部のマイクロフォン22と接続される。
【0023】
制御部10は、記憶部12に格納されている信号周期検出プログラムを実行することによって、記憶部12にデータとして格納された入力信号を取り出し、またはデータインターフェース部18からのデータとして受け、そのデータに対して演算および処理を行う。処理された結果は、記憶部12または出力部14へ出力される。
【0024】
記憶部12は、信号周期検出プログラム、データおよび処理結果などを格納する。格納されたプログラムやデータは、制御部10によって適宜読み出され、実行または処理される。記憶部12には、RAMやROMなどの半導体メモリ、ハードディスク、光磁気ディスク、ディジタルオーディオテープ(DAT)又は磁気テープなどの一般的な記憶装置を適宜選択して用いることができる。
【0025】
出力部14は、制御部10で検出された信号の周期をユーザが確認できる態様で表示する。出力部14には、ディスプレイやプリンタ等の一般的な出力装置を適宜選択して用いることができる。
【0026】
入力部16は、制御部10に対するユーザからのコマンドの入力に用いられる。例えば、データ処理の開始などの制御コマンドが入力される。入力部16には、キーボードやマウス等の一般的な入力装置を適宜選択して用いることができる。
【0027】
データインターフェース部18は、マイクロフォン22から入力された音声信号を制御部10で処理可能なデータに変換する。例えば、データインターフェース部18はアナログ/デジタル変換(A/D変換)装置を含み、マイクロフォン22から入力されたアナログ信号をデジタル信号に変換し、制御部10へ出力する。
【0028】
以下に、信号周期検出装置100を用いた信号周期の検出方法を、図2を参照して詳細に説明する。
【0029】
信号周期検出方法はプログラムとしてコード化し、記憶部12に格納及び保持し、制御部10によって実行することができる。
【0030】
本実施の形態では、信号から特徴点を抽出し、その特徴点の周期的な出現を調べることによって、信号の周期性を検出する。より具体的には、抽出された特徴点をシフト時間τだけ時間的にシフトした場合に、シフト前の特徴点とシフト後の特徴点との重なり具合を評価値S(τ)として算出する。その評価値S(τ)は入力信号の周期を評価する指標として用いることができ、例えば、評価値S(τ)の値が最も高いシフト時間τを信号の周期として検出することができる。
【0031】
特徴点としては、例えば、信号に含まれるピーク、信号の時間的変化の変極点等が挙げられる。以下の説明においては、特徴点としてピークを用いた場合について説明を行う。
【0032】
ステップST1では、周期の評価に用いるシフト時間τの設定を行う。処理の初期設定時には、シフト時間τを増減値Δτとする。ステップST7から処理が戻ってきた場合は、シフト時間τの値をさらに増減値Δτだけ増加させる。
【0033】
増減値Δτは、入力信号の周期がある程度予想できる場合には、その予想される周期よりも十分短い時間を設定する。入力信号の周期が予め予想できない場合には、入力信号のサンプリング間隔の最小値を設定することが好ましい。
【0034】
ステップST2では、マイクロフォン22から処理の対象となる信号を入力する。マイクロフォン22では、図3に示すように、入力信号はアナログ信号として入力される。データインターフェース部18では、マイクロフォン22から受けた入力信号を所定のサンプリング間隔でデジタルの信号データへ変換する。このとき、サンプリング間隔は、入力信号の周期よりも十分短いことが好ましい。入力信号のサンプリングデータは記憶部12に格納・記憶される。
【0035】
このとき、以後の処理を容易にするために、予備的な処理を行っておくことも好適である。例えば、信号の周期Tがある程度予想できる場合は、信号を周波数フィルタに通し、不要な高周波成分および低周波成分を除去しておくことによって、周期の検出の確度を向上することができる。また、信号を二乗処理することで負の値とならないようにし、平滑化処理によって信号変化を滑らかにしておくことも好ましい。これらは、良く知られた既存の電子回路またはコンピュータ処理によって実現できる。
【0036】
ステップST3では、制御部10において、記憶部12に格納された入力信号からピークを抽出する。本実施の形態では、図3のように、所定の閾値を定め、その閾値を超える範囲をピーク領域とみなし、そのピーク領域から最大値を持つ点をピークとして抽出する。また、そのピークが現れる時刻をピーク時刻とする。ここで、閾値は、入力信号の平均値や最大値などを基準として定めることができる。例えば、平均値をそのまま閾値とし、又は、最大値の30%の値を閾値とすることが好適である。
【0037】
入力信号全体に対して、図4(a)に示すように、P1・・・Pi−1,Piのピーク列が抽出され、それぞれのピークが出現する時刻がピーク時刻T1・・・Ti−1,Tiとして求められる。
【0038】
ステップST4では、ステップST3で抽出されたピーク列およびピーク時刻を記憶部12に格納・記憶する。
【0039】
ステップST5では、ステップST3で得られたピークの各々を一律にシフト時間τだけ時間的にシフトさせる。例えば、図4(a)に示したピークPiをシフト時間τだけシフトさせた場合、時刻Ti+τに出現するピークP’iとなる。他のピークについても同様の処理を行うことによって、図4(b)に示すようなシフト後のピーク列P’1・・・P’iを得ることができる。また、これらのピーク列に対するピーク時刻T’1・・・T’iが求められる。
【0040】
ステップST6では、シフト前のピーク列とシフト後のピーク列の相関関係をシフト時間τの関数である評価値S(τ)として演算する。図5に、ステップST6における処理をサブルーチンとして示す。
【0041】
ステップST601では、評価値S(τ)およびパラメータが初期化される。パラメータiおよびjは1に設定され、評価値S(τ)およびパラメータkは0に設定される。また、ピーク列に含まれるピーク数をimaxとする。パラメータi,jおよびkを順次変化させ、シフト前のピークPiとシフト後のピークP’(j+k)の時間差に基づいて評価値S(τ)を求める。
【0042】
ステップST602では、パラメータj+kの値がimaxを超えている場合、シフト後の最後のピークP’imaxまで既に評価が終了しているので、ステップST607へ処理を移行する。
【0043】
ステップST603では、シフト前のi番目のピークPiとシフト後のj+k番目のピークP’(j+k)との時間差を算出し、その値が評価ウィンドウ内に収まっているか否かが判断される。ピークPiとピークP’(j+k)との時間差が評価ウィンドウ内に収まっていれば、それらのピーク間の時間差に基づいて相関値Skを求める。評価ウィンドウ内に収まっていなければ相関値Skを求めない。
【0044】
本実施の形態では、シフト前のピークPiのピーク時刻Tiの前後W/2を評価ウィンドウとした。時間幅Wは、信号周期の検出に必要とされる確度、信号周期検出装置100の記憶容量又は処理速度に応じて適宜定めることができる。時間幅Wを大きくすれば、ピークPiから大きく離れた時刻におけるピークP’(j+k)も周期の評価に加えられ、評価をより確度良く行うことができる。しかし、処理に必要な記憶容量が増加し、処理時間も長くなる。反対に、時間幅Wを小さくすれば、ピークPiに近いピークP’(j+k)のみが評価の対象となり、評価の確度が低下するが、必要な記憶容量は少なくなり、処理時間も短くできる。また、許容される処理時間が十分に長い場合には、評価ウィンドウを設けずに、全てのピークに対して処理を行っても良い。
【0045】
シフト後のピークP’(j+k)の時刻T’(j+k)が評価ウィンドウ内にある場合、すなわちTi−W/2≦T’(j+k)≦Ti+W/2の条件が満たされる場合には、ステップST604に処理を移行する。時刻T’(j+k)が評価ウィンドウよりも以前にある場合、すなわちT’(j+k)<Ti−W/2の条件が満たされる場合には、ステップST606に処理を移行する。時刻T’(j+k)が評価ウィンドウよりも以後にある場合、すなわちTi+W/2<T’(j+k)の条件が満たされる場合には、ステップST607に処理を移行する。
【0046】
ステップST604では、シフト前のピークPiとシフト後のピークP’(j+k)との相関関係が相関値Skとして求められる。相関値Skは、例えば数式(1)のように、ピーク時刻Tiとピーク時刻T’(j+k)との時間差の関数値とすることが好適である。
【数1】
Sk=max(0,R−|Ti−T’(j+k)|)・・・・・・(1)
【0047】
但し、max(a,b)はaまたはbのいずれか大きい値を出力する関数、Rは任意の定数とする。
【0048】
相関値Skの算出方法はこれに限られるものではない。例えば、数式(2)のように、時間差とピーク強度の積の関数とすることも好適である。
【数2】
Sk=max(0,R−|Pi・Ti−P’(j+k)・T’(j+k)|)・・・(2)
【0049】
ステップST605では、kの値を1だけ増加させ、ステップST602へ処理を戻す。これにより、次のシフト後のピークとの相関値の算出処理に移行する。
【0050】
ステップST606では、jの値を1だけ増加させて、ステップST602へ処理を戻す。すなわち、ステップST603において、ピークP’(j+k)が評価ウィンドウ内にないものと判断されたので、相関値Skを算出することなく次のシフト後のピークとの相関値の算出処理に移行する。
【0051】
ステップST607では、各相関値Skに基づいて評価値S(τ)をシフト時間τの関数として算出する。例えば、相関値S1,S2・・・Skの値の平均値をS(τ)に加算する。評価値S(τ)の計算方法はこれに限られるものではなく、相関値S1,S2・・・Skの最大値をS(τ)に加算する等の他の方法を用いることも好適である。
【0052】
ステップST608では、iの値を1だけ増加し、kの値を0に戻す。
【0053】
ステップST609では、iの値がピーク数imaxを超えているか否かを判断する。iの値がピーク数imaxを超えている場合は、シフト前の全てのピークに対する相関値が評価値S(τ)に反映されているので、サブルーチンでの処理を終了する。iの値がピーク数imax以内にある場合には、ステップST602へ処理を戻し、次のシフト前のピークに対する処理を行う。
【0054】
サブルーチンによって求められた評価値S(τ)は記憶部12へ格納・記憶され、メインルーチンのステップST7へ処理が移行する。
【0055】
ステップST7では、制御部10において、現在のシフト時間τとτmaxが比較され、τがτmaxより大きければステップST8へ処理を移行する。τがτmax以下であればステップST1へ処理を戻す。τmaxとしては、例えば、信号の周期として考えられる最大値を予め設定しておく。
【0056】
ステップST8では、評価値S(τ)から信号の周期Tを検出する。評価値S(τ)が一番大きな値を示すときのシフト時間τを周期Tとする。
【0057】
例えば、図8に示した音楽信号に対して、異なるシフト時間τについて評価値S(τ)を算出した結果を図6に示す。ピーク検出の閾値は、信号の最大強度の30%とした。相関値の計算には数式(1)を用い、Rの値は3とした。
【0058】
シフト時間τと評価値S(τ)との関係について、図6と図9を比較すると、本実施の形態を用いた方が周期Tにおけるピークがより明確に検出できることが分かる。また、従来の自己相関関数を用いた処理と、本実施の形態の処理に要した計算量と記憶容量の使用量を表1に示す。従来技術に比べて本実施の形態では、計算量および記憶容量の使用量を大幅に減少させることができる。
【表1】
【0059】
さらに、図10(b)に示した信号に対して、評価値S(τ)を算出した結果を図7に示す。ピーク検出の閾値は、信号の最大値の30%とした。相関値の計算には数式(1)を用い、Rの値は0.4とした。
【0060】
図10(b)のように、異なるピーク間隔の組合せによって信号の周期が定められる場合においても、評価値S(τ)が一番大きな値を示すのは、シフト時間τが4拍のときであり、これが信号の周期Tと検出される。すなわち、ピークを4拍だけシフトした場合に、シフト前とシフト後のピーク列の類似性が高くなり、評価値S(τ)の値が大きくなる。
【0061】
検出された評価値S(τ)または信号の周期Tは、出力部14においてユーザが確認可能な態様で出力される。また、記憶部12に、他の処理で使用できるデータとして格納・記憶しても良い。評価値S(τ)は、対象信号について固有の値を有するが、例えば、シフト時間τ=0の場合の評価値S(τ=0)を求めて、そのS(0)によって評価値S(τ)を正規化することによって、評価値S(τ)に汎用性を持たせることもできる。
【0062】
以上のように、本実施の形態によれば、予め信号から顕著なピーク列を抽出しておき、そのピーク列に対して処理を行うことによって、信号の周期を検出することができる。
【0063】
本実施の形態では、入力信号はマイクロフォン22を通じて音声信号として信号周期検出装置100へ取り込んだが、入力信号の形態としてはこれに限られるものではない。例えば、予め記憶部12へ信号をデータとして記憶しておいても良いし、信号周期検出装置100をネットワークへ接続しておき、そのネットワークを介して既存の信号のデータを取り込んで処理を施しても良い。
【0064】
例えば、ベルトコンベア上を流れる商品等の個数を検知する赤外線検知装置等から出力される周期的な信号に対して、その信号の周期を検出する場合等に適用することも可能である。
【0065】
本実施の形態では、所定の閾値を超えるピーク領域の最大点をピークとして抽出したが、入力信号の態様によって異なる信号の特徴点を抽出して処理を行っても良い。例えば、極小値をとる信号部分や信号の変極点等を特徴点として抽出しても同様の作用および効果を得ることができる。
【0066】
以上のように、本実施の形態によれば、信号の変化がなだらかな場合やピークとして抽出された部分のノイズが高い場合にも、これらの影響を受けることなく信頼性高く評価値を求められ、正確に信号の周期を検出することができる。また、異なるピーク間隔の組合せによって全体の周期が定まる場合でも、正確に信号の周期を求めることができる。さらに、全てのサンプリングデータに対して自己相関関数の計算を行う必要がなく、処理に必要な記憶容量を小さくでき、高速に信号の周期を求めることができる。
【0067】
【発明の効果】
本発明によれば、入力信号の周期の評価および検出を高速かつ正確に行うことができる。特に、信号の変化がなだらかな場合や信号中のノイズが大きい場合においても、正確に信号の周期を評価および検出することができる。
【0068】
また、異なるピーク間隔の組合せによって信号の周期が定まる場合でも、正確に信号の周期を求めることができる。
【図面の簡単な説明】
【図1】本発明の実施の形態における信号周期検出装置の構成のブロック図である。
【図2】本発明の実施の形態における信号周期検出方法のフローチャートを示す図である。
【図3】本発明の実施の形態における信号からのピークの抽出の作用の説明図である。
【図4】本発明の実施の形態におけるピーク列のシフト処理の説明図である。
【図5】本発明の実施の形態における評価値S(τ)の算出処理のフローチャートを示す図である。
【図6】本発明の実施の形態における評価値S(τ)の算出結果の一例を示す図である。
【図7】本発明の実施の形態における評価値S(τ)の算出結果の別の一例を示す図である。
【図8】減衰振動を伴う入力信号の一例を示す図である。
【図9】従来技術による減衰振動を伴う入力信号に対する自己相関値の算出結果を示す図である。
【図10】異なるピーク間隔の組合せによって周期Tが定まる入力信号の一例を示す図である。
【符号の説明】
10 制御部、12 記憶部、14 出力部、16 入力部、18 データインターフェース部、20 バス、22 マイクロフォン、100 信号周期検出装置。
Claims (9)
- 入力信号の周期Tを検出する信号周期検出装置であって、
前記入力信号から所定条件を満たす複数の特徴点を抽出する手段と、
シフト時間τを順次変化させて、当該シフト時間τ毎に評価値S(τ)を算出する手段であって、
前記複数の特徴点の各々を前記シフト時間τだけシフトする手段と、
前記シフト前の特徴点と前記シフト後の特徴点との相関関係に基づいて前記シフト時間τに対する評価値S(τ)を算出する手段と、を含む手段と、
前記シフト時間τ毎に対して算出された評価値S(τ)に基づいて前記入力信号の周期Tを検出する手段と、
を含むことを特徴とする信号周期検出装置。 - 請求項1に記載の信号周期検出装置において、
前記シフト前の特徴点と前記シフト後の特徴点との相関関係に基づいて前記シフト時間τに対する評価値S(τ)を算出する手段は、
前記シフト前の特徴点のうちから1つを順次選択し、前記シフト前の特徴点毎に相関値を算出する手段であって、
前記シフト後の特徴点のうちから、前記選択されたシフト前の特徴点と所定条件を満たす前記シフト後の特徴点を順次選択し、前記選択されたシフト前の特徴点と前記選択されたシフト後の特徴点との時間差に基づいて、前記選択されたシフト前の特徴点に対する相関値を算出する手段と、
前記シフト前の特徴点毎に算出された相関値に基づいて、前記シフト時間τに対する評価値S(τ)を算出する手段と、
を含むことを特徴とする信号周期検出装置。 - 請求項1に記載の信号周期検出装置において、
前記シフト前の特徴点と前記シフト後の特徴点との相関関係に基づいて前記シフト時間τに対する評価値S(τ)を算出する手段は、
前記シフト前の特徴点のうちから1つを順次選択し、前記シフト前の特徴点毎に相関値を算出する手段であって、
前記シフト後の特徴点のうちから、前記選択されたシフト前の特徴点と所定条件を満たす前記シフト後の特徴点を順次選択し、前記選択されたシフト前の特徴点の信号強度及び出現時刻と前記選択されたシフト後の特徴点の信号強度及び出現時刻とに基づいて、前記選択されたシフト前の特徴点に対する相関値を算出する手段と、
前記シフト前の特徴点毎に算出された相関値に基づいて、前記シフト時間τに対する評価値S(τ)を算出する手段と、
を含むことを特徴とする信号周期検出装置。 - 入力信号の周期Tを検出する信号周期検出方法であって、
前記入力信号から所定条件を満たす複数の特徴点を抽出する工程と、
シフト時間τを順次変化させて、当該シフト時間τ毎に評価値S(τ)を算出する工程であって、
前記複数の特徴点の各々を前記シフト時間τだけシフトする工程と、
前記シフト前の特徴点と前記シフト後の特徴点との相関関係に基づいて前記シフト時間τに対する評価値S(τ)を算出する工程と、を含む工程と、
前記シフト時間τ毎に算出された評価値S(τ)に基づいて前記入力信号の周期Tを検出する工程と、
を含むことを特徴とする信号周期検出方法。 - 請求項4に記載の信号周期検出方法において、
前記シフト前の特徴点と前記シフト後の特徴点との相関関係に基づいて前記シフト時間τに対する評価値S(τ)を算出する工程は、
前記シフト前の特徴点のうちから1つを順次選択し、前記シフト前の特徴点毎に相関値を算出する工程であって、
前記シフト後の特徴点のうちから、前記選択されたシフト前の特徴点と所定条件を満たす前記シフト後の特徴点を順次選択し、前記選択されたシフト前の特徴点と前記選択されたシフト後の特徴点との時間差に基づいて、前記選択されたシフト前の特徴点に対する相関値を算出する工程と、
前記シフト前の特徴点毎に算出された相関値に基づいて、前記シフト時間τに対する評価値S(τ)を算出する工程と、
を含むことを特徴とする信号周期検出方法。 - 請求項4に記載の信号周期検出方法において、
前記シフト前の特徴点と前記シフト後の特徴点との相関関係に基づいて前記シフト時間τに対する評価値S(τ)を算出する工程は、
前記シフト前の特徴点のうちから1つを順次選択し、前記シフト前の特徴点毎に相関値を算出する工程であって、
前記シフト後の特徴点のうちから、前記選択されたシフト前の特徴点と所定条件を満たす前記シフト後の特徴点を順次選択し、前記選択されたシフト前の特徴点の信号強度及び出現時刻と前記選択されたシフト後の特徴点の信号強度及び出現時刻とに基づいて、前記選択されたシフト前の特徴点に対する相関値を算出する工程と、
前記シフト前の特徴点毎に算出された相関値に基づいて、前記シフト時間τに対する評価値S(τ)を算出する工程と、
を含むことを特徴とする信号周期検出方法。 - 入力信号の周期Tを検出する信号周期検出プログラムであって、
コンピュータに、
前記入力信号から所定条件を満たす複数の特徴点を抽出する工程と、
シフト時間τを順次変化させて、当該シフト時間τ毎に評価値S(τ)を算出する工程であって、
前記複数の特徴点の各々を前記シフト時間τだけシフトする工程と、
前記シフト前の特徴点と前記シフト後の特徴点との相関関係に基づいて前記シフト時間τに対する評価値S(τ)を算出する工程と、を含む工程と、
前記シフト時間τ毎に算出された評価値S(τ)に基づいて前記入力信号の周期Tを検出する工程と、
を含む処理を実行させることを特徴とする信号周期検出プログラム。 - 請求項7に記載の信号周期検出プログラムにおいて、
前記シフト前の特徴点と前記シフト後の特徴点との相関関係に基づいて前記シフト時間τに対する評価値S(τ)を算出する工程は、
前記シフト前の特徴点のうちから1つを順次選択し、前記シフト前の特徴点毎に相関値を算出する工程であって、
前記シフト後の特徴点のうちから、前記選択されたシフト前の特徴点と所定条件を満たす前記シフト後の特徴点を順次選択し、前記選択されたシフト前の特徴点と前記選択されたシフト後の特徴点との時間差に基づいて、前記選択されたシフト前の特徴点に対する相関値を算出する工程と、
前記シフト前の特徴点毎に算出された相関値に基づいて、前記シフト時間τに対する評価値S(τ)を算出する工程と、
を含むことを特徴とする信号周期検出プログラム。 - 請求項7に記載の信号周期検出プログラムにおいて、
前記シフト前の特徴点と前記シフト後の特徴点との相関関係に基づいて前記シフト時間τに対する評価値S(τ)を算出する工程は、
前記シフト前の特徴点のうちから1つを順次選択し、前記シフト前の特徴点毎に相関値を算出する工程であって、
前記シフト後の特徴点のうちから、前記選択されたシフト前の特徴点と所定条件を満たす前記シフト後の特徴点を順次選択し、前記選択されたシフト前の特徴点の信号強度及び出現時刻と前記選択されたシフト後の特徴点の信号強度及び出現時刻とに基づいて、前記選択されたシフト前の特徴点に対する相関値を算出する工程と、
前記シフト前の特徴点毎に算出された相関値に基づいて、前記シフト時間τに対する評価値S(τ)を算出する工程と、
を含むことを特徴とする信号周期検出プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002184069A JP2004028730A (ja) | 2002-06-25 | 2002-06-25 | 信号周期検出装置、信号周期検出方法および信号周期検出プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002184069A JP2004028730A (ja) | 2002-06-25 | 2002-06-25 | 信号周期検出装置、信号周期検出方法および信号周期検出プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004028730A true JP2004028730A (ja) | 2004-01-29 |
Family
ID=31180066
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002184069A Pending JP2004028730A (ja) | 2002-06-25 | 2002-06-25 | 信号周期検出装置、信号周期検出方法および信号周期検出プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004028730A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007272118A (ja) * | 2006-03-31 | 2007-10-18 | Fujifilm Corp | 楽曲テンポ抽出方法、装置及びプログラム |
JP2010134013A (ja) * | 2008-12-02 | 2010-06-17 | Panasonic Electric Works Co Ltd | 信号処理装置及び信号処理方法 |
-
2002
- 2002-06-25 JP JP2002184069A patent/JP2004028730A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007272118A (ja) * | 2006-03-31 | 2007-10-18 | Fujifilm Corp | 楽曲テンポ抽出方法、装置及びプログラム |
JP4632136B2 (ja) * | 2006-03-31 | 2011-02-16 | 富士フイルム株式会社 | 楽曲テンポ抽出方法、装置及びプログラム |
JP2010134013A (ja) * | 2008-12-02 | 2010-06-17 | Panasonic Electric Works Co Ltd | 信号処理装置及び信号処理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI426501B (zh) | 旋律辨識方法與其裝置 | |
Ross et al. | Average magnitude difference function pitch extractor | |
EP0459364B1 (en) | Noise signal prediction system | |
JP4587160B2 (ja) | 信号処理装置および方法 | |
JP5728888B2 (ja) | 信号処理装置および方法、並びにプログラム | |
US5774836A (en) | System and method for performing pitch estimation and error checking on low estimated pitch values in a correlation based pitch estimator | |
CN110599987A (zh) | 基于卷积神经网络的钢琴音符识别算法 | |
CA2750037A1 (en) | Apparatus, method and computer program for obtaining a parameter describing a variation of a signal characteristic of a signal | |
JP4622199B2 (ja) | 楽曲検索装置及び楽曲検索方法 | |
JP6729515B2 (ja) | 楽曲解析方法、楽曲解析装置およびプログラム | |
CN112967735A (zh) | 语音质量检测模型的训练方法及语音质量的检测方法 | |
TW201501118A (zh) | 所接收含有回聲、混響和/或雜訊的聲頻訊號中水印符號之決定方法和裝置 | |
JP2004028730A (ja) | 信号周期検出装置、信号周期検出方法および信号周期検出プログラム | |
JP5092876B2 (ja) | 音響処理装置およびプログラム | |
JPH0675562A (ja) | 自動採譜装置 | |
JP2004081745A5 (ja) | ||
JP2004102023A (ja) | 特定音響信号検出方法、信号検出装置、信号検出プログラム及び記録媒体 | |
JPH10301594A (ja) | 有音検出装置 | |
JP2003317368A (ja) | パルス性ノイズのデジタル信号処理による検出および除去方法 | |
JP4381383B2 (ja) | 判別装置、判別方法、プログラム、及び記録媒体 | |
CN113557565A (zh) | 乐曲解析方法及乐曲解析装置 | |
JP2004029274A (ja) | 信号パターン評価装置、信号パターン評価方法及び信号パターン評価プログラム | |
US11961517B2 (en) | Continuous utterance estimation apparatus, continuous utterance estimation method, and program | |
JP3919359B2 (ja) | 楽音信号のアタック位置検出装置 | |
Bonarini et al. | A composite system for real-time robust whistle recognition |