波形解析装置、波形解析方法、及びプログラム
【課題】処理効率の高いパターンマッチングを提供する。
【解決手段】変換部12は、入力信号の信号波形をサンプリングして得られる時刻と値との組を有するデータ組列に基づいて、時刻と当該時刻での値との組を変数とする論理関数である特性関数を生成して二分決定図での表現である第二関数に変換する。制約条件獲得部14は、参照波形上に設定された複数の特徴点の各々について、当該特徴点によって特定される時間情報と上記の信号波形において当該時間情報に対応する値との間の関係に対する制約条件を獲得する。この制約条件は、当該特徴点における上記の参照波形の値と当該参照波形の値に対して与えられる所定の許容誤差とに基づき獲得される。探索部15は、変換された第二関数に対して前述の複数の特徴点の各々の制約条件を適用して当該複数の特徴点全ての制約条件を充足する時刻の範囲を求めて出力する。
【解決手段】変換部12は、入力信号の信号波形をサンプリングして得られる時刻と値との組を有するデータ組列に基づいて、時刻と当該時刻での値との組を変数とする論理関数である特性関数を生成して二分決定図での表現である第二関数に変換する。制約条件獲得部14は、参照波形上に設定された複数の特徴点の各々について、当該特徴点によって特定される時間情報と上記の信号波形において当該時間情報に対応する値との間の関係に対する制約条件を獲得する。この制約条件は、当該特徴点における上記の参照波形の値と当該参照波形の値に対して与えられる所定の許容誤差とに基づき獲得される。探索部15は、変換された第二関数に対して前述の複数の特徴点の各々の制約条件を適用して当該複数の特徴点全ての制約条件を充足する時刻の範囲を求めて出力する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、波形の探索技術に関する。
【背景技術】
【0002】
例えば医療やヘルスケアの分野では、血圧センサや心電図センサなどの生体情報を取得する各種のセンサによって、時々刻々と大量の信号データの収集が行われる。この大量の信号データから、必要な情報を、素早く、且つ正確に探し出すことで、身体の異常を迅速に検知することができる。
【0003】
しかしながら、探索目的の情報は、探索対象である信号データの種別によって多岐に亙る。例えば、心電図データからは、心拍数や不整脈の有無を探し出すことが目的となる。更には、目的とする情報の探索を、その探索の条件を様々に変更しながら繰り返し行うことで、より正確な診断を行うことができる。
【0004】
このような技術のひとつにパターンマッチングが知られている。パターンマッチングは、センサから得られた時系列の信号波形から、予め設定されている参照波形(リファレンス波形)と波形形状が類似している部分を探し出して抽出するという技術である。
【0005】
このパターンマッチングに関する技術として、幾つかの技術が知られている。
例えば、その第一の技術として、信号波形のピクセル表示を行う表示器での発光/非発光の論理値と、当該表示器の画面で設定されるリファレンス波形の設定データの論理値との論理演算により、パターンマッチングを行うというものがある。
【0006】
また、例えば、その第二の技術として、音声信号を周波数スペクトラムに変換して得られる音声の特徴パラメータと、登録されている標準音声の特徴パラメータとのマッチングを行うというものがある。
【0007】
また、例えば、その第三の技術として、2つの信号に含まれている音声情報の同一性の判別を、位相ずれや信号遅延があっても行えるようにするために、2つの信号から取り出した周波数情報の比較を行うというものである。
【0008】
ところで、この他の背景技術として、脳波信号に所定のパターンが存在するか否かの決定のアルゴリズムに、二分決定木(Binary Decision Tree)を適用するという技術が提案されている。
【0009】
また、この他の背景技術として、二分決定図(BDD:Binary Decision Diagram )というものが知られている。BDDは、ランダル・イー・ブライアント(Randal E. Bryant)が提唱した、論理関数(ブール関数)を効率的に表現するためのデータ構造である。
【0010】
BDDは、「0」若しくは「1」の定数を表している節点(ノード)、変数が割り付けられた節点(変数節点)、及び、変数節点と他の節点とを結ぶ枝(エッジ)から構成される、閉路を持たない有向グラフである。ここで、各変数節点は「0」の枝と「1」の枝とを有しており、その変数節点に割り付けられている変数の値が「0」であるか「1」であるかによって、下位のレベル(決定木における根の節点からの深さ)の節点が選択される。この選択の繰り返しにより、最後に到達する定数節点が、変数節点に割り付けられている変数に、辿った枝の値を代入したときにおける、そのBDDで表現されている論理関数の値を表している。
【0011】
なお、BDDは、[1]二分決定木であって、[2]変数が順序付けされており(Ordered )、[3]既約化されている(Reduced )ものと定義されている。従って、BDDは、正確にはROBDD(Reduced Ordered BDD )と称されるが、一般的には「BDD」と云えばこのROBDDを指している。
【0012】
図1は、基本的な論理関数をBDDにより表現した図である。ここで、(1)は論理積(AND)関数であり、変数x0、x1、y0、及びy1の論理積を出力する関数が表現されている。また、(2)は論理和(OR)関数であり、変数x0、x1、y0、及びy1の論理和を出力する関数が表現されている。更に、(2)は排他的論理和(EOR)関数であり、変数x0、x1、y0、及びy1の排他的論理和を出力する関数が表現されている。
【0013】
BDDは、[1]論理関数をコンパクトに表現することができ、[2]論理関数同士の演算を効率的に行うことができ、[3]論理関数に対してBDD表現が一意に定まる(唯一性:Canonicality)という特徴を有している。
【先行技術文献】
【特許文献】
【0014】
【特許文献1】特開2003−121472号公報
【特許文献1】特公平6−46359号公報
【特許文献1】特開2006−67335号公報
【特許文献1】特表2010−500052号公報
【非特許文献】
【0015】
【非特許文献1】ランダル・イー・ブライアント(Randal E. Bryant)、「グラフベースド・アルゴリズムズ・フォー・ブーリアン・ファンクション・マニピュレーション」(”Graph-Based Algorithms for Boolean Function Manipulation”)、米国、IEEEトランザクション・オン・コンピューターズ(IEEE Transactions on Computers)、1986年、C−35(8)、p.677−691
【発明の概要】
【発明が解決しようとする課題】
【0016】
前述したいずれのパターンマッチングの技術でも、数値軸方向(データ値方向)に行われる波形データの検索を時系列に逐次的に行うようにしている。このような数値軸方向に行うデータの検索は、一般的に柔軟性が乏しく、また、処理効率が著しく低いことが多い。また、参照パターンを幾つも変更しながらパターンマッチングを繰り返し行うような場合には、その繰り返しの度に波形データの読み直しを行う必要があるため、演算の効率の点においても、また、処理の実行に必要なメモリの容量の点においても、処理効率が低い。
【0017】
1つの側面では、本発明は、波形解析装置は、処理効率の高いパターンマッチングを提供することを目的とする。
【課題を解決するための手段】
【0018】
1つの案では波形解析装置は、入力信号の信号波形から、参照波形との類似部分の探索を行うものである。この波形解析装置のひとつに、信号波形取得部と、変換部と、特徴点取得部と、制約条件獲得部と、探索部と、を備えるというものがある。ここで、信号波形取得部は、上記の信号波形を表現しており、当該信号波形をサンプリングして得られる時刻と当該信号波形の当該時刻での値との組からなるデータ組列を取得する。変換部は、上記の信号波形を表現しており時刻と当該時刻での値との組を変数とする論理関数である特性関数を、当該データ組列に基づいて生成して二分決定図での表現に変換して出力する。特徴点取得部は、上記の参照波形上に設定される複数の特徴点についての設定指示を取得する。制約条件獲得部は、この複数の特徴点の各々について、当該特徴点によって特定される時間情報と上記の信号波形において当該時間情報に対応する値との間の関係に対する制約を表している制約条件を獲得する。なお、制約条件獲得部は、この制約条件を、当該特徴点における上記の参照波形の値と当該参照波形の値に対して与えられる所定の許容誤差とに基づき獲得する。探索部は、二分決定図で表現されている上記の特性関数に対して前述の複数の特徴点の各々の制約条件を適用して当該複数の特徴点全ての制約条件を充足する時刻の範囲を求める。そして、探索部は、この時刻の範囲を示す情報を、波形解析装置での探索の結果として出力する。
【発明の効果】
【0019】
1つの態様よれば、波形解析装置は、高い処理効率でのパターンマッチングを行うことができる。
【図面の簡単な説明】
【0020】
【図1】基本的な論理関数をBDDにより表現した図である。
【図2】波形解析装置を備える心電図分析システムの機能ブロック図である。
【図3】心電図分析システムの機能の説明図である。
【図4】波形解析装置の動作の概要の説明図である。
【図5A】特性関数のBDDでの表現への変換の手法の説明図(その1)である。
【図5B】特性関数のBDDでの表現への変換の手法の説明図(その2)である。
【図5C】特性関数のBDDでの表現への変換の手法の説明図(その3)である。
【図6】制約条件の獲得の手法の説明図である。
【図7】特性関数に対する制約条件の適用の手法の説明図である。
【図8】探索部が行う処理をコンピュータで行わせるためのプログラム例である。
【図9】コンピュータのハードウェア構成例である。
【図10】波形解析処理の処理内容を図解したフローチャートである。
【図11】変換処理の処理内容を図解したフローチャートである。
【図12】制約条件獲得処理の処理内容を図解したフローチャートである。
【図13】探索処理の処理内容の第一の例を図解したフローチャートである。
【図14】探索処理の処理内容の第二の例を図解したフローチャートである。
【図15A】図12のフローチャートの変形例である。
【図15B】図13のフローチャートの第一変形例である。
【図16】制約条件をBDDで表現する手法を説明する図である。
【図17】図13のフローチャートの第二変形例である。
【発明を実施するための形態】
【0021】
まず図2、図3、及び図4について説明する。図2は、波形解析装置を備える心電図分析システムの機能ブロック図である。また、図3は、この心電図分析システムの機能の説明図であり、図4は心電図分析システムが備えている波形解析装置の動作の概要の説明図である。
【0022】
心電図分析システム1は、観測された心電図データと予め与えられていた拍動リファレンス波形とのパターンマッチングを行って、当該心電図データから、当該拍動リファレンス波形との類似部分の探索を行うシステムである。図3の例では、心電図データに付した破線の円で囲まれているA、B、及びCの計3つの部分が、拍動リファレンス波形との類似部分として心電図分析システム1により抽出される。
【0023】
図2に図解されているように、心電図分析システム1は、波形解析装置10、心電図センサ20、及びA/D変換器30を備えている。
波形解析装置10は、入力信号の信号波形から、参照波形との類似部分の探索を行う。図4に図解するように、波形解析装置10は、入力信号の信号波形から、参照波形に許容誤差を付加したものに含まれる部分を探索して、その部分の当該信号波形上の位置を特定する時刻の情報を出力する。
【0024】
心電図センサ20は、心筋の活動電位を計測して心電図信号を出力するセンサである。
A/D変換器30は、心電図センサ20から出力される心電図信号をサンプリングして、心電図波形を表現している、時刻と当該時刻における心電図信号の値とのデータの組からなるデータ組列を出力するアナログ−デジタル変換器である。このA/D変換器30から出力されるデータ組列が波形解析装置10に入力される。
【0025】
なお、図2においては、A/D変換器30は波形解析装置10及び心電図センサ20のどちらとも別体のものとして描かれているが、A/D変換器30は波形解析装置10が備えていてもよく、また、心電図センサ20が備えていてもよい。
【0026】
次に、波形解析装置10が備えている機能ブロックについて説明する。
波形解析装置10は、信号波形取得部11、変換部12、特徴点取得部13、制約条件獲得部14、及び探索部15を備えている。更に、波形解析装置10には、参照波形データ16と許容誤差情報17とが予め格納されている。
【0027】
参照波形データ16は、参照波形を表現している波形データであり、図2においては、前述した拍動リファレンス波形の波形データである。
許容誤差情報17は、入力信号の信号波形からの参照波形との類似部分の探索において、両波形が類似しているとの判定結果を下す場合の許容範囲についての情報である。
【0028】
なお、本実施例においては、参照波形データ16及び許容誤差情報17は波形解析装置10に予め格納されているが、波形解析装置10に記憶部を備えて、外部から入力されるこれらのデータを当該記憶部で記憶しておいて使用するようにしてもよい。
【0029】
信号波形取得部11は、信号波形をサンプリングして得られる時刻と当該信号波形の当該時刻での値とのデータの組を有するデータ組列を取得する。図2の構成においては、信号波形取得部11は、A/D変換器30から出力される、心電図波形を表現している前述のデータ組列を取得する。
【0030】
変換部12は、時刻と当該時刻における値とのデータの組を変数とする論理関数である特性関数(Characteristic Function )を、上述のデータ組列に基づいて生成して、前述の二分決定図(BDD)での表現である第二関数に変換して出力する。図2の構成においては、変換部12は、前述の心電図波形を表現しており時刻と当該時刻における値とのデータの組を変数とする特性関数を、信号波形取得部11が取得したデータ組列に基づいて生成してBDDでの表現である第二関数に変換して出力する。
【0031】
特徴点取得部13は、参照波形データ16で表現されている参照波形上に設定される複数の特徴点についての設定指示を取得する。
制約条件獲得部14は、特徴点取得部13が取得した複数の特徴点の各々について、当該特徴点によって特定される時間情報と前述の信号波形において当該時間情報に対応する値との関係に対する制約を表している制約条件を獲得する。制約条件獲得部14は、特徴点における参照波形の値と、当該参照波形の値に対して与えられる所定の許容誤差とに基づき、この制約条件を獲得する。
【0032】
探索部15は、まず、前述の変換された第二関数(BDDで表現されている特性関数)に対し、複数の特徴点の各々について制約条件獲得部14が獲得した制約条件を適用して当該複数の特徴点全ての制約条件を充足する時刻の範囲を求める。そして、探索部15は、当該時刻の範囲を示す情報を、波形解析装置10による探索の結果として出力する。
【0033】
詳細は後述するが、以上のように構成されている波形解析装置10では、入力信号の信号波形をBDDで表現するので、その表現に必要なデータ量が少なくなり、波形解析のために必要なメモリの容量の削減に寄与する。また、入力信号の信号波形と参照波形とのパターンマッチングをBDD上での演算により実行するので、演算の効率が良好である。このように、図2の波形解析装置10によって、処理効率の高いパターンマッチングが提供される。
【0034】
なお、図2の探索部15は、例えば、以下のようにして、前述の複数の特徴点の各々についての制約条件を充足する時刻を求めるようにしてもよい。すなわち、探索部15は、この複数の特徴点の各々について、まず、当該特徴点によって特定される時刻についての、参照波形について予め設定されている基準時刻に対する時刻差に相当する変数置換演算を、前述の第二関数に対して行う。そして、その後に、探索部15は、当該変数置換演算後の特性関数に対して、当該特徴点について獲得されている前述の制約条件を適用して、当該特徴点についての当該制約条件を充足する時刻の範囲を求める。
【0035】
あるいは、図2の探索部15は、例えば、以下のようにして、前述の複数の特徴点の各々についての制約条件を充足する時刻を求めるようにしてもよい。すなわち、探索部15は、前述の複数の特徴点の各々について、まず、当該特徴点について獲得されている制約条件を、前述の第二関数に対して適用する。そして、その後に、探索部15は、当該特徴点によって特定される時刻についての、参照波形について予め設定されている基準時刻に対する時刻差に相当する変数置換演算を、当該制約条件を充足する時刻の範囲に対して行う。
【0036】
このようにして、BDDで表現されている特性関数への制約条件の適用を、時刻差に相当する変数置換演算の前に行うと、当該適用によってBDDのサイズが小さくなるので、その後の変数置換演算の演算量の削減が期待できる。
【0037】
また、図2の変換部12は、特性関数として、例えば以下のような関数を生成する。すなわち、変換部12は、前述のデータの組の各要素をバイナリで表現したときの各桁の値を変数とする関数を生成する。ここで、この関数は、前述のデータ組列に含まれる値が当該変数の値である場合には値「1」を返し、当該データ組列に含まれない値が該変数の値である場合には値「0」を返す関数とする。
【0038】
詳しくは後述するが、このような関数を特性関数として生成すると、当該特性関数をBDDでの表現に変換することができる。
また、図2の制約条件獲得部14は、例えば、制約条件を表現しているBDDを、特徴点における参照波形の値と所定の許容誤差とに基づいて生成するようにしてもよい。このとき、探索部15は、前述の第二関数と制約条件を表現しているBDDとの論理積演算を行うことによって、当該特性関数に対する当該制約条件の適用を行う。
【0039】
このようにして、制約条件をBDDで表現すると、特性関数に対する制約条件の適用をBDDの論理演算で実行することができるので、当該適用のための演算の効率が向上し、結果として、パターンマッチングのための処理効率が更に向上する。
【0040】
なお、このときの制約条件としては、例えば、特徴点によって特定される時刻を中心とした所定の期間内においての信号波形の値の最大値に対する制約を表すものでもよい。また、このときの制約条件としては、例えば、特徴点によって特定される時刻を中心とした所定の期間内においての信号波形の値の最小値に対する制約を表すものでもよい。更には、このときの制約条件としては、例えば、特徴点によって特定される時刻を中心とした所定の期間内においての信号波形の値の平均値に対する制約を表すものでもよい。
【0041】
次に、波形解析装置10が備えている各機能ブロックが提供する幾つかの機能について、更に詳細に説明する。
まず、変換部12による、信号波形取得部11が取得したデータ組列に基づく特性関数の生成の手法、及び、生成した特性関数のBDDでの表現への変換の手法について説明する。
【0042】
まず、変換部12は、時刻tと時刻tにおける値xとの組(t,x)を変数とする特性関数f(t,x)を定義する。この関数f(t,x)は、(t,x)の組が信号波形取得部11から受け取った値の組であるとき、すなわち、入力信号(本実施例では心電図信号)の信号波形上の点を表しているときには値「1」を返し、その他の場合には値「0」を返す関数として定義される。関数f(t,x)をこのように定義することにより、f(t,x)=1を満たす組(t,x)の集合が、入力信号の信号波形を表現していると見ることができる。
【0043】
また、このとき、変換部12は、特性関数f(t,x)の変数である時刻tと値xとをバイナリ(2進数)で表現し、その各桁の値を変数とするブール関数として、この特性関数f(t,x)を生成する。すなわち、変換部12は、下記の[数1]式で表現するように、まず、時刻tをn桁のバイナリで表現してnビットのブール変数とし、値xをm桁のバイナリで表現してmビットのブール変数とするブール関数f(tn-1,tn-2,…,t1,t0,xm-1,xm-2, …,x1,x0)を生成する。
【数1】
【0044】
入力信号の信号波形をこのような特性関数として表現すると、この特性関数をBDDでの表現に変換することができる。この特性関数のBDDでの表現への変換について、図5A、図5B、及び図5Cを用いて説明する。
【0045】
図5Aに例示した信号波形例は、x=tの波形である。この信号波形をサンプリングして、時刻tと値xとの組(t,x)として、(t,x)={(0,0),(1,1),(2,2),(3,3)}の各組が得られたものとする。
【0046】
この組(t,x)は、時刻tと値xとをバイナリ(2進数)で表現すると、(t1,t0,x1,x0)={(0,0,0,0),(0,1,0,1),(1,0,1,0),(1,1,1,1)}となる。特性関数f(t1,t0,x1,x0)は、これらのいずれかが変数である場合にのみ値「1」を返し、その他の場合には値「0」を返す。この特性関数を表現した有向グラフで表したものが図5Bである。
【0047】
なお、有向グラフの構造は、例えば節点データや節点テーブルを用いて表現することができる。節点データは、節点に割り付けた変数(若しくは定数)を識別するラベルの情報と、当該節点が有している「0」枝及び「1」枝の各々が向かう他の節点についての節点データを指すポインタの情報とを備えているデータである。また、節点テーブルは、節点毎に、割り付けられている変数の情報と、当該節点が有している「0」枝及び「1」枝の各々が向かう他の節点を特定する情報とが対応付けられているテーブルである。
【0048】
次に、この図5Bの有向グラフに対して既約化を行う。この既約化では、以下の[1]及び[2]の2つのルールを適用する。
[1]冗長節点の削除
図5Bのグラフにおいて、破線で囲まれているA、B、C、及びDの変数節点は、節点自身が有している「0」枝と「1」枝とのどちらが選択されても、その到達先の節点は同一(ここでは定数「0」の節点)である。既約化によって、このような変数節点(「冗長節点」などと称される。)は削除される。
【0049】
[2]等価な変数節点の共有化
図5Bのグラフにおいて、一点鎖線で囲まれている変数節点Eと変数節点Fとは、「0」枝が選択されたときの到達先の節点が同一(ここでは定数「1」の節点)であり、また、「1」枝が選択されたときの到達先の節点も同一(ここでは定数「0」の節点)である。既約化によって、このような変数節点(「等価な変数節点」などと称される。)E及びFは1つに纏められて共有化される。
【0050】
なお、図5Bのグラフにおいては、二点鎖線で囲まれている変数節点Gと変数節点Hも等価な変数節点であるので、この2つの変数節点G及びHも既約化によって1つの変数節点に纏められる。
【0051】
図5Cのグラフは、上述の2つのルールを適用する既約化を図5Bのグラフに対して行って得られた、特性関数f(t1,t0,x1,x0)のBDDでの表現である。このようにしてBDDで表現された特性関数f(t1,t0,x1,x0)は、その表現がコンパクトであることが分かる。
【0052】
なお、以上の説明では、まず、図5Bに例示したような、特性関数の有向グラフを完成させ、その後に、この有向グラフに対して既約化を行って図5Cに例示したような特性関数のBDD表現を得るという手法を説明した。但し、実用的には、特性関数の有向グラフの作成とその既約化とを並行して行うようにしてもよい。すなわち、前述の例で説明すると、特性関数f(t1,t0,x1,x0)のデータ(t1,t0,x1,x0)を、作成中の有向グラフに1つ追加する度に、そのデータが追加された有向グラフに対して既約化を行うようにしてもよい。このようにすると、特性関数についての有向グラフを表すデータを一時的に保持しておくために必要となる記憶領域の容量が節約される。
【0053】
変換部12は、以上のようにして、信号波形取得部11が取得したデータ組列に基づく特性関数の生成と、生成した特性関数のBDDでの表現(すなわち、前述の第二関数)への変換とを行う。
【0054】
次に、制約条件獲得部14による制約条件の獲得の手法について、図6を用いて説明する。
まず、図2の心電図分析システム1の操作者は、参照波形(すなわち、前述した拍動リファレンス)波形上に、複数の特徴点の設定を行う。この設定においては、例えば、図6の左側の参照波形上に設定されている特徴点P0、P1、P2、及びP3のように、参照波形の形状の特徴を表している、波形の始点、極大点、極小点、終点等が特徴点として選択される。なお、参照波形を表現している参照波形データ16の全てを特徴点としてもよい。
【0055】
特徴点取得部13は、操作者によって以上のようにして参照波形上に設定された複数の特徴点についての設定指示を取得して、制約条件獲得部14に渡す。このときに渡された複数の特徴点を、Pi(i=0、1、…、k−1)とする。
【0056】
制約条件獲得部14は、特徴点Piを受け取ると、Piの各々について、参照波形の開始時刻Tから特徴点Piの時刻までの経過時間aiと、そのPiにおける参照波形の値biとを求める。図6の右側の波形は、左側の参照波形について設定した特徴点P0、P1、P2、及びP3の各々についての、経過時間aiと参照波形の値biとを示したものである。なお、ここでは特徴点P0を参照波形の始点に設定していることから、経過時間a0=0であるので、図6の右側の波形にはa0が示されていない。
【0057】
次に、制約条件獲得部14は、各特徴点Piにおける参照波形の値biに許容誤差情報17を許容することで制約条件Miを獲得する。つまり、許容誤差情報17の値をΔとすると、制約条件獲得部14は、特徴点Piの各々について、参照波形の開始時刻Tからの経過時間がaiであるときのbi±Δの値の範囲を、制約条件Miとして獲得する。
【0058】
次に、探索部15による、BDDで表現されている特性関数(すなわち、前述の第二関数)に対する制約条件の適用の手法について説明する。
探索部15は、特徴点Piの各々について制約条件獲得部14が獲得した制約条件Miを、BDDで表現されている特性関数に対して1つずつ適用し、制約条件Miを全て充足する時刻の範囲を求める。より具体的には、探索部15は、図7に図解した[1]、[2]、及び[3]の各処理をこの手順で行って、探索結果を得る。
【0059】
[1]まず、特徴点Piについて求めた前述の経過時間aiを用いて、BDDで表現されている特性関数f(t,x)を変換して、当該関数における時刻の変数tをt+aiで置換した関数f’(t,x)=f(t+ai,x)を獲得する。なお、このようにして時刻変数を置換した関数f’(t,x)によって表現されている波形は、元の入力信号の信号波形を時間軸方向に−aiだけ移動させたものになる。
【0060】
[2]次に、このf’(t,x)に制約条件Miを適用して、変数xがbi±Δの範囲内の値をとるときの、時刻の変数tのとり得る値の範囲(f’(t,x)=1となる時刻tの集合)を求める。
【0061】
[3]特徴点Piのひとつひとつについて上記[1]及び[2]の処理を行い、それらの処理結果から、制約条件Miを全て満たす時刻の変数tの範囲を求め、得られた時刻tの範囲を、波形解析装置10による探索の結果として出力する。
【0062】
なお、上記の[1]、[2]、及び[3]の各処理をコンピュータで行わせるためのプログラムは、広く公開されている各種の汎用BDDパッケージを利用することで簡単に作成することができる。
【0063】
このようなプログラムの一例として、米国のコロラド大学により公開されているBDDパッケージである、CUDD(Colorado University Decision Diagram Package)を利用してC++作成した、上記の処理についてのプログラムを図8に例示する。このプログラムの説明については、図8に示したプログラム中に、注釈(”//”以降に記載されているコメント)として記載されている。
【0064】
なお、CUDDパッケージは、インターネット上で下記のURLで公開されている。
URL:http://vlsi.colorado.edu/~fabio/CUDD/
波形解析装置10が備えている各機能ブロックは、各機能の提供を以上のようにして行う。
【0065】
なお、図2の波形解析装置10を、標準的な構成のコンピュータを用いて構成することができる。
【0066】
ここで図9について説明する。図9には、波形解析装置10として機能させることのできるコンピュータのハードウェア構成例が図解されている。
【0067】
このコンピュータ40は、MPU41、ROM42、RAM43、ハードディスク装置44、入力装置45、表示装置46、インタフェース装置47、及び記録媒体駆動装置48を備えている。なお、これらの構成要素はバスライン49を介して接続されており、MPU41の管理の下で各種のデータを相互に授受することができる。
【0068】
MPU(Micro Processing Unit)41は、このコンピュータ40全体の動作を制御する演算処理装置である。
ROM(Read Only Memory)42は、所定の基本制御プログラムが予め記録されている読み出し専用半導体メモリである。MPU41は、この基本制御プログラムをコンピュータ50の起動時に読み出して実行することにより、このコンピュータ40の各構成要素の動作制御が可能になる。
【0069】
RAM(Random Access Memory)43は、MPU41が各種の制御プログラムを実行する際に、必要に応じて作業用記憶領域として使用する、随時書き込み読み出し可能な半導体メモリである。
【0070】
ハードディスク装置44は、MPU41によって実行される各種の制御プログラムや各種のデータを記憶しておく記憶装置である。MPU41は、ハードディスク装置44に記憶されている所定の制御プログラムを読み出して実行することにより、各種の制御処理を行えるようになる。
【0071】
入力装置45は、例えばキーボード装置やマウス装置であり、例えば波形解析装置10の操作者により操作されると、その操作内容に対応付けられている操作者からの各種情報の入力を取得し、取得した入力情報をMPU41に送付する。
【0072】
表示装置46は例えば液晶ディスプレイであり、MPU41から送付される表示データに応じて各種のテキストや画像を表示する。
インタフェース装置47は、このコンピュータ40に接続される各種機器との間での各種情報の授受の管理を行う。
【0073】
記録媒体駆動装置48は、可搬型記録媒体50に記録されている各種の制御プログラムやデータの読み出しを行う装置である。MPU41は、可搬型記録媒体50に記録されている所定の制御プログラムを、記録媒体駆動装置48を介して読み出して実行することによって、後述する各種の制御処理を行うようにすることもできる。なお、可搬型記録媒体50としては、例えばCD−ROM(Compact Disc Read Only Memory)やDVD−ROM(Digital Versatile Disc Read Only Memory)、USB(Universal Serial Bus)規格のコネクタが備えられているフラッシュメモリなどがある。
【0074】
このようなコンピュータ40を波形解析装置10として機能させるには、例えば、次に説明する各種の制御処理をMPU41に行わせるための制御プログラムを作成する。作成された制御プログラムはハードディスク装置44若しくは可搬型記録媒体50に予め格納しておく。なお、ハードディスク装置44には、参照波形データ16及び許容誤差情報17を予め記憶させておくようにする。また、コンピュータ40のインタフェース装置47には、A/D変換器30を接続し、心電図センサ20から出力される心電図信号の波形のサンプリングデータ列をコンピュータ40に取り込めるようにしておく。そして、MPU41に所定の指示を与えてこの制御プログラムを読み出させて実行させる。こうすることで、波形解析装置10が備えている各機能ブロックが各々有している機能のコンピュータ40での提供が可能となる。
【0075】
また、端末装置と、当該端末装置との間で各種データの授受を行うことのできるサーバ装置とからなるコンピュータシステムを用いて波形解析装置10を構成してもよい。このコンピュータシステムを波形解析装置10として機能させる場合には、心電図センサ20及びA/D変換器30を端末装置に接続すると共に、サーバ装置には、例えば図9のコンピュータ40の構成を備える。但し、インタフェース装置47には、端末装置が備えている通信装置との間でのデータ通信を管理する通信装置を備える。そして、端末装置は、心電図信号の波形のサンプリングデータ列をサーバ装置に送付する。一方、サーバ装置では、端末装置から受け取ったサンプリングデータ列に基づいて後述する制御処理を行い、この制御処理によって得られる探索結果を端末装置に送付する。このようにすることで、波形解析装置10を上述のコンピュータシステムにより構成することができる。
【0076】
次に、図2の波形解析装置10で行われる各種の制御処理について説明する。
まず図10について説明する。図10は、波形解析処理の処理内容を図解したフローチャートである。この処理は、波形解析装置10の操作者から与えられる所定の実行開始指示が波形解析装置10で検知されると開始される。
【0077】
図10において、まず、S101では、信号波形取得処理を信号波形取得部11が行う。この処理は、入力信号の信号波形を表現しており当該信号波形をサンプリングして得られる時刻と、当該信号波形の当該時刻での値とのデータの組からなるデータ組列を取得する処理である。本実施例では、この処理により、A/D変換器30から出力される、心電図波形を表現している前述のデータ組列が取得される。
【0078】
次に、S102において変換処理を変換部12が行う。この処理は、上述の信号波形を表現しており時刻と当該時刻における値とのデータの組を変数とする特性関数を、上述のデータ組列に基づいて生成してBDDでの表現である第二関数に変換して出力する処理である。この変換処理の詳細は後述する。
【0079】
次に、S103において特徴点取得処理を特徴点取得部13が行う。この処理は、参照波形データ16で表現されている参照波形上に設定される、複数の特徴点についての設定指示を取得する処理である。
【0080】
次に、S104において制約条件獲得処理を制約条件獲得部14が行う。この処理は、S103の特徴点取得処理によって取得された複数の特徴点の各々について、当該特徴点によって特定される時間情報と、前述の信号波形において当該時間情報に対応する値との間の関係に対する制約条件を獲得する処理である。この制約条件獲得処理の詳細についても後述する。
【0081】
次に、S105において探索処理を探索部15が行う。この処理は、BDDで表現されている特性関数(第二関数)に対し、S104の制約条件獲得処理により獲得された制約条件を適用して、前述の複数の特徴点全ての制約条件を充足する時刻の範囲を求める処理である。この探索処理の詳細についても後述する。
【0082】
次に、S106において探索結果出力処理を探索部15が行う。この処理は、S105の探索処理により求められた時刻の範囲を、波形解析装置10による探索の結果として出力する処理である。このS106の処理を終えると図10の波形解析処理が終了する。
以上までの処理が波形解析処理である。
【0083】
次に図11について説明する。図11は、図10のS102の処理である、変換処理の処理内容を図解したフローチャートである。
【0084】
変換部12は、まず、S111において、ブール関数である特性関数を、図10のS101の信号波形取得処理により取得したデータ組列から生成する処理を行う。この処理では、まず、時刻tと時刻tにおける値xとをそれぞれn桁及びm桁のバイナリ(2進数)で表現し、その各桁の値を変数とするブール関数f(tn-1,tn-2,…,t1,t0,xm-1,xm-2, …,x1,x0)を生成する処理が行われる。そして、次に、図10のS101の信号波形取得処理により取得したデータ組列に含まれる時刻tと値xとの組が、生成したブール関数の変数の値であるときには値「1」を返し、その他の場合には値「0」を返すものとするように定義する処理が行われる。この結果、入力信号の信号波形を表現している特性関数が生成される。
【0085】
次に、変換部12は、S112において、S111の処理で生成された特性関数を表現している有向グラフを生成する処理を行う。
次に、変換部12は、S113において、S112の処理で生成された有向グラフに対して前述の既約化を行って、入力信号の信号波形を表現している、BDDで表現された特性関数を獲得する処理を行う。このS113の処理を終えると図11の変換処理が終了し、その後は図10の波形解析処理に処理が戻る。
【0086】
以上までの処理が変換処理である。なお、変換部12によって行われるS111、S112、及びS113の各処理の詳細は、前述した通りである。ここで、変換部12は、S112の有向グラフの生成処理とS113の既約化の処理とを前述のように並行して実行するようにして、特性関数のデータを作成中の有向グラフに1つ追加する度に、データ追加後の有向グラフに対して既約化を行うようにしてもよい。
【0087】
次に図12について説明する。図12は、図10のS104の処理である、制約条件獲得処理の処理内容を図解したフローチャートである。なお、この処理では、処理の前提として、図10のS103の特徴点取得処理において、全部でk個の特徴点Pi(i=0,1,…,k−1)の設定指示を取得していたものとする。
制約条件獲得部14は、まず、S121において、変数iに初期値「0」を代入する処理を行う。
【0088】
次に、制約条件獲得部14は、S122において、参照波形データ16で表現されている参照波形の開示時刻Tから、図10のS103の特徴点取得処理により取得された特徴点Piの時刻tiまでの経過時間を算出して変数aiに代入する処理を行う。
【0089】
次に、制約条件獲得部14は、S123において、図10のS103の特徴点取得処理により取得された特徴点Piにおける参照波形の値を参照波形データ16から取得して変数biに代入する処理を行う。
【0090】
次に、制約条件獲得部14は、S124において、誤差許容情報17を取得し、この情報で示されている許容誤差の値を変数Δに代入する処理を行う。
次に、制約条件獲得部14は、S125において、変数biの現在の値に対して±変数Δの範囲を示す情報を、制約条件を表す変数Miに代入する処理を行う。
【0091】
次に、制約条件獲得部14は、S126において、変数iの現在の値に1を加算して変数iの値を更新する処理を行う。
次に、制約条件獲得部14は、S127において、変数iの現在の値が、図10のS103の特徴点取得処理において取得した特徴点の総数kに達したか否かを判定する処理を行う。ここで、変数iの値が総数kに達したと判定されたとき(判定結果がYesのとき)には、この制約条件獲得処理が終了し、その後は図10の波形解析処理に処理が戻る。一方、変数iの値が総数kに未だ達していないと判定されたとき(判定結果がNoのとき)には、制約条件獲得部14はS122に処理を戻し、S126の処理による値の更新後の変数iについて、前述した処理を実行する。
以上までの処理が制約条件獲得処理である。なお、制約条件獲得部14によって行われるS122からS125にかけての各処理の詳細は、前述した通りである。
【0092】
次に図13について説明する。図13は、図10のS105の処理である、探索処理の処理内容の第一の例を図解したフローチャートである。
探索部15は、まず、S131において、変数iに初期値「0」を代入する処理を行う。
【0093】
次に、S132において、探索部15は、図10のS102の処理により得た、BDDで表現されている特性関数を、特徴点Piについて求めた前述の経過時間aiを用いて変換して、当該関数における時刻の変数tをt+aiで置換した関数を獲得する処理を行う。
【0094】
次に、探索部15は、S133において、S132の処理によって変数tの置換処理を施した特性関数に制約条件Miを適用して、変数xがbi±Δの範囲内の値をとるときの時刻の変数tのとり得る値の範囲を獲得する処理を行う。
【0095】
次に、探索部15は、S134において、変数iの現在の値に1を加算して変数iの値を更新する処理を行う。
次に、探索部15は、S135において、変数iの現在の値が、図10のS103の特徴点取得処理において取得した特徴点の総数kに達したか否かを判定する処理を行う。ここで、変数iの値が総数kに達したと判定されたとき(判定結果がYesのとき)には、探索部15はS136に処理を進める。一方、変数iの値が総数kに未だ達していないと判定されたとき(判定結果がNoのとき)には、探索部15はS132に処理を戻し、S134の処理による値の更新後の変数iについて、前述した処理を実行する。
【0096】
次に、探索部15は、S136において、制約条件Miを全て満たす時刻の変数tの範囲、すなわち、S133の処理を繰り返す度に得た、時刻の変数tのとり得る値の範囲に全て含まれる時刻の範囲を獲得する処理を行う。このS136の処理を終えると図13の探索処理が終了し、その後は図10の波形解析処理に処理が戻る。すると、S136の処理で獲得された時刻の範囲が、波形解析装置10による探索の結果として、S106の探索結果出力処理によって出力される。
以上までの処理が探索処理である。
【0097】
以上のような各種の制御処理が図2の波形解析装置10において行われることによって、入力信号の信号波形からの参照波形との類似部分の探索が波形解析装置10によって可能になる。
【0098】
なお、以上までに説明した波形解析装置10の動作を、これより説明するように、様々に変形してもよい。
例えば、図13に図解した探索処理では、まず、S132の処理により、特徴点によって特定される時刻についての、参照波形について予め設定されている基準時刻に対する時刻差に相当する変数置換演算が、BDDで表現されている特性関数に対して行われる。そして、その後に、S133の処理により、当該変数置換演算後の特性関数に対して、当該特徴点について獲得されている制約条件を適用することで、当該特徴点についての当該制約条件を充足する時刻の獲得が行われる。ここで、この順序を入れ替えてもよい。
【0099】
図14について説明する。図14は、図10のS105の処理である、探索処理の処理内容の第二の例を図解したフローチャートである。
この図14に図解した処理は、図13に図解した処理のうちのS132及びS133の処理を、S141及びS142の処理に置き換えたものである。そこで、ここでは、このS141及びS142の処理についてのみ説明する。
【0100】
S131の処理に続くS141において、探索部15は、図10のS102の処理により得た、BDDで表現されている特性関数に制約条件Miを適用して、変数xがbi±Δの範囲内の値をとるときの、時刻の変数tのとり得る値の範囲を獲得する処理を行う。
【0101】
次に、S142において、探索部15は、S141の処理で獲得された時刻の変数tのとり得る値の範囲を、特徴点Piについて求めた前述の経過時間aiを用いて、t+aiで置換し、置換後のtのとり得る値の範囲を獲得する処理を行う。この処理を終えた後には、探索部15はS134に処理を進める。
【0102】
このように、図14に図解した処理では、探索部15は、複数の特徴点の各々について、まず、当該特徴点について獲得されている制約条件を、BDDで表現されている特性関数に対して適用する。そして、その後に、探索部15は、当該特徴点によって特定される時刻についての、参照波形について予め設定されている基準時刻に対する時刻差に相当する変数置換演算を、当該制約条件を充足する時刻の範囲に対して行う。このようにして、BDDで表現されている特性関数への制約条件の適用を、時刻差に相当する変数置換演算の前に行うと、当該適用によってBDDのサイズ(節点の数)が小さくなるので、その後の変数置換演算の演算量の削減が期待できる。
【0103】
また、例えば、図12に図解した制約条件獲得処理において、制約条件MiをBDDでの表現に変換し、図13に図解した探索処理では、BDDで表現されている制約条件Miを、同じくBDDで表現されている特性関数に適用するようにしてもよい。
【0104】
ここで図15A及び図15Bについて説明する。図15Aは図12のフローチャートの変形例であり、図15Bは図13のフローチャートの第一変形例である。これらは、上述した動作を制約条件獲得部14及び探索部15にそれぞれ行わせるためのものである。
【0105】
まず、図15AのS151の処理は、図12のS125の処理とS126の処理との間に行われる処理である。
制約条件獲得部14は、このS151において、図12のS125の処理により獲得されている制約条件Miを、BDDでの表現に変換する処理を行い、その後は図12のS126に処理を進める。
【0106】
ここで、制約条件をBDDで表現する手法について、図16を用いて説明する。
図16の例は、特徴点Piにおける参照波形の値biが「4」であり、許容誤差Δが「1」であるときの制約条件MiをBDDで表現したものである。この場合、変数xについての制約条件Miはxが「4」±「1」の範囲内であることであり、これはすなわち、xの値が3≦x≦5であることと等価である。
【0107】
ここで、変数xを3桁のバイナリ(x2,x1,x0)で表現すると、この制約条件Miは、(x2,x1,x0)が(0,1,1)、(1,0,0)、(1,0,1)のいずれかの場合にのみ値「1」を返し、その他の場合には値「0」を返す特性関数f(x2,x1,x0)で表現することができる。この特性関数を表現した有向グラフを作成し、作成した有向グラフに対して既約化を行うことで、図16に例示したBDDが得られる。なお、この場合にも、制約条件Miを表現している特性関数の有向グラフの作成とその既約化とを、前述のようにして並行して行うようにしてもよい。
【0108】
一方、図15BのS152の処理は、図13のS133の処理の代わりに行われる処理である。
探索部15は、このS152において、まず、図13のS132の処理によって変数tの置換処理を施した特性関数と、図15AのS151の処理で得られた、BDDで表現されている制約条件Miとの論理積演算処理を行う。そして、次に、この論理積演算で得られた特性関数f’から、時刻の変数tのとり得る値の範囲(f’=1となる時刻tの集合)を獲得する処理を行い、その後は図13のS134に処理を進める。
【0109】
以上のように、図15Aの処理により、制約条件獲得部14は、制約条件を表現しているBDDを、特徴点における参照波形の値と所定の許容誤差とに基づいて生成する。そして、図15Bの処理により、探索部15は、BDDで表現されている特性関数と制約条件を表現しているBDDとの論理積演算を行うことによって、当該特性関数に対する当該制約条件の適用を行う。このようにして、制約条件をBDDで表現すると、特性関数に対する制約条件の適用をBDDの論理演算で実行することができるので、当該適用のための演算の効率が向上し、結果として、パターンマッチングのための処理効率が更に向上する。
【0110】
また、例えば、制約条件獲得部14が獲得する各制約条件Miは、特徴点Piによって特定される時刻tを中心とした所定の期間t±Δt内においての、入力信号の信号波形の値の最大値、最小値、若しくは平均値に対する制約を表すものでもよい。
【0111】
ここで図17について説明する。図17は図13のフローチャートの第二変形例である。この変形例は、制約条件Miが、上述した最大値、最小値、若しくは平均値に対する制約を表している場合に、探索部15に行わせるためのものである。
【0112】
図17のS161の処理は、図13の探索処理の最初に行われる処理である。
このS161では、探索部15は、図10のS102の処理により得た、BDDで表現されている特性関数を、制約条件Miの定義内容に従って変換する処理を行い、その後は図13のS131に処理を進める。
【0113】
なお、このS161の処理において、制約条件Miが、上述した最大値、最小値、若しくは平均値に対する制約を表すものである場合には、BDDで表現されている特性関数f(t,x)を、それぞれ、下記の[数2]式で表現されているf’(t,x)に変換する。
【数2】
【0114】
なお、BDDで表現されている特性関数f(t,x)から[数2]式で表現されているf’(t,x)への変換は、BDDの演算を適用することで容易に実現することができる。
【0115】
なお、以上までに説明した実施形態に関し、更に以下の付記を開示する。
(付記1)
入力信号の信号波形から、参照波形との類似部分の探索を行う波形解析装置であって、
前記信号波形をサンプリングして得られる時刻と該信号波形の該時刻での値との組を有するデータ組列を取得する信号波形取得部と、
時刻と該時刻での値との組を変数とする論理関数である特性関数を、前記データ組列に基づいて生成して二分決定図での表現である第二関数に変換する変換部と、
前記参照波形の複数の特徴点の各々について、該特徴点によって特定される時間情報と前記信号波形において該時間情報に対応する値との間の関係に対する制約を表している制約条件を、該特徴点における前記参照波形の値と該参照波形の値に対して与えられる所定の許容誤差とに基づき獲得する制約条件獲得部と、
変換された前記第二関数に対して前記複数の特徴点の各々の前記制約条件を適用して該複数の特徴点全ての制約条件を充足する時刻の範囲を求め、該時刻の範囲を示す情報を前記探索の結果として出力する探索部と、
を備えることを特徴とする波形解析装置。
(付記2)
前記探索部は、前記複数の特徴点の各々について、まず、該特徴点によって特定される時刻についての、前記参照波形について予め設定されている基準時刻に対する時刻差に相当する変数置換演算を、前記第二関数に対して行ってから、その後に、該変数置換演算後の特性関数に対して、該特徴点について獲得されている前記制約条件を適用することで、該特徴点についての該制約条件を充足する時刻の範囲を求めることを特徴とする付記1に記載の波形解析装置。
(付記3)
前記探索部は、前記複数の特徴点の各々について、まず、該特徴点について獲得されている前記制約条件を前記第二関数に対して適用して該特徴点についての該制約条件を充足する時刻の範囲を求めてから、その後に、該特徴点によって特定される時刻についての、前記参照波形について予め設定されている基準時刻に対する時刻差に相当する変数置換演算を、該制約条件を充足する時刻の範囲に対して行うことを特徴とする付記1に記載の波形解析装置。
(付記4)
前記変換部は、前記特性関数として、前記データの組の各要素をバイナリで表現したときの各桁の値を変数とし、前記データ組列に含まれる値が該変数の値である場合には値「1」を返し、前記データ組列に含まれない値が該変数の値である場合には値「0」を返す関数を生成することを特徴とする付記1から3のうちのいずれか一項に記載の波形解析装置。
(付記5)
前記制約条件獲得部は、前記制約条件を表現している二分決定図を、前記特徴点における前記参照波形の値と前記所定の許容誤差とに基づいて生成し、
前記探索部は、前記第二関数と前記制約条件を表現している二分決定図との論理積演算を行うことによって、該特性関数に対する該制約条件の適用を行う、
ことを特徴とする付記1から4のうちのいずれか一項に記載の波形解析装置。
(付記6)
前記制約条件は、前記特徴点によって特定される時刻を中心とした所定の期間内においての前記信号波形の値の最大値に対する制約を表すものであることを特徴とする付記1から5のうちのいずれか一項に記載の波形解析装置。
(付記7)
前記制約条件は、前記特徴点によって特定される時刻を中心とした所定の期間内においての前記信号波形の値の最小値に対する制約を表すものであることを特徴とする付記1から5のうちのいずれか一項に記載の波形解析装置。
(付記8)
前記制約条件は、前記特徴点によって特定される時刻を中心とした所定の期間内においての前記信号波形の値の平均値に対する制約を表すものであることを特徴とする付記1から5のうちのいずれか一項に記載の波形解析装置。
(付記9)
入力信号の信号波形から、参照波形との類似部分の探索を行う波形解析方法であって、
前記信号波形をサンプリングして得られる時刻と該信号波形の該時刻での値との組を有するデータ組列に基づいて、時刻と該時刻での値との組を変数とする論理関数である特性関数を生成して二分決定図での表現である第二関数に変換し、
前記参照波形の複数の特徴点の各々について、該特徴点によって特定される時間情報と前記信号波形において該時間情報に対応する値との間の関係に対する制約を表している制約条件を、該特徴点における該参照波形の値と該参照波形の値に対して与えられる所定の許容誤差とに基づき獲得し、
変換された前記第二関数に対して前記制約条件を適用して前記複数の特徴点全ての制約条件を充足する時刻の範囲を求め、該時刻の範囲を示す情報を前記探索の結果として獲得する、
ことを特徴とする波形解析方法。
(付記10)
入力信号の信号波形から、参照波形との類似部分を探索する処理をコンピュータに実行させるプログラムであって、
前記信号波形をサンプリングして得られる時刻と該信号波形の該時刻での値との組を有するデータ組列に基づいて、時刻と該時刻での値との組を変数とする論理関数である特性関数を生成して二分決定図での表現である第二関数に変換し、
前記参照波形の複数の特徴点の各々について、該特徴点によって特定される時間情報と前記信号波形において該時間情報に対応する値との間の関係に対する制約を表している制約条件を、該特徴点における該参照波形の値と該参照波形の値に対して与えられる所定の許容誤差とに基づき獲得し、
変換された前記第二関数に対して前記制約条件を適用して前記複数の特徴点全ての制約条件を充足する時刻の範囲を求め、該時刻の範囲を示す情報を前記探索の結果として獲得する、
処理をコンピュータに実行させることを特徴とするプログラム。
【符号の説明】
【0116】
1 心電図分析システム
10 波形解析装置
11 信号波形取得部
12 変換部
13 特徴点取得部
14 制約条件獲得部
15 探索部
16 参照波形データ
17 許容誤差情報
20 心電図センサ
30 A/D変換器
40 コンピュータ
41 MPU
42 ROM
43 RAM
44 ハードディスク装置
45 入力装置
46 表示装置
47 インタフェース装置
48 記録媒体駆動装置
49 バスライン
50 可搬型記録媒体
【技術分野】
【0001】
本発明は、波形の探索技術に関する。
【背景技術】
【0002】
例えば医療やヘルスケアの分野では、血圧センサや心電図センサなどの生体情報を取得する各種のセンサによって、時々刻々と大量の信号データの収集が行われる。この大量の信号データから、必要な情報を、素早く、且つ正確に探し出すことで、身体の異常を迅速に検知することができる。
【0003】
しかしながら、探索目的の情報は、探索対象である信号データの種別によって多岐に亙る。例えば、心電図データからは、心拍数や不整脈の有無を探し出すことが目的となる。更には、目的とする情報の探索を、その探索の条件を様々に変更しながら繰り返し行うことで、より正確な診断を行うことができる。
【0004】
このような技術のひとつにパターンマッチングが知られている。パターンマッチングは、センサから得られた時系列の信号波形から、予め設定されている参照波形(リファレンス波形)と波形形状が類似している部分を探し出して抽出するという技術である。
【0005】
このパターンマッチングに関する技術として、幾つかの技術が知られている。
例えば、その第一の技術として、信号波形のピクセル表示を行う表示器での発光/非発光の論理値と、当該表示器の画面で設定されるリファレンス波形の設定データの論理値との論理演算により、パターンマッチングを行うというものがある。
【0006】
また、例えば、その第二の技術として、音声信号を周波数スペクトラムに変換して得られる音声の特徴パラメータと、登録されている標準音声の特徴パラメータとのマッチングを行うというものがある。
【0007】
また、例えば、その第三の技術として、2つの信号に含まれている音声情報の同一性の判別を、位相ずれや信号遅延があっても行えるようにするために、2つの信号から取り出した周波数情報の比較を行うというものである。
【0008】
ところで、この他の背景技術として、脳波信号に所定のパターンが存在するか否かの決定のアルゴリズムに、二分決定木(Binary Decision Tree)を適用するという技術が提案されている。
【0009】
また、この他の背景技術として、二分決定図(BDD:Binary Decision Diagram )というものが知られている。BDDは、ランダル・イー・ブライアント(Randal E. Bryant)が提唱した、論理関数(ブール関数)を効率的に表現するためのデータ構造である。
【0010】
BDDは、「0」若しくは「1」の定数を表している節点(ノード)、変数が割り付けられた節点(変数節点)、及び、変数節点と他の節点とを結ぶ枝(エッジ)から構成される、閉路を持たない有向グラフである。ここで、各変数節点は「0」の枝と「1」の枝とを有しており、その変数節点に割り付けられている変数の値が「0」であるか「1」であるかによって、下位のレベル(決定木における根の節点からの深さ)の節点が選択される。この選択の繰り返しにより、最後に到達する定数節点が、変数節点に割り付けられている変数に、辿った枝の値を代入したときにおける、そのBDDで表現されている論理関数の値を表している。
【0011】
なお、BDDは、[1]二分決定木であって、[2]変数が順序付けされており(Ordered )、[3]既約化されている(Reduced )ものと定義されている。従って、BDDは、正確にはROBDD(Reduced Ordered BDD )と称されるが、一般的には「BDD」と云えばこのROBDDを指している。
【0012】
図1は、基本的な論理関数をBDDにより表現した図である。ここで、(1)は論理積(AND)関数であり、変数x0、x1、y0、及びy1の論理積を出力する関数が表現されている。また、(2)は論理和(OR)関数であり、変数x0、x1、y0、及びy1の論理和を出力する関数が表現されている。更に、(2)は排他的論理和(EOR)関数であり、変数x0、x1、y0、及びy1の排他的論理和を出力する関数が表現されている。
【0013】
BDDは、[1]論理関数をコンパクトに表現することができ、[2]論理関数同士の演算を効率的に行うことができ、[3]論理関数に対してBDD表現が一意に定まる(唯一性:Canonicality)という特徴を有している。
【先行技術文献】
【特許文献】
【0014】
【特許文献1】特開2003−121472号公報
【特許文献1】特公平6−46359号公報
【特許文献1】特開2006−67335号公報
【特許文献1】特表2010−500052号公報
【非特許文献】
【0015】
【非特許文献1】ランダル・イー・ブライアント(Randal E. Bryant)、「グラフベースド・アルゴリズムズ・フォー・ブーリアン・ファンクション・マニピュレーション」(”Graph-Based Algorithms for Boolean Function Manipulation”)、米国、IEEEトランザクション・オン・コンピューターズ(IEEE Transactions on Computers)、1986年、C−35(8)、p.677−691
【発明の概要】
【発明が解決しようとする課題】
【0016】
前述したいずれのパターンマッチングの技術でも、数値軸方向(データ値方向)に行われる波形データの検索を時系列に逐次的に行うようにしている。このような数値軸方向に行うデータの検索は、一般的に柔軟性が乏しく、また、処理効率が著しく低いことが多い。また、参照パターンを幾つも変更しながらパターンマッチングを繰り返し行うような場合には、その繰り返しの度に波形データの読み直しを行う必要があるため、演算の効率の点においても、また、処理の実行に必要なメモリの容量の点においても、処理効率が低い。
【0017】
1つの側面では、本発明は、波形解析装置は、処理効率の高いパターンマッチングを提供することを目的とする。
【課題を解決するための手段】
【0018】
1つの案では波形解析装置は、入力信号の信号波形から、参照波形との類似部分の探索を行うものである。この波形解析装置のひとつに、信号波形取得部と、変換部と、特徴点取得部と、制約条件獲得部と、探索部と、を備えるというものがある。ここで、信号波形取得部は、上記の信号波形を表現しており、当該信号波形をサンプリングして得られる時刻と当該信号波形の当該時刻での値との組からなるデータ組列を取得する。変換部は、上記の信号波形を表現しており時刻と当該時刻での値との組を変数とする論理関数である特性関数を、当該データ組列に基づいて生成して二分決定図での表現に変換して出力する。特徴点取得部は、上記の参照波形上に設定される複数の特徴点についての設定指示を取得する。制約条件獲得部は、この複数の特徴点の各々について、当該特徴点によって特定される時間情報と上記の信号波形において当該時間情報に対応する値との間の関係に対する制約を表している制約条件を獲得する。なお、制約条件獲得部は、この制約条件を、当該特徴点における上記の参照波形の値と当該参照波形の値に対して与えられる所定の許容誤差とに基づき獲得する。探索部は、二分決定図で表現されている上記の特性関数に対して前述の複数の特徴点の各々の制約条件を適用して当該複数の特徴点全ての制約条件を充足する時刻の範囲を求める。そして、探索部は、この時刻の範囲を示す情報を、波形解析装置での探索の結果として出力する。
【発明の効果】
【0019】
1つの態様よれば、波形解析装置は、高い処理効率でのパターンマッチングを行うことができる。
【図面の簡単な説明】
【0020】
【図1】基本的な論理関数をBDDにより表現した図である。
【図2】波形解析装置を備える心電図分析システムの機能ブロック図である。
【図3】心電図分析システムの機能の説明図である。
【図4】波形解析装置の動作の概要の説明図である。
【図5A】特性関数のBDDでの表現への変換の手法の説明図(その1)である。
【図5B】特性関数のBDDでの表現への変換の手法の説明図(その2)である。
【図5C】特性関数のBDDでの表現への変換の手法の説明図(その3)である。
【図6】制約条件の獲得の手法の説明図である。
【図7】特性関数に対する制約条件の適用の手法の説明図である。
【図8】探索部が行う処理をコンピュータで行わせるためのプログラム例である。
【図9】コンピュータのハードウェア構成例である。
【図10】波形解析処理の処理内容を図解したフローチャートである。
【図11】変換処理の処理内容を図解したフローチャートである。
【図12】制約条件獲得処理の処理内容を図解したフローチャートである。
【図13】探索処理の処理内容の第一の例を図解したフローチャートである。
【図14】探索処理の処理内容の第二の例を図解したフローチャートである。
【図15A】図12のフローチャートの変形例である。
【図15B】図13のフローチャートの第一変形例である。
【図16】制約条件をBDDで表現する手法を説明する図である。
【図17】図13のフローチャートの第二変形例である。
【発明を実施するための形態】
【0021】
まず図2、図3、及び図4について説明する。図2は、波形解析装置を備える心電図分析システムの機能ブロック図である。また、図3は、この心電図分析システムの機能の説明図であり、図4は心電図分析システムが備えている波形解析装置の動作の概要の説明図である。
【0022】
心電図分析システム1は、観測された心電図データと予め与えられていた拍動リファレンス波形とのパターンマッチングを行って、当該心電図データから、当該拍動リファレンス波形との類似部分の探索を行うシステムである。図3の例では、心電図データに付した破線の円で囲まれているA、B、及びCの計3つの部分が、拍動リファレンス波形との類似部分として心電図分析システム1により抽出される。
【0023】
図2に図解されているように、心電図分析システム1は、波形解析装置10、心電図センサ20、及びA/D変換器30を備えている。
波形解析装置10は、入力信号の信号波形から、参照波形との類似部分の探索を行う。図4に図解するように、波形解析装置10は、入力信号の信号波形から、参照波形に許容誤差を付加したものに含まれる部分を探索して、その部分の当該信号波形上の位置を特定する時刻の情報を出力する。
【0024】
心電図センサ20は、心筋の活動電位を計測して心電図信号を出力するセンサである。
A/D変換器30は、心電図センサ20から出力される心電図信号をサンプリングして、心電図波形を表現している、時刻と当該時刻における心電図信号の値とのデータの組からなるデータ組列を出力するアナログ−デジタル変換器である。このA/D変換器30から出力されるデータ組列が波形解析装置10に入力される。
【0025】
なお、図2においては、A/D変換器30は波形解析装置10及び心電図センサ20のどちらとも別体のものとして描かれているが、A/D変換器30は波形解析装置10が備えていてもよく、また、心電図センサ20が備えていてもよい。
【0026】
次に、波形解析装置10が備えている機能ブロックについて説明する。
波形解析装置10は、信号波形取得部11、変換部12、特徴点取得部13、制約条件獲得部14、及び探索部15を備えている。更に、波形解析装置10には、参照波形データ16と許容誤差情報17とが予め格納されている。
【0027】
参照波形データ16は、参照波形を表現している波形データであり、図2においては、前述した拍動リファレンス波形の波形データである。
許容誤差情報17は、入力信号の信号波形からの参照波形との類似部分の探索において、両波形が類似しているとの判定結果を下す場合の許容範囲についての情報である。
【0028】
なお、本実施例においては、参照波形データ16及び許容誤差情報17は波形解析装置10に予め格納されているが、波形解析装置10に記憶部を備えて、外部から入力されるこれらのデータを当該記憶部で記憶しておいて使用するようにしてもよい。
【0029】
信号波形取得部11は、信号波形をサンプリングして得られる時刻と当該信号波形の当該時刻での値とのデータの組を有するデータ組列を取得する。図2の構成においては、信号波形取得部11は、A/D変換器30から出力される、心電図波形を表現している前述のデータ組列を取得する。
【0030】
変換部12は、時刻と当該時刻における値とのデータの組を変数とする論理関数である特性関数(Characteristic Function )を、上述のデータ組列に基づいて生成して、前述の二分決定図(BDD)での表現である第二関数に変換して出力する。図2の構成においては、変換部12は、前述の心電図波形を表現しており時刻と当該時刻における値とのデータの組を変数とする特性関数を、信号波形取得部11が取得したデータ組列に基づいて生成してBDDでの表現である第二関数に変換して出力する。
【0031】
特徴点取得部13は、参照波形データ16で表現されている参照波形上に設定される複数の特徴点についての設定指示を取得する。
制約条件獲得部14は、特徴点取得部13が取得した複数の特徴点の各々について、当該特徴点によって特定される時間情報と前述の信号波形において当該時間情報に対応する値との関係に対する制約を表している制約条件を獲得する。制約条件獲得部14は、特徴点における参照波形の値と、当該参照波形の値に対して与えられる所定の許容誤差とに基づき、この制約条件を獲得する。
【0032】
探索部15は、まず、前述の変換された第二関数(BDDで表現されている特性関数)に対し、複数の特徴点の各々について制約条件獲得部14が獲得した制約条件を適用して当該複数の特徴点全ての制約条件を充足する時刻の範囲を求める。そして、探索部15は、当該時刻の範囲を示す情報を、波形解析装置10による探索の結果として出力する。
【0033】
詳細は後述するが、以上のように構成されている波形解析装置10では、入力信号の信号波形をBDDで表現するので、その表現に必要なデータ量が少なくなり、波形解析のために必要なメモリの容量の削減に寄与する。また、入力信号の信号波形と参照波形とのパターンマッチングをBDD上での演算により実行するので、演算の効率が良好である。このように、図2の波形解析装置10によって、処理効率の高いパターンマッチングが提供される。
【0034】
なお、図2の探索部15は、例えば、以下のようにして、前述の複数の特徴点の各々についての制約条件を充足する時刻を求めるようにしてもよい。すなわち、探索部15は、この複数の特徴点の各々について、まず、当該特徴点によって特定される時刻についての、参照波形について予め設定されている基準時刻に対する時刻差に相当する変数置換演算を、前述の第二関数に対して行う。そして、その後に、探索部15は、当該変数置換演算後の特性関数に対して、当該特徴点について獲得されている前述の制約条件を適用して、当該特徴点についての当該制約条件を充足する時刻の範囲を求める。
【0035】
あるいは、図2の探索部15は、例えば、以下のようにして、前述の複数の特徴点の各々についての制約条件を充足する時刻を求めるようにしてもよい。すなわち、探索部15は、前述の複数の特徴点の各々について、まず、当該特徴点について獲得されている制約条件を、前述の第二関数に対して適用する。そして、その後に、探索部15は、当該特徴点によって特定される時刻についての、参照波形について予め設定されている基準時刻に対する時刻差に相当する変数置換演算を、当該制約条件を充足する時刻の範囲に対して行う。
【0036】
このようにして、BDDで表現されている特性関数への制約条件の適用を、時刻差に相当する変数置換演算の前に行うと、当該適用によってBDDのサイズが小さくなるので、その後の変数置換演算の演算量の削減が期待できる。
【0037】
また、図2の変換部12は、特性関数として、例えば以下のような関数を生成する。すなわち、変換部12は、前述のデータの組の各要素をバイナリで表現したときの各桁の値を変数とする関数を生成する。ここで、この関数は、前述のデータ組列に含まれる値が当該変数の値である場合には値「1」を返し、当該データ組列に含まれない値が該変数の値である場合には値「0」を返す関数とする。
【0038】
詳しくは後述するが、このような関数を特性関数として生成すると、当該特性関数をBDDでの表現に変換することができる。
また、図2の制約条件獲得部14は、例えば、制約条件を表現しているBDDを、特徴点における参照波形の値と所定の許容誤差とに基づいて生成するようにしてもよい。このとき、探索部15は、前述の第二関数と制約条件を表現しているBDDとの論理積演算を行うことによって、当該特性関数に対する当該制約条件の適用を行う。
【0039】
このようにして、制約条件をBDDで表現すると、特性関数に対する制約条件の適用をBDDの論理演算で実行することができるので、当該適用のための演算の効率が向上し、結果として、パターンマッチングのための処理効率が更に向上する。
【0040】
なお、このときの制約条件としては、例えば、特徴点によって特定される時刻を中心とした所定の期間内においての信号波形の値の最大値に対する制約を表すものでもよい。また、このときの制約条件としては、例えば、特徴点によって特定される時刻を中心とした所定の期間内においての信号波形の値の最小値に対する制約を表すものでもよい。更には、このときの制約条件としては、例えば、特徴点によって特定される時刻を中心とした所定の期間内においての信号波形の値の平均値に対する制約を表すものでもよい。
【0041】
次に、波形解析装置10が備えている各機能ブロックが提供する幾つかの機能について、更に詳細に説明する。
まず、変換部12による、信号波形取得部11が取得したデータ組列に基づく特性関数の生成の手法、及び、生成した特性関数のBDDでの表現への変換の手法について説明する。
【0042】
まず、変換部12は、時刻tと時刻tにおける値xとの組(t,x)を変数とする特性関数f(t,x)を定義する。この関数f(t,x)は、(t,x)の組が信号波形取得部11から受け取った値の組であるとき、すなわち、入力信号(本実施例では心電図信号)の信号波形上の点を表しているときには値「1」を返し、その他の場合には値「0」を返す関数として定義される。関数f(t,x)をこのように定義することにより、f(t,x)=1を満たす組(t,x)の集合が、入力信号の信号波形を表現していると見ることができる。
【0043】
また、このとき、変換部12は、特性関数f(t,x)の変数である時刻tと値xとをバイナリ(2進数)で表現し、その各桁の値を変数とするブール関数として、この特性関数f(t,x)を生成する。すなわち、変換部12は、下記の[数1]式で表現するように、まず、時刻tをn桁のバイナリで表現してnビットのブール変数とし、値xをm桁のバイナリで表現してmビットのブール変数とするブール関数f(tn-1,tn-2,…,t1,t0,xm-1,xm-2, …,x1,x0)を生成する。
【数1】
【0044】
入力信号の信号波形をこのような特性関数として表現すると、この特性関数をBDDでの表現に変換することができる。この特性関数のBDDでの表現への変換について、図5A、図5B、及び図5Cを用いて説明する。
【0045】
図5Aに例示した信号波形例は、x=tの波形である。この信号波形をサンプリングして、時刻tと値xとの組(t,x)として、(t,x)={(0,0),(1,1),(2,2),(3,3)}の各組が得られたものとする。
【0046】
この組(t,x)は、時刻tと値xとをバイナリ(2進数)で表現すると、(t1,t0,x1,x0)={(0,0,0,0),(0,1,0,1),(1,0,1,0),(1,1,1,1)}となる。特性関数f(t1,t0,x1,x0)は、これらのいずれかが変数である場合にのみ値「1」を返し、その他の場合には値「0」を返す。この特性関数を表現した有向グラフで表したものが図5Bである。
【0047】
なお、有向グラフの構造は、例えば節点データや節点テーブルを用いて表現することができる。節点データは、節点に割り付けた変数(若しくは定数)を識別するラベルの情報と、当該節点が有している「0」枝及び「1」枝の各々が向かう他の節点についての節点データを指すポインタの情報とを備えているデータである。また、節点テーブルは、節点毎に、割り付けられている変数の情報と、当該節点が有している「0」枝及び「1」枝の各々が向かう他の節点を特定する情報とが対応付けられているテーブルである。
【0048】
次に、この図5Bの有向グラフに対して既約化を行う。この既約化では、以下の[1]及び[2]の2つのルールを適用する。
[1]冗長節点の削除
図5Bのグラフにおいて、破線で囲まれているA、B、C、及びDの変数節点は、節点自身が有している「0」枝と「1」枝とのどちらが選択されても、その到達先の節点は同一(ここでは定数「0」の節点)である。既約化によって、このような変数節点(「冗長節点」などと称される。)は削除される。
【0049】
[2]等価な変数節点の共有化
図5Bのグラフにおいて、一点鎖線で囲まれている変数節点Eと変数節点Fとは、「0」枝が選択されたときの到達先の節点が同一(ここでは定数「1」の節点)であり、また、「1」枝が選択されたときの到達先の節点も同一(ここでは定数「0」の節点)である。既約化によって、このような変数節点(「等価な変数節点」などと称される。)E及びFは1つに纏められて共有化される。
【0050】
なお、図5Bのグラフにおいては、二点鎖線で囲まれている変数節点Gと変数節点Hも等価な変数節点であるので、この2つの変数節点G及びHも既約化によって1つの変数節点に纏められる。
【0051】
図5Cのグラフは、上述の2つのルールを適用する既約化を図5Bのグラフに対して行って得られた、特性関数f(t1,t0,x1,x0)のBDDでの表現である。このようにしてBDDで表現された特性関数f(t1,t0,x1,x0)は、その表現がコンパクトであることが分かる。
【0052】
なお、以上の説明では、まず、図5Bに例示したような、特性関数の有向グラフを完成させ、その後に、この有向グラフに対して既約化を行って図5Cに例示したような特性関数のBDD表現を得るという手法を説明した。但し、実用的には、特性関数の有向グラフの作成とその既約化とを並行して行うようにしてもよい。すなわち、前述の例で説明すると、特性関数f(t1,t0,x1,x0)のデータ(t1,t0,x1,x0)を、作成中の有向グラフに1つ追加する度に、そのデータが追加された有向グラフに対して既約化を行うようにしてもよい。このようにすると、特性関数についての有向グラフを表すデータを一時的に保持しておくために必要となる記憶領域の容量が節約される。
【0053】
変換部12は、以上のようにして、信号波形取得部11が取得したデータ組列に基づく特性関数の生成と、生成した特性関数のBDDでの表現(すなわち、前述の第二関数)への変換とを行う。
【0054】
次に、制約条件獲得部14による制約条件の獲得の手法について、図6を用いて説明する。
まず、図2の心電図分析システム1の操作者は、参照波形(すなわち、前述した拍動リファレンス)波形上に、複数の特徴点の設定を行う。この設定においては、例えば、図6の左側の参照波形上に設定されている特徴点P0、P1、P2、及びP3のように、参照波形の形状の特徴を表している、波形の始点、極大点、極小点、終点等が特徴点として選択される。なお、参照波形を表現している参照波形データ16の全てを特徴点としてもよい。
【0055】
特徴点取得部13は、操作者によって以上のようにして参照波形上に設定された複数の特徴点についての設定指示を取得して、制約条件獲得部14に渡す。このときに渡された複数の特徴点を、Pi(i=0、1、…、k−1)とする。
【0056】
制約条件獲得部14は、特徴点Piを受け取ると、Piの各々について、参照波形の開始時刻Tから特徴点Piの時刻までの経過時間aiと、そのPiにおける参照波形の値biとを求める。図6の右側の波形は、左側の参照波形について設定した特徴点P0、P1、P2、及びP3の各々についての、経過時間aiと参照波形の値biとを示したものである。なお、ここでは特徴点P0を参照波形の始点に設定していることから、経過時間a0=0であるので、図6の右側の波形にはa0が示されていない。
【0057】
次に、制約条件獲得部14は、各特徴点Piにおける参照波形の値biに許容誤差情報17を許容することで制約条件Miを獲得する。つまり、許容誤差情報17の値をΔとすると、制約条件獲得部14は、特徴点Piの各々について、参照波形の開始時刻Tからの経過時間がaiであるときのbi±Δの値の範囲を、制約条件Miとして獲得する。
【0058】
次に、探索部15による、BDDで表現されている特性関数(すなわち、前述の第二関数)に対する制約条件の適用の手法について説明する。
探索部15は、特徴点Piの各々について制約条件獲得部14が獲得した制約条件Miを、BDDで表現されている特性関数に対して1つずつ適用し、制約条件Miを全て充足する時刻の範囲を求める。より具体的には、探索部15は、図7に図解した[1]、[2]、及び[3]の各処理をこの手順で行って、探索結果を得る。
【0059】
[1]まず、特徴点Piについて求めた前述の経過時間aiを用いて、BDDで表現されている特性関数f(t,x)を変換して、当該関数における時刻の変数tをt+aiで置換した関数f’(t,x)=f(t+ai,x)を獲得する。なお、このようにして時刻変数を置換した関数f’(t,x)によって表現されている波形は、元の入力信号の信号波形を時間軸方向に−aiだけ移動させたものになる。
【0060】
[2]次に、このf’(t,x)に制約条件Miを適用して、変数xがbi±Δの範囲内の値をとるときの、時刻の変数tのとり得る値の範囲(f’(t,x)=1となる時刻tの集合)を求める。
【0061】
[3]特徴点Piのひとつひとつについて上記[1]及び[2]の処理を行い、それらの処理結果から、制約条件Miを全て満たす時刻の変数tの範囲を求め、得られた時刻tの範囲を、波形解析装置10による探索の結果として出力する。
【0062】
なお、上記の[1]、[2]、及び[3]の各処理をコンピュータで行わせるためのプログラムは、広く公開されている各種の汎用BDDパッケージを利用することで簡単に作成することができる。
【0063】
このようなプログラムの一例として、米国のコロラド大学により公開されているBDDパッケージである、CUDD(Colorado University Decision Diagram Package)を利用してC++作成した、上記の処理についてのプログラムを図8に例示する。このプログラムの説明については、図8に示したプログラム中に、注釈(”//”以降に記載されているコメント)として記載されている。
【0064】
なお、CUDDパッケージは、インターネット上で下記のURLで公開されている。
URL:http://vlsi.colorado.edu/~fabio/CUDD/
波形解析装置10が備えている各機能ブロックは、各機能の提供を以上のようにして行う。
【0065】
なお、図2の波形解析装置10を、標準的な構成のコンピュータを用いて構成することができる。
【0066】
ここで図9について説明する。図9には、波形解析装置10として機能させることのできるコンピュータのハードウェア構成例が図解されている。
【0067】
このコンピュータ40は、MPU41、ROM42、RAM43、ハードディスク装置44、入力装置45、表示装置46、インタフェース装置47、及び記録媒体駆動装置48を備えている。なお、これらの構成要素はバスライン49を介して接続されており、MPU41の管理の下で各種のデータを相互に授受することができる。
【0068】
MPU(Micro Processing Unit)41は、このコンピュータ40全体の動作を制御する演算処理装置である。
ROM(Read Only Memory)42は、所定の基本制御プログラムが予め記録されている読み出し専用半導体メモリである。MPU41は、この基本制御プログラムをコンピュータ50の起動時に読み出して実行することにより、このコンピュータ40の各構成要素の動作制御が可能になる。
【0069】
RAM(Random Access Memory)43は、MPU41が各種の制御プログラムを実行する際に、必要に応じて作業用記憶領域として使用する、随時書き込み読み出し可能な半導体メモリである。
【0070】
ハードディスク装置44は、MPU41によって実行される各種の制御プログラムや各種のデータを記憶しておく記憶装置である。MPU41は、ハードディスク装置44に記憶されている所定の制御プログラムを読み出して実行することにより、各種の制御処理を行えるようになる。
【0071】
入力装置45は、例えばキーボード装置やマウス装置であり、例えば波形解析装置10の操作者により操作されると、その操作内容に対応付けられている操作者からの各種情報の入力を取得し、取得した入力情報をMPU41に送付する。
【0072】
表示装置46は例えば液晶ディスプレイであり、MPU41から送付される表示データに応じて各種のテキストや画像を表示する。
インタフェース装置47は、このコンピュータ40に接続される各種機器との間での各種情報の授受の管理を行う。
【0073】
記録媒体駆動装置48は、可搬型記録媒体50に記録されている各種の制御プログラムやデータの読み出しを行う装置である。MPU41は、可搬型記録媒体50に記録されている所定の制御プログラムを、記録媒体駆動装置48を介して読み出して実行することによって、後述する各種の制御処理を行うようにすることもできる。なお、可搬型記録媒体50としては、例えばCD−ROM(Compact Disc Read Only Memory)やDVD−ROM(Digital Versatile Disc Read Only Memory)、USB(Universal Serial Bus)規格のコネクタが備えられているフラッシュメモリなどがある。
【0074】
このようなコンピュータ40を波形解析装置10として機能させるには、例えば、次に説明する各種の制御処理をMPU41に行わせるための制御プログラムを作成する。作成された制御プログラムはハードディスク装置44若しくは可搬型記録媒体50に予め格納しておく。なお、ハードディスク装置44には、参照波形データ16及び許容誤差情報17を予め記憶させておくようにする。また、コンピュータ40のインタフェース装置47には、A/D変換器30を接続し、心電図センサ20から出力される心電図信号の波形のサンプリングデータ列をコンピュータ40に取り込めるようにしておく。そして、MPU41に所定の指示を与えてこの制御プログラムを読み出させて実行させる。こうすることで、波形解析装置10が備えている各機能ブロックが各々有している機能のコンピュータ40での提供が可能となる。
【0075】
また、端末装置と、当該端末装置との間で各種データの授受を行うことのできるサーバ装置とからなるコンピュータシステムを用いて波形解析装置10を構成してもよい。このコンピュータシステムを波形解析装置10として機能させる場合には、心電図センサ20及びA/D変換器30を端末装置に接続すると共に、サーバ装置には、例えば図9のコンピュータ40の構成を備える。但し、インタフェース装置47には、端末装置が備えている通信装置との間でのデータ通信を管理する通信装置を備える。そして、端末装置は、心電図信号の波形のサンプリングデータ列をサーバ装置に送付する。一方、サーバ装置では、端末装置から受け取ったサンプリングデータ列に基づいて後述する制御処理を行い、この制御処理によって得られる探索結果を端末装置に送付する。このようにすることで、波形解析装置10を上述のコンピュータシステムにより構成することができる。
【0076】
次に、図2の波形解析装置10で行われる各種の制御処理について説明する。
まず図10について説明する。図10は、波形解析処理の処理内容を図解したフローチャートである。この処理は、波形解析装置10の操作者から与えられる所定の実行開始指示が波形解析装置10で検知されると開始される。
【0077】
図10において、まず、S101では、信号波形取得処理を信号波形取得部11が行う。この処理は、入力信号の信号波形を表現しており当該信号波形をサンプリングして得られる時刻と、当該信号波形の当該時刻での値とのデータの組からなるデータ組列を取得する処理である。本実施例では、この処理により、A/D変換器30から出力される、心電図波形を表現している前述のデータ組列が取得される。
【0078】
次に、S102において変換処理を変換部12が行う。この処理は、上述の信号波形を表現しており時刻と当該時刻における値とのデータの組を変数とする特性関数を、上述のデータ組列に基づいて生成してBDDでの表現である第二関数に変換して出力する処理である。この変換処理の詳細は後述する。
【0079】
次に、S103において特徴点取得処理を特徴点取得部13が行う。この処理は、参照波形データ16で表現されている参照波形上に設定される、複数の特徴点についての設定指示を取得する処理である。
【0080】
次に、S104において制約条件獲得処理を制約条件獲得部14が行う。この処理は、S103の特徴点取得処理によって取得された複数の特徴点の各々について、当該特徴点によって特定される時間情報と、前述の信号波形において当該時間情報に対応する値との間の関係に対する制約条件を獲得する処理である。この制約条件獲得処理の詳細についても後述する。
【0081】
次に、S105において探索処理を探索部15が行う。この処理は、BDDで表現されている特性関数(第二関数)に対し、S104の制約条件獲得処理により獲得された制約条件を適用して、前述の複数の特徴点全ての制約条件を充足する時刻の範囲を求める処理である。この探索処理の詳細についても後述する。
【0082】
次に、S106において探索結果出力処理を探索部15が行う。この処理は、S105の探索処理により求められた時刻の範囲を、波形解析装置10による探索の結果として出力する処理である。このS106の処理を終えると図10の波形解析処理が終了する。
以上までの処理が波形解析処理である。
【0083】
次に図11について説明する。図11は、図10のS102の処理である、変換処理の処理内容を図解したフローチャートである。
【0084】
変換部12は、まず、S111において、ブール関数である特性関数を、図10のS101の信号波形取得処理により取得したデータ組列から生成する処理を行う。この処理では、まず、時刻tと時刻tにおける値xとをそれぞれn桁及びm桁のバイナリ(2進数)で表現し、その各桁の値を変数とするブール関数f(tn-1,tn-2,…,t1,t0,xm-1,xm-2, …,x1,x0)を生成する処理が行われる。そして、次に、図10のS101の信号波形取得処理により取得したデータ組列に含まれる時刻tと値xとの組が、生成したブール関数の変数の値であるときには値「1」を返し、その他の場合には値「0」を返すものとするように定義する処理が行われる。この結果、入力信号の信号波形を表現している特性関数が生成される。
【0085】
次に、変換部12は、S112において、S111の処理で生成された特性関数を表現している有向グラフを生成する処理を行う。
次に、変換部12は、S113において、S112の処理で生成された有向グラフに対して前述の既約化を行って、入力信号の信号波形を表現している、BDDで表現された特性関数を獲得する処理を行う。このS113の処理を終えると図11の変換処理が終了し、その後は図10の波形解析処理に処理が戻る。
【0086】
以上までの処理が変換処理である。なお、変換部12によって行われるS111、S112、及びS113の各処理の詳細は、前述した通りである。ここで、変換部12は、S112の有向グラフの生成処理とS113の既約化の処理とを前述のように並行して実行するようにして、特性関数のデータを作成中の有向グラフに1つ追加する度に、データ追加後の有向グラフに対して既約化を行うようにしてもよい。
【0087】
次に図12について説明する。図12は、図10のS104の処理である、制約条件獲得処理の処理内容を図解したフローチャートである。なお、この処理では、処理の前提として、図10のS103の特徴点取得処理において、全部でk個の特徴点Pi(i=0,1,…,k−1)の設定指示を取得していたものとする。
制約条件獲得部14は、まず、S121において、変数iに初期値「0」を代入する処理を行う。
【0088】
次に、制約条件獲得部14は、S122において、参照波形データ16で表現されている参照波形の開示時刻Tから、図10のS103の特徴点取得処理により取得された特徴点Piの時刻tiまでの経過時間を算出して変数aiに代入する処理を行う。
【0089】
次に、制約条件獲得部14は、S123において、図10のS103の特徴点取得処理により取得された特徴点Piにおける参照波形の値を参照波形データ16から取得して変数biに代入する処理を行う。
【0090】
次に、制約条件獲得部14は、S124において、誤差許容情報17を取得し、この情報で示されている許容誤差の値を変数Δに代入する処理を行う。
次に、制約条件獲得部14は、S125において、変数biの現在の値に対して±変数Δの範囲を示す情報を、制約条件を表す変数Miに代入する処理を行う。
【0091】
次に、制約条件獲得部14は、S126において、変数iの現在の値に1を加算して変数iの値を更新する処理を行う。
次に、制約条件獲得部14は、S127において、変数iの現在の値が、図10のS103の特徴点取得処理において取得した特徴点の総数kに達したか否かを判定する処理を行う。ここで、変数iの値が総数kに達したと判定されたとき(判定結果がYesのとき)には、この制約条件獲得処理が終了し、その後は図10の波形解析処理に処理が戻る。一方、変数iの値が総数kに未だ達していないと判定されたとき(判定結果がNoのとき)には、制約条件獲得部14はS122に処理を戻し、S126の処理による値の更新後の変数iについて、前述した処理を実行する。
以上までの処理が制約条件獲得処理である。なお、制約条件獲得部14によって行われるS122からS125にかけての各処理の詳細は、前述した通りである。
【0092】
次に図13について説明する。図13は、図10のS105の処理である、探索処理の処理内容の第一の例を図解したフローチャートである。
探索部15は、まず、S131において、変数iに初期値「0」を代入する処理を行う。
【0093】
次に、S132において、探索部15は、図10のS102の処理により得た、BDDで表現されている特性関数を、特徴点Piについて求めた前述の経過時間aiを用いて変換して、当該関数における時刻の変数tをt+aiで置換した関数を獲得する処理を行う。
【0094】
次に、探索部15は、S133において、S132の処理によって変数tの置換処理を施した特性関数に制約条件Miを適用して、変数xがbi±Δの範囲内の値をとるときの時刻の変数tのとり得る値の範囲を獲得する処理を行う。
【0095】
次に、探索部15は、S134において、変数iの現在の値に1を加算して変数iの値を更新する処理を行う。
次に、探索部15は、S135において、変数iの現在の値が、図10のS103の特徴点取得処理において取得した特徴点の総数kに達したか否かを判定する処理を行う。ここで、変数iの値が総数kに達したと判定されたとき(判定結果がYesのとき)には、探索部15はS136に処理を進める。一方、変数iの値が総数kに未だ達していないと判定されたとき(判定結果がNoのとき)には、探索部15はS132に処理を戻し、S134の処理による値の更新後の変数iについて、前述した処理を実行する。
【0096】
次に、探索部15は、S136において、制約条件Miを全て満たす時刻の変数tの範囲、すなわち、S133の処理を繰り返す度に得た、時刻の変数tのとり得る値の範囲に全て含まれる時刻の範囲を獲得する処理を行う。このS136の処理を終えると図13の探索処理が終了し、その後は図10の波形解析処理に処理が戻る。すると、S136の処理で獲得された時刻の範囲が、波形解析装置10による探索の結果として、S106の探索結果出力処理によって出力される。
以上までの処理が探索処理である。
【0097】
以上のような各種の制御処理が図2の波形解析装置10において行われることによって、入力信号の信号波形からの参照波形との類似部分の探索が波形解析装置10によって可能になる。
【0098】
なお、以上までに説明した波形解析装置10の動作を、これより説明するように、様々に変形してもよい。
例えば、図13に図解した探索処理では、まず、S132の処理により、特徴点によって特定される時刻についての、参照波形について予め設定されている基準時刻に対する時刻差に相当する変数置換演算が、BDDで表現されている特性関数に対して行われる。そして、その後に、S133の処理により、当該変数置換演算後の特性関数に対して、当該特徴点について獲得されている制約条件を適用することで、当該特徴点についての当該制約条件を充足する時刻の獲得が行われる。ここで、この順序を入れ替えてもよい。
【0099】
図14について説明する。図14は、図10のS105の処理である、探索処理の処理内容の第二の例を図解したフローチャートである。
この図14に図解した処理は、図13に図解した処理のうちのS132及びS133の処理を、S141及びS142の処理に置き換えたものである。そこで、ここでは、このS141及びS142の処理についてのみ説明する。
【0100】
S131の処理に続くS141において、探索部15は、図10のS102の処理により得た、BDDで表現されている特性関数に制約条件Miを適用して、変数xがbi±Δの範囲内の値をとるときの、時刻の変数tのとり得る値の範囲を獲得する処理を行う。
【0101】
次に、S142において、探索部15は、S141の処理で獲得された時刻の変数tのとり得る値の範囲を、特徴点Piについて求めた前述の経過時間aiを用いて、t+aiで置換し、置換後のtのとり得る値の範囲を獲得する処理を行う。この処理を終えた後には、探索部15はS134に処理を進める。
【0102】
このように、図14に図解した処理では、探索部15は、複数の特徴点の各々について、まず、当該特徴点について獲得されている制約条件を、BDDで表現されている特性関数に対して適用する。そして、その後に、探索部15は、当該特徴点によって特定される時刻についての、参照波形について予め設定されている基準時刻に対する時刻差に相当する変数置換演算を、当該制約条件を充足する時刻の範囲に対して行う。このようにして、BDDで表現されている特性関数への制約条件の適用を、時刻差に相当する変数置換演算の前に行うと、当該適用によってBDDのサイズ(節点の数)が小さくなるので、その後の変数置換演算の演算量の削減が期待できる。
【0103】
また、例えば、図12に図解した制約条件獲得処理において、制約条件MiをBDDでの表現に変換し、図13に図解した探索処理では、BDDで表現されている制約条件Miを、同じくBDDで表現されている特性関数に適用するようにしてもよい。
【0104】
ここで図15A及び図15Bについて説明する。図15Aは図12のフローチャートの変形例であり、図15Bは図13のフローチャートの第一変形例である。これらは、上述した動作を制約条件獲得部14及び探索部15にそれぞれ行わせるためのものである。
【0105】
まず、図15AのS151の処理は、図12のS125の処理とS126の処理との間に行われる処理である。
制約条件獲得部14は、このS151において、図12のS125の処理により獲得されている制約条件Miを、BDDでの表現に変換する処理を行い、その後は図12のS126に処理を進める。
【0106】
ここで、制約条件をBDDで表現する手法について、図16を用いて説明する。
図16の例は、特徴点Piにおける参照波形の値biが「4」であり、許容誤差Δが「1」であるときの制約条件MiをBDDで表現したものである。この場合、変数xについての制約条件Miはxが「4」±「1」の範囲内であることであり、これはすなわち、xの値が3≦x≦5であることと等価である。
【0107】
ここで、変数xを3桁のバイナリ(x2,x1,x0)で表現すると、この制約条件Miは、(x2,x1,x0)が(0,1,1)、(1,0,0)、(1,0,1)のいずれかの場合にのみ値「1」を返し、その他の場合には値「0」を返す特性関数f(x2,x1,x0)で表現することができる。この特性関数を表現した有向グラフを作成し、作成した有向グラフに対して既約化を行うことで、図16に例示したBDDが得られる。なお、この場合にも、制約条件Miを表現している特性関数の有向グラフの作成とその既約化とを、前述のようにして並行して行うようにしてもよい。
【0108】
一方、図15BのS152の処理は、図13のS133の処理の代わりに行われる処理である。
探索部15は、このS152において、まず、図13のS132の処理によって変数tの置換処理を施した特性関数と、図15AのS151の処理で得られた、BDDで表現されている制約条件Miとの論理積演算処理を行う。そして、次に、この論理積演算で得られた特性関数f’から、時刻の変数tのとり得る値の範囲(f’=1となる時刻tの集合)を獲得する処理を行い、その後は図13のS134に処理を進める。
【0109】
以上のように、図15Aの処理により、制約条件獲得部14は、制約条件を表現しているBDDを、特徴点における参照波形の値と所定の許容誤差とに基づいて生成する。そして、図15Bの処理により、探索部15は、BDDで表現されている特性関数と制約条件を表現しているBDDとの論理積演算を行うことによって、当該特性関数に対する当該制約条件の適用を行う。このようにして、制約条件をBDDで表現すると、特性関数に対する制約条件の適用をBDDの論理演算で実行することができるので、当該適用のための演算の効率が向上し、結果として、パターンマッチングのための処理効率が更に向上する。
【0110】
また、例えば、制約条件獲得部14が獲得する各制約条件Miは、特徴点Piによって特定される時刻tを中心とした所定の期間t±Δt内においての、入力信号の信号波形の値の最大値、最小値、若しくは平均値に対する制約を表すものでもよい。
【0111】
ここで図17について説明する。図17は図13のフローチャートの第二変形例である。この変形例は、制約条件Miが、上述した最大値、最小値、若しくは平均値に対する制約を表している場合に、探索部15に行わせるためのものである。
【0112】
図17のS161の処理は、図13の探索処理の最初に行われる処理である。
このS161では、探索部15は、図10のS102の処理により得た、BDDで表現されている特性関数を、制約条件Miの定義内容に従って変換する処理を行い、その後は図13のS131に処理を進める。
【0113】
なお、このS161の処理において、制約条件Miが、上述した最大値、最小値、若しくは平均値に対する制約を表すものである場合には、BDDで表現されている特性関数f(t,x)を、それぞれ、下記の[数2]式で表現されているf’(t,x)に変換する。
【数2】
【0114】
なお、BDDで表現されている特性関数f(t,x)から[数2]式で表現されているf’(t,x)への変換は、BDDの演算を適用することで容易に実現することができる。
【0115】
なお、以上までに説明した実施形態に関し、更に以下の付記を開示する。
(付記1)
入力信号の信号波形から、参照波形との類似部分の探索を行う波形解析装置であって、
前記信号波形をサンプリングして得られる時刻と該信号波形の該時刻での値との組を有するデータ組列を取得する信号波形取得部と、
時刻と該時刻での値との組を変数とする論理関数である特性関数を、前記データ組列に基づいて生成して二分決定図での表現である第二関数に変換する変換部と、
前記参照波形の複数の特徴点の各々について、該特徴点によって特定される時間情報と前記信号波形において該時間情報に対応する値との間の関係に対する制約を表している制約条件を、該特徴点における前記参照波形の値と該参照波形の値に対して与えられる所定の許容誤差とに基づき獲得する制約条件獲得部と、
変換された前記第二関数に対して前記複数の特徴点の各々の前記制約条件を適用して該複数の特徴点全ての制約条件を充足する時刻の範囲を求め、該時刻の範囲を示す情報を前記探索の結果として出力する探索部と、
を備えることを特徴とする波形解析装置。
(付記2)
前記探索部は、前記複数の特徴点の各々について、まず、該特徴点によって特定される時刻についての、前記参照波形について予め設定されている基準時刻に対する時刻差に相当する変数置換演算を、前記第二関数に対して行ってから、その後に、該変数置換演算後の特性関数に対して、該特徴点について獲得されている前記制約条件を適用することで、該特徴点についての該制約条件を充足する時刻の範囲を求めることを特徴とする付記1に記載の波形解析装置。
(付記3)
前記探索部は、前記複数の特徴点の各々について、まず、該特徴点について獲得されている前記制約条件を前記第二関数に対して適用して該特徴点についての該制約条件を充足する時刻の範囲を求めてから、その後に、該特徴点によって特定される時刻についての、前記参照波形について予め設定されている基準時刻に対する時刻差に相当する変数置換演算を、該制約条件を充足する時刻の範囲に対して行うことを特徴とする付記1に記載の波形解析装置。
(付記4)
前記変換部は、前記特性関数として、前記データの組の各要素をバイナリで表現したときの各桁の値を変数とし、前記データ組列に含まれる値が該変数の値である場合には値「1」を返し、前記データ組列に含まれない値が該変数の値である場合には値「0」を返す関数を生成することを特徴とする付記1から3のうちのいずれか一項に記載の波形解析装置。
(付記5)
前記制約条件獲得部は、前記制約条件を表現している二分決定図を、前記特徴点における前記参照波形の値と前記所定の許容誤差とに基づいて生成し、
前記探索部は、前記第二関数と前記制約条件を表現している二分決定図との論理積演算を行うことによって、該特性関数に対する該制約条件の適用を行う、
ことを特徴とする付記1から4のうちのいずれか一項に記載の波形解析装置。
(付記6)
前記制約条件は、前記特徴点によって特定される時刻を中心とした所定の期間内においての前記信号波形の値の最大値に対する制約を表すものであることを特徴とする付記1から5のうちのいずれか一項に記載の波形解析装置。
(付記7)
前記制約条件は、前記特徴点によって特定される時刻を中心とした所定の期間内においての前記信号波形の値の最小値に対する制約を表すものであることを特徴とする付記1から5のうちのいずれか一項に記載の波形解析装置。
(付記8)
前記制約条件は、前記特徴点によって特定される時刻を中心とした所定の期間内においての前記信号波形の値の平均値に対する制約を表すものであることを特徴とする付記1から5のうちのいずれか一項に記載の波形解析装置。
(付記9)
入力信号の信号波形から、参照波形との類似部分の探索を行う波形解析方法であって、
前記信号波形をサンプリングして得られる時刻と該信号波形の該時刻での値との組を有するデータ組列に基づいて、時刻と該時刻での値との組を変数とする論理関数である特性関数を生成して二分決定図での表現である第二関数に変換し、
前記参照波形の複数の特徴点の各々について、該特徴点によって特定される時間情報と前記信号波形において該時間情報に対応する値との間の関係に対する制約を表している制約条件を、該特徴点における該参照波形の値と該参照波形の値に対して与えられる所定の許容誤差とに基づき獲得し、
変換された前記第二関数に対して前記制約条件を適用して前記複数の特徴点全ての制約条件を充足する時刻の範囲を求め、該時刻の範囲を示す情報を前記探索の結果として獲得する、
ことを特徴とする波形解析方法。
(付記10)
入力信号の信号波形から、参照波形との類似部分を探索する処理をコンピュータに実行させるプログラムであって、
前記信号波形をサンプリングして得られる時刻と該信号波形の該時刻での値との組を有するデータ組列に基づいて、時刻と該時刻での値との組を変数とする論理関数である特性関数を生成して二分決定図での表現である第二関数に変換し、
前記参照波形の複数の特徴点の各々について、該特徴点によって特定される時間情報と前記信号波形において該時間情報に対応する値との間の関係に対する制約を表している制約条件を、該特徴点における該参照波形の値と該参照波形の値に対して与えられる所定の許容誤差とに基づき獲得し、
変換された前記第二関数に対して前記制約条件を適用して前記複数の特徴点全ての制約条件を充足する時刻の範囲を求め、該時刻の範囲を示す情報を前記探索の結果として獲得する、
処理をコンピュータに実行させることを特徴とするプログラム。
【符号の説明】
【0116】
1 心電図分析システム
10 波形解析装置
11 信号波形取得部
12 変換部
13 特徴点取得部
14 制約条件獲得部
15 探索部
16 参照波形データ
17 許容誤差情報
20 心電図センサ
30 A/D変換器
40 コンピュータ
41 MPU
42 ROM
43 RAM
44 ハードディスク装置
45 入力装置
46 表示装置
47 インタフェース装置
48 記録媒体駆動装置
49 バスライン
50 可搬型記録媒体
【特許請求の範囲】
【請求項1】
入力信号の信号波形から、参照波形との類似部分の探索を行う波形解析装置であって、
前記信号波形をサンプリングして得られる時刻と該信号波形の該時刻での値との組とを有するデータ組列を取得する信号波形取得部と、
時刻と該時刻での値との組を変数とする論理関数である特性関数を、前記データ組列に基づいて生成して二分決定図での表現である第二関数に変換する変換部と、
前記参照波形の複数の特徴点の各々について、該特徴点によって特定される時間情報と前記信号波形において該時間情報に対応する値との間の関係に対する制約を表している制約条件を、該特徴点における前記参照波形の値と該参照波形の値に対して与えられる所定の許容誤差とに基づき獲得する制約条件獲得部と、
前記第二関数に対して前記複数の特徴点の各々の前記制約条件を適用して該複数の特徴点全ての制約条件を充足する時刻の範囲を求め、該時刻の範囲を示す情報を前記探索の結果として出力する探索部と、
を備えることを特徴とする波形解析装置。
【請求項2】
前記探索部は、前記複数の特徴点の各々について、まず、該特徴点によって特定される時刻についての、前記参照波形について予め設定されている基準時刻に対する時刻差に相当する変数置換演算を、前記第二関数に対して行ってから、その後に、該変数置換演算後の特性関数に対して、該特徴点について獲得されている前記制約条件を適用することで、該特徴点についての該制約条件を充足する時刻の範囲を求めることを特徴とする請求項1に記載の波形解析装置。
【請求項3】
前記探索部は、前記複数の特徴点の各々について、まず、該特徴点について獲得されている前記制約条件を前記第二関数に対して適用して該特徴点についての該制約条件を充足する時刻の範囲を求めてから、その後に、該特徴点によって特定される時刻についての、前記参照波形について予め設定されている基準時刻に対する時刻差に相当する変数置換演算を、該制約条件を充足する時刻の範囲に対して行うことを特徴とする請求項1に記載の波形解析装置。
【請求項4】
前記変換部は、前記特性関数として、前記データの組の各要素をバイナリで表現したときの各桁の値を変数とし、前記データ組列に含まれる値が該変数の値である場合には値「1」を返し、前記データ組列に含まれない値が該変数の値である場合には値「0」を返す関数を生成することを特徴とする請求項1から3のうちのいずれか一項に記載の波形解析装置。
【請求項5】
前記制約条件獲得部は、前記制約条件を表現している二分決定図を、前記特徴点における前記参照波形の値と前記所定の許容誤差とに基づいて生成し、
前記探索部は、前記第二関数と前記制約条件を表現している二分決定図との論理積演算を行うことによって、該特性関数に対する該制約条件の適用を行う、
ことを特徴とする請求項1から4のうちのいずれか一項に記載の波形解析装置。
【請求項6】
入力信号の信号波形から、参照波形との類似部分の探索を行う波形解析方法であって、
前記信号波形をサンプリングして得られる時刻と該信号波形の該時刻での値との組を有するデータ組列に基づいて、時刻と該時刻での値との組を変数とする論理関数である特性関数を生成して二分決定図での表現である第二関数に変換し、
前記参照波形の複数の特徴点の各々について、該特徴点によって特定される時間情報と前記信号波形において該時間情報に対応する値との間の関係に対する制約を表している制約条件を、該特徴点における該参照波形の値と該参照波形の値に対して与えられる所定の許容誤差とに基づき獲得し、
変換された前記第二関数に対して前記制約条件を適用して前記複数の特徴点全ての制約条件を充足する時刻の範囲を求め、該時刻の範囲を示す情報を前記探索の結果として獲得する、
ことを特徴とする波形解析方法。
【請求項7】
入力信号の信号波形から、参照波形との類似部分を探索する処理をコンピュータに実行させるプログラムであって、
前記信号波形をサンプリングして得られる時刻と該信号波形の該時刻での値との組を有するデータ組列に基づいて、時刻と該時刻での値との組を変数とする論理関数である特性関数を生成して二分決定図での表現である第二関数に変換し、
前記参照波形の複数の特徴点の各々について、該特徴点によって特定される時間情報と前記信号波形において該時間情報に対応する値との間の関係に対する制約を表している制約条件を、該特徴点における該参照波形の値と該参照波形の値に対して与えられる所定の許容誤差とに基づき獲得し、
変換された前記第二関数に対して前記制約条件を適用して前記複数の特徴点全ての制約条件を充足する時刻の範囲を求め、該時刻の範囲を示す情報を前記探索の結果として獲得する、
処理をコンピュータに実行させることを特徴とするプログラム。
【請求項1】
入力信号の信号波形から、参照波形との類似部分の探索を行う波形解析装置であって、
前記信号波形をサンプリングして得られる時刻と該信号波形の該時刻での値との組とを有するデータ組列を取得する信号波形取得部と、
時刻と該時刻での値との組を変数とする論理関数である特性関数を、前記データ組列に基づいて生成して二分決定図での表現である第二関数に変換する変換部と、
前記参照波形の複数の特徴点の各々について、該特徴点によって特定される時間情報と前記信号波形において該時間情報に対応する値との間の関係に対する制約を表している制約条件を、該特徴点における前記参照波形の値と該参照波形の値に対して与えられる所定の許容誤差とに基づき獲得する制約条件獲得部と、
前記第二関数に対して前記複数の特徴点の各々の前記制約条件を適用して該複数の特徴点全ての制約条件を充足する時刻の範囲を求め、該時刻の範囲を示す情報を前記探索の結果として出力する探索部と、
を備えることを特徴とする波形解析装置。
【請求項2】
前記探索部は、前記複数の特徴点の各々について、まず、該特徴点によって特定される時刻についての、前記参照波形について予め設定されている基準時刻に対する時刻差に相当する変数置換演算を、前記第二関数に対して行ってから、その後に、該変数置換演算後の特性関数に対して、該特徴点について獲得されている前記制約条件を適用することで、該特徴点についての該制約条件を充足する時刻の範囲を求めることを特徴とする請求項1に記載の波形解析装置。
【請求項3】
前記探索部は、前記複数の特徴点の各々について、まず、該特徴点について獲得されている前記制約条件を前記第二関数に対して適用して該特徴点についての該制約条件を充足する時刻の範囲を求めてから、その後に、該特徴点によって特定される時刻についての、前記参照波形について予め設定されている基準時刻に対する時刻差に相当する変数置換演算を、該制約条件を充足する時刻の範囲に対して行うことを特徴とする請求項1に記載の波形解析装置。
【請求項4】
前記変換部は、前記特性関数として、前記データの組の各要素をバイナリで表現したときの各桁の値を変数とし、前記データ組列に含まれる値が該変数の値である場合には値「1」を返し、前記データ組列に含まれない値が該変数の値である場合には値「0」を返す関数を生成することを特徴とする請求項1から3のうちのいずれか一項に記載の波形解析装置。
【請求項5】
前記制約条件獲得部は、前記制約条件を表現している二分決定図を、前記特徴点における前記参照波形の値と前記所定の許容誤差とに基づいて生成し、
前記探索部は、前記第二関数と前記制約条件を表現している二分決定図との論理積演算を行うことによって、該特性関数に対する該制約条件の適用を行う、
ことを特徴とする請求項1から4のうちのいずれか一項に記載の波形解析装置。
【請求項6】
入力信号の信号波形から、参照波形との類似部分の探索を行う波形解析方法であって、
前記信号波形をサンプリングして得られる時刻と該信号波形の該時刻での値との組を有するデータ組列に基づいて、時刻と該時刻での値との組を変数とする論理関数である特性関数を生成して二分決定図での表現である第二関数に変換し、
前記参照波形の複数の特徴点の各々について、該特徴点によって特定される時間情報と前記信号波形において該時間情報に対応する値との間の関係に対する制約を表している制約条件を、該特徴点における該参照波形の値と該参照波形の値に対して与えられる所定の許容誤差とに基づき獲得し、
変換された前記第二関数に対して前記制約条件を適用して前記複数の特徴点全ての制約条件を充足する時刻の範囲を求め、該時刻の範囲を示す情報を前記探索の結果として獲得する、
ことを特徴とする波形解析方法。
【請求項7】
入力信号の信号波形から、参照波形との類似部分を探索する処理をコンピュータに実行させるプログラムであって、
前記信号波形をサンプリングして得られる時刻と該信号波形の該時刻での値との組を有するデータ組列に基づいて、時刻と該時刻での値との組を変数とする論理関数である特性関数を生成して二分決定図での表現である第二関数に変換し、
前記参照波形の複数の特徴点の各々について、該特徴点によって特定される時間情報と前記信号波形において該時間情報に対応する値との間の関係に対する制約を表している制約条件を、該特徴点における該参照波形の値と該参照波形の値に対して与えられる所定の許容誤差とに基づき獲得し、
変換された前記第二関数に対して前記制約条件を適用して前記複数の特徴点全ての制約条件を充足する時刻の範囲を求め、該時刻の範囲を示す情報を前記探索の結果として獲得する、
処理をコンピュータに実行させることを特徴とするプログラム。
【図1】
【図2】
【図5A】
【図5B】
【図5C】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15A】
【図15B】
【図16】
【図17】
【図3】
【図4】
【図6】
【図7】
【図8】
【図2】
【図5A】
【図5B】
【図5C】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15A】
【図15B】
【図16】
【図17】
【図3】
【図4】
【図6】
【図7】
【図8】
【公開番号】特開2012−196250(P2012−196250A)
【公開日】平成24年10月18日(2012.10.18)
【国際特許分類】
【出願番号】特願2011−60790(P2011−60790)
【出願日】平成23年3月18日(2011.3.18)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
【公開日】平成24年10月18日(2012.10.18)
【国際特許分類】
【出願日】平成23年3月18日(2011.3.18)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
[ Back to top ]