ドキュメンテーション

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

peig

固有ベクトル法を使用した疑似スペクトル

構文

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

説明

[S,w] = peig(x,p) では、固有ベクトル スペクトル推定法が実装され、入力信号 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) では、信号部分空間の最大次元が指定されます。

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

p の 2 番目の要素にある追加のしきい値パラメーターを使用すると、ノイズ部分空間と信号部分空間の割り当てを柔軟にコントロールできるようになります。

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

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

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

実数値

129

[0, π]

複素数値

256

[0, 2π)

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

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

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

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

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

実数値

偶数

(nfft/2 + 1)

[0, π]

実数値

奇数

(nfft + 1)/2

[0, π)

複素数値

偶数または奇数

nfft

[0, 2π)

[S,f] = peig(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] = peig(x,p,f,fs) では、2 つ以上の要素をもつベクトル f で指定される周波数において計算された疑似スペクトルがベクトル S に返されます。

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

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

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

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

入力データ xnwin の形式ウィンドウが適用されたデータ

データ ベクトル

スカラー

長さが nwin

データ ベクトル

係数ベクトル

長さが length(nwin)

データ行列

スカラー

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

データ行列

係数ベクトル

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

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

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

[...] = peig(...,freqrange) では、f または w に含める周波数値の範囲が指定されます。freqrange には、以下のいずれかを設定できます。

  • 'half' — 実数入力信号 x について半分のスペクトルを返します。nfft が偶数の場合、S は長さ nfft/2 + 1、計算区間は [0,π] です。nfft が奇数の場合、S の長さは (nfft + 1)/2、周波数範囲は [0,π) です。fs を指定すると、その区間は nfft が偶数の場合 [0,fs/2)、奇数の場合 [0,fs/2] になります。

  • 'whole' — 実数または複素数の入力 x についてスペクトル全体を返します。この場合、S の長さは nfft、計算区間は [0,2π) です。fs を指定する場合、周波数範囲は [0,fs) です。

  • 'centered' — 実数または複素数の入力 x について中央に揃えたスペクトル全体を返します。この場合、S の長さは nfft で、計算区間は nfft が偶数の場合 (–π,π]、nfft が奇数の場合 (–π,π) になります。fs を指定すると、周波数範囲は nfft が偶数の場合 (–fs/2,fs/2]、奇数の場合 (–fs/2,fs/2) になります。

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

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

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

すべて折りたたむ

固有ベクトル法を実行して、ノイズ内の 3 つの正弦波で構成されている疑似スペクトルを求めます。既定の FFT 長 256 を使用します。入力は複素正弦波であるため、p を入力数と同じ値に設定します。相関行列の推定に、修正共分散法を使用します。

n = 0:99;
s = exp(1i*pi/2*n)+2*exp(1i*pi/4*n)+exp(1i*pi/3*n)+randn(1,100);
X = corrmtx(s,12,'mod');
peig(X,3,'whole')

単位分散のホワイト ガウス ノイズに含まれる 2 つの正弦波の和で構成される実信号を生成します。信号は、100 Hz で 1 秒間サンプリングされます。正弦波には 25 Hz と 35 Hz の周波数があります。周波数が低い方の正弦波の振幅は他方の振幅の 2 倍です。

fs = 100;
t = 0:1/fs:1-1/fs;

s = 2*sin(2*pi*25*t)+sin(2*pi*35*t)+randn(1,100);

固有ベクトル法を使用して、0 からナイキスト周波数までの信号の擬似スペクトルを計算します。信号の部分空間の次元を 2、DFT 長を 512 に指定します。

peig(s,2,512,fs,'half')

信号が実数のため、2 つの正弦波は分解できません。次元 4 の信号部分空間を使用して計算を繰り返します。

peig(s,4,512,fs,'half')

詳細

すべて折りたたむ

ヒント

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

関数 peig で計算される固有ベクトルの長さ 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) のいずれかを設定しなければなりません。

アルゴリズム

固有ベクトル法では、シュミットの固有空間解析法 (参考文献 [1][2]) から導出される MUSIC アルゴリズムの重み付きバージョンを使用して、信号または相関行列から疑似スペクトルを推定します。このアルゴリズムでは、信号の周波数成分を計算するために、信号の相関行列の固有空間解析が行われます。信号の相関行列の固有値と固有ベクトルは、相関行列が与えられていない場合、関数 svd を使用して推定されます。このアルゴリズムは、正弦波にホワイト ガウス ノイズを加算した信号に対して、特に適しています。

固有ベクトル法では、次の式で与えられる疑似スペクトルが生成されます。

Pev(f)=1k=p+1N|vkHe(f)|2/λk

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

vkHe(f)

は、フーリエ変換になります。これは、PSD の計算で使用されます。各 vk に対してFFT が計算され、次に振幅の 2 乗の和が計算され、スケーリングされます。

参考文献

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

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

[3] Stoica, Petre, and Randolph L. Moses. Spectral Analysis of Signals. Upper Saddle River, NJ: Prentice Hall, 2005.

R2006a より前に導入

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