| Signal Processing Toolbox | ![]() |
ルートMUSICアルゴリズムを使ったパワースペクトル密度の計算
表示
[w,pow] = rootmusic(x,p) [f,pow] = rootmusic(...,fs) [w,pow] = rootmusic(...,'corr')
詳細
[w,pow] = rootmusic(x,p)
は、信号xの時間サンプル内の周波数成分を計算し、その周波数をラジアン/サンプル単位でベクトルwに、信号のパワーをdB単位で、ベクトルpowに出力します。入力信号xは、つぎのいずれかで設定できます。
xの各行が信号(たとえば、アレープロセッシングで使われるように、各行がセンサの配列の一出力)を表す長方形の配列です。たとえば、x'*xは、相関行列です。注意 関数corrmtxを使って、配列xを作成します。
|
pです。pの2番目の要素 p(2)は、信号の相関行列の固有値の中の最小な値、
minを乗算するスレッシュホールドを表しています。スレッシュホールド
min*p(2)より小さい固有値は、ノイズのサブ空間に割り当てます。この場合、p(1)は、信号サブ空間の最大次元を設定します。p の中の2番目の要素のスレッシュホールドパラメータは、非常に柔軟性をもち、ノイズサブ空間と信号サブ空間の割り当てをコントロールします。
ベクトルwの長さは、信号のサブ空間の計算された大きさです。実数値入力データxに対して、対応するパワーベクトルpowの長さは、次式で与えられます。
length(pow) = .5*length(w)
入力データxが複素数の場合、powをwは、同じ長さでなければなりません。
[f,pow] = rootmusic(...,fs)
は、Hz単位で計算された周波数ベクトルfを出力します。サンプリング周波数fsはHzで与えられます。fsが空ベクトル[]の場合、サンプリング周波数のデフォルト1Hzを使用します。
[w,pow] = rootmusic(...,'corr')
は、入力引数xを信号データの行列としてではなく、相関行列として解釈します。この書式では、ユーザは、xに対して正方行列を設定しなければなりません。そして、すべての固有値は非負でなければなりません。
例題
3つの複素指数成分とノイズから構成される信号の周波数成分を検出しましょう。修正共分散法を使って、MUSICアルゴリズムで使用される相関行列を計算します。
randn('state',1); n=0:99;
s=exp(i*pi/2*n)+2*exp(i*pi/4*n)+exp(i*pi/3*n)+randn(1,100);
% 修正共分散法を使って、相関行列を計算
X=corrmtx(s,12,'mod');
[W,P] = rootmusic(X,3)
W =
1.5769
0.7817
1.0561
P =
1.1358
3.9975
1.4102
アルゴリズム
関数rootmusicで使用するMUSICアルゴリズムは、関数pmusicで使用するものと同じです。アルゴリズムは、信号の周波数成分を計算するために、信号の相関行列の固有空間解析を行います。関数pmusicとrootmusicの違いは、つぎの事柄です。
pmusicは、すべての周波数サンプルで擬似スペクトルを出力します。rootmusicは、対応する信号のパワー計算に沿って、計算した離散周波数スペクトルを出力します。関数rootmusicは、正弦波の中に加算的な白色ガウスノイズが含まれているような信号の周波数推定に有効なものです。
参考
corrmtx 相関計算用にデータ行列を計算
peig 固有ベクトル法を使った擬似スペクトルの推定
pmusic MUSIC アルゴリズムを使った擬似スペクトルの推定
rooteig ルート固有ベクトル法を使ったパワースペクトル密度の計算
| rooteig | sawtooth | ![]() |