(57)【要約】  信号分離装置は、複数の目的信号が混合された観測信号を入力して、前記観測信号の外積を計算する外積計算手段と、所定のアルゴリズムにより、前記外積を推定するためのモデルのパラメータを、前記外積の推定値を表す行列の逆行列を用いて更新するモデル計算手段と、前記パラメータを更新する際に、ＳＩＭＤ命令により前記逆行列を計算する逆行列計算手段と、前記外積の推定値を表す行列と、更新後の前記パラメータと、前記観測信号とを用いて、前記目的信号を計算する分離手段と、を有することを特徴とする。
2020100341.tif 000002
【特許請求の範囲】
【請求項１】
複数の目的信号が混合された観測信号を入力して、前記観測信号の外積を計算する外積計算手段と、
所定のアルゴリズムにより、前記外積を推定するためのモデルのパラメータを、前記外積の推定値を表す行列の逆行列を用いて更新するモデル計算手段と、
前記パラメータを更新する際に、ＳＩＭＤ命令により前記逆行列を計算する逆行列計算手段と、
前記外積の推定値を表す行列と、更新後の前記パラメータと、前記観測信号とを用いて、前記目的信号を計算する分離手段と、
を有することを特徴とする信号分離装置。
【請求項２】
前記外積計算手段は、
前記観測信号が観測される離散時間をｔ＝１，・・・，Ｔとして、離散時間ｔ毎に、前記外積を計算し、
前記モデル計算手段は、
前記アルゴリズムにより、前記離散時間ｔ毎の外積を推定するためのモデルのパラメータを、前記離散時間ｔ毎の外積の推定値をそれぞれ表す行列の逆行列を用いて更新し、
前記逆行列計算手段は、
前記パラメータを更新する際に、前記離散時間ｔ毎の外積の推定値をそれぞれ表す行列により構成されるテンソルを用いて、前記ＳＩＭＤ命令により、前記逆行列により構成されるテンソルを計算する、ことを特徴とする請求項１に記載の信号分離装置。
【請求項３】
前記逆行列計算手段は、
前記離散時間ｔ毎の外積の推定値をそれぞれ表す行列の行列式を前記ＳＩＭＤ命令により再帰的に計算し、
計算された行列式を用いて、前記逆行列により構成されるテンソルを計算する、ことを特徴とする請求項２に記載の信号分離装置。
【請求項４】
前記逆行列計算手段は、
ブロック行列の行列式と前記ブロック行列を構成するスカラー、ベクトル及び行列の行列式との関係性に従って前記離散時間ｔ毎の外積の推定値をそれぞれ表す行列の行列式を前記ＳＩＭＤ命令により再帰的に計算する、ことを特徴とする請求項３に記載の信号分離装置。
【請求項５】
前記逆行列計算手段は、
ブロック行列の行列式と前記ブロック行列を構成するスカラー、ベクトル及び行列の行列式との関係性に従って前記離散時間ｔ毎の外積の推定値をそれぞれ表す行列の逆行列を前記ＳＩＭＤ命令により再帰的に計算する、ことを特徴とする請求項２に記載の信号分離装置。
【請求項６】
前記パラメータには、前記目的信号の信号源から、前記観測信号を観測するセンサへの相対的な伝達を示す空間相関行列が含まれ、
前記逆行列計算手段は、
前記パラメータを更新する際に、前記ＳＩＭＤ命令により、前記空間相関行列の逆行列を更に計算する、
ことを特徴とする請求項１乃至５の何れか一項に記載の信号分離装置。
【請求項７】
前記アルゴリズムは、ＥＭアルゴリズム又はＭＵアルゴリズムである、ことを特徴とする請求項１乃至６の何れか一項に記載の信号分離装置。
【請求項８】
複数の目的信号が混合された観測信号を入力して、前記観測信号の外積を計算する外積計算手順と、
所定のアルゴリズムにより、前記外積を推定するためのモデルのパラメータを、前記外積の推定値を表す行列の逆行列を用いて更新するモデル計算手順と、
前記パラメータを更新する際に、ＳＩＭＤ命令により前記逆行列を計算する逆行列計算手順と、
前記外積の推定値を表す行列と、更新後の前記パラメータと、前記観測信号とを用いて、前記目的信号を計算する分離手順と、
をコンピュータが実行することを特徴とする信号分離方法。
【請求項９】
コンピュータを、請求項１乃至７の何れか一項に記載の信号分離装置における各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、信号分離装置、信号分離方法及びプログラムに関する。
【背景技術】
【０００２】
信号処理の分野に属する手法の１つとして、ブラインド信号分離と呼ばれる手法が知られている。ブラインド信号分離とは、源信号がどのように混合されているかという情報が無い状況で、複数のセンサで観測された混合信号から、目的となる源信号を分離する手法のことである。【０００３】
例えば、センサの数Ｍよりも多くの個数Ｎの信号源でも分離できる手法として、フルランク空間相関行列モデル（Full-rank Spatial Covariance Model）に基づく手法が知られている（非特許文献１参照）。以下、この手法について説明する。【０００４】
Ｍ個のセンサでの観測信号を周波数変換したものをまとめてベクトルで表現して、【０００５】
【数１】
2020100341.tif 000003
とする。また、観測信号が離散時間ｔ毎に観測されるものとして、離散時間ｔ（以降、単に「時間ｔ」とも表す。）におけるベクトルｘをｘｔとする。音響信号や無線通信信号を周波数変換して扱うために、ｘｔは複素ベクトルであると仮定する。このとき、ベクトルｘｔの外積を【０００６】
【数２】
2020100341.tif 000004
とする。ここで、Ｈは共役転置を表す。【０００７】
また、目的とする源信号（以降、「分離信号」と表す。）もベクトルで表現して、【０００８】
【数３】
2020100341.tif 000005
とする。ここで、このベクトルｙの各要素は、Ｍ個のセンサでそれぞれ観測される源信号である。このとき、ｎ番目の源信号の時間ｔにおける分離信号をｙｎｔとする。【０００９】
フルランク空間相関行列モデルでは、まず信号源の数Ｎを仮定し、上記の外積Ｘｔが、【００１０】
【数４】
2020100341.tif 000006
により近似される。ここで、Ａｎはｎ番目の信号源から各センサへの相対的な伝達を示す空間相関行列であり、ｖｎｔはｎ番目の信号源の時間ｔにおけるパワーである。また、ｖｎｔは非負値である。以降の本明細書のテキストでは、近似値（又は推定値）を表すハット「＾」を、便宜上、文字の頭上ではなく、文字の直前に記載する。例えば、Ｘｔの近似値（又は推定値）を「＾Ｘｔ」と表す。なお、Ａｎがエルミート行列であることを仮定しているため、＾Ｘｔもエルミート行列となる。【００１１】
観測信号ｘｔ（ｔ＝１，・・・，Ｔ）に対して上記の式（１）に示すフルランク空間相関行列モデルのパラメータＡｎ（ｎ＝１，・・・，Ｎ）及びｖｎｔ（ｎ＝１，・・・，Ｎ，ｔ＝１，・・・，Ｔ）を推定する方法として、ＥＭ（Expectation-Maximization）アルゴリズムに基づく方法が知られている。【００１２】
ＥＭアルゴリズムに基づく方法では、観測信号ｘｔが【００１３】
【数５】
2020100341.tif 000007
の形に分解され、かつ、外積Ｘｔの推定値＾Ｘｔが【００１４】
【数６】
2020100341.tif 000008
の形に分解されると仮定し、Ｅ−ｓｔｅｐではｙｎｔの外積の期待値【００１５】
【数７】
2020100341.tif 000009
を計算し、Ｍ−ｓｔｅｐではパラメータを【００１６】
【数８】
2020100341.tif 000010
に従い更新する。ここで、ｔｒは行列のトレース（すなわち、対角成分の和）を求める演算子である。【００１７】
ここで、例えば、上記の式（２）で行列＾Ｘｔの逆行列を計算する場合、単一の行列の逆行列を計算する組み込み関数ｉｎｖ（）を用いて、時間ｔ＝１からｔ＝Ｔまで逐次的に、【００１８】
【数９】
2020100341.tif 000011
を計算する。【００１９】
また、上記のＥＭアルゴリズムの他にも、ＭＵ（Multiplicative Update）アルゴリズムが知られている。ＭＵアルゴリズムのＶ−ｕｐｄａｔｅでは【００２０】
【数１０】
2020100341.tif 000012
に従ってｖｎｔを更新し、Ａ−ｕｐｄａｔｅでは以下の計算を順に行うことでＡｎを更新する。【００２１】
【数１１】
2020100341.tif 000013
ここで、ｃｈｏｌはコレスキー分解ＬＬＨ＝Ｇを行うことを表し、その結果Ｌは下三角行列となる。その後、【００２２】
【数１２】
2020100341.tif 000014
に従ってＡｎを更新する。ここで、上記の式（７）における【００２３】
【数１３】
2020100341.tif 000015
は行列の平方根の逆行列であり、固有値分解を用いて計算することができる。このＭＵアルゴリズムでも上記の式（５）及び式（６）で行列＾Ｘｔの逆行列を計算する。【００２４】
ＥＭアルゴリズム又はＭＵアルゴリズムによってフルランク空間相関行列モデルのパラメータＡｎ及びｖｎｔが推定されることで、＾Ｘｔ及び＾Ｙｎｔが得られる。これにより、ｎ＝１，・・・，Ｎ，ｔ＝１，・・・，Ｔに対して、分離信号ｙｎｔを、【００２５】
【数１４】
2020100341.tif 000016
で計算することができる。
【先行技術文献】
【非特許文献】
【００２６】
【非特許文献１】N. Q. K. Duong, E. Vincent, and R. Gribonval. "Under-determined reverberant audio source separation using a full-rank spatial covariance model." IEEE Transactions on Audio, Speech, and Language Processing 18.7 (2010): 1830-1840.
【発明の概要】
【発明が解決しようとする課題】
【００２７】
上記の従来技術では、Ｍ×Ｍの大きさを持つ行列＾Ｘｔ及びＡｎの逆行列を、上記の式（２）と式（３）又は上記の式（５）と式（６）で計算する。しかしながら、逆行列の計算は、スカラー値の逆数と比べてより多くの計算時間を要する。特に、行列＾Ｘｔの逆行列の計算は、離散時間ｔの数Ｔが大きくなると所要時間が支配的となる。【００２８】
また、音声等の広帯域信号を扱う場合には、複数の周波数での信号を同時に扱う必要がある。例えば、６秒の音声を８ｋＨｚサンプリングで長さ１２８ｍｓシフト３２ｍｓの分析窓で分析した場合、周波数ビンの数は５１３、離散時間ｔの数はＴ＝２０１となる。これは、例えば、上記の従来技術でＥＭアルゴリズムを用いてＥ−ｓｔｅｐ及びＭ−ｓｔｅｐを２０回繰り返す場合、行列＾Ｘｔの逆行列の計算回数は、５１３×２０１×２０＝２，０６２，２６０回となる。このため、例えば、この計算を一般的な計算機で行った場合、６秒の音声を処理するために１０秒以上の実行時間を要することがある。【００２９】
本発明は、上記の点に鑑みてなされたものであり、ブラインド信号分離における逆行列の計算に要する時間を削減することを目的とする。
【課題を解決するための手段】
【００３０】
上記目的を達成するため、本発明の実施の形態における信号分離装置は、複数の目的信号が混合された観測信号を入力して、前記観測信号の外積を計算する外積計算手段と、所定のアルゴリズムにより、前記外積を推定するためのモデルのパラメータを、前記外積の推定値を表す行列の逆行列を用いて更新するモデル計算手段と、前記パラメータを更新する際に、ＳＩＭＤ命令により前記逆行列を計算する逆行列計算手段と、前記外積の推定値を表す行列と、更新後の前記パラメータと、前記観測信号とを用いて、前記目的信号を計算する分離手段と、を有することを特徴とする。
【発明の効果】
【００３１】
ブラインド信号分離における逆行列の計算に要する時間を削減することができる。
【図面の簡単な説明】
【００３２】
【図１】本発明の実施の形態における信号分離装置の全体構成の一例を示す図である。
【図２】本発明の実施の形態における信号分離装置のハードウェア構成の一例を示す図である。
【図３】本発明の実施の形態における信号分離装置の機能構成（その１）の一例を示す図である。
【図４】本発明の実施の形態における信号分離装置の機能構成（その２）の一例を示す図である。
【図５】本発明の実施の形態における逆行列の計算処理（その１）の一例を示すフローチャートである。
【図６】本発明の実施の形態におけるＳＩＭＤ命令を利用した行列式の計算処理（その１）の一例を示すフローチャートである。
【図７】本発明の実施の形態におけるＳＩＭＤ命令を利用した行列式の計算処理（その２）の一例を示すフローチャートである。
【図８】本発明の実施の形態における逆行列の計算処理（その２）の一例を示すフローチャートである。
【図９】本発明の実施の形態における行列とベクトルとの積の計算処理の一例を示すフローチャートである。
【図１０】本発明の実施の形態における内積の計算処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００３３】
以下、本発明の実施の形態について説明する。本発明の実施の形態では、ブラインド信号分離における逆行列の計算に要する時間を削減可能な信号分離装置１０について説明する。なお、本発明の実施の形態では信号の種類は限定されない。信号の種類としては、例えば、音響信号（又は音声信号）や無線信号等がある。
【００３４】
＜逆行列の計算方法の概要＞
本発明の実施の形態における信号分離装置１０では、ＳＩＭＤ（Single Instruction Multiple Data）命令を利用することで、逆行列の計算を高速化し、逆行列の計算に要する時間を削減する。本発明の実施の形態では、逆行列の計算方法として、「逆行列の計算方法１」と「逆行列の計算方法２」の２つの方法について説明する。なお、このとき、本発明の実施の形態では、標準的な計算機やプログラミング言語・環境等に既に準備されている組み込み関数等を用いて逆行列を計算することはせずに、逆行列の計算方法に従ってその計算手順を設計する。
【００３５】
（逆行列の計算方法１）
まず、逆行列の計算方法１について説明する。Ｍ×Ｍの行列Ｑの逆行列Ｑ−１は、以下の式（９）に示すように、行列式ｄｅｔＱと、Adjugate  ａｄｊ（Ｑ）とを用いて計算することができる。なお、Adjugateは、随伴行列と称されることもあるが、その定義が異なる場合があるため、「Adjugate」と表すこととする。
【００３６】
【数１５】
2020100341.tif 000017
このとき、行列式ｄｅｔＱは、以下の「行列式の計算方法１」又は「行列式の計算方法２」により計算することができる。
【００３７】
・行列式の計算方法１
行列式ｄｅｔＱは、以下により再帰的に計算することができる。
【００３８】
【数１６】
2020100341.tif 000018
ここで、［Ｑ］ｍｋは行列Ｑの（ｍ，ｋ）要素のことである。また、
【００３９】
【数１７】
2020100341.tif 000019
を、行列Ｑのｍ行とｋ列とを削除してできる（Ｍ−１）×（Ｍ−１）行列と定義する。なお、１×１行列（すなわち、スカラー値）の行列式は、その唯一の要素の値そのものである。
【００４０】
Adjugate  ａｄｊ（Ｑ）は、余因子行列Ｃの転置
【００４１】
【数１８】
2020100341.tif 000020
であり、行列Ｑの余因子行列Ｃは、その（ｍ，ｋ）要素が
【００４２】
【数１９】
2020100341.tif 000021
となるＭ×Ｍ行列である。
【００４３】
・行列式の計算方法２
ｑを実数のスカラー、
【００４４】
【数２０】
2020100341.tif 000022
をＭ−１次元の複素ベクトル、
【００４５】
【数２１】
2020100341.tif 000023
を（Ｍ−１）×（Ｍ−１）のエルミート行列とした場合、これらによって構成される以下の式（１０）の左辺の行列式は、ブロック行列の行列式の定理により以下の式（１０）の右辺で計算することができる。
【００４６】
【数２２】
2020100341.tif 000024
ここで、
【００４７】
【数２３】
2020100341.tif 000025
である。
【００４８】
（逆行列の計算方法２）
次に、逆行列の計算方法２について説明する。各記号の定義を「逆行列の計算方法１」における「行列式の計算方法２」と同様とする。このとき、ブロック行列の行列式の定理により、逆行列は、以下の式（１１）で計算することができる。
【００４９】
【数２４】
2020100341.tif 000026
【００５０】
本発明の実施の形態では、行列の逆行列の計算にＳＩＭＤ命令を利用するために、複数の行列をまとめたデータ構造を用いる。例えば、行列＾Ｘｔの逆行列を計算する場合、Ｍ×Ｍ行列＾ＸｔをＴ個（つまり、ｔ＝１，・・・，Ｔとして、＾Ｘ１，・・・，＾ＸＴ）並べて、大きさＭ×Ｍ×Ｔのテンソル
【００５１】
【数２５】
2020100341.tif 000027
を構成する。上記の式（２）や式（５）、式（６）で行列＾Ｘｔの逆行列を計算する際に、このテンソルを用いて、ＳＩＭＤ命令により効率的に逆行列を計算する。
【００５２】
また、行列Ａｎについても、行列＾Ｘｔと同様の方法で逆行列を計算する。この場合、上記と同様に、ＳＩＭＤ命令を利用するためのデータ構造として、Ｍ×Ｍ行列ＡｎをＮ個（つまり、ｎ＝１，・・・，Ｎとして、Ａ１，・・・，ＡＮ）並べて、大きさＭ×Ｍ×Ｎのテンソルを構成する。上記の式（３）で行列Ａｎの逆行列を計算する際に、このテンソルを用いて、ＳＩＭＤ命令により効率的に逆行列を計算する。
【００５３】
これにより、本発明の実施の形態における信号分離装置１０は、行列の逆行列の計算を高速化させることができ、結果として逆行列の計算に要する時間を削減することができる。
【００５４】
＜全体構成＞
まず、本発明の実施の形態における信号分離装置１０の全体構成について、図１を参照しながら説明する。図１は、本発明の実施の形態における信号分離装置１０の全体構成の一例を示す図である。
【００５５】
図１に示すように、本発明の実施の形態における信号分離装置１０には、観測信号ｘｔを入力して、ＥＭアルゴリズム又はＭＵアルゴリズムを用いて分離信号ｙ１ｔ，・・・，ｙＮｔを出力する信号分離プログラム１００がインストールされている。このとき、信号分離プログラム１００は、観測信号ｘｔから分離信号ｙ１ｔ，・・・，ｙＮｔを得る際に、ＳＩＭＤ命令を利用して行列＾Ｘｔの逆行列を計算する。
【００５６】
なお、信号分離プログラム１００は、１つのプログラムで構成されていてもよいし、複数のプログラム（又はプログラムモジュール）で構成されていてもよい。また、分離信号ｙ１ｔ，・・・，ｙＮｔの出力先は任意である。例えば、分離信号ｙ１ｔ，・・・，ｙＮｔは、他のプログラムや他の装置等に出力されてもよいし、後述する補助記憶装置１８等に出力されてもよい。
【００５７】
＜ハードウェア構成＞
次に、本発明の実施の形態における信号分離装置１０のハードウェア構成について、図２を参照しながら説明する。図２は、本発明の実施の形態における信号分離装置１０のハードウェア構成の一例を示す図である。
【００５８】
図２に示すように、本発明の実施の形態における信号分離装置１０は、入力装置１１と、表示装置１２と、外部Ｉ／Ｆ１３と、ＲＡＭ（Random Access Memory）１４と、ＲＯＭ（Read Only Memory）１５と、プロセッサ１６と、通信Ｉ／Ｆ１７と、補助記憶装置１８とを有する。これら各ハードウェアは、それぞれがバス１９を介して通信可能に接続されている。
【００５９】
入力装置１１は、例えばキーボードやマウス、タッチパネル等であり、ユーザが各種操作を入力するのに用いられる。表示装置１２は、例えばディスプレイ等であり、信号分離装置１０の処理結果を表示する。なお、信号分離装置１０は、入力装置１１及び表示装置１２のうちの少なくとも一方を有していなくてもよい。
【００６０】
外部Ｉ／Ｆ１３は、外部装置とのインタフェースである。外部装置には、記録媒体１３ａ等がある。信号分離装置１０は、外部Ｉ／Ｆ１３を介して、記録媒体１３ａの読み取りや書き込み等を行うことができる。記録媒体１３ａには、信号分離プログラム１００等が記録されていてもよい。
【００６１】
記録媒体１３ａには、例えば、フレキシブルディスク、ＣＤ（Compact Disc）、ＤＶＤ（Digital Versatile Disk）、ＳＤメモリカード（Secure Digital memory card）、ＵＳＢ（Universal Serial Bus）メモリカード等がある。
【００６２】
ＲＡＭ１４は、プログラムやデータを一時保持する揮発性の半導体メモリである。ＲＯＭ１５は、電源を切ってもプログラムやデータを保持することができる不揮発性の半導体メモリである。ＲＯＭ１５には、例えば、ＯＳ（Operating System）に関する設定情報や通信ネットワークに関する設定情報等が格納されている。
【００６３】
プロセッサ１６は、例えばＣＰＵ（Central Processing Unit）やＧＰＵ（Graphics Processing Unit）等であり、ＲＯＭ１５や補助記憶装置１８等からプログラムやデータをＲＡＭ１４上に読み出して処理を実行する演算装置である。本発明の実施の形態では、プロセッサ１６は、ＳＩＭＤ命令よる並列処理が実行可能であるものとする。なお、信号分離装置１０は、プロセッサ１６としてＣＰＵとＧＰＵとの両方を有していてもよいし、ＣＰＵ又はＧＰＵのいずれか一方のみを有していてもよい。
【００６４】
通信Ｉ／Ｆ１７は、信号分離装置１０を通信ネットワークに接続するためのインタフェースである。信号分離プログラム１００は、通信Ｉ／Ｆ１７を介して、所定のサーバ装置等から取得（ダウンロード）されてもよい。
【００６５】
補助記憶装置１８は、例えばＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）等であり、プログラムやデータを格納している不揮発性の記憶装置である。補助記憶装置１８に格納されているプログラムやデータには、例えば、ＯＳ、各種アプリケーションプログラム、信号分離プログラム１００等がある。
【００６６】
本発明の実施の形態における信号分離装置１０は、図２に示すハードウェア構成を有することにより、各種処理を実現することができる。なお、図２に示す例では、本発明の実施の形態における信号分離装置１０が１台の装置（コンピュータ）で実現される場合について説明したが、これに限られない。本発明の実施の形態における信号分離装置１０は、複数台の装置（コンピュータ）で実現されていてもよい。また、本発明の実施の形態における信号分離装置１０は、複数のプロセッサ１６や複数のメモリ（ＲＡＭ１４、ＲＯＭ１５、補助記憶装置１８等）を備える装置（コンピュータ）で実現されていてもよい。
【００６７】
＜機能構成＞
次に、本発明の実施の形態における信号分離装置１０の機能構成について説明する。
【００６８】
（ＥＭアルゴリズムを用いる場合の機能構成）
以降では、上記の式（１）に示すフルランク空間相関行列モデルのパラメータＡｎ（ｎ＝１，・・・，Ｎ）及びｖｎｔ（ｎ＝１，・・・，Ｎ，ｔ＝１，・・・，Ｔ）の推定にＥＭアルゴリズムを用いる場合の機能構成について、図３を参照しながら説明する。図３は、本発明の実施の形態における信号分離装置１０の機能構成（その１）の一例を示す図である。
【００６９】
図３に示すように、ＥＭアルゴリズムを用いる場合における信号分離装置１０は、外積計算部１０１と、モデル式計算部１０２と、分離信号計算部１０３と、Ｅ−ｓｔｅｐ部１０４と、Ｍ−ｓｔｅｐ部１０５とを有する。これら各部は、信号分離プログラム１００がプロセッサ１６に実行させる処理により実現される。
【００７０】
外積計算部１０１は、観測信号ｘｔを入力して、外積Ｘｔを計算する。モデル式計算部１０２は、ＥＭアルゴリズムにより上記の式（１）に示すフルランク空間相関行列モデルを計算する。すなわち、モデル式計算部１０２は、ＥＭアルゴリズムにより上記の式（１）に示すフルランク空間相関行列モデルのパラメータＡｎ及びｖｎｔを推定することで、＾Ｘｔ及び＾Ｙｎｔを計算する。
【００７１】
分離信号計算部１０３は、＾Ｙｎｔと、＾Ｘｔの逆行列と、観測信号ｘｔとを用いて、上記の式（８）により分離信号ｙｎｔを計算する。
【００７２】
Ｅ−ｓｔｅｐ部１０４は、ＥＭアルゴリズムのＥ−ｓｔｅｐを実行する。すなわち、Ｅ−ｓｔｅｐ部１０４は、上記の式（２）を計算する。
【００７３】
Ｍ−ｓｔｅｐ部１０５は、ＥＭアルゴリズムのＭ−ｓｔｅｐを実行する。すなわち、Ｍ−ｓｔｅｐ部１０５は、上記の式（３）及び式（４）によりパラメータＡｎ及びｖｎｔを更新する。
【００７４】
ここで、Ｅ−ｓｔｅｐ部１０４及びＭ−ｓｔｅｐ部１０５には、逆行列計算部１１０が含まれる。逆行列計算部１１０は、ＳＩＭＤ命令を利用して行列の逆行列を計算する。すなわち、Ｅ−ｓｔｅｐ部１０４に含まれる逆行列計算部１１０は、上記の式（２）を計算する際に、行列＾Ｘｔの逆行列を計算する。同様に、Ｍ−ｓｔｅｐ部１０５に含まれる逆行列計算部１１０は、上記の式（３）によりパラメータｖｎｔを更新する際に、行列Ａｎの逆行列を計算する。
【００７５】
（ＭＵアルゴリズムを用いる場合の機能構成）
以降では、上記の式（１）に示すフルランク空間相関行列モデルのパラメータＡｎ（ｎ＝１，・・・，Ｎ）及びｖｎｔ（ｎ＝１，・・・，Ｎ，ｔ＝１，・・・，Ｔ）の推定にＭＵアルゴリズムを用いる場合の機能構成について、図４を参照しながら説明する。図４は、本発明の実施の形態における信号分離装置１０の機能構成（その２）の一例を示す図である。
【００７６】
図４に示すように、ＭＵアルゴリズムを用いる場合における信号分離装置１０は、外積計算部１０１と、モデル式計算部１０２と、分離信号計算部１０３と、Ｖ−ｕｐｄａｔｅ部１０６と、Ａ−ｕｐｄａｔｅ部１０７とを有する。これら各部は、信号分離プログラム１００がプロセッサ１６に実行させる処理により実現される。
【００７７】
外積計算部１０１は、観測信号ｘｔを入力して、外積Ｘｔを計算する。モデル式計算部１０２は、ＭＵアルゴリズムにより上記の式（１）に示すフルランク空間相関行列モデルを計算する。すなわち、モデル式計算部１０２は、ＥＭアルゴリズムにより上記の式（１）に示すフルランク空間相関行列モデルのパラメータＡｎ及びｖｎｔを推定することで、＾Ｘｔ及び＾Ｙｎｔを計算する。
【００７８】
分離信号計算部１０３は、＾Ｙｎｔと、＾Ｘｔの逆行列と、観測信号ｘｔとを用いて、上記の式（８）により分離信号ｙｎｔを計算する。
【００７９】
Ｖ−ｕｐｄａｔｅ部１０６は、ＭＵアルゴリズムのＶ−ｕｐｄａｔｅを実行する。すなわち、Ｖ−ｕｐｄａｔｅ部１０６は、上記の式（５）によりパラメータｖｎｔを更新する。
【００８０】
Ａ−ｕｐｄａｔｅ部１０７は、ＭＵアルゴリズムのＡ−ｕｐｄａｔｅを実行する。すなわち、Ａ−ｕｐｄａｔｅ部１０７は、上記の式（６）を計算した後、上記の式（７）を計算することで、パラメータＡｎを更新する。
【００８１】
ここで、Ｖ−ｕｐｄａｔｅ部１０６及びＡ−ｕｐｄａｔｅ部１０７には、逆行列計算部１１０が含まれる。逆行列計算部１１０は、ＳＩＭＤ命令を利用して行列の逆行列を計算する。すなわち、Ｖ−ｕｐｄａｔｅ部１０６に含まれる逆行列計算部１１０は、上記の式（５）によりパラメータｖｎｔを更新する際に、行列＾Ｘｔの逆行列を計算する。同様に、Ａ−ｕｐｄａｔｅ部１０７に含まれる逆行列計算部１１０は、上記の式（６）を計算する際に、行列＾Ｘｔの逆行列を計算する。
【００８２】
＜処理の詳細＞
以降では、ブラインド信号分離をＥＭアルゴリズム又はＭＵアルゴリズムにより実現する場合に、ＳＩＭＤ命令により効率的に逆行列を計算する処理について説明する。本発明の実施の形態では、一例として、行列＾Ｘｔの逆行列を計算する場合について説明する。なお、行列Ａｎの逆行列を計算する場合は、以降の説明において、ｔをｎ、ＴをＮ、＾ＸｔをＡｎと読み替えればよい。
【００８３】
（逆行列の計算方法１による逆行列の計算処理）
逆行列の計算方法１により逆行列を計算する処理について、図５を参照しながら説明する。図５は、本発明の実施の形態における逆行列の計算処理（その１）の一例を示すフローチャートである。
【００８４】
図５では、＾ＸｔをＴ個並べたＭ×Ｍ×Ｔのテンソル
【００８５】
【数２６】
2020100341.tif 000028
が入力されたものとする。また、逆行列の計算処理の処理結果を、
【００８６】
【数２７】
2020100341.tif 000029
とする。すなわち、逆行列の計算処理では、処理結果として、＾Ｘｔの逆行列をＴ個並べたＭ×Ｍ×Ｔのテンソルが出力される。
【００８７】
ここで、以降では、テンソル同士の和、積、商（＋，・，／）は、テンソルの要素毎（element-wise）の和、積、商の計算を意味するものとする。また、テンソル同士の大きさが一致しない場合は、必要に応じてブロードキャストが行われるものとする。例えば、Ｍ×Ｍ×Ｔのテンソルと１×１×Ｔのテンソルとの演算（和、積又は商）を行う場合、１×１×Ｔのテンソルは、Ｍ×Ｍ×Ｔのテンソルにブロードキャストされた上で、当該演算が行われる。このとき、これらのテンソル同士の演算は、ＳＩＭＤ命令により要素毎に並列的に実行される。これにより、逆行列を効率的に計算（特に、逆行列を計算するための行列式を効率的に計算）することができる。
【００８８】
逆行列計算部１１０は、ｍ＝１からｍ＝Ｍまで、ステップＳ１０２を繰り返し実行する（ステップＳ１０１）。また、逆行列計算部１１０は、ｋ＝１からｋ＝Ｍまで、ステップＳ１０３を繰り返し実行する（ステップＳ１０２）。
【００８９】
ステップＳ１０３では、逆行列計算部１１０は、
【００９０】
【数２８】
2020100341.tif 000030
を計算する。ここで、
【００９１】
【数２９】
2020100341.tif 000031
は、行列＾Ｘｔのｍ行目及びｋ列目を削除してできる（Ｍ−１）×（Ｍ−１）行列をＴ個並べたテンソルである。また、
【００９２】
【数３０】
2020100341.tif 000032
は、１×１×Ｔのテンソルのスライスであり、逆行列＾Ｘｔ−１の（ｍ，ｋ）要素がＴ個並んだものである。
【００９３】
ここで、ＳＩＭＤＤＥＴ（・）はＳＩＭＤ命令により行列式を計算する関数又はメソッドであり、図６に示すＳＩＭＤ命令を利用した行列式の計算処理（又は図７に示すＳＩＭＤ命令を利用した行列式の計算処理）を呼び出して、実行することを意味する。このＳＩＭＤＤＥＴの出力結果は１×１×Ｔのテンソルである。ＳＩＭＤ命令を利用した行列式の計算処理については後述する。
【００９４】
上記のステップＳ１０１の繰り返しと、上記のステップＳ１０２の繰り返しとにより、上記のステップＳ１０３は、ｍ＝１，・・・，Ｍ及びｋ＝１，・・・，Ｍに対して実行される。
【００９５】
上記のステップＳ１０１の繰り返しが終了した場合、逆行列計算部１１０は、
【００９６】
【数３１】
2020100341.tif 000033
を計算する（ステップＳ１０４）。そして、逆行列計算部１１０は、
【００９７】
【数３２】
2020100341.tif 000034
を出力する（ステップＳ１０５）。これにより、逆行列の計算処理の処理結果として、逆行列＾Ｘｔ−１をＴ個並べたＭ×Ｍ×Ｔのテンソルが出力される。
【００９８】
（ＳＩＭＤ命令を利用した行列式の計算処理（行列式の計算方法１））
ここで、上記のステップＳ１０３及びステップＳ１０４のＳＩＭＤＤＥＴ（・）で呼び出される処理として、ＳＩＭＤ命令を利用して、行列式の計算方法１により行列式を計算する場合について、図６を参照しながら説明する。図６は、本発明の実施の形態におけるＳＩＭＤ命令を利用した行列式の計算処理（その１）の一例を示すフローチャートである。上述したように、この処理は、ＳＩＭＤＤＥＴ（・）により呼び出される。ここで、図６では、ＳＩＭＤＤＥＴ（・）の引数として指定されているテンソル（つまり、行列式の計算処理の入力となるテンソル）の大きさをＭ´×Ｍ´×Ｔとする。また、図６では、
【００９９】
【数３３】
2020100341.tif 000035
は、大きさ１×１×Ｔのテンソルのスライスであり、行列＾Ｘｔの（ｍ，ｋ）要素がＴ個並んだものである。
【０１００】
まず、逆行列計算部１１０は、Ｍ´＝１であるか否かを判定する（ステップＳ２０１）。Ｍ´＝１でない場合、逆行列計算部１１０は、１×１×Ｔのテンソルｄの各要素を０に初期化する（ステップＳ２０２）。次に、逆行列計算部１１０は、ｍ＝１からｍ＝Ｍ´まで、ステップＳ２０４を繰り返し実行する（ステップＳ２０３）。
【０１０１】
ステップＳ２０４では、逆行列計算部１１０は、
【０１０２】
【数３４】
2020100341.tif 000036
を計算する（ステップＳ２０４）。すなわち、逆行列計算部１１０は、ＳＩＭＤＤＥＴ（・）に入力されるテンソルを構成する行列＾Ｘｔの大きさ（行数及び列数）を１つずつ小さくしながら再帰的にＳＩＭＤＤＥＴ（・）を実行することで、ｄを更新する。
【０１０３】
上記のステップＳ２０３の繰り返しが終了した場合、逆行列計算部１１０は、ｄ（つまり、行列式の計算結果）を出力する（ステップＳ２０５）。
【０１０４】
上記のステップＳ２０１でＭ´＝１である場合、逆行列計算部１１０は、
【０１０５】
【数３５】
2020100341.tif 000037
を出力する（ステップＳ２０６）。
【０１０６】
このように、図６に示すＳＩＭＤ命令を利用した行列式の計算処理は、入力されるテンソルを構成する行列＾Ｘｔの大きさを１つずつ小さくしながら、Ｍ´＝１となるまで再帰的に実行される。なお、本発明の実施の形態では、Ｍ´＝１となるまで再帰的に実行するものとしたが、より高速化を実現するため、例えば、Ｍ´＝２となるまで再帰的に実行してもよい。この場合、Ｍ´＝２における処理結果を、
【０１０７】
【数３６】
2020100341.tif 000038
とすればよい。
【０１０８】
（ＳＩＭＤ命令を利用した行列式の計算処理（行列式の計算方法２））
次に、上記のステップＳ１０３及びステップＳ１０４のＳＩＭＤＤＥＴ（・）で呼び出される処理として、ＳＩＭＤ命令を利用して、行列式の計算方法２により行列式を計算する場合について、図７を参照しながら説明する。図７は、本発明の実施の形態におけるＳＩＭＤ命令を利用した行列式の計算処理（その２）の一例を示すフローチャートである。上述したように、この処理は、ＳＩＭＤＤＥＴ（・）により呼び出される。ここで、図７では、ＳＩＭＤＤＥＴ（・）の引数として指定されているテンソル（つまり、行列式の計算処理の入力となるテンソル）の大きさをＭ´×Ｍ´×Ｔとする。また、図６では、
【０１０９】
【数３７】
2020100341.tif 000039
は大きさ（Ｍ−１）×１×Ｔのテンソルのスライスであり、
【０１１０】
【数３８】
2020100341.tif 000040
は大きさ１×（Ｍ−１）×Ｔのテンソルのスライスである。
【０１１１】
まず、逆行列計算部１１０は、Ｍ´＝１であるか否かを判定する（ステップＳ３０１）。Ｍ´＝１でない場合、逆行列計算部１１０は、
【０１１２】
【数３９】
2020100341.tif 000041
を計算する（ステップＳ３０２）。
【０１１３】
次に、逆行列計算部１１０は、
【０１１４】
【数４０】
2020100341.tif 000042
を計算する（ステップＳ３０３）。すなわち、逆行列計算部１１０は、上記のステップＳ３０２で得られた
【０１１５】
【数４１】
2020100341.tif 000043
を引数としてＳＩＭＤＤＥＴ（・）を再帰的に実行（つまり、図７に示すＳＩＭＤ命令を利用した行列式の計算処理を再帰的に実行）することで、ｄを計算する。
【０１１６】
そして、逆行列計算部１１０は、ｄを出力する（ステップＳ３０４）。一方で、上記のステップＳ３０１でＭ´＝１である場合、逆行列計算部１１０は、
【０１１７】
【数４２】
2020100341.tif 000044
を出力する（ステップＳ３０５）。
【０１１８】
このように、図７に示すＳＩＭＤ命令を利用した行列式の計算処理も、入力されるテンソルを構成する行列＾Ｘｔの大きさを１つずつ小さくしながら、Ｍ´＝１となるまで再帰的に実行される。なお、本発明の実施の形態では、Ｍ´＝１となるまで再帰的に実行するものとしたが、図６に示すＳＩＭＤ命令を利用した行列式の計算処理と同様に、より高速化を実現するため、例えば、Ｍ´＝２となるまで再帰的に実行してもよい。
【０１１９】
なお、逆行列の計算方法１による逆行列の計算処理において、行列式を計算するための関数又はメソッドＳＩＭＤＤＥＴ（・）として、図６に示すＳＩＭＤ命令を利用した行列式の計算処理又は図７に示すＳＩＭＤ命令を利用した行列式の計算処理のいずれを採用するかは、例えば、行列のサイズ等に応じて適宜選択することが可能である。
【０１２０】
（逆行列の計算方法２による逆行列の計算処理）
次に、逆行列の計算方法２により逆行列を計算する処理について、図８を参照しながら説明する。図８は、本発明の実施の形態における逆行列の計算処理（その２）の一例を示すフローチャートである。なお、図８に示す逆行列の計算処理では、図５に示す逆行列の計算処理とは異なり、行列式の計算は行わない。代わりに、図８に示す逆行列の計算処理では、ＳＩＭＤ命令により行列とベクトルとの積を計算をすると共に、ＳＩＭＤ命令により内積を計算する。これにより、逆行列を効率的に計算することができる。
【０１２１】
図８では、図５と同様に、＾ＸｔをＴ個並べたＭ×Ｍ×Ｔのテンソルが入力されたものとする。また、図８に示す逆行列の計算処理を呼び出す関数又はメソッドをＳＩＭＤＭＡＴＲＩＸＩＮＶＥＲＳＥ（・）とする。
【０１２２】
以降では、「逆行列の計算方法１による逆行列の計算処理」と同様に、テンソル同士の和、積、商（＋，・，／）は、テンソルの要素毎（element-wise）の和、積、商の計算を意味するものとする。また、テンソル同士の大きさが一致しない場合は、必要に応じてブロードキャストが行われるものとする。このとき、これらのテンソル同士の演算は、ＳＩＭＤ命令により要素毎に並列的に実行される。これにより、逆行列を効率的に計算（特に、逆行列を計算するための行列とベクトルとの積や内積を効率的に計算）することができる。
【０１２３】
まず、逆行列計算部１１０は、Ｍ＝１であるか否かを判定する（ステップＳ４０１）。Ｍ＝１でない場合、逆行列計算部１１０は、
【０１２４】
【数４３】
2020100341.tif 000045
を計算する（ステップＳ４０２）。
【０１２５】
次に、逆行列計算部１１０は、
【０１２６】
【数４４】
2020100341.tif 000046
を計算する（ステップＳ４０３）。すなわち、逆行列計算部１１０は、上記のステップＳ４０２で得られた
【０１２７】
【数４５】
2020100341.tif 000047
を引数としてＳＩＭＤＭＡＴＲＩＸＩＮＶＥＲＳＥ（・）を再帰的に実行（つまり、図９に示す逆行列の計算処理を再帰的に実行）する。
【０１２８】
次に、逆行列計算部１１０は、
【０１２９】
【数４６】
2020100341.tif 000048
を計算する（ステップＳ４０４）。
【０１３０】
ここで、ＳＩＭＤＭＡＴＲＩＸＶＥＣＴＯＲＭＵＬＴ（・，・）はＳＩＭＤ命令により行列とベクトルとの積を計算する関数又はメソッドであり、図９に示す行列とベクトルとの積の計算処理を呼び出して、実行することを意味する。行列とベクトルとの積の計算処理については後述する。
【０１３１】
次に、逆行列計算部１１０は、
【０１３２】
【数４７】
2020100341.tif 000049
を計算する（ステップＳ４０５）。
【０１３３】
次に、逆行列計算部１１０は、
【０１３４】
【数４８】
2020100341.tif 000050
を計算する（ステップＳ４０６）。
【０１３５】
ここで、ＳＩＭＤＩＮＮＥＲＰＲＯＤＵＣＴ（・，・）はＳＩＭＤ命令により内積を計算する関数又はメソッドであり、図１０に示す内積の計算処理を呼び出して、実行することを意味する。内積の計算処理については後述する。
【０１３６】
一方で、上記のステップＳ４０１でＭ＝１である場合、逆行列計算部１１０は、
【０１３７】
【数４９】
2020100341.tif 000051
を計算する（ステップＳ４０７）。
【０１３８】
そして、ステップＳ４０６又はステップＳ４０７に続いて、逆行列計算部１１０は、
【０１３９】
【数５０】
2020100341.tif 000052
を出力する（ステップＳ４０８）。これにより、逆行列の計算処理の処理結果として、逆行列＾Ｘｔ−１をＴ個並べたＭ×Ｍ×Ｔのテンソルが出力される。
【０１４０】
（ＳＩＭＤ命令を利用した行列とベクトルとの積の計算処理）
次に、上記のステップＳ４０４のＳＩＭＤＭＡＴＲＩＸＶＥＣＴＯＲＭＵＬＴ（・，・）で呼び出される処理として、ＳＩＭＤ命令を利用して、行列とベクトルとの積を計算する場合について、図９を参照しながら説明する。図９は、本発明の実施の形態における行列とベクトルとの積の計算処理の一例を示すフローチャートである。上述したように、この処理は、ＳＩＭＤＭＡＴＲＩＸＶＥＣＴＯＲＭＵＬＴ（・，・）により呼び出される。ここで、図９では、
【０１４１】
【数５１】
2020100341.tif 000053
として、
【０１４２】
【数５２】
2020100341.tif 000054
が呼び出された場合について説明する。
【０１４３】
まず、逆行列計算部１１０は、
【０１４４】
【数５３】
2020100341.tif 000055
として、Ｍ×１×Ｔのテンソルの各要素を０に初期化する（ステップＳ５０１）。
【０１４５】
次に、逆行列計算部１１０は、ｍ＝１からｍ＝Ｍまで、ステップＳ５０３を繰り返し実行する（ステップＳ５０２）。
【０１４６】
ステップＳ５０３では、逆行列計算部１１０は、
【０１４７】
【数５４】
2020100341.tif 000056
を計算する。ここで、
【０１４８】
【数５５】
2020100341.tif 000057
はＭ×１×Ｔのテンソルであり、
【０１４９】
【数５６】
2020100341.tif 000058
は１×１×Ｔのテンソルである。したがって、
【０１５０】
【数５７】
2020100341.tif 000059
はＭ×１×Ｔのテンソルとなる。
【０１５１】
そして、逆行列計算部１１０は、
【０１５２】
【数５８】
2020100341.tif 000060
を出力する（ステップＳ５０４）。
【０１５３】
（ＳＩＭＤ命令を利用した内積の計算処理）
次に、上記のステップＳ４０６のＳＩＭＤＩＮＮＥＲＰＲＯＤＵＣＴ（・，・）で呼び出される処理として、ＳＩＭＤ命令を利用して、内積を計算する場合について、図１０を参照しながら説明する。図１０は、本発明の実施の形態における内積の計算処理の一例を示すフローチャートである。上述したように、この処理は、ＳＩＭＤＩＮＮＥＲＰＲＯＤＵＣＴ（・，・）により呼び出される。ここで、図１０では、
【０１５４】
【数５９】
2020100341.tif 000061
として、
【０１５５】
【数６０】
2020100341.tif 000062
が呼び出された場合について説明する。
【０１５６】
まず、逆行列計算部１１０は、１×１×Ｔのテンソルｄの各要素を０に初期化する（ステップＳ６０１）。
【０１５７】
次に、逆行列計算部１１０は、ｍ＝１からｍ＝Ｍまで、ステップＳ６０３を繰り返し実行する（ステップＳ６０２）。
【０１５８】
ステップＳ６０３では、逆行列計算部１１０は、
【０１５９】
【数６１】
2020100341.tif 000063
を計算する。
【０１６０】
そして、逆行列計算部１１０は、ｄを出力する（ステップＳ６０４）。
【０１６１】
＜本発明の実施の形態の効果＞
最後に、本発明の実施の形態の効果を示すために、空間で混合された音（音声信号）を分離する実験を行った。源信号として４つの音声、センサとして２個から５個のマイクロホンを用いて、６秒間すべての音声が喋っている混合音を観測信号とした。
【０１６２】
このとき、ＳＩＭＤ命令を用いずに従来手法により逆行列を計算した場合を「ＣＰＵ（従来）」、ＣＰＵのＳＩＭＤ命令を用いて逆行列の計算方法１により逆行列を計算した場合を「ＣＰＵ（ＳＩＭＤ１）」、ＣＰＵのＳＩＭＤ命令を用いて逆行列の計算方法２により逆行列を計算した場合を「ＣＰＵ（ＳＩＭＤ２）」、ＣＰＵだけでなくＧＰＵも用いて逆行列の計算方法１により逆行列を計算した場合を「ＧＰＵ（ＳＩＭＤ１）」、ＣＰＵだけでなくＧＰＵも用いて逆行列の計算方法２により逆行列を計算した場合を「ＧＰＵ（ＳＩＭＤ２）」として、ＥＭアルゴリズムの繰り返しに要した実行時間（秒）を以下の表１に示す。なお、ＣＰＵ及びＧＰＵは、それぞれ同一のＣＰＵ及びＧＰＵを用いている。
【０１６３】
【表１】
2020100341.tif 000064
表１に示すように、ＣＰＵ（従来）では２０回繰り返しに要した時間は３３．９（秒）、１００回繰り返しに要した時間は１６５．４（秒）であるのに対して、ＣＰＵ（ＳＩＭＤ１）では２０回繰り返しに要した時間は１９．５（秒）、１００回繰り返しに要した時間は９３．０（秒）、ＣＰＵ（ＳＩＭＤ２）では２０回繰り返しに要した時間は１８．３（秒）、１００回繰り返しに要した時間は８８．９（秒）であり、実行時間を削減できていることがわかる。また、ＧＰＵ（ＳＩＭＤ１）では２０回繰り返しに要した時間は３．２（秒）、１００回繰り返しに要した時間は７．５（秒）、ＧＰＵ（ＳＩＭＤ２）では２０回繰り返しに要した時間は４．２（秒）、１００回繰り返しに要した時間は７．２（秒）であり、更に実行時間を削減できていることがわかる。
【０１６４】
なお、音声分離性能を示すＳＤＲ（Signal-to-Distortion Ratio）を計測すると、ＣＰＵ（従来）、ＣＰＵ（ＳＩＭＤ１）及びＧＰＵ（ＳＩＭＤ１）のいずれも２０回繰り返しの場合は８．０３ｄＢ、１００回繰り返しの場合は１０．３６ｄＢであった。
【０１６５】
また、センサの数Ｍを２から５まで変化させた場合の実行時間を以下の表２に示す。
【０１６６】
【表２】
2020100341.tif 000065
逆行列の計算方法１では特にＣＰＵの場合（つまり、ＣＰＵ（ＳＩＭＤ１））に実行時間が増加し、Ｍ＝５の場合にはＣＰＵ（従来）よりも多くの実行時間を要した。これに対して、逆行列の計算方法２ではＭの増加に伴う実行時間の増加が抑えられている。なお、逆行列の計算方法１及び逆行列の計算方法２のいずれも、ＧＰＵを用いた場合には大幅な高速化が達成された。
【０１６７】
このように、本発明の実施の形態によれば、従来技術と比較して実行時間を大幅に削減することができ、現実的な分離性能の向上にも繋がっていることがわかる。
【０１６８】
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、請求の範囲の記載から逸脱することなく、種々の変形や変更が可能である。
【０１６９】
本願は、日本国に２０１８年１１月１２日に出願された基礎出願２０１８−２１２４０８号に基づくものであり、その全内容はここに参照をもって援用される。
【符号の説明】
【０１７０】
１０        信号分離装置
１００      信号分離プログラム
１０１      外積計算部
１０２      モデル式計算部
１０３      分離信号計算部
１０４      Ｅ−ｓｔｅｐ部
１０５      Ｍ−ｓｔｅｐ部
１０６      Ｖ−ｕｐｄａｔｅ部
１０７      Ａ−ｕｐｄａｔｅ部
１１０      逆行列計算部
【図１】
2020100341.tif 000066
【図２】
2020100341.tif 000067
【図３】
2020100341.tif 000068
【図４】
2020100341.tif 000069
【図５】
2020100341.tif 000070
【図６】
2020100341.tif 000071
【図７】
2020100341.tif 000072
【図８】
2020100341.tif 000073
【図９】
2020100341.tif 000074
【図１０】
2020100341.tif 000075
【国際調査報告】
2020100341.tif 000076
2020100341.tif 000077
2020100341.tif 000078
2020100341.tif 000079