ドキュメンテーション センター

  • 評価版
  • 製品アップデート

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

pmusic

MUSIC アルゴリズムを使用した疑似スペクトル

構文

[S,w] = pmusic(x,p)
[S,w] = pmusic(x,p,w)
[S,w] = pmusic(...,nfft)
[S,f] = pmusic(x,p,nfft,fs)
[S,f] = pmusic(x,p,f,fs)
[S,f] = pmusic(...,'corr')
[S,f] = pmusic(x,p,nfft,fs,nwin,noverlap)
[...] = pmusic(...,freqrange)
[...,v,e] = pmusic(...)
pmusic(...)

説明

[S,w] = pmusic(x,p) では、多重信号分類 (MUSIC) アルゴリズムが実装され、入力信号 x の疑似スペクトル推定 S と、疑似スペクトルを推定した点の正規化された周波数 (ラジアン/サンプル単位) のベクトル w が返されます。疑似スペクトルは、入力データ x に関連した相関行列の固有ベクトルを使用して計算されます。x は、以下のいずれかとして指定できます。

  • 信号の 1 つの観測を表す行、または列ベクトル

  • x'*x が相関行列の推定となるような、x の各行が信号の個別の観測を表す四角形配列。たとえばこの配列の各行が、配列処理の場合と同様に、センサーの配列の 1 つの出力である場合などです。

    メモ:   関数 corrmtx の出力を使用して、このような配列 x を作成できます。

2 番目の入力引数 p は、以下のいずれかで指定できます。

  • スカラー整数。この場合、信号部分空間の次元は p です。

  • 2 要素のベクトル。この場合、p の 2 番目の要素 p(2) は、信号の相関行列の固有値の中の最小な値、λmin を乗算したしきい値を表しています。しきい値 λmin*p(2) より小さい固有値は、ノイズ部分空間に割り当てられます。この場合、p(1) では、信号部分空間の最大次元が指定されます。

    メモ:   pmusic の入力が実数正弦波である場合は、p の値は入力信号の数の2倍に設定します。入力が複素正弦波である場合は、p は入力数と等しく設定します。

p の 2 番目の要素にある追加のしきい値パラメーターでは、柔軟性と、ノイズ部分空間と信号部分空間の割り当てに対するコントロールが提供されます。

Sw は、同じ長さをもっています。一般的に、FFT の長さと入力値 x により、計算される S の長さと対応する正規化された周波数の範囲が決まります。以下の表は、この構文での  S (と w) の長さと、対応する正規化された周波数の範囲を示しています。

長さ 256 (既定の設定)の FFT に対する S 特性

実数/複素数入力データS と w の長さ対応する正規化された周波数の範囲

実数値

129

[0, π]

複素数値

256

[0, 2π)

[S,w] = pmusic(x,p,w) では、2 つ以上の要素をもつベクトル w で指定される正規化された周波数において計算された疑似スペクトルがベクトル S に返されます。

[S,w] = pmusic(...,nfft) では、疑似スペクトルの推定に使用される、整数値の FFT 長 nfft が指定されます。空ベクトル [] を指定した場合に使用される、nfft の既定値は 256 です。

以下の表は、この構文での S と w の長さ、および w に対する周波数の範囲を示しています。

S と周波数ベクトルの特性

実数/複素数入力データnfft 偶数/奇数S と w の長さw の範囲

実数値

偶数

(nfft/2 + 1)

[0, π]

実数値

奇数

(nfft + 1)/2

[0, π)

複素数値

偶数または奇数

nfft

[0, 2π)

[S,f] = pmusic(x,p,nfft,fs) では、対応する周波数 f (Hz 単位) のベクトルで評価した疑似スペクトルがベクトル S に返されます。サンプリング周波数 fs は、Hz 単位です。fs に空ベクトル [] を指定すると、サンプリング周波数の既定値 1 Hz が使用されます。

f に対する周波数範囲は、nfftfs、および入力 x の値に依存します。S (と f) の長さは、上の表の「S と周波数ベクトルの特性」と同じです。以下の表は、この構文での f に対する周波数の範囲を示しています。

fs を設定した S と周波数ベクトルの特性

実数/複素数入力データ

nfft 偶数/奇数

f の範囲

実数値

偶数

[0,fs/2]

実数値

奇数

[0,fs/2)

複素数値

偶数または奇数

[0,fs)

[S,f] = pmusic(x,p,f,fs) では、2 つ以上の要素をもつベクトル f で指定される正規化された周波数において計算された疑似スペクトルがベクトル S に返されます。

[S,f] = pmusic(...,'corr') では、入力引数 x が信号データの行列ではなく、相関行列として解釈されます。この構文では、x は正方行列でなければなりません。また、すべての固有値は負になることはできません。

[S,f] = pmusic(x,p,nfft,fs,nwin,noverlap) では、引数 nwin に、矩形ウィンドウの長さを設定するスカラー整数、またはウィンドウ係数を設定する実数値ベクトルのいずれかを指定できます。nwin と組み合わせてスカラー整数 noverlap を使用することで、連続するウィンドウをオーバーラップさせる入力サンプルの数を指定できます。noverlap は、x が行列の場合は使用できません。既定値は、nwin2*p(1)noverlapnwin-1 です。

この構文では、相関行列固有値を推定するために使用される行列が定式化される前に、入力データ x が分割され、ウィンドウが適用されます。データのセグメント化は、nwinnoverlap、および x の形式に依存します。次の表に、結果として得られるウィンドウを適用したセグメントに関するコメントを記載します。

x と nwinに依存するウィンドウを適用したデータ

入力データ x

nwin の形式

ウィンドウが適用されたデータ

データ ベクトル

スカラー

長さが nwin

データ ベクトル

係数ベクトル

長さが length(nwin)

データ行列

スカラー

データには、ウィンドウが適用されません。

データ行列

係数ベクトル

length(nwin) は、x の列の長さと同じでなければなりません。また、noverlap は使用されません。

この構文の関連情報は、「入力データと構文に依存した固有ベクトルの長さ」を参照してください。

    メモ:   引数 nwinnoverlap は、構文で文字列 'corr' を使用した場合は無視されます。

[...] = pmusic(...,freqrange) では、f または w に含める周波数値の範囲が指定されます。この構文は、x が実数の場合に便利です。freqrange には、以下のいずれかを設定できます。

  • 'onesided' — 実数の入力信号 x の片側 PSDを返します。nfft が偶数の場合、Pxx は長さ nfft/2+1、演算範囲は [0,π] です。nfft が奇数の場合、Pxx は長さ (nfft+1)/2、周波数範囲は [0,π) です。fs を指定すると、その範囲は nfft の長さが偶数の場合 [0,fs/2)、奇数の場合 [0,fs/2] になります。

  • 'twosided' — 実数または複素数の入力 x について両側 PSD を返します。この場合、Pxx の長さは nfft、演算範囲は [0,2π) です。fs を指定する場合、周波数範囲は [0,fs) です。

  • 'centered' — 実数または複素数の入力 x について中央に揃えた両側 PSD を返します。この場合、Pxx の長さ nfft は、偶数長の nfft については範囲 (-π, π] で、奇数長さの nfft については範囲 (-π, π]) で計算されます。fs を指定すると、周波数範囲は nfft の長さが偶数の場合 (-fs/2, fs/2]、奇数の場合 (-fs/2,fs/2) になります。

    メモ:    文字列引数 freqrange または 'corr' は、入力引数リストの p の後の任意の位置に配置できます。

[...,v,e] = pmusic(...) では、ノイズの固有ベクトルの行列 v が、関連する固有値を含むベクトル e とともに返されます。v の列は、次元が size(v,2) のノイズ部分空間をにまたがっています。信号部分空間の次元は、size(v,1)-size(v,2) です。この構文で、e は相関行列の推定された固有値ベクトルです。

出力引数なしに pmusic(...) を使用すると、現在の Figure ウィンドウに疑似スペクトルがプロットされます。

例 1:サンプリングを設定していない関数 pmusic

以下の例では、信号部分空間に 2 つの実数正弦波があると仮定して、ある信号ベクトル x を解析します。この場合、各実数正弦波は 2 つの複素指数の和で表されるので、信号部分空間の次元は 4 です。

n = 0:199;
x = cos(0.257*pi*n) + sin(0.2*pi*n) + 0.01*randn(size(n));
pmusic(x,4)      % Set p to 4 because two real inputs

例 2:サンプリング周波数と部分空間次元を指定

以下の例では、最小値より 10% 上の固有値のカットオフで同じ信号ベクトル x を解析します。p(1) = Inf に設定することで、しきい値パラメーター p(2) に基づいて信号/ノイズ部分空間が決定されるようになります。引数 nwin を使用して、長さ 7 の固有ベクトルを指定し、サンプリング周波数 fs を 8 kHz に設定します。

n = 0:199;
x = cos(0.257*pi*n) + sin(0.2*pi*n) + 0.01*randn(size(n));
[P,f] = pmusic(x,[Inf,1.1],[],8000,7); % Window length = 7

例 3:相関行列の入力

スペクトル密度を推定するために、正定相関行列 R を入力します。既定の 256 サンプルを使用します。

R = toeplitz(cos(0.1*pi*[0:6])) + 0.1*eye(7);
[P,f] = pmusic(R,4,'corr');

例 4:関数 corrmtx から生成された信号データ行列の入力

関数 corrmtx を使用して、データから生成した信号データ行列 Xm を入力します。

n = 0:699;
x = cos(0.257*pi*(n)) + 0.1*randn(size(n));
Xm = corrmtx(x,7,'mod');
[P,w] = pmusic(Xm,2);

例 5:ウィンドウ処理を使用した信号データ行列の効果の作成

同じ信号を使用し、ウィンドウ処理の入力引数を使用して、pmusic で 100 行 7 列のデータ行列を作成します。さらに、FFT の長さを 512 に指定します。

n = 0:699;
x = cos(0.257*pi*(n)) + 0.1*randn(size(n));
[PP,ff] = pmusic(x,2,512,[],7,0);

詳細

すべて展開する

ヒント

疑似スペクトルの推定の過程で、関数 pmusic では、信号の相関行列の固有ベクトル vj と固有値 j からノイズ部分空間と信号部分空間が計算されます。これらの固有値の中の最小のものが、しきい値パラメーター p(2) と共に使用され、場合によってはノイズ部分空間の次元に影響を与えます。

関数 pmusic で計算される固有ベクトルの長さ n は、信号部分空間の次元とノイズ部分空間の次元との和です。この固有ベクトルの長さは、入力 (信号データまたは相関行列) と使用する構文に依存します。

次の表は、入力引数への固有ベクトル長の依存度をまとめたものです。

入力データと構文に依存した固有ベクトルの長さ

入力データ x の形式

構文に関するコメント

固有ベクトルの長さ n

行ベクトル、または列ベクトル

nwin は、スカラー整数として指定します。

nwin

行ベクトル、または列ベクトル

nwin は、ベクトルとして指定します。

length(nwin)

行ベクトル、または列ベクトル

nwin は指定しません。

2*p(1)

l 行 m 列の行列

nwin がスカラーとして指定された場合は、使用されません。nwin がベクトルとして指定された場合、length(nwin) は m と等しくなければなりません。

m

m 行 m 列の非負の定行列

文字列 'corr' が指定され、nwin は使用されません。

m

p(2) > 1 を有効にするには、nwin > p(1) または length(nwin) > p(1) のいずれかを設定しなければなりません。

アルゴリズム

MUSIC と言う名前は MUltiple SIgnal Classification の頭文字をあわせたものです。MUSIC アルゴリズムでは、シュミットの固有空間解析法 ([1]を参照) を使用して、信号または相関行列から疑似スペクトルが推定されます。このアルゴリズムでは、信号の周波数成分を計算するために、信号の相関行列の固有空間解析が行われます。このアルゴリズムは、正弦波にホワイト ガウス ノイズを加算した信号に対して、特に適しています。相関行列を指定しない場合は、信号の相関行列の固有値と固有ベクトルが推定されます。

MUSIC 疑似スペクトルは、次式で与えられます。

ここで、N は固有ベクトルの次元で、vk は相関行列の k 番目の固有ベクトルです。整数 p は、信号部分空間の次元です。そのため、和で使用される固有ベクトル vk は、相関行列の最小の固有値に対応し、ノイズ部分空間を構成します。ベクトル e(f) は複素指数で構成され、内積

は、フーリエ変換になります。これは、PSD 推定の計算で使用されます。FFT は、各 vk に対して計算され、大きさの 2 乗の和が計算されます。

参考文献

[1] Marple, S.L. Digital Spectral Analysis, Englewood Cliffs, NJ, Prentice-Hall, 1987, pp. 373-378.

[2] Schmidt, R.O, “Multiple Emitter Location and Signal Parameter Estimation,” IEEE® Trans. Antennas Propagation, Vol. AP-34 (March 1986), pp. 276-280.

[3] Stoica, P., and R.L. Moses, Introduction to Spectral Analysis, Prentice-Hall, Englewood Cliffs, NJ, 1997.

参考

| | | | | | | | | |

この情報は役に立ちましたか?