(57)【特許請求の範囲】
【請求項１】
所定のセンサより第１のサンプリング周波数でセンシングされたセンサデータが分割された２つのグループのデータに高速フーリエ変換を行う高速フーリエ変換部と、
前記高速フーリエ変換によるバタフライ演算の結果が前記２つのグループ間で類似する場合、前記センサを動作させるサンプリング周波数を前記第１のサンプリング周波数よりも低い第２のサンプリング周波数へ変更する変更部と
を有することを特徴とする周波数解析装置。
【請求項２】
前記高速フーリエ変換で実行されたバタフライ演算結果に統計処理を行うことにより、前記２つのグループのうち第１のグループに関するバタフライ演算の結果から第２のグループに関するバタフライ演算の結果が求まる回帰モデルを推定する統計処理部をさらに有し、
前記変更部は、前記高速フーリエ変換部が前記高速フーリエ変換の演算に用いるアルゴリズムを、前記高速フーリエ変換部で実行されるバタフライ演算のうち前記第２のグループに関するバタフライ演算の一部を前記回帰モデルから求まる回帰計算の結果に置き換えるアルゴリズムへ変更することを特徴とする請求項１に記載の周波数解析装置。
【請求項３】
前記統計処理部は、前記第１のグループに関するバタフライ演算のうち最終段の１つ前のバタフライ演算の結果から前記第２のグループに関する最終段の１つ前のバタフライ演算の結果が求まる回帰モデルを推定し、
前記変更部は、前記高速フーリエ変換部で実行されるバタフライ演算のうち前記第２のグループに関する最終段の１つ前のバタフライ演算を前記回帰モデルから求まる回帰計算の結果に置き換えるアルゴリズムへ変更することを特徴とする請求項２に記載の周波数解析装置。
【請求項４】
前記統計処理部は、前記統計処理として最小二乗法に基づく回帰分析を行うことにより、前記回帰モデルを推定することを特徴とする請求項２又は３に記載の周波数解析装置。
【請求項５】
前記変更部は、前記センサを動作させるサンプリング周波数が前記第２のサンプリング周波数へ切り替えられた後、所定の期間が経過する場合、あるいは所定の回数にわたって前記高速フーリエ変換が行われた場合に、前記センサを動作させるサンプリング周波数を前記第１のサンプリング周波数へ変更することを特徴とする請求項１〜４のいずれか１つに記載の周波数解析装置。
【請求項６】
コンピュータが、
所定のセンサより第１のサンプリング周波数でセンシングされたセンサデータが分割された２つのグループのデータに高速フーリエ変換を適用する処理と、
前記高速フーリエ変換によるバタフライ演算の結果が前記２つのグループ間で類似する場合、前記センサを動作させるサンプリング周波数を前記第１のサンプリング周波数よりも低い第２のサンプリング周波数へ変更する処理と
を実行することを特徴とする周波数解析方法。
【請求項７】
第１のサンプリング周波数でセンサデータをセンシングするセンサと、
周波数解析装置と、
を備え、
前記周波数解析装置は、
前記センサよりセンシングされたセンサデータが分割された２つのグループのデータに高速フーリエ変換を行う高速フーリエ変換部と、
前記高速フーリエ変換によるバタフライ演算の結果が前記２つのグループ間で類似する場合、前記センサを動作させるサンプリング周波数を前記第１のサンプリング周波数よりも低い第２のサンプリング周波数へ変更する変更部と
を有することを特徴とするセンサモジュール。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、周波数解析装置、周波数解析方法及びセンサモジュールに関する。
【背景技術】
【０００２】
センサデータの周波数解析が多用な場面で活用されている。例えば、光学式の脈波センサの場合、脈波センサから取得されるデータ、例えば測定部位の透過光や反射光の強度に関する信号に対し、高速フーリエ変換などの周波数解析を行い、周波数解析の結果として得られた周波数スペクトラムの最大値を求めることにより、脈拍数が検出される。
【０００３】
かかる脈波センサから取得されるデータの全てを所定の出力先、例えば据置きのコンピュータやサーバ装置などに伝送する場合、無線通信で消費される電力が増大する。このことから、周波数解析の機能をセンサに組み込んでセンサデータの代わりに脈拍数を伝送することで、無線通信による消費電力が低減される。
【０００４】
このように、周波数解析の機能をセンサに組み込んでセンサモジュールとして実装する場合、一例として、バンド型のデバイスなどのように、ウェアラブルデバイスとして提供されたり、スマートフォンの一機能として提供されたりする。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００２−２２２１７７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記の技術では、依然として、センサモジュールの消費電力を低減することができない場合がある。
【０００７】
例えば、光学式の脈波センサの場合、ＬＥＤを発光させる必要があるので、消費電力が大きくなってしまうというデメリットがある。一例として、現状の脈波センサの消費電力は約５ｍＷ程度であり、脈波センサを６０ｓｅｃ動作させる場合、脈波センサで消費されるエネルギは３００［ｍＪ］という大きな値になる。これと共に、センサモジュールで実行される周波数解析、すなわち高速フーリエ変換の演算も消費電力が大きく、センサモジュールの消費電力が増大する一因となっている。このようにセンサモジュールの消費電力が増大すると、ウェアラブルデバイスやスマートフォンのように、電源の確保が困難な状況で使用される機会が多くなるほど、より問題が深刻となる。
【０００８】
１つの側面では、本発明は、センサモジュールの消費電力を低減できる周波数解析装置、周波数解析方法及びセンサモジュールを提供することを目的とする。
【課題を解決するための手段】
【０００９】
一態様では、周波数解析装置は、所定のセンサより第１のサンプリング周波数でセンシングされたセンサデータが分割された２つのグループのデータに高速フーリエ変換を行う高速フーリエ変換部と、前記高速フーリエ変換によるバタフライ演算の結果が前記２つのグループ間で類似する場合、前記センサを動作させるサンプリング周波数を前記第１のサンプリング周波数よりも低い第２のサンプリング周波数へ変更する変更部とを有する。
【発明の効果】
【００１０】
１つの側面として、周波数解析装置及びセンサモジュールの消費電力を低減できるという効果を奏する。
【図面の簡単な説明】
【００１１】
【図１】図１は、実施例１に係るセンサモジュールの機能的構成を示すブロック図である。
【図２】図２は、実施例１に係るＭＣＵの機能的構成を示すブロック図である。
【図３】図３は、シグナルフローの一例を示す図である。
【図４】図４は、偶数番データ及び奇数番データの一例を示す図である。
【図５】図５は、Ｎ／２点ＦＦＴの演算結果の一例を示す図である。
【図６】図６は、Ｎ／２点ＦＦＴの演算結果の一例を示す図である。
【図７】図７は、Ｍ世代にわたる入力データの一例を示す図である。
【図８】図８は、Ｍ世代にわたる入力データの一例を示す図である。
【図９】図９は、回帰分析の結果の一例を示す図である。
【図１０】図１０は、サンプリング方法の変更例を示す図である。
【図１１】図１１は、シグナルフローの一例を示す図である。
【図１２】図１２は、実施例１に係るハードウェアの制御フローの一例を示す図である。
【図１３】図１３は、実施例１に係るセンサモジュールの制御シーケンスの一例を示す図である。
【図１４】図１４は、実施例１に係る周波数解析処理の手順を示すフローチャートである。
【図１５】図１５は、実施例１に係る第１のＦＦＴ処理の手順を示すフローチャートである。
【図１６】図１６は、実施例１に係る第２のＦＦＴ処理の手順を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下に添付図面を参照して本願に係る周波数解析装置、周波数解析方法及びセンサモジュールについて説明する。なお、この実施例は開示の技術を限定するものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【実施例１】
【００１３】
図１は、実施例１に係るセンサモジュールの機能的構成を示すブロック図である。図１に示すセンサモジュール１０は、一例として、センサデータの周波数解析を行う組み込みシステムとして実装される。
【００１４】
ここで、図１に示すセンサモジュール１０は、第１のサンプリング周波数で得られたセンサデータが分割された２つのグループのデータに高速フーリエ変換を実行し、そのバタフライ演算結果がグループ間で類似する場合にセンサ等を動作させるサンプリング周波数を第１のサンプリング周波数よりも低い第２のサンプリング周波数に変更する周波数解析処理を実行する。これによって、一側面として、センサ及びセンサから入力されるデータにアナログデジタル変換を行うＡＤＣが動作する頻度を低減し、もってセンサモジュール１０における消費電力の低減を実現できる。
【００１５】
図１に示すように、センサモジュール１０は、センサ１１と、ＡＤＣ（Analog-to-Digital  Converter）１２と、ＭＣＵ（microcomputer）１００と、無線通信部１４とを有する。なお、図１には、一例として、組み込みシステムを例示したが、汎用のコンピュータシステムとして構築することもできる。
【００１６】
センサ１１は、各種のセンシングを行うデバイスである。
【００１７】
ここで、以下では、センサモジュール１０が搭載するセンサの一例として、光学式の脈波センサが搭載される場合を例示するが、周波数解析に用いるセンサデータであれば如何なるセンサが搭載されることとしてもよい。
【００１８】
一実施形態として、センサ１１が光学式の脈波センサとして実装される場合、透過式または反射式の脈波センサを用いることができる。このうち、透過式では、発光部と受光部の間に測定部位を挟むことにより装着することができる一方で、反射式では測定部位に貼り付けることにより装着することができる。センサ１１では、発光ダイオード、いわゆるＬＥＤ（Light  Emitting  Diode）等の発光部から所定の波長、例えばヘモグロビンの吸光特性に対応する波長の光を照射し、その透過光または反射光を受光部にて受光する。このようにして光の強度に関する連続データがアナログ信号として得られる。
【００１９】
ＡＤＣ１２は、アナログ信号をデジタル信号へ変換する電子回路等のデバイスである。
【００２０】
一実施形態として、ＡＤＣ１２は、センサ１１から入力されるアナログ信号の強度を一定時間ごとにサンプリングし、その値を量子化することにより、デジタル信号へ変換する。これによって、光の強度に関する連続データが離散データへ変換される。ここで、ＡＤＣ１２では、必ずしも一定の周波数でサンプリングが実施されるとは限らない。すなわち、ＡＤＣ１２では、上述の通り、少なくとも第１のサンプリング周波数及び第２のサンプリング周波数にしたがって動作する。このようにＡＤＣ１２が動作するサンプリング周波数は、ＭＣＵ１００による指示にしたがって変更される。
【００２１】
ＭＣＵ１００は、センサモジュール１０の全体制御を行うデバイスである。
【００２２】
一実施形態として、ＭＣＵ１００は、中央処理装置としてのＣＰＵ（Central  Processing  Unit）を始め、主記憶装置としてのＲＡＭ（Random  Access  Memory）やその他の周辺機器などが搭載された集積回路として実装できる。このＭＣＵ１００には、センサモジュール１０に搭載されるハードウェアを制御する機能の他、詳細は後述するが、上記の周波数解析処理を実現するプログラムが実行されることにより仮想的に実現される処理部が実装される。
【００２３】
無線通信部１４は、アンテナ１４ａを介して、無線による通信を行う処理部である。
【００２４】
一実施形態として、無線通信部１４には、任意の媒体、例えば電波、光や超音波などによる通信を採用できる。さらに、無線通信部１４には、任意の通信方式、例えば無線ＬＡＮ（Local  Area  Network）の他、ＬＴＥ（Long  Term  Evolution）などのキャリア通信などを採用することができる。
【００２５】
例えば、無線通信部１４は、ＭＣＵ１００からの指示にしたがってＭＣＵ１００が出力するデータを所定の出力先へ伝送する。このように無線通信部１４が伝送するデータの一例としては、光学式の脈波センサがセンサ１１として実装される場合、入力データが周波数領域へ変換された周波数スペクトラムの最大値、すなわち脈拍数などが挙げられる。また、データの出力先の一例として、据置きのコンピュータやサーバ装置などの情報処理装置全般が挙げられる。これによって、例えば、脈拍数や脈拍周期のゆらぎから自律神経の働きや心疾患等を診断したりする診断プログラムがインストールされた情報処理装置では、センサモジュール１０のユーザに関する診断プログラムの実行結果を得ることができる。
【００２６】
［ＭＣＵ１００の構成］
図１に示したＭＣＵ１００は、上記の周波数解析処理を実現するプログラムとしてインストールされた周波数解析プログラムを図示しないＲＡＭのワークエリア上にプロセスとして展開することにより、下記の処理部を仮想的に実現する。
【００２７】
図２は、実施例１に係るＭＣＵ１００の機能的構成を示すブロック図である。図２に示すように、ＭＣＵ１００は、メモリ１１０と、前処理部１３０Ａと、高速フーリエ変換部１３０と、後処理部１３０Ｂと、統計処理部１５０と、変更部１７０とを有する。
【００２８】
メモリ１１０は、各種のデータを記憶する記憶装置である。
【００２９】
一実施形態として、メモリ１１０には、一例として、ＲＡＭやＤＲＡＭなどの半導体記憶素子などを採用することができる。例えば、メモリ１１０には、ＡＤＣ１２により出力されたセンサデータが入力データとして記憶される。また、メモリ１１０には、高速フーリエ変換部１３０によるバタフライ演算の結果も記憶される。
【００３０】
前処理部１３０Ａ及び後処理部１３０Ｂは、周波数解析の前処理または後処理を実行する処理部である。
【００３１】
一例として、光学式の脈波センサがセンサ１１として実装される場合、前処理部１３０Ａは、メモリ１１０から読み出された入力データに平均化フィルタなどのフィルタリング処理を実行する。また、後処理部１３０Ｂは、高速フーリエ変換部１３０による高速フーリエ変換の結果として得られた周波数スペクトルから最大値を求める処理を実行する。ここでは、一例として、脈波センサの出力が入力データとして用いられる場合を例示したが、センサや入力データの種類に応じて任意の前処理または後処理を実装することができる。また、前処理部１３０Ａ及び後処理部１３０Ｂは、必ずしも両方とも実装されずともよく、前処理または後処理のいずれか一方を実装することとしてもよいし、前処理及び後処理の両方が実装されずともかまわない。
【００３２】
高速フーリエ変換部１３０は、高速フーリエ変換、いわゆるＦＦＴ（Fast  Fourier  Transform）を行う処理部である。
【００３３】
ここで、ＦＦＴとは、離散フーリエ変換（ＤＦＴ：Discrete  Fourier  Transform）をコンピュータ上で高速に計算するアルゴリズムを指す。かかる離散フーリエ変換は、下記の式（１）によって定義される。下記の式（１）に示す「ｘ（ｎ）」は、入力データを指し、また、「Ｘ（ｋ）」は、出力データ、すなわちフーリエの演算結果を指す。また、「Ｎ」は入力データの数を指し、さらに、「ｎ」及び「ｋ」は、入力データまたは出力データのインデックスを指す。なお、「ｊ」は、虚数単位を指し、「ｐｉ」は、πを指す。下記の式（１）においてｅｘｐ（（−ｊ２ｐｉ／Ｎ）・ｎ・ｋ）のｅｘｐ関数をＷＮｎ・ｋに置き換えると、下記の式（１）は、下記の式（２）に変形される。
【００３４】
【数１】
0006613979.tif 000002
【００３５】
上記の式（２）において、下記の式（３）に示す通り、Ｎ点の時系列の入力データを偶数番データと奇数番データの２つのグループに分割し、回転因子と呼ばれるＷの周期性が示された下記の式の（４）の性質、すなわち複素平面上で規則的な対称性を有する点を利用すると、上記の式（２）は、下記の式（５）へ変形できる。そして、下記の式（５）において、偶数番のＮ／２点のバタフライ演算の結果をＧ[k]とすると共に奇数番のＮ／２点のバタフライ演算の結果をＨ[k]とすると、下記の式（５）は、下記の式（６）の通り表される。このようにＮ点ＤＦＴがＮ／２点ＤＦＴに分解される。
【００３６】
図３は、シグナルフローの一例を示す図である。図３には、あくまで一例として、Ｎ＝８である場合のシグナルフローが示されている。図３に示すｘ（０）〜ｘ（７）は、入力データを指し、Ｘ（０）〜Ｘ（７）は、ＦＦＴの演算結果を指す。また、図３に示すＷＮ０〜ＷＮ７は、ＦＦＴ演算の回転因子を指す。図３に示すシグナルフローの通り、ｌｏｇ２（Ｎ）−１段目、本例では２段目における偶数番のＮ／２点ＦＦＴのバタフライ演算の結果“Ｇ[k]”と、ｌｏｇ２（Ｎ）−１段目、本例では２段目における奇数番のＮ／２点ＦＦＴのバタフライ演算の結果“Ｈ[k]”に回転因子Ｗｋが乗算された乗算値との和を演算することにより、出力データであるＸ（０）〜Ｘ（７）が得られることがわかる。
【００３７】
【数２】
0006613979.tif 000003
【数３】
0006613979.tif 000004
【００３８】
これらＧ[k]及びＨ[k]は、いずれも偶数番データおよび奇数番データの離散フーリエ変換であるので、同様に分解すると、下記の式（７）及び下記の式（８）の通りとなる。これを繰り返すことにより、最終的には２点ＤＦＴにまで分解される。この結果、１段目からｌｏｇ２（Ｎ）段目までのシグナルフローが得られる。
【００３９】
【数４】
0006613979.tif 000005
【数５】
0006613979.tif 000006
【００４０】
このように、高速フーリエ変換部１３０は、１段目からｌｏｇ２（Ｎ）段目までのシグナルフローにしたがってバタフライ演算を行うことにより、Ｎ点のＦＦＴの演算結果を得ることができる。なお、高速フーリエ変換部１３０は、Ｎ点のＦＦＴの演算結果が算出される度に、偶数番のＮ／２点のバタフライ演算の結果“Ｇ[k]”と、奇数番のＮ／２点のバタフライ演算の結果“Ｈ[k]”とをメモリ１１０へ格納する。
【００４１】
かかるＦＦＴの演算量Ｏ（Ｎ）は、下記の式（９）の通り、乗算回数と加算回数の和により求まる。下記の式（９）におけるＭ（Ｎ）は、乗算回数を指し、また、Ａ（Ｎ）は、加算回数を指す。このうち、Ｍ（Ｎ）は、下記の式（１０）及び下記（１１）に示す通り、Ｎ・ｌｏｇ２（Ｎ）と求まると共に、Ａ（Ｎ）も、下記の式（１２）及び下記（１３）に示す通り、Ｎ・ｌｏｇ２（Ｎ）と求まる。これらのことから、ＦＦＴの演算量Ｏ（Ｎ）は、式（１４）に示す通り、２Ｎ・ｌｏｇ２（Ｎ）と求まる。
【００４２】
【数６】
0006613979.tif 000007
【数７】
0006613979.tif 000008
【００４３】
図２の説明に戻り、統計処理部１５０は、各種の統計処理を実行する処理部である。
【００４４】
一側面として、統計処理部１５０は、高速フーリエ変換部１３０により過去に算出されたバタフライ演算結果に対して、回帰分析を実行する。例えば、統計処理部１５０は、メモリ１１０に保存されたｌｏｇ２（Ｎ）−１段目のバタフライ演算の結果を過去の所定の世代、例えばＭ世代にわたって読み出す。その上で、統計処理部１５０は、下記の式（１５）に示す線形回帰モデルを下記の式（１６）に示す最小二乗法の重回帰式により推定する。下記の式（１６）に示す最小二乗法では、過去のＭ世代のデータ（Ｔ＝Ｔ１，・・・ＴＭ）が用いられる場合が示されている。
【００４５】
【数８】
0006613979.tif 000009
【数９】
0006613979.tif 000010
【００４６】
このように上記の式（１６）に示す回帰式を用いる場合、統計処理部１５０は、線形回帰モデルの切片ａｊ及び傾きｂｊを推定するために、下記の式（１７）及び下記の式（１８）の問題を解く。このとき、式（１６）に示すＨ[j]は、下記の式（１９）で表される。さらに、下記の式（１９）におけるＥ（Ｈ[j]）は、下記の式（２０）で表され、下記の式（１９）におけるＳｘｙ[j]は、下記の式（２１）で表され、さらに、下記の式（１９）におけるＳｘ[j]は、下記の式（２２）で表される。
【００４７】
【数１０】
0006613979.tif 000011
【数１１】
0006613979.tif 000012
【数１２】
0006613979.tif 000013
【００４８】
以上のように、統計処理部１５０は、上記の式（１７）及び上記の式（１８）の問題を解くことにより、線形回帰モデルの切片ａｊ及び傾きｂｊを推定できる。
【００４９】
なお、ここでは、Ｈ[j]を独立変数、Ｇ[j]を従属変数として、線形回帰モデルの切片ａｊ及び傾きｂｊを推定する場合を例示するが、Ｈ[j]を従属変数、Ｇ[j]を独立変数とする線形回帰モデルを推定することができるのは言うまでもない。また、ここでは、線形回帰モデルを推定する場合を例示したが、非線形回帰モデルを推定することとしてもかまわない。
【００５０】
他の側面として、統計処理部１５０は、回帰モデルを推定すると共に、２つのグループのデータ、すなわち偶数番データ及び奇数番データに関するバタフライ演算の結果の類似度を算出する。かかる類似度の一例として、統計処理部１５０は、下記の式（２３）にしたがってＧ[j]（Ｔ＝Ｔｋ）及びＨ[j]（Ｔ＝Ｔｋ）の間で相関係数Ｓ[j]を算出する。
【００５１】
【数１３】
0006613979.tif 000014
【００５２】
このように統計処理部１５０による統計処理で得られた結果｛ａｊ，ｂｊ，Ｓｊ｝は、変更部１７０へ出力される。
【００５３】
変更部１７０は、センサ１１を動作させるサンプリング周波数または高速フーリエ変換部１３０が高速フーリエ変換に用いるアルゴリズムのうち少なくともいずれか１つを変更する処理部である。
【００５４】
一実施形態として、変更部１７０は、偶数番データ及び奇数番データに関するバタフライ演算の結果の類似度が所定の閾値以上であるか否かを判定する。例えば、変更部１７０は、相関係数Ｓｊが０．７以上であるか否かを判定する。
【００５５】
ここで、相関係数Ｓｊが０．７以上である場合、線形回帰モデルを用いて算出されるＨ[k]の計算結果が一定の精度以上である可能性が高いと判断できる。この場合、変更部１７０は、センサ１１およびＡＤＣ１２を動作させるサンプリング周波数を第２のサンプリング周波数に変更する。例えば、変更部１７０は、図３に示したシグナルフローで用いる入力データをセンシングする場合のサンプリング周波数を第１のサンプリング周波数としたとき、第１のサンプリング周波数の半分、すなわち「第１のサンプリング周波数／２」へ変更する。さらに、変更部１７０は、高速フーリエ変換部１３０がＦＦＴの演算に用いるシグナルフローを、図３に示したシグナルフローとは異なるシグナルフローへ変更する。例えば、変更部１７０は、図３に示したシグナルフローで実行されるＦＦＴの演算のアルゴリズムを第１のアルゴリズムとしたとき、変更部１７０は、最終段の１つ前の段、すなわちｌｏｇ２（Ｎ）−１段目における偶数番のバタフライ演算の結果“Ｇ[j]”を、統計処理部１５０により推定された切片ａｊ及び傾きｂｊを持つ線形回帰モデルへ代入することにより、ｌｏｇ２（Ｎ）−１段目における奇数番のバタフライ演算の結果“Ｈ[j]”を回帰計算した上で、最終段のバタフライ演算を行う第２のアルゴリズムに変更する。
【００５６】
一方、相関係数Ｓｊが０．７以上でない場合、線形回帰モデルを用いて算出される偶数番データＨの計算結果が一定の精度未満である可能性が高いと判断できる。この場合、変更部１７０は、センサ１１およびＡＤＣ１２を動作させるサンプリング周波数を第１のサンプリング周波数に維持すると共に、高速フーリエ変換部１３０がＦＦＴの演算に用いるアルゴリズムを第１のアルゴリズムのまま維持させる。
【００５７】
［偶数番データ及び奇数番データの相関関係］
図４は、偶数番データ及び奇数番データの一例を示す図である。図４に示すグラフの縦軸には、デジタル信号の振幅値が示される一方で、図４に示すグラフの横軸には、時間が示されている。図４には、高速フーリエ変換部１３０がＦＦＴの演算に用いる入力データの時間長がサンプリング時間Ｔである場合が示されている。この入力データｘ（ｎ）は、偶数番データ、すなわち図中の黒丸で示すｘ（０）、ｘ（２）、ｘ（４）、・・・ｘ（Ｎ−２）が一般化されたｘ[2j]と、奇数番データ、すなわち図中の白丸で示すｘ（１）、ｘ（３）、ｘ（５）、・・・ｘ（Ｎ−１）が一般化されたｘ[2j+1]とに分割される。
【００５８】
図５及び図６は、Ｎ／２点ＦＦＴの演算結果の一例を示す図である。図５には、図４に示したｘ[2j]にＦＦＴが行われた場合の結果Ｇ[k]の絶対値が示される一方で、図６には、図４に示したｘ[2j+1]にＦＦＴが行われた場合の結果Ｈ[k]の絶対値が示されている。ここで、図５に示されたＧ[k]の絶対値の波形と、図６に示されたＨ[k]の絶対値の波形とは、サンプリング周期ΔＴ（＝Ｔ／Ｎ）が小さいほど同一の形状に近づく。
【００５９】
［回帰結果の一例］
図７及び図８は、Ｍ世代にわたる入力データの一例を示す図である。図９は、回帰分析の結果の一例を示す図である。図７には、最終段の１つ前の段、すなわちｌｏｇ２（Ｎ）−１段目における偶数番のバタフライ演算の結果Ｇ[j]がＭ世代（Ｔ＝Ｔ１，・・・ＴＭ）にわたって示される一方で、図８には、最終段の１つ前の段、すなわちｌｏｇ２（Ｎ）−１段目における奇数番のバタフライ演算の結果Ｈ[j]がＭ世代（Ｔ＝Ｔ１，・・・ＴＭ）にわたって示されている。図７に示すＧ[j]および図８に示すＨ[j]を用いて回帰分析が行われた場合、図９に示す通りとなる。図９に示すように、線形回帰モデル「Ｈ＝Ｂ・Ｇ＋Ａ」が得られる。かかる線形回帰モデルは、Ｇ[j]（Ｔ＝Ｔｋ）及びＨ[j]（Ｔ＝Ｔｋ）の間の相関係数Ｓ[j]が閾値、例えば「０．７」以上である場合、新たに偶数番データＧさえ得ることができれば奇数番データＨが得られずとも、当該偶数番データＧを線形回帰モデルに代入することにより、奇数番データＨを計算することができる。
【００６０】
［サンプリング方法の変更］
図１０は、サンプリング方法の変更例を示す図である。図１０の上段には、第１のサンプリング周波数がセンサ１１やＡＤＣ１２に指示された場合が示される一方で、図１０の下段には、第２のサンプリング周波数がセンサ１１やＡＤＣ１２に指示された場合が示されている。すなわち、Ｇ[j]（Ｔ＝Ｔｋ）及びＨ[j]（Ｔ＝Ｔｋ）の間の相関係数Ｓ[j]が「０．７」以上である場合、図１０に示すように、センサ１１やＡＤＣ１２を動作させるサンプリング周波数が第１のサンプリング周波数から第２のサンプリング周波数へ変更される。このように第２のサンプリング周波数でセンサ１１やＡＤＣ１２が動作する場合、そのサンプリング時間は、図４に示した第１のサンプリング周波数に対応するサンプリング時間Ｔの２倍、すなわち２Ｔとなる。
【００６１】
［ＦＦＴ演算のアルゴリズムの変更］
図１１は、シグナルフローの一例を示す図である。図１１には、図３と同様、あくまで一例として、Ｎ＝８である場合のシグナルフローが示されている。図１１に示すシグナルフローの場合、図３に示したシグナルフローとは異なり、第２のサンプリング周波数でサンプリングされた入力データ、すなわちサンプリング周期が第１のサンプリング周波数の時の２倍である入力データを偶数番データ、すなわちｘ（０）、ｘ（２）、ｘ（４）、ｘ（６）として入力すればよい。その一方で、最終段の１つ前の段、すなわち本例では２段目の奇数番データは、２段目の偶数番データから線形回帰モデルの回帰計算により求めることができる。このようにして得られた２段目の偶数番データ及び２段目の奇数番データから最終段である３段目のバタフライ演算を行うことができる。
【００６２】
かかるＦＦＴの演算量Ｏ′（Ｎ）は、下記の式（２４）の通り、乗算回数と加算回数の和により求まる。下記の式（２４）におけるＭ′（Ｎ）は、乗算回数を指し、また、Ａ′（Ｎ）は、加算回数を指す。このうち、Ｍ′（Ｎ）は、下記の式（２５）及び下記（２６）に示す通り、Ｎ／２・ｌｏｇ２（Ｎ）＋Ｎと求まると共に、Ａ′（Ｎ）も、下記の式（２７）及び下記（２８）に示す通り、Ｎ／２・ｌｏｇ２（Ｎ）＋Ｎと求まる。これらのことから、ＦＦＴの演算量Ｏ′（Ｎ）は、式（２９）に示す通り、Ｎ・ｌｏｇ２（Ｎ）＋２・Ｎと求まる。
【００６３】
【数１４】
0006613979.tif 000015
【数１５】
0006613979.tif 000016
【００６４】
したがって、ＦＦＴの演算量Ｏ′（Ｎ）は、データ数Ｎが十分に大きければ、ＦＦＴの演算量Ｏ（Ｎ）の約半分の演算量で周波数解析を実行することが可能である。
【００６５】
［処理の流れ］
次に、本実施例に係るセンサモジュール１０の処理の流れについて説明する。なお、ここでは、ＭＣＵ１００が実行する（１）ハードウェアの制御フローを説明してから（２）センサモジュール１０の制御シーケンスを説明し、その後、（３）周波数解析処理を説明することとする。さらに、図３に示したシグナルフローにしたがって実行される（４）第１のＦＦＴ処理を説明した後に、図１０に示したシグナルフローにしたがって実行される（５）第２のＦＦＴ処理を説明することとする。
【００６６】
（１）ハードウェアの制御フロー
図１２は、実施例１に係るハードウェアの制御フローの一例を示す図である。図１２に示すように、センサモジュール１０の電源がＯＮ状態になると、ＭＣＵ１００は、ハードウェアの制御を開始する（ステップＳ１０１）。例えば、ＭＣＵ１００は、Ｍ回にわたってセンサ１１及びＡＤＣ１２を動作させるサンプリング周波数を第１のサンプリング周波数に設定すると共に高速フーリエ変換部１３０がＦＦＴの演算に用いるアルゴリズムを第１のアルゴリズムに設定する第１の制御を繰り返し実行する（ステップＳ１０１−１〜ステップＳ１０１−Ｍ）。
【００６７】
その後、ＭＣＵ１００は、上記の周波数解析処理を実行して、相関係数Ｓｊが０．７以上であるか否かにより、第１の制御を維持するか、あるいはセンサ１１及びＡＤＣ１２を動作させるサンプリング周波数を第２のサンプリング周波数に設定すると共に高速フーリエ変換部１３０がＦＦＴの演算に用いるアルゴリズムを第２のアルゴリズムに設定する第２の制御へ変更するか否かの調整を行う（ステップＳ１０２）。
【００６８】
ここでは、一例として、相関係数Ｓｊが０．７以上であると想定する。この場合、ＭＣＵ１００は、所定の回数Ｌ回にわたってセンサ１１及びＡＤＣ１２を動作させるサンプリング周波数を第２のサンプリング周波数に設定すると共に高速フーリエ変換部１３０がＦＦＴの演算に用いるアルゴリズムを第１のアルゴリズムに設定する第２の制御を繰り返し実行する（ステップＳ１０２−１〜ステップＳ１０２−Ｌ）。なお、相関係数Ｓｊが０．７以上でなければ、第１の制御が維持され、ステップＳ１０１−１〜ステップＳ１０１−Ｍと同様の処理が繰り返される。
【００６９】
続いて、ＭＣＵ１００は、上記の周波数解析処理を実行して、第２の制御の終了条件を満たすと第１の制御を開始し（ステップＳ１０３）、Ｍ回にわたって上記の第１の制御を繰り返し実行する（ステップＳ１０３−１〜ステップＳ１０３−Ｍ）。
【００７０】
その後、ＭＣＵ１００は、第１の制御を維持するか、あるいは第１の制御から第２の制御へ変更するか否かの調整を行う（ステップＳ１０４）。このとき、相関係数Ｓｊが０．７以上であれば第１の制御から第２の制御へ変更される一方で、相関係数Ｓｊが０．７以上でなければ第１の制御が維持される。
【００７１】
このように、ＭＣＵ１００は、センサモジュール１０が搭載するハードウェアの制御を実施する。なお、ここでは、第２の制御の終了条件を回数制限とする場合を例示したが、所定の時間が経過するかなどのように、第２の制御の終了条件を時間制限とすることもできる。
【００７２】
（２）センサモジュール１０の制御シーケンス
図１３は、実施例１に係るセンサモジュール１０の制御シーケンスの一例を示す図である。図１３には、図１２に示したステップＳ１０２やステップＳ１０４に対応する処理において実行される制御シーケンスが示されている。
【００７３】
図１３に示すように、ＭＣＵ１００は、上記の周波数解析処理を実行して、上記の第１の制御または上記の第２の制御のいずれを実行するのかを決定する（ステップＳ２０１）。そして、ＭＣＵ１００は、ステップＳ２０１の決定結果にしたがってセンサ１１及びＡＤＣ１２へサンプリング方法、すなわち第１のサンプリング周波数または第２のサンプリング周波数を指示する（ステップＳ２０２及びステップＳ２０３）。
【００７４】
続いて、センサ１１は、サンプリング時間Ｔに対応するデータをステップＳ２０２で指示されたサンプリング周波数でセンシングし（ステップＳ２０４）、当該データをＡＤＣ１２へ送信する（ステップＳ２０５）。そして、ＡＤＣ１２は、ステップＳ２０５で送信された得られたデータにアナログデジタル変換をステップＳ２０３で指示されたサンプリング周波数にしたがって実行し（ステップＳ２０６）、Ｎ個またはＮ／２個のデータをＭＣＵ１００へ送信する（ステップＳ２０７）。
【００７５】
その後、ＭＣＵ１００は、ステップＳ２０７で送信されたＮ個またはＮ／２個のデータを受信する（ステップＳ２０８）。続いて、前処理部１３０Ａは、ステップＳ２０８で受信したＮ個またはＮ／２個のデータを前処理し（ステップＳ２０９）、高速フーリエ変換部１３０は、ステップＳ２０９で前処理されたＮ個またはＮ／２個のデータを入力データとし、高速フーリエ変換を実行する（ステップＳ２１０）。
【００７６】
その後、後処理部１３０Ｂは、ステップＳ２１０で得られた高速フーリエ変換の結果の後処理を行い（ステップＳ２１１）、後処理の結果を無線通信部１４へ出力する（ステップＳ２１２）。その後、無線通信部１４は、ステップＳ２１２でＭＣＵ１００から出力された後処理の結果を所定の出力先へ送信し（ステップＳ２１３）、処理を終了する。
【００７７】
（３）周波数解析処理
図１４は、実施例１に係る周波数解析処理の手順を示すフローチャートである。図１４には、図１３に示したステップＳ２０１に対応する処理が示されている。図１４に示すように、統計処理部１５０は、メモリ１１０から、最終段の１つ前の段、すなわちｌｏｇ２（Ｎ）−１段目における偶数番のＮ／２点ＦＦＴのバタフライ演算の結果“Ｇ[k]”と、最終段の１つ前の段における奇数番のＮ／２点ＦＦＴのバタフライ演算の結果“Ｈ[k]”とをＭ世代（Ｔ＝Ｔ１，・・・ＴＭ）にわたって読み出す（ステップＳ３０１）。
【００７８】
その後、統計処理部１５０は、ステップＳ３０１でＭ世代（Ｔ＝Ｔ１，・・・ＴＭ）にわたって読み出された最終段の１つ前の段におけるバタフライ演算の結果“Ｇ[k]”と、最終段の１つ前の段におけるバタフライ演算の結果“Ｈ[k]”とに回帰分析を行う（ステップＳ３０２）。これによって、回帰分析の結果｛ａｊ，ｂｊ，Ｓｊ｝が得られる。
【００７９】
そして、変更部１７０は、ステップＳ３０２の回帰分析の結果として得られた相関係数Ｓｊが所定の閾値以上であるか否かを判定する（ステップＳ３０３）。
【００８０】
ここで、相関係数Ｓｊが閾値以上である場合（ステップＳ３０３Ｙｅｓ）、線形回帰モデルを用いて算出されるＨ[k]の計算結果が一定の精度以上である可能性が高いと判断できる。この場合、変更部１７０は、センサ１１およびＡＤＣ１２を動作させるサンプリング周波数を第２のサンプリング周波数に変更する（ステップＳ３０４）。さらに、変更部１７０は、高速フーリエ変換部１３０がＦＦＴの演算に用いるアルゴリズムを第２のアルゴリズムに変更し（ステップＳ３０５）、処理を終了する。
【００８１】
一方、相関係数Ｓｊが閾値以上でない場合（ステップＳ３０３Ｎｏ）、線形回帰モデルを用いて算出される偶数番データＨの計算結果が一定の精度未満である可能性が高いと判断できる。この場合、変更部１７０は、センサ１１およびＡＤＣ１２を動作させるサンプリング周波数を第１のサンプリング周波数に維持する（ステップＳ３０６）。さらに、変更部１７０は、高速フーリエ変換部１３０がＦＦＴの演算に用いるアルゴリズムを第１のアルゴリズムのまま維持させ（ステップＳ３０７）、処理を終了する。
【００８２】
（４）第１のＦＦＴ処理
図１５は、実施例１に係る第１のＦＦＴ処理の手順を示すフローチャートである。この処理は、一例として、図１４に示したステップＳ３０７で高速フーリエ変換部１３０がＦＦＴの演算に用いるアルゴリズムが第１のアルゴリズムに維持された場合に実行される処理であり、前処理部１３０Ａの出力データ｛Ｘ［ｋ］｝（ｋ＝０，１，・・・，Ｎ−１）がメモリ１１０から読み出された場合に開始される。
【００８３】
図１５に示すように、高速フーリエ変換部１３０は、シグナルフローの段数のインデックスｎを「１」に初期化する（ステップＳ４０１）。続いて、高速フーリエ変換部１３０は、Ｘ［ｋ］からｎ段目のバタフライ演算を行う（ステップＳ４０２）。そして、高速フーリエ変換部１３０は、ステップＳ４０２で行われたバタフライ演算の結果｛Ｙ［ｋ］｝をメモリ１１０へ保存する（ステップＳ４０３）。続いて、高速フーリエ変換部１３０は、ステップＳ４０２の結果として得られたバタフライ演算の結果Ｙ［ｋ］をＸ［ｋ］へ代入する（ステップＳ４０４）。
【００８４】
このとき、シグナルフローの段数のインデックスｎがｌｏｇ２（Ｎ）以下である場合、すなわち最終段に未到達である場合（ステップＳ４０５Ｙｅｓ）、シグナルフローの段数のインデックスｎをインクリメントし、上記のステップＳ４０２〜上記のステップＳ４０４の処理を繰り返し実行する。
【００８５】
その後、シグナルフローの段数のインデックスｎがｌｏｇ２（Ｎ）を超過する場合、すなわち最終段に到達した場合（ステップＳ４０５Ｎｏ）、高速フーリエ変換部１３０は、メモリ１１０に保存されたＸ［ｋ］をＦＦＴの演算結果として確定し（ステップＳ４０６）、処理を終了する。
【００８６】
（５）第２のＦＦＴ処理
図１６は、実施例１に係る第２のＦＦＴ処理の手順を示すフローチャートである。一例として、図１４に示したステップＳ３０５で高速フーリエ変換部１３０がＦＦＴの演算に用いるアルゴリズムが第２のアルゴリズムに変更された場合に実行される処理であり、メモリ１１０から前処理部１３０Ａの出力データ｛Ｘ［ｋ］｝（ｋ＝０，１，・・・，Ｎ／２−１）が読み出されると共に回帰分析の結果｛ａｊ，ｂｊ，Ｓｊ｝が読み出された場合に開始される。
【００８７】
図１６に示すように、高速フーリエ変換部１３０は、シグナルフローの段数のインデックスｎを「１」に初期化する（ステップＳ５０１）。続いて、高速フーリエ変換部１３０は、Ｘ［ｋ］からｎ段目のバタフライ演算を行う（ステップＳ５０２）。そして、高速フーリエ変換部１３０は、ステップＳ５０２で行われた偶数番のバタフライ演算の結果｛Ｇ［ｋ］｝（ｋ＝０，１，・・・，Ｎ／２−１）をメモリ１１０へ保存する（ステップＳ５０３）。続いて、高速フーリエ変換部１３０は、ステップＳ５０２の結果として得られたバタフライ演算の結果Ｇ［ｋ］をＸ［ｋ］へ代入する（ステップＳ５０４）。
【００８８】
このとき、シグナルフローの段数のインデックスｎがｌｏｇ２（Ｎ）未満である場合、すなわち最終段の１つ前の段に未到達である場合（ステップＳ５０５Ｙｅｓ）、シグナルフローの段数のインデックスｎをインクリメントし、上記のステップＳ５０２〜上記のステップＳ５０４の処理を繰り返し実行する。
【００８９】
その後、シグナルフローの段数のインデックスｎがｌｏｇ２（Ｎ）以上である場合、すなわち最終段の１つ前の段に到達した場合（ステップＳ５０５Ｎｏ）、高速フーリエ変換部１３０は、次のような処理を実行する。すなわち、高速フーリエ変換部１３０は、最終段の１つ前の段、すなわちｌｏｇ２（Ｎ）−１段目における偶数番のバタフライ演算の結果Ｇ[j]を線形回帰モデルへ代入することによりｌｏｇ２（Ｎ）−１段目における奇数番のバタフライ演算の結果Ｈ[j]を計算した上で最終段の１つ前の段の偶数番及び奇数番のバタフライ演算の結果Ｇ[j]及びＨ[j]から最終段、すなわちｌｏｇ２（Ｎ）段のバタフライ演算を行う（ステップＳ５０６）。その後、高速フーリエ変換部１３０は、ステップＳ５０６で演算されたｌｏｇ２（Ｎ）段のバタフライ演算Ｘ［ｋ］（ｋ＝０，１，・・・，Ｎ−１）をＦＦＴの演算結果としてメモリ１１０へ保存し（ステップＳ５０７）、処理を終了する。
【００９０】
［効果の一側面］
上述してきたように、本実施例に係るＭＣＵ１００は、第１のサンプリング周波数で得られたセンサデータが分割された２つのグループのデータに高速フーリエ変換を実行し、そのバタフライ演算結果がグループ間で類似する場合にセンサ１１等を動作させるサンプリング周波数を第１のサンプリング周波数よりも低い第２のサンプリング周波数に変更する周波数解析処理を実行する。それ故、本実施例に係るＭＣＵ１００では、一側面として、センサ１１及びセンサ１１から入力されるデータにアナログデジタル変換を行うＡＤＣ１２が動作する頻度を低減することができる。したがって、本実施例に係るＭＣＵ１００によれば、センサモジュール１０における消費電力の低減を実現できる。
【００９１】
さらに、本実施例に係るＭＣＵ１００では、最終段の１つ前の段のバタフライ演算結果から推定された回帰モデルにしたがって２つのグループのデータのうち一方のグループのデータの入力を用いて他方のグループのデータを回帰計算した上で最終段のバタフライ演算を実行する。このように、本実施例に係るＭＣＵ１００では、高速フーリエ変換で実行されるバタフライ演算の一部を回帰計算に置き換えることで、バタフライ演算量を低減できる。この結果、本実施例に係るＭＣＵ１００によれば、センサモジュール１０における消費電力をより効果的に低減できる。
【実施例２】
【００９２】
さて、これまで開示の装置に関する実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
【００９３】
［汎用のコンピュータシステムへの適用］
上記の実施例１では、上記の周波数解析処理が組み込みシステムに実装される場合を例示したが、これに限定されない。すなわち、パーソナルコンピュータやサーバ装置などの汎用のコンピュータシステムであっても、高速フーリエ変換の演算量が多くなるほど装置の消費電力は大きくなる。このため、上記の第２のＦＦＴ処理が実行される場合、高速フーリエ変換の演算量を低減できる結果、消費電力も低減できる。
【００９４】
［分散および統合］
また、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されておらずともよい。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、センサモジュール１０に搭載された機能部の一部またはＭＣＵ１００に搭載された処理部の一部をセンサモジュール１０またはＭＣＵ１００の外部装置としてネットワーク経由で接続するようにしてもよい。
【符号の説明】
【００９５】
１０    センサモジュール
１１    センサ
１２    ＡＤＣ
１４    無線通信部
１００    ＭＣＵ
１１０    メモリ
１３０Ａ  前処理部
１３０    高速フーリエ変換部
１３０Ｂ  後処理部
１５０    統計処理部
１７０    変更部
【図１】
0006613979.tif 000017
【図２】
0006613979.tif 000018
【図３】
0006613979.tif 000019
【図４】
0006613979.tif 000020
【図５】
0006613979.tif 000021
【図６】
0006613979.tif 000022
【図７】
0006613979.tif 000023
【図８】
0006613979.tif 000024
【図９】
0006613979.tif 000025
【図１０】
0006613979.tif 000026
【図１１】
0006613979.tif 000027
【図１２】
0006613979.tif 000028
【図１３】
0006613979.tif 000029
【図１４】
0006613979.tif 000030
【図１５】
0006613979.tif 000031
【図１６】
0006613979.tif 000032