(57)【要約】  周期推定装置（１０）は、入力パルス列から候補周期を抽出する。周期推定装置（１０）は、候補周期の一部を用いて実周期として存在するか否かを判定し、実周期として存在しない場合、周期判定を中断する。周期推定装置（１０）は、実周期として存在すると判定した候補周期に対して周期判定を行い、候補周期に基づく擬似周期パルス列を生成する。周期推定装置（１０）は、擬似周期パルス列と入力パルス列との差分値に基づき擬似周期パルス列のパルス位置を調整し、周期判定および調整の結果に応じて周期パルス列の検出を行う。周期推定装置（１０）は、周期パルス列を入力パルス列から分離し、分離後のパルス列を新たな入力パルス列とする。周期推定装置（１０）は、候補周期の抽出に関するパラメータと、新たな入力パルス列とに基づいて、周期の分析を継続するか否かを判定する。
2020171145.tif 000002
【特許請求の範囲】
【請求項１】
入力パルス列から周期判定の対象となる候補周期を抽出する候補周期抽出部と、
抽出された前記候補周期の一部を用いて、実周期として存在するか否かを判定し、前記候補周期が実周期として存在しないと判定した場合、前記候補周期に対する周期判定を中断するフィルタ部と、
実周期として存在すると判定された前記候補周期に対して周期判定を行うとともに、前記候補周期に基づく擬似周期パルス列を生  成し、生成した前記擬似周期パルス列と前記入力パルス列との差分値に基づいて、前記擬似周期パルス列のパルス位置を調整し、前記周期判定および前記調整の結果に応じて周期パルス列の検出を行う周期検出部と、
検出された前記周期パルス列を前記入力パルス列から分離し、分離後のパルス列を新たな入力パルス列として前記候補周期抽出部に入力する周期パルス分離部と、
前記候補周期の抽出に関するパラメータ、および、前記新たな入力パルス列のうち、１つまたは複数に基づいて、周期の分析を継続するか否かを判定する周期分析継続判定部と、
を備えることを特徴とするパルス列信号の周期推定装置。
【請求項２】
前記候補周期抽出部は、特定の階差に基づき前記入力パルス列の各パルス間隔を算出してヒストグラムを生成し、生成した前記ヒストグラムにおいて、所定の閾値以上の回数出現したパルス間隔を前記候補周期として抽出する、
ことを特徴とする請求項１に記載のパルス列信号の周期推定装置。
【請求項３】
前記フィルタ部は、下記の数式（１）が成り立つ場合、前記候補周期が実周期として存在しないと判定する、
ことを特徴とする請求項１または２に記載のパルス列信号の周期推定装置。
【数１】
2020171145.tif 000016
ただし、前記数式（１）において、Ｔは入力パルス列の観測期間を示し、τは候補周期の値を示し、γは定数を示し、Ｊｃは許容するジッタ率を示す。
【請求項４】
前記フィルタ部は、初期パルス位置をｐ、パルス間隔を候補周期の値τ、許容するジッタ率をＪｃとして、パルス幅を２Ｊｃτとした総パルス数Ｘの擬似周期パルス列ｑ（ｔ）を生成し、前記入力パルス列をｇ（ｔ）とした場合に、時刻ｔを０から前記入力パルス列ｇ（ｔ）の観測期間Ｔまで変化させた際に、前記擬似周期パルス列ｑ（ｔ）と前記入力パルス列ｇ（ｔ）との重複パルス数をカウントし、前記重複パルス数が前記総パルス数Ｘ以上である場合、候補周期の値τを前記周期検出部に出力し、前記重複パルス数が前記総パルス数Ｘより小さい場合、前記ｐの値を変化させて前記重複パルス数を再度カウントし、与えられた全てのｐの値に対して前記重複パルス数が前記総パルス数Ｘより小さくなる場合、前記候補周期が実周期として存在しないと判定する、
ことを特徴とする請求項１〜３のいずれか１つに記載のパルス列信号の周期推定装置。
【請求項５】
前記周期検出部は、前記周期判定において、ＰＲＩ変換の実行中に、下記の数式（２）が成り立つ場合、前記ＰＲＩ変換を中断する、
ことを特徴とする請求項１〜４のいずれか１つに記載のパルス列信号の周期推定装置。
【数２】
2020171145.tif 000017
ただし、前記数式（２）において、Ｄｎはｎ番目のパルスまで分析を進めた場合のＰＲＩ変換のスペクトルを示し、Ｔは入力パルス列の観測期間を示し、ＴＯＡｎはｎ番目のパルスの出現時刻を示し、τは候補周期の値を示し、Ｔｈは周期判定の閾値を示す。
【請求項６】
前記周期検出部は、初期パルス位置をｐ、パルス間隔を前記フィルタ部から入力された候補周期の値τ、許容するジッタ率をＪｃとして、パルス幅を２Ｊｃτとした擬似周期パルス列ｑ（ｔ）を生成し、前記入力パルス列をｇ（ｔ）とした場合に、時刻ｔを０から前記入力パルス列ｇ（ｔ）の観測期間Ｔまで変化させた際に、前記擬似周期パルス列ｑ（ｔ）と前記入力パルス列ｇ（ｔ）とが重複した場合、重複パルス数をカウントするとともに、重複パルスについて、前記入力パルス列ｇ（ｔ）の重複したパルスの位置から、前記擬似周期パルス列ｑ（ｔ）の重複したパルスの中心位置を引いた差分値δｎ’を算出し、算出した差分値δｎ’と、差分値δｎ’の１つ前の移動値δｎ−１とに基づいて、移動値δｎを算出し、直前の前記擬似周期パルス列ｑ（ｔ）の重複したパルスの次のパルス位置を前記移動値δｎだけ並行移動させ、最終的な前記重複パルス数が所定値以上である場合、入力された前記候補周期の値τに基づいて、前記周期パルス列の検出を行い、最終的な前記重複パルス数が所定値より小さい場合、前記ｐの値を変化させて前記重複パルス数を再度カウントし、与えられた全てのｐの値に対して前記重複パルス数が前記所定値より小さくなる場合、前記候補周期の値τが実周期として存在しないと判定する、
ことを特徴とする請求項１〜５のいずれか１つに記載のパルス列信号の周期推定装置。
【請求項７】
前記入力パルス列に対し、前記候補周期抽出部による処理と、前記フィルタ部による処理と、前記周期検出部による処理と、前記周期パルス分離部による処理と、前記周期分析継続判定部による処理と実施させることによって、前記入力パルス列の周期パターンの種別を分析し、分析した周期パターンの種別を前記入力パルス列に対応付けて周期パターンモデルに登録する分析部と、
前記周期パターンモデルを用いて、次の推定対象の入力パルス列の周期パターンの種別を分類する分類部と、
前記分類部が分類した周期パターンの種別に応じて、前記次の推定対象の入力パルス列に対する周期推定方式を設定する設定部と、
を有することを特徴とする請求項１〜６のいずれか１つに記載のパルス列信号の周期推定装置。
【請求項８】
前記周期パターンの種別は、通信パターンが周期的である周期通信型、通信パターンが非周期である非周期通信型、または、周期的な通信パターンと非周期である通信パターンとを含む混合型であることを特徴とする請求項７に記載のパルス列信号の周期推定装置。
【請求項９】
前記設定部は、前記分類部が前記周期通信型であると分類した前記次の推定対象の入力パルス列に対し、前記周期検出部によるシーケンシャルサーチを用いた周期パルス列の検出処理と、前記周期パルス分離部による処理とに限定した周期推定方法を設定することを特徴とする請求項８に記載のパルス列信号の周期推定装置。
【請求項１０】
前記設定部は、前記分類部が前記非周期通信型であると分類した前記次の推定対象の入力パルス列に対し、前記候補周期抽出部による処理と、前記周期検出部による部分的シーケンシャルサーチを用いた周期パルス列の検出処理と、前記周期パルス分離部による処理とに限定した周期推定方法を設定することを特徴とする請求項８に記載のパルス列信号の周期推定装置。
【請求項１１】
前記設定部は、前記分類部が前記混合型であると分類した前記次の推定対象の入力パルス列に対し、前記候補周期抽出部による処理と、前記フィルタ部による処理と、前記周期検出部による処理と、前記周期パルス分離部による処理と、前記周期分析継続判定部による処理とを実施する周期推定方法を設定することを特徴とする請求項８に記載のパルス列信号の周期推定装置。
【請求項１２】
パルス列信号の周期推定装置が実行するパルス列信号の周期推定方法であって、
入力パルス列から周期判定の対象となる候補周期を抽出する候補周期抽出工程と、
抽出された前記候補周期の一部を用いて、実周期として存在するか否かを判定し、前記候補周期が実周期として存在しないと判定した場合、前記候補周期に対する周期判定を中断するフィルタ工程と、
実周期として存在すると判定された前記候補周期に対して周期判定を行い、前記周期判定の結果に応じた周期パルス列の検出を行う周期検出工程と、
検出された前記周期パルス列を前記入力パルス列から分離し、分離後のパルス列を新たな入力パルス列として前記候補周期抽出工程に入力する周期パルス分離工程と、
前記候補周期の抽出に関するパラメータ、および、前記新たな入力パルス列のうち、１つまたは複数に基づいて、周期の分析を継続するか否かを判定する周期分析継続判定工程と、
を含むことを特徴とするパルス列信号の周期推定方法。
【請求項１３】
入力パルス列から周期判定の対象となる候補周期を抽出する候補周期抽出ステップと、
抽出された前記候補周期の一部を用いて、実周期として存在するか否かを判定し、前記候補周期が実周期として存在しないと判定した場合、前記候補周期に対する周期判定を中断するフィルタステップと、
実周期として存在すると判定された前記候補周期に対して周期判定を行い、前記周期判定の結果に応じた周期パルス列の検出を行う周期検出ステップと、
検出された前記周期パルス列を前記入力パルス列から分離し、分離後のパルス列を新たな入力パルス列として前記候補周期抽出ステップに入力する周期パルス分離ステップと、
前記候補周期の抽出に関するパラメータ、および、前記新たな入力パルス列のうち、１つまたは複数に基づいて、周期の分析を継続するか否かを判定する周期分析継続判定ステップと、
をコンピュータに実行させることを特徴とするパルス列信号の周期推定プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パルス列信号の周期推定装置、パルス列信号の周期推定方法およびパルス列信号の周期推定プログラムに関する。
【背景技術】
【０００２】
パルス列信号の周期を推定する代表的な手法として、パルス到達時間の差分をヒストグラム化して周期推定を行う差分ヒストグラム法、仮定した周期パルス列との相関を計算するシーケンシャルサーチ、自己相関に類似した変換を行うＰＲＩ（Pulse  Repetition  Interval）変換などの手法が存在する。これらの方法には、それぞれ計算時間、ジッタや欠損への耐性などの観点で異なる長所短所が存在する。したがって、それぞれの短所を補い合うため、これらの手法を組み合わせて周期推定を行う手法が存在する。具体的には、差分ヒストグラム法において潜在的な候補周期を抽出した後、候補周期に対してＰＲＩ変換とシーケンシャルサーチによる２段階の周期判定を実施する手法である。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】H.K.  Mardia，et  al:  New  techniques  for  the  deinterleaving  of  repetitive  sequences，Volume  136  issue  4，Aug  1989，Page  149-154
【非特許文献２】C.L.  Davies，et  al:  Automatic  processing  for  ESM，Volume  129  issue  3，June  1982，Page  164-171
【非特許文献３】KEN’ICHI，N．et  al：Improved  Algorithm  for  Estimating  Pulse  Repetition  Intervals，  IEEE  Transactions  on  Aerospace  and  Electronic  Systems，Volume  36  issue  2,  Apr  2000,  Page  407-421
【非特許文献４】Yanchao  Liu.  et  al:  Improved  method  for  deinterleaving  radar  signals  and  estimating  PRI  values，volume  12  issue  5，16  April  2018，Page  506-514
【発明の概要】
【発明が解決しようとする課題】
【０００４】
既存手法は主にレーダーパルス分析の分野に適用されることが多いが、同手法をネットワーク分野に適用する際には二つの課題が存在する。一つ目は計算時間削減の課題である。ネットワーク分野では、レーダーパルス分析の分野と比較しランダムなノイズを生み出す要因が多い。既存手法では、ランダムなノイズパルスの影響により、実際には存在しない周期を候補周期として抽出し、計算時間を増加させてしまうという問題がある。二つ目はパルス受信タイミング（ジッタ）の偏在に関する課題である。ネットワーク環境下においては、ジッタが遅れ側に発生しやすい傾向が観測されており、ジッタが遅れ側など片側に偏って分布する場合、観測期間の長さに比例してジッタの影響が累積し、既存手法では周期パルスを周期的と判定できなくなる場合がある。従って、ネットワーク環境における機器の設定変更による通信周期の変化や、複数の同等機器から異なる周期をもつ機器を発見することが困難である。
【課題を解決するための手段】
【０００５】
上述した課題を解決し、目的を達成するために、本発明のパルス列信号の周期推定装置は、入力パルス列から周期判定の対象となる候補周期を抽出する候補周期抽出部と、抽出された前記候補周期の一部を用いて、実周期として存在するか否かを判定し、前記候補周期が実周期として存在しないと判定した場合、前記候補周期に対する周期判定を中断するフィルタ部と、実周期として存在すると判定された前記候補周期に対して周期判定を行うとともに、前記候補周期に基づく擬似周期パルス列を生成し、生成した前記擬似周期パルス列と前記入力パルス列との差分値に基づいて、前記擬似周期パルス列のパルス位置を調整し、前記周期判定および前記調整の結果に応じて周期パルス列の検出を行う周期検出部と、検出された前記周期パルス列を前記入力パルス列から分離し、分離後のパルス列を新たな入力パルス列として前記候補周期抽出部に入力する周期パルス分離部と、前記候補周期の抽出に関するパラメータ、および、前記新たな入力パルス列のうち、１つまたは複数に基づいて、周期の分析を継続するか否かを判定する周期分析継続判定部と、を備えることを特徴とする。【０００６】
また、本発明のパルス列信号の周期推定方法は、入力パルス列から周期判定の対象となる候補周期を抽出する候補周期抽出工程と、抽出された前記候補周期の一部を用いて、実周期として存在するか否かを判定し、前記候補周期が実周期として存在しないと判定した場合、前記候補周期に対する周期判定を中断するフィルタ工程と、実周期として存在すると判定された前記候補周期に対して周期判定を行い、前記周期判定の結果に応じた周期パルス列の検出を行う周期検出工程と、検出された前記周期パルス列を前記入力パルス列から分離し、分離後のパルス列を新たな入力パルス列として前記候補周期抽出工程に入力する周期パルス分離工程と、前記候補周期の抽出に関するパラメータ、および、前記新たな入力パルス列のうち、１つまたは複数に基づいて、周期の分析を継続するか否かを判定する周期分析継続判定工程と、をコンピュータが実行することを特徴とする。【０００７】
また、本発明のパルス列信号の周期推定プログラムは、入力パルス列から周期判定の対象となる候補周期を抽出する候補周期抽出ステップと、抽出された前記候補周期の一部を用いて、実周期として存在するか否かを判定し、前記候補周期が実周期として存在しないと判定した場合、前記候補周期に対する周期判定を中断するフィルタステップと、実周期として存在すると判定された前記候補周期に対して周期判定を行い、前記周期判定の結果に応じた周期パルス列の検出を行う周期検出ステップと、検出された前記周期パルス列を前記入力パルス列から分離し、分離後のパルス列を新たな入力パルス列として前記候補周期抽出ステップに入力する周期パルス分離ステップと、前記候補周期の抽出に関するパラメータ、および、前記新たな入力パルス列のうち、１つまたは複数に基づいて、周期の分析を継続するか否かを判定する周期分析継続判定ステップと、をコンピュータに実行させることを特徴とする。
【発明の効果】
【０００８】
本発明によれば、ネットワーク環境における機器の設定変更による通信周期の変化や、複数の同等機器から異なる周期をもつ機器を発見することができるという効果を奏する。
【図面の簡単な説明】
【０００９】
【図１】図１は、第１の実施形態に係る周期推定装置の構成の一例を示すブロック図である。
【図２】図２は、時系列データの生成の一例を示す図である。
【図３】図３は、累積差分ヒストグラムの生成の一例を示す図である。
【図４】図４は、累積差分ヒストグラムのクラスタリングの一例を示す図である。
【図５】図５は、累積差分ヒストグラムのクラスタリングの詳細な一例を示す図である。
【図６】図６は、候補周期の抽出の一例を示す図である。
【図７】図７は、部分的シーケンシャルサーチの一例を示す図である。
【図８】図８は、ＰＲＩ変換の一例を示す図である。
【図９】図９は、シーケンシャルサーチの一例を示す図である。
【図１０】図１０は、シーケンシャルサーチにおけるパルス位置の補正の一例を示す図である。
【図１１】図１１は、シーケンシャルサーチにおけるパルス位置の補正の一例を示す図である。
【図１２】図１２は、累積ジッタの一例を示す図である。
【図１３】図１３は、周期通信の分離の一例を示す図である。
【図１４】図１４は、各種実験データの一例を示す図である。
【図１５】図１５は、計算時間の削減の一例を示す図である。
【図１６】図１６は、第１の実施形態における周期推定処理の一例を示すフローチャートである。
【図１７】図１７は、第２の実施形態に係る周期推定装置の構成の一例を示すブロック図である。
【図１８】図１８は、図１７に示す周期推定装置における入力パルス列に対する周期判定処理の流れを説明する図である。
【図１９】図１９は、事前周期分析の処理内容を説明する図である。
【図２０】図２０は、周期パターンの一例を示す図である。
【図２１】図２１は、周期通信型推定方法の処理内容を説明する図である。
【図２２】図２２は、検知対象の通信を説明する図である。
【図２３】図２３は、検知対象の通信を説明する図である。
【図２４】図２４は、非周期通信型推定方法の処理内容を説明する図である。
【図２５】図２５は、検知対象の通信を説明する図である。
【図２６】図２６は、混合型推定方法の処理内容を説明する図である。
【図２７】図２７は、図１７に示す周期推定装置による検知結果の一例を示す図である。
【図２８】図２８は、第２の実施形態における事前周期分析時における周期推定処理の処理手順の一例を示すフローチャートである。
【図２９】図２９は、第２の実施形態２における推定時における周期推定処理の処理手順の一例を示すフローチャートである。
【図３０】図３０は、パルス列信号の周期推定プログラムを実行するコンピュータの一例を示す図である。
【発明を実施するための形態】
【００１０】
以下、図面に基づいて、本願の開示するパルス列信号の周期推定装置、パルス列信号の周期推定方法およびパルス列信号の周期推定プログラムの実施の形態を詳細に説明する。なお、この実施の形態により本願に係るパルス列信号の周期推定装置、パルス列信号の周期推定方法およびパルス列信号の周期推定プログラムが限定されるものではない。
【００１１】
［第１の実施形態］
以下の実施の形態では、第１の実施形態に係る周期推定装置１０の構成、周期推定装置１０の処理の流れを順に説明し、最後に第１の実施形態による効果を説明する。
【００１２】
［周期推定装置の構成］
まず、図１を用いて、周期推定装置１０の構成を説明する。図１は、第１の実施形態に係る周期推定装置の構成の一例を示すブロック図である。周期推定装置１０は、入力パルス列から周期判定の対象となる候補周期を抽出する。周期推定装置１０は、抽出された候補周期の一部を用いて、実周期として存在するか否かを判定し、候補周期が実周期として存在しないと判定した場合、候補周期に対する周期判定を中断する。周期推定装置１０は、実周期として存在すると判定された候補周期に対して周期判定を行うとともに、候補周期に基づく擬似周期パルス列を生成する。周期推定装置１０は、生成した擬似周期パルス列と入力パルス列との差分値に基づいて、擬似周期パルス列のパルス位置を調整し、周期判定および調整の結果に応じて周期パルス列の検出を行う。周期推定装置１０は、検出された周期パルス列を入力パルス列から分離し、分離後のパルス列を新たな入力パルス列として候補周期を抽出する候補周期抽出部に入力する。周期推定装置１０は、候補周期の抽出に関するパラメータ、および、新たな入力パルス列のうち、１つまたは複数に基づいて、周期の分析を継続するか否かを判定する。これにより、周期推定装置１０は、ネットワーク環境における機器の設定変更による通信周期の変化や、複数の同等機器から異なる周期をもつ機器を発見することができる。
【００１３】
図１に示すように、周期推定装置１０は、候補周期抽出部１１と、フィルタ部１２と、周期検出部１３と、周期パルス分離部１４と、周期分析継続判定部１５とを有する。また、周期推定装置１０は、図示しない記憶部を有する。記憶部は、例えば、ＲＡＭ（Random  Access  Memory）、フラッシュメモリ等の半導体メモリ素子、ハードディスクや光ディスク等の記憶装置によって実現される。なお、周期推定装置１０は、図１に示す機能部以外にも既知のコンピュータが有する各種の機能部、例えば各種の入力デバイスや音声出力デバイス等の機能部を有することとしてもかまわない。
【００１４】
また、図１に示すように、周期推定装置１０には入力パルス列信号が入力されるが、周期推定装置１０は、例えば、入力パルス列信号として、通信ログを取得して通信発生時刻の時系列データを生成してもよい。時系列データは、通信発生を表す信号をパルスで表したデータであり、時系列パルス列または入力パルス列とも表現する。例えば、時系列データは、ある時刻において通信があれば「１」、無ければ「０」の二値をとるデータである。
【００１５】
ここで、図２を用いて時系列データの生成について説明する。図２は、時系列データの生成の一例を示す図である。図２に示すように、通信ログ２０は、Ｐｃａｐファイルやトラフィックログを含む。周期推定装置１０は、例えば、通信ログ２０の組Ａ１に示す（ｓｒｃｉｐ，ｄｓｔｉｐ）の組み合わせごとに時系列データを生成する。また、周期推定装置１０は、組Ａ１に加え、プロトコル番号やポート番号、各プロトコルのコマンドを組み合わせることで、より精度よく周期を抽出できる時系列データを生成することができる。例えば、周期推定装置１０は、通信ログ２０の組Ａ２に示す（ｓｒｃｉｐ，ｄｓｔｉｐ，ｔｃｐ／ｕｄｐ，ｄｓｔ  ｐｏｒｔ）の組み合わせごとや、組Ａ３に示す（ｓｒｃｉｐ，ｄｓｔｉｐ，ｃｍｄ）の組み合わせごとに時系列データを生成するようにしてもよい。このとき、抽出の精度は、組Ａ３＞組Ａ２＞組Ａ１となる。
【００１６】
周期推定装置１０は、組Ａ１，Ａ２，Ａ３からタイムスタンプ２１を生成する。周期推定装置１０は、生成したタイムスタンプ２１に基づいて、通信発生の有無を時系列に並べた時系列データ（時系列パルス列）２２を生成する。周期推定装置１０は、生成した時系列データ２２を入力パルス列信号として用いることができる。
【００１７】
図１の説明に戻る。候補周期抽出部１１、フィルタ部１２、周期検出部１３、周期パルス分離部１４および周期分析継続判定部１５は、例えば、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）等によって、内部の記憶装置に記憶されているプログラムがＲＡＭを作業領域として実行されることにより実現される。また、候補周期抽出部１１、フィルタ部１２、周期検出部１３、周期パルス分離部１４および周期分析継続判定部１５は、例えば、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）等の集積回路により実現されるようにしてもよい。なお、候補周期抽出部１１、フィルタ部１２、周期検出部１３、周期パルス分離部１４および周期分析継続判定部１５の構成は、図１に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。
【００１８】
候補周期抽出部１１は、入力された時系列データまたは生成した時系列データから周期判定の対象となる候補周期を抽出する。候補周期抽出部１１は、まず、階差値ｃ＝１を設定する。候補周期抽出部１１は、設定した階差値ｃの累積差分ヒストグラムを生成する。候補周期抽出部１１は、階差値ｃに基づいて、時系列データのパルス発生時刻の差分（パルス繰り返し間隔：以下、ＰＲＩともいう。）を算出する。候補周期抽出部１１は、例えば、階差値ｃ＝１である場合、隣接するパルス間のＰＲＩを算出する。ＰＲＩの算出は、以下の式（１）を用いる。候補周期抽出部１１は、算出したＰＲＩに基づいて、ＰＲＩの出現回数をヒストグラム化する。つまり、候補周期抽出部１１は、時系列データを差分ヒストグラム化する。
【００１９】
【数１】
2020171145.tif 000003
【００２０】
式（１）において、Ｓｉｎは各パルスの発生時刻の列を示し、ＤＳｉｎはＰＲＩを示し、Ｎは観測期間の全パルス数を示し、ｃは階差値を示す。
【００２１】
ここで、図３を用いて累積差分ヒストグラムの生成について説明する。図３は、累積差分ヒストグラムの生成の一例を示す図である。図３に示すように、時系列データ２２ａは、階差値ｃ＝１の場合におけるＰＲＩのとり方を示している。時系列データ２２ａでは、ＰＲＩ＝ａと、ＰＲＩ＝ｂとの出現回数を算出してヒストグラム化し、つまり差分ヒストグラム化し、ヒストグラム２３を生成している。時系列データ２２ｂは、階差値ｃ＝２の場合におけるＰＲＩのとり方を示している。なお、時系列データ２２ｂは、時系列データ２２ａと同一のデータである。時系列データ２２ｂでは、ＰＲＩ＝ａ＋ｂの出現回数を算出し、階差値ｃ＝１の場合のＰＲＩ＝ａと、ＰＲＩ＝ｂとの出現回数に加算して、ヒストグラム２４を生成している。
【００２２】
次に、候補周期抽出部１１は、生成した累積差分ヒストグラムについてクラスタリングを行う。候補周期抽出部１１は、ネットワークにおけるパケットデータ取得環境に起因するＰＲＩの微妙なズレであるジッタを補正するために、クラスタリングを行う。なお、クラスタリングの際のジッタ許容率（許容するジッタ率）Ｊｃ％は、予め設定されるものとする。
【００２３】
ここで、図４および図５を用いてクラスタリングについて説明する。図４は、累積差分ヒストグラムのクラスタリングの一例を示す図である。図４に示すように、ヒストグラム２５では、ジッタによりＰＲＩがばらつき、出現回数が閾値を超えないため、候補周期を抽出することが出来ない。このため、ヒストグラム２５に対して、ジッタ許容率Ｊｃ％でクラスタリングする、つまり、ばらついたＰＲＩを尤もらしい値に集約することで、ヒストグラム２６とすると、出現回数が閾値を超え、ジッタが存在した場合にも候補周期を抽出することができる。
【００２４】
図５は、累積差分ヒストグラムのクラスタリングの詳細な一例を示す図である。図５では、ＤＳｉｎは算出したＰＲＩ値を並べた列を示し、ＤＳｉｎ’は、ＤＳｉｎを昇順に整列した列を示し、ＮＥはＤＳｉｎ’の要素数を示し、ｊはＤＳｉｎ’の要素番号（０≦ｊ＜ＮＥ）を示す。また、図５では、Ｃｉはｉ番目のクラスタを示し、ｃｉはｉ番目のクラスタの中心位置を示し、ｄは取り出したＰＲＩとｃｉとの距離を示し、Ｊｃはジッタ許容率を示し、ｘは１つ目に取り出したＰＲＩ値を示し、ｙは２つ目に取り出したＰＲＩ値を示す。
【００２５】
図５に示すように、候補周期抽出部１１は、まず、ＤＳｉｎを昇順に並べ替えてＤＳｉｎ’とする。候補周期抽出部１１は、ＤＳｉｎ’（ｊ）を取り出してＣｉを生成する（ステップＢ１）。候補周期抽出部１１は、ＤＳｉｎ’（ｊ＋１）を取り出して、仮のｃｉとｄとを算出する（ステップＢ２）。候補周期抽出部１１は、例えば、ｃｉ＝（ｘ＋ｙ）／２，ｄ＝｜ｙ−ｃｉ｜として算出する。
【００２６】
候補周期抽出部１１は、ｄがジッタの許容範囲（ｃ１×Ｊｃ）以下であるか否かを判定する。候補周期抽出部１１は、ｄがジッタの許容範囲（ｃ１×Ｊｃ）以下であると判定した場合（ステップＢ３−１）、既存のクラスタＣｉを更新する。つまり、クラスタＣｉには、ｘ，ｙの２つのＰＲＩ値が含まれる。
【００２７】
一方、候補周期抽出部１１は、ｄがジッタの許容範囲（ｃ１×Ｊｃ）を超えると判定した場合（ステップＢ３−２）、新規クラスタＣｉ＋１を設定する。つまり、クラスタＣｉにはｘが含まれ、新規クラスタＣｉ＋１には、ｙが含まれる。このように、候補周期抽出部１１は、ＤＳｉｎ’から順にＰＲＩ値を取り出し、既存または新規クラスタに所属させていくことでクラスタリングを行う。
【００２８】
次に、候補周期抽出部１１は、クラスタリングを通して再生成されたヒストグラムに対して閾値を適用し、候補周期を抽出する。候補周期抽出部１１は、抽出した候補周期をフィルタ部１２に出力する。なお、閾値は、あるＰＲＩ値を周期とするパルス列が、全観測期間Ｔのω割以上存在した場合に、そのＰＲＩが候補周期となるように設定される。閾値は、下記の式（２）によって求められる。なお、式（２）において、Ｔはパルス観測期間を示し、ωは閾値決定用の係数を示す。
【数２】
2020171145.tif 000004
【００２９】
ここで、図６を用いて候補周期の抽出について説明する。図６は、候補周期の抽出の一例を示す図である。図６に示すヒストグラム２７は、クラスタリングが行われた後のヒストグラムであり、ＰＲＩ＝６０が閾値を超えていることがわかる。従って、候補周期抽出部１１は、ＰＲＩ＝６０を候補周期として抽出する。
【００３０】
図１の説明に戻る。フィルタ部１２は、候補周期抽出部１１から候補周期が入力されると、入力された候補周期が実周期として存在するか否かを、ランダムノイズフィルタと部分的シーケンシャルサーチとを用いて判定する。なお、フィルタ部１２は、候補周期抽出部１１で抽出した候補周期のうち、値の小さいものから順に周期判定を行う。フィルタ部１２は、まず、ランダムノイズフィルタを実行する。つまり、フィルタ部１２は、入力された候補周期のＰＲＩ変換実施時の理論的な最大スペクトル値と、ＰＲＩ変換時に算出されるランダムノイズ閾値とを算出する。
【００３１】
フィルタ部１２は、算出した理論的な最大スペクトル値よりもランダムノイズ閾値の方が大きい場合、当該階差値ｃにおける分析を中断し、次の階差値ｃ＋１の分析に移行する。すなわち、フィルタ部１２は、下記の式（３）が成り立つ場合、候補周期が実周期として存在しないと判定する。なお、式（３）において、Ｔは入力パルス列の観測期間を示し、τは候補周期の値を示し、γは定数を示し、Ｊｃは許容するジッタ率を示す。
【００３２】
【数３】
2020171145.tif 000005
【００３３】
フィルタ部１２は、算出した理論的な最大スペクトル値がランダムノイズ閾値以上である場合、つまりランダムノイズフィルタを通過する場合、部分的シーケンシャルサーチを行う。まず、部分的シーケンシャルサーチにおける時系列データｇ（ｔ）と、擬似周期パルス列ｑ（ｔ）とについて説明する。なお、擬似周期パルス列ｑ（ｔ）は、ジッタ範囲を持たせた候補周期の値τのパルス列である。時系列データｇ（ｔ）は、下記の式（４）および式（５）で表され、擬似周期パルス列ｑ（ｔ）は、下記の式（６）および式（７）で表される。
【００３４】
【数４】
2020171145.tif 000006
【数５】
2020171145.tif 000007
【数６】
2020171145.tif 000008
【数７】
2020171145.tif 000009
【００３５】
ここで、ｔは時刻を示し、Ｎは観測期間の全パルス数を示し、δはディラックのデルタ関数を示し、ｔｎはパルス発生時刻を示し、Ｔはパルス観測期間を示し、ｐは第１パルス（初期パルス）の位置を示し、ａは定数を示し、τは候補周期を示し、Ｊｃはジッタ許容率を示す。
【００３６】
フィルタ部１２は、計算時間削減のため、ＰＲＩ変換実施前に部分的な周期判定を行う部分的シーケンシャルサーチを実行する。フィルタ部１２は、擬似周期パルス列ｑ（ｔ）のＸ番目までを用いてシーケンシャルサーチを行い、時系列データｇ（ｔ）と、擬似周期パルス列ｑ（ｔ）との相関値ＤがＸ以上である場合、候補周期の値τを周期検出部１３に出力する。なお、相関値Ｄは、時系列データｇ（ｔ）と、擬似周期パルス列ｑ（ｔ）との重複パルス数であり、下記の式（８）で表す。また、式（８）において、Ｘは部分的シーケンシャルサーチの範囲を表す定数であり、ｔｘはＸ番目のパルスの発生時刻を示す。
【００３７】
【数８】
2020171145.tif 000010
【００３８】
ここで、図７を用いて部分的シーケンシャルサーチについて説明する。図７は、部分的シーケンシャルサーチの一例を示す図である。図７に示すように、フィルタ部１２は、グラフ３０に示す時系列データｇ（ｔ）に対して、グラフ３１に示す擬似周期パルス列ｑ（ｔ）を生成する。つまり、フィルタ部１２は、初期パルス位置をｐ、パルス間隔を候補周期の値τ、許容するジッタ率をＪｃとして、パルス幅を２Ｊｃτとした総パルス数Ｘの擬似周期パルス列ｑ（ｔ）を生成する。なお、擬似周期パルス列ｑ（ｔ）は、Ｘ番目のパルスまでを相関計算の対象とするので、Ｘ番目のパルス以降の値は全て０である。
【００３９】
フィルタ部１２は、グラフ３２に示すように、時刻ｔを０から時系列データｇ（ｔ）の観測期間Ｔまで（ｔｘまで）変化させた際に、擬似周期パルス列ｑ（ｔ）と時系列データ（入力パルス列）ｇ（ｔ）との重複パルス数（相関値Ｄ）をカウントする。なお、フィルタ部１２は、擬似周期パルス列ｑ（ｔ）の１つのパルスに対し、時系列データｇ（ｔ）の複数のパルスが重複した場合、重複パルス数のカウントは「１」とする。フィルタ部１２は、重複パルス数（相関値Ｄ）が総パルス数Ｘ以上である場合、実周期があると判定し、候補周期の値τを周期検出部１３に出力する。
【００４０】
一方、フィルタ部１２は、重複パルス数（相関値Ｄ）が総パルス数Ｘより小さい場合、第１パルスの位置ｐの値を変化させて重複パルス数を再度カウントする。フィルタ部１２は、与えられた全ての第１パルスの位置ｐの値に対して重複パルス数が総パルス数Ｘより小さくなる場合、候補周期が実周期として存在しないと判定する。フィルタ部１２は、候補周期が実周期として存在しないと判定した場合、当該階差値ｃにおける分析を中断し、次の階差値ｃ＋１の分析に移行する。
【００４１】
図１の説明に戻る。周期検出部１３は、フィルタ部１２から候補周期の値τが入力されると、当該候補周期の値τに対してＰＲＩ変換にて周期判定を行うとともに、累積ジッタの補正を行う。つまり、周期検出部１３は、候補周期の値τについてＰＲＩ変換およびシーケンシャルサーチを行う。
【００４２】
周期検出部１３は、下記の式（９），（１０）を用いてＰＲＩ変換によるスペクトルおよび閾値の算出を行う。
【００４３】
【数９】
2020171145.tif 000011
【数１０】
2020171145.tif 000012
【００４４】
なお、式（９），（１０）において、Ｄ（τ）は候補周期の値τのスペクトルを示し、ｉは虚数を示し、ｔｎはｎ番目のパルスの発生時刻を示し、ｔｍはｍ番目のパルスの発生時刻を示し、Ｔｈ（τ）は候補周期の値τの閾値を示し、α，β，γは定数を示し、Ｃ（τ）は自己相関値を示し、Ｎは観測期間の全パルス数を示す。また、式（９）では、自己相関関数に位相の項ｅ＾（２πｉｔ／τ）を加えることでパルス欠損の影響を低減する。さらに、周期検出部１３は、ＰＲＩ変換の実行中に、下記の式（１１）が成り立つ場合、ＰＲＩ変換を中断し、次の階差値ｃ＋１の分析に移行する。
【００４５】
【数１１】
2020171145.tif 000013
【００４６】
なお、式（１１）において、Ｄｎはｎ番目のパルスまで分析を進めた場合のＰＲＩ変換のスペクトルを示し、Ｔは入力パルス列の観測期間を示し、ＴＯＡｎはｎ番目のパルスの出現時刻を示し、τは候補周期の値を示し、Ｔｈは周期判定の閾値を示す。
【００４７】
ここで、図８を用いてＰＲＩ変換について説明する。図８は、ＰＲＩ変換の一例を示す図である。図８のグラフ３３に示す時系列データｇ（ｔ）について、ＰＲＩ変換を行うと、グラフ３４を得ることができる。グラフ３４では、例えば、候補周期３５，３６が閾値を超えているので、周期ありと判定することができる。
【００４８】
周期検出部１３は、ＰＲＩ変換にて周期ありと判定した候補周期の値τに対して、シーケンシャルサーチを行う際に、累積ジッタの補正も行う。つまり、周期検出部１３は、パルス観測期間が長くなることによるジッタの影響と、ＰＲＩ変換では対処しきれないノイズパルスの影響とを抑制することで、正しい周期の抽出を行う。
【００４９】
周期検出部１３は、候補周期の値τに基づく擬似周期パルス列ｑ（ｔ）を生成する。周期検出部１３は、生成した擬似周期パルス列ｑ（ｔ）に対して累積ジッタの補正を行ってシーケンシャルサーチを実行する。周期検出部１３は、擬似周期パルス列ｑ（ｔ）と、時系列データｇ（ｔ）との相関値Ｄを算出し、閾値ｔｈと比較することで、時系列データｇ（ｔ）内に候補周期の値τが存在するか否かを判定する。周期検出部１３は、相関値Ｄが閾値ｔｈ以上である場合、擬似周期パルス列ｑ（ｔ）を検出した周期パルス列として周期パルス分離部１４に出力する。なお、閾値ｔｈは、下記の式（１２）に示す。式（１２）において、ｓは定数を示す。また、相関値Ｄは、時系列データｇ（ｔ）と、擬似周期パルス列ｑ（ｔ）との重複パルス数であり、下記の式（１３）で表す。
【００５０】
【数１２】
2020171145.tif 000014
【数１３】
2020171145.tif 000015
【００５１】
ここで、図９を用いてシーケンシャルサーチについて説明する。図９は、シーケンシャルサーチの一例を示す図である。図９に示すように、周期検出部１３は、グラフ３０に示す時系列データｇ（ｔ）に対して、グラフ３７に示す擬似周期パルス列ｑ（ｔ）を生成する。つまり、周期検出部１３は、初期パルス位置をｐ、パルス間隔を候補周期の値τ、許容するジッタ率をＪｃとして、パルス幅を２Ｊｃτとした擬似周期パルス列ｑ（ｔ）を生成する。
【００５２】
周期検出部１３は、グラフ３８に示すように、時刻ｔを０から時系列データｇ（ｔ）の観測期間Ｔまで変化させた際に、擬似周期パルス列ｑ（ｔ）と時系列データｇ（ｔ）とが重複した場合、重複パルス数をカウントする。なお、周期検出部１３は、擬似周期パルス列ｑ（ｔ）の１つのパルスに対し、時系列データｇ（ｔ）の複数のパルスが重複した場合、重複パルス数のカウントは「１」とする。周期検出部１３は、最終的な重複パルス数（相関値Ｄ）が閾値ｔｈ以上である場合、候補周期の値τに基づく擬似周期パルス列ｑ（ｔ）を、検出した周期パルス列として周期パルス分離部１４に出力する。
【００５３】
一方、周期検出部１３は、最終的な重複パルス数（相関値Ｄ）が閾値ｔｈより小さい場合、第１パルス（初期パルス）の位置ｐの値を変化させて重複パルス数を再度カウントする。周期検出部１３は、与えられた全ての第１パルスの位置ｐの値に対して重複パルス数が閾値ｔｈより小さくなる場合、候補周期の値τが実周期として存在しないと判定する。周期検出部１３は、候補周期の値τが実周期として存在しないと判定した場合、残りの候補周期の値τの処理に移行する。また、検出対象の候補周期の値τの全てが実周期として存在しないと判定した場合、次の階差値ｃ＋１の分析に移行する。
【００５４】
次に、累積ジッタの補正について説明する。ジッタは、パルス観測期間が長くなることで蓄積し、許容ジッタ範囲を超過する可能性が高くなる。ネットワーク環境では、ジッタが遅れ側に偏る傾向が見られ、累積ジッタの影響が大きくなりやすい。このため、周期検出部１３では、パルス１回ごとにジッタ補正を行う。
【００５５】
図１０および図１１は、シーケンシャルサーチにおけるパルス位置の補正の一例を示す図である。図１０のグラフ３９に示すように、既存のシーケンシャルサーチでは、ジッタが累積していくと、時系列データｇ（ｔ）のパルス位置が許容ジッタ範囲を超過することになる。これに対し、グラフ４０に示すように、本実施形態のシーケンシャルサーチでは、パルス１回のジッタ量に合わせて擬似周期パルス列ｑ（ｔ）のパルス位置を補正することで累積ジッタに対応する。
【００５６】
グラフ４０では、１番目のパルスのジッタＪ１だけ２番目のパルスをシフト（並行移動）する。また、３番目のパルスでは、ジッタＪ１に２番目のパルスのジッタＪ２を加算した値だけシフトする。言い換えると、ｎ番目のパルスに対するシフト量を移動値δｎとすると、周期検出部１３は、時系列データｇ（ｔ）の重複したパルスの位置から、擬似周期パルス列ｑ（ｔ）の重複したパルスの中心位置を引いた差分値δｎ’を算出する。次に、周期検出部１３は、算出した差分値δｎ’と、差分値δｎ’の１つ前の差分値である移動値δｎ−１とに基づいて、移動値δｎを算出する。周期検出部１３は、直前の擬似周期パルス列ｑ（ｔ）の重複したパルスの次のパルス位置を移動値δｎだけ並行移動する。
【００５７】
また、周期検出部１３は、図１１のグラフ４１に示すように、擬似周期パルス列ｑ（ｔ）の１つのパルスに、時系列データｇ（ｔ）の複数のパルスが一致する場合、よりジッタ量が少ない方のパルスを周期パルスとみなして、擬似周期パルス列ｑ（ｔ）のパルス位置を補正する。また、周期検出部１３は、グラフ４２に示すように、擬似周期パルス列ｑ（ｔ）の１つのパルスに、一致する時系列データｇ（ｔ）のパルスが存在しない場合、擬似周期パルス列ｑ（ｔ）のパルス位置の補正は行わない。
【００５８】
図１２は、累積ジッタの一例を示す図である。図１２に示すグラフ４３は、あるビルのネットワークの通信で観測された累積ジッタの一例である。グラフ４３は、ネットワークのＰｃａｐ１日分について、分析対象プロトコルをｂａｃｎｅｔ、分析対象のデータを１パターンとした場合の例である。グラフ４３では、周期２４００秒の時系列データｇ（ｔ）に対して、観測期間が長くなるに従い、累積ジッタの影響で擬似周期パルス列ｑ（ｔ）の乖離が大きくなっていることがわかる。グラフ４３の例では、既存のシーケンシャルサーチでは周期なしと判定されてしまうが、本実施形態のシーケンシャルサーチでは周期ありと判定することができる。
【００５９】
図１の説明に戻る。周期パルス分離部１４は、周期検出部１３から検出された周期パルス列である擬似周期パルス列ｑ（ｔ）が入力されると、時系列データｇ（ｔ）から擬似周期パルス列ｑ（ｔ）と一致するパルスを周期通信として時系列データｇ（ｔ）から分離する。周期パルス分離部１４は、分離した周期通信と、周期通信分離後の時系列データｇ（ｔ）とを周期分析継続判定部１５に出力する。また、周期パルス分離部１４は、周期通信分離後の時系列データｇ（ｔ）を候補周期抽出部１１に出力する。
【００６０】
図１３は、周期通信の分離の一例を示す図である。図１３に示すように、周期パルス分離部１４は、時系列データ４４から擬似周期パルス列ｑ（ｔ）と一致する周期通信４５を分離する。時系列データ４６は、時系列データ４４から周期通信４５を分離した後の時系列データを示す。
【００６１】
図１の説明に戻る。周期分析継続判定部１５は、周期パルス分離部１４から周期通信と、周期通信分離後の時系列データｇ（ｔ）とが入力されると、判定条件に基づいて、分析を継続するか否かを判定する。ここで、分析を終了する場合の判定条件は、階差値ｃの値が上限値ｃｌｉｍｉｔに到達し、全候補周期に対する周期判定が終了した場合、および、周期通信分離後の時系列データｇ（ｔ）のパルス数が閾値以下となった場合のうち、１つまたは複数の条件を満たす場合である。周期分析継続判定部１５は、これらの条件を満たさない場合、分析を継続すると判定する。なお、階差値ｃは、候補周期の抽出に関するパラメータの一例であり、周期通信分離後の時系列データｇ（ｔ）は、新たな入力パルス列の一例である。
【００６２】
周期分析継続判定部１５は、分析を継続すると判定した場合、候補周期抽出部１１に対して、周期通信分離後の時系列データｇ（ｔ）を用いて候補周期の抽出を行うように指示する。周期分析継続判定部１５は、分析を継続しないと判定した場合、周期通信を推定結果として出力して処理を終了する。
【００６３】
ここで、図１４および図１５を用いて計算時間の削減効果について説明する。図１４は、各種実験データの一例を示す図である。図１４には、計算時間の削減効果を確認するための実験データとして、あるビルのネットワークのＰｃａｐ１日分について、分析対象プロトコルをｂａｃｎｅｔ、分析対象のデータとして実験データ５０〜５４の５パターンとした実験データを示す。実験データ５０は、単一周期のデータを示し、実験データ５１は、単一周期にノイズを加えたデータを示し、実験データ５２は、複数周期のデータを示す。また、実験データ５３は、ｓｔａｇｇｅｒパルス、つまり１周期あたりに複数のパルスが存在するデータを示し、実験データ５４は、ランダムなデータを示す。
【００６４】
図１５は、計算時間の削減の一例を示す図である。図１５の計算結果５５は、既存手法を用いた場合の計算結果を示す。また、計算結果５６は、本実施形態の計算結果を示す。計算結果５５では、実験データ５１の単一周期にノイズを加算した場合に、周期の誤検出が発生している。一方、計算結果５６では、周期の誤検出は発生していない。また、計算結果５５と計算結果５６とを比較すると、ノイズが存在するものほど計算時間が削減されていることがわかる。
【００６５】
［周期推定装置の処理手順］
次に、第１の実施形態に係る周期推定装置１０の動作について説明する。図１６は、第１の実施形態における周期推定処理の一例を示すフローチャートである。
【００６６】
候補周期抽出部１１は、入力パルス列信号として、時系列データの入力を受け付ける（ステップＳ１）。候補周期抽出部１１は、階差値ｃ＝１を設定する（ステップＳ２）。候補周期抽出部１１は、設定した階差値ｃの累積差分ヒストグラムを生成する（ステップＳ３）。候補周期抽出部１１は、生成した累積差分ヒストグラムについてクラスタリングを行う（ステップＳ４）。
【００６７】
候補周期抽出部１１は、クラスタリングを通して再生成されたヒストグラムに対して閾値を適用し、候補周期を抽出する（ステップＳ５）。候補周期抽出部１１は、抽出できた候補周期があるか否かを判定する（ステップＳ６）。候補周期抽出部１１は、抽出できた候補周期がないと判定した場合（ステップＳ６：Ｎｏ）、階差値ｃをインクリメントし（ステップＳ１５）、ステップＳ２に戻る。一方、候補周期抽出部１１は、抽出できた候補周期があると判定した場合（ステップＳ６：Ｙｅｓ）、抽出した候補周期をフィルタ部１２に出力する。
【００６８】
フィルタ部１２は、候補周期抽出部１１から候補周期が入力されると、ランダムノイズフィルタを実行する（ステップＳ７）。フィルタ部１２は、ランダムノイズフィルタの実行結果に基づいて、理論的な最大スペクトル値よりもランダムノイズ閾値の方が大きいか否かを判定する（ステップＳ８）。フィルタ部１２は、ランダムノイズ閾値の方が大きいと判定した場合（ステップＳ８：Ｙｅｓ）、階差値ｃをインクリメントし（ステップＳ１５）、ステップＳ２に戻る。一方、フィルタ部１２は、理論的な最大スペクトル値がランダムノイズ閾値以上であると判定した場合（ステップＳ８：Ｎｏ）、部分的シーケンシャルサーチを実行する（ステップＳ９）。
【００６９】
フィルタ部１２は、部分的シーケンシャルサーチに基づいて、実周期があるか否かを判定する（ステップＳ１０）。フィルタ部１２は、実周期がないと判定した場合（ステップＳ１０：Ｎｏ）、階差値ｃをインクリメントし（ステップＳ１５）、ステップＳ２に戻る。一方、フィルタ部１２は、実周期があると判定した場合（ステップＳ１０：Ｙｅｓ）、候補周期の値τを周期検出部１３に出力する。
【００７０】
周期検出部１３は、フィルタ部１２から候補周期の値τが入力されると、当該候補周期の値τについてＰＲＩ変換を実行する（ステップＳ１１）。周期検出部１３は、ＰＲＩ変換の実行中に、式（１１）に基づいて、ＰＲＩ変換を中断するか否かを判定する（ステップＳ１２）。周期検出部１３は、ＰＲＩ変換を中断すると判定した場合（ステップＳ１２：Ｙｅｓ）、階差値ｃをインクリメントし（ステップＳ１５）、ステップＳ２に戻る。一方、周期検出部１３は、ＰＲＩ変換を中断しないと判定した場合（ステップＳ１２：Ｎｏ）、引き続きＰＲＩ変換を実行する。
【００７１】
周期検出部１３は、ＰＲＩ変換にて周期ありと判定した候補周期の値τについて、候補周期の値τに基づく擬似周期パルス列ｑ（ｔ）を生成する。周期検出部１３は、生成した擬似周期パルス列ｑ（ｔ）に対して、累積ジッタの補正を行ってシーケンシャルサーチを実行する（ステップＳ１３）。周期検出部１３は、シーケンシャルサーチの結果、周期パルス列を検出したか否かを判定する（ステップＳ１４）。周期検出部１３は、周期パルス列を検出していないと判定した場合（ステップＳ１４：Ｎｏ）、階差値ｃをインクリメントし（ステップＳ１５）、ステップＳ２に戻る。周期検出部１３は、周期パルス列を検出したと判定した場合（ステップＳ１４：Ｙｅｓ）、検出した周期パルス列を周期パルス分離部１４に出力する。
【００７２】
周期パルス分離部１４は、周期検出部１３から検出された周期パルス列である擬似周期パルス列ｑ（ｔ）が入力されると、時系列データｇ（ｔ）から擬似周期パルス列ｑ（ｔ）と一致するパルスを周期通信として時系列データｇ（ｔ）から分離する（ステップＳ１６）。周期パルス分離部１４は、分離した周期通信と、周期通信分離後の時系列データｇ（ｔ）とを周期分析継続判定部１５に出力する。また、周期パルス分離部１４は、周期通信分離後の時系列データｇ（ｔ）を候補周期抽出部１１に出力する。
【００７３】
周期分析継続判定部１５は、周期パルス分離部１４から周期通信と、周期通信分離後の時系列データｇ（ｔ）とが入力されると、判定条件に基づいて、分析を継続するか否かを判定する（ステップＳ１７）。周期分析継続判定部１５は、分析を継続すると判定した場合（ステップＳ１７：Ｙｅｓ）、ステップＳ２に戻る。一方、周期分析継続判定部１５は、分析を継続しないと判定した場合（ステップＳ１７：Ｎｏ）、周期通信を推定結果として出力して周期推定処理を終了する。これにより、周期推定装置１０は、ネットワーク環境における機器の設定変更による通信周期の変化や、複数の同等機器から異なる周期をもつ機器を発見することができる。また、周期推定装置１０は、通信周期の変化や、異なる周期をもつ機器を発見することができるので、意図しない機器設定を特定することができる。
【００７４】
［第１の実施形態の効果］
このように、周期推定装置１０は、候補周期抽出部１１が入力パルス列から周期判定の対象となる候補周期を抽出する。また、周期推定装置１０は、抽出された候補周期の一部を用いて、実周期として存在するか否かを判定し、候補周期が実周期として存在しないと判定した場合、候補周期に対する周期判定を中断する。また、周期推定装置１０は、実周期として存在すると判定された候補周期に対して周期判定を行うとともに、候補周期に基づく擬似周期パルス列を生成する。また、周期推定装置１０は、生成した擬似周期パルス列と入力パルス列との差分値に基づいて、擬似周期パルス列のパルス位置を調整し、周期判定および調整の結果に応じて周期パルス列の検出を行う。また、周期推定装置１０は、検出された周期パルス列を入力パルス列から分離し、分離後のパルス列を新たな入力パルス列として候補周期抽出部１１に入力する。また、周期推定装置１０は、候補周期の抽出に関するパラメータ、および、新たな入力パルス列のうち、１つまたは複数に基づいて、周期の分析を継続するか否かを判定する。その結果、周期推定装置１０は、ネットワーク環境における機器の設定変更による通信周期の変化や、複数の同等機器から異なる周期をもつ機器を発見することができる。
【００７５】
また、周期推定装置１０は、特定の階差に基づき入力パルス列の各パルス間隔を算出してヒストグラムを生成し、生成したヒストグラムにおいて、所定の閾値以上の回数出現したパルス間隔を候補周期として抽出する。その結果、周期推定装置１０は、候補周期を抽出することができる。
【００７６】
また、周期推定装置１０は、上記の式（３）が成り立つ場合、候補周期が実周期として存在しないと判定する。その結果、周期推定装置１０は、ＰＲＩ変換等の計算時間を削減することができる。
【００７７】
また、周期推定装置１０は、初期パルス位置をｐ、パルス間隔を候補周期の値τ、許容するジッタ率をＪｃとして、パルス幅を２Ｊｃτとした総パルス数Ｘの擬似周期パルス列ｑ（ｔ）を生成する。また、周期推定装置１０は、入力パルス列をｇ（ｔ）とした場合に、時刻ｔを０から入力パルス列ｇ（ｔ）の観測期間Ｔまで変化させた際に、擬似周期パルス列ｑ（ｔ）と入力パルス列ｇ（ｔ）との重複パルス数をカウントする。また、周期推定装置１０は、重複パルス数が総パルス数Ｘ以上である場合、候補周期の値τを周期検出部１３に出力する。また、周期推定装置１０は、重複パルス数が総パルス数Ｘより小さい場合、ｐの値を変化させて重複パルス数を再度カウントし、与えられた全てのｐの値に対して重複パルス数が総パルス数Ｘより小さくなる場合、候補周期が実周期として存在しないと判定する。その結果、周期推定装置１０は、ＰＲＩ変換等の計算時間を削減することができる。
【００７８】
また、周期推定装置１０は、周期判定において、ＰＲＩ変換の実行中に、上記の式（１１）が成り立つ場合、ＰＲＩ変換を中断する。その結果、周期推定装置１０は、ＰＲＩ変換等の計算時間を削減することができる。
【００７９】
また、周期推定装置１０は、初期パルス位置をｐ、パルス間隔をフィルタ部１２から入力された候補周期の値τ、許容するジッタ率をＪｃとして、パルス幅を２Ｊｃτとした擬似周期パルス列ｑ（ｔ）を生成する。また、周期推定装置１０は、入力パルス列をｇ（ｔ）とした場合に、時刻ｔを０から入力パルス列ｇ（ｔ）の観測期間Ｔまで変化させた際に、擬似周期パルス列ｑ（ｔ）と入力パルス列ｇ（ｔ）とが重複した場合、重複パルス数をカウントする。また、周期推定装置１０は、重複パルス数のカウントとともに、重複パルスについて、入力パルス列ｇ（ｔ）の重複したパルスの位置から、擬似周期パルス列ｑ（ｔ）の重複したパルスの中心位置を引いた差分値δｎ’を算出する。また、周期推定装置１０は、算出した差分値δｎ’と、差分値δｎ’の１つ前の移動値δｎ−１とに基づいて、移動値δｎを算出し、直前の擬似周期パルス列ｑ（ｔ）の重複したパルスの次のパルス位置を移動値δｎだけ並行移動させる。また、周期推定装置１０は、最終的な重複パルス数が所定値以上である場合、入力された候補周期の値τに基づいて、周期パルス列の検出を行い、最終的な重複パルス数が所定値より小さい場合、ｐの値を変化させて重複パルス数を再度カウントする。また、周期推定装置１０は、与えられた全てのｐの値に対して重複パルス数が所定値より小さくなる場合、候補周期の値τが実周期として存在しないと判定する。その結果、周期推定装置１０は、ジッタが累積する場合であっても周期パルス列を検出することができる。
【００８０】
［第２の実施形態］
次に、第２の実施形態に係る周期推定装置２１０の構成、周期推定装置２１０の処理の流れを順に説明し、最後に第２の実施形態による効果を説明する。
【００８１】
［周期推定装置の構成］
まず、図１７を用いて、周期推定装置２１０の構成を説明する。図１７は、第２の実施形態に係る周期推定装置の構成の一例を示すブロック図である。周期推定装置２１０は、入力パルス列の周期パターンを分析し、周期パターンの種別を入力パルス列に対応付けて周期パターンモデルに登録する。続いて、周期推定装置２１０は、周期パターンモデルを用いて、以降の入力パルス列の周期パターンの種別を分類する。そして、周期推定装置２１０は、分類した周期パターンの種別によっては、最適な工程に限定した周期推定方法を用いて、入力パルス列の分析を行う。これによって、周期推定装置１０は、計算時間を削減するとともに最適な検知粒度での検知を実現する。
【００８２】
図１７に示すように、周期推定装置２１０は、第１の実施形態に係る周期推定装置１０と同じ構成を有する推定部１０Ａに加え、事前周期分析部２１１（分析部）、周期パターンモデル２１２、分類部２１３および設定部２１４をさらに有する。また、周期推定装置２１０は、図示しない記憶部を有する。記憶部は、例えば、フラッシュメモリ等の半導体メモリ素子、ハードディスクや光ディスク等の記憶装置によって実現される。なお、周期推定装置２１０は、図１７に示す機能部以外にも既知のコンピュータが有する各種の機能部、例えば各種の入力デバイスや音声出力デバイス等の機能部を有することとしてもかまわない。
【００８３】
事前周期分析部２１１は、入力パルス列の周期パターンの事前分析を行う。事前周期分析部２１１は、まず、事前分析処理として、入力パルス列に対し、第１の実施形態において説明した、候補周期抽出部１１による処理と、フィルタ部１２による処理と、周期検出部１３による処理と、周期パルス分離部１４による処理と、周期分析継続判定部１５による処理とを推定部１０Ａに実施させる。すなわち、事前周期分析部２１１は、推定部１０Ａに、図１６に示すステップＳ１〜ステップＳ１７の処理を実施させる。
【００８４】
続いて、事前周期分析部２１１は、推定部１０Ａによる処理結果を基に、入力パルス列の周期パターンの種別を分析し、分析した周期パターンの種別を入力パルス列に対応付けて周期パターンモデル２１２に登録する。事前周期分析部２１１は、一定期間或いは周期的に事前周期分析処理を行う他、分類部２１３（後述）により分類ができなかった入力パルス列に対して事前周期分析を行う。
【００８５】
周期パターンモデル２１２は、事前周期分析部２１１によって分析された周期パターンの種別を入力パルス列に対応付けて登録する。そして、周期パターンモデル２１２は、事前周期分析部２１１によって分析された周期パターンの種別と入力パルス列との対応関係を学習し、入力パルス列が入力されると、この入力パルス列に対応する周期パターンの種別を出力する。
【００８６】
分類部２１３は、周期パターンモデル２１２を用いて、周期推定装置２１０が入力を受け付けた次の推定対象の入力パルス列の周期パターンの種別を分類する。分類部２１３は、次の推定対象の入力パルス列を周期パターンモデル２１２に入力し、周期パターンモデル２１２の出力を受けることによって、次の推定対象の入力パルス列の周期パターンの種別を分類する。
【００８７】
設定部２１４は、分類部２１３が分類した周期パターンの種別に応じて、次の推定対象の入力パルス列に対する周期推定方式を設定する。設定部２１４は、分類部２１３が分類した周期パターンの種別によっては、推定部１０Ａによる処理を一部限定した周期推定方法を設定する。
【００８８】
［周期推定処理の流れ］
次に、図１８を参照して、周期推定装置２１０における入力パルス列に対する周期判定処理の流れを説明する。図１８は、図１７に示す周期推定装置２１０における入力パルス列に対する周期判定処理の流れを説明する図である。
【００８９】
図１８の（ａ）に示すように、周期推定装置２１０は、事前周期分析を行う。具体的には、時系列データである入力パルス信号の入力を周期推定装置２１０が受け付けると（ステップＳ１０１）、事前周期分析部２１１は、推定部１０Ａを入力パルス列に対する周期判定処理を実施させることによって、この入力パルス列の周期パターンを分析する事前周期分析を行う（ステップＳ１０２）。図１９は、事前周期分析の処理内容を説明する図である。
【００９０】
図１９に示すように、推定部１０Ａは、事前周期分析時には、図１６に示す第１の実施形態に係る周期推定処理と同様に、入力された時系列データＤ０（図１９の（１）参照）に対し、候補周期抽出部１１による候補周期抽出（図１９の（２）およびステップＳ１０２−１）、フィルタ部１２によるノイズフィルタ（ステップＳ１０２−２）と、周期検出部１３による周期検出（ステップＳ１０２−３）、周期パルス分離部１４による周期通信分離（図１９の（５）およびステップＳ１０２−４）、および、周期分析継続判定部１５による継続判定処理を実施する。フィルタ部１２は、フィルタＦ１，Ｆ２を適用してノイズフィルタを行う（図１９の（３）参照）。周期検出部１３は、ＰＲＩ変換による早期中断判定と、ジッタ補正シーケンシャルサーチとを行う（図１９の（４）参照）。図１９に示す処理を行うことによって、推定部１０Ａは、通信周期の有無の判定や周期値の抽出を検知する。
【００９１】
図２０は、周期パターンの一例を示す図である。事前周期分析部２１１は、推定部１０Ａによる検知結果を基に、入力パルス列の周期パターンが、周期通信型（図１８の（１）および図２０の（１）参照）、非周期通信型（図１８の（２）および図２０の（２）参照）、周期通信と非周期通信とを含む混合型（図１８の（３）および図２０の（３）参照）のいずれであるかを分析する。そして、事前周期分析部２１１は、分析した周期パターンの種別を入力パルス列に対応付けて周期パターンモデル２１２に登録する。そして、周期パターンモデル２１２は、事前周期分析時に分析された周期パターンの種別と入力パルス列との対応関係を学習する。
【００９２】
そして、推定時では、周期推定装置２１０は、事前周期分析時に学習した正常時の周期パターンから逸脱した通信を検知する。まず、図１８の（ｂ）に示すように、周期推定装置２１０は、周期推定装置２１０が入力を受け受けた次の推定対象の入力パルス列については（ステップＳ１１０）、分類部２１３が、周期パターンモデル２１２を用いて周期パターンを分類し（ステップＳ１１１）、設定部２１４が、分類結果に応じて周期推定方式を設定する（ステップＳ１２０〜Ｓ１４０）。
【００９３】
具体的には、設定部１２０は、次の入力パルス列の周期パターンが、周期通信型である場合には、周期通信型推定方法を設定する（ステップＳ１２０）。また、設定部１２０は、次の入力パルス列の周期パターンが、非周期通信型である場合には、非周期通信型推定方法を設定する（ステップＳ１３０）。また、設定部１２０は、次の入力パルス列の周期パターンが、周期的な通信パターンと非周期である通信パターンとを含む混合型である場合には、混合型推定方法を設定する（ステップＳ１４０）。
【００９４】
［周期通信型推定方法］
設定部２１４が設定する各推定方法について説明する。まず、図２１を参照して、周期通信型推定方法について説明する。図２１は、周期通信型推定方法の処理内容を説明する図である。周期通信型推定方法は、図１６に示す処理と比して、周期検出部１３によるシーケンシャルサーチを用いた周期パルス列の検出処理と周期パルス分離部１４による処理とに限定した周期推定方法である。
【００９５】
図２１に示すように、次の入力パルス列である時系列データＤ１（図２１の（１）参照）は、周期的なパターンであるため、周期検出部１３によるシーケンシャルサーチを用いた周期パルス列の検出処理（図２１の（２）およびステップＳ１２２）と、周期パルス分離部１４による周期通信分離（図２１の（３）およびステップＳ１２３）とに限定した周期通信型推定方法で、検知が可能である。
【００９６】
図２２および図２３は、検知対象の通信を説明する図である。周期通信型推定方法によれば、周期推定装置２１０は、周期外通信（図２２の（１）参照）や周期通信消失（図２３の（１）参照）を検出することができる。周期外通信は、定期的なデータ取得通信への攻撃パケットの挿入などに起因すると考えられる。周期通信消失は、ＡＲＰ（Address  Resolution  Protocol）スプーフィングやシステムダウン攻撃によるパケット未到達などの発生に起因すると考えられる。
【００９７】
また、周期通信型推定方法を適用した場合には、候補周期抽出部１１による処理、フィルタ部１２による処理、周期検出部１３におけるＰＲＩ変換処理を省略するため、図１６に示す処理と比して高速処理が可能になる。
【００９８】
［非周期通信型推定方法］
続いて、図２４を参照して、非周期通信型推定方法について説明する。図２４は、非周期通信型推定方法の処理内容を説明する図である。非周期通信型推定方法は、図１６に示す処理と比して、候補周期抽出部１１による処理と、周期検出部１３による部分的シーケンシャルサーチを用いた周期パルス列の検出処理と、周期パルス分離部１４による処理とに限定した周期推定方法である。
【００９９】
図２４に示すように、次の入力パルス列である時系列データＤ２（図２４の（１）参照）は、非周期なパターンであるため、候補周期抽出部１１によるＳＤＩＦ法（図２４の（２）参照）を用いた候補周期抽出（図２１のステップＳ１３２）と、周期検出部１３による部分的シーケンシャルサーチを用いた周期パルス列の検出処理（図２４の（３）およびステップＳ１３３）と、周期パルス分離部１４による周期通信分離（図２４の（４）およびステップＳ１３４）とに限定した非周期通信型推定方法で、検知が可能である。
【０１００】
図２５は、検知対象の通信を説明する図である。非周期通信型推定方法を適用した場合には、シーケンシャルサーチでの部分的な周期検索を繰り返すことで、観測期間中の一部期間でのみ発生した周期通信も検知が可能である。言い換えると、図２５に示すように、非周期通信型推定方法によれば、周期推定装置２１０は、新たな周期通信の出現を検出可能である。このような新たな周期通信の出現は、悪意を持った制御指令の継続送信の発生に起因すると考えられる。
【０１０１】
また、非周期通信型推定方法を適用した場合には、フィルタ部１２による処理、周期検出部１３におけるＰＲＩ変換処理を省略するため、図１６に示す処理と比して高速処理が可能になる。
【０１０２】
［混合型推定方法］
続いて、図２６を参照して、混合型推定方法について説明する。図２６は、混合型推定方法の処理内容を説明する図である。混合型推定方法は、図１６に示す処理と同様の処理を行う。すなわち、入力された時系列データＤ３（図２６の（１）参照）に対し、ＳＤＩＦ法を用いた候補周期抽出部１１による候補周期抽出（図２６の（２）およびステップＳ１４２）と、フィルタ部１２によるノイズフィルタ（ステップＳ１４３）と、周期検出部１３によるＰＲＩ変換およびシーケンシャルサーチを用いた周期検出（図２６の（３）およびステップＳ１４４）、および、周期パルス分離部１４による周期通信分離（図２６の（４）およびステップＳ１４５）を実施する。
【０１０３】
この混合型推定方法を適用した場合、周期および非周期通信を含む複雑なパターンの通信の検出にも対応が可能であり、観測期間中の一部期間でのみ発生した新たな周期通信も検知が可能である。
【０１０４】
［検知結果］
周期推定装置２１０を用いて検知を行った結果を示す。図２７は、図１７に示す周期推定装置２１０による検知結果の一例を示す図である。図２７に示すように、周期推定装置２１０は、事前周期分析で学習した周期パターンモデル２１２を用いて、周期パターンを分類してから、周期推定を行う。このため、周期推定装置２１０では、図２７に示すように、フローの情報のうち、指定した検知粒度（例えば、送信元アドレス（Src）、送信先アドレス（dst）、コマンド（cmd））ごとに、分析結果を出力することができる。また、周期推定装置２１０では、入力パルス信号を周期パターンに分類してから、周期推定を行うことで、周期パターンに応じて、周期外通信、周期通信消失または新周期発生に分けて、通信異常を検知できる。
【０１０５】
［事前周期分析時における処理手順］
次に、周期推定装置２１０による事前周期分析時における処理手順について説明する。図２８は、第２の実施形態における事前周期分析時における周期推定処理の処理手順の一例を示すフローチャートである。
【０１０６】
周期推定装置２１０は、入力パルス信号として、時系列データの入力を受け付けると（ステップＳ２０１）、入力を受けつけた時系列データに対し、事前周期分析処理を行う（ステップＳ２０２）。周期推定装置２１０は、事前周期分析処理として、図１６に示すステップＳ１〜ステップＳ１７と同じ処理を行う。そして、事前周期分析部２１１は、入力パルス列の周期パターンの種別を分析し、分析した周期パターンの種別を入力パルス列に対応付けて周期パターンモデル２１２に登録する（ステップＳ２０３）。周期パターンモデル２１２では、周期パターンの種別と入力パルス列との対応関係を学習する。
【０１０７】
［推定処理の処理手順］
次に、事前周期分析時に学習した正常時の周期パターンから逸脱した通信を検知する推定時の処理手順について説明する。図２９は、第２の実施形態２における推定時における周期推定処理の処理手順の一例を示すフローチャートである。
【０１０８】
周期推定装置２１０は、次の入力パルス列として、時系列データの入力を受け付けると（ステップＳ２１１）、分類部２１３が、この時系列データに対し、周期パターンモデル２１２を用いて周期パターンを分類する（ステップＳ２１２）。
【０１０９】
分類結果が周期通信型である場合（ステップＳ２１３：周期通信）、設定部２１４は、周期通信型推定方法を設定する（ステップＳ２１４）。推定部１０Ａは、周期通信型推定方法を適用して、次の入力パルス列に対する周期推定処理を行う（ステップＳ２１５）。
【０１１０】
また、分類結果が非周期通信型である場合（ステップＳ２１３：非周期通信）、設定部２１４は、非周期通信型推定方法を設定する（ステップＳ２１６）。推定部１０Ａは、周期通信型推定方法を適用して、次の入力パルス列に対する周期推定処理を行う（ステップＳ２１７）。
【０１１１】
また、分類結果が周期的な通信パターンと非周期である通信パターンとを含む混合型である場合（ステップＳ２１３：周期的および非周期通信）、設定部２１４は、混合型推定方法を設定する（ステップＳ２１８）。推定部１０Ａは、混合型推定方法を適用して、次の入力パルス列に対する周期推定処理を行う（ステップＳ２１９）。そして、周期推定装置２１０は、推定部１０Ａによる検知結果を出力して（ステップＳ２２０）、この入力パルス列に対する周期推定処理を終了する。なお、ステップＳ２１３において、入力パルス列がいずれの入力パターンにも分類されない場合には、周期推定装置２１０は、この入力パルス列に対し、図２８に示すステップＳ２０２，Ｓ２０３を実行する。
【０１１２】
［第２の実施形態の効果］
このように、第２の実施形態に係る周期推定装置２１０は、入力パルス列に対し、事前周期分析を実施させることによって、入力パルス列の周期パターンの種別を分析し、分析した周期パターンの種別を前記入力パルス列に対応付けて周期パターンモデルに登録する。そして、周期推定装置２１０は、周期パターンモデルを用いて、次の推定対象の入力パルス列の周期パターンの種別を分類し、分類した周期パターンの種別によっては、周期推定処理の一部の処理に限定した方法を、次の推定対象の入力パルス列に対する周期推定方式を設定する。したがって、周期推定装置２１０は、推定対象の入力パルス列の周期パターンに応じて周期推定処理の処理内容を最適化することで、第１の実施形態よりも、周期推定処理の高速化を図ることができる。また、周期推定装置２１０は、周期パターンを分類してから周期推定を行うため、フローの情報のうち、最適な検知粒度での検知も実現できる。
【０１１３】
［システム構成等］
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵやＧＰＵおよび当該ＣＰＵやＧＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【０１１４】
また、上記実施形態において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【０１１５】
［プログラム］
また、上記実施形態において説明した周期推定装置１０が実行する処理をコンピュータが実行可能な言語で記述したプログラムを作成することもできる。例えば、実施形態に係る周期推定装置１０が実行する処理をコンピュータが実行可能な言語で記述したパルス列信号の周期推定プログラムを作成することもできる。この場合、コンピュータがパルス列信号の周期推定プログラムを実行することにより、上記実施形態と同様の効果を得ることができる。さらに、かかるパルス列信号の周期推定プログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたパルス列信号の周期推定プログラムをコンピュータに読み込ませて実行することにより上記実施形態と同様の処理を実現してもよい。
【０１１６】
図３０は、パルス列信号の周期推定プログラムを実行するコンピュータの一例を示す図である。図３０に例示するように、コンピュータ１０００は、例えば、メモリ１０１０と、ＣＰＵ１０２０と、ハードディスクドライブインタフェース１０３０と、ディスクドライブインタフェース１０４０と、シリアルポートインタフェース１０５０と、ビデオアダプタ１０６０と、ネットワークインタフェース１０７０とを有し、これらの各部はバス１０８０によって接続される。
【０１１７】
メモリ１０１０は、図３０に例示するように、ＲＯＭ（Read  Only  Memory）１０１１およびＲＡＭ１０１２を含む。ＲＯＭ１０１１は、例えば、ＢＩＯＳ（Basic  Input  Output  System）等のブートプログラムを記憶する。ハードディスクドライブインタフェース１０３０は、図３０に例示するように、ハードディスクドライブ１０９０に接続される。ディスクドライブインタフェース１０４０は、図３０に例示するように、ディスクドライブ１１００に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ１１００に挿入される。シリアルポートインタフェース１０５０は、図３０に例示するように、例えばマウス１１１０、キーボード１１２０に接続される。ビデオアダプタ１０６０は、図３０に例示するように、例えばディスプレイ１１３０に接続される。
【０１１８】
ここで、図３０に例示するように、ハードディスクドライブ１０９０は、例えば、ＯＳ１０９１、アプリケーションプログラム１０９２、プログラムモジュール１０９３、プログラムデータ１０９４を記憶する。すなわち、上記の、パルス列信号の周期推定プログラムは、コンピュータ１０００によって実行される指令が記述されたプログラムモジュールとして、例えばハードディスクドライブ１０９０に記憶される。
【０１１９】
また、上記実施形態で説明した各種データは、プログラムデータとして、例えばメモリ１０１０やハードディスクドライブ１０９０に記憶される。そして、ＣＰＵ１０２０が、メモリ１０１０やハードディスクドライブ１０９０に記憶されたプログラムモジュール１０９３やプログラムデータ１０９４を必要に応じてＲＡＭ１０１２に読み出し、各種処理手順を実行する。
【０１２０】
なお、パルス列信号の周期推定プログラムに係るプログラムモジュール１０９３やプログラムデータ１０９４は、ハードディスクドライブ１０９０に記憶される場合に限られず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ等を介してＣＰＵ１０２０によって読み出されてもよい。あるいは、パルス列信号の周期推定プログラムに係るプログラムモジュール１０９３やプログラムデータ１０９４は、ネットワーク（ＬＡＮ、ＷＡＮ（Wide  Area  Network）等）を介して接続された他のコンピュータに記憶され、ネットワークインタフェース１０７０を介してＣＰＵ１０２０によって読み出されてもよい。
【０１２１】
上記の実施形態やその変形は、本願が開示する技術に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【０１２２】
１０，２１０  周期推定装置
１０Ａ  推定部
１１  候補周期抽出部
１２  フィルタ部
１３  周期検出部
１４  周期パルス分離部
１５  周期分析継続判定部
２１１  事前周期分析部
２１２  周期パターンモデル
２１３  分類部
２１４  設定部
【図１】
2020171145.tif 000018
【図２】
2020171145.tif 000019
【図３】
2020171145.tif 000020
【図４】
2020171145.tif 000021
【図５】
2020171145.tif 000022
【図６】
2020171145.tif 000023
【図７】
2020171145.tif 000024
【図８】
2020171145.tif 000025
【図９】
2020171145.tif 000026
【図１０】
2020171145.tif 000027
【図１１】
2020171145.tif 000028
【図１２】
2020171145.tif 000029
【図１３】
2020171145.tif 000030
【図１４】
2020171145.tif 000031
【図１５】
2020171145.tif 000032
【図１６】
2020171145.tif 000033
【図１７】
2020171145.tif 000034
【図１８】
2020171145.tif 000035
【図１９】
2020171145.tif 000036
【図２０】
2020171145.tif 000037
【図２１】
2020171145.tif 000038
【図２２】
2020171145.tif 000039
【図２３】
2020171145.tif 000040
【図２４】
2020171145.tif 000041
【図２５】
2020171145.tif 000042
【図２６】
2020171145.tif 000043
【図２７】
2020171145.tif 000044
【図２８】
2020171145.tif 000045
【図２９】
2020171145.tif 000046
【図３０】
2020171145.tif 000047
【国際調査報告】
2020171145.tif 000048
2020171145.tif 000049
2020171145.tif 000050
2020171145.tif 000051