(57)【要約】  【課題】  検出周期の相対誤差を一定の範囲内に低減し、周期検出処理時間を低減し、検出期間中に発生する周期変動誤差の影響を低減する。  【解決手段】  ゼロクロス方式により入力離散信号の１周期分の合計サンプル数ａ１を求め、該合計サンプル数ａ１と予め設定した相対誤差許容値Ｅとから測定すべき周期個数Ｎを求め、周期個数Ｎ分の合計サンプル数ａを求め、前記周期個数Ｎと前記周期個数Ｎ分の合計サンプル数ａとに基づき周波数ｆを求める。【選択図】  図２
2006113416.tif 000002
【特許請求の範囲】
【請求項１】
ゼロクロス方式により入力離散信号の１周期分の合計サンプル数ａ１を求める第１のステップと、
該第１のステップで求めた１周期分の合計サンプル数ａ１と予め設定した相対誤差許容値Ｅとから測定すべき周期個数Ｎを求める第２のステップと、
前記第１のステップと同様な処理の繰り返しにより前記第２のステップで求めた周期個数Ｎ分の合計サンプル数ａを求める第３のステップと、
前記第２のステップで求めた周期個数Ｎと前記第３のステップで求めた周期個数Ｎ分の合計サンプル数ａとに基づき周波数を求める第４のステップと、
を具備することを特徴とする周波数検出方法。
【請求項２】
請求項１に記載の周波数検出方法において、
前記第３のステップは、隣り合う２個の周期の各々の合計サンプル数から相対誤差ｅを求め、該相対誤差ｅが前記相対誤差許容値Ｅ又は別に設定した相対誤差許容値以上のとき、前記第２のステップに戻すことを特徴とする周波数検出方法。
【請求項３】
入力離散信号を格納する記憶手段と、該記憶手段に格納された離散信号からゼロクロス方式により該離散信号の１周期分の合計サンプル数ａ１を検出するゼロクロス検出手段と、該ゼロクロス検出手段で検出された１周期分の合計サンプル数ａ１と予め設定した相対誤差許容値Ｅとから測定すべき周期個数Ｎを算出する誤差低減係数算出手段と、該誤差低減係数算出手段で算出された周期個数Ｎ分の合計サンプル数ａを得る周期検出手段と、該周期検出手段で得られた合計サンプル数ａと前記周期個数Ｎとから周波数を算出する演算手段とを具備することを特徴とする周波数検出装置。
【請求項４】
請求項３に記載の周波数検出装置において、
前記周期検出回路は、上記ゼロクロス方式を用いて検出された隣接する２個の周期のそれぞれの合計サンプル数から求めた相対誤差ｅが前記相対誤差許容値Ｅ又は別に設定した相対誤差許容値以上になったとき周期個数Ｎ分の合計サンプル数ａの検出を停止して、再度前記誤差低減係数算出手段による周期個数Ｎの算出処理に戻すことを特徴とする周波数検出装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、周期性を持つアナログ信号（電磁波、音声）をサンプリングし量子化した離散信号（デジタル信号）からその周期を求めて周波数を検出する周波数検出方法および装置に関するものである。
【背景技術】
【０００２】
周期性信号の周期または周波数を求める方式として、従来から、周期性信号がゼロ点をクロスする性質を利用するゼロクロス方式が用いられてきた（例えば、特許文献１、２参照）。ここで、周期性信号とは、その０Ｈｚの振幅成分（直流振幅成分）が振幅の最大値と比べて十分に小さく、ゆえに、振幅の平均値が限りなくゼロであるような性質、つまり直流バイアス成分が限りなく０であるような交流信号をいう。
【０００３】
ゼロクロス点は、周期性信号がゼロを通過する点（座標）である。たとえば、
ｙ（ｔ）＝ｓｉｎ（２πｔ）    （ｔ＞０）                （１）
で表される信号ｙ（ｔ）のゼロクロス点、すなわち、ｙ（ｔ）がゼロになるｔの値は、０．５、１．０、１．５、・・・である。この例のように、信号が一定の周期性を持つことが自明であれば、隣り合う２つのゼロクロス点から当該信号の半周期の時間を得、これを基に周波数を求めることができる。
【０００４】
上記のようなゼロクロス方式を用いた従来の周波数検出のフローチャートを図４に示す。この図４の処理は、当該フローチャートで表されるプログラムが記憶されたアドレッシング可能な外部記憶装置と、算術論理演算機能を有する演算装置と、上記外部記憶装置と比べて高速アクセスが可能なレジスタおよび内部記憶装置と、命令レジスタおよび命令デコーダで構成される制御装置と、これら装置が電気的に接続されたデータバスおよびアドレスバスを具備したデジタル信号処理装置を用いて実現できる。
【０００５】
図４のステップＳ４４で表される信号Ｙ（ｎ）は、前記したような性質を有する周期性信号を、Ａ／Ｄ変換回路によってサンプリングし、該Ａ／Ｄ変換回路の構成で決まるビット幅で量子化した離散信号である。この信号Ｙ（ｎ）はリングバッファ等の記憶装置に格納され、該記憶装置は制御装置を用いて読み書き可能である。信号Ｙ（ｎ）の引数ｎは離散量（サンプリング番号）を表し、隣接２点間の離散信号の時間間隔はサンプリング周期Ｔｓとなる。Ｚｓ，Ｚｅはそれぞれ、ゼロクロス点を表す変数（サンプリング番号）であり、内部記憶装置の特定の番地かレジスタに一時的に格納される。後記する変数ｎも同様の変数（サンプリング番号）である。ｎ１、ｎ２は離散信号の値（レベルと極性をもつ）であり、同様に記憶装置に格納される。図４の処理の流れは以下のとおりである。
【０００６】
ステップＳ４１で信号Ｙ（ｎ）の読み出しサンプリング点の開始位置を初期化（ｎ＝０）する。ステップＳ４２でゼロクロス点を保持する第１番目の変数Ｚｓを初期化（Ｚｓ＝０）する。ステップＳ４３でゼロクロス点を保持する第２番目の変数Ｚｅ’を初期化（Ｚｅ’＝０）する。ステップＳ４４で記憶装置から信号Ｙ（ｎ）の値ｎ１を読み出して、変数ｎ１に格納する。ステップＳ４５で記憶装置から信号Ｙ（ｎ＋１）の値ｎ２を読み出して、変数ｎ２に格納する。Ｓ４６で変数ｎを１増分しておく。ステップＳ４７でｎ１×ｎ２を算出し、もし（ｎ１×ｎ２）≦０の場合は、ｎ１の値とｎ２の値の極性が異なることを示すのでゼロクロス点を横切ったとしてステップＳ４８に進み、そのときの変数ｎ（＝ｎ＋１）をゼロクロス点Ｚｓとして変数Ｚｓに格納する。（ｎ１×ｎ２）＞０の場合はゼロクロス点を横切っていないのでステップＳ４４に戻り、ステップＳ４７までの処理を再度繰り返す。ゼロクロス点Ｚｓが検出された後は、同様にして、ステップＳ４９〜Ｓ５３の処理により、次のゼロクロス点Ｚｅ’を検出する。ゼロクロス点ＺｓとＺｅ’の間隔は半周期分を示すので、ステップＳ５４で、周期Ｔｓおよび上記より得られたゼロクロス点Ｚｓ，Ｚｅ’から周波数ｆを、
ｆ＝１／２Ｔｓ（Ｚｅ’−Ｚｓ）                  （２）
により求める。ただし、上記信号Ｙ（ｎ）は、その最大周波数がナイキスト周波数以下に帯域制限されていること、および周期の変動がないことの前提条件を満たすものとする。
【０００７】
具体例として、図５に示す離散信号のサンプリング周期Ｔｓが０．１ミリ秒であるとし、これを図４に示したフローチャートにより処理すると、ゼロクロス点Ｚｓ，Ｚｅ’はそれぞれ１０，２０になる。したがって、検出周期Ｔは
Ｔ＝２×０．１×（２０−１０）＝２ミリ秒        （３）
となる。よって、検出周波数は５００Ｈｚとなる。このように、被測定信号が上記前提条件を備えた離散信号であるならば、ゼロクロス方式を用いることで当該信号の周期および周波数を求めることができる。
【特許文献１】特開平１０−０４９１４８号公報
【特許文献２】特開平１１−１１８８４６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
ところが、図４に示す手法では、信号の周期が短くなるほど、サンプリング周期Ｔｓに対する当該周期の割合が小さくなるので、相対誤差が大きくなる。たとえば、サンプリング周期Ｔｓが０．１ミリ秒で４ｋＨｚの周期性をもった離散信号の周期を検出する場合、ゼロクロス検出の最小単位はサンプリング周期Ｔｓであるため、たとえゼロクロス検出区間を半周期でなく１周期に長くしたとしても、４ｋＨｚ、つまり０．２５ミリ秒周期の信号は０．２ミリ秒（５ＫＨｚ）または０．３ミリ秒（３．３ＫＨｚ）のいずれか一方でゼロクロス点が認識される。相対誤差ｅは検出周期をＴ、真の周期をＴｏとすると、次の（４）式
ｅ＝（｜Ｔ−Ｔｏ｜／Ｔｏ）×１００（％）                （４）
で表されるので、このときの相対誤差ｅは
ｅ＝（０．３−０．２５）／０．２５＝０．２
つまり２０％になる。
【０００９】
そこで、相対誤差ｅを減らすためには、サンプリング周期Ｔｓの長さに対してゼロクロス検出区間を長くすれば良いので、ゼロクロス検出の対象となる周期を２個以上にわたり加算すればよい。たとえば、０．２５ミリ秒周期の信号を４周期分だけ加算すると、（４）式の｜Ｔ−Ｔｏ｜の最大値はサンプリング周期Ｔｓである０．１ミリ秒であるのに対し、Ｔｏは０．２５×４＝１．０と大きくなるので、相対誤差ｅは
ｅ＝０．１／１．０＝０．１
つまり１０［％］に低減される。
【００１０】
しかしながら、上記方法によっても２つの問題点が新たに発生する。第１の問題点は、周期の検出中に信号の周期が何らかの原因によって変動すると、検出区間中から得られるゼロクロス点から周期および周波数を計算する際に誤差が発生することである。特に、計測対象外の周波数成分（雑音）が多く含まれやすい自然環境で計測した周期性信号は、その雑音により高い確率で検出中に周期が変動する。従って、高い演算精度が要求される計測の分野において、第１の問題点は、このゼロクロス方式を応用した技術や製品の品質を損なう結果となる。
【００１１】
第２の問題点は、信号の周期が長くなるほど、必要な個数の周期信号を検出するまでの時間が長くかかることである。通信分野のパケット伝送のように、処理上の遅延が発生することを前提とし、かつ、それが許される待機系システムのような場合においては問題ないものの、デジタル信号処理装置を用いたシステムのように処理時間の性能が要求される場合において、第２の問題点は、第１の問題点と同様に、このゼロクロス方式を応用した技術や製品の品質を損なう結果となる。
【００１２】
本発明は、上記２つの問題点を解消し、検出周期の相対誤差を一定の範囲内に低減し、かつ周期検出処理時間を低減するとともに、検出期間中に発生する周期変動誤差の影響を低減し、結果として検出精度を改善した周波数を検出することを目的とする。
【課題を解決するための手段】
【００１３】
請求項１にかかる発明の周波数検出方法は、ゼロクロス方式により入力デジタル信号の１周期分の合計サンプル数ａ１を求める第１のステップと、該第１のステップで求めた１周期分の合計サンプル数ａ１と予め設定した相対誤差許容値Ｅとから測定すべき周期個数Ｎを求める第２のステップと、前記第１のステップと同様な処理により前記第２のステップで求めた周期個数Ｎ分の合計サンプル数ａを求める第３のステップと、前記第２のステップで求めた周期個数Ｎ分と前記第３のステップで求めた周期個数Ｎ分の合計サンプル数ａとに基づき周波数を求める第４のステップと、を具備することを特徴とする。
【００１４】
請求項２にかかる発明は、請求項１に記載の周波数検出方法において、前記第３のステップは、隣り合う２個の周期の各々の合計サンプル数から相対誤差ｅを求め、該相対誤差ｅが前記相対誤差許容値Ｅ又は別に設定した相対誤差許容値以上のとき、前記第２のステップに戻すことを特徴とする。
【００１５】
請求項３にかかる発明の周波数検出装置は、入力離散信号を格納する記憶手段と、該記憶手段に格納された離散信号からゼロクロス方式により該離散信号の１周期分の合計サンプル数ａ１を検出するゼロクロス検出手段と、該ゼロクロス検出手段で検出された１周期分の合計サンプル数ａ１と予め設定した相対誤差許容値Ｅとから測定すべき周期個数Ｎを算出する誤差低減係数算出手段と、該誤差低減係数算出手段で算出された周期個数Ｎ分の合計サンプル数ａを得る周期検出手段と、該周期検出手段で得られた合計サンプル数ａと前記周期個数Ｎとから周波数を算出する演算手段とを具備することを特徴とする。
【００１６】
請求項４にかかる発明は、請求項３に記載の周波数検出装置において、前記周期検出回路は、上記ゼロクロス方式を用いて検出された隣接する２個の周期のそれぞれの合計サンプル数から求めた相対誤差ｅが前記相対誤差許容値Ｅ又は別に設定した相対誤差許容値以上になったとき周期個数Ｎ分の合計サンプル数ａの検出を停止して、再度前記誤差低減係数算出手段による周期個数Ｎの算出処理に戻すことを特徴とする。
【発明の効果】
【００１７】
請求項１，３にかかる発明によれば、必要となる周期個数Ｎが相対誤差許容値Ｅとの関係で必要最小限度の値として算出されるので、検出周期の相対誤差を一定の範囲内に低減しつつ、周期検出処理時間を低減することができる。また、請求項２，４にかかる発明によれば、１周期分の合計サンプル数を得る毎に、前回得た１周期分の合計サンプル数とによる相対誤差ｅを相対誤差許容値Ｅ又は別に設定した相対誤差許容値と比較し、相対誤差ｅが相対誤差許容値以上になったときは再度周期個数Ｎを得る処理に戻るので、周期変動の影響を低減することができる。したがって、周波数検出精度が向上し、計測対象となる信号以外の雑音が含まれやすい自然環境で計測した信号の周期を計測する計測システムへの応用に効果的である。
【発明を実施するための最良の形態】
【００１８】
図１は本発明の実施例の周波数検出装置の構成を示すブロック図である。本実施例の周波数検出装置は、アンチエリアジングフィルタ（ＡＡＦ）１、Ａ／Ｄ変換回路２、ローパスフィルタ（ＬＰＦ）３、リングバッファ（記憶装置）４、ゼロクロス検出回路５、誤差低減係数算出回路６、周期検出回路７、除算回路８、および乗算回路９で構成される。
【００１９】
アンチエリアジングフィルタ１は、一般的には、演算増幅器および受動素子（抵抗、コンデンサ、コイル等）の組み合わせで構成されるＮ次ローパスフィルタであり、これにより、Ａ／Ｄ変換回路２以降の処理で折り返し歪が発生するのを防ぐ。Ａ／Ｄ変換回路２は、入力するアナログ信号を一定の時間間隔Ｔｓでサンプリングし、サンプリングした全ての信号を、Ａ／Ｄ変換回路の構成によって決まるビット幅で量子化する。ローパスフィルタ３はＡ／Ｄ変換された信号中のナイキスト周波数以下の周波数帯域成分を除去する。リングバッファ４は、ローパスフィルタ３から出力する各サンプリング点の信号やサンプル番号その他を格納するメモリであり、アクセスアドレスが単調増加する条件において、アドレスが最大を超えた場合に、最小アドレスに戻ることにより、無限大のアドレス空間を擬似的に実現する。ゼロクロス検出回路５は、後記する図３のフローチャートに示す処理により１周期分の２個のゼロクロス点Ｚｓ，Ｚｅを検出する。誤差低減係数算出回路６は、ゼロクロス検出回路５で得た１周期分の合計サンプル数ａ１から、相対誤差ｅを予め設定した相対誤差許容値Ｅ未満に低減するのに必要な周期個数Ｎを算出する。周期検出回路７は誤差低減係数算出回路６で得た周期個数Ｎと、リングバッファ４に記憶された信号から図３のフローチャートに示す処理によりＮ周期分の合計サンプル数ａを算出する。除算回路８は、周期検出回路７で得た合計サンプル数ａの逆数（１／ａ）を得る。なお、除算機能を具備したデジタル信号処理装置があればこれを用い、除算機能がなければ加減算回路および乗算回路を用いて除算機能を実現する。乗算回路９は、除算回路８で得られた除数（１／ａ）と誤差低減係数算出回路６で得られた周期個数Ｎとから、周波数ｆを得る。この乗算回路９は、積和演算機能を有するデジタル信号処理装置には殆どの場合で具備されている。
【００２０】
次に、本実施例の周波数検出装置の動作を図２および図３のフローチャートも参照して説明する。まず、計測対象となるアナログ信号をアンチエリアジングフィルタ１で処理する。アナログ信号には目的とする計測対象信号以外にノイズといわれる自然界の光、電磁波、音、熱等を要因とした雑音が必ず含まれる。特に、ノイズが白色雑音の性質を有するならば、その周波数帯域は無限大である。しかし、Ａ／Ｄ変換回路２以降の離散信号処理を扱うデジタル信号処理システムにおいては、サンプリング定理によりサンプリング周波数の１／２（ナイキスト周波数）以上の周波数帯域は扱えない。そこで、Ａ／Ｄ変換回路２で処理する前に、アンチエリアジングフィルタ１でナイキスト周波数以上の周波数成分を除去する。
【００２１】
アンチエリアジングフィルタ１で処理したアナログ信号を、Ａ／Ｄ変換回路２でサンプリングし、量子化して離散信号に変換し、これをローパスフィルタ３で帯域除去しリングバッファ４に格納する。
【００２２】
次に、ゼロクロス検出回路５により信号の１周期分の合計サンプル数ａ１を検出する。この検出方法は従来技術とほぼ同じであり、図２のステップＳ１により処理される。なお、ステップＳ１の「ゼロクロスＹ（ｎ）」は、変数ｎを処理の開始位置とした図３に示すゼロクロス点検出処理を実行することを意味する。この図３では図４で説明した半周期分の合計サンプル数（Ｚｅ’−Ｚｓ）ではなく、１周期分の合計サンプル数ａ１（＝Ｚｅ−Ｚｓ）を得る。また、変数ｎ（サンプル番号）はグローバル変数としての意味を持つため、ステップＳ１実行直後の変数ｎは、図３のステップＳ３７の実行後の変数ｎと同じである。
【００２３】
誤差低減係数算出回路６は、図２のステップＳ２により処理される。Ｎは予め設定した相対誤差許容値Ｅ（％）以下にするために最低必要な周期個数である。相対誤差許容値Ｅは（４）式の考え方を踏襲すると、（４）式の「｜Ｔ−Ｔｏ｜」の最大値はサンプリング周期Ｔｓであり、ＴｏはＮ周期分の時間「ａ１×Ｔｓ×Ｎ」であるので、
Ｅ≧｛Ｔｓ／（ａ１×Ｔｓ×Ｎ）｝×１００（％）               （５）
となる。この（５）式を整理すると、周期個数Ｎは、
Ｎ≧｛１／（ａ１×Ｅ）｝×１００（％）                       （６）
となる。ただし、この周期個数Ｎは小数点以下を切り上げた整数である。したがって、例えば、相対誤差許容値Ｅを１０（％）とすると、周期個数Ｎは、
Ｎ＝｛１／（ａ１×１０）｝×１００（％）
＝１０／ａ１                                              （７）
となる。ここで、周期個数Ｎが小さくならないように、「ａ１」→「ａ１−１」に変形する。さらに、積算処理を開始する前に検出された１周期分を外すと、（７）式は、
Ｎ＝[１０／（ａ１−１）]−１                                （８）
となる。ステップＳ２では、この（８）式により周期個数Ｎを検出する。そして、周期個数Ｎを算出した後は、周期検出回路７でＮ周期分の合計サンプル数ａを積算検出する。この周期検出回路７による処理は、図２のステップＳ３〜Ｓ１０により、以下のように行われる。
【００２４】
ステップＳ３においては、ステップＳ１で算出した１周期の合計サンプル数ａ１を変数ａに格納する。ステップＳ４においては、ステップＳ１０と対でステップＳ４〜Ｓ９の一連の処理をＮ回繰り返す。ステップＳ５は、ステップＳ１と同様（図３）のゼロクロス方式により得た次回の１周期分の合計サンプル数ａ２を格納する。ステップＳ６は隣接する１周期分の２つの合計サンプル数ａ１とａ２の相対誤差ｅを得る。相対誤差ｅは、（４）式と同様に、
ｅ＝{｜ａ２−ａ１｜／ａ１}×１００（％）                  （９）
である。ステップＳ７は次のループ処理のための、変数の入れ換え処理である。ステップＳ８は相対誤差ｅが相対誤差許容値Ｅより小さければ、周期の変動はないと見なしステップＳ９に移行し、合計サンプル数ａを更新する。以上により、ステップＳ４〜Ｓ１０のループを脱出した時点において得られる合計サンプル数ａは、ゼロクロスにより検出された連続したＮ周期分の合計サンプル数を示すことになる。ステップＳ１１では、図１の除算回路８で算出した除数１／ａと周期個数Ｎとの積を乗算回路９で求めることによって、相対誤差を低減した周波数ｆが、
ｆ＝１／[Ｎ・（１／ａ）]
＝１／（Ｎ／ａ）                                        （１０）
により得られる。なお、ステップＳ８においてｅ≧Ｅのときは、周期検出中に周期変動があったと見なし、ステップＳ２に戻って、再び周期個数Ｎを算出して、Ｎ周期分の合計サンプル数ａを求める同様な処理を繰り返し、周期変動の影響を低減する。
【００２５】
本実施例ではこのように、１回目に検出した１周期分の合計サンプル数ａ１と予め設定した相対誤差許容値Ｅを基に周期個数Ｎを求め、２回目に検出した１周期分の合計サンプル数ａ２と１回目の合計サンプル数ａ１により相対誤差ｅを求め、この相対誤差ｅが相対誤差許容値Ｅ未満の場合にのみ以後に周期個数Ｎ分の合計サンプル数ａを求めて周波数ｆを検出するものであり、サンプリング誤差を相対誤差許容値Ｅ未満に低減することができる。
【００２６】
また、周期個数Ｎ分の合計サンプル数ａを求める際には、個々の１周期分の合計サンプル数ａ２を検出する毎に前回検出した合計サンプル数ａ１との相対誤差ｅが相対誤差許容値Ｅ以上になると、次の処理を周期個数Ｎを算出のステップＳ２に戻すので、周期変動の影響を低減することができる。
【００２７】
なお、ステップＳ８の相対誤差許容値ＥはステップＳ２で周期個数Ｎの算出に用いた相対誤差許容値Ｅと同じでも、また別に設定した相対誤差許容値であっても良い。
【図面の簡単な説明】
【００２８】
【図１】本発明の実施例の周波数検出装置の構成を示すブロック図である。
【図２】図１の周波数検出装置の動作のフローチャートである。
【図３】本発明の実施例のゼロクロス方式による周期検出のフローチャートである。
【図４】従来のゼロクロス方式による半周期検出のフローチャートである。
【図５】ゼロクロス方式による周波数検出の誤差の説明図である。
【符号の説明】
【００２９】
１：アンチエリアジングフィルタ（ＡＡＦ）
２：Ａ／Ｄ変換回路
３：ローパスフィルタ（ＬＰＦ）
４：リングバッファ（記憶装置）
５：ゼロクロス検出回路
６：誤差低減係数算出回路
７：周期検出回路
８：除算回路
９：乗算回路
【図１】
2006113416.tif 000003
【図２】
2006113416.tif 000004
【図３】
2006113416.tif 000005
【図４】
2006113416.tif 000006
【図５】
2006113416.tif 000007