Signal Processing Toolbox    
pyulear

Yule-Walker AR法を使ったパワースペクトル密度の計算

表示

詳細

Pxx = pyulear(x,p) は、パラメトリックスペクトル推定法の一つのYule-Walkerアルゴリズムを使って、ベクトルxのパワースペクトル密度(PSD)、Pxxを出力します。xの要素は、離散時間信号のサンプルを表しています。pは、PSDを計算するときに使用する、信号の自己回帰(AR)予測モデルの次数を指定する整数です。

パワースペクトル密度は、パワー/ラジアン/サンプルの単位で計算します。入力が実数値の場合、(周波数軸で)片側PSD(デフォルト)を、複素数の場合両側PSDを出力します。

一般的に、FFTの長さNと入力xの値(実数/複素数)により、Pxxの長さと対応する正規化された周波数の範囲が決まります。この書式で、FFTの(デフォルト)の長さNは、256より長くなり、xの長さを超える2のベキ乗数の内一番小さいものになります。つぎの表は、この書式用のPxxの長さと対応する正規化された周波数の範囲を示しています。

表 7-37:   長さNのFFTのPSD ベクトル特性
実数/複素数入力データ
Pxxの長さ
対応する正規化された周波数の範囲
実数値
129
[0, ]
複素数値
256
[0, 2)

[Pxx,w] = pyulear(x,p) は、PSDを計算した周波数をベクトルwで出力します。Pxxwは、同じ長さです。周波数の単位は、ラジアン/サンプルです。

[Pxx,w] = pyulear(x,p,nfft) は、Yule-Walker法を使って、PSDを計算しますが、整数nfftを使って、FFTの長さを設定することができます。nfftを空ベクトル[]とすると、デフォルト値(256)が使われます。

Pxxの長さとwの周波数範囲は、nfftと入力xの値(実数/複素数/個数)に依存します。つぎの表は、この書式でのPxxの長さとwの周波数範囲を示しています。

表 7-38:  PSD と周波数ベクトルの特性
実数/複素数入力データ
nfft 偶数/奇数
Pxxの長さ
w の範囲
実数値
偶数
(nfft/2 + 1)
[0, ]
実数値
奇数
(nfft + 1)/2
[0, )
複素数値
偶数または奇数
nfft
[0, 2)

[Pxx,f] = pyulear(x,p,nfft,fs) は、PSDベクトル(Pxx)と対応する周波数ベクトル(f)を計算するためにヘルツ単位で設定したサンプリング周波数fsを使います。計算されるスペクトル密度は、パワー/Hzの単位です。fsを空ベクトル[]とすると、サンプリング周波数は、デフォルトの1 Hzです。

fに関する周波数範囲は、nfftfsと入力xの値(実数/複素数/個数)に依存します。Pxxの長さは、上記の表の中のものと同じです。つぎの表は、この書式を使ったfに対する周波数範囲を示しています。

表 7-39:  fsを指定して、PSD と
周波数ベクトルの特性
実数/複素数入力データ
nfft 偶数/奇数
fの範囲
実数値
偶数
[0fs/2]
実数値
奇数
[0fs/2)
複素数値
偶数または奇数
[0, fs)

[Pxx,f] = pyulear(x,p,nfft,fs,'range') または、[Pxx,w] = pyulear(x,p,nfft,'range') は、周波数の範囲をfまたはwに出力します。この書式は、xが実数の場合に有効です。'range' には、つぎのいずれかを設定することができます。

pyulear(...) は、出力変数を設定しない場合、カレントフィギュアウインドウにPSDをプロット表示します。プロット上の周波数範囲は、与えられたパラメータに対して出力w(または f)の範囲と同じです。

例題

Yule-Walker法は、設定した次数のAR予測モデルを信号に近似することで、スペクトル密度を計算するために、まず、設定した次数もAR(全極)モデルから信号を生成しましょう。関数freqzを使って、ユーザのARフィルタの周波数応答の大きさをチェックすることができます。関数pyulearを使ってPSDを計算する場合、結果を推定することができます。

さて、白色ノイズをARフィルタに適用して入力信号xを作成します。4次のAR予測モデルをベースにxのPSDを計算しましょう。ここで、オリジナルのARシステムモデルは、次数が4であることがわかっているとします。

注意

パワースペクトル密度は、単位周波数に対するパワーの分布として計算できます。

このアルゴリズムは、ユーザの信号に対して、選択したモデル次数によって影響を受けます。

アルゴリズム

線形予測フィルタは、信号の2次の統計的な特徴をモデル化するのに使われます。予測フィルタ出力は、入力が白色ノイズの場合、信号をモデル化するのに使われます。

pyulearは、Yule-Walker 法を用いて信号のPSDを推定します。この方法は、最小二乗の意味で、フォーワード予測誤差を最小化することにより、自己回帰(AR)線形予測フィルタモデルを信号に近似します。この式は、Yule-Walker方程式から導かれ、Levinson-Durbin再帰法を使って、解かれます。pyulearで計算されるスペクトル推定は、このARモデルの周波数応答の大きさを二乗したものです。

参考
aryule
Yule-Walker法を使ったARモデルパラメータの推定
lpc
線形予測係数
pburg
Burg法を使って、パワースペクトル密度を計算
pcov
共分散法を使ったパワースペクトル密度の計算
peig
固有ベクトル法を使った擬似スペクトルの推定
periodogram
ピリオドグラムを使ったパワースペクトル密度の計算
pmcov
修正共分散法を使ったパワースペクトル密度の計算
pmtm
マルチテーパ法を使ったパワースペクトル密度の計算
pmusic
MUSIC アルゴリズムを使った擬似スペクトルの推定
prony
時間領域IIRフィルタ設計に対するProny法
psdplot
パワースペクトル密度データのプロット
pwelch
Welch法を使ったパワースペクトル密度の計算

参考文献

[1] Marple, S.L., Digital Spectral Analysis, Prentice-Hall, 1987, Chapter 7.

[2] Stoica, P., and R.L. Moses, Introduction to Spectral Analysis, Prentice-Hall, 1997.


 pwelch rc2ac