(57)【要約】【課題】少ない計算量で波形パターンの検出をできるようにして、実時間での検出を可能にする。【解決手段】波形パターンを表わす一連の波形数値に基づいて、上昇回数算出部１３１、下降回数算出部１３３、変曲回数算出部１４１などの波形特徴量算出部が、上昇回数、下降回数、変曲回数など、対象波形パターンの特徴を表わす波形特徴量を算出する。算出した波形特徴量と、比較パターンの特徴を表わす比較特徴量とに基づいて、類似度算出部１８２が、類似度を算出する。算出した類似度に基づいて、類似判定部１８４が、対象波形パターンが比較パターンに近いか否かを判定する。【選択図】図４
2010216849.tif 000002
【特許請求の範囲】
【請求項１】
一連の数値によって表わされる波形パターンのなかから、所定数の一連の数値によって表わされる比較パターンに近い部分を検出する波形パターン検出装置において、
データを記憶する記憶装置と、データを処理する処理装置と、波形記憶部と、波形特徴量算出部と、比較特徴量記憶部と、類似度算出部と、類似判定部とを有し、
上記波形記憶部は、上記記憶装置を用いて、上記波形パターンを表わす一連の数値を、一連の波形数値として記憶し、
上記波形特徴量算出部は、上記処理装置を用いて、上記波形記憶部が記憶した一連の波形数値のうち少なくともいずれかの波形数値を対象波形数値とし、上記対象波形数値以前の上記所定数の波形数値を一連の部分波形数値とし、上記一連の部分波形数値の特徴を表わす特徴量を算出して、上記対象波形数値についての波形特徴量とし、
上記比較特徴量記憶部は、上記記憶装置を用いて、上記比較パターンを表わす一連の数値の特徴を表わす特徴量を、比較特徴量として記憶し、
上記類似度算出部は、上記処理装置を用いて、上記波形特徴量算出部が算出した波形特徴量と、上記比較特徴量記憶部が記憶した比較特徴量とに基づいて、上記波形パターンのうち上記一連の部分波形数値によって表わされる部分と、上記比較パターンとの類似度を算出し、
上記類似判定部は、上記処理装置を用いて、上記類似度算出部が算出した類似度に基づいて、上記波形パターンのうち上記一連の部分波形数値によって表わされる部分が、上記比較パターンに近いか否かを判定することを特徴とする波形パターン検出装置。
【請求項２】
上記波形特徴量算出部は、上記処理装置を用いて、対象波形数値についての波形特徴量を、上記対象波形数値の一つ前の波形数値について算出した波形特徴量に基づいて算出することを特徴とする請求項１に記載の波形パターン検出装置。
【請求項３】
上記波形パターン検出装置は、更に、波形差分算出部を有し、
上記波形差分算出部は、上記処理装置を用いて、上記波形記憶部が記憶した一連の波形数値のうち少なくともいずれかの波形数値について、上記波形数値と、上記波形数値の一つ前の波形数値との差を算出して、波形差分とし、
上記波形特徴量算出部は、上記処理装置を用いて、上記波形差分算出部が算出した波形差分に基づいて、上記波形特徴量を算出することを特徴とする請求項１または請求項２に記載の波形パターン検出装置。
【請求項４】
上記波形パターン検出装置は、更に、差分符号判定部を有し、
上記差分符号判定部は、上記処理装置を用いて、上記波形差分算出部が算出した波形差分に基づいて、上記波形差分の符号を判定して、差分符号とし、
上記波形特徴量算出部は、上記処理装置を用いて、上記差分符号判定部が判定した差分符号に基づいて、上記波形特徴量を算出することを特徴とする請求項３に記載の波形パターン検出装置。
【請求項５】
上記波形パターン検出装置は、上記波形特徴量算出部として、上昇回数算出部を有し、
上記上昇回数算出部は、上記処理装置を用いて、上記差分符号判定部が判定した差分符号に基づいて、上記一連の部分波形数値のうち、上記差分符号が正である部分波形数値の数を算出して、上昇回数とし、算出した上昇回数を上記波形特徴量とすることを特徴とする請求項４に記載の波形パターン検出装置。
【請求項６】
上記上昇回数算出部は、上記処理装置を用いて、上記対象波形数値の一つ前の波形数値について算出した上昇回数と、上記対象波形数値より上記所定数前の波形数値について上記差分符号判定部が判定した差分符号と、上記対象波形数値について上記差分符号判定部が判定した差分符号とに基づいて、上記対象波形数値についての上昇回数を算出することを特徴とする請求項５に記載の波形パターン検出装置。
【請求項７】
上記波形パターン検出装置は、上記波形特徴量算出部として、下降回数算出部を有し、
上記下降回数算出部は、上記処理装置を用いて、上記差分符号判定部が判定した差分符号に基づいて、上記一連の部分波形数値のうち、上記差分符号が負である部分波形数値の数を算出して、下降回数とし、算出した下降回数を上記波形特徴量とすることを特徴とする請求項４乃至請求項６のいずれかに記載の波形パターン検出装置。
【請求項８】
上記下降回数算出部は、上記処理装置を用いて、上記対象波形数値の一つ前の波形数値について算出した下降回数と、上記対象波形数値より上記所定数前の波形数値について上記差分符号判定部が判定した差分符号と、上記対象波形数値について上記差分符号判定部が判定した差分符号とに基づいて、上記対象波形数値についての下降回数を算出することを特徴とする請求項７に記載の波形パターン検出装置。
【請求項９】
上記波形パターン検出装置は、更に、波形変曲判定部を有し、上記波形特徴量算出部として、変曲回数算出部を有し、
上記波形変曲判定部は、上記処理装置を用いて、上記波形記憶部が記憶した一連の波形数値のうち少なくともいずれかの波形数値について、上記波形数値について上記差分符号判定部が判定した差分符号と、上記波形数値の一つ前の波形数値について上記差分符号判定部が判定した差分符号とが異なるか否かを判定し、
上記変曲回数算出部は、上記処理装置を用いて、上記波形変曲判定部が判定した判定結果に基づいて、上記一連の部分波形数値のうち、一つ前の部分波形数値と差分符号が異なる部分波形数値の数を算出して、変曲回数とし、算出した変曲回数を上記波形特徴量とすることを特徴とする請求項４乃至請求項８のいずれかに記載の波形パターン検出装置。
【請求項１０】
上記変曲回数算出部は、上記処理装置を用いて、上記対象波形数値の一つ前の波形数値について算出した変曲回数と、上記対象波形数値より上記所定数前の波形数値について上記波形変曲判定部が判定した判定結果と、上記対象波形数値について上記波形変曲判定部が判定した判定結果とに基づいて、上記対象波形数値についての変曲回数を算出することを特徴とする請求項９に記載の波形パターン検出装置。
【請求項１１】
上記波形パターン検出装置は、上記波形特徴量算出部として、連続上昇回数算出部を有し、
上記連続上昇回数算出部は、上記処理装置を用いて、上記差分符号判定部が判定した差分符号に基づいて、上記一連の部分波形数値のうち、上記差分符号が正である部分波形数値が連続している数を算出して、連続上昇回数とし、算出した連続上昇回数を上記波形特徴量とすることを特徴とする請求項４乃至請求項１０のいずれかに記載の波形パターン検出装置。
【請求項１２】
上記波形パターン検出装置は、上記波形特徴量算出部として、連続下降回数算出部を有し、
上記連続下降回数算出部は、上記処理装置を用いて、上記差分符号判定部が判定した差分符号に基づいて、上記一連の部分波形数値のうち、上記差分符号が負である部分波形数値が連続している数を算出して、連続下降回数とし、算出した連続下降回数を上記波形特徴量とすることを特徴とする請求項４乃至請求項１１のいずれかに記載の波形パターン検出装置。
【請求項１３】
上記波形パターン検出装置は、更に、波形変曲判定部を有し、上記波形特徴量算出部として、連続変曲回数算出部を有し、
上記波形変曲判定部は、上記処理装置を用いて、上記波形記憶部が記憶した一連の波形数値のうち少なくともいずれかの波形数値について、上記波形数値について上記差分符号判定部が判定した差分符号と、上記波形数値の一つ前の波形数値について上記差分符号判定部が判定した差分符号ととが異なるか否かを判定し、
上記連続変曲回数算出部は、上記処理装置を用いて、上記波形変曲判定部が判定した判定結果に基づいて、上記一連の部分波形数値のうち、一つ前の部分波形数値と差分符号が異なる部分波形数値が連続している数を算出して、連続変曲回数とし、算出した連続変曲回数を上記波形特徴量とすることを特徴とする請求項４乃至請求項１２のいずれかに記載の波形パターン検出装置。
【請求項１４】
上記類似度算出部は、上記処理装置を用いて、上記波形特徴量と上記比較特徴量とをそれぞれベクトルとみなし、上記波形特徴量のベクトルと上記比較特徴量のベクトルとがなす角度に基づいて、上記類似度を算出することを特徴とする請求項１乃至請求項１３のいずれかに記載の波形パターン検出装置。
【請求項１５】
上記類似判定部は、上記処理装置を用いて、上記類似度算出部が算出した類似度が所定の閾値より大きい場合に、上記波形パターンのうち上記一連の部分波形数値によって表わされる部分が、上記比較パターンに近いと判定することを特徴とする請求項１乃至請求項１４のいずれかに記載の波形パターン検出装置。
【請求項１６】
データを記憶する記憶装置とデータを処理する処理装置とを有するコンピュータが実行することにより、上記コンピュータを請求項１乃至請求項１５のいずれかに記載の波形パターン検出装置として機能させることを特徴とするコンピュータプログラム。
【請求項１７】
データを記憶する記憶装置と、データを処理する処理装置とを有する波形パターン検出装置が、一連の数値によって表わされる波形パターンのなかから、所定数の一連の数値によって表わされる比較パターンに近い部分を検出する波形パターン検出方法において、
上記処理装置が、上記波形パターンを表わす一連の波形数値のうち少なくともいずれかの波形数値を対象波形数値とし、上記対象波形数値以前の上記所定数の波形数値を一連の部分波形数値とし、上記一連の部分波形数値の特徴を表わす特徴量を算出して、上記対象波形数値についての波形特徴量とし、
上記処理装置が、算出した波形特徴量と、上記比較パターンを表わす一連の数値の特徴を表わす比較特徴量とに基づいて、上記波形パターンのうち上記一連の部分波形数値によって表わされる部分と、上記比較パターンとの類似度を算出し、
上記処理装置が、算出した類似度に基づいて、上記波形パターンのうち上記一連の部分波形数値によって表わされる部分が、上記比較パターンに近いか否かを判定することを特徴とする波形パターン検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、一連の数値によって表わされる波形パターンのなかから、比較パターンに近い部分を検出する波形パターン検出装置に関する。
【背景技術】
【０００２】
監視対象である波形パターンを、テンプレートとなる比較パターンと比較して、類似性を判定することにより、パターンを検出する波形パターン検出方式がある。
類似性の判定には、例えば、波形パターンと比較パターンとの間の時間領域における差や、周波数領域による差を算出し、算出した差から類似度を計算する方式がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−１１０６０２号公報
【非特許文献】
【０００４】
【非特許文献１】露梨真史他著「クラスタリングを用いたホルター心電図波形分類」、『電子情報通信学会技術研究報告．ＭＢＥ，ＭＥとバイオサイバネティックス』信学技報第１０３巻第４８９号、２３〜２８ページ、社団法人電子情報通信学会、２００３年。
【非特許文献２】高橋範亘他著「ダイナミックタイムワーピング距離を用いたセンサストリーム処理システムの設計と実装」、『電子情報通信学会第１９回データ工学ワークショップ論文集』ＩＳＳＮ１３４７−４４１３、電子情報通信学会、２００８年。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従来の方式は、比較パターンを構成する一連の数値の数（パターンサンプル数）が多くなるほど計算量が多くなる。また、比較パターンの種類が多くなるほど計算量が多くなる。このため、波形パターンの検出は、主に、事後的に行われる。これをリアルタイムで行うためには、非常に高性能の計算能力を有する処理装置が必要である。
この発明は、例えば上記のような課題を解決するためになされたものであり、少ない計算量で波形パターンの検出ができるようにして、処理装置の処理速度が遅い場合でも、実時間での検出ができるようにすることを目的とする。
【課題を解決するための手段】
【０００６】
この発明にかかる波形パターン検出装置は、
一連の数値によって表わされる波形パターンのなかから、所定数の一連の数値によって表わされる比較パターンに近い部分を検出する波形パターン検出装置において、
データを記憶する記憶装置と、データを処理する処理装置と、波形記憶部と、波形特徴量算出部と、比較特徴量記憶部と、類似度算出部と、類似判定部とを有し、
上記波形記憶部は、上記記憶装置を用いて、上記波形パターンを表わす一連の数値を、一連の波形数値として記憶し、
上記波形特徴量算出部は、上記処理装置を用いて、上記波形記憶部が記憶した一連の波形数値のうち少なくともいずれかの波形数値を対象波形数値とし、上記対象波形数値以前の上記所定数の波形数値を一連の部分波形数値とし、上記一連の部分波形数値の特徴を表わす特徴量を算出して、上記対象波形数値についての波形特徴量とし、
上記比較特徴量記憶部は、上記記憶装置を用いて、上記比較パターンを表わす一連の数値の特徴を表わす特徴量を、比較特徴量として記憶し、
上記類似度算出部は、上記処理装置を用いて、上記波形特徴量算出部が算出した波形特徴量と、上記比較特徴量記憶部が記憶した比較特徴量とに基づいて、上記波形パターンのうち上記一連の部分波形数値によって表わされる部分と、上記比較パターンとの類似度を算出し、
上記類似判定部は、上記処理装置を用いて、上記類似度算出部が算出した類似度に基づいて、上記波形パターンのうち上記一連の部分波形数値によって表わされる部分が、上記比較パターンに近いか否かを判定することを特徴とする。
【発明の効果】
【０００７】
この発明にかかる波形パターン検出装置によれば、波形特徴量算出部が算出した波形特徴量と、比較特徴量記憶部が記憶した比較特徴量とに基づいて、波形パターンのうち比較パターンに近い部分を検出するので、計算量を抑えることができ、処理装置の処理速度が遅い場合でも、実時間での検出をすることができる。
【図面の簡単な説明】
【０００８】
【図１】実施の形態１における監視システム８００の全体構成の一例を示すシステム構成図。
【図２】実施の形態１における波形パターン検出装置１００の外観の一例を示す斜視図。
【図３】実施の形態１における波形パターン検出装置１００のハードウェア資源の一例を示す図。
【図４】実施の形態１における波形パターン検出装置１００の機能ブロックの構成の一例を示すブロック構成図。
【図５】実施の形態１における波形パターン検出装置１００が処理するデータの一例を示す図。
【図６】実施の形態１における波形パターン検出装置１００が算出する波形特徴量の一例を示す図。
【図７】実施の形態１における波形パターン検出処理Ｓ６００の全体の処理の流れの一例を示す全体フローチャート図。
【図８】実施の形態１における上昇回数算出工程Ｓ６３１の詳細な処理の流れの一例を示す詳細フローチャート図。
【図９】実施の形態２における波形パターン検出装置１００の機能ブロックの構成の一例を示すブロック構成図。
【図１０】実施の形態２における波形パターン検出装置１００が算出する波形特徴量の一例を示す図。
【図１１】実施の形態２における波形パターン検出処理Ｓ６００の全体の処理の流れの一例を示す全体フローチャート図。
【図１２】実施の形態２における連続上昇回数算出工程Ｓ６４１の詳細な処理の流れの一例を示す詳細フローチャート図。
【発明を実施するための形態】
【０００９】
実施の形態１．
実施の形態１について、図１〜図８を用いて説明する。
【００１０】
図１は、この実施の形態における監視システム８００の全体構成の一例を示すシステム構成図である。
監視システム８００は、監視対象８９０の状態を監視するシステムである。監視システム８００は、波形観測装置８１０、波形パターン検出装置１００、検出結果通知装置８２０を有する。
波形観測装置８１０は、監視対象８９０の状態を定期的に観測して、観測した結果を表わす数値を出力する。
波形パターン検出装置１００は、波形観測装置８１０が定期的に観測した結果である一連の数値を一つの波形パターンとして捉え、観測した波形パターンのなかから、あらかじめ設定された一以上の所定のパターンのいずれかに近い部分を検出する。
検出結果通知装置８２０は、波形パターン検出装置１００が検出した結果を、監視対象８９０の管理者に通知する。
【００１１】
監視対象８９０は、例えば、ロボット、工場自動化（ＦＡ）機器、ネットワーク、プラント、建物の入口などである。
波形観測装置８１０は、例えば、温度センサ、圧力センサ、電力計、パケット監視装置などであり、温度、圧力、消費電力、送受信パケット数などを観測する。
検出結果通知装置８２０は、波形パターン検出装置１００の検出結果を単に通知するだけでなく、波形パターン検出装置１００が検出したパターンが異常を知らせるパターンである場合に、警告メッセージを表示したり、警告メールを送信したりする。
異常波形が観測された場合すぐに警告を発する必要があるので、波形パターン検出装置１００には、実時間での処理が要求される。
【００１２】
図２は、この実施の形態における波形パターン検出装置１００の外観の一例を示す斜視図である。
波形パターン検出装置１００は、システムユニット９１０、ＣＲＴ（Ｃａｔｈｏｄｅ・Ｒａｙ・Ｔｕｂｅ）やＬＣＤ（液晶）の表示画面を有する表示装置９０１、キーボード９０２（Ｋｅｙ・Ｂｏａｒｄ：Ｋ／Ｂ）、マウス９０３、ＦＤＤ９０４（Ｆｌｅｘｉｂｌｅ・Ｄｉｓｋ・Ｄｒｉｖｅ）、コンパクトディスク装置９０５（ＣＤＤ）、プリンタ装置９０６、スキャナ装置９０７などのハードウェア資源を備え、これらはケーブルや信号線で接続されている。
システムユニット９１０は、コンピュータであり、ファクシミリ機９３２、電話器９３１とケーブルで接続され、また、ローカルエリアネットワーク９４２（ＬＡＮ）、ゲートウェイ９４１を介してインターネット９４０に接続されている。
【００１３】
図３は、この実施の形態における波形パターン検出装置１００のハードウェア資源の一例を示す図である。
波形パターン検出装置１００は、プログラムを実行するＣＰＵ９１１（Ｃｅｎｔｒａｌ・Ｐｒｏｃｅｓｓｉｎｇ・Ｕｎｉｔ、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう）を備えている。ＣＰＵ９１１は、バス９１２を介してＲＯＭ９１３、ＲＡＭ９１４、通信装置９１５、表示装置９０１、キーボード９０２、マウス９０３、ＦＤＤ９０４、ＣＤＤ９０５、プリンタ装置９０６、スキャナ装置９０７、磁気ディスク装置９２０と接続され、これらのハードウェアデバイスを制御する。磁気ディスク装置９２０の代わりに、光ディスク装置、メモリカード読み書き装置などの記憶装置でもよい。
ＲＡＭ９１４は、揮発性メモリの一例である。ＲＯＭ９１３、ＦＤＤ９０４、ＣＤＤ９０５、磁気ディスク装置９２０の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置あるいは記憶部の一例である。通信装置９１５、キーボード９０２、スキャナ装置９０７、ＦＤＤ９０４などは、入力部、入力装置の一例である。また、通信装置９１５、表示装置９０１、プリンタ装置９０６などは、出力部、出力装置の一例である。
【００１４】
通信装置９１５は、ファクシミリ機９３２、電話器９３１、ＬＡＮ９４２等に接続されている。通信装置９１５は、ＬＡＮ９４２に限らず、インターネット９４０、ＩＳＤＮ等のＷＡＮ（ワイドエリアネットワーク）などに接続されていても構わない。インターネット９４０或いはＩＳＤＮ等のＷＡＮに接続されている場合、ゲートウェイ９４１は不用となる。
磁気ディスク装置９２０には、オペレーティングシステム９２１（ＯＳ）、ウィンドウシステム９２２、プログラム群９２３、ファイル群９２４が記憶されている。プログラム群９２３のプログラムは、ＣＰＵ９１１、オペレーティングシステム９２１、ウィンドウシステム９２２により実行される。
【００１５】
上記プログラム群９２３には、以下に述べる実施の形態の説明において「〜部」として説明する機能を実行するプログラムが記憶されている。プログラムは、ＣＰＵ９１１により読み出され実行される。
ファイル群９２４には、以下に述べる実施の形態の説明において、「〜の判定結果」、「〜の計算結果」、「〜の処理結果」として説明する情報やデータや信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」の各項目として記憶されている。「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してＣＰＵ９１１によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示などのＣＰＵの動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示のＣＰＵの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
また、以下に述べる実施の形態の説明において説明するフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、ＲＡＭ９１４のメモリ、ＦＤＤ９０４のフレキシブルディスク、ＣＤＤ９０５のコンパクトディスク、磁気ディスク装置９２０の磁気ディスク、その他光ディスク、ミニディスク、ＤＶＤ（Ｄｉｇｉｔａｌ・Ｖｅｒｓａｔｉｌｅ・Ｄｉｓｋ）等の記録媒体に記録される。また、データや信号は、バス９１２や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
【００１６】
また、以下に述べる実施の形態の説明において「〜部」として説明するものは、「〜回路」、「〜装置」、「〜機器」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」として説明するものは、ＲＯＭ９１３に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、ＤＶＤ等の記録媒体に記憶される。プログラムはＣＰＵ９１１により読み出され、ＣＰＵ９１１により実行される。すなわち、プログラムは、以下に述べる「〜部」としてコンピュータを機能させるものである。あるいは、以下に述べる「〜部」の手順や方法をコンピュータに実行させるものである。
【００１７】
図４は、この実施の形態における波形パターン検出装置１００の機能ブロックの構成の一例を示すブロック構成図である。
波形パターン検出装置１００は、波形数値取得部１１１、波形記憶部１１２、波形差分算出部１１３、波形差分記憶部１１４、差分符号判定部１１５、差分符号記憶部１１６、波形変曲判定部１２１、波形変曲記憶部１２２、二階差分算出部１２３、二階符号判定部１２５、二階符号記憶部１２６、上昇回数算出部１３１、上昇回数記憶部１３２、下降回数算出部１３３、下降回数記憶部１３４、変曲回数算出部１４１、変曲回数記憶部１４２、凹回数算出部１４３、凹回数記憶部１４４、凸回数算出部１４５、凸回数記憶部１４６、比較特徴量記憶部１８１、類似度算出部１８２、閾値記憶部１８３、類似判定部１８４、判定結果通知部１８５を有する。
【００１８】
波形数値取得部１１１は、ＣＰＵ９１１を用いて、波形観測装置８１０が出力した数値（以下「波形数値」と呼ぶ。）を取得する。波形数値取得部１１１は、ＣＰＵ９１１を用いて、取得した波形数値を出力する。
波形記憶部１１２は、ＣＰＵ９１１を用いて、波形数値取得部１１１が出力した最新の波形数値を入力する。波形記憶部１１２は、磁気ディスク装置９２０を用いて、入力した波形数値を蓄積して記憶する。すなわち、波形記憶部１１２は、それまで記憶していた古い波形数値の後に、入力した最新の波形数値を追加して記憶する。なお、波形記憶部１１２は、一つ前の波形数値と最新の波形数値との二つを記憶していればよく、二つ以上前の波形数値を削除する構成であってもよい。
【００１９】
波形差分算出部１１３は、ＣＰＵ９１１を用いて、波形数値取得部１１１が出力した最新の波形数値と、波形記憶部１１２が記憶した一つ前の波形数値とを入力する。波形差分算出部１１３は、ＣＰＵ９１１を用いて、入力した二つの波形数値の差（以下「波形差分」と呼ぶ。）を算出する。波形差分算出部１１３は、ＣＰＵ９１１を用いて、算出した波形差分を出力する。波形差分算出部１１３が波形差分を算出するにあたり、いずれの波形数値から他方の波形数値を差し引く構成であってもよいが、ここでの説明では、新しい波形数値から古い波形数値を差し引く構成であるものとする。したがって、波形差分は、波形数値が増加した場合０より大きく、波形数値が減少した場合０より小さい。
波形差分記憶部１１４は、ＣＰＵ９１１を用いて、波形差分算出部１１３が出力した最新の波形差分を入力する。波形差分記憶部１１４は、磁気ディスク装置９２０を用いて、入力した波形差分を蓄積して記憶する。すなわち、波形差分記憶部１１４は、それまで記憶していた古い波形差分の後に、入力した最新の波形差分を追加して記憶する。なお、波形差分記憶部１１４は、一つ前の波形差分と最新の波形差分との二つを記憶していればよく、二つ以上前の波形差分を削除する構成であってもよい。
【００２０】
差分符号判定部１１５は、ＣＰＵ９１１を用いて、波形差分算出部１１３が出力した最新の波形差分を入力する。差分符号判定部１１５は、ＣＰＵ９１１を用いて、入力した波形差分の符号が正であるか負であるかを判定する。差分符号判定部１１５は、ＣＰＵ９１１を用いて、判定した符号（以下「差分符号」と呼ぶ。）を出力する。なお、波形差分が０である場合、差分符号判定部１１５は、差分符号が正であると判定する構成であってもよいし、負であると判定する構成であってもよいし、正でも負でもないと判定する構成であってもよい。
差分符号記憶部１１６は、ＣＰＵ９１１を用いて、差分符号判定部１１５が出力した最新の差分符号を入力する。差分符号記憶部１１６は、磁気ディスク装置９２０を用いて、入力した差分符号を蓄積して記憶する。すなわち、差分符号記憶部１１６は、それまで記憶していた古い差分符号の後に、入力した最新の差分符号を追加して記憶する。なお、差分符号記憶部１１６は、パターンサンプル数前の差分符号から最新の差分符号までを記憶していればよく、それより前の差分符号を削除する構成であってもよい。パターンサンプル数とは、波形観測装置８１０が観測した波形が近いか否かを判定すべきパターン（以下「比較パターン」と呼ぶ。）を構成する一連の数値（以下「比較数値」と呼ぶ。）の数である。例えば、比較パターンが５つの比較数値により構成されている場合であれば、パターンサンプル数は５である。差分符号記憶部１１６は、少なくとも、五つ前の差分符号から最新の差分符号までの六つの差分符号を記憶する。また、比較パターンが複数あり、パターンサンプル数が異なる場合には、一番大きいパターンサンプル数を基準とする。
【００２１】
波形変曲判定部１２１は、ＣＰＵ９１１を用いて、差分符号判定部１１５が出力した最新の差分符号と、差分符号記憶部１１６が記憶した一つ前の差分符号とを入力する。波形変曲判定部１２１は、ＣＰＵ９１１を用いて、入力した二つの差分符号が同じか異なるかを判定する。波形変曲判定部１２１は、ＣＰＵ９１１を用いて、判定した判定結果（以下「波形変曲」と呼ぶ。）を出力する。波形変曲は、波形観測装置８１０が観測した波形パターンがそこで極値（極大値または極小値）を取っているか否かを表わす。二つの差分符号が同じ場合、そこでは極値を取らない（以下「極値なし」と呼ぶ）。二つの差分符号が異なる場合、そこで極値を取る（以下「極値あり」と呼ぶ）。なお、波形差分が０である場合に差分符号が正でも負でもないと差分符号判定部１１５が判定する構成であって、波形変曲判定部１２１が入力した二つの差分符号のいずれかが正でも負でもない場合、波形変曲判定部１２１は、二つの差分符号が同じであると判定する構成であってもよいし、異なると判定する構成であってもよい。
波形変曲記憶部１２２は、ＣＰＵ９１１を用いて、波形変曲判定部１２１が出力した最新の波形変曲を入力する。波形変曲記憶部１２２は、磁気ディスク装置９２０を用いて、入力した波形変曲を蓄積して記憶する。すなわち、波形変曲記憶部１２２は、それまで記憶していた古い波形変曲の後に、入力した最新の波形変曲を追加して記憶する。なお、波形変曲記憶部１２２は、パターンサンプル数前の波形変曲から最新の波形変曲までを記憶していればよく、それより前の波形変曲を削除する構成であってもよい。
【００２２】
二階差分算出部１２３は、ＣＰＵ９１１を用いて、波形差分算出部１１３が出力した最新の波形差分と、波形差分記憶部１１４が記憶した一つ前の波形差分とを入力する。二階差分算出部１２３は、ＣＰＵ９１１を用いて、入力した二つの波形差分の差（以下「二階差分」と呼ぶ。）を算出する。二階差分算出部１２３は、ＣＰＵ９１１を用いて、算出した二階差分を出力する。二階差分算出部１２３が二階差分を算出するにあたり、いずれの波形差分から他方の波形差分を差し引く構成であってもよいが、ここでの説明では、新しい波形差分から古い波形差分を差し引く構成であるものとする。したがって、二階差分は、波形差分が増加した場合０より大きく、波形差分が減少した場合０より小さい。
【００２３】
二階符号判定部１２５は、ＣＰＵ９１１を用いて、二階差分算出部１２３が出力した最新の二階差分を入力する。二階符号判定部１２５は、ＣＰＵ９１１を用いて、入力した二階差分の符号が正であるか負であるかを判定する。二階符号判定部１２５は、ＣＰＵ９１１を用いて、判定した符号（以下「二階符号」と呼ぶ。）を出力する。なお、二階差分が０である場合、二階符号判定部１２５は、二階符号が正であると判定する構成であってもよいし、負であると判定する構成であってもよいし、正でも負でもないと判定する構成であってもよい。
二階符号記憶部１２６は、ＣＰＵ９１１を用いて、二階符号判定部１２５が出力した最新の二階符号を入力する。二階符号記憶部１２６は、磁気ディスク装置９２０を用いて、入力した二階符号を蓄積して記憶する。すなわち、二階符号記憶部１２６は、それまで記憶していた古い二階符号の後に、入力した最新の二階符号を追加して記憶する。なお、二階符号記憶部１２６は、パターンサンプル数前の二階符号から最新の二階符号までを記憶していればよく、それより前の二階符号を削除する構成であってもよい。
【００２４】
波形パターン検出装置１００は、波形観測装置８１０が観測した波形パターンのうち、パターンサンプル数前の波形数値から最新の波形数値までの波形数値が表わす波形パターンの部分（以下「対象部分パターン」と呼ぶ。）を、比較パターンと比較して、比較パターンに近いか否かを判定する。波形パターン検出装置１００は、パターンの比較に当たり、対象部分パターンの特徴を表わす数値（以下「波形特徴量」と呼ぶ。）を算出し、算出した波形特徴量と、比較パターンについてあらかじめ算出しておいた同様の数値（以下「比較特徴量」と呼ぶ。）とを比較する。波形特徴量には、例えば、上昇回数、下降回数、変曲回数、凹回数、凸回数などがある。
上昇回数とは、対象部分パターンを表わす一連の波形数値のうち、一つ前の波形数値よりも大きい波形数値の数のことである。
下降回数とは、上昇回数の逆で、対象部分パターンを表わす一連の波形数値のうち、一つ前の波形数値よりも小さい波形数値の数のことである。
変曲回数とは、対象部分パターンを表わす一連の波形数値のうち、一つ前の波形数値が極値である波形数値の数のことである。例えば、ある波形数値が一つ前の波形数値より大きく、かつ、一つ後の波形数値よりも大きい場合、その波形数値は極値（極大値）である。逆に、ある波形数値が一つ前の波形数値より小さく、かつ、一つ後の波形数値よりも小さい場合も、その波形数値は極値（極小値）である。
凹回数とは、対象部分パターンを表わす一連の波形数値のうち、一つ前の波形数値が凹んでいる波形数値の数のことである。ある波形数値と一つ前の波形数値との差よりも、一つ後の波形数値とその波形数値との差のほうが大きい場合、その波形数値は凹んでいる。別の言い方をすると、ある波形数値が、一つ前の波形数値と一つ後の波形数値との平均よりも小さい場合、その波形数値は凹んでいる。
凸回数とは、凹回数の逆で、対象部分パターンを表わす一連の波形数値のうち、一つ前の波形数値が膨らんでいる波形数値の数のことである。ある波形数値と一つ前の波形数値との差よりも、一つ後の波形数値とその波形数値との差のほうが小さい場合、その波形数値は膨らんでいる。別の言い方をすると、ある波形数値が、一つ前の波形数値と一つ後の波形数値との平均よりも大きい場合、その波形数値は膨らんでいる。
【００２５】
上昇回数算出部１３１は、ＣＰＵ９１１を用いて、上昇回数を算出する。上昇回数算出部１３１は、ＣＰＵ９１１を用いて、算出した上昇回数を出力する。なお、比較パターンが複数あり、パターンサンプル数が異なる場合、上昇回数算出部１３１は、それぞれのパターンサンプル数ごとに上昇回数を算出する。すなわち、上昇回数算出部１３１は、比較パターンの数ではなく、異なるパターンサンプル数の数と同じ数の上昇回数を算出する。
上昇回数記憶部１３２は、ＣＰＵ９１１を用いて、上昇回数算出部１３１が出力した最新の上昇回数を入力する。上昇回数記憶部１３２は、ＲＡＭ９１４を用いて、入力した上昇回数を一時的に記憶する。上昇回数記憶部１３２は、最新の上昇回数を記憶していればよく、それより前の上昇回数を蓄積しておく必要はない。
【００２６】
上昇回数は、差分符号記憶部１１６が記憶した差分符号が正である数を数えれば求めることができる。しかし、パターンサンプル数が大きい場合、その算出方式は効率が悪い。そこで、上昇回数算出部１３１は、もっと効率的な算出方式により上昇回数を算出する。
上昇回数記憶部１３２は、最新の上昇回数を記憶しているが、上昇回数算出部１３１が次の上昇回数を算出する段階において、上昇回数記憶部１３２は記憶している上昇回数は、一つ前の上昇回数になっている。上昇回数算出部１３１は、ＣＰＵ９１１を用いて、上昇回数記憶部１３２が記憶した一つ前の上昇回数を入力する。
上昇回数算出部１３１が算出しようとしている新しい上昇回数と、一つ前の上昇回数とは、もととなる波形数値が一つずれているだけである。したがって、そのズレを計算して修正すれば、新しい上昇回数を求めることができる。
上昇回数算出部１３１は、ＣＰＵ９１１を用いて、差分符号判定部１１５が出力した最新の差分符号と、差分符号記憶部１１６が記憶したパターンサンプル数前の差分符号とを入力する。
入力した最新の差分符号が正である場合、上昇回数算出部１３１は、ＣＰＵ９１１を用いて、入力した上昇回数を一つ増やす。
入力したパターンサンプル数前の差分符号が正である場合、上昇回数算出部１３１は、ＣＰＵ９１１を用いて、入力した上昇回数を一つ減らす。
上昇回数算出部１３１は、ＣＰＵ９１１を用いて、ズレを修正した上昇回数を、新しい上昇回数として出力する。
【００２７】
下降回数算出部１３３は、上昇回数算出部１３１と同様の方式により、下降回数を算出する。
下降回数算出部１３３は、ＣＰＵ９１１を用いて、下降回数記憶部１３４が記憶した一つ前の下降回数と、差分符号判定部１１５が出力した最新の差分符号と、差分符号記憶部１１６が記憶したパターンサンプル数前の差分符号とを入力する。
入力した最新の差分符号が負である場合、下降回数算出部１３３は、ＣＰＵ９１１を用いて、入力した下降回数を一つ増やす。
入力したパターンサンプル数前の差分符号が負である場合、下降回数算出部１３３は、ＣＰＵ９１１を用いて、入力した下降回数を一つ減らす。
下降回数算出部１３３は、ＣＰＵ９１１を用いて、ズレを修正した下降回数を、新しい下降回数として出力する。
下降回数記憶部１３４は、ＣＰＵ９１１を用いて、下降回数算出部１３３が出力した最新の下降回数を入力する。下降回数記憶部１３４は、ＲＡＭ９１４を用いて、入力した下降回数を一時的に記憶する。下降回数記憶部１３４は、最新の下降回数を記憶していればよく、それより前の下降回数を蓄積しておく必要はない。
【００２８】
なお、波形差分が０の場合に差分符号が正または負であると差分符号判定部１１５が判定する構成の場合、上昇回数と下降回数とは表裏一体であり、上昇回数と下降回数との合計はパターンサンプル数に一致するから、いずれか一方のみを算出する構成であってもよい。これに対し、波形差分が０の場合に差分符号が正でも負でもないと差分符号判定部１１５が判定する構成の場合、上昇回数と下降回数との合計はパターンサンプル数に一致するとは限らず、パターンサンプル数より小さい場合がある。
【００２９】
変曲回数算出部１４１も、上昇回数算出部１３１と同様の方式により、変曲回数を算出する。
変曲回数算出部１４１は、ＣＰＵ９１１を用いて、変曲回数記憶部１４２が記憶した一つ前の変曲回数と、波形変曲判定部１２１が出力した最新の波形変曲と、波形変曲記憶部１２２が記憶したパターンサンプル数前の波形変曲とを入力する。
入力した最新の波形変曲が極値ありである場合、変曲回数算出部１４１は、ＣＰＵ９１１を用いて、入力した変曲回数を一つ増やす。
入力したパターンサンプル数前の波形変曲が極値ありである場合、変曲回数算出部１４１は、ＣＰＵ９１１を用いて、入力した変曲回数を一つ減らす。
変曲回数算出部１４１は、ＣＰＵ９１１を用いて、ズレを修正した変曲回数を、新しい変曲回数として出力する。
変曲回数記憶部１４２は、ＣＰＵ９１１を用いて、変曲回数算出部１４１が出力した最新の変曲回数を入力する。変曲回数記憶部１４２は、ＲＡＭ９１４を用いて、入力した変曲回数を一時的に記憶する。変曲回数記憶部１４２は、最新の変曲回数を記憶していればよく、それより前の変曲回数を蓄積しておく必要はない。
【００３０】
凹回数算出部１４３も、上昇回数算出部１３１と同様の方式により、凹回数を算出する。
凹回数算出部１４３は、ＣＰＵ９１１を用いて、凹回数記憶部１４４が記憶した一つ前の凹回数と、二階符号判定部１２５が出力した最新の二階符号と、二階符号記憶部１２６が記憶したパターンサンプル数前の二階符号とを入力する。
入力した最新の二階符号が正である場合、凹回数算出部１４３は、ＣＰＵ９１１を用いて、入力した凹回数を一つ増やす。
入力したパターンサンプル数前の二階符号が正である場合、凹回数算出部１４３は、ＣＰＵ９１１を用いて、入力した凹回数を一つ減らす。
凹回数算出部１４３は、ＣＰＵ９１１を用いて、ズレを修正した凹回数を、新しい凹回数として出力する。
凹回数記憶部１４４は、ＣＰＵ９１１を用いて、凹回数算出部１４３が出力した最新の凹回数を入力する。凹回数記憶部１４４は、ＲＡＭ９１４を用いて、入力した凹回数を一時的に記憶する。凹回数記憶部１４４は、最新の凹回数を記憶していればよく、それより前の凹回数を蓄積しておく必要はない。
【００３１】
凸回数算出部１４５も、上昇回数算出部１３１と同様の方式により、凸回数を算出する。
凸回数算出部１４５は、ＣＰＵ９１１を用いて、凸回数記憶部１４６が記憶した一つ前の凸回数と、二階符号判定部１２５が出力した最新の二階符号と、二階符号記憶部１２６が記憶したパターンサンプル数前の二階符号とを入力する。
入力した最新の二階符号が負である場合、凸回数算出部１４５は、ＣＰＵ９１１を用いて、入力した凸回数を一つ増やす。
入力したパターンサンプル数前の二階符号が負である場合、凸回数算出部１４５は、ＣＰＵ９１１を用いて、入力した凸回数を一つ減らす。
凸回数算出部１４５は、ＣＰＵ９１１を用いて、ズレを修正した凸回数を、新しい凸回数として出力する。
凸回数記憶部１４６は、ＣＰＵ９１１を用いて、凸回数算出部１４５が出力した最新の凸回数を入力する。凸回数記憶部１４６は、ＲＡＭ９１４を用いて、入力した凸回数を一時的に記憶する。凸回数記憶部１４６は、最新の凸回数を記憶していればよく、それより前の凸回数を蓄積しておく必要はない。
【００３２】
なお、二階差分が０の場合に二階符号が正または負であると二階符号判定部１２５が判定する構成の場合、凹回数と凸回数とは表裏一体であり、凹回数と凸回数との合計はパターンサンプル数に一致するから、いずれか一方のみを算出する構成であってもよい。これに対し、二階差分が０の場合に二階符号が正でも負でもないと二階符号判定部１２５が判定する構成の場合、凹回数と凸回数との合計はパターンサンプル数に一致するとは限らず、パターンサンプル数より小さい場合がある。
【００３３】
比較特徴量記憶部１８１は、磁気ディスク装置９２０を用いて、あらかじめ、比較特徴量を記憶している。比較特徴量は、比較パターンの特徴を表わす数値であり、比較パターンについてあらかじめ算出された上昇回数、下降回数、変曲回数、凹回数、凸回数などである。
なお、あらかじめ算出された比較特徴量を比較特徴量記憶部１８１が記憶するのではなく、比較特徴量を算出する比較特徴量算出部を設け、比較特徴量算出部が算出した比較特徴量を比較特徴量記憶部１８１が記憶する構成としてもよい。ただし、比較特徴量は、比較パターンが定まれば一意に定まるので、監視対象８９０の監視を始める前に、あらかじめ算出して、比較特徴量記憶部１８１が記憶しておき、監視中の計算量を少なくすることが望ましい。
【００３４】
類似度算出部１８２は、ＣＰＵ９１１を用いて、上昇回数算出部１３１が出力した上昇回数、下降回数算出部１３３が出力した下降回数、変曲回数算出部１４１が出力した変曲回数、凹回数算出部１４３が出力した凹回数、凸回数算出部１４５が出力した凸回数などの波形特徴量と、比較特徴量記憶部１８１が記憶した比較特徴量とを入力する。類似度算出部１８２は、ＣＰＵ９１１を用いて、入力した波形特徴量と比較特徴量とに基づいて、類似度を算出する。類似度算出部１８２は、ＣＰＵ９１１を用いて、算出した類似度を出力する。
類似度とは、対象部分パターンと、比較パターンとがどれくらい似ているかを表わす数値である。
【００３５】
例えば、上昇回数、下降回数、変曲回数、凹回数、凸回数という五つの数値からなる波形特徴量を五次元ベクトル「Ａ＝（ａ１，ａ２，ａ３，ａ４，ａ５）」として捉え、比較特徴量も同じく五次元べクトル「Ｂ＝（ｂ１，ｂ２，ｂ３，ｂ４，ｂ５）」として捉えると、二つの五次元ベクトルの内積「Ａ・Ｂ＝Σ（ａｉ・ｂｉ）」を、二つの五次元ベクトルの長さの積「｜Ａ｜・｜Ｂ｜＝√［Σ（ａｉ２）・Σ（ｂｉ２）］で割った商は、二つの五次元ベクトルがなす角θの余弦ｃｏｓθを表わす。二つのベクトルの向きが等しければθが０度なので、余弦ｃｏｓθは１になる。二つのベクトルの向きが垂直ならθが９０度なので、余弦ｃｏｓθは０になる。したがって、余弦ｃｏｓθは、二つのベクトルが似ているかどうかを表わす類似度として用いることができる。その場合、類似度は、大きいほど似ていることを表わし、最大値は１である。
比較特徴量であるベクトルＢの長さの二乗をあらかじめ算出しておき、比較特徴量記憶部１８１が、磁気ディスク装置９２０を用いて、あらかじめ記憶しておく。類似度算出部１８２は、ＣＰＵ９１１を用いて、波形特徴量の各成分と、対応する比較特徴量の各成分との積を算出し、算出した積の総和を算出して、二つのベクトルの内積を求める。類似度算出部１８２は、ＣＰＵ９１１を用いて、算出した内積が０以下であるか否かを判定する。内積が０以下であると判定した場合、類似度算出部１８２は、ＣＰＵ９１１を用いて、類似度として０を出力する。内積が０より大きいと判定した場合、類似度算出部１８２は、ＣＰＵ９１１を用いて、算出した内積の二乗を算出する。類似度算出部１８２は、ＣＰＵ９１１を用いて、波形特徴量の各成分の二乗を算出し、算出した二乗の総和を算出して、波形特徴量であるベクトルＡの長さの二乗を求める。類似度算出部１８２は、ＣＰＵ９１１を用いて、比較特徴量記憶部１８１が記憶したベクトルＢの長さの二乗を入力する。類似度算出部１８２は、ＣＰＵ９１１を用いて、算出したベクトルＡの長さの二乗と、入力したベクトルＢの長さの二乗との積を算出する。類似度算出部１８２は、ＣＰＵ９１１を用いて、算出した積で、算出した内積の二乗を割った商を算出して、算出した商を類似度とする。この例の場合、ベクトルがなす角θの余弦ｃｏｓθではなく、その二乗ｃｏｓ２θを類似度とすることで、平行根の計算をしなくて済むようにしている。
【００３６】
あるいは、二つのベクトルの差ベクトルの長さ｜Ａ−Ｂ｜（もしくはその二乗）を、類似度とする構成であってもよい。その場合、類似度は、小さいほど似ていることを表わす。
【００３７】
閾値記憶部１８３は、磁気ディスク装置９２０を用いて、あらかじめ、類似度の閾値（以下「類似度閾値」と呼ぶ。）を記憶している。
類似判定部１８４は、ＣＰＵ９１１を用いて、類似度算出部１８２が算出した類似度と、閾値記憶部１８３が記憶した類似度閾値とを入力する。類似判定部１８４は、ＣＰＵ９１１を用いて、入力した類似度と類似度閾値とを比較して、対象部分パターンと比較パターンとが近いか否かを判定する。類似判定部１８４は、判定した判定結果を出力する。
上述したベクトルがなす角θの余弦ｃｏｓθ（あるいはその二乗）のように、大きいほど似ていることを表わす数値を類似度とする構成であれば、類似判定部１８４は、類似度が類似度閾値より大きい場合に、対象部分パターンと比較パターンとが近いと判定する。逆に小さいほど似ていることを表わす数値を類似度とする構成であれば、類似判定部１８４は、類似度が類似度閾値より小さい場合に、対象部分パターンが比較パターンに近いと判定する。
なお、比較パターンが複数ある場合、類似判定部１８４は、類似度閾値を超える類似度のなかでもっとも類似度が大きい（あるいは小さい）対象部分パターンを判定し、その対象部分パターンが比較パターンに近いと判定する構成としてもよい。
【００３８】
判定結果通知部１８５は、ＣＰＵ９１１を用いて、類似判定部１８４が出力した判定結果を入力する。判定結果通知部１８５は、ＣＰＵ９１１を用いて、検出結果通知装置８２０に対して、入力した判定結果を通知する。
【００３９】
図５は、この実施の形態における波形パターン検出装置１００が処理するデータの一例を示す図である。
時刻４０１は、波形観測装置８１０が波形数値を観測した時刻である。この例において、波形観測装置８１０は、１分ごとに１つの波形数値を観測する。
波形数値４０２は、時刻４０１に波形観測装置８１０が観測し、波形数値取得部１１１が取得した波形数値である。
波形差分４０３は、波形差分算出部１１３が、時刻４０１における最新の波形数値４０２から、一つ前の波形数値４０２を差し引いた波形差分である。
二階差分４０４は、二階差分算出部１２３が、時刻４０１における最新の波形差分４０３から、一つ前の波形差分４０３を差し引いた二階差分である。
二階符号４０５は、二階符号判定部１２５が、時刻４０１における最新の二階差分４０４に基づいて判定した二階符号である。
差分符号４０６は、差分符号判定部１１５が、時刻４０１における最新の波形差分４０３に基づいて判定した差分符号である。
波形変曲４０７は、波形変曲判定部１２１が、時刻４０１における最新の差分符号４０６と、一つ前の差分符号４０６とに基づいて判定した波形変曲である。なお、この図では、「極値あり」の場合を「−」、「極値なし」の場合を「＋」で表現している。
【００４０】
このように、波形数値取得部１１１が新しい波形数値を取得するたびに、波形差分算出部１１３が波形差分４０３を算出し、二階差分算出部１２３が二階差分４０４を算出し、二階符号判定部１２５が二階符号４０５を算出し、差分符号判定部１１５が差分符号４０６を算出し、波形変曲判定部１２１が波形変曲４０７を算出して、波形記憶部１１２、波形差分記憶部１１４、二階符号記憶部１２６、差分符号記憶部１１６、波形変曲記憶部１２２が、新しいデータを記憶する。
【００４１】
図６は、この実施の形態における波形パターン検出装置１００が算出する波形特徴量の一例を示す図である。
この例において、パターンサンプル数は５であるものとする。
上昇回数４１１は、上昇回数算出部１３１が算出する上昇回数である。上昇回数算出部１３１は、一つ前の上昇回数４１１と、最新の差分符号４０６と、五つ前の差分符号４０６とに基づいて、最新の上昇回数４１１を算出する。例えば、時刻４０１「１６：２５」において、上昇回数算出部１３１は、最新の差分符号４０６が「正」であるから一つ前の上昇回数４１１「３」に「１」を加えて「４」とし、五つ前の差分符号４０６が「正」であるから「４」から「１」を差し引いて「３」として、算出した「３」を最新の上昇回数４１１として出力する。
下降回数４１２は、下降回数算出部１３３が算出する下降回数である。下降回数算出部１３３は、一つ前の下降回数４１２と、最新の差分符号４０６と、五つ前の差分符号４０６とに基づいて、最新の下降回数４１２を算出する。例えば、時刻「１６：２６」において、下降回数算出部１３３は、最新の差分符号４０６が「正」であるから一つ前の上昇回数４１１「２」をそのままとし、五つ前の差分符号４０６が「負」であるから「２」から「１」を差し引いて「１」として、算出した「１」を最新の下降回数４１２として出力する。
変曲回数４１３は、変曲回数算出部１４１が算出する変曲回数である。変曲回数算出部１４１は、一つ前の変曲回数４１３と、最新の波形変曲４０７と、五つ前の波形変曲４０７とに基づいて、最新の変曲回数４１３を算出する。例えば、時刻「１６：２５」において、変曲回数算出部１４１は、最新の波形変曲４０７が「極値なし」であるから一つ前の変曲回数４１３「４」をそのままとし、五つ前の波形変曲４０７が「極値なし」であるから「４」をそのままとして、算出した「４」を最新の変曲回数４１３として出力する。
凹回数４１４は、凹回数算出部１４３が算出する凹回数である。凹回数算出部１４３は、一つ前の凹回数４１４と、最新の二階符号４０５と、五つ前の二階符号４０５とに基づいて、最新の凹回数４１４を算出する。例えば、時刻「１６：２５」において、凹回数算出部１４３は、最新の二階符号４０５が「正」であるから一つ前の凹回数４１４「２」に「１」を加えて「３」とし、五つ前の二階符号４０５が「負」であるから「３」をそのままとして、算出した「３」を最新の凹回数４１４として出力する。
凸回数４１５は、凸回数算出部１４５が算出する凸回数である。凸回数算出部１４５は、一つ前の凸回数４１５と、最新の二階符号４０５と、五つ前の二階符号４０５とに基づいて、最新の凸回数４１５を算出する。
【００４２】
このように、波形数値取得部１１１が新しい波形数値を取得するたびに、上昇回数算出部１３１が上昇回数４１１を算出し、下降回数算出部１３３が下降回数４１２を算出し、変曲回数算出部１４１が変曲回数４１３を算出し、凹回数算出部１４３が凹回数４１４を算出し、凸回数算出部１４５が凸回数４１５を算出する。これら波形特徴量の計算は、一つ前の波形特徴量を用いて効率的に行われるので、パターンサンプル数が大きい場合でも、計算量が少なく、実時間での処理が可能である。
また、複数の比較パターンと比較する場合であっても、パターンサンプル数が同じであれば、同じ波形特徴量を使うことができるので、多数の比較パターンと比較する場合でも、計算量の増加が少なく、実時間での処理が可能である。
【００４３】
図７は、この実施の形態における波形パターン検出処理Ｓ６００の全体の処理の流れの一例を示す全体フローチャート図である。
波形パターン検出処理Ｓ６００は、波形数値取得工程Ｓ６１０、差分特徴量算出工程Ｓ６２０、二階特徴量算出工程Ｓ６２５、差分合成特徴量算出工程Ｓ６３０、二階合成特徴量算出工程Ｓ６３５、比較工程Ｓ６７０、判定結果通知工程Ｓ６８０を有する。
【００４４】
波形数値取得工程Ｓ６１０において、波形数値取得部１１１は、ＣＰＵ９１１を用いて、波形観測装置８１０が観測した波形数値４０２を取得する。
【００４５】
差分特徴量算出工程Ｓ６２０は、波形差分算出工程Ｓ６２１、差分符号判定工程Ｓ６２２を有する。
波形差分算出工程Ｓ６２１において、波形差分算出部１１３は、ＣＰＵ９１１を用いて、波形数値取得工程Ｓ６１０で波形数値取得部１１１が取得した最新の波形数値４０２から一つ前の波形数値４０２を差し引いて、波形差分４０３を算出する。
差分符号判定工程Ｓ６２２において、差分符号判定部１１５は、ＣＰＵ９１１を用いて、波形差分算出工程Ｓ６２１で波形差分算出部１１３が算出した波形差分４０３に基づいて、差分符号４０６を判定する。
【００４６】
二階特徴量算出工程Ｓ６２５は、波形変曲判定工程Ｓ６２６、二階差分算出工程Ｓ６２７、二階符号算出工程Ｓ６２８を有する。
波形変曲判定工程Ｓ６２６において、波形変曲判定部１２１は、ＣＰＵ９１１を用いて、差分符号判定工程Ｓ６２２で差分符号判定部１１５が判定した最新の差分符号４０６と、一つ前の差分符号４０６とに基づいて、波形変曲４０７を判定する。
二階差分算出工程Ｓ６２７において、二階差分算出部１２３は、ＣＰＵ９１１を用いて、波形差分算出工程Ｓ６２１で波形差分算出部１１３が算出した最新の波形差分４０３から一つ前の波形差分４０３を差し引いて、二階差分４０４を算出する。
二階符号算出工程Ｓ６２８において、二階符号判定部１２５は、ＣＰＵ９１１を用いて、二階差分算出工程Ｓ６２７で二階差分算出部１２３が算出した最新の二階差分４０４に基づいて、二階符号４０５を判定する。
【００４７】
差分合成特徴量算出工程Ｓ６３０は、上昇回数算出工程Ｓ６３１、下降回数算出工程Ｓ６３２を有する。
上昇回数算出工程Ｓ６３１において、上昇回数算出部１３１は、ＣＰＵ９１１を用いて、一つ前の上昇回数４１１と、差分符号判定工程Ｓ６２２で差分符号判定部１１５が判定した最新の差分符号４０６と、パターンサンプル数前の差分符号４０６とに基づいて、最新の上昇回数４１１を算出する。
下降回数算出工程Ｓ６３２において、下降回数算出部１３３は、ＣＰＵ９１１を用いて、一つ前の下降回数４１２と、差分符号判定工程Ｓ６２２で差分符号判定部１１５が判定した最新の差分符号４０６と、パターンサンプル数前の差分符号４０６とに基づいて、最新の下降回数４１２を算出する。
【００４８】
二階合成特徴量算出工程Ｓ６３５は、変曲回数算出工程Ｓ６３６、凹回数算出工程Ｓ６３７、凸回数算出工程Ｓ６３８を有する。
変曲回数算出工程Ｓ６３６において、変曲回数算出部１４１は、ＣＰＵ９１１を用いて、一つ前の変曲回数４１３と、波形変曲判定工程Ｓ６２６で波形変曲判定部１２１が判定した最新の波形変曲４０７と、パターンサンプル数前の波形変曲４０７とに基づいて、最新の変曲回数４１３を算出する。
凹回数算出工程Ｓ６３７において、凹回数算出部１４３は、ＣＰＵ９１１を用いて、一つ前の凹回数４１４と、二階符号算出工程Ｓ６２８で二階符号判定部１２５が判定した最新の二階符号４０５と、パターンサンプル数前の二階符号４０５とに基づいて、最新の凹回数４１４を算出する。
凸回数算出工程Ｓ６３８において、凸回数算出部１４５は、ＣＰＵ９１１を用いて、一つ前の凸回数４１５と、二階符号算出工程Ｓ６２８で二階符号判定部１２５が判定した最新の二階符号４０５と、パターンサンプル数前の二階符号４０５とに基づいて、最新の凸回数４１５を算出する。
【００４９】
比較工程Ｓ６７０は、比較パターン選択工程Ｓ６７１、類似度算出工程Ｓ６７２、類似判定工程Ｓ６７３、比較パターン繰り返し工程Ｓ６７４を有する。
比較パターン選択工程Ｓ６７１において、類似度算出部１８２は、ＣＰＵ９１１を用いて、比較すべき１以上の比較パターンのなかから比較パターンを順に一つずつ選択する。
類似度算出工程Ｓ６７２において、類似度算出部１８２は、ＣＰＵ９１１を用いて、比較パターン選択工程Ｓ６７１で選択した比較パターンについて比較特徴量記憶部１８１が記憶した比較特徴量を取得する。類似度算出部１８２は、ＣＰＵ９１１を用いて、上昇回数算出工程Ｓ６３１で上昇回数算出部１３１が算出した上昇回数４１１と、下降回数算出工程Ｓ６３２で下降回数算出部１３３が算出した下降回数４１２と、変曲回数算出工程Ｓ６３６で変曲回数算出部１４１が算出した変曲回数４１３と、凹回数算出工程Ｓ６３７で凹回数算出部１４３が算出した凹回数４１４と、凸回数算出工程Ｓ６３８で凸回数算出部１４５が算出した凸回数４１５と、取得した比較特徴量とに基づいて、類似度を算出する。
類似判定工程Ｓ６７３において、類似判定部１８４は、ＣＰＵ９１１を用いて、比較パターン選択工程Ｓ６７１で類似度算出部１８２が選択した比較パターンについて閾値記憶部１８３が記憶した類似度閾値を取得する。類似判定部１８４は、ＣＰＵ９１１を用いて、類似度算出工程Ｓ６７２で類似度算出部１８２が算出した類似度と、取得した類似度閾値とを比較して、対象部分パターンが、比較パターン選択工程Ｓ６７１で類似度算出部１８２が選択した比較パターンに近いか否かを判定する。
比較パターン繰り返し工程Ｓ６７４において、類似度算出部１８２は、ＣＰＵ９１１を用いて、比較パターン選択工程Ｓ６７１で比較すべき比較パターンをすべて選択したか否かを判定する。まだ選択していない比較パターンがあると判定した場合、類似度算出部１８２は、ＣＰＵ９１１を用いて、比較パターン選択工程Ｓ６７１に戻り、次の比較パターンを選択する。比較すべきすべての比較パターンを選択したと判定した場合、類似度算出部１８２は、ＣＰＵ９１１を用いて、判定結果通知工程Ｓ６８０へ進む。
【００５０】
判定結果通知工程Ｓ６８０において、判定結果通知部１８５は、ＣＰＵ９１１を用いて、検出結果通知装置８２０に対して、類似判定工程Ｓ６７３で類似判定部１８４が判定した判定結果を通知する。
その後、波形数値取得工程Ｓ６１０に戻り、波形数値取得部１１１が次の波形数値を取得する。
【００５１】
図８は、この実施の形態における上昇回数算出工程Ｓ６３１の詳細な処理の流れの一例を示す詳細フローチャート図である。
上昇回数算出工程Ｓ６３１は、上昇回数入力工程Ｓ７１１、最古符号判定工程Ｓ７１２、上昇回数減少工程Ｓ７１３、最新符号判定工程Ｓ７１４、上昇回数増加工程Ｓ７１５、上昇回数出力工程Ｓ７１６を有する。
【００５２】
上昇回数入力工程Ｓ７１１において、上昇回数算出部１３１は、ＣＰＵ９１１を用いて、上昇回数記憶部１３２が記憶した一つ前の上昇回数４１１を入力する。
最古符号判定工程Ｓ７１２において、上昇回数算出部１３１は、ＣＰＵ９１１を用いて、差分符号記憶部１１６が記憶した差分符号４０６のなかから、パターンサンプル数前の差分符号４０６を取得し、取得した差分符号４０６が「正」であるか否かを判定する。
パターンサンプル数前の差分符号４０６が「正」であると判定した場合、上昇回数算出部１３１は、ＣＰＵ９１１を用いて、上昇回数減少工程Ｓ７１３へ進む。
パターンサンプル数前の差分符号４０６が「正」でないと判定した場合、上昇回数算出部１３１は、ＣＰＵ９１１を用いて、最新符号判定工程Ｓ７１４へ進む。
【００５３】
上昇回数減少工程Ｓ７１３において、上昇回数算出部１３１は、ＣＰＵ９１１を用いて、入力した上昇回数４１１を一つ減らして、上昇回数４１１を修正する。
最新符号判定工程Ｓ７１４において、上昇回数算出部１３１は、ＣＰＵ９１１を用いて、差分符号判定部１１５が出力した最新の差分符号４０６を取得し、取得した差分符号４０６が「正」であるか否かを判定する。
最新の差分符号４０６が「正」であると判定した場合、上昇回数算出部１３１は、ＣＰＵ９１１を用いて、上昇回数増加工程Ｓ７１５へ進む。
最新の差分符号４０６が「正」でないと判定した場合、上昇回数算出部１３１は、ＣＰＵ９１１を用いて、上昇回数出力工程Ｓ７１６へ進む。
【００５４】
上昇回数増加工程Ｓ７１５において、上昇回数算出部１３１は、ＣＰＵ９１１を用いて、入力した上昇回数４１１を一つ増やして、上昇回数４１１を修正する。
上昇回数出力工程Ｓ７１６において、上昇回数算出部１３１は、ＣＰＵ９１１を用いて、算出した上昇回数４１１を出力する。
【００５５】
下降回数算出工程Ｓ６３２、変曲回数算出工程Ｓ６３６、凹回数算出工程Ｓ６３７、凸回数算出工程Ｓ６３８の詳細な処理の流れは、上昇回数算出工程Ｓ６３１と同様なので、説明を省略する。
【００５６】
この実施の形態における波形パターン検出装置１００は、一連の数値によって表わされる波形パターンのなかから、所定数（パターンサンプル数）の一連の数値によって表わされる比較パターンに近い部分を検出する。
波形パターン検出装置１００は、データを記憶する記憶装置（磁気ディスク装置９２０など）と、データを処理する処理装置（ＣＰＵ９１１）と、波形記憶部１１２と、波形特徴量算出部（上昇回数算出部１３１、下降回数算出部１３３、変曲回数算出部１４１、凹回数算出部１４３、凸回数算出部１４５）と、比較特徴量記憶部１８１と、類似度算出部１８２と、類似判定部１８４とを有する。
上記波形記憶部１１２は、上記記憶装置を用いて、上記波形パターンを表わす一連の数値を、一連の波形数値４０２として記憶する。
上記波形特徴量算出部は、上記処理装置を用いて、上記波形記憶部１１２が記憶した一連の波形数値のうち少なくともいずれかの波形数値（最新の波形数値）を対象波形数値とし、上記対象波形数値以前の上記所定数の波形数値を一連の部分波形数値とし、上記一連の部分波形数値の特徴を表わす特徴量（上昇回数４１１、下降回数４１２、変曲回数４１３、凹回数４１４、凸回数４１５）を算出して、上記対象波形数値についての波形特徴量とする。
上記比較特徴量記憶部１８１は、上記記憶装置を用いて、上記比較パターンを表わす一連の数値の特徴を表わす特徴量を、比較特徴量として記憶する。
上記類似度算出部１８２は、上記処理装置を用いて、上記波形特徴量算出部が算出した波形特徴量と、上記比較特徴量記憶部１８１が記憶した比較特徴量とに基づいて、上記波形パターンのうち上記一連の部分波形数値によって表わされる部分（対象部分パターン）と、上記比較パターンとの類似度を算出する。
上記類似判定部１８４は、上記処理装置を用いて、上記類似度算出部１８２が算出した類似度に基づいて、上記波形パターンのうち上記一連の部分波形数値によって表わされる部分（対象部分パターン）が、上記比較パターンに近いか否かを判定する。
【００５７】
この実施の形態における波形パターン検出装置１００によれば、波形特徴量算出部が算出した波形特徴量と、比較特徴量記憶部１８１が記憶した比較特徴量とに基づいて、波形パターンのうち比較パターンに近い部分を検出するので、計算量を抑えることができ、処理装置の処理速度が遅い場合でも、実時間での検出をすることができる。
【００５８】
この実施の形態における波形パターン検出装置１００において、上記波形特徴量算出部は、上記処理装置を用いて、対象波形数値についての波形特徴量を、上記対象波形数値の一つ前の波形数値について算出した波形特徴量に基づいて算出する。
【００５９】
この実施の形態における波形パターン検出装置１００によれば、波形特徴量算出部が、一つ前の波形特徴量を使って波形特徴量を算出するので、一つ前との差にあたる部分だけを計算すればよく、計算量を抑えることができるので、処理装置の処理速度が遅い場合でも、実時間での検出をすることができる。
【００６０】
この実施の形態における波形パターン検出装置１００は、更に、波形差分算出部１１３を有する。
上記波形差分算出部１１３は、上記処理装置を用いて、上記波形記憶部１１２が記憶した一連の波形数値のうち少なくともいずれかの波形数値について、上記波形数値と、上記波形数値の一つ前の波形数値との差を算出して、波形差分４０３とする。
上記波形特徴量算出部は、上記処理装置を用いて、上記波形差分算出部１１３が算出した波形差分４０３に基づいて、上記波形特徴量を算出する。
【００６１】
この実施の形態における波形パターン検出装置１００によれば、波形差分算出部１１３が算出した波形差分４０３に基づいて、波形特徴量算出部が波形特徴量を算出するので、波形パターンを表わす波形数値４０２の具体的な値よりも、波形パターンの形状が比較パターンに近い部分を検出することができる。
【００６２】
この実施の形態における波形パターン検出装置１００は、更に、差分符号判定部１１５を有する。
上記差分符号判定部１１５は、上記処理装置を用いて、上記波形差分算出部１１３が算出した波形差分に基づいて、上記波形差分の符号を判定して、差分符号４０６とする。
上記波形特徴量算出部は、上記処理装置を用いて、上記差分符号判定部１１５が判定した差分符号４０６に基づいて、上記波形特徴量を算出する。
【００６３】
この実施の形態における波形パターン検出装置１００によれば、差分符号判定部１１５が算出した差分符号４０６に基づいて、波形特徴量算出部が波形特徴量を算出するので、更に抽象化のレベルを高めることができ、波形パターンの形状が比較パターンに近い部分を検出することができる。また、差分符号４０６は「正」か「負」かというわずか１ビット（「０」を含めても２ビット）の情報なので、整数や浮動小数点実数などを扱うよりも、計算時間を短くすることができ、処理装置の処理速度が遅い場合でも、実時間での検出をすることができる。
【００６４】
この実施の形態における波形パターン検出装置１００は、上記波形特徴量算出部として、上昇回数算出部１３１を有する。
上記上昇回数算出部１３１は、上記処理装置を用いて、上記差分符号判定部１１５が判定した差分符号４０６に基づいて、上記一連の部分波形数値のうち、上記差分符号４０６が正である部分波形数値の数を算出して、上昇回数４１１とし、算出した上昇回数４１１を上記波形特徴量とする。
【００６５】
この実施の形態における波形パターン検出装置１００によれば、上昇回数算出部１３１が算出した上昇回数４１１を波形特徴量とするので、波形パターンの形状が比較パターンに近い部分を検出することができる。
【００６６】
この実施の形態における波形パターン検出装置１００において、上記上昇回数算出部１３１は、上記処理装置を用いて、上記対象波形数値の一つ前の波形数値について算出した上昇回数４１１と、上記対象波形数値より上記所定数（パターンサンプル数）前の波形数値について上記差分符号判定部１１５が判定した差分符号４０６と、上記対象波形数値について上記差分符号判定部１１５が判定した差分符号４０６とに基づいて、上記対象波形数値についての上昇回数４１１を算出する。
【００６７】
この実施の形態における波形パターン検出装置１００によれば、一つ前の上昇回数４１１と、二つの差分符号４０６とに基づいて、上昇回数算出部１３１が上昇回数４１１を算出するので、計算量を少なくすることができ、処理装置の処理速度が遅い場合でも、実時間での検出をすることができる。
【００６８】
この実施の形態における波形パターン検出装置１００は、上記波形特徴量算出部として、下降回数算出部１３３を有する。
上記下降回数算出部１３３は、上記処理装置を用いて、上記差分符号判定部１１５が判定した差分符号４０６に基づいて、上記一連の部分波形数値のうち、上記差分符号４０６が負である部分波形数値の数を算出して、下降回数４１２とし、算出した下降回数４１２を上記波形特徴量とする。
【００６９】
この実施の形態における波形パターン検出装置１００によれば、下降回数算出部１３３が算出した下降回数４１２を波形特徴量とするので、波形パターンの形状が比較パターンに近い部分を検出することができる。
【００７０】
この実施の形態における波形パターン検出装置１００において、上記下降回数算出部１３３は、上記処理装置を用いて、上記対象波形数値の一つ前の波形数値について算出した下降回数４１２と、上記対象波形数値より上記所定数前の波形数値について上記差分符号判定部１１５が判定した差分符号４０６と、上記対象波形数値について上記差分符号判定部１１５が判定した差分符号４０６とに基づいて、上記対象波形数値についての下降回数４１２を算出する。
【００７１】
この実施の形態における波形パターン検出装置１００によれば、一つ前の下降回数４１２と、二つの差分符号４０６とに基づいて、下降回数算出部１３３が下降回数４１２を算出するので、計算量を少なくすることができ、処理装置の処理速度が遅い場合でも、実時間での検出をすることができる。
【００７２】
上記波形パターン検出装置１００は、更に、波形変曲判定部１２１を有し、上記波形特徴量算出部として、変曲回数算出部１４１を有する。
上記波形変曲判定部１２１は、上記処理装置を用いて、上記波形記憶部１１２が記憶した一連の波形数値４０２のうち少なくともいずれかの波形数値について、上記波形数値について上記差分符号判定部１１５が判定した差分符号と、上記波形数値の一つ前の波形数値について上記差分符号判定部１１５が判定した差分符号とが異なるか否かを判定する。
上記変曲回数算出部１４１は、上記処理装置を用いて、上記波形変曲判定部１２１が判定した判定結果（波形変曲４０７）に基づいて、上記一連の部分波形数値のうち、一つ前の部分波形数値と差分符号が異なる部分波形数値の数を算出して、変曲回数４１３とし、算出した変曲回数４１３を上記波形特徴量とする。
【００７３】
この実施の形態における波形パターン検出装置１００によれば、変曲回数算出部１４１が算出した変曲回数４１３を波形特徴量とするので、波形パターンの形状が比較パターンに近い部分を検出することができる。
【００７４】
この実施の形態における波形パターン検出装置１００において、上記変曲回数算出部１４１は、上記処理装置を用いて、上記対象波形数値の一つ前の波形数値について算出した変曲回数４１３と、上記対象波形数値より上記所定数前の波形数値について上記波形変曲判定部１２１が判定した判定結果（波形変曲４０７）と、上記対象波形数値について上記波形変曲判定部１２１が判定した判定結果（波形変曲４０７）とに基づいて、上記対象波形数値についての変曲回数４１３を算出する。
【００７５】
この実施の形態における波形パターン検出装置１００によれば、一つ前の変曲回数４１３と、二つの判定結果（波形変曲４０７）とに基づいて、変曲回数算出部１４１が変曲回数４１３を算出するので、計算量を少なくすることができ、処理装置の処理速度が遅い場合でも、実時間での検出をすることができる。
【００７６】
この実施の形態における波形パターン検出装置１００において、上記類似度算出部１８２は、上記処理装置を用いて、上記波形特徴量と上記比較特徴量とをそれぞれベクトルとみなし、上記波形特徴量のベクトルと上記比較特徴量のベクトルとがなす角度θに基づいて、上記類似度を算出する。
【００７７】
この実施の形態における波形パターン検出装置１００によれば、二つのベクトルの内積を取ることによって少ない計算量で算出できる角度θ（あるいはその余弦ｃｏｓθもしくはその二乗ｃｏｓ２θ）に基づいて、類似度算出部１８２が類似度を算出するので、計算量を少なくすることができ、処理装置の処理速度が遅い場合でも、実時間での検出をすることができる。
【００７８】
この実施の形態における波形パターン検出装置１００において、上記類似判定部１８４は、上記処理装置を用いて、上記類似度算出部１８２が算出した類似度が所定の閾値（類似度閾値）より大きい場合に、上記波形パターンのうち上記一連の部分波形数値によって表わされる部分（対象部分パターン）が、上記比較パターンに近いと判定する。
【００７９】
この実施の形態における波形パターン検出装置１００によれば、類似度算出部１８２が算出した類似度を所定の閾値と比較して、波形パターンのうち比較パターンに近い部分を検出するので、計算量を抑えることができ、処理装置の処理速度が遅い場合でも、実時間での検出をすることができる。
【００８０】
この実施の形態における波形パターン検出装置１００は、データを記憶する記憶装置とデータを処理する処理装置とを有するコンピュータを上記波形パターン検出装置１００として機能させるコンピュータプログラムを、上記コンピュータが実行することにより実現することができる。
【００８１】
この実施の形態におけるコンピュータプログラムによれば、波形特徴量算出部が算出した波形特徴量と、比較特徴量記憶部１８１が記憶した比較特徴量とに基づいて、波形パターンのうち比較パターンに近い部分を検出するので、計算量を抑えることができ、処理装置の処理速度が遅い場合でも、実時間での検出をすることができる波形パターン検出装置１００を、実現することができる。
【００８２】
この実施の形態における波形パターン検出装置１００が、一連の数値によって表わされる波形パターンのなかから、所定数（パターンサンプル数）の一連の数値によって表わされる比較パターンに近い部分を検出する波形パターン検出方法は、以下の工程を有する。
上記処理装置が、上記波形パターンを表わす一連の波形数値４０２のうち少なくともいずれかの波形数値（最新の波形数値）を対象波形数値とし、上記対象波形数値以前の上記所定数の波形数値を一連の部分波形数値とし、上記一連の部分波形数値の特徴を表わす特徴量（上昇回数４１１、下降回数４１２、変曲回数４１３、凹回数４１４、凸回数４１５）を算出して、上記対象波形数値についての波形特徴量とする。
上記処理装置が、算出した波形特徴量と、上記比較パターンを表わす一連の数値の特徴を表わす比較特徴量とに基づいて、上記波形パターンのうち上記一連の部分波形数値によって表わされる部分（対象部分パターン）と、上記比較パターンとの類似度を算出する。
上記処理装置が、算出した類似度に基づいて、上記波形パターンのうち上記一連の部分波形数値によって表わされる部分が、上記比較パターンに近いか否かを判定する。
【００８３】
この実施の形態における波形パターン検出方法によれば、処理装置が算出した波形特徴量と、比較特徴量とに基づいて、波形パターンのうち比較パターンに近い部分を検出するので、計算量を抑えることができ、処理装置の処理速度が遅い場合でも、実時間での検出をすることができる。
【００８４】
なお、上昇回数、下降回数、変曲回数、凹回数、凸回数を波形特徴量の例として説明したが、波形特徴量は、これらすべてを含む必要はなく、このうちの一部のみを波形特徴量とする構成であってもよい。また、波形特徴量は、波形パターンの特徴を表わす数値であれば、これら以外の他の数値を含む構成であってもよい。他の数値を波形特徴量に含む場合、上述した上昇回数などと同じように、対象部分パターンが一つずつシフトしていく特性に鑑みて、計算量を少なくすることができる数値を採用することが望ましい。
【００８５】
以上説明した波形パターン検出装置１００のパターン検出方式は、時系列で変化する指標値（波形数値）の波形データから抽出した特徴量（波形特徴量）と、パターンの基準となる特徴量（比較特徴量）とを比較することによりパターンを検出する。
波形の特徴量同士の類似度の比較を行うことにより、サンプリング点数に依存せず、少ない計算時間でパターンを検出することができる。
比較するテンプレート（比較パターン）が複数ある場合にも、他のテンプレートとの類似度の比較処理時に使用した特徴量（波形特徴量）を利用できるので、類似度の計算時間を低減することができる。
以上説明したパターン検出方式は、前回抽出した特徴量からの差分のみを計算することにより、特徴量を抽出するための計算時間を低減する。
値の変動の傾向を特徴量として抽出することにより、指標値の挙動が離散的に変化する場合にもパターンを検出することができる。
このように、以上説明したパターン検出方式は、特徴量の比較により、サンプリング点数に依存せず、前回特徴量を流用し、差分特徴量を計算し、傾向を特徴量化する。
【００８６】
監視用サーバ（監視システム８００）は、監視対象の指標値（監視指標値、波形数値）の変化を検出するための監視機構を持つ。監視用サーバは、監視指標値情報記憶部（波形記憶部１１２）、テンプレート情報記憶部（比較特徴量記憶部１８１）、差分特徴量情報記憶部（波形差分記憶部１１４、差分符号記憶部１１６、波形変曲記憶部１２２）、特徴量変化履歴情報記憶部（上昇回数記憶部１３２、下降回数記憶部１３４、変曲回数記憶部１４２）を持つ。
監視機構は、監視対象装置（監視対象８９０）が保持している値や監視対象データベース（監視対象８９０）に追加／更新されたレコードの値などの監視指標値（波形数値）を収集し、指標値の変化を検出する。監視機構は、監視指標値の監視を行うための処理を統合する統合処理部と、監視指標値を監視対象から収集する監視指標値収集部（波形観測装置８１０）と、監視指標値の変化のパターンを検出するパターン検出部（波形パターン検出装置１００）と、パターンが検出された場合にメールや警告などを通知するイベント通知部（検出結果通知装置８２０）を持つ。
【００８７】
監視対象装置（監視対象８９０）は、センサやロボット、ＦＡ機器などから取得可能な値を保持する。監視対象サーバ（監視対象８９０）は、センサやロボット、ＦＡ機器などから取得可能な値を収集するための収集プログラムを持つ。監視対象サーバは、収集プログラムが収集した値を保持する監視対象データベースを持つ。
なお、監視対象装置、監視対象サーバ、および、収集プログラム、監視対象データベースは、監視対象８９０の一例であり、複数あってもよい。監視対象装置のみ、または、監視対象サーバ以下の構成のみであってもよい。監視対象データベースは、一般のデータベースシステムに限らず、ファイルシステムであってもよい。
【００８８】
パターン検出部（波形パターン検出装置１００）は、特徴量抽出処理部と、パターン検出判別処理部（類似度算出部１８２、類似判定部１８４）とを持つ。特徴量抽出処理部は、差分特徴量抽出処理部（波形差分算出部１１３、差分符号判定部１１５、波形変曲判定部１２１）と合成特徴量抽出処理部（上昇回数算出部１３１、下降回数算出部１３３、変曲回数算出部１４１）とを持つ。
【００８９】
全体の処理の流れとしては、まず、統合処理部が、監視指標値（波形数値）の監視を開始する。監視指標値収集部（波形観測装置８１０）が、監視対象装置や監視対象データベース（監視対象８９０）から指標値を収集する。パターン検出部（波形パターン検出装置１００）が、収集した監視指標値情報、テンプレート情報、差分特徴量情報、特徴量変化履歴情報を使用してパターンの検出を行う。パターン検出部が、パターンを検出した場合、イベント通知部（検出結果通知装置８２０）が、メール送信や警告音発信など、検出したパターンに対応するイベントの通知処理を行う。監視を継続する場合には、以上の処理を繰り返し、監視を継続しない場合には、処理を終了する。
【００９０】
パターン検出の処理の流れは、まず、差分特徴量抽出処理部が、監視指標値の変化を差分特徴量として抽出する。パターン検出の判別を行っていないテンプレート（比較パターン）がある場合、パターン検出の判別を行っていないテンプレート（比較対象テンプレート）を使用して以下の処理を行う。合成特徴量抽出処理部が、比較対象テンプレートの特徴量と比較するための特徴量（合成特徴量）を、差分特徴量情報と特徴量変化履歴情報を使用して作成する。パターン検出判別処理部が、比較テンプレートの特徴量と、作成した合成特徴量とを比較して、パターン一致の判別を行う。
【００９１】
差分特徴量（波形差分４０３、差分符号４０６、波形変曲４０７）抽出の処理の流れは、まず、波形数値取得部１１１が、監視指標情報から、前回取得した時点との差分の指標値（波形数値）を取得する。波形記憶部１１２が、取得した指標値を、差分特徴量情報に時系列順に追加する。波形差分算出部１１３・差分符号判定部１１５・波形変曲判定部１２１が、追加した指標値の行（以降、ｔ行）について、前回の値との差分値（波形差分）、差分符号、変曲点（波形変曲）を計算し、差分特徴量情報を更新する。ただし、前回の値がない場合には、計算は行わない。
波形差分算出部１１３は、差分値（ｔ）（波形差分）として、式「差分値（ｔ）＝指標値（ｔ）−指標値（ｔ−１）」を計算する。ただし、差分値（ｔ）は、ｔ行目の差分値列の値を意味する。差分符号判定部１１５は、差分符号（ｔ）として、差分値（ｔ）が０以上であれば、差分符号（ｔ）＝“＋”とし、そうでなければ、差分符号（ｔ）＝“−”とする。波形変曲判定部１２１は、変曲点（ｔ）（波形変曲）として、差分符号（ｔ）＝差分符号（ｔ−１）であれば、変曲点（ｔ）＝０とし、そうでなければ、変曲点（ｔ）＝１とする。
【００９２】
合成特徴量（上昇回数４１１、下降回数４１２、変曲回数４１３）計算の処理の流れは、まず、上昇回数算出部１３１が、テンプレート情報から、比較テンプレートの検出パラメータのうち、サンプリング数ｎを取得する。上昇回数算出部１３１が、特徴量変化履歴情報のｔ−１行目の値（上昇回数）をｔ行目にコピーする。上昇回数算出部１３１が、差分特徴量情報のｔ−ｎ行目の特徴量を用いて、特徴量変化履歴情報のｔ行目の値から特徴量を除去する。上昇回数算出部１３１が、差分特徴量情報のｔ行目の特徴量を用いて、特徴量変化履歴情報のｔ行目の値に特徴量を追加する。
【００９３】
パターン検出を判別する処理の流れは、まず、類似度算出部１８２・類似判定部１８４が、テンプレート情報から、比較テンプレートの特徴量（比較特徴量）と、検出閾値（類似度閾値）とを取得する。類似度算出部１８２が、特徴量変化履歴情報から、ｔ行目の合成特徴量を取得する。類似度算出部１８２が、比較テンプレート特徴量と合成特徴量の類似度を計算する。類似度の計算には、例えば、ベクトル間の距離の計算などを用いる。類似判定部１８４が、類似度が閾値を超えているかどうかを判断する。
【００９４】
以上説明した波形パターン検出装置１００によれば、サンプリング点（パターンサンプル数）が多くなっても、計算量の増加が少ない。また、テンプレート（比較パターン）が複数ある場合、パターンサンプル数が同じであれば、同じ波形特徴量を使って比較することができるので、効率的であり、計算量の増加を抑えることができる。これにより、リアルタイムなパターン検出を実現することができる。
【００９５】
実施の形態２．
実施の形態２について、図９〜図１２を用いて説明する。
なお、実施の形態１と共通する部分については、同一の符号を付し、説明を省略する。
【００９６】
図９は、この実施の形態における波形パターン検出装置１００の機能ブロックの構成の一例を示すブロック構成図である。
波形パターン検出装置１００は、実施の形態１で説明した機能ブロックに加えて、更に、連続上昇回数更新部１５１、連続上昇回数記憶部１５２、連続上昇回数算出部１５３、連続下降回数更新部１５４、連続下降回数記憶部１５５、連続下降回数算出部１５６、連続変曲回数更新部１６１、連続変曲回数記憶部１６２、連続変曲回数算出部１６３、連続凹回数更新部１６４、連続凹回数記憶部１６５、連続凹回数算出部１６６、連続凸回数更新部１６７、連続凸回数記憶部１６８、連続凸回数算出部１６９を有する。
【００９７】
波形パターン検出装置１００は、実施の形態１で説明した波形特徴量に加えて、更に、連続上昇回数、連続下降回数、連続変曲回数、連続凹回数、連続凸回数を、波形特徴量として算出する。
連続上昇回数とは、対象部分パターンを表わす一連の波形数値のうち、一つ前の波形数値よりも大きい波形数値が連続している数のことである。言い換えると、連続上昇回数は、正である差分符号が連続している数であると言える。連続が複数ある場合は、そのなかで最長のものを連続上昇回数とする。
連続下降回数とは、対象部分パターンを表わす一連の波形数値のうち、一つ前の波形数値よりも小さい波形数値が連続している数のことである。言い換えると、連続下降回数は、負である差分符号が連続している数であると言える。連続が複数ある場合は、そのなかで最長のものを連続下降回数とする。
連続変曲回数とは、対象部分パターンを表わす一連の波形数値のうち、一つ前の波形数値が極値である波形数値が連続している数のことである。言い換えると、連続変曲回数は、差分符号が「正」「負」「正」「負」と交互に連続している数であり、また、極値ありである波形変曲が連続している数であると言える。連続が複数ある場合は、そのなかで最長のものを連続変曲回数とする。
連続凹回数とは、対象部分パターンを表わす一連の波形数値のうち、一つ前の波形数値が凹んでいる波形数値が連続している数のことである。言い換えると、連続凹回数は、正である二階符号が連続している数であると言える。連続が複数ある場合は、そのなかで最長のものを連続凹回数とする。
連続凸回数とは、対象部分パターンを表わす一連の波形数値のうち、一つ前の波形数値が膨らんでいる波形数値が連続している数のことである。言い換えると、連続凸回数は、負である二階符号が連続している数であると言える。連続が複数ある場合は、そのなかで最長のものを連続凸回数とする。
【００９８】
これらの波形特徴量も、一つ前の波形特徴量との差のみを計算することにより、効率的に算出することができる。連続区間が対象部分パターンの区間のなかに完全に含まれているときは、対象部分パターンが一つずれても、連続区間の長さは変わらない。連続区間が最新の波形数値を含む場合、対象部分パターンが一つ後に移動すると、連続区間の長さが一つ増えるか、連続区間がそこで途切れるかのいずれかである。連続区間がパターンサンプル数前の波形数値を含む場合、対象部分パターンが一つ後に移動すると、連続区間の長さが一つ減るか、他の区間が最長の連続区間となるかのいずれかである。
【００９９】
連続上昇回数記憶部１５２は、磁気ディスク装置９２０を用いて、連続上昇テーブルを記憶する。連続上昇テーブルとは、対象部分パターンの区間のなかに存在する連続上昇区間の開始時刻と長さとの組を保存するテーブルである。連続上昇テーブルは、連続上昇区間の長さが最長のものも、そうでないものも含む。連続上昇区間の長さが最長でない場合でも、最長の連続上昇区間が、対象部分パターンの区間外に出ていくことにより、昇格して、最長になる可能性があるからである。ただし、昇格する可能性のある連続上昇区間は、最長の連続上昇区間よりも新しいものに限られる。最長の連続上昇区間よりも古い連続上昇区間は、最長の連続上昇区間が対象部分パターンの区間外に出ていくよりも先に、対象部分パターンの区間外に出ていくからである。
【０１００】
連続上昇回数更新部１５１は、ＣＰＵ９１１を用いて、差分符号判定部１１５が出力した最新の差分符号４０６を入力する。連続上昇回数更新部１５１は、ＣＰＵ９１１を用いて、入力した差分符号４０６に基づいて、連続上昇回数記憶部１５２が記憶した連続上昇テーブルを更新する。連続上昇回数記憶部１５２は、磁気ディスク装置９２０を用いて、更新された連続上昇テーブルを記憶する。
連続上昇テーブルの更新は、例えば、以下のようにして行う。
連続上昇回数更新部１５１は、ＣＰＵ９１１を用いて、入力した差分符号４０６が正であるか否かを判定する。
差分符号４０６が正であると判定した場合、現在が連続上昇区間中でなければ、連続上昇回数更新部１５１は、ＣＰＵ９１１を用いて、新たに長さ１の連続上昇区間を生成して、連続上昇テーブルに追加する。
現在が連続上昇区間中である場合、連続上昇回数更新部１５１は、ＣＰＵ９１１を用いて、最新の連続上昇区間の長さを一つ増やす。これにより、最新の連続上昇区間が最長の連続上昇区間になった場合、連続上昇回数更新部１５１は、ＣＰＵ９１１を用いて、それより古い連続上昇区間を、連続上昇テーブルから削除する。
最新の連続上昇区間が最長の連続上昇区間でない場合、連続上昇回数更新部１５１は、ＣＰＵ９１１を用いて、連続上昇テーブルに保存されている最古の連続上昇区間の開始時刻が対象部分パターンの区間外か否かを判定する。最古の連続上昇区間の開始時刻が対象部分パターンの区間外である場合、連続上昇回数更新部１５１は、ＣＰＵ９１１を用いて、最古の連続上昇区間の開始時刻を、対象部分パターンの区間の開始時刻に修正し、最古の連続上昇区間の長さを一つ減らす。
連続上昇回数更新部１５１は、ＣＰＵ９１１を用いて、これにより昇格した連続上昇区間があるか探索する。昇格した連続上昇区間がある場合、連続上昇回数更新部１５１は、ＣＰＵ９１１を用いて、それより古い連続上昇区間を、連続上昇テーブルから削除する。
【０１０１】
連続上昇回数算出部１５３は、ＣＰＵ９１１を用いて、連続上昇回数記憶部１５２が記憶した連続上昇テーブルのなかから、最長の連続上昇区間の長さを取得して、連続上昇回数として出力する。連続上昇回数更新部１５１が、最長の連続上昇区間よりも古い連続上昇区間を、連続上昇テーブルから削除しているので、最長の連続上昇区間は、連続上昇回数記憶部１５２が記憶した連続上昇テーブルに保存された連続上昇区間のうち最古の連続上昇区間である。連続上昇回数算出部１５３は、ＣＰＵ９１１を用いて、連続上昇回数記憶部１５２が記憶した連続上昇テーブルのなかから、最古の連続上昇区間の長さを取得して、連続上昇回数とする。
【０１０２】
連続下降回数記憶部１５５は、磁気ディスク装置９２０を用いて、連続下降テーブルを記憶する。連続下降テーブルとは、対象部分パターンの区間のなかに存在する連続下降区間の開始時刻と長さとの組を保存するテーブルである。
連続下降回数更新部１５４は、ＣＰＵ９１１を用いて、差分符号判定部１１５が出力した最新の差分符号４０６を入力する。連続下降回数更新部１５４は、ＣＰＵ９１１を用いて、入力した差分符号４０６に基づいて、連続上昇回数更新部１５１と同様の方式により、連続下降回数記憶部１５５が記憶した連続下降テーブルを更新する。連続下降回数記憶部１５５は、磁気ディスク装置９２０を用いて、更新された連続下降テーブルを記憶する。
連続下降回数算出部１５６は、ＣＰＵ９１１を用いて、連続下降回数記憶部１５５が記憶した連続下降テーブルのなかから、最長の連続下降区間の長さを取得して、連続下降回数として出力する。
【０１０３】
連続変曲回数記憶部１６２は、磁気ディスク装置９２０を用いて、連続変曲テーブルを記憶する。連続変曲テーブルとは、対象部分パターンの区間のなかに存在する連続変曲区間の開始時刻と長さとの組を保存するテーブルである。
連続変曲回数更新部１６１は、ＣＰＵ９１１を用いて、波形変曲判定部１２１が出力した最新の波形変曲４０７を入力する。連続変曲回数更新部１６１は、ＣＰＵ９１１を用いて、入力した波形変曲４０７に基づいて、連続上昇回数更新部１５１と同様の方式により、連続変曲回数記憶部１６２が記憶した連続変曲テーブルを更新する。連続変曲回数記憶部１６２は、磁気ディスク装置９２０を用いて、更新された連続変曲テーブルを記憶する。
連続変曲回数算出部１６３は、ＣＰＵ９１１を用いて、連続変曲回数記憶部１６２が記憶した連続変曲テーブルのなかから、最長の連続変曲区間の長さを取得して、連続変曲回数として出力する。
【０１０４】
連続凹回数記憶部１６５は、磁気ディスク装置９２０を用いて、連続凹テーブルを記憶する。連続凹テーブルとは、対象部分パターンの区間のなかに存在する連続凹区間の開始時刻と長さとの組を保存するテーブルである。
連続凹回数更新部１６４は、ＣＰＵ９１１を用いて、二階符号判定部１２５が出力した最新の二階符号４０５を入力する。連続凹回数更新部１６４は、ＣＰＵ９１１を用いて、入力した二階符号４０５に基づいて、連続上昇回数更新部１５１と同様の方式により、連続凹回数記憶部１６５が記憶した連続凹テーブルを更新する。連続凹回数記憶部１６５は、磁気ディスク装置９２０を用いて、更新された連続凹テーブルを記憶する。
連続凹回数算出部１６６は、ＣＰＵ９１１を用いて、連続凹回数記憶部１６５が記憶した連続凹テーブルのなかから、最長の連続凹区間の長さを取得して、連続凹回数として出力する。
【０１０５】
連続凸回数記憶部１６８は、磁気ディスク装置９２０を用いて、連続凸テーブルを記憶する。連続凸テーブルとは、対象部分パターンの区間のなかに存在する連続凸区間の開始時刻と長さとの組を保存するテーブルである。
連続凸回数更新部１６７は、ＣＰＵ９１１を用いて、二階符号判定部１２５が出力した最新の二階符号４０５を入力する。連続凸回数更新部１６７は、ＣＰＵ９１１を用いて、入力した二階符号４０５に基づいて、連続上昇回数更新部１５１と同様の方式により、連続凸回数記憶部１６８が記憶した連続凸テーブルを更新する。連続凸回数記憶部１６８は、磁気ディスク装置９２０を用いて、更新された連続凸テーブルを記憶する。
連続凸回数算出部１６９は、ＣＰＵ９１１を用いて、連続凸回数記憶部１６８が記憶した連続凸テーブルのなかから、最長の連続凸区間の長さを取得して、連続凸回数として出力する。
【０１０６】
図１０は、この実施の形態における波形パターン検出装置１００が算出する波形特徴量の一例を示す図である。
この例において、パターンサンプル数は５であるものとする。
連続上昇テーブル４２１は、連続上昇回数記憶部１５２が記憶する連続上昇テーブルである。連続上昇テーブル４２１は、連続上昇区間を表わす開始時刻４２２と連続上昇回数４２３との組を記憶している。
【０１０７】
パターンサンプル数が５なので、対象部分パターンの区間は、四つ前から最新までの区間である。例えば、時刻「１６：２３」において、対象部分パターンの区間は、「１６：１９」から「１６：２３」までである。このとき、連続上昇テーブル４２１には、開始時刻「１６：１９」連続上昇回数「２」の連続上昇区間と、開始時刻「１６：２２」連続上昇回数「１」の連続上昇区間との二つの連続上昇区間を記憶している。最長の連続上昇区間は、連続上昇回数記憶部１５２が記憶した連続上昇テーブル４２１のうち最古の連続上昇区間であるから、この場合、最長連続上昇回数４２４は「２」である。
【０１０８】
時刻「１６：２４」において、対象部分パターンの区間は「１６：２０」から「１６：２４」までに変化する。入力した差分符号４０６が「正」であり、最新の連続上昇区間が時刻「１６：２２」（二つ前）までで現在は連続上昇中でないので、連続上昇回数更新部１５１は、ＣＰＵ９１１を用いて、新たな連続上昇区間（開始時刻「１６：２４」、連続上昇回数「１」）を生成して、連続上昇テーブル４２１に追加する。
最古の連続上昇区間の開始時刻「１６：１９」が、対象部分パターンの区間外なので、連続上昇回数更新部１５１は、ＣＰＵ９１１を用いて、最古の連続上昇区間の開始時刻を「１６：２０」に変更し、連続上昇回数を一つ減らして「１」とする。
連続上昇回数更新部１５１は、ＣＰＵ９１１を用いて、連続上昇テーブル４２１のなかから連続上昇回数が「１」であるものを、新しいほうから順に検索し、開始時刻「１６：２４」を取得する。連続上昇回数更新部１５１は、ＣＰＵ９１１を用いて、開始時刻が「１６：２４」よりも古い連続上昇区間を、連続上昇テーブル４２１から削除する。したがって、連続上昇回数記憶部１５２が記憶した連続上昇テーブル４２１のうち最古の連続上昇区間は、開始時刻「１６：２４」、連続上昇回数「１」の組となり、最長連続上昇回数４２４は「１」になる。
【０１０９】
時刻「１６：２５」において、対象部分パターンの区間は「１６：２１」から「１６：２５」までに変化する。入力した差分符号４０６が「正」であり、最新の連続上昇区間が時刻「１６：２４」（一つ前）までで現在連続上昇中なので、連続上昇回数更新部１５１は、ＣＰＵ９１１を用いて、連続上昇回数記憶部１５２が記憶した連続上昇テーブル４２１のうち最新の連続上昇区間の連続上昇回数を一つ増やし、「２」とする。これにより、最長連続上昇回数４２４も「２」になる。
【０１１０】
このようにして、連続上昇回数記憶部１５２が記憶した連続上昇テーブルを、連続上昇回数更新部１５１が更新することにより、少ない計算量で、最長連続上昇回数４２４を求めることができる。連続上昇回数算出部１５３は、最長連続上昇回数４２４を、連続上昇回数として出力する。
【０１１１】
図１１は、この実施の形態における波形パターン検出処理Ｓ６００の全体の処理の流れの一例を示す全体フローチャート図である。
波形パターン検出処理Ｓ６００は、実施の形態１で説明した工程に加えて、更に、連続合成特徴量算出工程Ｓ６４０を有する。
連続合成特徴量算出工程Ｓ６４０は、連続上昇回数算出工程Ｓ６４１、連続下降回数算出工程Ｓ６４２、連続変曲回数算出工程Ｓ６４６、連続凹回数算出工程Ｓ６４７、連続凸回数算出工程Ｓ６４８を有する。
【０１１２】
連続上昇回数算出工程Ｓ６４１において、連続上昇回数更新部１５１は、ＣＰＵ９１１を用いて、差分符号判定工程Ｓ６２２で差分符号判定部１１５が判定した差分符号４０６に基づいて、連続上昇回数記憶部１５２が記憶した連続上昇テーブル４２１を更新する。連続上昇回数算出部１５３は、ＣＰＵ９１１を用いて、連続上昇回数更新部１５１が更新した連続上昇テーブル４２１に基づいて、連続上昇回数を算出する。
【０１１３】
連続下降回数算出工程Ｓ６４２において、連続下降回数更新部１５４は、ＣＰＵ９１１を用いて、差分符号判定工程Ｓ６２２で差分符号判定部１１５が判定した差分符号４０６に基づいて、連続下降回数記憶部１５５が記憶した連続下降テーブルを更新する。連続下降回数算出部１５６は、ＣＰＵ９１１を用いて、連続下降回数更新部１５４が更新した連続下降テーブルに基づいて、連続下降回数を算出する。
【０１１４】
連続変曲回数算出工程Ｓ６４６において、連続変曲回数更新部１６１は、ＣＰＵ９１１を用いて、波形変曲判定工程Ｓ６２６で波形変曲判定部１２１が判定した波形変曲４０７に基づいて、連続変曲回数記憶部１６２が記憶した連続変曲テーブルを更新する。連続変曲回数算出部１６３は、ＣＰＵ９１１を用いて、連続変曲回数更新部１６１が更新した連続変曲テーブルに基づいて、連続変曲回数を算出する。
【０１１５】
連続凹回数算出工程Ｓ６４７において、連続凹回数更新部１６４は、ＣＰＵ９１１を用いて、二階符号算出工程Ｓ６２８で二階符号判定部１２５が判定した二階符号４０５に基づいて、連続凹回数記憶部１６５が記憶した連続凹テーブルを更新する。連続凹回数算出部１６６は、ＣＰＵ９１１を用いて、連続凹回数更新部１６４が更新した連続凹テーブルに基づいて、連続凹回数を算出する。
【０１１６】
連続凸回数算出工程Ｓ６４８において、連続凸回数更新部１６７は、ＣＰＵ９１１を用いて、二階符号算出工程Ｓ６２８で二階符号判定部１２５が判定した二階符号４０５に基づいて、連続凸回数記憶部１６８が記憶した連続凸テーブルを更新する。連続凸回数算出部１６９は、ＣＰＵ９１１を用いて、連続凸回数更新部１６７が更新した連続凸テーブルに基づいて、連続凸回数を算出する。
【０１１７】
図１２は、この実施の形態における連続上昇回数算出工程Ｓ６４１の詳細な処理の流れの一例を示す詳細フローチャート図である。
連続上昇回数算出工程Ｓ６４１は、最新符号判定工程Ｓ７２１、上昇中判定工程Ｓ７２２、最新連続上昇回数増加工程Ｓ７２３、最新連続上昇回数比較工程Ｓ７２４、新規連続上昇生成工程Ｓ７２５、最古時刻位置比較工程Ｓ７２６、最古連続上昇回数減少工程Ｓ７２７、最長連続上昇回数探索工程Ｓ７２８、旧連続上昇選択工程Ｓ７３２、旧連続上昇消去工程Ｓ７３３、旧連続上昇繰り返し工程Ｓ７３４を有する。
【０１１８】
最新符号判定工程Ｓ７２１において、連続上昇回数更新部１５１は、ＣＰＵ９１１を用いて、差分符号判定部１１５が出力した最新の差分符号４０６が正であるか否かを判定する。差分符号４０６が正であると判定した場合、連続上昇回数更新部１５１は、ＣＰＵ９１１を用いて、上昇中判定工程Ｓ７２２へ進む。差分符号４０６が正でないと判定した場合、連続上昇回数更新部１５１は、ＣＰＵ９１１を用いて、最古開始時刻比較工程Ｓ７２６へ進む。
【０１１９】
上昇中判定工程Ｓ７２２において、連続上昇回数更新部１５１は、ＣＰＵ９１１を用いて、連続上昇回数記憶部１５２が記憶した連続上昇テーブル４２１から最新の連続上昇区間を取得して、最新の連続上昇区間の終了時刻を算出し、算出した終了時刻が、最新の波形数値の時刻（以下「現在時刻」と呼ぶ。）の一つ前であるか否かを判定する。一つ前と判定した場合は、現在上昇中であり、連続上昇回数更新部１５１は、ＣＰＵ９１１を用いて、最新連続上昇回数増加工程Ｓ７２３へ進む。二つ以上前であると判定した場合は、現在上昇中ではなく、連続上昇回数更新部１５１は、ＣＰＵ９１１を用いて、新規連続上昇生成工程Ｓ７２５へ進む。
【０１２０】
最新連続上昇回数増加工程Ｓ７２３において、連続上昇回数更新部１５１は、ＣＰＵ９１１を用いて、上昇中判定工程Ｓ７２２で取得した最新の連続上昇区間の連続上昇回数４２３に「１」を加え、連続上昇回数記憶部１５２が記憶した連続上昇テーブル４２１を更新する。
最新連続上昇回数比較工程Ｓ７２４において、連続上昇回数更新部１５１は、ＣＰＵ９１１を用いて、連続上昇回数記憶部１５２が記憶した連続上昇テーブル４２１から最古（すなわち最長）の連続上昇区間を取得する。連続上昇回数更新部１５１は、ＣＰＵ９１１を用いて、最新連続上昇回数増加工程Ｓ７２３で更新した最新の連続上昇区間の連続上昇回数４２３と、取得した最古の連続上昇区間の連続上昇回数４２３とを比較する。最新の連続上昇回数４２３のほうが最古の連続上昇回数４２３より小さい場合、連続上昇回数更新部１５１は、ＣＰＵ９１１を用いて、最古開始時刻比較工程Ｓ７２６へ進む。最新の連続上昇区間の連続上昇回数４２３が最古の連続上昇区間の連続上昇回数４２３以上である場合、連続上昇回数更新部１５１は、ＣＰＵ９１１を用いて、旧連続上昇選択工程Ｓ７３２へ進む。
【０１２１】
新規連続上昇生成工程Ｓ７２５において、連続上昇回数更新部１５１は、ＣＰＵ９１１を用いて、現在時刻を開始時刻とし、連続上昇回数を「１」とした連続上昇区間を生成して、連続上昇テーブル４２１に追加する。
【０１２２】
最古開始時刻比較工程Ｓ７２６において、連続上昇回数更新部１５１は、ＣＰＵ９１１を用いて、連続上昇回数記憶部１５２が記憶した連続上昇テーブル４２１から最古（すなわち最長）の連続上昇区間を取得する。連続上昇回数更新部１５１は、ＣＰＵ９１１を用いて、取得した最古の連続上昇区間の開始時刻４２２が、対象部分パターンの開始時刻より前か否かを判定する。最古の連続上昇区間の開始時刻４２２が対象部分パターンの開始時刻より前である場合は、区間外であり、連続上昇回数更新部１５１は、ＣＰＵ９１１を用いて、最古連続上昇回数減少工程Ｓ７２７へ進む。最古の連続上昇区間の開始時刻４２２が対象部分パターンの開始時刻以降である場合は、区間内であり、連続上昇回数更新部１５１は、ＣＰＵ９１１を用いて、連続上昇回数算出工程Ｓ６４１を終了する。
【０１２３】
最古連続上昇回数減少工程Ｓ７２７において、連続上昇回数更新部１５１は、ＣＰＵ９１１を用いて、最古開始時刻比較工程Ｓ７２６で取得した最古の連続上昇区間の開始時刻４２２を、対象部分パターンの開始時刻に設定し、連続上昇回数４２３を一つ減らして、連続上昇回数記憶部１５２が記憶した連続上昇テーブル４２１を更新する。
最長連続上昇回数探索工程Ｓ７２８において、連続上昇回数更新部１５１は、ＣＰＵ９１１を用いて、連続上昇回数記憶部１５２が記憶した連続上昇テーブル４２１を、新しいほうから順に検索して、連続上昇回数４２３が、最古連続上昇回数減少工程Ｓ７２７で更新した最古の連続上昇区間の連続上昇回数４２３以上である連続上昇区間を探す。最古の連続上昇区間よりも新しい連続上昇区間が見つかった場合、連続上昇回数更新部１５１は、ＣＰＵ９１１を用いて、旧連続上昇選択工程Ｓ７３２へ進む。最古の連続上昇区間よりも新しい連続上昇区間が見つからなかった場合、連続上昇回数更新部１５１は、ＣＰＵ９１１を用いて、連続上昇回数算出工程Ｓ６４１を終了する。
【０１２４】
旧連続上昇選択工程Ｓ７３２において、連続上昇回数更新部１５１は、ＣＰＵ９１１を用いて、連続上昇回数記憶部１５２が記憶した連続上昇テーブル４２１のなかから、最長の連続上昇区間（最長連続上昇回数探索工程Ｓ７２８で見つけた連続上昇区間、あるいは最新連続上昇回数増加工程Ｓ７２３で更新した最新の連続上昇区間）よりも古い連続上昇区間を一つずつ順に選択する。
旧連続上昇消去工程Ｓ７３３において、連続上昇回数更新部１５１は、ＣＰＵ９１１を用いて、旧連続上昇選択工程Ｓ７３２で選択した連続上昇区間を、連続上昇回数記憶部１５２が記憶した連続上昇テーブル４２１から削除する。
旧連続上昇繰り返し工程Ｓ７３４において、連続上昇回数更新部１５１は、ＣＰＵ９１１を用いて、旧連続上昇選択工程Ｓ７３２で選択すべき連続上昇区間をすべて選択したか判定する。まだ選択していない連続上昇区間があると判定した場合、連続上昇回数更新部１５１は、ＣＰＵ９１１を用いて、旧連続上昇選択工程Ｓ７３２に戻り、次の連続上昇区間を選択する。すべての連続上昇区間を選択したと判定した場合、連続上昇回数更新部１５１は、ＣＰＵ９１１を用いて、連続上昇回数算出工程Ｓ６４１を終了する。
【０１２５】
連続下降回数算出工程Ｓ６４２、連続変曲回数算出工程Ｓ６４６、連続凹回数算出工程Ｓ６４７、連続凸回数算出工程Ｓ６４８の詳細な処理の流れは、連続上昇回数算出工程Ｓ６４１と同様なので、説明を省略する。
【０１２６】
この実施の形態における波形パターン検出装置１００は、上記波形特徴量算出部として、連続上昇回数算出部１５３を有する。
上記連続上昇回数算出部１５３は、上記処理装置を用いて、上記差分符号判定部１１５が判定した差分符号４０６に基づいて、上記一連の部分波形数値のうち、上記差分符号４０６が正である部分波形数値が連続している数を算出して、連続上昇回数とし、算出した連続上昇回数を上記波形特徴量とする。
【０１２７】
この実施の形態における波形パターン検出装置１００によれば、連続上昇回数算出部１５３が算出した連続上昇回数を波形特徴量とするので、波形パターンの形状が比較パターンに近い部分を検出することができる。また、連続上昇回数は、効率的に計算することができるので、計算量を少なくすることができ、処理装置の処理速度が遅い場合でも、実時間での検出をすることができる。
【０１２８】
この実施の形態における波形パターン検出装置１００は、上記波形特徴量算出部として、連続下降回数算出部１５６を有する。
上記連続下降回数算出部１５６は、上記処理装置を用いて、上記差分符号判定部１１５が判定した差分符号４０６に基づいて、上記一連の部分波形数値のうち、上記差分符号４０６が負である部分波形数値が連続している数を算出して、連続下降回数とし、算出した連続下降回数を上記波形特徴量とする。
【０１２９】
この実施の形態における波形パターン検出装置１００によれば、連続下降回数算出部１５６が算出した連続下降回数を波形特徴量とするので、波形パターンの形状が比較パターンに近い部分を検出することができる。また、連続下降回数は、効率的に計算することができるので、計算量を少なくすることができ、処理装置の処理速度が遅い場合でも、実時間での検出をすることができる。
【０１３０】
この実施の形態における波形パターン検出装置１００は、更に、波形変曲判定部１２１を有し、上記波形特徴量算出部として、連続変曲回数算出部１６３を有する。
上記波形変曲判定部１２１は、上記処理装置を用いて、上記波形記憶部１１２が記憶した一連の波形数値のうち少なくともいずれかの波形数値について、上記波形数値について上記差分符号判定部１１５が判定した差分符号４０６と、上記波形数値の一つ前の波形数値について上記差分符号判定部１１５が判定した差分符号４０６とが異なるか否かを判定する。
上記連続変曲回数算出部１６３は、上記処理装置を用いて、上記波形変曲判定部１２１が判定した判定結果（波形変曲）に基づいて、上記一連の部分波形数値のうち、一つ前の部分波形数値と差分符号が異なる部分波形数値が連続している数を算出して、連続変曲回数とし、算出した連続変曲回数を上記波形特徴量とする。
【０１３１】
この実施の形態における波形パターン検出装置１００によれば、連続変曲回数算出部１６３が算出した連続変曲回数を波形特徴量とするので、波形パターンの形状が比較パターンに近い部分を検出することができる。また、連続変曲回数は、効率的に計算することができるので、計算量を少なくすることができ、処理装置の処理速度が遅い場合でも、実時間での検出をすることができる。
【０１３２】
以上説明した波形パターン検出装置１００によれば、サンプリング点数（パターンサンプル数）が多い場合にも、波形の特徴量同士の類似度を計算するため、計算にかける時間を低減することができる。比較するテンプレート（比較パターン）が複数ある場合にも、他のテンプレートとの類似度の比較処理時に使用した特徴量を利用することができるため、類似度の比較処理にかかる時間を低減することができる。前回抽出した特徴量からの差分のみを計算するため、特徴量を抽出するための計算時間を低減することができる。値の変動の傾向を特徴量として抽出することにより、指標値の挙動が離散的に変化する場合にもパターンを検出することができる。
【符号の説明】
【０１３３】
１００  波形パターン検出装置、１１１  波形数値取得部、１１２  波形記憶部、１１３  波形差分算出部、１１４  波形差分記憶部、１１５  差分符号判定部、１１６  差分符号記憶部、１２１  波形変曲判定部、１２２  波形変曲記憶部、１２３  二階差分算出部、１２５  二階符号判定部、１２６  二階符号記憶部、１３１  上昇回数算出部、１３２  上昇回数記憶部、１３３  下降回数算出部、１３４  下降回数記憶部、１４１  変曲回数算出部、１４２  変曲回数記憶部、１４３  凹回数算出部、１４４  凹回数記憶部、１４５  凸回数算出部、１４６  凸回数記憶部、１５１  連続上昇回数更新部、１５２  連続上昇回数記憶部、１５３  連続上昇回数算出部、１５４  連続下降回数更新部、１５５  連続下降回数記憶部、１５６  連続下降回数算出部、１６１  連続変曲回数更新部、１６２  連続変曲回数記憶部、１６３  連続変曲回数算出部、１６４  連続凹回数更新部、１６５  連続凹回数記憶部、１６６  連続凹回数算出部、１６７  連続凸回数更新部、１６８  連続凸回数記憶部、１６９  連続凸回数算出部、１８１  比較特徴量記憶部、１８２  類似度算出部、１８３  閾値記憶部、１８４  類似判定部、１８５  判定結果通知部、４０１  時刻、４０２  波形数値、４０３  波形差分、４０４  二階差分、４０５  二階符号、４０６  差分符号、４０７  波形変曲、４１１  上昇回数、４１２  下降回数、４１３  変曲回数、４１４  凹回数、４１５  凸回数、４２１  連続上昇テーブル、４２２  開始時刻、４２３  連続上昇回数、４２４  最長連続上昇回数、８００  監視システム、８１０  波形観測装置、８２０  検出結果通知装置、８９０  監視対象、９０１  表示装置、９０２  キーボード、９０３  マウス、９０４  ＦＤＤ、９０５  ＣＤＤ、９０６  プリンタ装置、９０７  スキャナ装置、９１０  システムユニット、９１１  ＣＰＵ、９１２  バス、９１３  ＲＯＭ、９１４  ＲＡＭ、９１５  通信装置、９２０  磁気ディスク装置、９２１  ＯＳ、９２２  ウィンドウシステム、９２３  プログラム群、９２４  ファイル群、９３１  電話器、９３２  ファクシミリ機、９４０  インターネット、９４１  ゲートウェイ、９４２  ＬＡＮ。
【図１】
2010216849.tif 000003
【図２】
2010216849.tif 000004
【図３】
2010216849.tif 000005
【図４】
2010216849.tif 000006
【図５】
2010216849.tif 000007
【図６】
2010216849.tif 000008
【図７】
2010216849.tif 000009
【図８】
2010216849.tif 000010
【図９】
2010216849.tif 000011
【図１０】
2010216849.tif 000012
【図１１】
2010216849.tif 000013
【図１２】
2010216849.tif 000014