Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

部分空間法による周波数推定

この例では、部分空間法を使用して、近接した正弦波を分解する方法を説明します。部分空間法では、加法性ノイズを伴う正弦波、場合によっては複素正弦波の和から構成される高調波モデルを想定しています。複素数値の高調波モデルではノイズも複素数値です。

複素数値の長さ 24 サンプルの信号を作成します。この信号は、加法性複素ホワイト ガウス ノイズを伴う周波数 0.4 Hz および 0.425 Hz の 2 つの複素指数 (正弦波) から構成されます。ノイズは、平均 0、分散 0.22 です。複素ホワイト ノイズにおいて、実数部と虚数部の両方が全体の分散の 1/2 に等しい分散をもちます。

n = 0:23;
x = exp(1j*2*pi*0.4*n) + exp(1j*2*pi*0.425*n)+ ...
    0.2/sqrt(2)*(randn(size(n))+1j*randn(size(n)));

信号のパワー スペクトルを使用して 2 つの正弦波を分解します。最適な結果を得るには、漏れを最大値に設定します。

pspectrum(x,n,'Leakage',1)

Figure contains an axes object. The axes object with title Fres = 41.6668 mHz, xlabel Frequency (mHz), ylabel Power Spectrum (dB) contains an object of type line.

ピリオドグラムは 0.4 Hz の近くに幅の広いピークを示しています。ピリオドグラムの周波数分解能が 1/N なので、2 つの別個の正弦波を分解することができません。ここで、N は信号の長さです。この場合、1/N は 2 つの正弦波の隔たりより大きくなっています。ゼロ パディングを利用しても 2 つの個別のピークを分解することはできません。

部分空間法を使用して、近接した 2 つのピークを分解します。この例では MUSIC 法を使用します。自己相関行列を推定し、それをpmusicに入力します。2 つの正弦波成分をもつモデルを指定します。結果をプロットします。

[X,R] = corrmtx(x,14,'mod');

pmusic(R,2,[],1,'corr')

Figure contains an axes object. The axes object with title Pseudospectrum Estimate via MUSIC, xlabel Frequency (mHz), ylabel Power (dB) contains an object of type line.

MUSIC 法では 0.4 Hz および 0.425 Hz の 2 つのピークを分離できます。しかし、部分空間法は、パワー スペクトル密度推定のようにパワー推定を生成するわけではありません。部分空間法は、周波数同定に非常に有用であり、モデル次数の誤指定に高い感度をもちえます。

参考

| |