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)
は、信号の相関行列の固有値の中の最小な値、*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 | ![]() |