説明

信号処理装置、信号処理方法および生体情報測定装置

【課題】信号処理量を低減し消費電力をより抑えた、時系列信号からノイズ成分を除去する信号処理装置を提供することを目的とする。
【解決手段】信号処理装置は、周期性を有する第1信号成分と第1ノイズ成分とを含む第1の時系列信号と、前記第1信号成分と所定の関係を有する第2信号成分および前記第1ノイズ成分と所定の関係を有する第2ノイズ成分を含む第2の時系列信号と、前記第1ノイズ成分と前記第2ノイズ成分との所定の関係とに基づいて、基準となる1つの前記信号を生成し、前記第1ノイズ成分と前記第2ノイズ成分との前記所定の関係を前記所定の差分ずつ異ならせた他の複数の信号を、前記第1時系列信号と前記所定の差分とから算出したデータとを用いて漸化式によって生成し、第1の所定時間範囲での該生成信号の周期性を用いて、前記第1の所定時間範囲での前記第1ノイズ成分と前記第2ノイズ成分との前記所定の関係を推定する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、時系列信号からノイズ成分を除去する信号処理装置、信号処理方法および生体情報測定装置に関する。
【背景技術】
【0002】
従来、ノイズ成分が重畳した時系列データからノイズ成分を除去する信号処理に関する技術が、様々な信号処理装置に応用されてきた。特に時系列データが生体情報に関する情報を含んでいる場合には、上記の信号処理装置は、生体情報測定装置と呼ばれている。生体情報測定装置は、生体組織から生体情報を非侵襲で検出する装置であり、具体的には光電脈波計と呼ばれる生体の脈波波形および脈拍数を測定する測定装置や、パルスオキシメータと呼ばれる動脈血中酸素飽和濃度を測定する測定装置等である。これらの測定装置の原理は、生体組織を透過または反射した光を受光することによって得られる、生体組織の脈動による変動分に対応した信号成分に基づいて、血中における吸光物質の濃度等の生体情報を求めるものである。
【0003】
一般に、生体組織を透過または反射した光を受光することによって得られる、生体情報の検出に必要なデータには様々なノイズ成分が重畳されている。ノイズ成分は、主に、生体情報測定装置を使用している際に、生体が体を動かす等の体動を行うことによるものである。ノイズ成分が信号成分に重畳すると生体情報の算出において誤差要因となるため、ノイズ成分を除去することが望まれている。
【0004】
互いに波長の異なる複数の光を生体にそれぞれ照射した場合に、生体組織を透過または反射した光の強度における直流交流比に基づいて、生体情報を算出する技術が提案されてきた。特に、信号成分にノイズ成分が重畳している場合には、各波長についての直流交流比は、信号成分とノイズ成分とで表される。このように表されたノイズ成分を除去する技術として、測定されたデータに基づいて生成された周期性を有する信号成分を含むデータから、周期性を用いることによって信号成分を抽出し、データからノイズ成分を除去する技術が提案されている(特許文献1等参照)。
【0005】
この技術によれば、信号成分とノイズ成分との相互相関を用いた従来の手法に比べ、ノイズ成分除去のための演算処理量を低減することができる。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】国際公開第2010/073908号明細書
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、特許文献1の技術によって演算処理量が低減したとはいえ、乗算回数が比較的多いため、消費電力が大きくなってしまうことは否めない。特に、携帯用の生体情報測定装置では、通常、電池で駆動されるため、消費電力は重大な問題である。
【0008】
また、生体情報測定装置は、手術室、集中治療室等の病棟のみならず、呼吸不全患者、在宅酸素療法患者の日常生活中の呼吸状態のデータ収集や管理、睡眠時無呼吸症候群のスクリーニング、登山等のスポーツ分野等常時身に着ける用途にまで用いられつつある。このような状況に鑑みても、生体情報測定装置には、小型化、軽量化、省電力化および低価格化等も求められている。
【0009】
例として取りあげた生体情報測定装置に限らず、一般に、時系列データからノイズ成分を除去する信号処理を行う信号処理装置においても、ノイズ成分を除去する信号処理は消費電力の点で重大な問題といえる。
【0010】
本発明は、上述の事情に鑑みて為された発明であり、その目的は、信号処理量を低減し消費電力を抑えた信号処理装置、信号処理方法および生体情報測定装置を提供することである。
【課題を解決するための手段】
【0011】
本発明者は、種々検討した結果、上記目的は、以下の本発明により達成されることを見出した。
【0012】
本発明の一態様に係る信号処理装置は、周期性を有する第1信号成分と、第1ノイズ成分とを含む第1の時系列信号と、前記第1信号成分と所定の関係を有する第2信号成分および前記第1ノイズ成分と所定の関係を有する第2ノイズ成分を含む第2の時系列信号と、前記第1ノイズ成分と前記第2ノイズ成分との前記所定の関係とに基づいて、前記第1の時系列信号と前記第2の時系列信号とから前記第1信号成分を含む信号であって、前記第1ノイズ成分と前記第2ノイズ成分との前記所定の関係を所定の差分ずつ異ならせた複数の信号を生成する信号生成部と、第1の所定時間範囲での前記信号生成部で生成した各信号の周期性を用いて、前記第1の所定時間範囲での前記第1ノイズ成分と前記第2ノイズ成分との前記所定の関係を推定する推定部とを備え、前記信号生成部は、基準となる1つの信号を生成し、当該信号と、前記第1時系列信号と前記所定の差分とから算出したデータとを用いた漸化式によって他の信号を生成することを特徴とする。
【0013】
また、上述の信号処理装置において、前記信号生成部が、生成した信号に2値化処理を行うことで2値化信号をさらに生成し、前記推定部が、前記2値化信号の周期性を用いて前記信号生成部で生成した信号の周期を推定することを特徴とする。
【0014】
そして、本発明の他の一態様に係る信号処理方法は、信号処理方法であって、第1の所定時間範囲での、周期性を有する第1信号成分と第1ノイズ成分とを含む第1の時系列信号と、前記第1信号成分と所定の関係を有する第2信号成分および前記第1ノイズ成分と所定の関係を有する第2ノイズ成分を含む第2の時系列信号と、前記第1ノイズ成分と前記第2ノイズ成分との前記所定の関係とに基づいて、前記第1の時系列信号と前記第2の時系列信号とから前記第1信号成分を含む信号であって、前記第1ノイズ成分と前記第2ノイズ成分との前記所定の関係を所定の差分ずつ異ならせた複数の信号を生成する信号生成ステップと、第1の所定時間範囲での前記生成ステップで生成した各信号の周期性を用いて、前記第1の所定時間範囲での前記第1ノイズ成分と前記第2ノイズ成分との前記所定の関係を推定する推定ステップとを備え、前記信号生成ステップは、基準となる1つの信号を生成し、当該信号と、前記第1時系列信号と前記所定の差分とから算出したデータとを用いた漸化式によって他の信号を生成することを特徴とする。
【0015】
このような構成の信号処理装置では、前記周期性を用いることによってノイズ成分を除去する際に必要な信号処理において、漸化式を用いることで、乗除算よりも加減算を多用するので、結果的に従来技術より信号処理量を低減することができる。このため、信号処理量の低減により、必要とされるCPU性能を低く抑えることが可能となり、また、ノイズ成分除去の演算に伴う消費電力も抑制することが可能となる。
【0016】
また、上述の信号処理装置において、前記信号生成部は、基準となる信号の閾値を算出し、当該閾値と、前記第1の時系列信号又は前記第2の時系列信号と前記所定の差分とを用いて算出したデータとを用いて、漸化式によって他の信号の閾値を算出することを特徴とする。
【0017】
このような構成の信号処理装置によれば、2値化処理を行う際の閾値を、生成信号毎に設定でき、且つ、閾値を求める際の信号処理量が従来よりも低減できるので、より正確で迅速な2値化処理が可能となる。
【0018】
また、上述の信号処理装置において、前記信号生成部が生成した信号は、時系列信号であり、前記信号生成部は、生成した信号から所定数毎に間引かれた結果のデータを用いて2値化処理を行うことを特徴とする。
【0019】
このような構成の信号処理装置によれば、測定データのうちの一部のデータを用いて信号処理を行うので、より信号処理量を低減することができる。
【0020】
また、上述の信号処理装置において、前記閾値を挟む2つの前記間引かれた結果のデータの間の間引いたデータに、前記2値化処理を行うことを特徴とする。
【0021】
このような構成の信号処理装置によれば、閾値近辺では、測定した間隔のデータを用いて2値化するので、迅速であり、且つ、より正確な2値化処理が可能となる。
【0022】
また、本発明の一態様に係る生体情報測定装置は、互いに波長の異なる複数の光を生体へそれぞれ照射して前記生体を透過または反射した各光をそれぞれ受光することによって得られた少なくとも第1測定データまたは第2測定データに基づいて、前記生体の生体情報を測定する生体情報測定装置であって、周期性を有する第1信号成分と、第1ノイズ成分からなる第1測定データを測定する第1測定部と、前記第1信号成分と所定の関係を有する第2信号成分および第1ノイズ成分と所定の関係を有する第2ノイズ成分を含む第2測定データを測定する第2測定部と、前記第1測定データと、前記第2測定データと、前記第1ノイズ成分と前記第2ノイズ成分との前記所定の関係とに基づいて、前記第1測定データと前記第2測定データとから前記第1信号成分を含む信号であって、前記第1ノイズ成分と前記第2ノイズ成分との前記所定の関係を所定の差分ずつ異ならせた複数の信号を生成する信号生成部と、前記信号生成部が生成した信号の周期性を用いて、前記第1ノイズ成分と前記第2ノイズ成分との前記所定の関係を推定する推定部とを備え、前記信号生成部は、基準となる1つの信号を生成し、当該信号と、前記第1測定データと前記所定の差分とから算出したデータとを用いた漸化式によって他の信号を生成することを特徴とする。
【0023】
このような構成の生体情報測定装置によれば、演算処理量を低減し消費電力を抑制した生体の血中酸素飽和度を測定する生体情報測定装置を提供することができる。また、演算処理量が低減されていることから、高性能な処理機能を備える必要が少なくなり、低価格化、小型化、軽量化の実現が可能となる。
【0024】
また、上述の生体情報測定装置において、前記推定部が推定した所定の関係に基づいて、所定の周期で血中酸素飽和度を算出する血中酸素飽和度算出部を備え、前記生成信号部は、前記所定の周期よりも長い周期で、前記複数の信号を生成して、2値化信号を生成し、前記推定部は、前記2値化信号の周期性に基づいて、前記第1ノイズ成分と前記第2ノイズ成分との前記所定の関係を推定することを特徴とする。
【0025】
測定データから血中酸素飽和度を求める周期よりも長い周期で、前記第1ノイズ成分と前記第2ノイズ成分との比である所定の関係k_vを算出する。k_vは、急激には変化しないからである。従って、複数の信号を生成し2値化する等の処理、データを測定するごとk_vを求めるよりも信号処理量が減ることになり、より迅速な信号処理量が可能となる。
【0026】
また、上述の生体情報測定装置において、前記推定部が推定した所定の関係を有する信号に2値化処理を行うことで2値化信号を生成し、当該2値化信号の周期性を用いて脈拍数を算出する脈拍数算出部を備えることを特徴とする。
【0027】
このような構成の信号処理装置では、前記周期性を用いることによってノイズ成分を除去し、心拍数を推定する際に必要な信号処理において、漸化式を用いることで、乗除算よりも加減算を多用するので、結果的に従来技術より信号処理量を低減することができる。
【発明の効果】
【0028】
本発明に係る信号処理装置、信号処理方法および生体情報測定装置は、ノイズ成分除去のために必要な信号処理量を低減することができ、これにより、ノイズ成分除去の信号処理に伴う消費電力を抑制することが可能となる。
【図面の簡単な説明】
【0029】
【図1】実施形態における生体情報測定装置の構成を示すブロック図である。
【図2】実施形態の生体情報測定装置における生体情報測定処理を示すフローチャートである。
【図3】実施形態の生体情報測定装置における初期処理を示すフローチャートである。
【図4】実施形態の生体情報測定装置におけるkv_min算出処理を示すフローチャートである。
【図5】測定データによるR-kv*IRの波形を示す図である。
【図6】実施形態の生体情報測定装置における2値化処理を示すフローチャートである。
【図7】図6の2値化処理を説明するための図である。
【図8】実施形態の生体情報測定装置におけるバラツキ指数算出処理を示すフローチャートである。
【図9】実施形態の生体情報測定装置における脈拍数PR算出処理を示すフローチャートである。
【図10】変形例の生体情報測定装置における2値化処理を示すフローチャートである。
【図11】変形例の生体情報測定装置における脈拍数PR算出処理を示すフローチャートである。
【発明を実施するための形態】
【0030】
以下に、本発明の前提となる従来技術および実施形態について述べる。なお、便宜上、信号処理装置のうち、特に生体情報測定装置を例として取りあげるが、生体情報測定装置のみならず、ノイズ成分を除去する信号処理装置にも本発明は適用可能である。
<本発明の前提となる従来技術>
まず、本発明の前提となる従来技術について説明する。この説明をするにあたり、一例として、互いに波長IR、Rの異なる複数の光を生体へそれぞれ照射して前記生体を透過または反射した各光をそれぞれ受光することによって得られた各測定データに基づいて前記生体の生体情報として血中酸素飽和度を測定する場合について説明する。
【0031】
ランバート・ベールの法則によって、生体組織を透過または反射したある波長の光の強度における交流成分と直流成分との比は、その波長での生体組織の吸光度の変化分に等しいと近似される。
【0032】
上記ランバート・ベールの法則による近似を用いることによって、赤外波長IRについての、透過光または反射光の強度の直流成分と交流成分との比である赤外直交比IR_signalは、波長IRについての生体組織の吸光度の変化分と等しいと見なすことができる。同様に、赤色波長Rについての、透過光または反射光の強度の直流成分と交流成分との比である赤色直交比R_signalも、波長Rについての生体組織の吸光度の変化分と等しいと見なすことができる。
【0033】
前記赤外直交比IR_signalは、式(1)のように表される。
【0034】
【数1】

【0035】
ここで、sは、吸光度の変化分の信号成分で、nは、信号成分に重畳しているノイズ成分である。
【0036】
そして、前記赤色直交比R_signalは、式(2)で表される。
【0037】
【数2】

【0038】
ここで、k_aは、波長IRにおける吸光度の変化分の信号成分sと波長Rの吸光度の変化分の信号成分との比であり、k_vは、波長IRの信号成分に重畳したノイズ成分nと波長Rの信号成分に重畳したノイズ成分との比である。
【0039】
この式(2)のk_aと動脈血中酸素飽和度とは、一対一に対応することが知られており、k_aを求めることによって、動脈血中酸素飽和度を求めることができる。
【0040】
また、式(1)にk_vを乗算することによって式(3)が得られ、式(3)から式(2)を減算することによって、以下の式(4)が得られる。
【0041】
【数3】

【0042】
【数4】

【0043】
同様に、上の式(1)にk_aを乗算することによって式(5)が得られ、式(5)から(式2)を減算することによって、以下の式(6)が得られる。
【0044】
【数5】

【0045】
【数6】

【0046】
ここで、信号成分sとノイズ成分nは、独立であるという関係、すなわち以下の関係式(7)を用い、かつ、短い時間内では、k_aおよびk_vが一定という条件の下で、上の(4)式と(6)式の相関をとることによって、式(8)が得られる。
【0047】
【数7】

【0048】
【数8】

【0049】
ここで、Σは、k_aおよびk_vが一定であるような短い時間に関しての総和である。iは、光の強度の変化分の時系列データIR_signal、R_signalのデータ番号であり、データの測定時間間隔をΔt、測定開始時刻をt0として、t=Δt*i+t0という関係で時間tと結ばれている。
式(8)にはk_vとk_aという未知数が2つ含まれているため、式(8)のみからk_aとk_vとを求めることができない。
【0050】
ここで、k_vを求めるために式(4)の右辺は、ほぼ周期的であることに着目し、式(4)の左辺が周期性をもつようなk_vを求める。
【0051】
このように求められたk_vを式(8)に代入して、式(8)を満たす場合のk_aを求める。このk_aに基づいて、ノイズ成分を低減した動脈血中酸素飽和度を求めることができる。そして、上述の演算方法では、例えば、演算処理量が比較的大きなフーリエ変換等を用いる必要がないので、その分演算処理量を低減することが可能となっている。
<実施形態>
本実施形態は、式(4)の左辺が周期性をもつようなk_vを求める際の演算処理量を上記式をそのまま演算してk_vを求める場合の演算処理量に比べて大幅に削減するものである。
【0052】
ここで、k_vを求める際の演算処理の削減方法について説明する。
【0053】
式(4)の左辺に相当するq(以下の式参照)が最も周期性を持つようなk_vを求める。
【0054】
q(i)=IR_signal(i)*k_v-R_signal(i)
ここで、iは、1からN個まである時系列データのi番目であることを表し、iと時間との対応は、上記<本発明の前提となる従来技術>で述べた通りである。Nは、動脈酸素飽和度の算出に必要なデータ数が選ばれ、例えば200等の値が用いられる。
【0055】
動脈血中酸素飽和度を求めるには、まず、qを求め、qを2値化してそのパルス周期のバラツキを表わす指標が最小になるk_vを決定する。そして、決定したk_vをkv_minとして(以下、パルス周期のバラツキを表わす指標が最小になるk_vを「kv_min」という。)、
ΣR_signal(i)2-kv_min*ΣR_signal(i)*IR_signal(i)
-k_a*{ΣR_signal(i)*IR_signal(i)-kv_min*ΣIR_signal(i)2}=0
を解いて、
k_a={ΣR_signal(i)2-kv_min*ΣR_signal(i)*IR_signal(i)}
/{ΣR_signal(i)*IR_signal(i)-kv_min*ΣIR_signal(i)2}
よりk_aを決定する。そして、k_aに基づいて血中酸素飽和度を算出する。Σはiに関して1からNまで取られる総和である(以下の式でも同様である。)。また、ΣR_signal(i)2、ΣIR_signal(i)2、ΣR_signal(i)*IR_signal(i)を、それぞれR_signal2、ΣIR_signal2、ΣR_signal*IR_signalと記載することがある。
【0056】
k_a={ΣR_signal(i)2-kv_min*ΣR_signal(i)*IR_signal(i)}
/{ΣR_signal(i)*IR_signal(i)-kv_min*ΣIR_signal(i)2}
において、R_signal、IR_signalをそれぞれ時間差分に置き換えたものでも良い。
【0057】
kv_minを求める方法は、次の通りである。
【0058】
まず、k_vをΔk_vずつ変化させて、それぞれのk_vについてqを求める。
【0059】
例えば、k_vをある値からΔk_vずつM回プラスし、また、M回マイナスして、(2*M+1)通りのqを算出する。この場合、各k_vについての演算では、N回の乗算を行うことになるので、すべてのk_vについてのqを求めるには、N*(2*M+1)回の乗算を行うことになる。
【0060】
次に、それぞれのqにおける周期性を判断するために、それぞれのqを2値化する。2値化信号を生成する場合に用いる閾値は、各k_v応じて閾値を設定することが好ましい。qの振幅の大きさは各k_vによって異なるからである。
【0061】
閾値は例えば、以下の式
閾値=f*√(1/N)Σq(i)2
より求めることができる。fは、例えば0.2である。
【0062】
(1/N)Σq(i)2をQと表わすと
Q=(1/N)*Σq2
=k_v*k_v*(1/N)*ΣIR_signal2
-2*k_v*(1/N)*ΣR_signal*IR_signal+(1/N)*ΣR_signal2
である。
【0063】
従って、(1/N)*ΣIR_signal2、(1/N)*ΣR_signal*IR_signal、(1/N)*ΣR_signal2は一度求めておけばよい。しかし、各k_vのQの算出には4回の乗算が必要であるので、すべてのk_vについては、4*(2*M+1)回の乗算が必要であることになり、計算量が非常に多くなる。
【0064】
さらに、より精度を求めて、k_vを細かく変化させてq(i)のパルス幅のバラツキを調べる場合には、計算量が大幅に増えてしまうことになる。
【0065】
そこで、本実施形態では計算量を削減するために、以下に示す手順でqおよびQを求める。
【0066】
m番目(mは-M〜Mの範囲の整数)のk_vに対応するqおよびQは、q(m,i)、Q(m)と表し、m=0のときのq(0,i)、Q(0)、及び、mが0でない場合のQ(m)を求めるために必要なT(0)は、以下の式(A1)〜(A3)で求める。
【0067】
q(0,i)=R_signal(i)-k_v(0)*IR_signal(i) ・・・(A1)
Q(0)=k_v(0)2*SUM_sq_IR-2*k_v(0)*SUM_prdct_R_IR+SUM_sq_R ・・・(A2)
T(0)=2*k_v(0)*dkv_SUM_sq_IR-2*dkv_SUM_prdct_R_IR ・・・(A3)
なお、以下の値は事前に計算しておく。
【0068】
SUM_sq_R=(1/N)*ΣR_signal(i)2 ・・・(A4)
SUM_sq_IR=(1/N)*ΣIR_signal(i)2 ・・・(A5)
SUM_prdct_R_IR=(1/N)*ΣR_signal(i)*IR_signal(i) ・・・(A6)
次に、1≦m≦Mのとき(m=0から増加させる)のq及びQは、以下の式(B1)〜(B3)で求める。
【0069】
q(m,i)=q(m-1,i)+dkv_IR(i) ・・・(B1)
Q(m)=Q(m-1)+T(m-1) ・・・(B2)
T(m)=T(m-1)+U ・・・(B3)
また、-M≦m≦-1のとき(m=0から減少させる)のq及びQは、以下の式(B4)〜(B6)で求める。
【0070】
q(m,i)=q(m+1,i)-dkv_IR(i) ・・・(B4)
Q(m)=Q(m+1)-T(m+1)+U ・・・(B5)
T(m)=T(m+1)-U ・・・(B6)
なお、以下の値は事前に計算しておく。
【0071】
dkv_IR(i)=Δk_v*IR_signal(i) ・・・(A7)
U=2*sq_dkvSUM_sq_IR ・・・(A8)
dkv_SUM_prdct_R_IR=Δk_v*SUM_prdct_R_IR ・・・(A9)
dkv_SUM_sq_IR=Δk_v*SUM_sq_IR ・・・(A10)
sq_dkvSUM_sq_IR=Δk_v*dkv_SUM_sq_IR ・・・(A11)
なお、dkv_IR(i)はIR_signal(i)を算出するごとに算出しておいてもよい。
【0072】
このように、式(A1)を用いてq(0,i)、式(A7)を用いてdkv_IR(i)を算出しておけば、q(m,i)の算出は式(B1)および式(B4)で示すように加減算のみで実行できる。
【0073】
また、同様に式(A2)を用いてQ(0)、式(A3)を用いてT(0)、式(A8)を用いてUを算出しておけば、Q(m)の算出は式(B2)および式(B3)、並びに、式(B5)および式(B6)で示すように加減算のみで実行できる。従って、計算量を大幅に少なくすることができる。
【0074】
ここで、式(B2)および式(B3)、式(B5)および式(B6)について、説明する。
mを増加させるときのQ(m)(式B(2))は以下のように求めることができる。
Q(m)={k_v'(m)}2*SUM_sq_IR
-2*k_v'(m)*SUM_prdct_R_IR+SUM_sq_IR
={k_v'(m-1)+Δk_v}2*SUM_sq_IR
-2*{k_v'(m-1)+Δk_v}*SUM_prdct_R_IR+SUM_sq_IR
={k_v'(m-1)}2*SUM_sq_IR+2*k_v'(m-1)*dkv_SUM_sq_IR+sq_dkv_SUM_sq_IR
-2*k_v'(m-1)*SUM_prdct_R_IR-2*dkv_SUM_prdct_R_IR+SUM_sq_IR
ここで
{k_v'(m-1)}2*SUM_sq_IR-2*k_v'(m-1)*SUM_prdct_R_IR+SUM_sq_IR=Q(m-1)だから、
Q(m)=Q(m-1)+2*k_v'(m-1)*dkv_SUM_sq_IR+sq_dkv_SUM_sq_IR-2*dkv_SUM_prdct_R_IR
2*k_v'(m)*dkv_SUM_sq_IR+sq_dkv_SUM_sq_IR-2*dkv_SUM_prdct_R_IR=T(m)と定義すると、
2*k_v'(m-1)*dkv_SUM_sq_IR+sq_dkv_SUM_sq_IR-2*dkv_SUM_prdct_R_IR=T(m-1)だから
Q(m)=Q(m-1)+T(m-1)
また、
T(m)=2*k_v'(m)*dkv_SUM_sq_IR+sq_dkv_SUM_sq_IR-2*dkv_SUM_prdct_R_IR
=2*k_v'(m-1)*dkv_SUM_sq_IR+sq_dkv_SUM_sq_IR-2*dkv_SUM_prdct_R_IR
+2*sq_dkv_SUM_sq_IR
=T(m-1)+2*sq_dkv_SUM_sq_IR
である。
【0075】
2*sq_dkv_SUM_sq_IR=Uと表わすとT(m)は次の漸化式で求めることができる。
T(m)=T(m-1)+U
したがって、以下の2つの漸化式によりQ(m)を順次求めることができる。
Q(m)=Q(m-1)+T(m-1)
T(m)=T(m-1)+U
次に、mを減少させるときのQ(m)(式B(5))は以下のように求めることができる。
mを増加させるときのT(m)=T(m-1)+Uより
T(m-1)=T(m)-U
だからこれをQ(m)=Q(m-1)+T(m-1)に代入すると
Q(m)=Q(m-1)+T(m)-U
Q(m-1)=Q(m)-T(m)+U
mをm+1に置き換えると、以下の漸化式でmを-1から順次減少させてQ(m)を求めることができる。
Q(m)=Q(m+1)-T(m+1)+U
T(m)=T(m+1)-U
以下、本発明に係る実施の一形態を図面に基づいて説明する。なお、各図において同一の符号を付した構成は、同一の構成であることを示し、適宜、その説明を省略する。
【0076】
<構成>
まず、本発明の実施形態の構成について説明する。図1は、実施形態における生体情報測定装置の構成を示すブロック図である。なお、図中の実線は、後述する脈派の時系列データに相当する電気信号成分の各ブロック間での流れを表す。
【0077】
この生体情報測定装置40は、例えば体動等によるノイズ成分の影響を除去した生体情報を測定するために、測定対象(被験体)の生体を透過または反射した光の強度の時系列データを用いて測定対象の体動等による生体情報測定値への影響を除去し、ノイズ成分が除去された時系列データに基づいて、例えば血中酸素飽和度等の生体情報を測定する測定装置である。
【0078】
本発明の一態様に即してより具体的に言えば、生体情報測定装置40の生体情報測定装置本体は、互いに波長の異なる複数の光を生体へそれぞれ照射して生体を透過または反射した各光をそれぞれ受光することによって得られた各測定データに基づいて生体の生体情報を測定する。該生体情報測定装置本体は、測定データに基づいて生成され周期性を有する信号成分を含むデータから、信号成分の周期性を用いることによってデータからノイズ成分を除去し、ノイズ成分を除去したデータに基づいて生体の生体情報を測定する測定部10を備える。
【0079】
すなわち、生体情報測定装置40は、互いに波長の異なる複数の光を生体へそれぞれ照射して生体を透過または反射した各光をそれぞれ受光することによって各測定データを取得するデータ取得部1と、データ取得部1で得られた各測定データに基づいて生体の生体情報を測定する該生体情報測定装置本体とを備える。
【0080】
以下、より詳細に、この生体情報測定装置40の構成について述べる。生体情報測定装置40は、例えば、図1に示すように、データ取得部1と、測定部10と、出力部30とを備えて構成される。
【0081】
データ取得部1は、測定部10での生体情報の測定に必要な、生体の脈動に関する時系列データを、所定の時間間隔(測定周期)で測定して取得するための装置である。ここで、脈動を検出する方法としては、各種の方法が採用可能であるが、例えば生体組織のヘモグロビンの吸光特性を利用する方法を好適に採用することができる。周知の通り、酸素は、ヘモグロビンによって生体の各細胞に運ばれるが、ヘモグロビンは、肺で酸素と結合して酸化ヘモグロビンとなり、生体の細胞で酸素が消費されるとヘモグロビンに戻る。酸素飽和度は、血中の酸化ヘモグロビンの割合をいう。これらヘモグロビンの吸光度および酸化ヘモグロビンの吸光度は、波長依存性を有しており、例えば、ヘモグロビンは、赤色領域の波長Rの赤色光に対し酸化ヘモグロビンよりも光を多く吸収するが、赤外線領域の波長IRの赤外光に対しては酸化ヘモグロビンよりも光の吸収が少ない。この方法は、このようなヘモグロビンと酸化ヘモグロビンとの赤色光と赤外光とに対する吸光特性の違いを利用して例えば血中酸素飽和度や脈拍数等の生体情報を求めるものである。データ取得部1は、例えば、図1に示すように、赤色光(以下、R)を所定の生体組織に照射する発光素子(R)、および、前記発光素子(R)で照射され測定対象の生体組織を透過または反射した光を受光する受光素子(R)を備えたセンサ(R)部2と、赤外光(以下、IR)を前記所定の生体組織に照射する発光素子(IR)、および、前記発光素子(IR)で照射され測定対象の生体組織を透過または反射した各光を受光する受光素子(IR)を備えたセンサ(IR)部3とを含む反射型若しくは透過型センサである。このような構成のデータ取得部1は、所定の生体組織にセットされ、前記受光素子(R、IR)によって各受光量をそれぞれモニタして、これら受光された各光を光強度に従って電気信号へそれぞれ光電変換することによって脈波に関する前記各時系列データをそれぞれ取得する。データ取得部1は、測定部10に接続され、これら各時系列データを後述するAC/DC(R)部11へ出力する。
【0082】
出力部30は、測定部10に接続され、測定部10で測定された生体に関する生体情報の測定値等を出力するための装置である。出力部30は、例えば、液晶表示装置(LCD;Liquid Crystal Display)、7セグメントLED、有機フォトルミネセンス表示装置、CRT(Cathode Ray Tube)表示装置およびプラズマ表示装置等の表示装置や、マイクやスピーカー等の音出力装置や、プリンタ等の印刷装置等である。例えば、脈波データのデータ解析結果等の各種測定情報は、光点灯(点消灯、点滅を含む)、文字、画像、音声あるいは印刷等の適宜に任意の形態で出力される。
【0083】
この出力部30は、例えば、図1に示すように、SpO2出力部31と、脈拍数出力部32と、信頼度出力部33とを備えて構成される。SpO2出力部31は、後述するSvO2推定SpO2決定部19で算出された血中酸素飽和度を出力するための装置である。脈拍数出力部32は、後述する脈拍数算出部20で算出された脈拍数を出力するための装置である。そして、信頼度出力部33は、後述する信頼度算出部21で算出された信頼度を出力するための装置である。
【0084】
この測定部10は、例えば、図1に示すように、機能的に、AC/DC(R)変換部11、AC/DC(IR)変換部12、BPF(R)部13、BPF(IR)部14、ΣR_signal*IR_signal算出部15、ΣR2算出部16、ΣIR2算出部17、初期値算出部18、SvO2推定SpO2決定部19、脈拍数算出部20、信頼度算出部21および差分算出部22を備え、そして、予め記憶された制御プログラムに従い、データ取得部1および出力部30を当該機能に応じてそれぞれ制御する。
【0085】
測定部10は、データ取得部1によって取得された脈波の時系列データに対して、所定の前処理を行った後に、ノイズ成分の除去および生体情報の演算に必要な初期値を算出し、前記初期値を用いて、脈波の時系列データに含まれるノイズ成分を除去するノイズ成分除去処理を行い、ノイズ成分除去後の脈波の時系列データに基づき、生体情報等を測定し、その生体情報の測定値を出力部30へ出力する装置である。測定部10は、例えば、後述する演算処理を行う各演算処理プログラム等を記憶するROM(Read Only Memory)、いわゆるワーキングメモリとして機能し一時的にデータを格納するRAM(Random Access Memory)および前記演算処理プログラム等を前記ROMから読み出して実行する中央処理装置(CPU)およびその周辺回路等である。
【0086】
AC/DC(R)変換部11は、データ取得部1のセンサ(R)部2から入力される赤色光(R)の時系列データに対し、直流成分と交流成分との比であるデータに変換する回路である。なお、本実施形態では、AC/DC(R)変換部11は、前記前処理として、暗電流による成分を除去するダーク処理を行う。
【0087】
BPF(R)部13は、AC/DC(R)変換部11から赤色光(R)の時系列データが入力され、ノイズ成分を除去して赤色光(R)についての周波数成分を得るためのバンドパスフィルタ(BPF)である。BPF(R)部13は、フィルタリング後の時系列データであるR_signalをΣR_signal*IR_signal算出部15、Σ(R_signal)2算出部16およびSvO2推定SpO2決定部19へそれぞれ出力する。
【0088】
AC/DC(IR)変換部12は、データ取得部1のセンサ(IR)部3から入力される赤外光(IR)の時系列データに対し、直流成分と交流成分との比であるデータに変換する回路である。なお、本実施形態では、AC/DC(IR)変換部12は、前記前処理として、暗電流による成分を除去するダーク処理を行う。
【0089】
BPF(IR)部14は、AC/DC(IR)変換部12から赤外光(IR)の時系列データが入力され、ノイズ成分を除去して赤外光(IR)についての周波数成分を得るためのバンドパスフィルタである。BPF(IR)部14は、フィルタリング後の時系列データであるIR_signalをΣR_signal*IR_signal算出部15、ΣIR_signal2算出部17およびSvO2推定SpO2決定部19へそれぞれ出力する。
【0090】
ΣR_signal*IR_signal算出部15は、BPF(R)部13から入力される赤色光(R)の時系列データと、BPF(IR)部14から入力される赤外光(IR)の時系列データとを用いて、相互相関ΣR_signal*IR_signalを算出し、算出した相互相関ΣR_signal*IR_signalを初期値算出部18および信頼度算出部21に出力する回路である。
【0091】
Σ(R_signal)2算出部16は、BPF(R)部13から入力される赤色光(R)の時系列データを用いて、自己相関Σ(R_signal)2を算出し、算出した自己相関Σ(R_signal)2を初期値算出部18および信頼度算出部21に出力する回路である。
【0092】
Σ(IR_signal)2算出部17は、BPF(IR)部14から入力される赤外光(IR)の時系列データを用いて、自己相関Σ(IR_signal)2を算出し、算出した自己相関Σ(IR_signal)2を初期値算出部18および信頼度算出部21に出力する回路である。
【0093】
差分算出部22は、BPF(R)部13から入力される赤色光(R)の時系列データと、BPF(IR)部14から入力される赤外光(IR)の時系列データとを用いて、q(0,i)およびdkv_IR(i)(式(A1)および式(A7)参照)を算出し、算出したq(0,i)およびdkv_IR(i)をSvO2推定SpO2決定部19に出力する回路である。
【0094】
初期値算出部18は、初期値および後の演算で使用する値を算出する回路であり、より具体的には、ΣR_signal*IR_signal算出部15から入力される相互相関ΣR_signal*IR_signal、Σ(R_signal)2算出部16から入力される自己相関Σ(R_signal)2、および、Σ(IR_signal)2算出部17から入力される自己相関Σ(IR_signal)2を用いて、初期値および後の演算で使用する値(以下、まとめて「初期値」という場合がある。)を算出し、算出した初期値等をSvO2推定SpO2決定部19へ出力する。
【0095】
SvO2推定SpO2決定部19は、周期性を有する信号成分を含む時系列データから、周期性を用いて信号成分に重畳したノイズ成分を除去し、ノイズ成分を除去した時系列データに基づいて、動脈の血中酸素飽和度を算出する回路である。SvO2推定SpO2決定部19は、課題を解決するための手段で開示した信号生成部および推定部に相当する。SvO2推定SpO2決定部19は、より具体的には、BPF(R)部13から入力される時系列データR_signal、BPF(IR)部14から入力される時系列データIR_signalおよび差分算出部22から入力される時系列データq(0,i)およびdkv_IR(i)から、初期値算出部18で算出された初期値を基に、動脈の血中酸素飽和度を算出する回路であり、必要に応じてノイズ成分に基づき静脈の血中酸素飽和度を算出し、算出した血中酸素飽和度をSpO2出力部31へ出力する。
【0096】
脈拍数算出部20は、SvO2推定SpO2決定部19でノイズ成分を除去した時系列データに基づいて、脈拍数を算出し、算出した脈拍数を脈拍数出力部32へ出力する。
【0097】
信頼度算出部21は、測定した生体情報について、誤差の度合いを表す信頼度を算出する回路であり、算出した信頼度を信頼度出力部33へ出力する。
【0098】
なお、必要に応じて生体情報測定装置40は、図略の外部記憶部をさらに備えてもよい。外部記憶部は、例えば、メモリカード、フレキシブルディスク、CD−ROM(Compact Disc Read Only Memory)、CD−R(Compact Disc Recordable)、DVD−R(Digital Versatile Disc Recordable)およびブルーレイディスク(Blue-ray Disc)等の記憶媒体との間でデータを読み込みおよび/または書き込みを行う装置であり、例えば、メモリカードインタフェース、フレキシブルディスクドライブ、CD−ROMドライブ、CD−Rドライブ、DVD−Rドライブおよびブルーレイディスクドライブ等である。
【0099】
ここで、生体情報測定装置40は、測定部10に演算処理プログラム等が格納されていない場合には、これらプログラム等を記録した記録媒体から、前記外部記憶部を介して測定部10にインストールされるように構成されてもよい。あるいは、生体情報測定装置40は、検出された生体情報等のデータが前記外部記憶部を介して記録媒体に記録されるように構成されてもよい。
【0100】
<動作>
次に、本実施形態の動作について、図2〜7を用いて説明する。
【0101】
図2の生体情報測定処理のフローチャート(ステップS10〜ステップS23)は、主に3つの処理を行っている。ステップS10は初期処理を示し、ステップS11〜ステップS20は血中酸素飽和度検出処理を示し、ステップS21は脈拍数検出処理を示す。ステップS22は、算出した血中酸素飽和度、脈拍数等を表示する処理を示し、ステップS23は、血中酸素飽和度等を測定周期で測定するよう制御する処理を示している。また、図3は、初期処理の詳細を示すフローチャートであり、図4〜図8は、血中酸素飽和度検出処理の中の一部の処理の詳細を示すフローチャートおよび説明のための図である。図9は、脈拍数検出処理の詳細を示すフローチャートである。
【0102】
生体情報測定装置40は、例えば、その起動によって演算処理プログラムを実行する。この演算処理プログラムの実行によって、測定部10の各部(11〜22)が機能的に構成される。そして、生体情報測定装置40は、以下の動作によって、データ取得部1で取得された時系列データに基づいて、ノイズ成分を低減した例えば血中酸素飽和度等の生体情報を測定する。
【0103】
<初期処理(ステップ10)>
生体情報測定装置40は、まず初期処理を行う(ステップS10)。初期処理では、主に、4つの処理を行う。1つは、所定数の時系列データを収集する処理である。2つ目は、k_vを求める処理で用いる値(後述するqの差分)等を算出して記憶する処理であり、3つ目は、演算で用いる固定値(SUMで始まる定数等)を算出して記憶する処理であり、4つ目は、初期値を算出する処理である。
【0104】
初期処理の詳細を、図3を用いて説明する。図3は、初期処理を示すフローチャートである。
【0105】
生体情報測定装置40の測定が開始されると、測定部10には、データ取得部1から、センサ(R)部2の暗電流による成分R_dark、および、センサ(IR)部3の暗電流による成分IR_darkがそれぞれ入力される。そして、測定部10には、データ取得部1から、生体組織を透過または反射した波長IRおよび波長Rの光の強度変化に関するデータ時系列であるR_signal_and_dark(i)およびIR_signal_and_dark(i)がそれぞれ入力される。ここで、iは、1からN個まである時系列データのi番目であることを表し、iと時間との対応は、前記発明の原理で述べた通りである。Nは、酸素飽和度の算出に必要なデータ数が選ばれ、例えば200等の値が用いられる。簡便のため、以降は、時系列データのiを省略して記載する場合がある。なお、波長Rに関するデータR_signal_and_darkには、センサ(R)部2の暗電流による成分R_darkが、波長IRに関するデータIR_signal_and_darkには、センサ(IR)部3の暗電流による成分IR_darkがそれぞれ含まれている。
【0106】
次に、AC/DC(R)部11は、R_signal_and_darkからR_darkを差し引くダーク処理を行う。同様に、AC/DC(IR)部12は、IR_signal_and_darkからIR_darkを差し引くダーク処理を行う(ステップS30)。
【0107】
次に、ダーク処理された各波長の信号を直流成分と交流成分との比(交流成分/直流成分)にそれぞれ変換する(ステップS31)。より具体的には、IR_signal_and_darkからIR_dark成分が除去され、生体由来の光の強度のみからなる直流成分と交流成分との比であるIR_signalが算出される。同様にR_signal_and_darkからR_dark成分が除去され、生体由来の光の強度のみからなる直流成分と交流成分との比であるR_signalが算出される。
【0108】
次に、BPF(R)部13は、R_signalをフィルタリングし、不要な周波数成分を除去して所望の周波数成分のみを得るための処理を行う。同様にBPF(IR)部14は、IR_signalをフィルタリングし、不要な周波数成分を除去して所望の周波数成分信号成分を得るための処理を行う(ステップS32)。
【0109】
次に、差分算出部22は、式(A1)を用いて、q(0,i)を算出し、また、式(A7)を用いて、IR_signal(i)からdkv_IR(i)を算出する(ステップS33)。差分算出部22は、算出したq(0,i)およびdkv_IR(i)を、SvO2推定SpO2決定部19に出力する。
【0110】
また、ステップS32で取り出されたデータR_signal、IR_signalに対し、ΣR_signal*IR_signal算出部15、Σ(R_signal)2算出部16、Σ(IR_signal)2算出部17は、相互相関ΣR_signal*IR_signal、波長Rについての自己相関ΣR_signal2および波長IRについての自己相関ΣIR_signal2をそれぞれを算出し、初期値算出部18に出力する。なお、Σはiに関して1からNまで取られる総和であり、短い時間間隔で、k_vとk_aは、一定であるという仮定が成り立つ。
【0111】
次に、初期値算出部18は、所定数(N個)のデータを収集したら(ステップS34:Yes)、SUM_sq_R、SUM_sq_IR、および、SUM_prdct_R_IRを、式(A4)、式(A5)、および、式(A6)を用いて算出する(ステップS35)。
【0112】
次に、初期値算出部18は、k_vの初期値であるk_v_0に、適当な値を代入する(ステップS36)。なお、2度目の測定からは、前回求められたkv_minを記憶しておき、それを代入する。
【0113】
次に、ステップS35およびステップS36で求めたSUM_sq_R、SUM_sq_IR、SUM_prdct_R_IRおよびk_v_0を用いて、初期値算出部18は、血中酸素飽和度検出フローで必要となる、k_aの仮値k_a_0およびk_nsの仮値であるk_ns_0をそれぞれ算出する(ステップS37)。初期値算出部18は、算出した各値を、SvO2推定SpO2決定部19に出力する。
【0114】
SvO2推定SpO2決定部19は、SUM_sq_R、SUM_sq_IR、SUM_prdct_R_IR、k_v_0、k_a_0、および、k_ns_0を前記メモリ等(図示せず)に記憶する。
【0115】
ここで、k_nsは、ノイズ成分を抽出するか否かを判定するための指標であり、ノイズ成分の強度と信号成分の強度との比等で表され、例えば、式(9)のように表される。
【0116】
【数9】

【0117】
ここで、ノイズ成分の強度に関する値であるn_squareと信号成分の強度に関する値であるs_squareは、式(8)にk_v_0を代入して等号が成り立つか否かによって異なる式で与えられる。
【0118】
式(8)にk_v_0を代入して、等号が成り立つ(すなわち左辺がゼロに等しくなる)ようなk_aの値が求められた場合には、そのk_aの値がk_a_0とされ、以下の式(10)と式(11)と(9)を用いてk_ns_0が算出される。
【0119】
【数10】

【0120】
【数11】

【0121】
一方、式(8)にk_v_0を代入し、等号が成り立つ生理学的に妥当なk_aが求まらない場合には、前回のk_aなど適当なk_aをk_a_0とし、以下の式(12)と式(13)と式(9)を用いてk_ns_0が算出される。また、動脈血と静脈血の酸素飽和度の差として例えば10%と仮定して、それに相当する値をk_v_0から差し引いた値をk_a_0としても良い。
【0122】
【数12】

【0123】
【数13】

【0124】
<血中酸素飽和度検出(ステップS11〜ステップS20)>
上述の初期処理(図2のステップS10)が終了した後、SvO2推定SpO2決定部19によって血中酸素飽和度検出処理が実行される。
【0125】
SvO2推定SpO2決定部19は、はじめに、ノイズ成分の指標であるk_ns_0と所定の値とを比較することにより、ノイズ成分状態を判定する(ステップS11)。この判定結果により次の2通りに処理が分かれる。なお、所定の値は、除去すべきノイズ成分のレベルに応じて適宜に選定され、例えば、この実施例では0.05等である。
【0126】
ノイズ成分の指標が所定の値以下であるとSvO2推定SpO2決定部19が判定した場合(ステップS11:No)には、例えば、従来の技術として知られている、k_aを波長IRの吸光度の変化分の信号成分と波長Rの吸光度の変化分の信号成分との比の平均値として求める方法である式(14)を用いてk_aが算出され(ステップS12)、続いてステップS20が実行される。
【0127】
【数14】

【0128】
尚、式(8)から式(14)はR_signal、IR_signalをそれぞれ時間差分に置き換えたものでも良い。
【0129】
一方、ノイズ成分の指標が所定の値より大きいとSvO2推定SpO2決定部19が判定した場合(ステップS11:Yes)には、kv_minが算出されたことがあるか、すなわち、生体情報測定装置40が起動されて最初の測定処理か否かを判断する(ステップS12)。
【0130】
この判断は、算出済フラグを参照して判断する。算出済フラグがONであり「算出がされた」旨を示している場合には(ステップS12:Yes)、保存しておいたkv_minを用いる(ステップS15)。また、算出済フラグがOFFであり「算出がされていない」旨を示している場合には(ステップS12:No)、ステップS16が実行され、kv_minが算出され、続いてステップS18が実行される。kv_min算出処理は、後の<kv_min算出処理>の項で説明する。
【0131】
kv_minが求まると、メモリに記憶し、算出済フラグをONにして「算出がされた」旨を設定する(ステップS17)。
【0132】
次に、SvO2推定SpO2決定部19は、ステップS16で求めたkv_minを式(8)に代入してこの方程式を解くことでk_aを算出する(ステップS18)。
【0133】
k_aを算出したSvO2推定SpO2決定部19は、次に、式(9)を用いて、ノイズ成分の指標となるk_nsを算出する(ステップS19)。k_nsの算出には、初期処理(ステップS10)でメモリに記憶されたΣR_signal*IR_signal、ΣR_signal2およびΣIR_signal2が用いられる。
【0134】
次に、SvO2推定SpO2決定部19は、k_aの信頼度又はk_vの信頼度を算出し、k_aに基づき、血中酸素飽和度を算出する(ステップS20)。ここで、k_aの信頼度とは、k_aに含まれる誤差の度合いを表す値である。同様に、k_vの信頼度とは、k_vに含まれる誤差の度合いを表す値である。これら信頼度の算出処理は、後の<信頼度算出処理>の項で説明する。
【0135】
SvO2推定SpO2決定部19は、次回の測定に備えて、kv_minを記憶する。
【0136】
次に、脈拍数算出部20は、脈拍数PRを算出する(ステップS21)。脈拍数PR算出処理は、後の<脈拍数PR算出処理>の項で説明する。
【0137】
SpO2出力部31、脈拍数出力部32および信頼度出力部33は、それぞれステップS20およびステップS21で検出した血中酸素飽和度と脈拍数PRとk_aの信頼度とを出力する(ステップS22)。
【0138】
なお、信頼度出力部33は、k_aの信頼度に代えてk_vの信頼度を出力してもよい。また、測定部10は、ステップS19で算出したk_nsと所定の値(ステップS11の所定値)とを比較し、k_nsが所定の値(ステップS11の所定値)を超えた場合には、k_nsが所定の値を超えた旨を警告するための警告をSpO2出力部31に出力する。さらに、測定部10は、k_aの信頼度と予め設定されているk_aの信頼度判定用の値とを比較し、k_aがその値を超えた場合には、k_aがその値を超えた旨を示す警告をさらに信頼度出力部33に出力してもよい。また、測定部10は、k_aの信頼度に代えてk_vの信頼度を用いて、k_vの信頼度と予め設定されているk_vの信頼度判定用の値とを比較し、k_vがその値を超えた場合には、k_vがその値を超えた旨を示す警告をさらに信頼度出力部33に出力してもよい。
【0139】
測定部10は、測定周期が経過したことを内部のタイマから検出するまで待ち(ステップS23:No)、測定周期が経過したことを検出すると(ステップS23:Yes)、k_v算出周期が経過したか否かを判断する(ステップS24)。
【0140】
k_v算出周期が経過していた場合は(ステップS24:Yes)、算出済みフラグをOFFにし(ステップS25)、経過していなかった場合は(ステップS24:No)、算出済みフラグをONのままにしておく。そして、ステップS10から処理を開始する。
【0141】
ここで、k_v算出周期とは、kv_minを算出する周期であり、k_vが変化しないと想定される時間である。k_vは急激には変化しないことから、k_aおよびSpO2の算出周期よりもkv_minの算出周期を長くする。例えば、k_aおよびSpO2の算出が例えば1秒毎に実施されるとする(ステップ23の測定周期に該当)。これに対して、kv_minを算出する周期を、k_aおよびSpO2の算出周期よりも長い周期(例えば2秒)とする(ステップS24のk_v算出周期に該当)。このようにすることで、測定結果の正しさを変えることなく、kv_minの算出回数を減らして計算量を減らすことが可能となる。
【0142】
<信頼度算出処理>
一般に、算出された動脈血酸素飽和度の値の大小によって、それに含まれる誤差は異なることが知られており、例えば、動脈血酸素飽和度が約95%の場合と70%の場合とでは動脈血酸素飽和度の誤差の大きさが異なる。そこで、k_nsの所定値は、以下のように変化させる。k_nsの所定値は、動脈血酸素飽和度が所定の動脈血酸素飽和度より小さい場合(k_aとk_vとは大きく、静脈の血中酸素飽和度が小さい場合に相当)にはk_nsの所定値を小さく設定し、一方、逆に動脈血酸素飽和度が所定の動脈血酸素飽和度より大きい場合(k_aとk_vとは小さく、静脈の血中酸素飽和度が大きい場合に相当)にはk_nsの所定値を大きく設定するとよい。このように算出された動脈血酸素飽和度の値に応じて、k_nsの所定値を変化させることで、例えば、動脈血酸素飽和度が大きい場合は閾値を大きくし、動脈血酸素飽和度の誤差が動脈血酸素飽和度が小さい場合とほぼ同じ値で警告や出力禁止を行うことができる。ここで、所定の動脈血酸素飽和度および所定の動脈血酸素飽和度に応じたk_nsの所定値は、過去の測定データを元にして決定した値を測定部10に予め記憶しておいてもよいし、生体や生体の状態に応じて適宜に変化させてもよい。求められたk_a又はk_vの信頼度の指標として前記k_ns以外に、例えば、式(16)から式(21)の何れかの式で与えられる値zを用いてもよい。zの絶対値が大きいと、k_aの信頼度は低い。また、zの絶対値が大きいと、k_vの信頼度は低い。
【0143】
【数16】

【0144】
【数17】

【0145】
【数18】

【0146】
【数19】

【0147】
【数20】

【0148】
【数21】

【0149】
さらに、k_aの信頼度の指標の代わりとして、以下の式(22)で与えられる値wのバラツキ(標準偏差、最大値−最小値など)を用いてもよい。値wのバラツキが小さいことは、求めたk_aの信頼度は高いことを示している。
【0150】
【数22】

【0151】
この他、R_signalをy、IR_signalをxとした場合における(x,y)の回帰直線に対するyのバラツキや最大値と最小値との差等からk_aの信頼性を評価してもよい。式(16)から式(22)はR_signal、IR_signalをそれぞれ時間差分に置き換えたものでも良い。
【0152】
<kv_min算出処理>
ステップS16のkv_min算出処理について、図4を用いて説明する。
【0153】
上記<本発明の前提となる従来技術>で説明したように、式(4)の左辺に相当するq(以下の式(15)参照)が最も強く周期性を持つように選択されたk_vが、最適なk_vである。
【0154】
【数15】

【0155】
ここで、qは、あるk_vに対する、i番目のデータ系列である式(15)の左辺についての値を表す。
【0156】
より具体的に、k_vの値に応じて、式(15)は、どのように変化するかについて、図5を用いて以下に説明する。
【0157】
図5は、測定データによるR-kv*IRの波形を示す図である。図5(a)は、k_vを最適値より小さい値で与えた場合の、k_vに対する式(15)で与えられるデータ系列による波形を示し、図5(b)は、k_vを最適値に近似される値で与えた場合の、k_vに対する式(15)で与えられるデータ系列による波形を示し、そして、図5(c)は、k_vを最適値より大きい値で与えた場合の、k_vに対する式(15)で与えられるデータ系列による波形を示す。なお、波形は、時系列データのデータ間で補間している。図5(a)から(c)において、これら横軸は、所定の短い時間(データ系列の番号iでは1からNまでのデータ系列に相当)であり、縦軸は、式15のqである。
【0158】
最適値より小さいk_vを式(15)に与えた場合には、図5(a)に示す波形で、最適値に近似される値k_vを式(15)に与えた場合には、図5(b)に示す波形となっている。これら2つの図を比較すると分かるように、最適値に近似される値k_vが代入されている場合(図5(b)では、信号成分にノイズ成分が重畳している場合でも波形に強い周期性が認められるが、最適値より小さいk_vを式(15)に与えた場合には、信号成分にノイズ成分が重畳していると、波形は、乱れ、周期性が弱い。そして、最適値より大きいk_vを式(15)に与えた場合には、図5(c)に示す波形となっている。この図5(c)を図5(b)と比較すると分かるように、最適値より大きいk_vを式(15)に与えた場合(図5(c))には、信号成分にノイズ成分が重畳していると、波形は、乱れ、周期性が弱い。
【0159】
以上のk_vに対する式(15)の変化を利用するため、式(15)の周期性が検出される。
【0160】
図4は、kv_min算出処理のフローチャートである。
【0161】
実施形態のkv_min算出処理では、k_vの初期値をk_v_sとして、k_vを所定の範囲内(例えば、k_v_s-0.5<k_v<k_v_s+0.5)で、Δk_vずつ、プラス側とマイナス側にそれぞれM回ずつ変化させて、(2*M+1)個のq(式(15)参照)を得る。そして、それぞれのqを2値化することによって、それぞれの波形の幅を算出する。
【0162】
以下、具体的に、kv_min算出処理を説明する。
【0163】
まず、SvO2推定SpO2決定部19は、本処理における初期値を設定する(ステップS40)。k_vを変化させた回数を示すカウンタmに0(ゼロ)を設定し、パルス幅のバラツキ指数の最小値を示す変数Var_PW_minに、バラツキ指数としてあり得ない値、例えば、100を設定する。また、k_v_sに、初回は例えば1を、2回目からは前回のkv_minを設定する。
【0164】
次に、各qに適した閾値を算出する際に用いる値を算出し、メモリ等に記憶する(ステップS41)。具体的には、式(A2)を用いてQ(0)を、式(A3)を用いてT(0)を算出し、式(A8)を用いてUを算出する。これらの算出に必要な値は、初期処理で算出してメモリに記憶されているSUM_sq_R、SUM_sq_IRおよびSUM_prdct_R_IRを読み出し、式(A9)を用いてdkv_SUM_prdct_R_IRを算出し、(A10)を用いてdkv_SUM_sq_IRを算出し、式(A11)を用いてsq_dkvSUM_sq_IRを算出する。
【0165】
次に、q(0,i)を、メモリから読み出す(ステップS42)。なお、2度目の測定からは、後述のステップS62においてk_v_minに対応するq_min(i)をストアしておき、q_min(i)を初期値q(0,i)とする。より、計算量の増加を防ぐことができる。
【0166】
次に、ステップS43〜ステップS50の処理、すなわち、k_vをΔk_vずつプラスしてバラツキを算出する処理をM回繰り返す。
【0167】
まず、Q(m)を、式(B2)で算出し、2値化処理で用いる閾値を算出する(ステップS43)。本実施形態では、Q(m)から、以下の式で求められる閾値thresh_1と閾値thresh_2とを設定する。なお、f_1およびf_2は、例えば、それぞれ、0.2、−0.2である。
【0168】
Sqr_Q=Q(m)0.5
thresh_1=f_1*Sqr_Q
thresh_2=f_2*Sqr_Q
なお、m=0の場合は、ステップS41で求めたQ(0)を用いる。
【0169】
次に、q(m,i)の2値化処理を行う(ステップS44)。m=0の場合は、ステップS42で求めたq(0,i)を用い、m>0の場合は、ステップS50で求めたq(m,i)を用いる。
【0170】
次に、2値化処理によって得た情報から、バラツキ指数Var_PWを算出する(ステップS44)。2値化処理については、後の<2値化処理>の項で説明し、バラツキ指数算出処理については、後の<バラツキ指数算出処理>の項で説明する。
【0171】
ステップS45で求めたバラツキ指数Var_PWと、最小バラツキ指数Var_PW_minとを比較し、小さいほうの値を最小バラツキ指数Var_PW_minに設定する。また、最小バラツキ指数Var_PW_minが設定された場合には、設定されたVar_PWのk_vをkv_minに設定する(ステップS46)。
【0172】
ステップS43〜ステップS50の処理をM回繰り返していない場合は(ステップS47:Yes)、k_vにΔk_vをプラスして、次の処理で用いるk_vを求める(ステップS48)。
【0173】
そして、式(B2)および式(B3)を用いて、Q(m)およびT(m)を算出する(ステップS49)。また、式(B1)を用いて、q(m,i)を算出する(ステップS50)。
【0174】
ステップS43〜ステップS50の処理をM回繰り返した場合には(ステップS47:No)、Δk_vずつ、マイナス側に変化させて、バラツキを算出する処理に移る。
【0175】
まず、SvO2推定SpO2決定部19は、k_vを変化させた回数を示すカウンタmに−1を設定し(ステップS51)、式(B5)を用いてQ(-1)を、式(B6)を用いてT(-1)を算出し(ステップS52)、式(B4)を用いてq(-1,i)を算出する(ステップS53)。
【0176】
次に、ステップS54〜ステップS61の処理、すなわち、k_vをΔk_vずつマイナスしてバラツキを算出する処理をM回繰り返す。
【0177】
ステップS54〜ステップS57の処理は、ステップS43〜ステップS46の処理と同様である。
【0178】
ステップS54〜ステップS61の処理をM回繰り返していない場合は(ステップS58:Yes)、k_vからΔk_vをマイナスして、次の処理で用いるk_vを求める(ステップS59)。
【0179】
そして、式(B5)および式(B6)を用いて、Q(m)およびT(m)を算出する(ステップS60)。また、式(B4)を用いて、q(m,i)を算出する(ステップS61)。
【0180】
ステップS54〜ステップS61の処理をM回繰り返した場合には(ステップS58:No)、最小バラツキ指数Var_PW_minの時のq(m,i)を、q_min(i)として記憶する(ステップS62)。この時には最小バラツキ指数Var_PW_minには、最小のバラツキ指数Var_PWが設定されており、kv_minには、最小バラツキ指数Var_PW_minのk_vが設定されている。
【0181】
本実施形態では、固定値であるΔk_vを用いているが、まずは大きいΔk_vを用いて広いk_vの範囲で、2値化したq(m,i)のパルス幅のバラツキを最小にするkv_min_1を求め、次にkv_min_1の周辺のより狭いk_vの範囲で小さいΔk_vを用いて、2値化したq(m,i)のパルス幅のバラツキを最小にするkv_minを求めることとしてもよい。これにより、計算量を増やすことなく高い精度でkv_minを決定することが可能となる。
【0182】
<2値化処理>
ここで、ステップS44の2値化処理について、図6及び図7を用いて説明する。
【0183】
図6は、2値化処理のフローチャートである。図7は、2値化処理を説明するためのqの波形の拡大図である。
【0184】
本2値化処理では、ステップS43で求めた閾値thresh_1と閾値thresh_2とを用いる。
【0185】
そして、q(m,i)が、閾値thresh_1を下回る値から超えた時のiをテーブルt1_l_to_h(kr_1)に、閾値thresh_1を上回る値から下回った時のiをテーブルt1_h_to_l(kf_1)に記憶する。同様に、q(m,i)が、閾値thresh_2を下回る値から超えた時のiをテーブルt2_l_to_h(kr_2)に、閾値thresh_2を上回る値から下回った時のiをテーブルt2_h_to_l(kf_2)に記憶する(図7参照)。kr_1、kf_1、kr_2及びkf_2は、0から始まるインデックスである。
【0186】
まず、2値化処理で用いる変数の初期化を行う(ステップS70)。ここで、status_1は、q(m,i)が閾値thresh_1を超えている場合に1が設定され、以下の場合に0が設定されるフラグである。status_2は、q(m,i)が閾値thresh_2を超えている場合に1が設定され、以下の場合に0が設定されるフラグである。このフラグは、現在処理しているq(m,i)のひとつ前のq(m,i-1)の値の状態を示す。なお、閾値は、図4のステップS43で算出されている。
【0187】
フラグstatus_1が0で且つq(m,i)が閾値thresh_1より大きい場合、すなわち、閾値thresh_1を下回る値から閾値thresh_1を超えた場合(ステップS71:Yes)は、iをテーブルt1_l_to_h(kr_1)に記憶する(ステップS72)。その他の場合は(ステップS71:No)、何も記憶しない。
【0188】
フラグstatus_1が1で且つq(m,i)が閾値thresh_1以下である場合、すなわち、閾値thresh_1を上回る値から閾値thresh_1以下となった場合(ステップS73:Yes)は、iをテーブルt1_h_to_l(kf_1)に記憶する(ステップS74)。その他の場合は(ステップS73:No)、何も記憶しない。
【0189】
そして、q(m,i)が閾値thresh_1を超えているか、以下かを判断し、フラグstatus_1に0又は1を設定する(ステップS75)。
【0190】
次に同様に、フラグstatus_2が0で且つq(m,i)が閾値thresh_2より大きい場合、すなわち、閾値thresh_2を下回る値から閾値thresh_2を超えた場合(ステップS76:Yes)は、iをテーブルt2_l_to_h(kr_2)に記憶する(ステップS77)。その他の場合は(ステップS77:No)、何も記憶しない。
【0191】
フラグstatus_2が1で且つq(m,i)が閾値thresh_2以下である場合、すなわち、閾値thresh_2を上回る値から閾値thresh_2以下となった場合(ステップS78:Yes)は、iをテーブルt2_h_to_l(kf_2)に記憶する(ステップS79)。その他の場合は(ステップS78:No)、何も記憶しない。
【0192】
そして、q(m,i)が閾値thresh_2を超えているか、否かを判断し、フラグstatus_2に0又は1を設定する(ステップS80)。
【0193】
ステップS71〜ステップS80の処理を、iが1〜Nまで繰り返し(ステップS81、ステップS82)、t1_l_to_h(kr_1)等のテーブルに記憶されたiの数をkr_1_max等に記憶する(ステップS83)。
【0194】
<バラツキ指数算出処理>
ここで、ステップS45のバラツキ指数算出処理について、図8を用いて説明する。
【0195】
図8は、バラツキ指数算出処理のフローチャートである。
【0196】
本実施形態では、2値化処理で求めたテーブルt1_l_to_h(kr_1)、t1_h_to_l(kf_1)、t2_l_to_h(kr_2)およびt2_h_to_l(kf_2)から、バラツキ指数Var_PWを求める。
【0197】
具体的には、図7で示すように、すべての波形の山と谷のa1、a2、b1およびb3の長さを求め、a1、a2、b1およびb3それぞれの最小値と最大値を求める。そして、その調和平均を求めてバラツキ指数とする。
【0198】
まず、テーブルt1_l_to_h(0)とテーブルt1_h_to_l(0)に登録されているiの大きさを比べる。波形が山から始まっているのか、谷から始まっているのかを判断する為である。
【0199】
t1_l_to_h(0)>t1_h_to_l(0)の場合は(ステップS90:Yes)、谷から始まっていると判断し、テーブルt1_h_to_lのインデックスを1ずらして計算し、a1を求める。すべての山のa1を算出し、その最大値t_1_h_maxと最小値t_1_h_minとを求める(ステップS93)。
【0200】
また、すべての山のb1を算出し、その最大値t_1_l_maxと最小値t_1_l_minとを求める(ステップS94)。
【0201】
一方、t1_l_to_h(0)≦t1_h_to_l(0)の場合は(ステップS90:No)、山から始まっていると判断し、すべての山のa1を算出し、その最大値t_1_h_maxと最小値t_1_h_minとを求める(ステップS91)。
【0202】
また、テーブルt1_h_to_lのインデックスを1ずらして計算し、すべての山のb1を算出し、その最大値t_1_l_maxと最小値t_1_l_minとを求める(ステップS92)。
【0203】
次に、テーブルt2_l_to_h(0)とテーブルt2_h_to_l(0)に登録されているiの大きさを比べる。波形が山から始まっているのか、谷から始まっているのかを判断する為である。
【0204】
t2_l_to_h(0)>t2_h_to_l(0)の場合は(ステップS95:Yes)、谷から始まっていると判断し、テーブルt1_h_to_lのインデックスを1ずらして計算し、a2を求める。すべての山のa2を算出し、その最大値t_2_h_maxと最小値t_2_h_minとを求める(ステップS98)。
【0205】
また、すべての山のb2を算出し、その最大値t_2_l_maxと最小値t_2_l_minとを求める(ステップS99)。
【0206】
一方、t2_l_to_h(0)≦t2_h_to_l(0)の場合は(ステップS95:No)、山から始まっていると判断し、すべての山のa2を算出し、その最大値t_2_h_maxと最小値t_2_h_minとを求める(ステップS96)。
【0207】
また、テーブルt2_h_to_lのインデックスを1ずらして計算し、すべての山のb2を算出し、その最大値t_2_l_maxと最小値t_2_l_minとを求める(ステップS97)。
【0208】
次に、最大値t_1_l_max、最小値t_1_l_min、最大値t_1_h_max、最小値t_1_h_min、最大値t_2_l_max、最小値t_2_l_min、最大値t_2_h_max、および、最小値t_2_h_minからバラツキ指数Var_PWを求める(ステップS100)。
【0209】
具体的には、まず、(t_1_l_max-t_1_l_min)と(t_2_l_max-t_2_l_min)との平均調和t_l_max_minを例えば、以下の式で求める。
【0210】
t_l_max_min = {(t_1_l_max-t_1_l_min)*(t_2_l_max-t_2_l_min)}
/{(t_1_l_max-t_1_l_min)+(t_2_l_max-t_2_l_min)}
また、同様に、(t_1_h_max-t_1_h_min)と(t_2_h_max-t_2_h_min)との平均調和t_h_max_minを求める。
【0211】
そして、t_l_max_minとt_h_max_minとの内、大きい方をバラツキ指数Var_PWとする。
【0212】
<脈拍数PR算出処理(ステップS21)>
上述の血中酸素飽和度検出処理(図2のステップS11〜ステップS20)が終了した後、脈拍数算出部20によって脈拍数PR算出処理が実行される。
【0213】
図9は、脈拍数PR算出処理のフローチャートである。
【0214】
実施形態では、図4のステップS62で記憶したq_min(i)の状態変化の間隔の平均T_aveを算出し、脈拍数PRを求める。
【0215】
まず、q_min(i)に対し、2値化処理を行う(ステップS110〜ステップS118)。閾値を0(ゼロ)として、図6の2値化処理と同様に行う。この場合の閾値は、前記のk_vを決めるときに用いた閾値でも良い。
【0216】
詳細には、2値化処理で用いる変数の初期化を行う(ステップS110)。ここで、statusは、q_min(i)が閾値を超えている場合に1が設定され、閾値以下の場合に0が設定されるフラグである。このフラグは、現在処理しているq_min(i)のひとつ前のq_min(i-1)の値の状態を示す。
【0217】
フラグstatusが0で且つq_min(i)が閾値より大きい場合、すなわち、閾値を下回る値から閾値を超えた場合(ステップS111:Yes)は、iをテーブルt_l_to_h(kr)に記憶する(ステップS112)。その他の場合は(ステップS111:No)、何も記憶しない。
【0218】
フラグstatusが1で且つq_min(i)が閾値以下である場合、すなわち、閾値を上回る値から閾値以下となった場合(ステップS113:Yes)は、iをテーブルt_h_to_l(kf)に記憶する(ステップS114)。その他の場合は(ステップS113:No)、何も記憶しない。
【0219】
そして、q_min(i)が閾値を超えているか、閾値以下かを判断し、フラグstatusに0又は1を設定する(ステップS115)。
【0220】
ステップS111〜ステップS117の処理を、iが1〜Nまで繰り返し(ステップS116、ステップS117)、テーブルt_l_to_h(kr)およびt_h_to_l(kf)に記憶されたiの数をkr_maxおよびkf_maxに記憶する(ステップS118)。
【0221】
次に、脈拍数算出部20は、q_min(i)の所定時間内の周期T(j)の平均値T_aveを以下の式で算出する(ステップS119)。
T_ave=((Σk=0kr_max-1|t_l_to_h(k)-t_l_to_h(k+1)|)
+(Σk=0kf_max-1|t_h_to_l(k)-t_h_to_l(k+1)|))/(kr_max+kf_max)
次に、脈拍数を算出する(ステップS120)。脈拍数は、前記周期の逆数として求められる。すなわち、脈拍数をPR(回/min)として、PR=60/T_aveで表される。
<変形例>
実施形態では、kv_min算出処理(図4)において、q(m,i)の2値化処理を行う場合、測定データとして記憶しているすべてのデータ、すなわち、i=1〜i=Nまでのデータそれぞれについて2値化の処理を行っている。変形例では、このデータを間引いて、例えば、iが偶数のデータのみで2値化処理を行うことで、計算量を減らす。
【0222】
この場合、データを間引いたことによってパルス幅検出の精度を落とさないために、信号qが閾値をまたいだ場合には、またいだデータの間で間引いたデータについて2値化の処理を行い、閾値をまたいだ時刻を正確に取得するものとする。なお、データの間引きは、信号qのパルス幅のバラツキを検出できて、適切なkv_minを算出できる範囲で行うものとする。
【0223】
また、実施形態では、脈拍数PR算出処理(図9)において、q_min(i)から心拍数PRを求める場合、i=1〜i=Nまでのデータすべてを用いているが、変形例の2値化処理と同様に、このデータを間引いて、例えば、iが偶数のデータのみで2値化処理を行うことで、計算量を減らす。
【0224】
以下、変形例の2値化処理および脈拍数PR算出処理を説明する。
【0225】
<2値化処理>
図10は、変形例の2値化処理のフローチャートである。ここでは、1つ置きにデータを間引くものとする。
【0226】
変形例の2値化処理は、図6を用いて説明した実施形態の2値化処理と、処理の流れはほぼ同様である。異なる点は、まず、q(m,i)のインデックスiに2を加算する点(ステップS214)である。1つ置きのデータを処理するからである。また、実施形態では、q(m,i)が閾値をまたいだ時には、そのiをテーブルに記憶している。しかし、変形例では、q(m,i)が閾値をまたいだ時には、その時飛ばしたデータq(m,i-1)が閾値をまたいでいるかを確認して、そのiまたはi-1をテーブルに記憶する(ステップS202〜ステップS205、ステップS207〜ステップS209、ステップS213〜ステップS216、ステップS218〜ステップS221)。
【0227】
まず、2値化処理で用いる変数の初期化を行う(ステップS200)。この変数は、図6と同じである。
【0228】
フラグstatus_1が0で且つq(m,i)が閾値thresh_1より大きい場合、すなわち、閾値thresh_1を下回る値から閾値thresh_1を超えた場合(ステップS201:Yes)は、q(m,i-1)の値を算出する(ステップS202)。すなわち、飛ばしたデータを算出する。
【0229】
そして、q(m,i-1)が閾値thresh_1より大きい場合、すなわち、飛ばしたデータが閾値thresh_1を下回る値から閾値thresh_1を超えた場合(ステップS203:Yes)は、i-1をテーブルt1_l_to_h(kr_1)に記憶し(ステップS204)、超えない場合(ステップS203:No)は、iをテーブルt1_l_to_h(kr_1)に記憶する(ステップS205)。
【0230】
次に、フラグstatus_1が1で且つq(m,i)が閾値thresh_1以下である場合、すなわち、閾値thresh_1を上回る値から閾値thresh_1以下となった場合(ステップS206:Yes)も、q(m,i-1)の値を算出する(ステップS207)。
【0231】
そして、q(m,i-1)が閾値thresh_1以下の場合、すなわち、飛ばしたデータが閾値thresh_1を上回る値から閾値thresh_1以下となった場合(ステップS208:Yes)は、i-1をテーブルt1_l_to_h(kr_1)に記憶し(ステップS209)、以下とならなかった場合(ステップS208:No)は、iをテーブルt1_h_to_l(kf_1)に記憶する(ステップS210)。
【0232】
そして、q(m,i)が閾値thresh_1を超えているか、以下かを判断し、フラグstatus_1に0又は1を設定する(ステップS211)。
【0233】
次に同様に、フラグstatus_2が0で且つq(m,i)が閾値thresh_2より大きい場合、すなわち、閾値thresh_2を下回る値から閾値thresh_2を超えた場合(ステップS212:Yes)は、q(m,i-1)の値を算出する(ステップS213)。すなわち、飛ばしたデータを算出する。
【0234】
そして、q(m,i-1)が閾値thresh_2より大きい場合、すなわち、飛ばしたデータが閾値thresh_2を下回る値から閾値thresh_2を超えた場合(ステップS214:Yes)は、i-1をテーブルt2_l_to_h(kr_1)に記憶し(ステップS215)、超えない場合(ステップS214:No)は、iをテーブルt2_l_to_h(kr_1)に記憶する(ステップS216)。
【0235】
次に、フラグstatus_2が1で且つq(m,i)が閾値thresh_2以下である場合、すなわち、閾値thresh_2を上回る値から閾値thresh_2以下となった場合(ステップS217:Yes)も、q(m,i-1)の値を算出する(ステップS218)。
【0236】
そして、q(m,i-1)が閾値thresh_2より小さい場合、すなわち、飛ばしたデータが閾値thresh_2を上回る値から閾値thresh_2以下となった場合(ステップS219:Yes)は、i-1をテーブルt2_h_to_l(kf_1)に記憶し(ステップS220)、以下とならなかった場合(ステップS219:No)は、iをテーブルt2_h_to_l(kf_1)に記憶する(ステップS221)。
【0237】
そして、q(m,i)が閾値thresh_2を超えているか、以下かを判断し、フラグstatus_2に0又は1を設定する(ステップS222)。
【0238】
ステップS201〜ステップS222の処理を、iが1〜Nまで繰り返し(ステップS213、ステップS214)、t1_l_to_h(kr_1)等のテーブルに記憶されたiの数をkr_1_max等に記憶する(ステップS215)。
【0239】
<脈拍数PR算出処理>
図11は、変形例の脈拍数PR算出処理のフローチャートである。
【0240】
図4のステップS62で記憶したq_min(i)の状態変化の間隔の平均T_aveを算出し、脈拍数PRを求める。
【0241】
まず、q_min(i)に対し、2値化処理を行う(ステップS220〜ステップS234)。閾値を0(ゼロ)として、図10の2値化処理と同様に行う。この場合の閾値は、前記のk_vを決めるときに用いた閾値でも良い。
【0242】
詳細には、2値化処理で用いる変数の初期化を行う(ステップS220)。この変数は、図9と同じである。
【0243】
フラグstatusが0で且つq_min(i)が閾値より大きい場合、すなわち、閾値を下回る値から閾値を超えた場合(ステップS221:Yes)は、q_min(i-1)の値を算出する(ステップS222)。すなわち、飛ばしたデータを算出する。
【0244】
そして、q_min(i-1)が閾値より大きい場合、すなわち、飛ばしたデータが閾値を下回る値から閾値を超えた場合(ステップS223:Yes)は、i-1をテーブルt_l_to_h(kr)に記憶し(ステップS224)、超えない場合(ステップS223:No)は、iをテーブルt_l_to_h(kr)に記憶する(ステップS225)。
【0245】
次に、フラグstatusが1で且つq_min(i)が閾値以下である場合、すなわち、閾値を上回る値から閾値以下となった場合(ステップS226:Yes)も、q_min(i-1)の値を算出する(ステップS227)。
【0246】
そして、q_min(i-1)が閾値以下の場合、すなわち、飛ばしたデータが閾値を上回る値から閾値以下となった場合(ステップS228:Yes)は、i-1をテーブルt_h_to_l(kf)に記憶し(ステップS229)、以下とならなかった場合(ステップS228:No)は、iをテーブルt_h_to_l(kf)に記憶する(ステップS230)。
【0247】
そして、q_min(i)が閾値を超えているか、以下かを判断し、フラグstatusに0又は1を設定する(ステップS231)。
【0248】
次に、q_min(i)の所定時間内の周期T(j)の平均値T_aveを、図9のステップS119と同様に算出する(ステップS235)。
【0249】
次に、脈拍数PRを、図9のステップS120と同様に算出する(ステップS236)。
【0250】
以上のような実施形態及び変形例によれば、漸化式を用いて周期性が最も良い信号成分を求めているので、従来技術より演算処理を簡単化することができ、演算処理量を低減することができる。変形例では、更に、より少ないデータに対して処理を行うため、より演算処理量を低減できる。そのため、演算処理に伴う消費電力を抑制することができる。この結果、生体情報測定装置40に電池を使用することが可能となり、携帯に便利な小型軽量な生体情報測定装置を提供することができる。このため、例えば、登山者や在宅酸素療法患者が常時携帯しても体力的な負担を低下させることができる。
【0251】
また、本実施形態に係る生体情報測定装置40は、信号成分の強度と前記ノイズ成分の強度との比に関する情報を有する指標に基づいて、ノイズ成分を抽出するか否かの判断を行うので、ノイズ成分が無視できるほど小さい場合においては、このノイズ成分の除去を行う演算を省略することができるので、生体情報を得るための演算時間が短縮され、消費電力を抑えて電池動作時間をより長くできるとともに、より早く生体情報を得ることができる。
【0252】
また、本実施形態に係る生体情報測定装置40は、音声、文字および光等によって生体情報、信号信頼度およびノイズ信頼度を出力するので、これらを容易に確認することが可能となる。さらに、本実施形態に係る生体情報測定装置40は、指標が所定の値を超えたことを示す警告、あるいは信号信頼度またはノイズ信頼度の低下を示す警告を出力するので、測定対象者や測定者等に生体情報の取り扱いに関して注意を喚起することもできる。そして、前記指標、前記ノイズ信頼度および前記信号信頼度に応じて、演算された生体情報の取り扱いを変更することが可能となり、例えば、指標を基に再計測等を行うことができる。
【0253】
また、本実施形態に係る生体情報測定装置40は、脈拍数を算出する際に、2値化した波形を用いることで、例えばダブルピーク等による誤測定を低減することができる。
【0254】
また、本実施形態に係る生体情報測定方法は、同じ計算資源(ハードウェア資源)において、生体情報をより早い計算時間で算出することできる。
【0255】
上記実施形態では、一例として、周期性をもつ2波長の光の強度変化を検出して血中酸素飽和度を求める生体情報測定装置40を例示した。この他、周期性をもつ1波長の光の強度変化に基づき、脈拍、不整脈(心房細動・期外収縮)の検出、除細動時のモニター、自律神経障害、血管年齢等の診断等を行う生体情報測定装置にも本発明を適用することができる。さらに、脈波波形以外に、心電等の生体情報を測定対象とする装置にも適用することができる。
【0256】
実施形態の2値化処理は、式(15)が周期性を持つようなk_vを求めるための指標として、2値化処理後の波形の山と谷の周期を用いたが、これに限定されるものではない。2値化処理後の波形における、他の指標として、山が繰り返される周期のみ、谷が繰り返される周期のみを用いてもよい。また、山の周期の最大値‐山の周期の最小値、谷の周期の最大値‐谷の周期の最小値、山の周期の標準偏差、谷の周期の標準偏差、山の幅の最大値‐山の幅の最小値、谷の幅の最大値‐谷の幅の最小値、山の幅の標準偏差、谷の幅の標準偏差を用いても良い。さらに、指標として、R_signal - k_v * IR_signalの波形の極大値と極小値から求められる振幅の最大‐最小や標準偏差等を用いてもよい。
【0257】
実施形態では、閾値を2つ用いたが、3つ以上の閾値を設け、式(15)に対応した信号がそれぞれの閾値を超えるか否かで2値化した3種以上の2値化パルスそれぞれについて前記の種々の周期性の指標を算出して、その平均値(単純平均、調和平均、相乗平均を含む)を最小にするk_vを最適値としてもよい。閾値の数を多くすると計算量は増えるが、周期性の評価の精度が向上する利点がある。
【0258】
いずれの指標においても、指標の標準偏差や指標の最大値と最小値との差等から、所定の時間内で、最も指標のばらつきが最小となるようなk_vを求めてもよい。複数の指標を用いた場合、それぞれの指標を最小にするk_vが異なる場合がある。その場合はそれぞれの指標を最小にするk_vの調和平均値を最適値とする。平均値としては単純平均値、相乗平均値でもよい。また、複数の指標を最小にする複数のk_vのうち前回のk_vに最も近いものを採用しても良い。また、複数の指標の平均値(単純平均値、調和平均値、相乗平均値など)を指標として評価しても良い。
【0259】
複数の指標に応じて複数のk_vを求めた場合には、各k_vに対して、式(8)の等号が成立するようなk_aをおのおの算出しても良い。複数のk_aから最終的なk_aを決める方法は、複数のk_aの平均値(単純平均値、調和平均値、相乗平均値など)を最終的なk_aとしてもよいし、複数のk_aのうち前回の最終的なk_aに最も近いものを今回の最終的なk_aとしてもよいし、複数のk_aのうち最大と最小を除いたものの平均値を最終的なk_aとしてもよい。さらに、前回のk_aとの差の絶対値に対応した重みを掛けて荷重平均しても良い。
【0260】
また、k_vは例えば200組のR_signal、IR_signalについて前記の方法で決定し、k_aを求める際は200組のデータを例えば4分割して4組の式(8)を解いて4個のk_aを算出してそれらの平均値(単純平均、調和平均、相乗平均値、前回k_aとの差の絶対値を重みとする荷重平均値など)を求めても良い。200組のデータ全体で求めたk_aと前記の4個のk_aの平均値をさらに平均しても良い。
【0261】
この他、複数の指標からそれぞれに応じて複数のk_vが求められた場合には、連続するk_vの範囲の中央値、または直前の動脈血酸素飽和度演算で得られたk_vに最も近い値を最適値としてもよい。
【0262】
なお、今までの説明ではノイズ成分の指標が所定の値以下のときは式(14)など従来の方法によりk_aを算出しているが、式(8)に前回のk_v(=k_v_0)を代入してk_aを求めても良い。ノイズが小さい場合は式(8)の左辺は
Σ{IR_signal * k_v - R_signal} * {IR_signal * k_a - R_signal}
≒(k_v - k_a) * ΣIR_signal * {IR_signal * k_a - R_signal}
≒(k_v - k_a) * {ΣIR_signal2 * k_a - ΣIR_signal * R_signal}
なので、k_v としてk_aとは異なる値を代入すれば、方程式は
ΣIR_signal2 * k_a - ΣIR_signal * R_signal=0
と等価である。この解は
k_a=ΣIR_signal * R_signal / ΣIR_signal2
が得られる。ノイズが小さいときはR_signal≒真のk_a * IR_signalなので、上式の右辺は真のk_aになる。
【0263】
したがって、式(8)に前回のk_vなどk_aとは異なると思われる値を代入して解くことにより、真のk_aに十分近い値を得ることができる。
【0264】
また、ノイズが小さいときはR_signal − k_v * IR_signalは広い範囲のk_vに対して強い周期性を持つが、その場合でも前回のk_vとk_vの差の絶対値を前記の種々の指標に掛けた値を評価すれば、k_vの最適値はほぼ前回のk_vに近い値になるので、ノイズの指標が大きいときと同様の処理を行っても真のk_aに十分近い値を得ることができる。計算速度よりもプログラムの簡素化を重視する場合はノイズ指標の大きさによって処理を分けなくても良い。
【0265】
なお、周期性を利用する一例として、式(15)の左辺が周期性を満たすようにk_vを求める例を挙げたが、式(15)に限定されるものではなく、k_vが信号成分で表される数式であれば、式(15)に代えて用いてもよい。
【0266】
本発明を表現するために、上述において図面を参照しながら実施形態を通して本発明を適切且つ十分に説明したが、当業者であれば上述の実施形態を変更および/または改良することは容易に為し得ることであると認識すべきである。したがって、当業者が実施する変更形態または改良形態が、請求の範囲に記載された請求項の権利範囲を離脱するレベルのものでない限り、当該変更形態または当該改良形態は、当該請求項の権利範囲に包括されると解釈される。
【符号の説明】
【0267】
1 データ取得部
2 センサ(R)部
3 センサ(IR)部
10 測定部
11 AC/DC(R)変換部
12 AC/DC(IR)変換部
13 BPF(R)部
14 BPF(IR)部
15 ΣR_signal*IR_signal算出部
16 Σ(R_signal)2算出部
17 Σ(IR_signal)2算出部
18 初期値算出部
19 SvO2推定SpO2決定部
20 脈拍数算出部
21 信頼度算出部
22 差分算出部
30 出力部
31 SpO2出力部
32 脈拍数出力部
33 信頼度出力部
40 生体情報測定装置

【特許請求の範囲】
【請求項1】
周期性を有する第1信号成分と、第1ノイズ成分とを含む第1の時系列信号と、前記第1信号成分と所定の関係を有する第2信号成分および前記第1ノイズ成分と所定の関係を有する第2ノイズ成分を含む第2の時系列信号と、前記第1ノイズ成分と前記第2ノイズ成分との前記所定の関係とに基づいて、前記第1の時系列信号と前記第2の時系列信号とから前記第1信号成分を含む信号であって、前記第1ノイズ成分と前記第2ノイズ成分との前記所定の関係を所定の差分ずつ異ならせた複数の信号を生成する信号生成部と、
第1の所定時間範囲での前記信号生成部で生成した各信号の周期性を用いて、前記第1の所定時間範囲での前記第1ノイズ成分と前記第2ノイズ成分との前記所定の関係を推定する推定部とを備え、
前記信号生成部は、基準となる1つの信号を生成し、当該信号と、前記第1時系列信号と前記所定の差分とから算出したデータとを用いた漸化式によって他の信号を生成する
ことを特徴とする信号処理装置。
【請求項2】
請求項1において、
前記信号生成部が、生成した信号に2値化処理を行うことで2値化信号をさらに生成し、
前記推定部が、前記2値化信号の周期性を用いて前記信号生成部で生成した信号の周期を推定すること
を特徴とする信号処理装置。
【請求項3】
請求項2において、
前記信号生成部は、基準となる信号の閾値を算出し、当該閾値と、前記第1の時系列信号又は前記第2の時系列信号と前記所定の差分とを用いて算出したデータとを用いて、漸化式によって他の信号の閾値を算出すること
を特徴とする信号処理装置。
【請求項4】
請求項2または請求項3において、
前記信号生成部が生成した信号は、時系列信号であり、
前記信号生成部は、生成した信号から所定数毎に間引かれた結果のデータを用いて2値化処理を行うこと
を特徴とする信号処理装置。
【請求項5】
請求項4において、
前記閾値を挟む2つの前記間引かれた結果のデータの間の間引いたデータに、前記2値化処理を行うこと
を特徴とする信号処理装置。
【請求項6】
信号処理方法であって、
第1の所定時間範囲での、周期性を有する第1信号成分と第1ノイズ成分とを含む第1の時系列信号と、前記第1信号成分と所定の関係を有する第2信号成分および前記第1ノイズ成分と所定の関係を有する第2ノイズ成分を含む第2の時系列信号と、前記第1ノイズ成分と前記第2ノイズ成分との前記所定の関係とに基づいて、前記第1の時系列信号と前記第2の時系列信号とから前記第1信号成分を含む信号であって、前記第1ノイズ成分と前記第2ノイズ成分との前記所定の関係を所定の差分ずつ異ならせた複数の信号を生成する信号生成ステップと、
第1の所定時間範囲での前記生成ステップで生成した各信号の周期性を用いて、前記第1の所定時間範囲での前記第1ノイズ成分と前記第2ノイズ成分との前記所定の関係を推定する推定ステップとを備え、
前記信号生成ステップは、基準となる1つの信号を生成し、当該信号と、前記第1時系列信号と前記所定の差分とから算出したデータとを用いた漸化式によって他の信号を生成する
ことを特徴とする信号処理方法。
【請求項7】
互いに波長の異なる複数の光を生体へそれぞれ照射して前記生体を透過または反射した各光をそれぞれ受光することによって得られた少なくとも第1測定データまたは第2測定データに基づいて、前記生体の生体情報を測定する生体情報測定装置であって、
周期性を有する第1信号成分と、第1ノイズ成分からなる第1測定データを測定する第1測定部と、
前記第1信号成分と所定の関係を有する第2信号成分および第1ノイズ成分と所定の関係を有する第2ノイズ成分を含む第2測定データを測定する第2測定部と、
前記第1測定データと、前記第2測定データと、前記第1ノイズ成分と前記第2ノイズ成分との前記所定の関係とに基づいて、前記第1測定データと前記第2測定データとから前記第1信号成分を含む信号であって、前記第1ノイズ成分と前記第2ノイズ成分との前記所定の関係を所定の差分ずつ異ならせた複数の信号を生成する信号生成部と、
前記信号生成部が生成した信号の周期性を用いて、前記第1ノイズ成分と前記第2ノイズ成分との前記所定の関係を推定する推定部とを備え、
前記信号生成部は、基準となる1つの信号を生成し、当該信号と、前記第1測定データと前記所定の差分とから算出したデータとを用いた漸化式によって他の信号を生成すること
を特徴とする生体情報測定装置。
【請求項8】
請求項7において、
前記推定部が推定した所定の関係に基づいて、所定の周期で血中酸素飽和度を算出する血中酸素飽和度算出部を備え、
前記生成信号部は、前記所定の周期よりも長い周期で、前記複数の信号を生成して、2値化信号を生成し、
前記推定部は、前記2値化信号の周期性に基づいて、前記第1ノイズ成分と前記第2ノイズ成分との前記所定の関係を推定すること
を特徴とする生体情報測定装置。
【請求項9】
請求項7または請求項8において、
前記推定部が推定した所定の関係を有する信号に2値化処理を行うことで2値化信号を生成し、当該2値化信号の周期性を用いて脈拍数を算出する脈拍数算出部を備えること
を特徴とする生体情報測定装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate


【公開番号】特開2012−235890(P2012−235890A)
【公開日】平成24年12月6日(2012.12.6)
【国際特許分類】
【出願番号】特願2011−106546(P2011−106546)
【出願日】平成23年5月11日(2011.5.11)
【出願人】(303050160)コニカミノルタオプティクス株式会社 (175)
【Fターム(参考)】