【国等の委託研究の成果に係る記載事項】(出願人による申告)平成24年度、支出負担行為担当官、総務省大臣官房会計課企画官、研究テーマ「M2M型動的無線通信ネットワーク構築技術の研究開発」に関する委託研究、産業技術力強化法第19条の適用を受ける特許出願
(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0014】
以下、本発明によるスペクトログラム分解装置について、実施の形態を用いて説明する。なお、以下の実施の形態において、同じ符号を付した構成要素及びステップは同一または相当するものであり、再度の説明を省略することがある。
【0015】
(実施の形態1)
本発明の実施の形態1によるスペクトログラム分解装置について、図面を参照しながら説明する。本実施の形態によるスペクトログラム分解装置は、無線信号のスペクトログラムに対応する非負値行列を、周波数領域と時間領域とにそれぞれ対応する2個の非負値行列に分解するものである。
【0016】
図1は、本実施の形態によるスペクトログラム分解装置1の構成を示すブロック図である。本実施の形態によるスペクトログラム分解装置1は、受信部11と、取得部12と、受付部13と、分解部14と、出力部15と、記憶部16と、フィルタ17と、フィルタ設定部18と、直積部19とを備える。このスペクトログラム分解装置1は、例えば、ステーションやモバイルノード等の端末装置であってもよく、1以上の端末装置と無線通信を行うアクセスポイント等の無線基地局であってもよく、または、無線通信を行うその他の装置であってもよい。また、スペクトログラム分解装置1は、自律分散型無線ネットワークにおいて無線通信を行う装置であってもよく、または、そうでなくてもよい。また、その無線ネットワークは、他の無線システムと混在する環境であってもよい。すなわち、多数の無線通信機器が、同一周波数帯を共用していてもよい。
【0017】
受信部11は、無線信号を受信する。なお、受信部11は、複数の無線信号源からの無線信号を受信してもよい。その無線信号は、無線により伝搬するどのような信号であってもよい。例えば、無線LANの無線信号であってもよく、Bluetooth(登録商標)の無線信号であってもよく、ノイズ源からの無線信号であってもよく、その他の方式による無線信号であってもよい。また、その無線信号の周波数は問わない。その無線信号の周波数は、例えば、ISM帯であってもよく、その他の周波数であってもよい。受信部11は、例えば、
図2で示されるように、低雑音増幅部21と、周波数変換部22と、局部発振部23と、フィルタ部24と、AD変換部25とを備えてもよい。低雑音増幅部21は、アンテナを介してアナログ受信信号を受信し、その受信した信号を増幅する。周波数変換部22は、局部発振部23によって生成された信号を用いて、増幅された受信信号を周波数変換し、AD変換部25で変換できる等価ベースバンド帯域受信信号に変換する。局部発振部23は、その周波数変換部22での周波数変換のための信号を生成する。フィルタ部24は、あらかじめ決められた周波数帯域のみを通過させるフィルタである。その周波数帯域は、例えば、分解部14における分解の対象としたいスペクトログラム行列(後述する)に対応した周波数帯域に設定されてもよい。フィルタ部24は、例えば、ローパスフィルタやハイパスフィルタ、バンドパスフィルタであってもよい。AD変換部25は、等価ベースバンド帯域受信信号であるアナログ信号をデジタル信号に変換する。なお、そのAD変換後のデジタル信号も、無線信号と呼ぶものとする。
【0018】
取得部12は、受信部11が受信した無線信号に関するスペクトログラムを取得する。そのスペクトログラムは、周波数領域と時間領域とにおいて、受信された無線信号に関する電力を示すものである。したがって、そのスペクトログラムは、周波数電力スペクトログラムであるということもできる。取得部12は、例えば、受信された無線信号を所定の時間ごとにフーリエ変換することによって、スペクトログラムを取得してもよい。そのフーリエ変換は、例えば、離散フーリエ変換(DFT)であってもよく、高速フーリエ変換(FFT)であってもよい。また、取得されたスペクトログラムは、図示しない記録媒体で記憶されてもよい。
【0019】
受付部13は、周波数行列を受け付ける。周波数行列については後述する。なお、受付部13は、周波数行列そのものを受け付けてもよく、実質的に周波数行列と同じであると考えられる情報を受け付けてもよい。後者の場合には、受付部13は、例えば、周波数行列の各要素を受け付けてもよく、周波数行列を構成するベクトル(基底ベクトル)を受け付けてもよい。
【0020】
受付部13は、例えば、有線もしくは無線の通信回線を介して送信された周波数行列を受信してもよく、所定の記録媒体(例えば、光ディスクや磁気ディスク、半導体メモリなど)から読み出された周波数行列を受け付けてもよい。なお、受付部13は、受け付けを行うためのデバイス(例えば、モデムやネットワークカードなど)を含んでもよく、あるいは含まなくてもよい。また、受付部13は、ハードウェアによって実現されてもよく、あるいは所定のデバイスを駆動するドライバ等のソフトウェアによって実現されてもよい。
【0021】
分解部14は、スペクトログラム行列Yを、非負値行列因子分解(NMF:Non−negative Matrix Factorization)により、周波数行列Hと、時間行列Uとに分解する。ここで、スペクトログラム行列Yは、取得部12が取得したスペクトログラムに対応する非負値行列である。スペクトログラム行列Yの(i,j)成分をY
ijとすると、Y
ijは、例えば、周波数がiであり、時間がjである場合の無線信号の電力値である。ここで、iは、1≦i≦Mの整数であり、jは、1≦j≦Nの整数である。なお、スペクトログラム行列Yは、M×Nの行列であるとしている。M、Nは、正の整数である。また、スペクトログラム行列Yは非負値行列であるため、すべての(i、j)についてY
ij≧0となる。また、iが1ずつ増えることにより、周波数が増加してもよく、減少してもよく、またはそれらのいずれでなくてもよい。また、jが1ずつ増えることにより、時間が増加してもよく、減少してもよく、またはそれらのいずれでなくてもよい。
【0022】
また、周波数行列Hは、周波数領域に対応する非負値行列である。周波数行列Hは、M×Kの行列である。Kは、基底数であり、任意の正の整数であるが、K≦min(M,N)であることが好適である。周波数行列Hは非負値行列であるため、周波数行列Hの(i,k)成分をH
ikとすると、すべての(i,k)についてH
ik≧0となる。ここで、kは、1≦k≦Kの整数である。また、時間行列Uは、時間領域に対応する非負値行列である。時間行列Uは、K×Nの行列である。時間行列Uは非負値行列であるため、時間行列Uの(k,j)成分をU
kjとすると、すべての(k,j)についてU
kj≧0となる。なお、分解部14は、次式のように、スペクトログラム行列Yを、周波数行列Hと、時間行列Uとに分解する。なお、行列Hのことを基底行列と呼び、行列Uのことを係数行列と呼ぶことがある。
【数1】
【0023】
ここで、分解部14は、2個の行列Y、HUの間の距離d(Y,HU)が、上述のように、H、Uの各成分が非負値となる制約下で最小となる最適化問題の解として、H,Uを算出する。その距離d(Y,HU)は、例えば、Frobeniusノルム規準(二乗誤差規準)の距離であってもよく、一般化KL(Kullback−Leibler)ダイバージェンス規準(Iダイバージェンス規準)の距離であってもよく、板倉・斉藤距離であってもよい。なお、選択した距離のモデルに対応した乗法的更新式による効率的な解法を用いることによって、分解部14は、周波数行列H、及び時間行列Uを算出することができる。非負値行列因子分解により行列H,Uを導出する方法についてはすでに公知であり、その詳細な説明を省略する。
【0024】
なお、受付部13が周波数行列Hを受け付けている場合には、分解部14は、スペクトログラム行列Yを、その受け付けられた周波数行列Hを用いて、周波数行列Hと時間行列Uとに分解してもよい。その場合には、受け付けられた周波数行列Hを教師情報として用いることになる。その場合にも、時間行列Uについては、乗法的更新によって、距離d(Y,HU)が最小となるように算出するものとする。したがって、その場合にも、分解部14は、非負値行列因子分解によって、スペクトログラム行列Yを、周波数行列Hと、時間行列Uとに分解していると考えることができる。また、受付部13が周波数行列Hを受け付けていない場合には、分解部14は、乗法的更新により周波数行列Hと時間行列Uとの両方を算出することで、スペクトログラム行列Yを、非負値行列因子分解によって、周波数行列Hと、時間行列Uとに分解してもよい。このように、スペクトログラム行列Yから、周波数行列H及び時間行列Uを結果として得ることができるのであれば、周波数行列Hは、算出されてもよく、または、与えられてもよい。
【0025】
ここで、乗法的更新によって周波数行列H及び時間行列Uを算出する方法について、距離d(Y,HU)をFrobeniusノルム規準の乖離度とするLee&Seungの乗法的更新式を用いる場合について説明する。なお、Lee&Seungの乗法的更新式の詳細については、次の文献を参照されたい。
文献:D.D.Lee、H.S.Seung、「Algorithms for Non−negative Matrix Factorization」、Advances in Neural Information Processing Systems 13(Proceedings of the 2000 Conference)、MIT Press、2001年
【0026】
分解部14は、M行N列のスペクトログラム行列Yに対して、M行K列の周波数行列Hと、K行N列の時間行列Uとを用意する。ここで、Kは、取得する個々の無線信号の特徴スペクトルとなる基底ベクトルの数である。なお、行列H、Uの各要素の初期値はどのようなものであってもよい。各要素の値はそれぞれ、例えば、[0,1)の一様乱数値であってもよい。ここで、[0,1)は、0以上1未満の意味である。
【0027】
次に、分解部14は、行列H、Uの各要素の値を次の乗法的更新式で更新する。なお、分解部14は、あらかじめ決められている終了条件が満たされるまで、この更新を繰り返して行う。その終了条件は、例えば、あらかじめ決められた回数だけ更新を行ったことであってもよく、更新時にH
ikやU
kjに掛けられる係数が、1に近い値(例えば、1−εから1+εまでの範囲内の値でもよい。ただし、εは微小な値である)となったことであってもよい。
【数2】
【0028】
なお、周波数行列Hとして、受付部13で受け付けられた行列を用いる場合には、分解部14は、前述のように、時間行列Uについてのみ、乗法的更新を行ってもよい。また、スペクトログラム行列Yの分解を行う際に用いる基底数Kの決め方は問わない。例えば、受信部11が受信する無線信号の無線方式(例えば、無線LANや、Bluetooth(登録商標)等の無線方式)が分かっている場合には、それらが使用する周波数チャネルの数を基底数としてもよい。また、例えば、受信部11が受信する無線信号の周波数帯域の数(例えば、周波数チャネル数など)が分かっている場合には、その数を基底数としてもよい。また、例えば、無線方式ごとの周波数帯域の数が分かっている場合には、各無線方式に関する周波数帯域の数の和を基底数としてもよい。また、例えば、複数の基底数について非負値行列因子分解を行い、各分解結果の距離d(Y,HU)がしきい値以下である最も小さい基底数を特定し、その特定した基底数を用いて非負値行列因子分解を行った結果を、最終的な分解結果としてもよい。また、基底数をデータから推論するようにした非負値行列因子分解であるガンマプロセス非負値行列因子分解(Gamma Process(GaP)NMF)を用いてもよい。なお、ガンマプロセス非負値行列因子分解の詳細については、次の文献を参照されたい。
文献:M.Hoffman,D.Blei,P.Cook,「Bayesian nonparametric matrix factorization for recorded music」、in Proc.ICML,p.439−446,2010年
【0029】
ここで、周波数行列Hは、H=[h
1,h
2,…,h
K]のように、K個の基底ベクトルh
1,h
2,…,h
Kを並べたものである。その各基底ベクトルは、各周波数帯域(各周波数チャネル)における周波数スペクトルパターンに対応している。したがって、分解された周波数行列Hによって、各周波数帯域の周波数スペクトルを知ることができる。また、逆に各周波数帯域の周波数スペクトルがあらかじめ分かっている場合には、その周波数スペクトルに応じた基底ベクトルh
1,h
2,…,h
Kを構成し、その基底ベクトルを並べた周波数行列Hを構成することによって、周波数行列Hを得ることができる。したがって、受付部13が受け付ける周波数行列Hは、そのようにして構成されたものであってもよい。この場合には、周波数帯域の数(例えば、周波数チャネル数)が基底数となる。なお、その基底ベクトルの次元は、スペクトログラム行列Yの行数と一致しており、また、その基底ベクトルに対応する周波数帯域幅は、スペクトログラム行列Yに対応する周波数帯域幅と一致している必要がある。また、時間行列Uは、U=[u
1,u
2,…,u
K]
Tのように、K個の係数ベクトルu
1,u
2,…,u
Kを並べたものである。また、係数ベクトルu
kは、それに対応するk番目の周波数帯域に対応する時間領域の時間変動パターンとなっている。ここで、k番目の周波数帯域とは、基底ベクトルh
kに対応する周波数帯域のことである。したがって、分解された時間行列Uによって、各周波数帯域の時間変動パターンを知ることができる。また、基底ベクトルh
kと、計数ベクトルu
kとの直積を算出することによって、k番目の周波数帯域における時間変動を示すスペクトログラムに対応する行列を計算することもできる。その直積は、後述するように、直積部19によって行われる。また、本実施の形態では、周波数行列が行列Hであり、時間行列が行列Uである場合について説明するが、スペクトログラム行列Yの設定によっては、その逆となることは言うまでもない。
【0030】
出力部15は、分解部14によって分解された周波数行列Hと、時間行列Uとを出力する。その周波数行列Hは、受付部13が受け付けたものであってもよく、分解部14が算出したものであってもよい。ここで、この出力は、例えば、表示デバイス(例えば、CRTや液晶ディスプレイなど)への表示でもよく、所定の機器への通信回線を介した送信でもよく、プリンタによる印刷でもよく、記録媒体への蓄積でもよく、他の構成要素への引き渡しでもよい。本実施の形態では、出力部15が周波数行列等を記憶部16に蓄積する場合について主に説明する。なお、出力部15は、出力を行うデバイス(例えば、表示デバイスやプリンタなど)を含んでもよく、あるいは含まなくてもよい。また、出力部15は、ハードウェアによって実現されてもよく、あるいは、それらのデバイスを駆動するドライバ等のソフトウェアによって実現されてもよい。
【0031】
記憶部16では、分解部14によって分解された周波数行列Hと、時間行列Uとが記憶される。その周波数行列H等は、前述のように、出力部15によって蓄積されたものである。また、後述するように、記憶部16には、フィルタ17によってフィルタリングされた結果や、直積部19による直積の結果が記憶されてもよい。記憶部16での記憶は、RAM等における一時的な記憶でもよく、あるいは、長期的な記憶でもよい。また、記憶部16は、所定の記録媒体(例えば、半導体メモリや磁気ディスクなど)によって実現されうる。
【0032】
フィルタ17は、周波数領域及び時間領域の少なくとも一方において、スペクトログラムから特定の成分を抽出する。すなわち、フィルタ17は、(1)周波数領域のみにおいて、スペクトログラムから特定の成分を抽出してもよく、(2)時間領域のみにおいて、スペクトログラムから特定の成分を抽出してもよく、(3)周波数領域及び時間領域の両方において、スペクトログラムから特定の成分を抽出してもよい。
【0033】
(1)の場合には、フィルタ17は、例えば、ローパスフィルタであってもよく、ハイパスフィルタであってもよく、バンドパスフィルタであってもよく、帯域除去フィルタであってもよい。また、(2)の場合には、フィルタ17は、例えば、所定の時刻以降のスペクトログラムを抽出するフィルタであってもよく、所定の時刻以前のスペクトログラムを抽出するフィルタであってもよく、所定の期間のスペクトログラムを抽出するフィルタであってもよく、所定の期間以外のスペクトログラムを抽出するフィルタであってもよい。所定の期間は、1個の期間であってもよく、2個以上の重なり合わない期間であってもよい。また、(3)の場合には、上記(1)、(2)の任意の組み合わせであってもよい。なお、本実施の形態では、フィルタ17が、(3)の場合であって、所定の周波数帯域であり、所定の期間であるスペクトログラムを抽出するフィルタである場合について主に説明する。
なお、フィルタ17は、アナログのフィルタであってもよく、デジタルフィルタであってもよい。
【0034】
フィルタ設定部18は、周波数行列Hと時間行列Uとの少なくとも一方を用いて、フィルタ17が抽出する成分を設定する。例えば、フィルタ17が上記(1)の場合には、フィルタ設定部18は、周波数行列Hを用いて、フィルタ17が抽出する成分の設定を行ってもよい。この場合には、フィルタ17は、周波数領域におけるフィルタリングを行うことになる。具体的には、ある基底ベクトルに対応するフィルタの設定を行う場合には、フィルタ設定部18は、その基底ベクトルに対応する最低周波数と最高周波数とを特定し、特定した最低周波数から最高周波数までの周波数帯域を通過させるようにフィルタ17を設定してもよい。この場合には、フィルタ17は、バンドパスフィルタとなる。なお、それ以外の設定をしてもよいことは言うまでもない。例えば、フィルタ設定部18は、特定した最低周波数から最高周波数までの周波数帯域を除去するようにフィルタ17を設定してもよい。この場合には、フィルタ17は、帯域除去フィルタとなる。ここで、最低周波数及び最高周波数を特定する方法について簡単に説明する。ある基底ベクトルの各要素の値と、あらかじめ決められているしきい値との比較において、要素の値がしきい値より大きい値となる最も低い周波数が最低周波数であり、要素の値がしきい値より大きい値となる最も高い周波数が最高周波数である。また、基底ベクトルを用いてフィルタ17を構成する場合には、通常、基底ベクトルの数(基底数)に応じた数のフィルタ17が構成されることになるが、それ以外の数のフィルタ17が構成されてもよい。
【0035】
また、例えば、フィルタ17が上記(2)の場合には、フィルタ設定部18は、時間行列Uを用いて、フィルタ17が抽出する成分の設定を行ってもよい。この場合には、フィルタ17は、時間領域におけるフィルタリングを行うことになる。具体的には、ある係数ベクトルに対応するフィルタの設定を行う場合には、フィルタ設定部18は、その係数ベクトルにおいて、各要素の値があらかじめ決められているしきい値以上となる1以上の期間を特定し、特定した1以上の期間を通過させるようにフィルタ17を設定してもよい。この場合には、フィルタ17は、所定の期間のスペクトログラムを抽出するフィルタとなる。なお、それ以外の設定をしてもよいことは言うまでもない。例えば、フィルタ設定部18は、特定した1以上の期間を通過させないようにフィルタ17を設定してもよい。この場合には、フィルタ17は、所定の期間以外のスペクトログラムを抽出するフィルタとなる。また、係数ベクトルを用いてフィルタ17を構成する場合には、通常、係数ベクトルの数(基底数)に応じた数のフィルタ17が構成されることになるが、それ以外の数のフィルタ17が構成されてもよい。
【0036】
また、例えば、フィルタ17が上記(3)の場合には、フィルタ設定部18は、周波数行列H及び時間行列Uを用いて、フィルタ17が抽出する成分の設定を行ってもよい。この場合には、フィルタ17は、周波数領域及び時間領域におけるフィルタリングを行うことになる。具体的には、フィルタ設定部18は、k番目の基底ベクトルh
kと、k番目の係数ベクトルu
kとを用いて、基底ベクトルh
kに対応する周波数帯域を通過させ、係数ベクトルu
kに対応する期間を通過させるようにフィルタ17を設定してもよい。ここで、kは、1からKまでの任意の整数である。したがって、各kの値についてフィルタが構成される場合には、K個のフィルタが構成されることになる。なお、周波数領域と時間領域との両方においてフィルタリングを行う場合には、例えば、一方の領域におけるフィルタリングをした後に、他方の領域におけるフィルタリングを行ってもよく、または、両方の領域におけるフィルタリングを同時に行ってもよい。周波数領域及び時間領域におけるフィルタの設定方法については、前述の通りである。また、それ以外の設定をしてもよいことは言うまでもない。例えば、フィルタ設定部18は、基底ベクトルh
kに対応する周波数帯域について、係数ベクトルu
kに対応する期間を通過させないようにフィルタ17を設定してもよい。また、基底ベクトル及び係数ベクトルを用いてフィルタ17を構成する場合には、通常、基底ベクトルや係数ベクトルの数(基底数)に応じた数のフィルタ17が構成されることになるが、それ以外の数のフィルタ17が構成されてもよい。
また、複数個のフィルタが構成される場合には、フィルタ17は、例えば、その複数個のフィルタを有するものであってもよく、または、時分割で複数個の各フィルタとなるものであってもよい。前者の場合には、任意のタイミングで複数個の各フィルタリングを行うことができる。一方、後者の場合には、時分割で複数個のフィルタリングを行うことになる。
【0037】
直積部19は、周波数行列に含まれる周波数領域に対応するベクトルと、時間行列に含まれる時間領域に対応するベクトルとの直積を算出する。前述のように、この直積は、h
k×u
kのように算出されてもよい。また、この直積は、すべての基底ベクトル、係数ベクトルについて算出されてもよく、または、一部の基底ベクトル、係数ベクトルについてについて算出されてもよい。なお、基底数(K個)の直積が算出された場合には、スペクトログラム行列が、基底数に応じた個数に近似的に分離されたことになる。その直積の結果を用いて、例えば、無線信号の信号源の種類を特定したり、無線通信に関する通信品質を特定したりしてもよい。信号源の種類は、例えば、無線信号の送信パターンや、周波数帯域幅等によって特定することができうる。具体的には、無線LAN(IEEE802.11a規格)の1チャネルの帯域幅は20MHzであり、Bluetooth(登録商標)の1チャネルの帯域幅は1MHzであるため、周波数帯域幅に応じて、信号源の種類を特定することが可能となる。また、通信品質は、ビジー/アイドルの割合や、あらかじめデータ量の分かっている無線信号の時間的長さ等を用いることによって、取得することができる。通信品質は、例えば、スループットや、ジッタ、遅延等であってもよい。具体的には、あらかじめデータ量の分かっている無線信号の時間的長さを用いることによって、伝送レートを予測することができ、その伝送レートにアイドル割合を掛けることによって、スループットを予測することができる。
【0038】
なお、スペクトログラム分解装置1は、フィルタ17によるフィルタリングの結果や、直積部19による直積の結果を出力する出力部(図示せず)を備えていてもよい。その出力は、前述の出力部15による出力と同様に、例えば、表示デバイス(例えば、CRTや液晶ディスプレイなど)への表示でもよく、所定の機器への通信回線を介した送信でもよく、プリンタによる印刷でもよく、記録媒体への蓄積でもよく、他の構成要素への引き渡しでもよい。また、その図示しない出力部は、出力を行うデバイス(例えば、表示デバイスやプリンタなど)を含んでもよく、あるいは含まなくてもよい。また、その図示しない出力部は、ハードウェアによって実現されてもよく、あるいは、それらのデバイスを駆動するドライバ等のソフトウェアによって実現されてもよい。
【0039】
次に、スペクトログラム分解装置1の動作について
図3のフローチャートを用いて説明する。
(ステップS101)受信部11は、無線信号を受信する。なお、取得対象のスペクトログラムの時間領域の長さが決まっている場合には、受信部11は、その長さに応じた受信を行ってもよい。また、この受信された無線信号は、図示しない記録媒体で記憶されてもよい。例えば、AD変換部25によるAD変換後の無線信号が、図示しない記録媒体で記憶されてもよい。
【0040】
(ステップS102)取得部12は、受信された無線信号に関するスペクトログラムを取得する。なお、取得されたスペクトログラムは、図示しない記録媒体で記憶されてもよい。
【0041】
(ステップS103)受付部13は、周波数行列Hを受け付けたかどうか判断する。そして、周波数行列Hを受け付けない場合には、ステップS104に進み、受け付けた場合には、ステップS105に進む。例えば、受付部13は、スペクトログラムの取得後に、ユーザに対して周波数行列Hの入力が要求されたが、入力がなくタイムアウトとなった場合に、周波数行列Hを受け付けないと判断してもよく、あらかじめ決められている図示しない記録媒体に周波数行列Hが記憶されていない場合に、周波数行列Hを受け付けないと判断してもよい。
【0042】
(ステップS104)分解部14は、非負値行列因子分解により、スペクトログラム行列Yを、周波数行列Hと時間行列Uとに分解する。この場合には、分解部14は、周波数行列Hと時間行列Uとの両方を算出することになる。
【0043】
(ステップS105)分解部14は、受付部13が受け付けた周波数行列Hを用いて、非負値行列因子分解により、スペクトログラム行列Yを、周波数行列Hと時間行列Uとに分解する。この場合には、分解部14は、時間行列Uのみを算出することになる。
【0044】
(ステップS106)出力部15は、分解部14によって分解された周波数行列Hと時間行列Uとを出力する。本実施の形態では、出力部15は、両者を記憶部16に蓄積するものとする。
【0045】
(ステップS107)フィルタ設定部18は、記憶部16で記憶されている周波数行列Hと時間行列Uとを用いて、フィルタ17の設定を行う。
【0046】
(ステップS108)フィルタ17は、ステップS107におけるフィルタ設定部18による設定に応じて、スペクトログラムから特定の成分を抽出するフィルタリングを行う。そのフィルタリングの結果は、記憶部16に蓄積される。
【0047】
(ステップS109)直積部19は、記憶部16で記憶されている周波数行列Hに含まれる周波数領域に対応するベクトルと、記憶部16で記憶されている時間行列Uに含まれる時間領域に対応するベクトルとの直積を算出する。周波数行列H、時間行列Uには、それぞれK個の基底ベクトルと係数ベクトルとが含まれているため、直積部19は、それぞれ対応する基底ベクトルと係数ベクトルとの直積を算出することによって、K個の行列を取得してもよい。このK個の行列は、それぞれ無線信号ごとに分離されたスペクトログラムに対応している。そのK個の行列は、記憶部16に蓄積される。そして、スペクトログラム行列Yを分解し、フィルタリングを行ったり、直積を算出したりする一連の処理は終了となる。
なお、
図3のフローチャートにおいて、記憶部16で記憶されている各種の情報を出力する処理を行ってもよい。
【0048】
次に、本実施の形態によるスペクトログラム分解装置1の動作について、具体例を用いて説明する。この具体例において、スペクトログラム分解装置1は、無線LANシステムにおける無線信号を受信するものとする。また、基底数Kは、「5」に設定されていたとする。また、この具体例では、周波数行列Hの受け付けは行われないものとする。
【0049】
まず、受信部11は、あらかじめ決められている周波数帯域幅、期間の無線信号を受信し、その受信した無線信号、すなわち、AD変換部25によるAD変換後の無線信号を取得部12に渡す(ステップS101)。すると、取得部12は、フーリエ変換を行うことによって、
図4Aで示されるスペクトログラムを取得し、図示しない記録媒体に蓄積する(ステップS102)。
図4Aのスペクトログラムは、周波数チャネル1,4,7,10,13に割り当てられた5組の無線LANアクセスポイント・ステーション間でFTPを用いた際に観測されたスペクトログラムに対応している。また、この具体例では、周波数行列Hの受け付けは行われないため(ステップS103)、分解部14は、スペクトログラムに対応するスペクトログラム行列を構成し、非負値行列因子分解によって、そのスペクトログラム行列を、周波数行列Hと時間行列Uとに分解する(ステップS104)。そして、それらの行列は、出力部15によって記憶部16に蓄積される(ステップS106)。記憶部16に蓄積された周波数行列Hの各基底ベクトルに対応する周波数スペクトルは、
図4Bで示され、時間行列Uの各係数ベクトルに対応する時間変動パターンは、
図4Cで示される。
図4Bで示される周波数スペクトルは、それぞれ周波数チャネル1,4,7,10,13に対応している。
図4Cで示される時間変動パターンも、それぞれ周波数チャネル1,4,7,10,13に対応している。
【0050】
その後、フィルタ設定部18は、
図4B、
図4Cで示されるパターンを用いて、k=1,2,…,5についてそれぞれ、基底ベクトルh
kに対応する周波数帯域を通過させ、係数ベクトルu
kに対応する期間を通過させる5個のフィルタ17を設定する(ステップS107)。そして、フィルタ17は、設定に応じて5個の周波数チャネルごとのスペクトログラムをフィルタリングし、その結果を記憶部16に蓄積する(ステップS108)。また、直積部19は、k=1,2,…,5について、直積h
k×u
kを算出して記憶部16に蓄積する(ステップS109)。その結果、
図5A〜
図5Eで示される周波数チャネルごとのスペクトログラムが算出される。なお、直積は、基底ベクトル等を用いて行われるため、取得部12が取得したスペクトログラムよりも情報量が少なくなっている。一方、フィルタ17によるフィルタリングの結果は、抽出対象の周波数帯域や期間においては、取得部12が取得したスペクトログラムに対して情報量が少なくなっていない。そのため、例えば、スペクトログラムのパターンのみを用いたい場合には、直積の結果を用いてもよく、スペクトログラムの厳密な値も重要な場合には、フィルタリングの結果を用いてもよい。
【0051】
また、この具体例では、フィルタリングの結果については示していないが、フィルタリングの結果も、
図5A〜
図5Eと同様の情報となる。なお、この具体例における各図面の情報は、説明の便宜のために用いたものであり、その少なくとも一部が正確でない場合もありうる。
【0052】
以上のように、本実施の形態によるスペクトログラム分解装置1によれば、受信された無線信号に対応するスペクトログラムを、2以上の無線信号に適切に分離するための処理、具体的には、周波数領域の情報である周波数行列Hと、時間領域の情報である時間行列Uとに分ける処理を行うことができる。そのようにして、バンドパスフィルタを用いることなく、無線信号の特徴分離を行うことができる。また、適切な非負値行列因子分解が行われることによって、周波数チャネルの周波数帯域が重なり合っている場合であっても、それらの特徴分離を行うことができるようになる。また、バンドパスフィルタでは抽出することが難しかった、スペクトル分割されたキャリア信号を識別することも可能となる。スペクトル分割されたキャリア信号は、例えば、スペクトラム分割シングルキャリア変調方式による無線信号であってもよい。この場合には、1個の信号が、複数の周波数帯域の無線信号に変調されているが、本実施の形態によるスペクトログラム分解装置1により、その複数の周波数帯域にわたる無線信号を、1個の無線信号として特徴分離することも可能である。ここで、スペクトログラム行列Yを周波数行列Hと時間行列Uとに分解した場合には、近似を行っていることになる。したがって、スペクトログラム行列Yを、周波数行列H及び時間行列Uに代えることによって、不可逆圧縮を行ったことと同様であると考えることもできる。また、周波数行列Hや時間行列Uを用いてフィルタ17を構成することによって、スペクトログラムから、無線通信の行われている周波数帯域ごとのスペクトログラムや、無線通信の行われている期間ごとのスペクトログラムを抽出することができる。また、基底ベクトルと係数ベクトルとの直積を算出することにより、無線通信の行われている周波数帯域ごと、無線通信の行われている期間ごとのスペクトログラムを近似的に取得することもできる。また、分解部14が、受け付けられた周波数行列Hを用いないで非負値行列因子分解を行う場合、すなわち、周波数行列Hと時間行列Uとの両方を算出する場合には、無線信号の周波数チャネルに関する情報を事前に知っていなかったとしても、無線信号のスペクトルパターンや、時間変動パターンの統計的独立性のみを利用して、無線信号を周波数チャネルごとに分離するための情報、例えば、周波数行列Hを得ることができる。
【0053】
なお、本実施の形態では、周波数行列Hや時間行列Uを用いて、スペクトログラムについてフィルタリングを行うフィルタ17を構成する場合について説明したが、周波数行列Hや時間行列Uを用いて、無線信号の分離に対応するそれ以外の処理を行ってもよい。具体的には、ある無線信号の周波数帯域幅を、周波数行列Hを用いて特定し、受信部11が受信する無線信号から、その特定した周波数帯域幅に応じたバンドパスフィルタによって、その無線信号を抽出してもよい。なお、このバンドパスフィルタの設定は、上述したフィルタ設定部18によるバンドパスフィルタの設定と同様であり、その説明を省略する。このようにすることで、受信部11が受信した信号を、複数の無線信号に分離することが可能となる。
【0054】
また、本実施の形態では、直積部19が、周波数行列Hに含まれるベクトルと、時間行列Uに含まれるベクトルとの直積を算出する場合について説明したが、そうでなくてもよい。その直積の算出を行わない場合には、スペクトログラム分解装置1は、直積部19を備えていなくてもよい。
【0055】
また、本実施の形態では、フィルタ17が、スペクトログラムに関するフィルタリングを行う場合について説明したが、そうでなくてもよい。そのフィルタリングを行わない場合には、スペクトログラム分解装置1は、フィルタ17と、フィルタ設定部18とを備えていなくてもよい。
【0056】
また、本実施の形態では、受付部13が周波数行列Hを受け付ける場合について説明したが、受付部13は時間行列Uを受け付けてもよい。その場合には、分解部14は、スペクトログラム行列Yを、受付部13が受け付けた時間行列Uを用いて、周波数行列Hと時間行列Uとに分解してもよい。その場合にも、周波数行列Hについては、乗法的更新によって、距離d(Y,HU)が最小となるように算出してもよい。
【0057】
また、本実施の形態では、受付部13が周波数行列Hを受け付ける場合について説明したが、そうでなくてもよい。その周波数行列Hの受け付けを行わない場合には、スペクトログラム分解装置1は、受付部13を備えていなくてもよい。
【0058】
また、本実施の形態では、出力部15が周波数行列H等を記憶部16に蓄積する場合について主に説明したが、そうでなくてもよい。出力部15が周波数行列H等を記憶部16に蓄積しない場合には、スペクトログラム分解装置1は、記憶部16を備えていなくてもよい。
【0059】
また、上記実施の形態では、スペクトログラム分解装置1がスタンドアロンである場合について主に説明したが、スペクトログラム分解装置1は、スタンドアロンの装置であってもよく、サーバ・クライアントシステムにおけるサーバ装置であってもよい。後者の場合には、受付部13や出力部15は、通信回線を介して入力を受け付けたり、情報を出力したりしてもよい。
【0060】
また、上記実施の形態において、各処理または各機能は、単一の装置または単一のシステムによって集中処理されることによって実現されてもよく、あるいは、複数の装置または複数のシステムによって分散処理されることによって実現されてもよい。
【0061】
また、上記実施の形態において、各構成要素間で行われる情報の受け渡しは、例えば、その情報の受け渡しを行う2個の構成要素が物理的に異なるものである場合には、一方の構成要素による情報の出力と、他方の構成要素による情報の受け付けとによって行われてもよく、あるいは、その情報の受け渡しを行う2個の構成要素が物理的に同じものである場合には、一方の構成要素に対応する処理のフェーズから、他方の構成要素に対応する処理のフェーズに移ることによって行われてもよい。
【0062】
また、上記実施の形態において、各構成要素が実行する処理に関係する情報、例えば、各構成要素が受け付けたり、取得したり、選択したり、生成したり、送信したり、受信したりした情報や、各構成要素が処理で用いるしきい値や数式、アドレス等の情報等は、上記説明で明記していなくても、図示しない記録媒体において、一時的に、あるいは長期にわたって保持されていてもよい。また、その図示しない記録媒体への情報の蓄積を、各構成要素、あるいは、図示しない蓄積部が行ってもよい。また、その図示しない記録媒体からの情報の読み出しを、各構成要素、あるいは、図示しない読み出し部が行ってもよい。
【0063】
また、上記実施の形態において、各構成要素等で用いられる情報、例えば、各構成要素が処理で用いるしきい値やアドレス、各種の設定値等の情報がユーザによって変更されてもよい場合には、上記説明で明記していなくても、ユーザが適宜、それらの情報を変更できるようにしてもよく、あるいは、そうでなくてもよい。それらの情報をユーザが変更可能な場合には、その変更は、例えば、ユーザからの変更指示を受け付ける図示しない受付部と、その変更指示に応じて情報を変更する図示しない変更部とによって実現されてもよい。その図示しない受付部による変更指示の受け付けは、例えば、入力デバイスからの受け付けでもよく、通信回線を介して送信された情報の受信でもよく、所定の記録媒体から読み出された情報の受け付けでもよい。
【0064】
また、上記実施の形態において、スペクトログラム分解装置1に含まれる2以上の構成要素が通信デバイスや入力デバイス等を有する場合に、2以上の構成要素が物理的に単一のデバイスを有してもよく、あるいは、別々のデバイスを有してもよい。
【0065】
また、上記実施の形態において、各構成要素は専用のハードウェアにより構成されてもよく、あるいは、ソフトウェアにより実現可能な構成要素については、プログラムを実行することによって実現されてもよい。例えば、ハードディスクや半導体メモリ等の記録媒体に記録されたソフトウェア・プログラムをCPU等のプログラム実行部が読み出して実行することによって、各構成要素が実現され得る。その実行時に、プログラム実行部は、記憶部や記録媒体にアクセスしながらプログラムを実行してもよい。なお、上記実施の形態におけるスペクトログラム分解装置1を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータを、受信された無線信号に関するスペクトログラムを取得する取得部、取得部が取得したスペクトログラムに対応する非負値行列であるスペクトログラム行列を、非負値行列因子分解により、周波数領域に対応する非負値行列である周波数行列と、時間領域に対応する非負値行列である時間行列とに分解する分解部として機能させるためのプログラムである。
【0066】
なお、上記プログラムにおいて、上記プログラムが実現する機能には、ハードウェアでしか実現できない機能は含まれない。例えば、情報を取得する取得部や、情報を出力する出力部などにおけるモデムやインターフェースカードなどのハードウェアでしか実現できない機能は、上記プログラムが実現する機能には少なくとも含まれない。
【0067】
また、このプログラムは、サーバなどからダウンロードされることによって実行されてもよく、所定の記録媒体(例えば、CD−ROMなどの光ディスクや磁気ディスク、半導体メモリなど)に記録されたプログラムが読み出されることによって実行されてもよい。また、このプログラムは、プログラムプロダクトを構成するプログラムとして用いられてもよい。
【0068】
また、このプログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
【0069】
図6は、上記プログラムを実行して、上記実施の形態によるスペクトログラム分解装置1を実現するコンピュータの外観の一例を示す模式図である。上記実施の形態は、コンピュータハードウェア及びその上で実行されるコンピュータプログラムによって実現されうる。
【0070】
図6において、コンピュータシステム900は、CD−ROMドライブ905、FD(Floppy(登録商標) Disk)ドライブ906を含むコンピュータ901と、キーボード902と、マウス903と、モニタ904とを備える。
【0071】
図7は、コンピュータシステム900の内部構成を示す図である。
図7において、コンピュータ901は、CD−ROMドライブ905、FDドライブ906に加えて、MPU(Micro Processing Unit)911と、ブートアッププログラム等のプログラムを記憶するためのROM912と、MPU911に接続され、アプリケーションプログラムの命令を一時的に記憶すると共に、一時記憶空間を提供するRAM913と、アプリケーションプログラム、システムプログラム、及びデータを記憶するハードディスク914と、MPU911、ROM912等を相互に接続するバス915とを備える。なお、コンピュータ901は、LANやWAN等への接続を提供する図示しないネットワークカードを含んでいてもよい。
【0072】
コンピュータシステム900に、上記実施の形態によるスペクトログラム分解装置1の機能を実行させるプログラムは、CD−ROM921、またはFD922に記憶されて、CD−ROMドライブ905、またはFDドライブ906に挿入され、ハードディスク914に転送されてもよい。これに代えて、そのプログラムは、図示しないネットワークを介してコンピュータ901に送信され、ハードディスク914に記憶されてもよい。プログラムは実行の際にRAM913にロードされる。なお、プログラムは、CD−ROM921やFD922、またはネットワークから直接、ロードされてもよい。
【0073】
プログラムは、コンピュータ901に、上記実施の形態によるスペクトログラム分解装置1の機能を実行させるオペレーティングシステム(OS)、またはサードパーティプログラム等を必ずしも含んでいなくてもよい。プログラムは、制御された態様で適切な機能やモジュールを呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいてもよい。コンピュータシステム900がどのように動作するのかについては周知であり、詳細な説明は省略する。
【0074】
また、本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。