ドキュメンテーション センター

  • 評価版
  • 製品アップデート

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

pburg

自己回帰パワー スペクトル密度の推定 — バーグ法

構文

  • pxx = pburg(x,order)
  • pxx = pburg(x,order,nfft)
  • [pxx,w] = pburg(___)
  • [pxx,f] = pburg(___,fs)
  • [pxx,w] = pburg(x,order,w)
  • [pxx,f] = pburg(x,order,f,fs)
  • [___] = pburg(x,order,___,freqrange)
  • [pxx,f,pxxc] = pburg(___,'ConfidenceLevel',probability)
  • pburg(___)

説明

pxx = pburg(x,order) は、バーグ法を使用して、離散時間信号ベクトル x のパワー スペクトル密度推定 pxx を返します。pxx は単位周波数あたりのパワーの分布です。周波数はラジアン/サンプルの単位で表されます。order は PSD 推定の生成に使用する AR (自己回帰) モデルの次数です。pburg では既定の DFT 長である 256 を使用します。

pxx = pburg(x,order,nfft) は、離散型フーリエ変換 (DFT) で nfft 個の点を使用します。x が実数の場合、pxx の長さは、nfft が偶数であれば (nfft/2+1)、nfft が奇数であれば (nfft+1)/2 になります。x が複素数値の場合、pxx の長さは常に nfft です。空の場合、使用される nfft の既定値は 256 です。

[pxx,w] = pburg(___) は正規化された角周波数のベクトル w を返し、PSD はその周波数で推定されます。w の単位はラジアン/サンプルです。実数値の信号の場合、wnfft が偶数であれば範囲 [0,π] をカバーし、nfft が奇数であれば範囲 [0,π) をカバーします。複素数値の信号の場合、w は常に範囲 [0,2π) をカバーします。

[pxx,f] = pburg(___,fs) は、周波数ベクトル f を単位時間あたりのサイクル数で返します。サンプリング周波数 fs は単位時間あたりのサンプル数です。時間の単位が秒の場合、f の単位はサイクル/秒 (Hz) です。実数値の信号の場合、f は偶数の nfft に対しては範囲 [0,fs/2] をカバーし、奇数の nfft に対しては範囲 [0,fs/2) をカバーします。複素数値の信号の場合、f は範囲 [0,fs) をカバーします。

[pxx,w] = pburg(x,order,w) は、ベクトル w で指定される正規化周波数での両側 AR PSD 推定を返します。ベクトル w は少なくとも 2 つの要素をもたなければなりません。

[pxx,f] = pburg(x,order,f,fs) は、ベクトル f で指定される周波数での両側 AR PSD 推定を返します。ベクトル f は少なくとも 2 つの要素をもたなければなりません。f の周波数の単位は単位時間あたりのサイクルです。サンプリング周波数 fs は単位時間あたりのサンプル数です。時間の単位が秒の場合、f の単位はサイクル/秒 (Hz) です。

[___] = pburg(x,order,___,freqrange) は、freqrange で指定される周波数範囲での AR PSD 推定を返します。freqrange に指定できる有効なオプションは、'onesided''twosided' または 'centered' のいずれかです。

[pxx,f,pxxc] = pburg(___,'ConfidenceLevel',probability) では、PSD 推定の probabilityx100% 信頼区間が pxxc で返されます。

出力引数なしで pburg(___) を使用すると、現在の Figure ウィンドウに、AR PSD 推定が単位周波数あたりの dB 単位でプロットされます。

すべて展開する

AR(4) 過程の AR PSD 推定

AR(4) 広義定常性ランダム過程の実現例を作成します。バーグ法を使用して PSD を推定します。単一の実現例に基づく PSD 推定を、ランダム過程の実際の PSD と比較します。

AR(4) システム関数を作成します。周波数応答を取得してシステムの PSD をプロットします。

A = [1 -2.7607 3.8106 -2.6535 0.9238];
[H,F] = freqz(1,A,[],1);
plot(F,20*log10(abs(H)),'b','linewidth',2);
xlabel('Hz'); ylabel('dB/Hz');

AR(4) ランダム過程の実現例を作成します。再現性のある結果を得るために、乱数発生器を既定の状態に設定します。実現例の長さは 1000 サンプルです。サンプリング周波数は 1 であると仮定します。pburg を使用して、4 次過程の PSD を推定します。PSD 推定を実際の PSD と比較します。

rng default;
x = randn(1000,1);
y = filter(1,A,x);
[Pxx,F] = pburg(y,4,1024,1);
hold on;
plot(F,10*log10(Pxx),'r'); hold on;
legend('True Power Spectral Density','PSD Estimate')

モデル次数を決定する反射係数

AR(4) 過程の実現例を作成します。arburg を使用して反射係数を決定します。この反射係数を使用して、過程に対し適切な AR モデルの次数を決定します。過程 PSD の推定を取得します。

長さが 1000 サンプルの AR(4) 過程の実現例を作成します。次数を 12 に設定して arburg を使用し、反射係数を返します。反射係数をプロットして、適切なモデル次数を決定します。

A = [1 -2.7607 3.8106 -2.6535 0.9238];
rng default;
x = filter(1,A,randn(1000,1));
[a,e,k] = arburg(x,12);
order = 1:12;
stem(order,k,'markerfacecolor',[0 0 1]);
xlabel('Model Order')
title('Reflection Coefficients')

反射係数は次数 4 の後にゼロまで減衰します。これは AR(4) モデルが最適であることを示しています。

バーグ法を使用してランダム過程の PSD 推定を取得します。DFT で 1000 個の点を使用します。PSD 推定をプロットします。

[pxx,w] = pburg(x,4,length(x));
plot(w,10*log10(pxx)); axis tight;
xlabel('Radians/sample');

入力引数

すべて展開する

x - 入力信号ベクトル

行ベクトルまたは列ベクトルで指定する入力信号。

データ型:single | double
複素数のサポート: あり

order - 自己回帰モデルの次数正の整数

正の整数として指定される、自動回帰モデルの次数。

データ型:double

nfft - DFT 点の数256 (既定の設定) | 整数 | []

正の整数として指定する DFT 点の数。実数値の入力信号 x では、PSD 推定 pxx は、nfft が偶数の場合、長さ (nfft/2+1)、nfft が奇数の場合、長さ (nfft+1)/2 になります。複素数値の入力信号 x では、PSD 推定は常に長さ nfft になります。nfft が空として指定されている場合、既定の nfft が使用されます。

データ型:single | double

fs - サンプリング周波数正のスカラー

正のスカラーとして指定されるサンプリング周波数。サンプリング周波数は単位時間あたりのサンプル数です。時間の単位が秒の場合、サンプリング周波数の単位はヘルツです。

w - Goertzel アルゴリズム用の正規化された周波数ベクトル

要素が 2 つ以上の行ベクトルまたは列ベクトルで指定する、Goertzel アルゴリズム用の正規化周波数。正規化された周波数の単位はラジアン/サンプルです。

例: w = [pi/4 pi/2]

データ型:double

f - Goertzel アルゴリズム用の巡回周波数ベクトル

要素が 2 つ以上の行ベクトルまたは列ベクトルで指定する、Goertzel アルゴリズム用の巡回周波数。周波数の単位は単位時間あたりのサイクルです。単位時間はサンプリング周波数 fs で指定されます。fs の単位がサンプル/秒であれば、f の単位は Hz です。

例: fs = 1000; f= [100 200]

データ型:double

freqrange - PSD 推定の周波数範囲'onesided' | 'twosided' | 'centered'

'onesided''twosided' または 'centered' で指定する、PSD 推定の周波数範囲。既定値は、実数値信号の場合は 'onesided'、複素数値信号の場合は 'twosided' です。各オプションに対応する周波数範囲は次のとおりです。

  • 'onesided' — 実数値入力信号 x の片側 PSD を返します。nfft が偶数の場合、pxx は長さ nfft/2+1、演算範囲は [0,π] ラジアン/サンプルです。nfft が奇数の場合、pxx は長さ (nfft+1)/2、演算範囲は [0,π) ラジアン/サンプルです。fs がオプションで指定されると、対応する範囲はそれぞれ、nfft が偶数の場合は [0,fs/2] サイクル/単位時間、奇数の場合は [0,fs/2) サイクル/単位時間になります。

  • 'twosided' — 実数値または複素数値の入力 x について両側 PSD 推定を返します。この場合、pxx の長さは nfft、演算範囲は [0,2π) ラジアン/サンプルです。fs がオプションで指定される場合、その範囲は [0,fs) サイクル/単位時間になります。

  • 'centered' — 実数値または複素数値の入力 x について中央に揃えた両側 PSD 推定を返します。この場合 pxx の長さ nfft は、偶数長の nfft については範囲 (-π,π] ラジアン/サンプルで、奇数長の nfft については範囲 (-π,π) ラジアン/サンプルで計算されます。fs がオプションで指定されると、対応する範囲はそれぞれ、nfft が偶数の場合は (-fs/2,fs/2] サイクル/単位時間、奇数の場合は (-fs/2,fs/2) サイクル/単位時間になります。

データ型:char

probability - PSD 推定の信頼区間0.95 (既定の設定) | (0,1) の範囲のスカラー

(0,1) の範囲のスカラーとして指定する、真の PSD のカバレッジ確率。出力 pxxc は真の PSD の probabilityx100% 範囲推定の下限および上限を含みます。

出力引数

すべて展開する

pxx - PSD 推定ベクトル

実数値の非負の列ベクトルで指定する PSD 推定。PSD 推定の単位は、単位周波数あたりの時系列データの 2 乗振幅単位となります。たとえば、入力データがボルト単位の場合、PSD 推定の単位は単位周波数あたりのボルトの 2 乗となります。ボルト単位の時系列では、抵抗が 1 オームという想定でサンプリング周波数を Hz で指定した場合、PSD 推定はワット/Hz 単位となります。

データ型:single | double

w - 正規化された周波数ベクトル

実数値の列ベクトルで指定する正規化周波数。pxx が片側 PSD 推定の場合、w は偶数の nfft に対しては範囲 [0,π] をカバーし、奇数の nfft に対しては範囲 [0,π) をカバーします。pxx が両側 PSD 推定の場合、w は範囲 [0,2π) をカバーします。DC を中央に揃えた PSD 推定では、f は、長さ nfft が偶数の場合は範囲 (-π,π] ラジアン/サンプルをカバーし、長さ nfft が奇数の場合は範囲 (-π,π) ラジアン/サンプルをカバーします。

データ型:double

f - 巡回周波数ベクトル

実数値の列ベクトルで指定する巡回周波数。片側 PSD 推定では、fnfft が偶数の場合は範囲 [0,fs/2] をカバーし、nfft が奇数の場合は範囲 [0,fs/2) をカバーします。両側 PSD 推定では、f は範囲 [0,fs) をカバーします。DC を中央に揃えた PSD 推定では、f は、長さ nfft が偶数の場合は範囲 (-fs/2, fs/2] サイクル/単位時間をカバーし、長さ nfft が奇数の場合は範囲 (-fs/2, fs/2) サイクル/単位時間をカバーします。

データ型:double

pxxc - 信頼限界行列

実数値要素をもつ N 行 2 列の行列で指定する信頼限界。行列の行の次元は PSD 推定 pxx の長さと等しくなります。pxx の行の対応する PSD 推定について、第 1 列は信頼下限を含み、第 2 列は信頼上限を含みます。信頼区間のカバレッジ確率は、probability の入力値によって決まります。

データ型:single | double

参考

| |

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