以下、本実施形態について説明する。まず、本実施形態の手法の概要を説明し、次にシステム構成例について説明する。そして、フローチャート等を用いて第1の実施形態及び第2の実施形態について説明する。そして最後に、第1の実施形態及び第2の実施形態の他の適用例について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
1.概要
従来、脈拍計等の拍動検出装置を含む電子機器が広く用いられている。拍動検出装置とは、人体の心拍に由来する拍動を検出するための装置であって、例えば、腕、手のひら、手指などに装着される脈波センサーからの信号に基づいて、心拍に由来する信号を検出する装置である。実際に、心拍に由来する信号に関する情報(拍動情報)をユーザーへ提示する際には、例えば拍動情報として脈拍数などを算出し、これを提示する。
脈拍数などの拍動情報を求めるに当たっては、第1に、できる限り最近の脈波検出信号に対応する拍動情報を算出すること、第2に、より正確な拍動情報を算出すること、という2点が主な課題となっている。
このような課題に対して、前述した特許文献1において示される手法では、所定期間の脈波検出信号に対してFFT(高速フーリエ変換:Fast Fourier Transform)処理を行い、最大の周波数成分を脈拍スペクトルと判定し、その周波数を脈拍数へと換算している。
しかし、このようなアプローチにより脈拍数を計測する場合には、次のような問題がある。まず、脈拍数をより正確に求めるためには、周波数分解処理の分解能を上げれば良いが、周波数分解処理の分解能を上げるためには、1回の脈拍数算出処理(拍動情報演算処理)に用いる脈波検出信号の検出期間を長くする必要がある。
一方で、脈波検出信号の検出期間を長くした場合には、要求されるリアルタイム性を満たさない場合が出てくる。
ここで、リアルタイム性とは、応答時間の最悪値が保証されること、すなわち、要求される応答時間内に応答が返ってくることを言う。リアルタイム性は、応答が早いことや、遅いことを指す概念ではない。なお、要求される応答時間はシステム毎に異なる。したがって、例えば、あるシステムに求められる応答時間(応答期間)が32日であれば、あるシステムが丸1か月かけて応答を返したとしても、そのシステムはリアルタイム性を満たしていると言える。
また、リアルタイム性は、システムによって求められる厳密さが異なり、リアルタイム性の中には、少しの遅れも許容しないハードリアルタイム性もあれば、多少の遅れは問題としないソフトリアルタイム性もある。例えば、ハードウェアを動作させるファームウェアが行う処理等に対してはμ秒単位の遅延も許さないハードリアルタイム性が求められることが多く、一方で天気予報等に対しては数分程度の遅延があっても許容されるソフトリアルタイム性が求められている。これらの分類は、応答遅延の許容度を表すものでさり、応答時間の速さとは無関係である。
そして、拍動検出装置に対して求められるリアルタイム性は、前述したソフトリアルタイム性ではあるが、求められる応答時間は数秒単位であり、拍動検出装置は、できる限り今現在に近いタイミングに対応する脈拍数等を検出できることが望ましい。
また、前述したように、脈拍数等を求めるに当たっては、所定期間の脈波検出信号に対して周波数分解処理を行う。この周波数分解処理では、脈波検出信号に対して、後述する図3に示すようなハニング窓等を用いて窓関数処理を行った後、FFT処理を行う。一般的に広く用いられているハニング窓等の窓関数は、入力信号の期間の中間(中点)において、窓関数値が最大となる。そのため、周波数分解処理の結果として描かれるスペクトル分布は、入力信号の期間の1/2の時間分過去の期待値を示す分布になる。そのため、そのスペクトル分布を元に算出される脈拍数も、入力信号の期間の1/2時間分過去の期待値として算出される。例えば、脈波検出信号の検出期間が4秒である場合には、期待値として2秒前の脈拍数が算出され、脈波検出信号の検出期間が16秒である場合には、期待値として8秒前の脈拍数が算出される。
このように、周波数分解処理へ入力する脈波検出信号の検出期間を長くすると分解能は向上するが、より過去の時点の期待値的スペクトル分布を求めていることになってしまい、前述したリアルタイム性は低下する。このようにリアルタイム性が低下する原因は、ハードウェアの処理能力の不足等にあるのではなく、前述した周波数分解処理のアルゴリズム(手法)にある。
そこで、本出願人は、以下で詳細に説明する新たな窓関数を提案する。本出願人が提案する窓関数を用いた信号解析装置等は、従来手法と同等の分解能を維持しながらリアルタイム性の改善された周波数分解処理を行うことができる。
2.システム構成例
次に、後述する第1の実施形態及び第2の実施形態の信号解析装置(拍動検出装置)100及びこれを含む電子機器の構成例を図1に示す。
信号解析装置(拍動検出装置)100は、信号取得部110と、信号処理部130と、信号状態判定部150と、を含む。また、信号解析装置(拍動検出装置)100を含む電子機器の例としては、検出部200や、表示部70などを含む携帯端末などが挙げられる。なお、信号解析装置(拍動検出装置)100及びこれを含む電子機器は、図1の構成に限定されず、これらの一部の構成要素を省略したり、他の構成要素を追加したりするなどの種々の変形実施が可能である。
また、ここでは第1の実施形態及び第2の実施形態の動作をより具体的に記載するために、信号解析装置100が拍動検出装置100として用いられる場合について例示しているが、本発明及び本発明の範囲は、拍動検出装置100に限定されるものではなく、信号解析装置100を後述するように他の用途に用いることも可能である。
次に各部で行われる処理について説明する。ここでは、先に検出部200の説明を行い、信号解析装置(拍動検出装置)100へ入力される信号等の説明を行ってから、信号解析装置100の各部の説明を行う。
まず、検出部200は、脈波検出部210と、体動検出部220と、を含む。なお、検出部200は、図1の構成に限定されず、これらの一部の構成要素を省略したり、他の構成要素を追加したりするなどの種々の変形実施が可能である。
脈波検出部210は、脈波センサー211から得られるセンサー情報(脈波センサー信号)に基づいて脈波検出信号を出力する。脈波検出部210は、例えば脈波センサー211と、フィルター処理部215と、A/D変換部216を含むことができる。ただし、脈波検出部210は図1の構成に限定されず、これらの一部の構成要素を省略したり、他の構成要素(例えば信号を増幅する増幅部等)を追加するなどの種々の変形実施が可能である。
脈波センサー211は、脈波センサー信号を検出するためのセンサーであり、例えば光電センサー等が考えられる。なお、脈波センサー211として光電センサーを用いる場合には、太陽光等の外光の信号成分をカットするように構成されているセンサーを用いてもよい。これは例えば、フォトダイオードを複数設け、それらの信号を用いてフィードバック処理等で差分情報を求める構成等により実現できる。
なお、脈波センサー211は光電センサーに限定されず、超音波を用いたセンサーであってもよい。この場合、脈波センサー211は2つの圧電素子を有し、一方の圧電素子を励振させて生体内に超音波を送信するとともに、当該超音波が生体の血流によって反射されたものを他方の圧電素子により受信する。送信した超音波と受信した超音波には、血流のドップラー効果によって周波数変化が生じるため、この場合にも血流量に対応する信号を取得することができ、拍動情報の推定が可能である。また、脈波センサー211として他のセンサーを用いてもよい。
フィルター処理部215は、脈波センサー211からの脈波センサー信号に対してハイパスフィルター処理を行う。なお、ハイパスフィルターのカットオフ周波数は典型的な脈拍数から求められてもよい。例えば、通常の人の脈拍数は、毎分30回を下回るケースは非常に少ない。つまり、心拍に由来する信号の周波数は0.5Hz以下になることは稀であるから、この範囲の周波数帯の情報をカットしたとしても、取得したい信号に対する悪影響は小さいはずである。よって、カットオフ周波数としては0.5Hz程度を設定してもよい。また、状況によっては1Hz等の異なるカットオフ周波数を設定してもよい。さらに言えば、人の脈拍数には典型的な上限値を想定することも可能であるから、フィルター処理部215ではハイパスフィルター処理ではなくバンドパスフィルター処理を行ってもよい。高周波側のカットオフ周波数もある程度自由に設定可能であるが、例えば4Hz等の値を用いればよい。
A/D変換部216では、A/D変換処理を行い、デジタル信号を出力する。なお、上述のフィルター処理部215での処理は、A/D変換処理の前に行われるアナログフィルター処理であってもよいし、A/D変換処理の後に行われるデジタルフィルター処理であってもよい。
体動検出部220は、種々のセンサーのセンサー情報(体動センサー信号)に基づいて体動に応じた信号(体動検出信号)を出力する。体動検出部220は、例えば体動センサー221と、フィルター処理部225と、A/D変換部226を含むことができる。ただし、体動検出部220はその他のセンサー(例えばジャイロセンサー)や、信号を増幅する増幅部等を含んでもよい。
体動センサーとしては、モーションセンサー(加速度センサー)や、圧力センサー(接触圧センサー)等を用いる。また、体動センサーとして、複数種類のセンサーを設けても良いし、1種類のセンサーを含む構成であってもよい。
モーションセンサーは、例えば加速度センサーである。加速度センサーは、例えば外力によって抵抗値が増減する素子等で構成され、三軸の加速度情報を検知する。
圧力センサーは、例えば接触圧センサーである。接触圧センサーは、被検体と直接接触して、接触圧を測定するものであってもよく、カフ構造などにより間接的に接触圧を測定するものであってもよい。すなわち、圧電素子を用いたものであってもよいし、気圧センサー等であってもよい。
フィルター処理部225は、体動センサー信号に対して種々のフィルター処理を行う。例えば、フィルター処理部225は、ハイパスフィルター処理を行ったり、バンドパスフィルター処理等を行ったりする。ただし、必ずしもフィルター処理を行わなければならない訳ではない。フィルター処理部225を含まなくても良い。
A/D変換部226が行う処理は、A/D変換部216とほぼ同様なので説明を省略する。
ここで一度、用語の解説を行う。まず、脈動とは、抹消血管が膨らんだり縮んだりする動きのことをいう。また、脈波とは、身体組織への血液の流入によって生じる容積変化を信号として捉えたものである。例えば、脈波は、脈波センサーからLEDを体表面へ照射し、その散乱光・反射光などをフォトダイオードで取り込んで信号波形として捉えたものである。脈波は、心臓の動きそのものではなく血管運動反応を捉えたものであり、心臓の動き以外のノイズ的要因、例えば、人間の運動、動作などによって生じる血管の容積変化等をも含んでいる。心臓の動きそのものや、脈拍数を正しく捉えるためには、このノイズ的要因を除去する必要がある。
これに対して、拍動とは、医学的には心臓のみならず内臓一般の周期的な収縮、弛緩が繰り返された場合に起こる運動のことを指すが、ここでは特に、心臓が周期的に血液を送るポンプとしての動きのことを拍動と呼ぶ。
さらに、体動とは、広義には、体を動かすこと全てを意味し、狭義には、歩行・ジョギングなどに伴う定常的、周期的な腕(脈拍計の装着部位近辺)の動き等を指す。
また、脈波センサー信号(脈波センサー原信号、脈波信号)とは、脈波センサー211が検出する信号そのもののことをいう。脈波センサー信号は、拍動成分信号と、体動ノイズ成分信号と、外乱ノイズ成分信号等を含む。なお、不整脈は、厳密には拍動成分信号に含まれるとも考えられるが、電気信号としては外乱ノイズ成分信号に含まれるものとする。
一方、脈波検出信号とは、脈波検出部210から出力される信号のことを言う。具体的には、脈波検出信号は、脈波センサー信号に対して、フィルター処理部215がフィルター処理を行い、フィルター処理後の脈波センサー信号に対して、A/D変換部216によりA/D変換処理を行った信号のこと等をいう。ただし、前述したように、フィルター処理及びA/D変換処理の順序は、逆であってもよい。
さらに、体動センサー信号(体動センサー原信号、体動信号)とは、体動センサーが検出する信号そのもののことをいう。具体的には、体動センサー信号は、モーションセンサー221が検出する信号そのものを指すモーションセンサー信号や、接触圧センサーが検出する信号そのものを指す接触圧センサー信号等のことを指す。
一方、体動検出信号とは、体動検出部220から出力される信号のことを言う。具体的には、体動検出信号は、体動センサー信号に対して、フィルター処理やA/D変換処理を行った後の信号のこと等をいう。例えば、体動検出信号は、モーションセンサー信号に対し上記の信号処理を行った後の信号であるモーション検出信号や、圧力センサー信号に対し上記の信号処理を行った後の信号である圧力検出信号等のことである。ただし、前述したように、フィルター処理及びA/D変換処理の順序は、逆であってもよい。
また、脈波センサー信号や体動センサー信号などをまとめてセンサー信号、脈波検出信号や体動検出信号などをまとめて検出信号と呼ぶ。
次に、信号解析装置(拍動検出装置)100の各部で行われる処理について説明する。
まず、信号取得部110は、検出部200から検出信号を取得する。また、拍動検出装置100の信号取得部110は、脈波検出部210からの脈波検出信号と、体動検出部220からの体動検出信号とを取得する。信号取得部110は、検出部200と無線又は有線により接続されている場合には、データを送受信する通信部(I/F部、アンテナ部等)であってもよい。
次に、信号処理部130は、検出信号のサンプリングデータに対して、周波数分解処理を行い、スペクトルを求める。例えば、周波数分解処理としては、検出信号のサンプリングデータに対する窓関数処理と、窓関数処理後のデータに対するフーリエ変換処理とを行う。拍動検出装置100の信号処理部130は、脈波検出部210からの脈波検出信号と、体動検出部220からの体動検出信号とに基づいて、周波数分解処理を行い、脈スペクトルを求める。
また、信号処理部130は、ノイズ低減処理部131と、窓関数処理部133と、フーリエ変換処理部135と、パワースペクトル密度推定処理部137と、を含むことができる。これらの処理部の動作の詳細については後述する。
そして、信号状態判定部150は、信号取得部110で取得される検出信号について信号状態の判定処理を行う。拍動検出装置100の信号状態判定部150は、脈波検出信号及び体動検出信号の少なくとも一方に対して信号状態の判定処理を行う。
また、信号状態判定部150は、スペクトル値算出部151と、運動状態判定部153と、を含むことができる。これらの処理部の動作の詳細については後述する。
さらに、信号解析装置100が拍動検出装置100である場合には、図1のように拍動情報演算部170を含むことができる。拍動情報演算部170は、信号処理部130により求められた周波数分解処理の結果に基づいて拍動情報を演算する。ここで、拍動情報とは、拍動を数値などで表した情報のことをいい、例えば脈拍数などを指す。
例えば、拍動情報演算部170は、信号処理部130の解析結果(脈の周波数値)に、スムージング処理等を加えながら脈拍数に換算する処理などを行う。脈拍数を求める際には、拍動情報演算部170は、信号処理部130により求められた脈スペクトルにおいて、代表的な周波数を脈拍周波数とする処理を行ってもよい。その場合、求めた脈拍周波数を60倍した値が一般的に用いられる脈拍数(心拍数)となる。
なお、拍動情報は脈拍数には限定されず、例えば脈拍数を表す他の情報(心拍の周波数や周期等)であってもよい。また、拍動の状態を表す情報であってもよく、例えば血流量そのもの(或いはその変動)を表す値を拍動情報としてもよい。ただし、血流量と脈波センサー信号の信号値との関係にはユーザー毎に個人差があるため、血流量等を拍動情報とする場合には当該個人差に対応するための補正処理を行うことが望ましい。
また、信号解析装置100が拍動検出装置100ではない場合には、拍動情報演算部170の代わりに、他の情報を演算する処理部を含んでも良い。
そして、表示部70(広義には出力部)は、演算した拍動情報等の提示に用いられる各種の表示画面を表示するためのものであり、例えば液晶ディスプレイや有機ELディスプレイなどにより実現できる。
上述した電子機器が脈拍計である場合の具体例を図2(A)、図2(B)に示す。図2(A)は、腕時計型の脈拍計の例である。脈波センサー211および表示部70を含むベース部400は、保持機構300(例えばバンド等)によって、被検体(ユーザー)の左手首に装着されている。図2(B)は、指装着型の例である。被検体の指先に挿入するためのリング状のガイド302の底部に、脈波センサー211が設けられている。ただし、図2(B)の場合には、表示部70を設ける空間的余裕がないため、表示部70(及び必要に応じては拍動検出装置100に相当する機器)は他に設けられることが想定される。ただし、信号解析装置(拍動検出装置)100を含む電子機器は、脈拍計に限定されず、他にも歩数計やスマートフォンなどであってもよい。
3.非対称窓関数
次に、後述する第1の実施形態及び第2の実施形態の信号解析装置(拍動検出装置)100において用いる窓関数について、図3を用いて説明する。図3は、サンプル数を256とした時の各窓関数の形状を比較したグラフであり、縦軸が窓関数値、横軸がサンプル番号を示す。窓関数値とは、各サンプルに乗算する重みである。
まず、前述したハニング窓関数は、図3に示すグラフ上では左右対称の形状となる。ハニング窓関数の他にも、ブラックマン窓関数などの一般的に用いられる窓関数も同様である。このように一般的に、図3のグラフ上で左右対称の形状となる窓関数(以下では、対称窓関数と呼ぶ。)が用いられるのは、サイドローブ特性を改善させたり、隣接するパワースペクトル間で、よりパワーの大きさの差異が見えやすいようにしたりするためである。なお、サイドローブ特性とは、主成分以外の周波数の振幅が検出される度合いのことを言う。
そもそも、フーリエ変換とは、あらゆる周期関数は正弦波と余弦波の重ね合わせで表すことができるという大前提の元に、任意の時間領域の信号を周波数領域で表すことである。つまり、前提として、フーリエ変換は、周期関数に対して行うということが重要である。
ここで、完全に周期的な時間信号をフーリエ変換した場合に得られるスペクトルでは、単一の周波数しか検出されない。すなわち、前述したサイドローブ特性が良く、主成分の検出が容易である。一方で、周期的でない時間信号をフーリエ変換した場合に得られるスペクトルでは、低周波から高周波までの幅広い範囲で複数の周波数が検出される。すなわち、サイドローブ特性が悪く、主成分がどの周波数であるかの判断が困難である。フーリエ変換を行う目的は、時間信号の代表的な周波数(主成分)の検出であることが多いため、サイドローブ特性は良い方が良い。
しかし、実際にフーリエ変換を行う場合に、ある時間信号から無限個のサンプルを取ることはできないため、ある時間信号の限られた範囲(期間)から有限個のサンプルを取って、サンプリングデータとし、これを入力信号とする。特にFFTを行う場合には、入力信号のサンプル数を、64、128、256等の2のべき乗にしなければいけないという制約がある。しかし、有限個のサンプルからなるサンプリングデータが、周期関数で表せる可能性は極めて低い。しかも、周波数は時間とともに変化することが多い。
さらに、離散的フーリエ変換を行う際に、有限個のサンプルからなるサンプリングデータの始点と終点との連続性が担保(確保)されていない場合には、周波数分解結果に表れるサイドローブが大きくなる。
そこで、サンプリングデータに対して窓関数処理を行い、有限個のサンプルからなるサンプリングデータの連続性を担保(確保)する。サンプリングデータを繰り返した時に周期関数で表すことができるようにする方法は、いくつかあるが、最も分かりやすい方法として、サンプリングデータの両端の値を0にし、両端の傾きも0とする方法がある。この場合には、サンプリング期間を1周期とする周期関数により、サンプリングデータを表すことができる。ハニング窓のような窓関数は、このようなアプローチを採用しているため、図3のグラフに示すような形状になる。
また、フーリエ変換処理の前にこのような窓関数を用いて窓関数処理を行う周波数分解処理は、例えば、通信の分野などで行われる。その場合には、例えば、無線通信等で信号を受信し、周波数分解処理等を行って、信号に変換された元々の情報を解析する。そのため、送信元が送信した信号の波形を大きく変えてしまうと、信号に変換された元々の情報を解析することができなくなってしまうことがある。したがって、窓関数処理では、周期的な信号に加工しつつも、できるだけ元の信号の波形を維持する必要がある。そのため、ハニング窓のような窓関数は、図3のグラフで左右対称になるように設計されている。
しかし、拍動検出(計測)の分野で、前述した対称窓関数を使用して周波数分解処理を行った場合には、前述したように周波数分解能を上げた時に、リアルタイム性が低下するという問題がある。この問題は、ハニング窓のような対象窓関数では、サンプリング期間の中間で窓関数値が最大となることを原因とする。すなわち、サンプリング期間を長くすればするほど、窓関数値が最大となるタイミングがより過去になってしまい、要求される応答時間が短くなればなるほど、リアルタイム性を満たすことが困難になる。
一方で、拍動検出装置などの一部の信号解析装置により取得したい情報は、時間信号の主な周波数(主成分)であると言える。すなわち、信号の波形(信号の振幅)自体は重要ではなく、波形が崩れても問題はない。時間信号の周波数の主成分が重要である。具体的に言えば、拍動検出装置であれば、1分間にどのくらい脈を打ったかという脈拍数は知りたいが、どのくらいの強さで脈を打ったかという情報は必ずしも必要ではない。
そこで、本出願人は、窓関数値が最大となるタイミングをサンプリング期間の中間から意図的にずらした窓関数を考案した。前述した例からも分かる通り、周波数分解処理の結果として検出される周波数は、窓関数値が最大となるタイミングの実際の周波数と相関が強く、窓関数値が最大となるタイミングの周波数の期待値とも言える。
そのため、窓関数値が最大となるタイミングを、サンプリング期間の中間から現在のタイミング寄りにずらした窓関数を用いる。これにより、最近のサンプルに対して重みをより大きくし、過去のサンプルに対しては信号レベルを圧縮する。これにより、窓関数処理を行わない場合や、対称窓関数を用いて窓関数処理を行った場合と比べて、周波数分解処理結果(脈拍数)のリアルタイム性が改善される。
具体例としては、形状が左右非対称になる窓関数(非対称窓関数)で、例えば図3に示すType1〜Type3のような窓関数を提案する。
Type1〜Type3の窓関数は、三角関数をベースとしており、0.5Hz以下の周波数帯で構成されており、窓関数自体の周波数は、正常な人体でとり得る脈拍の周波数帯と乖離している。そのため、算出したスペクトルにおいて、脈拍のスペクトル(0.5Hz以上)と窓関数のスペクトルとを混同することはない。
Type3の窓関数では、最近の信号サンプルに対して、一切信号レベルの圧縮を行わないようにしている。図4の各周波数分解処理の特徴を対比した表に示す通り、FFT区間(サンプリング区間)の両端の値を0、傾きを0とする場合(ハニング窓関数や後述するType2の窓関数等)と比べると、サイドローブ特性は犠牲となり、脈波検出信号がノイズを多く含む場合への対応性が低くなる。しかし一方で、更にリアルタイム性を改善することができる。
また、Type2の窓関数では、入力信号の両端の値が0、傾きも0となるように、信号レベルを圧縮する。図4に示す通り、窓関数値が最大となるタイミングをずらした影響は無いとは言えないが、Type3の窓関数等と比べれば良好なサイドローブ特性を持つため、脈波検出信号がノイズを多く含む場合に用いるのに適している。
そして、Type1の窓関数では、入力信号の両端の値が0となるように、信号レベルを圧縮する。ただし、両端の傾きを0にしていない分、図4に示す通り、Type2と比べるとサイドローブ特性の性能は若干落ちる。一方で、信号の圧縮度合はType2と比べて小さいため、脈波検出信号のレベルが低い場合であっても、拍動を示すパワースペクトル値はより明確になりやすい。なお、Type1〜Type3の窓関数の具体的な式については、後述する。
4.第1の実施形態
4.1. 手法
次に、第1の実施形態の手法について説明する。第1の実施形態の信号解析装置(拍動検出装置)100は、脈波検出信号のSN比(signal-noise ratio)の状態に応じて周波数分解処理の手順を選択する。
まず、第一に、SN比の状態が良好であると判断される場合、すなわち体動ノイズや突発的な外乱の混入が少ないと判断される時には、周波数分解処理として、パワースペクトル密度推定処理を行う。この場合には、前述した非対称窓関数を使用した窓関数処理を行わない。窓関数処理を行わなくても、十分に精度の高い周波数分解処理を行うことができると考えられるためである。パワースペクトル密度推定処理の具体的な方法としては、AR(Auto-Regressive)法や、最大エントロピー法などがある。
これによれば、観測タイミングの直前の脈波検出信号波形に基づいて、周波数分布を得ることができるため、更にリアルタイム性を改善することができる。
第二に、SN比の状態が劣悪であると判断される場合、すなわち体動ノイズの割合が高い場合や、突発的で大きい外乱の混入を検出した場合等には、周波数分解処理として、前述したType1又はType2の非対称窓関数を用いて窓関数処理を行い、窓関数処理後のデータに対してFFTを行う。
これによれば、窓関数処理を行わない場合や、一般的な窓関数を用いて窓関数処理を行った場合と比べて、周波数分解処理結果(脈拍数)のリアルタイム性が改善される。さらに、後述するType3の窓関数を用いて窓関数処理を行う場合に比べて、よりサイドローブを抑えて、サイドローブ特性を高めることができる。そのため、微小振幅な拍動波形であっても拍動スペクトルを特定しやすい。
第三に、SN比の状態が前述した良好である場合と、劣悪である場合の中間であると判断された場合には、周波数分解処理として、前述したType3の非対称窓関数を用いて窓関数処理を行い、窓関数処理後のデータに対してFFTを行う。
これによれば、窓関数処理を行わない場合は勿論、一般的な窓関数やType1やType2の非対称窓関数を用いて窓関数処理を行った場合と比べて、周波数分解処理結果(脈拍数)のリアルタイム性が改善される。一方、サイドローブの抑制効果については、Type1やType2の非対称窓関数を用いる場合よりも低いが、そもそもさほどSN比の状態が悪くない場合に適用するため問題とはならない。
4.2. 処理の流れ
拍動検出装置100が拍動情報として脈拍数を計測する際の具体的な処理の流れを、図5のフローチャートに示す。また、拍動検出装置100に接続された検出部200は、脈波センサー211の他に、体動センサー221として加速度センサーを有するものとする。
まず、検出部200から脈波検出信号と、体動検出信号として加速度検出信号を取得する(S101)。そして、脈波検出信号に基づいて、脈波検出信号の信号状態を判定する(S102)。信号状態の具体的な判定方法については後述する。
次に、加速検出信号を用いて、脈波検出信号に対して体動ノイズ除去フィルター処理を行う(S103)。そして、判定した信号状態に基づいて、脈波検出信号に対して行う周波数分解処理を決定する(S104)。そして、実際に脈波検出信号に対して周波数分解処理を行い(S105)、周波数分解処理の結果に基づいて、脈拍周波数を特定する(S106)。そして、脈拍周波数を脈拍数へ換算し(S107)、表示部70に脈拍数を表示する(S108)。最後に、計測を継続するか否かの判定を行い(S109)、計測を継続しないと判定した場合には、処理を終了する。一方、計測を継続すると判定した場合には、ステップS100〜S110の処理を繰り返す。
次に、ステップS102の信号状態の判定方法の具体例を図6のフローチャートを用いて説明する。
まず、16秒間に256サンプル分の脈波検出信号と体動検出信号(加速度検出信号)のデータを取得する(S200)。そして、取得した脈波検出信号及び体動検出信号(加速度検出信号)に対して、通常のFFT処理を行い(S201)、各スペクトルに対して図7(A)のような表を作成する。図7(A)では、adrがスペクトル番号、valがスペクトル値を示す。さらに、図7(B)に示すように脈波検出信号のスペクトルを降順にソートする(S202)。
そして、拍動信号スペクトル比を算出する(S203)。具体的には、最大スペクトルの大きさと、その他のスペクトルのうちの所定のスペクトル(例えば、5番目や10番目に大きいもの。ただし、5番目と10番目に限らない。)との、大きさの比を算出する。そして、この比が小さい場合には、非定常的なノイズが少ない状態であり、脈波検出信号が限られた周波数成分で構成されていると判断する。すなわち、余分な周波数成分を含まず、ノイズが少ないため、SN比が高い(良好な状態)と判断する。一方、この比が大きい場合には、非定常的なノイズが大きいか、観測期間内で周波数変動が大きいと判断する。すなわち、SN比が低い(劣悪な状態)と判断する。
具体的には、最大スペクトルと5番目に大きいスペクトルとの比pr5が、第1の閾値である0.5よりも小さいか否か、かつ、最大スペクトルと10番目に大きいスペクトルとの比pr10が第2の閾値である0.2よりも小さいか否かを判定する(S204)。
最大スペクトルと5番目に大きいスペクトルとの比pr5が、第1の閾値である0.5よりも小さく、最大スペクトルと10番目に大きいスペクトルとの比pr10が第2の閾値である0.2よりも小さいと判断した場合には、SN比の状態が良好である(SN比が高い)と判断(推定)し、周波数分解処理としてパワースペクトル密度推定処理を行うと決定する(S205)。
例えば、図7(A)〜図7(C)の例では、pr5は、pr5=1033.663/2973.406=0.3476360として計算され、pr10=503.500/2973.406=0.1693344として計算される。そして、pr5は、0.5よりも小さく、pr10は0.2よりも小さいため、SN比の状態が良好であると判断される。なお、この時の脈波検出信号の時間波形と、FFT結果は、図7(C)のようになる。
一方、ステップS204で、判定条件を満たさなかった場合には、最大スペクトルと5番目に大きいスペクトルとの比pr5が、第3の閾値である0.7よりも小さいか否か、かつ、最大スペクトルと10番目に大きいスペクトルとの比pr10が第4の閾値である0.5よりも小さいか否かを判定する(S206)。
最大スペクトルと5番目に大きいスペクトルとの比pr5が、第3の閾値である0.7よりも小さく、最大スペクトルと10番目に大きいスペクトルとの比pr10が第4の閾値である0.5よりも小さいと判断した場合には、SN比の状態が劣悪である(SN比が低い)と判断(推定)し、周波数分解処理としてType2の非対称窓関数による窓関数処理とFFTを行うと決定する(S207)。具体的には、図9(A)〜図9(C)の例が該当する。
一方、ステップS206で、判定条件を満たさなかった場合には、SN比の状態が中程度であると判断(推定)し、周波数分解処理としてType3の非対称窓関数による窓関数処理とFFTを行うと決定する(S208)。具体的には、図8(A)〜図8(C)の例が該当する。
また、信号状態の判定方法は、上記の方法に限定されず、任意の方法により行ってよい。
以上の本実施形態の信号解析装置100は、センサーを有する検出部200から検出信号を取得する信号取得部110と、検出信号のサンプリングデータD0〜DN(Nは2以上の正の整数)に対する窓関数処理と、窓関数処理後のデータに対するフーリエ変換処理とを周波数分解処理として行う信号処理部130と、を含む。ここで、サンプリングデータD0〜DNのうちの第jのサンプリングデータDjは、第iのサンプリングデータDiがサンプリングされたタイミングよりも後のタイミングにサンプリングされたデータである(整数i、jは、0≦i<N/2<j≦Nを満たす整数)。そして、信号処理部130は、第jのサンプリングデータDjに対応する窓関数値h(j)が最大値となり、第iのサンプリングデータDiに対応する窓関数値h(i)が窓関数値h(j)よりも小さい値となる非対称窓関数により、窓関数処理を行う。なお、窓関数処理は、信号処理部130内の窓関数処理部133により行われ、フーリエ変換処理は、信号処理部130内のフーリエ変換処理部135によって行われるものとする。
ここで、周波数分解処理は、時間信号に含まれる周波数を分解(解析)する処理であり、種々の方法があるが、本実施形態では、周波数分解処理として、窓関数処理とフーリエ変換処理とを行う。また、前述したように、窓関数処理とフーリエ変換処理の代わりに、パワースペクトル密度推定処理を周波数分解処理として行っても良い。
また、検出信号のサンプリングデータD0〜DNは、検出信号からサンプリングした(N+1)個のサンプルのことである。Nは2以上の正の整数であれば良いが、前述したようにFFTを行う場合には、サンプル数は2のべき乗である必要がある。この場合には、例えば、N+1=2、4、8、16、32、64、128、192、256、512、1024、2048、4096・・・等になる。ただし、FFT以外のフーリエ変換を行う場合等では、サンプル数は2のべき乗でなくても良い。
そして、本実施形態では、第jのサンプリングデータDjに対応する窓関数値h(j)が最大値となり、第iのサンプリングデータDiに対応する窓関数値h(i)が窓関数値h(j)よりも小さい値となる非対称窓関数を用いる。また、整数i、jは、0≦i<N/2<j≦Nを満たす整数である。
つまり、本実施形態では、第iのサンプリングデータDiに対応する窓関数値h(i)を、第jのサンプリングデータDjに対応する窓関数値h(j)よりも小さくすることにより、N/2<j≦Nのサンプルよりも0≦i<N/2のサンプルの信号値を大きく圧縮する。
例えば、図3の例で言えば、N+1=256であり、整数iは、0≦i≦127を満たす整数であり、整数jは、127≦j≦255を満たす整数である。従って、図3のグラフの右側で窓関数値h(j)が最大となり、グラフの左側の窓関数値h(i)は、常にh(j)よりも小さくなる。前述したType1〜Type3の窓関数は全てこの条件を満たしている。
これにより、窓関数処理において、最近のサンプルに比べて過去のサンプルを圧縮することができる。従って、窓関数処理を行わない場合や、対称窓関数を用いて窓関数処理を行った場合と比べて、周波数分解処理結果(脈拍数)のリアルタイム性を改善することができる。また、窓関数処理を行わない場合や、対称窓関数を用いて窓関数処理を行った場合と同等のリアルタイム性で仕様上十分とする場合は、よりサンプリング期間を長くすることができるため、より周波数分解能の高い周波数分布を得ることができる。
また、前述したように、サンプリングデータは、両端の値が0であれば、周期関数で表すことができる信号波形により近づくため、フーリエ変換を行った時にサイドローブ特性を向上させることができる。
そこで、信号処理部130は、サンプリングデータD0〜DNのうちの第NのサンプリングデータDNに対応する窓関数値h(N)が最小値となる非対称窓関数により、窓関数処理を行ってもよい。
すなわち、図3の例で言えば、第255のサンプル数に対する窓関数値h(255)=0とする。この場合、窓関数値h(255)=0と乗算された信号値は0となる。図3のType1及びType2の窓関数は、このような特性を持つ。
これにより、窓関数処理を行わない場合と比べ、サイドローブ特性を改善すること等が可能になる。また、対称窓関数を用いて窓関数処理を行った場合と比べて、周波数分解処理結果(脈拍数)のリアルタイム性を改善すること等が可能になる。具体的な適用結果については、図10(A)〜図10(C)を用いて後述する。
次に、Type1の非対称窓関数の具体的な式を例示する。
信号処理部130は、サンプリングデータD0〜DNのうちの第pのサンプリングデータDp(整数p、M及びNは、0≦p≦3M−1と、N=4M−1を満たす整数)に対しては、下式(1)により窓関数処理を行い、第qのサンプリングデータDq(整数q、M及びNは、3M≦q≦4M−1と、N=4M−1を満たす整数)に対しては、下式(2)により窓関数処理を行ってもよい。
すなわち、前述した図3の例では、N+1=256、M=64であるため、0≦p≦191のサンプリングデータDpに対しては、式(1)により窓関数処理を行い、192≦q≦255のサンプリングデータDqに対しては、下式(2)により窓関数処理を行う。
また、Type1の非対称窓関数は、Type2の窓関数と比べて、信号の圧縮度合が小さい。そのため、脈波検出信号のレベルが低い場合であっても、拍動を示すパワースペクトル値が明確になりやすく、脈拍周波数の特定を容易にすること等が可能になる。
次に、Type2の非対称窓関数の具体的な式を例示する。
信号処理部130は、サンプリングデータD0〜DNのうちの第pのサンプリングデータDp(整数p、M及びNは、0≦p≦3M−1と、N=4M−1を満たす整数)に対しては、下式(3)により窓関数処理を行い、第qのサンプリングデータDq(整数q、M及びNは、3M≦q≦4M−1と、N=4M−1を満たす整数)に対しては、下式(4)により窓関数処理を行ってもよい。
すなわち、前述した図3の例では、N+1=256、M=64であるため、0≦p≦191のサンプリングデータDpに対しては、式(3)により窓関数処理を行い、192≦q≦255のサンプリングデータDqに対しては、下式(4)により窓関数処理を行う。
これにより、第Nのサンプリングデータにおいて、信号値だけではなく、傾きも0にすること等が可能になる。
また、図10(A)〜図10(C)には、各周波数分解処理の結果を示している。各図の上図は、16秒分の脈波検出信号の時間波形を示しており、各図の下図は、上図に示す脈波検出信号のFFT結果を示している。図10(A)は、窓関数処理を行わない場合の例であり、図10(B)は後述するType3の非対称窓関数により窓関数処理を行った場合の例を示し、図10(C)はType2の非対称窓関数により窓関数処理を行った場合の例を示している。
図10(A)〜図10(C)のFFT結果が示す通り、非対称窓関数による窓関数処理後の信号にFFTをかけた場合には、パワースペクトルの分布が狭まる。つまり、サイドローブが抑制され、サイドローブ特性が高まる。これは、過去の信号部分を圧縮したことによる効果である。その結果として、より脈拍を示す周波数を特定しやすくなる。さらに、この結果を比較すると、Type2の非対称窓関数を用いた時の結果(図10(C))が、3つのFFT結果の中で最もサイドローブ特性が良いことが分かる。
従って、Type2の非対称窓関数を用いれば、よりサイドローブ特性を高めることが可能となり、ノイズがひどい状態でも脈拍周波数を特定すること等が可能になる。
また、前述したように、例えばSN比の状態が良好であると判断される場合、すなわち体動ノイズや突発的な外乱の混入が少ないと判断される時には、サイドローブがあまり発生しないため、サイドローブ特性を必ずしも向上させる必要はない。この場合には、サイドローブ特性を向上させるよりも、よりリアルタイム性を重視するような窓関数処理を行うことが望ましい。
そこで、信号処理部130は、サンプリングデータD0〜DNのうちの第NのサンプリングデータDNに対応する窓関数値h(N)が最大値となる非対称窓関数により、窓関数処理を行ってもよい。
例えば、窓関数値h(N)=1であれば、第Nのサンプルデータの信号値の圧縮を行わないことになる。h(N)=1でなくとも、他のサンプルデータに対して、圧縮率を最も低くすることができる。
これによれば、図10(A)のように窓関数処理を行わずにフーリエ変換を行う場合は勿論、一般的な窓関数やType1やType2の非対称窓関数を用いて窓関数処理を行った場合と比べて、周波数分解処理結果(脈拍数)のリアルタイム性を改善すること等が可能になる。
また、第Nのサンプリングデータだけでなく、第Nのサンプリングデータから所定の数だけ遡ったサンプリングデータに対しても、窓関数値を大きくして、圧縮率を下げれば、周波数分解処理結果(脈拍数)のリアルタイム性が改善される。
そこで、信号処理部130は、サンプリングデータD0〜DNのうちの第kのサンプリングデータDk〜第NのサンプリングデータDN(整数kは、N/2<k<Nを満たす整数)に対応する窓関数値h(k)〜h(N)が全て最大値となる非対称窓関数により、窓関数処理を行ってもよい。
例えば図3に示すType3の非対称窓関数の例で言えば、第192〜第255のサンプリングデータに対応する窓関数h(192)〜h(255)を全て最大値である1に設定している。
これにより、第Nのサンプリングデータだけでなく、第Nのサンプリングデータから所定の数だけ遡ったサンプリングデータに対しても、窓関数値を最大にして、圧縮率を下げること等が可能になる。よって、窓関数処理を行わない場合や、対称窓関数を用いて窓関数処理を行った場合、あるいはType1やType2の非対称窓関数を用いて窓関数処理を行った場合と比べて、周波数分解処理結果(脈拍数)のリアルタイム性を改善すること等が可能になる。
次に、Type3の非対称窓関数の具体的な式を例示する。
信号処理部130は、サンプリングデータD0〜DNのうちの第pのサンプリングデータDp(整数p、M及びNは、0≦p≦3M−1と、N=4M−1を満たす整数)に対しては、下式(5)により窓関数処理を行い、第qのサンプリングデータDq(整数q、M及びNは、3M≦q≦4M−1と、N=4M−1を満たす整数)に対しては、式h(q)=1により窓関数処理を行ってもよい。
すなわち、前述した図3の例では、N+1=256、M=64であるため、0≦p≦191のサンプリングデータDpに対しては、式(5)により窓関数処理を行い、192≦q≦255のサンプリングデータDqに対しては、式h(q)=1により窓関数処理を行う。
これにより、第Nのサンプリングデータだけでなく、第Nのサンプリングデータから所定の数だけ遡ったサンプリングデータに対する窓関数値も最大にすることを実現すること等が可能になる。例えば、図10(B)の上図に示すグラフでも、グラフ右側の64サンプルの信号値は、図10(A)の上図に示す元の波形から圧縮されていないことが分かる。
なお、窓関数値は、窓関数処理を行う度に算出するのではなく、あらかじめ計算しておいた値を配列変数に保持しておいてもよい。これにより計算量を低減することができる。
さて、以上のType1〜Type3までの非対称窓関数は、前述したように信号状態に応じて使い分けることが望ましい。また周波数分解処理は、窓関数処理とFFTを行う処理に限定されず、パワースペクトル密度推定処理を行った方が良い場合もある。
そこで、本実施形態の拍動検出装置100は、脈波検出部210からの脈波検出信号と、体動検出部220からの体動検出信号とに基づいて、周波数分解処理を行う信号処理部130と、周波数分解処理の結果に基づいて拍動情報を演算する拍動情報演算部170と、脈波検出信号及び体動検出信号の少なくとも一方に対して信号状態の判定処理を行う信号状態判定部150と、を含んでもよい。そして、信号処理部130は、信号状態判定部150による信号状態の判定結果に応じて異なる周波数分解処理を行う。
これにより、信号状態に応じて異なる周波数分解処理を行うこと等が可能になる。
また、前述した窓関数処理は、脈波検出信号にノイズが多く含まれているか否かによって、使用する窓関数を切り替えるべきであるため、SN比が高いと推定できるか、低いと推定できるかといった判断に基づいて、信号状態を判断してもよい。
すなわち、信号処理部130は、脈波検出信号が第1の信号状態であると判定された場合には、第1の周波数分解処理を行い、脈波検出信号が第1の信号状態よりもSN比が高い第2の信号状態であると判定された場合には、第2の周波数分解処理を行ってもよい。
これにより、SN比が異なる信号状態に応じて、異なる周波数分解処理を行うこと等が可能になる。
また、信号状態によっては、前述した例のように窓関数処理を行わずに、パワースペクトル密度推定処理等を周波数分解処理として行っても良い。
すなわち、本実施形態の信号解析装置100は、信号取得部110で取得される検出信号について信号状態の判定処理を行う信号状態判定部150を含んでもよい。そして、信号処理部130は、信号状態が第1の信号状態であると判定された場合には、非対称窓関数による窓関数処理と、窓関数処理後のデータに対するフーリエ変換処理とを周波数分解処理として行い、信号状態が第2の信号状態であると判定された場合には、検出信号に対するパワースペクトル密度推定処理を周波数分解処理として行ってもよい。なお、パワースペクトル密度推定処理は、信号処理部130内のパワースペクトル密度推定処理部137によって行われるものとする。
つまり、信号解析装置100を拍動検出装置100に限定して言い換えると、信号処理部130は、脈波検出信号が第1の信号状態であると判定された場合には、第1の周波数分解処理として、脈波検出信号のサンプリングデータに対する窓関数処理と、窓関数処理後のデータに対するフーリエ変換処理とを行い、脈波検出信号が第2の信号状態であると判定された場合には、第2の周波数分解処理としてパワースペクトル密度推定処理を行ってもよい。
ここで、パワースペクトル密度推定処理は、通常のFFTにより周波数分布を演算する場合と比べ、より短期間の観測信号しか得られなくても、長期間の観測信号に対してFFT処理を行う場合と同等の周波数分解能と、周波数の峻別性が得られる計算アルゴリズムである。脈拍検出以外の分野では、例えば、地震の発生周期解析や海洋潮流解析などで使用されることが多い。
具体的には、パワースペクトル密度推定処理を行う場合には、例えば、現在から2秒前程度の信号波形のみを用いて、脈拍数を算出すること等が可能となる。その場合には、2秒前よりも過去の脈波検出信号に含まれる周波数成分を無視できる。
これにより、SN比が第2の信号状態よりも低い第1の信号状態である場合には、サイドローブ抑制効果の高い周波数分解処理を行い、SN比が第1の信号状態よりも高い第2の信号状態である場合には、更にリアルタイム性を重視した周波数分解処理を行うこと等が可能になる。
さらに、信号処理部130は、脈波検出信号が第1の信号状態であると判定された場合には、第jのサンプリングデータDjに対応する窓関数値h(j)が最大値となり、第iのサンプリングデータDiに対応する窓関数値h(i)が窓関数値h(j)よりも小さい値となる非対称窓関数により、窓関数処理を行ってもよい。
これにより、窓関数処理を行わない場合や、対称窓関数を用いて窓関数処理を行った場合と比べて、周波数分解処理結果(脈拍数)のリアルタイム性を改善すること等が可能になる。
さらに、信号処理部130は、信号状態が第1の信号状態であると判定された場合には、第1の非対称窓関数による窓関数処理を行い、信号状態が第2の信号状態であると判定された場合には、第1の非対称窓関数と異なる第2の非対称窓関数による窓関数処理を行ってもよい。
つまり、信号解析装置100を拍動検出装置100に限定して言い換えると、信号処理部130は、脈波検出信号が第1の信号状態であると判定された場合には、第1の周波数分解処理として、第1の窓関数を用いた、脈波検出信号のサンプリングデータに対する窓関数処理と、窓関数処理後の第1のデータに対するフーリエ変換処理とを行い、脈波検出信号が第2の信号状態であると判定された場合には、第2の周波数分解処理として、第1の窓関数と異なる第2の窓関数を用いた、脈波検出信号のサンプリングデータに対する窓関数処理と、窓関数処理後の第2のデータに対するフーリエ変換処理とを行ってもよい。
さらに、信号処理部130は、脈波検出信号が第1の信号状態であると判定された場合には、第jのサンプリングデータDjに対応する窓関数値h(j)が最大値となり、第iのサンプリングデータDiに対応する窓関数値h(i)が窓関数値h(j)よりも小さい値となる非対称窓関数を第1の窓関数として、窓関数処理を行い、脈波検出信号が第2の信号状態であると判定された場合には、第1の窓関数と異なる非対称窓関数である第2の窓関数により窓関数処理を行ってもよい。
すなわち、信号状態が第1の信号状態である時と、第2の信号状態である時に、それぞれ異なる非対称窓関数を用いて窓関数処理を行ってもよい。
例えば、信号状態が第1の信号状態である場合には、第1の窓関数として前述したType3の非対称窓関数を用いて窓関数処理を行い、信号状態が第2の信号状態である場合には、第2の窓関数として前述したType2の非対称窓関数を用いて窓関数処理を行うこと等ができる。なお、場合によっては、対称窓関数を用いても良い。
これにより、信号状態に応じて異なる窓関数処理を行うこと等が可能になる。さらに、信号状態に応じて窓関数処理に用いる非対称窓関数を変更すること等が可能になる。
また、上記のようにSN比の状態に基づいて信号状態を判断する場合には、SN比を求める必要があるが、SN比を直接求めることは困難であるため、他の情報からSN比を推定する必要がある。
そこで、信号状態判定部150は、脈波検出信号の周波数分解処理によって得られる周波数スペクトルのうち、最大のスペクトル値を示す第1のスペクトルと、第1のスペクトル以外の、少なくとも一つの第2のスペクトルとのスペクトル値の比を算出して、信号状態の判定処理を行ってもよい。なお、スペクトル値の算出処理は、信号状態判定部150のスペクトル値算出部151が行うものとする。
具体的には、図6のフローチャートを用いて説明した通りである。
これにより、SN比を推定して、信号状態を求めること等が可能になる。
5.第2の実施形態
5.1. 手法
次に、第2の実施形態の手法について説明する。前述したように、周波数分解処理の分解能を上げるためには、1回の脈拍数算出処理に用いる脈波検出信号の検出期間(サンプリング期間)を長くする必要がある。この検出期間中に脈拍が変化しない場合には、特定のスペクトルが明確にピーク値を示すため、脈拍周波数の特定が比較的容易である。
一方で、その検出期間内において、脈拍数が大きく変化している場合には、スペクトルが広帯域に分散するため、ピークスペクトルの特定が難しくなる。例えば、前述した検出期間内、に座っている状態(脈拍60)からジョギングを開始して、脈拍が150程度まで上がるとすると、1〜2.5Hzの区間に脈拍スペクトルが分散することになる。個々の周波数スペクトルの大きさも横並びとなるため、どの周波数を脈拍周波数であると判定すればよいか、条件判断の難易度が上がることになる。
そこで、第2の実施形態の信号解析装置(拍動検出装置)100は、体動検出信号に基づいて、運動状態を判定し、運動状態に応じて周波数分解処理の手順を選択する。
運動状態が安静状態と判定された場合、すなわち加速度検出信号などの体動検出信号において、微細な動きしか検出されない場合には、周波数分解処理として、パワースペクトル密度推定処理を行う。
次に、運動状態が定常的運動状態であると判断された場合には、周波数分解処理として、Type3の窓関数を用いて、窓関数処理を行い、窓関数処理後のデータに対してFFTを行う。具体的に、定常的運動状態とは、歩行している状態やジョギングしている状態などを指し、被検体がほぼ一定の周期(リズム)で体を動かしている状態のことを言う。すなわち、定常的運動状態とは、周期性を有する運動をしている状態のことを指す。
そして、運動状態が非定常的運動状態であると判断された場合には、周波数分解処理として、Type1やType2の窓関数を用いて、窓関数処理を行い、窓関数処理後のデータに対してFFTを行う。具体的に、非定常的運動状態とは、体操している状態や、球技をしている状態等を指し、被検体がバラバラの周期(不特定な周期)で体を動かしている状態のことを言う。すなわち、非定常的運動状態とは、周期性を有さない運動をしている状態のことを指す。
さらに、安静状態から定常的運動状態又は非定常的運動状態へと、運動状態が変化したことを検出した場合、すなわち被検体が運動を開始したことを検出した場合には、周波数分解処理として、Type1やType2の窓関数を用いて、窓関数処理を行い、窓関数処理後のデータに対してFFTを行う。
一方、定常的運動状態又は非定常的運動状態から安静状態へと、運動状態が変化したことを検出した場合、すなわち被検体が運動を停止したことを検出した場合には、周波数分解処理としてパワースペクトル密度推定を行う。
5.2. 処理の流れ
拍動検出装置100が拍動情報として脈拍数を計測する際の具体的な処理の流れを、図11のフローチャートに示す。また、拍動検出装置100に接続された検出部200は、脈波センサー211の他に、体動センサー221として加速度センサーを有するものとする。
基本的な処理の流れは、第1の実施形態の図5に示した処理の流れと同様であるが、ステップS102に対応するステップS302が異なっている。本実施形態では、加速度検出信号に基づいて、被検体の運動状態を判定する(S302)。
次に、ステップS302の運動状態の判定方法の具体例を図12のフローチャートを用いて説明する。
まず、加速度検出信号に基づいて、ユーザーに動きがあるか否かを判定する(S400)。
ユーザーに動きがあると判定した場合には、加速度検出信号データの周波数分解処理を行う(S401)。なお、ここで行う周波数分解処理は、脈波検出信号に対して行う周波数分解処理ではない。そして、定常的運動中か否かを判断し(S402)、定常的運動状態であると判断した場合には、定常的運動状態を運動状態の暫定判定結果とする(S403)。
一方、定常的運動状態ではないと判断した場合には、非定常的運動状態を運動状態の暫定判定結果とする(S404)。
次に、ステップS403又はS404の後に、前回判定時の運動状態が安静状態だったか否かを判定する(S405)。
そして、前回判定時の運動状態が安静状態だった場合には、運動開始を検出したと判断し(S406)、運動状態判定処理を終了する。
一方、前回判定時の運動状態が安静状態ではなかったと判定した場合には、前回判定時の運動状態がステップS403で決定した暫定運動状態と一致するか否かを判定する(S407)。すなわち、ここでは、運動が変化したか否かを判断している。
前回判定時の運動状態が暫定運動状態と一致した場合には、運動状態が変化しておらず、同じ運動を継続していると考えられるため、暫定運動状態を判定結果として確定し(S408)、運動状態判定処理を終了する。
一方、前回判定時の運動状態が暫定運動状態と一致しない場合には、同じ運動を継続していないと考えられるため、運動状態が変化中であると判断し(S409)、運動状態判定処理を終了する。
さらに、ステップS400において、ユーザーに動きがないと判定した場合には、暫定判定結果を安静状態とする(S410)。そして、前回判定時の運動状態が安静状態ではない場合には、運動停止を検出したと判断し(S412)、運動状態判定処理を終了する。
一方、前回判定時の運動状態が安静状態だった場合には、ユーザーに動きがないと判断し、安静状態であると判断し(S413)、運動状態判定処理を終了する。以上が運動状態の判定処理の流れである。
次に、本実施形態を適用した場合と、本実施形態を用いない場合の脈拍数の計測結果を比較したグラフを図13に示す。
図13に示す計測結果は、歩行している状態(300秒付近)から1分程度ジョギングし、360秒付近から再び歩行したときの脈拍数の時間推移を示している。本実施形態を適用したことにより、経過時間に対してより早いタイミングで脈拍数の上昇、下降を観測できていると言える。
以上の本実施形態では、検出部200は、センサーである第1のセンサーの他に第2のセンサーをさらに有してもよい。この時、信号取得部110は、第1のセンサーで取得される第1のセンサー信号に基づく第1の検出信号と、第2のセンサーで取得される第2のセンサー信号に基づく第2の検出信号とを検出部200から取得してもよい。
そして、信号状態判定部150は、判定処理として、第2の検出信号の信号状態を判定する処理を行ってもよい。さらに、信号処理部130は、第2の検出信号の信号状態が第1の信号状態であると判定された場合には、第1の非対称窓関数を非対称窓関数として用いて、窓関数処理を第1の検出信号に対して行い、第2の検出信号の信号状態が第2の信号状態であると判定された場合には、第1の非対称窓関数と異なる第2の非対称窓関数を用いて、窓関数処理を第1の検出信号に対して行ってもよい。
これにより、第1の検出信号と異なる第2の検出信号の信号状態に応じて、窓関数処理に用いる非対称窓関数を変更して、周波数分解処理を行うこと等が可能になる。
また、信号処理部130は、第2の検出信号の信号状態が第1の信号状態であると判定された場合には、非対称窓関数として第1の非対称窓関数を用いた第1の検出信号に対する窓関数処理と、窓関数処理後のデータに対するフーリエ変換処理とを周波数分解処理として行い、第2の検出信号の信号状態が第2の信号状態であると判定された場合には、第1の検出信号に対するパワースペクトル密度推定処理を周波数分解処理として行ってもよい。
これにより、第2の検出信号の信号状態に応じて信号状態を判定し、例えばSN比が第2の信号状態よりも低い第1の信号状態である場合には、サイドローブ抑制効果の高い周波数分解処理を行い、SN比が第1の信号状態よりも高い第2の信号状態である場合には、更にリアルタイム性を重視した周波数分解処理を行うこと等が可能になる。
また、信号状態判定部150は、判定処理として、第2の検出信号に基づいて被検体の運動状態を判定する処理を行ってもよい。そして、信号処理部130は、運動状態の判定結果に基づいて、第1の検出信号に対して行う処理を決定してもよい。なお、運動状態の判定処理は、信号状態判定部150に含まれる運動状態判定部153が行うものとする。
つまり、信号解析装置100を拍動検出装置100に限定して言い換えると、信号状態判定部150は、信号状態の判定処理として、体動検出信号に基づいて被験体の運動状態を判定する処理を行ってもよい。そして、信号処理部130は、運動状態に応じて異なる周波数分解処理を行ってもよい。
前述したように、具体的に運動状態としては、安静状態、定常的運動状態、非定常的運動状態等がある。ここで、体動センサーとして加速度センサーを用いる場合の具体的な運動状態の判定処理の例について、図14(A)〜図14(C)を用いて説明する。図14(A)〜図14(C)は、各運動状態における加速度検出信号のスペクトルを示す。各図の上図は、16秒分の加速度検出信号の時間波形を示しており、各図の下図は、上図に示す加速度検出信号のFFT結果を示している。
まず、図14(A)の場合には、加速度検出信号の振幅が所定の閾値以下であるため、「安静状態」と判定する。図14(B)の場合には、加速度検出信号の振幅が所定の閾値以上であるため、「動きあり」と判定する。加えて、特定の周波数域に、相対的に際立って大きなパワースペクトルがないため、「非定常的運動状態」と判定する。さらに、図14(C)の場合には、図14(B)の場合と同様に、加速度検出信号の振幅が所定の閾値以上であるため、「動きあり」と判定する。加えて、特定の周波数域に、相対的に際立って大きなパワースペクトルがあるため、「定常的運動状態」と判定する。
これにより、運動状態に応じて異なる周波数分解処理を行うこと等が可能になる。
具体的には、信号処理部130は、運動状態が定常的運動状態であると判定された場合には、第1の周波数分解処理を行い、運動状態が非定常的運動状態であると判定された場合には、第2の周波数分解処理を行ってもよい。
これにより、脈波検出信号が周期性を有する場合と、周期性を有さない場合において、それぞれ異なる周波数分解処理を行うこと等が可能になる。
さらに、信号処理部130は、運動状態が定常的運動状態であると判定された場合には、第1の周波数分解処理として、第1の窓関数を用いた、脈波検出信号のサンプリングデータに対する窓関数処理と、窓関数処理後の第1のデータに対するフーリエ変換処理とを行い、運動状態が非定常的運動状態であると判定された場合には、第2の周波数分解処理として、第1の窓関数と異なる第2の窓関数を用いた、脈波検出信号のサンプリングデータに対する窓関数処理と、窓関数処理後の第2のデータに対するフーリエ変換処理とを行ってもよい。
これにより、脈波検出信号が周期性を有する場合と、周期性を有さない場合において、それぞれ異なる窓関数を用いて窓関数処理を行うこと等が可能になる。
ここで、脈波検出信号のサンプリングデータD0〜DN(Nは2以上の正の整数)のうちの第jのサンプリングデータDjは、第iのサンプリングデータDiがサンプリングされたタイミングよりも後のタイミングにサンプリングされたデータである(整数i、jは、0≦i<N/2<j≦Nを満たす整数)。
この時、信号処理部130は、運動状態が定常的運動状態であると判定された場合には、第jのサンプリングデータDjに対応する窓関数値h(j)が最大値となり、第iのサンプリングデータDiに対応する窓関数値h(i)が窓関数値h(j)よりも小さい値となる非対称窓関数を第1の窓関数として、窓関数処理を行い、運動状態が非定常的運動状態であると判定された場合には、第1の窓関数と異なる非対称窓関数である第2の窓関数により窓関数処理を行ってもよい。
すなわち、運動状態が定常的運動状態である時に用いる窓関数と、非定常的運動状態である時に用いる窓関数は、それぞれ異なる非対称窓関数であってもよい。
これにより、脈波検出信号が周期性を有する場合と、周期性を有さない場合において、それぞれ異なる非対称窓関数を用いて窓関数処理を行うこと等が可能になる。
また、運動状態が安静状態の時には、脈波検出信号に体動などによるノイズはほとんど含まれない。
そこで、信号処理部130は、運動状態が安静状態であると判定された場合には、第1の周波数分解処理を行い、運動状態が定常的運動状態又は非定常的運動状態であると判定された場合には、第2の周波数分解処理を行ってもよい。
これにより、運動状態が安静状態である場合と、運動状態が定常的運動状態又は非定常的運動状態である場合とで、異なる周波数分解処理を行うこと等が可能になる。
具体的には、信号処理部130は、運動状態が安静状態であると判定された場合には、第1の周波数分解処理としてパワースペクトル密度推定処理を行い、運動状態が運動中状態であると判定された場合には、第2の周波数分解処理として、脈波検出信号のサンプリングデータに対する窓関数処理と、窓関数処理後のデータに対するフーリエ変換処理とを行ってもよい。
これにより、運動状態が定常的運動状態又は非定常的運動状態である場合には、サイドローブの抑制効果の高い周波数分解処理を行い、運動状態が安静状態である場合には、更にリアルタイム性を重視した周波数分解処理を行うこと等が可能になる。
また、信号処理部130は、運動状態が定常的運動状態又は非定常的運動状態であると判定された場合には、第jのサンプリングデータDjに対応する窓関数値h(j)が最大値となり、第iのサンプリングデータDiに対応する窓関数値h(i)が窓関数値h(j)よりも小さい値となる非対称窓関数を第1の窓関数として、窓関数処理を行ってもよい。
これにより、運動状態が定常的運動状態又は非定常的運動状態である場合に、非対称窓関数による窓関数処理を行って、リアルタイム性の改善された周波数分解処理を行うこと等が可能となる。
また、加速度検出信号のスペクトルに基づいて運動を開始したか否かを判定し、判定結果に基づき、実行する周波数分解処理を切り替えても良い。図15(A)には、運動開始前の加速度検出信号のスペクトルを示しており、図15(B)には、運動開始直後の加速度検出信号のスペクトルを示している。具体的な判定方法は図12のフローチャートに示した通りである。このように、加速度検出信号の波形を観測すれば、運動を開始したか否かを判断することができる。
さらに、加速度検出信号のスペクトルに基づいて運動を停止したか否かを判定し、判定結果に基づき、実行する周波数分解処理を切り替えても良い。図16(A)には、運動中の加速度検出信号のスペクトルを示しており、図16(B)には、運動停止直後の加速度検出信号のスペクトルを示している。具体的な判定方法は図12のフローチャートに示した通りである。このように、加速度検出信号の波形を観測すれば、運動を停止したか否かを判断することができる。
さて、前述した第2の検出信号の用途は、信号状態の判定だけには限られない。
すなわち、信号処理部130は、第2の検出信号に基づいて、第1の検出信号に対して信号処理を行ってもよい。
具体的には、信号処理部130(ノイズ低減処理部131)は、第2の検出信号に基づいて、第1の検出信号に対するノイズ低減処理を、前述した信号処理として行ってもよい。
ここで、拍動検出装置100においては、脈波センサーから取得される脈波センサー信号(或いはそれから取得される脈波検出信号)には種々のノイズが混入することが想定される。よって、脈波センサー信号に含まれる体動ノイズ成分等を低減するノイズ低減処理を行わないとすれば、検出される拍動情報にもノイズの影響が及ぶため、当該拍動情報の値は装着者の実際の拍動を正確に表していない可能性がある。この場合に、拍動情報を単純に出力したのでは、当該拍動情報に基づくユーザーの判断を誤らせかねない。
そこで、ノイズ低減処理部131は、第1の検出信号である体動検出信号を用いて、脈波検出信号から体動に起因したノイズ(体動ノイズ成分)を低減する処理を行ってもよい。
ここで、体動ノイズ成分(体動ノイズ成分信号)とは、脈波センサー信号に含まれる成分信号のうち、人間の定常的な運動・動作(体動)等に起因して生じた血管の容積変化を示す成分信号のことをいう。例えば、腕や指に装着する脈拍計の場合、歩行中、ジョギング中の腕振りの影響で、その腕振りのリズムに合わせて血管に容積変化が生じる。このように人間が定常的な動作をすることにより、体動ノイズ成分は、周期的信号となり、その動作の周波数を持った成分信号となる。また、体動ノイズ成分は、脈波センサー装着部位近辺に装着した加速度センサーが出力する信号の波形と相関性が高いという特徴を持つ。
脈波センサー211から取得された脈波センサー信号には、心拍に起因する成分の他に、体動に起因する成分等も含まれている。それは、拍動情報の演算に用いられる脈波検出信号(DC成分カット後の脈波センサー信号)でも同様である。このうち拍動情報の演算に有用であるのは心拍に起因する成分であって、体動等に起因する成分は演算の妨げとなる。よって、体動センサーを用いて体動に起因する信号(体動検出信号)を取得し、脈波検出信号から体動検出信号と相関のある信号成分(推定体動ノイズ成分と呼ぶ)を除去することで、脈波検出信号に含まれる体動ノイズ成分を低減する。ただし、脈波検出信号中の体動ノイズ成分と、体動センサーからの体動検出信号は、ともに同一の体動に起因する信号であったとしてもその信号レベルまで同一であるとは限らない。よって、例えば、体動検出信号に対して適応的にフィルター係数が決定されるフィルター処理を行うことで推定体動ノイズ成分を算出し、脈波検出信号と算出した推定体動ノイズ成分のみからなる信号との差分をとるものとする。
これにより、第1の検出信号に含まれるノイズを低減させ、フーリエ変換後のサイドローブ特性を改善すること等が可能になる。
また、ノイズ低減処理等の信号処理は、第1の実施形態においても行うことができる。ノイズ低減処理によりノイズを低減させることができれば、前述した第1の実施形態の信号状態が変わるため、よりリアルタイム性を重視した周波数分解処理を行うこと等が可能になる。
6.その他の適用例
前述した信号解析装置(拍動検出装置)100は、脈拍計測に限らず、その他の計測(解析)においても利用することができる。例えば、各種センサー信号を計測し、その周波数分解結果に基づいて周期、速度、頻度などを算出する分野であれば、あらゆる分野において利用可能である。これにより、従来手法と同等の分解能を維持しながらリアルタイム性の改善された周期、速度、頻度などを算出することができる。
さらに具体的には、信号解析装置100は、単位時間あたりの歩数を計測するピッチ計測や、加速度検出信号に基づく運動の反復周期計測等に利用することができる。その他にも、心拍間隔のゆらぎを周波数分析することで、交感神経や副交感神経の機能を推定する心拍変動解析(自律神経分析)や、呼吸周期解析、血圧調節周期解析、脳波に含まれる自発電位の計測、気候変動解析、太陽黒点活動の周期解析など、多くの計測や解析に利用することができる。
また、前述した第1の実施形態又は第2の実施形態等の信号解析装置(拍動検出装置)100及び電子機器等は、その処理の一部または大部分をプログラムにより実現してもよい。
これにより、第1の実施形態又は第2の実施形態等の処理をプログラムにより実現することが可能になる。プログラムは、例えば、スマートフォン等のようなデバイスの処理部(例えばDSP)等に読み出されて実行されるプログラムであってもよい。
また、ユーザーが装着する脈波検出デバイスは、脈波センサー211と、脈波センサー211からの脈波センサー信号を無線又は有線で通信する通信部から構成されてもよい。その場合、第1の実施形態又は第2の実施形態のプログラムは、脈波検出デバイスとは別体として設けられ、前述した通信部から脈波センサー信号を受信する情報処理システムの処理部(例えばCPU)等に読み出されて実行される。この情報処理システムはPC等のユーザーによる装着が想定されないものであってもよいし、スマートフォン等のユーザーによる装着(携帯)が想定されるものであってもよい。また、インターネット等のネットワークを介して接続されたサーバーシステム等を情報処理システムとしてもよい。
脈波検出デバイスと、プログラムが実行される情報処理システムが別体である場合、拍動情報のユーザーへの提示に用いられる表示部70は任意の箇所に設けられる。例えば、情報処理システムの表示部70に表示してもよいし、脈波検出デバイスに表示部70を設け、情報処理システムから出力された拍動情報を表示してもよい。また、異なる機器(例えば情報処理システムとしてサーバーシステムを用いた場合の任意のクライアント装置等)の表示部70に表示してもよい。
そして、上記のプログラムは、情報記憶媒体に記録される。ここで、情報記録媒体としては、DVDやCD等の光ディスク、光磁気ディスク、ハードディスク(HDD)、不揮発性メモリーやRAM等のメモリーなど、情報処理システム等によって読み取り可能な種々の記録媒体を想定できる。
以上のように第1の実施形態及び第2の実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語と共に記載された用語は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。また、信号解析装置(拍動検出装置)100、電子機器及びプログラム等の構成、動作も第1の実施形態及び第2の実施形態で説明したものに限定されず、種々の変形実施が可能である。