(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-02-02
(45)【発行日】2023-02-10
(54)【発明の名称】呼吸数検出装置及び呼吸数検出方法
(51)【国際特許分類】
A61B 5/113 20060101AFI20230203BHJP
A61B 5/08 20060101ALI20230203BHJP
【FI】
A61B5/113
A61B5/08
(21)【出願番号】P 2019056784
(22)【出願日】2019-03-25
【審査請求日】2021-12-10
(73)【特許権者】
【識別番号】000110217
【氏名又は名称】トッパン・フォームズ株式会社
(74)【代理人】
【識別番号】100141139
【氏名又は名称】及川 周
(74)【代理人】
【識別番号】100140774
【氏名又は名称】大浪 一徳
(74)【代理人】
【識別番号】100206999
【氏名又は名称】萩原 綾夏
(72)【発明者】
【氏名】清水 智樹
【審査官】磯野 光司
(56)【参考文献】
【文献】国際公開第2017/130250(WO,A1)
【文献】特開2006-247374(JP,A)
【文献】特開2017-086767(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
A61B 5/08-5/097
A61B 5/113
(57)【特許請求の範囲】
【請求項1】
ユーザの呼吸による身体の変位を示す変位値であって、大きさと方向により示される変位情報を、互いに異なる複数の方向について所定の周期で取得する取得部と、
前記取得部により取得された前記変位情報を用いて、前記互いに異なる複数の方向のうちの第1方向における前記変位情報の大きさ
を示す第1変位値と、前記第1方向とは異なる方向である第2方向における前記変位情報の大きさ
を示す第2変位値とを合成する合成部と、
前記合成部により合成された合成値の時系列変化に基づいて前記ユーザの呼吸数を算出する算出部と、
を備え
、
前記合成部は、
前記第1変位値を微分した第1微分値を算出し、
前記第2変位値を微分した第2微分値を算出し、
前記第1微分値と前記第2微分値との加算値の絶対値である第1絶対値を算出し、
前記第1微分値と前記第2微分値との差分値の絶対値である第2絶対値を算出し、
所定の時間区間における前記第1絶対値の最大値が、前記時間区間における前記第2絶対値の最大値より大きい場合には符号を1とし、
前記時間区間における前記第1絶対値の最大値が、前記時間区間における前記第2絶対値の最大値より小さい場合には前記符号を-1とし、
前記第1変位値に、前記第2変位値と前記符号とを乗算した乗算値を加算することにより合成する、
呼吸数検出装置。
【請求項2】
前記合成部は、第1時刻における前記符号が、前記第1時刻より閾値回前に取得された第2時刻における前記符号から変化している場合、前記符号の変化が閾値回数以上継続していなければ前記第1時刻における前記符号を、前記第2時刻における前記符号に変更し、前記第1変位値に、前記第2変位値と変更後の前記符号とを乗算した乗算値を加算することにより合成する、
請求項1に記載の呼吸数検出装置。
【請求項3】
取得部が、ユーザの呼吸による身体の変位に関する変位情報であって、大きさと方向により示される変位情報を、互いに異なる複数の方向について所定の周期で取得し、
合成部が、前記取得部により取得された前記変位情報を用いて、前記互いに異なる複数の方向のうちの第1方向における前記変位情報の大きさ
を示す第1変位値と、前記第1方向とは異なる方向である第2方向における前記変位情報の大きさ
を示す第2変位値とを合成し、
算出部が、前記合成部により合成された合成値の時系列変化に基づいて前記ユーザの呼吸数を算出
し、
前記合成部は、
前記第1変位値を微分した第1微分値を算出し、
前記第2変位値を微分した第2微分値を算出し、
前記第1微分値と前記第2微分値との加算値の絶対値である第1絶対値を算出し、
前記第1微分値と前記第2微分値との差分値の絶対値である第2絶対値を算出し、
所定の時間区間における前記第1絶対値の最大値が、前記時間区間における前記第2絶対値の最大値より大きい場合には符号を1とし、
前記時間区間における前記第1絶対値の最大値が、前記時間区間における前記第2絶対値の最大値より小さい場合には前記符号を-1とし、
前記第1変位値に、前記第2変位値と前記符号とを乗算した乗算値を加算することにより合成する、
呼吸数検出方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、呼吸数検出装置及び呼吸数検出方法に関する。
【背景技術】
【0002】
加速度センサを搭載したデバイスをユーザの身体の胸部や腹部に装着してユーザの呼吸数を検出する呼吸数検出装置が提案されている。すなわち、ユーザの胸部や腹部に3軸加速度センサを取り付けると、呼吸による胸部や腹部の変位を3軸加速度センサで取得できる。したがって、3軸加速度センサの各軸の検出値を合成し、この合成波形の極大値や極小値をカウントすれば、ユーザの呼吸数を検出できる。また、特許文献1には、3軸加速度センサで検出された加速度データをFFT(Fast Fourier Transform)で周波数領域の信号に変換し、ピーク周波数を検出して呼吸数を検出することが記載されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、FFTの計算は演算量が多い。このため、特許文献1に示されるものでは、高性能なプロセッサが必要であり、また、消費電力が上昇し、リアルタイムでのデータ処理が困難である。
【0005】
上述の課題を鑑み、本発明は、計算量の多い演算処理を行わずにノイズ成分の影響を低減させることができる呼吸数検出装置及び呼吸数検出方法を提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明の一態様に係る呼吸数検出装置は、ユーザの呼吸による身体の変位に関する変位情報であって、大きさと方向により示される変位情報を、互いに異なる複数の方向について所定の周期で取得する取得部と、前記取得部により取得された前記変位情報を用いて、前記互いに異なる複数の方向のうちの第1方向における前記変位情報の大きさを示す第1変位値と、前記第1方向とは異なる方向である第2方向における前記変位情報の大きさを示す第2変位値とを合成する合成部と、前記合成部により合成された合成値の時系列変化に基づいて前記ユーザの呼吸数を算出する算出部とを備え、前記合成部は、前記第1変位値を微分した第1微分値を算出し、前記第2変位値を微分した第2微分値を算出し、前記第1微分値と前記第2微分値との加算値の絶対値である第1絶対値を算出し、前記第1微分値と前記第2微分値との差分値の絶対値である第2絶対値を算出し、所定の時間区間における前記第1絶対値の最大値が、前記時間区間における前記第2絶対値の最大値より大きい場合には符号を1とし、前記時間区間における前記第1絶対値の最大値が、前記時間区間における前記第2絶対値の最大値より小さい場合には前記符号を-1とし、前記第1変位値に、前記第2変位値と前記符号とを乗算した乗算値を加算することにより合成する。
【0007】
本発明の一態様に係る呼吸数検出方法は、取得部が、ユーザの呼吸による身体の変位に関する変位情報であって、大きさと方向により示される変位情報を、互いに異なる複数の方向について所定の周期で取得し、合成部が、前記取得部により取得された前記変位情報を用いて、前記互いに異なる複数の方向のうちの第1方向における前記変位情報の大きさを示す第1変位値と、前記第1方向とは異なる方向である第2方向における前記変位情報の大きさを示す第2変位値とを合成し、検出部が、前記合成部により合成された合成値の時系列変化に基づいて前記ユーザの呼吸数を算出し、前記合成部は、前記第1変位値を微分した第1微分値を算出し、前記第2変位値を微分した第2微分値を算出し、前記第1微分値と前記第2微分値との加算値の絶対値である第1絶対値を算出し、前記第1微分値と前記第2微分値との差分値の絶対値である第2絶対値を算出し、所定の時間区間における前記第1絶対値の最大値が、前記時間区間における前記第2絶対値の最大値より大きい場合には符号を1とし、前記時間区間における前記第1絶対値の最大値が、前記時間区間における前記第2絶対値の最大値より小さい場合には前記符号を-1とし、前記第1変位値に、前記第2変位値と前記符号とを乗算した乗算値を加算することにより合成する。
【発明の効果】
【0008】
本発明によれば、計算量の多い処理であるFFT処理を用いずに、加速度センサからの加速度データから呼吸成分のみを抽出して正確に呼吸数を算出することができる。
【図面の簡単な説明】
【0009】
【
図1】本発明の第1の実施形態に係る呼吸数検出装置1の概要の説明図である。
【
図2】本発明の第1の実施形態に係る呼吸数検出装置1の構成を示すブロック図である。
【
図3】x軸の加速度データの一例を示すグラフである。
【
図6】本発明の第1の実施形態に係る呼吸数検出装置1の処理を示すフローチャートである。
【
図7】本発明の第1の実施形態に係る呼吸数検出装置1の処理を示すフローチャートである。
【
図9A】本発明の第2の実施形態での処理により求められる変数a’(t)の説明図である。
【
図9B】本発明の第2の実施形態での処理により求められる変数a’(t)の説明図である。
【
図10】本発明の第2の実施形態に係る呼吸数検出装置1の処理を示すフローチャートである。
【
図11】本発明の第2の実施形態に係る呼吸数検出装置1の処理を示すフローチャートである。
【
図12】本発明の第2の実施形態に係る呼吸数検出装置1の処理を示すフローチャートである。
【
図13】本発明の第2の実施形態に係る呼吸数検出装置1の処理を示すフローチャートである。
【発明を実施するための形態】
【0010】
以下、本発明の実施の形態について図面を参照しながら説明する。
<第1の実施形態>
図1は、本発明の第1の実施形態に係る呼吸数検出装置1の概要の説明図である。
図1に示すように、呼吸数検出装置1は、ユーザ2の胸部や腹部等に取り付けて使用される。また、本発明の第1の実施形態に係る呼吸数検出装置1は、携帯端末のような加速度センサが搭載されたデバイスにアプリケーションプログラムを実装することにより実現できる。勿論、呼吸数検出装置1としては、専用のデバイスを用意しても良い。
【0011】
図2は、本発明の第1の実施形態に係る呼吸数検出装置1の構成を示すブロック図である。
図2に示すように、本発明の第1の実施形態に係る呼吸数検出装置1は、3軸加速度センサ10と、フィルタリング部11a、11b、11cと、合成部12と、算出部13とから構成される。
【0012】
3軸加速度センサ10は、ユーザ2の呼吸による身体の変位に関する変位情報であって、大きさと方向により示される変位情報を、互いに異なる複数の方向について所定の周期で取得する取得部として機能する。すなわち、
図1に示したように、呼吸数検出装置1はユーザ2の胸部や腹部に装着される。ユーザ2が呼吸すると、呼吸に伴う身体の動きが生じる。3軸加速度センサ10は、この呼吸に伴うユーザの身体の動きを、x軸、y軸、z軸の3軸の加速度データとして出力する。
【0013】
フィルタリング部11a、11b、11cは、3軸加速度センサ10からの3軸の加速度データからノイズ成分を取り除く。フィルタリング部11a、11b、11cとしては、例えば、ローパスフィルタやバンドパスフィルタが用いられる。
【0014】
なお、この例では、フィルタリング部11a、11b、11cは、合成部12の前段に設けているが、フィルタリング部11a、11b、11cは、合成部12の後段に設けても良い。また、合成部12に入力させるデータが加速度データである場合を例に説明したが、これに限定されない。合成部12に入力させるデータは、加速度データの差分値であってもよい。加速度データの差分値は、ある時点の加速度データと、その前の時点の加速度データとの差分である。
【0015】
合成部12は、3軸加速度センサ10からのx軸の加速度データとy軸の加速度データとz軸の加速度データとの3軸の加速度データを合成する。ここで、3軸の加速度データを合成する場合、互いの波形の位相関係によっては、加速度データを単純に加算することで、生成される信号が減衰することがある。そこで、本実施形態では、x軸、y軸、z軸の3軸の加速度データの微分値から、各方向の加速度データの位相関係を判定し、位相関係に応じて、信号が減衰しないように各軸の加速度データを加算又は減算する。
【0016】
算出部13は、合成部12によって得られた波形から、呼吸数を算出する。すなわち、算出部13は、合成部12により合成された合成値の時系列変化に基づいてユーザの呼吸数を算出する。呼吸数の算出は、合成部12で取得した呼吸波形の極大値、極小値、ゼロクロス点などの特徴点をカウントすることで算出できる。また、算出部13は、合成部12で取得した呼吸波形の差分を取った波形の極大値、極小値、ゼロクロス点などの特徴点から算出しても良い。
【0017】
次に、合成部12で3軸加速度センサ10からの3軸の加速度データを合成するときの処理について説明する。
図3は、x軸の加速度データの一例を示すグラフである。
図3において、横軸は時刻を示し、縦軸は加速度の振幅を示す。3軸加速度センサ10で観測されるx軸の加速度の波形は、時刻をtとすると、以下のように表すことができる。
【0018】
x=fx(t)
【0019】
したがって、3軸加速度センサ10のx軸の加速度が
図2に示すような波形で変化している場合、連続する時刻t
k-2、t
k-1、t
kでは、3軸加速度センサ10からは、x軸の加速度データとして、f
x(t
k-2)、f
x(t
k-1)、f
x(t
k)が取得される。
【0020】
3軸加速度センサ10のy軸の加速度データ、z軸の加速度データについても、以下のように表すことができる。
【0021】
y=fy(t)
z=fz(t)
【0022】
連続する時刻tk-2、tk-1、tkでは、y軸の加速度データとして、fy(tk-2)、fy(tk-1)、fy(tk)が取得され、z軸の加速度データとして、fz(tk-2)、fz(tk-1)、fz(tk)が取得される。
【0023】
ここで、合成波形F(x)を以下のような単純な加算により算出したとする。
【0024】
F(x)=fx(t)+fy(t)+fz(t)
【0025】
x軸、y軸、z軸の3軸の加速度波形の位相や符号が揃っていれば、このように3軸加速度センサ10からの3軸の加速度データを単純に加算することによって、良好な合成データの波形を得ることができると考えられる。
【0026】
ところが、ユーザ2の姿勢や動きなどによって、3軸の加速度波形の位相や符号にずれが生じた場合、加速度データを単純に加算をすると、波を打ち消し合うことになる。
【0027】
すなわち、
図4は、波形の合成の例を示すグラフである。
図4に示すように、波形f
1(t)と波形f
2(t)との2つの波形を合成するとする。ここでは、2つの波形f
1(t)、f
2(t)として、以下の波形を用いるとする。
【0028】
f1(t)=2sint
f2(t)=sint (t≦tk)
f2(t)=sin(t+π) (t>tk)
【0029】
このように、波形f1と波形f2とは同一周波数のsin波であるが、波形f1は連続しているのに対して、波形f2は、時刻tkで位相が反転している。したがって、時刻tkとなる以前では波形f1(t)と波形f2(t)とは同位相であるが、時刻tkを過ぎると、波形f1(t)と波形f2(t)とが逆位相になる。
【0030】
図4に示す2つの波形f
1(t)、f
2(t)を、以下のように、単純に加算して合成したとする。
【0031】
f1(t)+f2(t)
【0032】
この場合、2つの波形が同位相となる(t≦tk)の範囲では、2つの波形f1(t)、f2(t)を加算することで波形は増幅される。しかしながら、2つの波形の位相が異なる(t>tk)となる範囲では、2つの波形f1(t)、f2(t)を加算すると、互いの波形が打ち消し合い、波形が減衰されてしまう。
【0033】
そこで、2つの波形の位相が異なる(t>t
k)の範囲では、
図5に示すように、2つの波形f
1(t)、f
2(t)を減算して合成することが考えられる。
【0034】
f1(t)-f2(t)
【0035】
このように、2つの波形の位相が異なる(t>tk)の範囲では、2つの波形f1(t)、f2(t)を減算することで、増幅された合成波形を得ることができる。
【0036】
このことから、3軸加速度センサ10からのx軸、y軸、z軸の3軸の加速度データに対しては、例えば、一定時刻毎に過去数秒間の加速度を元に位相のずれを判定し、そのずれに応じて適切な合成を行えば良いと考えられる。位相のずれの判定方法には、例えば、加速度データを各軸それぞれ微分したデータに対し、2軸の合計値と差分値それぞれの絶対値のうち、どちらが大きいか比較する方法が考えられる。合計値の方が大きければ位相が同じ、差分値の方が大きければ位相がずれていると言える。合成方法としては、位相が同じであれば加算、位相がずれていれば減算をする方法が考えられる。
【0037】
そこで、本実施形態では、x軸、y軸、z軸の3軸のうちの1軸を基準軸とし、基準軸の加速度データの微分値と他の軸の加速度データの微分値との合成値及び差分値を算出し、この合成値と差分値とを比較することで、2つの波形の位相関係を判定し、変数a(t)及びb(t)を決定している。ここで、変数a(t)及びb(t)は、位相関係により決まる1又は-1となる変数である。変数a(t)及びb(t)が1のときは加算を意味し、変数a(t)及びb(t)が-1のときは減算を意味する。そして、本実施形態は、変数a(t)及びb(t)を使って、x軸、y軸、z軸の3軸の加速度データの合成値を以下のように算出している。また、基準軸の方向は、「第1方向」の一例である。また、基準軸とは異なる他の軸の方向は、「第2方向」の一例である。
【0038】
F(x)=fz(t)+a(t)fx(t)+b(t)fy(t)
【0039】
すなわち、z軸を基準軸とすると、z軸の加速度データとx軸の加速度データとの位相関係は、z軸の加速度データの微分値とx軸の加速度データの微分値との合成値と、z軸の加速度データの微分値とx軸の加速度データの微分値との差分値とを比較することで判定できる。z軸の加速度データの微分値とx軸の加速度データの微分値との合成値の方がその差分値より大きければ、2つの波形の位相が略々合致している。この場合には、変数a(t)は、(a(t)=1)となり、z軸の加速度データとx軸の加速度データとが加算して合成される。z軸の加速度データの微分値とx軸の加速度データの微分値との差分値の方がその合成値より大きければ、2つの波形の位相が異なっている。この場合には、変数a(t)は(a(t)=-1)となり、z軸の加速度データとx軸の加速度データとが減算して合成される。
【0040】
同様に、z軸を基準軸とすると、z軸の加速度データとy軸の加速度データとの位相関係は、z軸の加速度データの微分値とy軸の加速度データの微分値との合成値と、z軸の加速度データの微分値とy軸の加速度データの微分値との差分値を算出することで判定できる。z軸の加速度データの微分値とy軸の加速度データの微分値との合成値の方がその差分値より大きければ、2つの波形の位相が略々合致している。この場合には、変数b(t)は、(b(t)=1)となり、z軸の加速度データとy軸の加速度データとが加算して合成される。z軸の加速度データの微分値とy軸の加速度データの微分値との差分値の方がその合成値より大きければ、2つの波形の位相が異なっている。この場合には、変数b(t)は、(b(t)=-1)となり、z軸の加速度データとy軸の加速度データとが減算して合成される。
【0041】
次に、本実施形態に係る合成部12の合成処理について、具体的に説明する。なお、この例では、z軸を基準軸としている。また、位相のずれを判定する区間の長さを表すパラメータとして1以上の任意の整数をi、加算か減算を切り替えるための係数として時刻tによって1か-1の値を取る変数をa(t)、b(t)とする。
【0042】
図6及び
図7は、本発明の第1の実施形態に係る呼吸数検出装置1の処理を示すフローチャートである。
図6は、時刻t
kにおける合成波形F(t
k)を求めるための全体処理を示している。
【0043】
(ステップS1)合成部12は、時刻t
kにおける3軸加速度センサ10のx軸、y軸、z軸の3軸の加速度データを取得して、処理をステップS2に進める。なお、
図6のフローチャートでは記載を省略しているが、合成部12は、加速度データをフィルタリングした後の加速度データを取得する。
【0044】
(ステップS2)合成部12は、ステップS1で取得された3軸の加速度データの微分値を算出して、処理をステップS3に進める。
【0045】
(ステップS3)合成部12は、z軸とx軸の2軸の加速度データの微分値から、2軸の加速度データの微分値の合成値及び差分値を算出し、この合成値と差分値とを比較することで、2つの波形の位相関係を判定し、変数a(tk)を決定する。なお、このときの処理については、後に詳述する。
【0046】
(ステップS4)合成部12は、z軸とy軸の2軸の加速度データの微分値から、2軸の加速度データの微分値の合成値及び差分値を算出し、この合成値と差分値とを比較することで、2つの波形の位相関係を判定し、変数b(tk)を決定する。
【0047】
(ステップS5)合成部12は、ステップS3で求められた変数a(tk)と、ステップS4で求められた変数b(tk)と、時刻tkでの3軸の加速度データfx(tk)、fy(tk)、fz(tk)を用いて、時刻tkにおける合成波形F(tk)を以下のようにして算出する。
【0048】
F(tk)=fz(tk)+a(tk)fx(tk)+b(tk)fy(tk)
【0049】
(ステップS6)時刻tkでの合成波形F(tk)が算出されたら、合成部12は、処理を終了するか否かを判定する。そして、合成部12は、処理を終了しなければ(ステップS6:No)、処理をステップS7に進め、処理を終了する場合には(ステップS6:Yes)、処理終了となる。
【0050】
(ステップS7)合成部12は、時刻tkを1増加して、処理をステップS1にリターンする。
【0051】
図7は、ステップS3での変数a(t
k)を算出する処理を示すフローチャートである。
【0052】
(ステップS101)合成部12は、微分したz軸のデータと微分したx軸のデータとの合計の絶対値を算出する。そして、合成部12は、微分したz軸のデータと微分したx軸のデータとの合計の絶対値の最大値Maxz+x(tk)を算出する。
【0053】
すなわち、3軸加速度センサ10からは、時刻tkにおけるz軸の加速度データとして、fz(tk)、fz(tk-1)、fz(tk-2)、…、fz(tk-i)が取得される。この加速度データを微分することで、z軸の微分値fz’(tk)、fz’(tk-1)、fz’(tk-2)、…、fz’(tk-i)が得られる。
【0054】
また、3軸加速度センサ10からは、時刻tkにおけるx軸の加速度データとして、fx(tk)、fx(tk-1)、fx(tk-2)、…、fx(tk-i)が取得される。この加速度データを微分することで、x軸の微分値fx’(tk)、fx’(tk-1)、fx’(tk-2)、…、fx’(tk-i)が得られる。
【0055】
この場合、z軸の加速度データの微分値とx軸の加速度データの微分値との合計値の絶対値は、以下のようになる。
【0056】
|fz’(tk)+fx’(tk)|、
|fz’(tk-1)+fx’(tk-1)|、
|fz’(tk-2)+fx’(tk-2)|、
…、
|fz’(tk-i)+fx’(tk-i)|
【0057】
微分したz軸のデータと微分したx軸のデータとの合計の絶対値の最大値をMaxz+x(tk)と表すことにする。これは、z軸とx軸の2軸を合計した場合の大きさの指標になると言える。
【0058】
(ステップS102)同様に、合成部12は、微分したz軸のデータと微分したx軸のデータとの差分の絶対値を算出する。そして、合成部12は、微分したz軸のデータと微分したx軸のデータとの差分の絶対値の最大値Maxz-x(tk)を算出する。
【0059】
微分したz軸のデータと微分したx軸のデータとの差分の絶対値は、以下のようになる。
【0060】
|fz’(tk)-fx’(tk)|、
|fz’(tk-1)-fx’(tk-1)|、
|fz’(tk-2)-fx’(tk-2)|、
…、
|fz’(tk-i)-fx’(tk-i)|
【0061】
微分したz軸のデータと微分したx軸のデータとの差分の絶対値の最大値をMaxz-x(tk)と表すことにする。
【0062】
(ステップS103)合成部12は、ステップS101で求めた合計値の最大値Maxz+x(tk)と、ステップS102で求めた差分値の最大値Maxz-x(tk)との関係を判定する。そして、合成部12は、合計値の最大値Maxz+x(tk)の方が差分値の最大値Maxz-x(tk)より大きい場合には(ステップS103:Yes)、処理をステップS104に進め、差分値の最大値Maxz-x(tk)の方が合計値の最大値Maxz+x(tk)より大きい場合には(ステップS103:No)、処理をステップS105に進める。
【0063】
(ステップS104)合計値の最大値Maxz+x(tk)の方が差分値の最大値Maxz-x(tk)より大きい場合、z軸とx軸との2軸の合計値の方が支配的であるため、2軸の位相が合っていると言える。よって、変数a(tk)としては、加算を表すa(tk)=1とする。
【0064】
(ステップS105)差分値の最大値Maxz-x(tk)の方が合計値の最大値Maxz+x(tk)より大きい場合、z軸とx軸との2軸の差分値の方が支配的であるため、2軸の位相がずれていると言える。よって、変数a(tk)としては、減算を表すa(tk)=-1とする。
【0065】
このように、ステップS3では、z軸を基準軸とする場合、z軸の加速度データの微分値とx軸の加速度データの微分値との合成値及び差分値を算出し、この合成値と差分値とを比較することで、2つの波形の位相関係を判定し、変数a(tk)を決定している。
【0066】
図6におけるステップS4での変数b(t
k)を決定する処理は、ステップS3での変数a(t
k)を決定する処理と基本的には同じである。すなわち、ステップS4での変数b(t
k)を決定する処理は、
図7におけるステップS101~S105の処理と同様の手順の処理を、xをyに置き換えて同様にして行えば良い。そして、微分したz軸のデータと微分したy軸のデータとの合計の絶対値の最大値Max
z+y(t
k)と、微分したz軸のデータと微分したy軸のデータとの差分の絶対値の最大値Max
z-y(t
k)とを求め、これらの関係によって以下の処理を行う。
【0067】
・Maxz+y(tk)≧Maxz-y(tk)の場合
b(tk)=1とする。
・Maxz+y(tk)<Maxz-y(tk)の場合
b(tk)=-1とする。
【0068】
なお、上述の例では、z軸を基準軸としているが、z軸でなくx軸やy軸を基準にしても良い。また、合成波形から呼吸数を算出したいのであれば、波形の周期が分かれば良いので、時刻tkのおける合成波形F(tk)は、微分値を使って、以下のように求めても良い。
【0069】
F(tk)= fz’(tk)+a(tk)fx’(tk)+b(tk)fy’(tk)
【0070】
以上説明したように、本実施形態では、3軸加速度センサ10からの3軸の加速度データを合成する際に、加速度データの微分値から加速度の方向を判定し、加速度の方向に応じて、3軸の加速度データを加算又は減算している。これにより、互いの信号の位相関係にかかわらず、合成した波形を増幅することができる。
【0071】
<第2の実施形態>
次に、本発明の第2の実施形態について説明する。この実施形態は、前述の第1の実施形態に補正処理を加えたものである。
【0072】
前述の第1の実施形態において、変数a(t)及びb(t)は、1か-1の値を取る変数であり、基準軸に対して他の軸を加算するか減算するかを決定する係数に当たる。よって、これらの値はフィルタリングが良好の場合は位相がずれることによって変化することはあるが、突発的に変化することはないと考えられる。このことから、フィルタリング処理によって除去しきれないノイズの影響で変数a(t)、b(t)が変化してしまった場合、合成波形F(t)が歪む可能性が考えられる。このことについて、
図8A及び
図8Bを使って説明する。
【0073】
図8A及び
図8Bは、変数a(t)の変化の説明図である。例えば、加速度データに対して第1の実施形態に基づく処理を行ったところ、変数a(t)が
図8A及び
図8Bに示すように変化したとする。
【0074】
図8Aでは、時刻(t=14)から変数a(t)の値が変化している。すなわち、
図8Aでは、時刻(t=13)までは、変数a(t)は全て(a(t)=1)であるが、時刻(t=14)から後では、変数a(t)は全て(a(t)=-1)に変化している。このように、変数a(t)がある時刻を境に変化するのは、ユーザ2の姿勢や動きなどによって位相が変化したことが原因と考えられる。
【0075】
これに対して、
図8Bでは、時刻(t=32)と時刻(t=37)のときのみ、変数a(t)の値が突発的に変化している。すなわち、
図8Bでは、時刻(t=32)、(t=37)のときのみ(a(t)=-1)であり、それ以外では、変数a(t)は全て(a(t)=1)である。このように、変数a(t)が突発的に変化しているのは、ノイズの影響である可能性が高く、このような変数a(t)の値を元に合成波形F(t)を算出すると、波形が歪む可能性があると考えられる。
【0076】
そこで、本実施形態では、変数a(t)が変化してから経過した回数に閾値を設け、閾値回数以上変化が継続した場合のみ、実際に位相がずれたと判定している。すなわち、変数a(t)が変化してから経過した回数が閾値以上なら、
図8Aに示すように、ユーザ2の姿勢や動きなどによって位相が変化したと考えられる。変数a(t)が変化してから経過した回数が閾値に達していなければ、
図8Bに示すように、この変化はノイズであると考えられる。変数b(t)についても同様に、変数b(t)が閾値回数以上変化が継続した場合のみ、実際に位相がずれたと判定している。
【0077】
本実施形態での具体的な手順は以下のようになる。まず、本実施形態では、新たに、変数a’(t)及び b’(t)と、定数jと、カウンタ変数gx(t)とgy(t)とが導入される。変数a’(t)及び b’(t)は、位相が変化してから閾値に達したか否かに応じて1か-1の値を取り、変数a(t)及びb(t)に置き換えられる。定数jは、位相が変化してからの回数を判定するための閾値であり、2以上の整数である。カウンタ変数gx(t)とgy(t)は、変数a(t)、b(t)の位相が変化してから閾値に到達したかをカウントするもので、初期値が1の整数である。
【0078】
本実施形態では、合成部12は、変数a(t)、b(t)が変化した場合には、変化してからの回数をカウンタ変数gx(t)、gy(t)でカウントしている。そして、合成部12は、カウント値が閾値jに達するまでは、変数a(t)、b(t)を符号を変えずに変数a’(t)、b’(t)に置き換え、カウント値が閾値jに達したら、変数a(t)、b(t)を符号を変えて変数a’(t)、b’(t)に置き換えるようにしている。そして、合成部12は、時刻tにおける合成波形F(t)を、置き換えられた変数a’(t)、b’(t)を使って、以下のようにして算出している。
【0079】
F(t)=fz(t)+a’(t)fx(t)+b’(t)fy(t)
【0080】
図9A及び
図9Bは、本発明の第2の実施形態での処理により求められる変数a’(t)の説明図である。前述の
図8A及び
図8Bに示したように、変数a(t)が変化している場合、本実施形態による処理を行うと、
図9A及び
図9Bに示すように、変数a(t)が変数a’(t)に置き換えられる。なお、この例では、閾値jは3回としている。
【0081】
すなわち、
図8Aでは、時刻(t=14)で変数a(t)が1から-1に変化してから、閾値(j=3)以上、-1の状態が続いている。このため、
図9Aに示すように、時刻(t=16)から、変数a’(t)が-1に変化する。このように、変数a(t)の変化が閾値以上続くような場合には、変数a(t)の変化と同様に、閾値回数経過後には、変数a’(t)も変化する。変数a(t)をa’(t)と置き換えることで、反応に遅れは生じるが、位相の変化に対応できる。
【0082】
これに対して、
図8Bでは、時刻(t=32)、(t=37)で変数a(t)は1から-1に変化するが、この変化は閾値(j=3)に達しない。このため、
図9Bに示すように、変数a’(t)は1のまま変化しない。このように、変数a(t)の変化が閾値以下なら、変数a(t)が変化しても、変数a’(t)は変化しない。変数a(t)をa’(t)と置き換えることで、突発的なa(t)の変化を無視することができる。
【0083】
次に、本実施形態に係る合成部12の合成処理について、具体的に説明する。
図10~
図13は、本発明の第2の実施形態に係る呼吸数検出装置1の処理を示すフローチャートである。
図10は、時刻t
kにおける合成波形F’(t
k)を求めるための全体処理を示している。
【0084】
(ステップS501)合成部12は、時刻tkにおける3軸加速度センサ10のx軸、y軸、z軸の3軸の加速度データを取得して、処理をステップS502に進める。
【0085】
(ステップS502)合成部12は、ステップS501で取得された3軸の加速度データの微分値を算出して、処理をステップS503に進める。
【0086】
(ステップS503)合成部12は、z軸とx軸の2軸の加速度データの微分値から、2軸の加速度データの微分値の合成値及び差分値を算出し、この合成値と差分値とを比較することで、2つの波形の位相関係を判定し、変数a(tk)を決定する。そして、合成部12は、変数a(tk)から変数a’(tk)への置き換え処理を行う。この置き換え処理については、後に説明する。
【0087】
(ステップS504)合成部12は、z軸とy軸の2軸の加速度データの微分値から、2軸の加速度データの微分値の合成値及び差分値を算出し、この合成値と差分値とを比較することで、2つの波形の位相関係を判定し、変数b(tk)を決定する。そして、合成部12は、変数b(tk)から変数b’(tk)への置き換え処理を行う。
【0088】
(ステップS505)合成部12は、ステップS503で置き換えられた変数a’(tk)と、ステップS504で置き換えられた変数b’(tk)と、時刻tkでの各軸の加速度データfx(tk)、fy(tk)、fz(tk)を用いて、時刻tkにおける合成波形F(tk)を以下のようにして算出する。
【0089】
F(tk)=fz(tk)+a’(tk)fx(tk)+b’(tk)fy(tk)
【0090】
(ステップS506)時刻tkでの合成波形F(tk)が算出されたら、合成部12は、処理を終了するか否かを判定する。そして、合成部12は、処理を終了しなければ(ステップS506:No)、処理をステップS507に進め、処理を終了する場合には(ステップS506:Yes)、処理終了となる。
【0091】
(ステップS507)合成部12は、時刻tkを1増加して、処理をステップS501にリターンする。
【0092】
次に、ステップS503での処理について説明する。
図11は、ステップS503での処理を示すフローチャートである。
【0093】
(ステップS512)合成部12は、カウンタ変数gx(tk)が(1≦gx(tk)<j)か否かを判定する。カウンタ変数gx(tk)が(1≦gx(tk)<j)でなければ(ステップS512:No)、処理をステップS513に進め、カウンタ変数gx(tk)が(1≦gx(tk)<j)なら、処理をステップS515に進める。
【0094】
(ステップS513)合成部12は、カウンタ変数gx(tk)が(gx(tk)=j)か否かを判定する。カウンタ変数gx(tk)が(gx(tk)=j)なら、処理をステップS516に進める。
【0095】
(ステップS515)合成部12は、z軸とx軸について1≦gx(tk)<jの場合の変数a’(tk)、gx(tk)の算出処理を行う。
【0096】
(ステップS516)合成部12は、z軸とx軸についてgx(tk)=jの場合の変数a’(tk)、gx(tk)の算出処理を行う。
【0097】
このように、ステップS503のz軸とx軸について変数a’(tk)の算出処理では、カウンタ変数gx(tk)の値によって、ステップS515、ステップS516の2種類の処理を行う。これらステップS515、ステップS516について、以下に説明する。
【0098】
図12は、ステップS515の1≦g
x(t
k)<jの場合の変数a’(t
k)、g
x(t
k)の算出処理を示している。
【0099】
(ステップS611)合成部12は、微分したz軸のデータと微分したx軸のデータとの合計の絶対値の最大値Maxz+x(tk)と、微分したz軸のデータと微分したx軸のデータとの差分の絶対値の最大値Maxz-x(tk)とを求め、これらの関係によって以下の処理を行う。
【0100】
・Maxz+x(tk)≧Maxz-x(tk)の場合
a(tk)=1とする。
・Maxz+x(tk)<Maxz-x(tk)の場合
a(tk)=-1とする。
【0101】
(ステップS612)合成部12は、今回求められた変数a(tk)と、カウンタ変数に対応する回数だけ前の変数a(tk-gx(tk))との関係を判定する。今回求められた変数a(tk)と、カウンタ変数に対応する回数だけ前の変数a(tk-gx(tk))とが等しい場合には(ステップS612:Yes)、処理をステップS613に進める。今回求められた変数a(tk)と、カウンタ変数に対応する時刻だけ前の変数a(tk-1)とが異なる場合には(ステップS612:No)、処理をステップS615に進める。
【0102】
(ステップS613)今回求められた変数a(tk)と、カウンタ変数に対応する回数だけ前の変数a(tk-gx(tk))とが等しい場合には、合成部12は、変数a(tk)と変数a’(tk)との置き換え処理を以下のように行う。
【0103】
・a(tk)=a(tk-gx(tk))の場合
符号の変化が起こってから閾値回数に到達せずに元に戻ったと言えるので、
a’(tk)=a(tk-gx(tk))とする。
【0104】
(ステップS614)今回求められた変数a(tk)と、カウンタ変数に対応する回数だけ前の変数a(tk-gx(tk))とが等しい場合には、カウンタ変数gx(tk+1)は、以下のように、1にリセットする。
【0105】
gx(tk+1)=1
【0106】
(ステップS615)ステップS612で、今回求められた変数a(tk)と、カウンタ変数に対応する時刻だけ前の変数a(tk-gx(tk))とが異なる場合には、合成部12は、変数a(tk)と変数a’(tk)との置き換え処理を以下のように行う。
【0107】
・a(tk)≠a(tk-gx(tk))の場合
符号の変化が起こった状態が継続していると言えるので、変数a’(tk)を以下のようにする。
a’(tk)=a(tk-gx(tk)))
【0108】
(ステップS616)今回求められた変数a(tk)と、カウンタ変数に対応する時刻だけ前の変数a(tk-gx(tk))とが異なる場合には、カウンタ変数gx(tk+1)は、以下のようにする。
【0109】
gx(tk+1)=gx(tk)+1
【0110】
図13は、ステップS516のg
x(t
k)=jの場合の変数a’(t
k)、g
x(t
k)の算出処理を示している。
【0111】
(ステップS631)合成部12は、微分したz軸のデータと微分したx軸のデータとの合計の絶対値の最大値Maxz+x(tk)と、微分したz軸のデータと微分したx軸のデータとの差分の絶対値の最大値Maxz-x(tk)とを求め、これらの関係によって以下の処理を行う。
【0112】
・Maxz+x(tk)≧Maxz-x(tk)の場合
a(tk)=1とする。
・Maxz+x(tk)<Maxz-x(tk)の場合
a(tk)=-1とする。
【0113】
(ステップS632)合成部12は、今回求められた変数a(tk)と、カウンタ変数に対応する回数だけ前の変数a(tk-gx(tk))との関係を判定する。今回求められた変数a(tk)と、カウンタ変数に対応する回数だけ前の変数a(tk-gx(tk))とが等しい場合には(ステップS632:Yes)、処理をステップS633に進める。今回求められた変数a(tk)と、カウンタ変数に対応する回数だけ前の変数a(tk-1)とが異なる場合には(ステップS632:No)、処理をステップS635に進める。
【0114】
(ステップS633)今回求められた変数a(tk)と、カウンタ変数に対応する回数だけ前の変数a(tk-gx(tk))とが等しい場合には、合成部12は、変数a(tk)と変数a’(tk)との置き換え処理を以下のように行う。
【0115】
・a(tk)=a(tk-gx(tk))の場合
符号の変化が起こってから閾値回数に到達せずに元に戻ったので、変数a’は以下のようにする。
a’(tk)=a(tk-gx(tk))とする。
【0116】
(ステップS634)今回求められた変数a(tk)と、カウンタ変数に対応する回数だけ前の変数a(tk-gx(tk))とが等しい場合、カウンタ変数gx(tk+1)は、以下のように、1にリセットする。
【0117】
gx(tk+1)=1
【0118】
(ステップS635)ステップS632で、今回求められた変数a(tk)と、カウンタ変数に対応する回数だけ前の変数a(tk-gx(tk))とが異なる場合には、合成部12は、変数a(tk)と変数a’(tk)との置き換え処理を以下のように行う。
【0119】
・a(tk)≠a(tk-gx(tk))の場合
符号の変化が起こってから閾値回数以上変化が継続したので、変数a’は以下のようにする。
a’(tk)=a(tk)
【0120】
(ステップS636)今回求められた変数a(tk)と、カウンタ変数に対応する回数だけ前の変数a(tk-gx(tk))とが異なる場合、カウンタ変数gx(tk+1)は、以下のように、1にリセットする。
【0121】
gx(tk+1)=1
【0122】
以上のような処理を行うことで、変数a(tk)の符号反転が起こっても、その回数が閾値回数以内であれば、変数a’(tk)の符号反転は抑えられる。
【0123】
なお、ステップS504での時刻kでの変数b(k)を変数b’(tk)に置き換える処理についても、xをyに置き換えて同様にして行うことができる。
【0124】
以上説明したように、本発明の第2の実施形態では、符号を示す変数a(t)、b(t)が変化した場合に、その変化量が閾値以内であれば、符号の変化を抑制するようにしている。これにより、ノイズの影響で変数a(t)、b(t)が変化してしまった場合でも、合成波形への影響を抑制できる。
【0125】
上述した実施形態における呼吸数検出装置1の全部または一部をコンピュータで実現するようにしてもよい。その場合、この機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現してもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD-ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでもよい。また上記プログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよく、FPGA等のプログラマブルロジックデバイスを用いて実現されるものであってもよい。
【0126】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【符号の説明】
【0127】
1…呼吸数検出装置、10…3軸加速度センサ、11a、11b,11c…フィルタリング部、12…合成部、13…算出部