Main Content

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

dspdata.psd

パワー スペクトル密度

構文

Hpsd = dspdata.psd(Data)
Hpsd = dspdata.psd(Data,Frequencies)
Hpsd = dspdata.psd(...,'Fs',Fs)
Hpsd = dspdata.psd(...,'SpectrumType',SpectrumType)
Hpsd = dspdata.psd(...,'CenterDC',flag)

説明

メモ

dspdata.psd の使用は推奨されていません。代わりに pburgpcovperiodogrampmcovpmtmpwelch または pyulear を使用してください。

パワー スペクトル密度 (PSD) は連続スペクトルを対象とするものです。与えられた周波数帯域全体における PSD の積分では、周波数帯全体の信号の平均パワーが計算されます。平均二乗スペクトルとは対照的に、このスペクトルのピークはある周波数におけるパワーを反映するものではありません。詳細については、dspdataavgpower メソッドを参照してださい。

片側 PSD には、DC からナイキスト レートの半分までの周波数範囲内での信号の合計パワーが含まれます。両側 PSD には DC からナイキスト レートまでの周波数範囲内の合計パワーが含まれます。

Hpsd = dspdata.psd(Data) では、Data に含まれるパワー スペクトル密度データが使用されます。このデータはベクトルまたは行列で、行列の場合、各列は個別のデータセットです。このオブジェクトの他のプロパティの既定値は、以下のとおりです。

Property

既定値

説明

Name

'Power Spectral Density'

読み取り専用の文字ベクトル

Frequencies

[]

タイプ double

パワー スペクトル密度が評価される周波数のベクトル。このベクトルの範囲は SpectrumType の値によって異なります。Fs が指定されている場合、片側スペクトルでは既定の範囲は、奇数の長さの場合 [0, π) または [0, Fs/2)、偶数の長さの場合 [0, π] または [0, Fs/2] です。両側では、範囲は [0, 2pi) または [0, Fs) です。

Frequencies を指定しないと、既定のベクトルが作成されます。片側を選択すると、このベクトルの FFT 点の全体数 (nFFT) は偶数であるとみなされます。

onesided を選択して Frequencies を指定すると、最後の周波数点が最後から 2 番目の周波数点および π (または Fs が指定されている場合は Fs/2) と比較されます。最後の点が前の点より π (または Fs/2) に近い場合、nFFT は偶数であると見なされます。前の点により近い場合は、nFFT は奇数であるとみなされます。

Frequencies ベクトルの長さは、Data の列の長さに一致しなければなりません。

Fs

'Normalized'

NormalizedFrequencytrue の場合、'Normalized' であるサンプリング周波数。NormalizedFrequencyfalse の場合、Fs は既定で 1 に設定されます。

SpectrumType

'Onesided'

パワー スペクトル密度が計算されるナイキスト区間。有効な値は 'Onesided' および 'Twosided' です。片側 PSD には、ナイキスト区間の半分での合計信号パワーが含まれます。このプロパティの変更に関する詳細については、dspdataonesided メソッドおよび twosided メソッドを参照してください。

ナイキスト区間の半分の範囲は、FFT 点の数により [0 pi) または [0 pi] です。ナイキスト区間全体の範囲は、[0 2pi) です。

NormalizedFrequency

true

周波数が正規化されている (true) か、または正規化されていない (false) か。このプロパティは Fs を基にして作成時に自動的に設定されます。Fs が指定されている場合、NormalizedFrequencyfalse に設定されます。このプロパティの変更に関する詳細については、dspdatanormalizefreq メソッドを参照してください。

Hpsd = dspdata.psd(Data,Frequencies) では、ベクトル Data および Frequencies に含まれるパワー スペクトル密度推定データが使用されます。

Hpsd = dspdata.psd(...,'Fs',Fs) では、サンプリング周波数 Fs が使用されます。Fs を指定すると、Fs に基づく線形周波数 (Hz 単位) の既定セットが使用され、NormalizedFrequencyfalse に設定されます。

Hpsd = dspdata.psd(...,'SpectrumType',SpectrumType) はパワー スペクトル密度を計算する区間を指定します。[0 π) または [0 π] の範囲からのデータに対しては、SpectrumTypeonesided に設定し、[0 2π) の範囲からのデータに対しては、SpectrumTypetwosided に設定します。

Hpsd = dspdata.psd(...,'CenterDC',flag) では、flag の値を使用して、ゼロ周波数 (DC) 成分が中央揃えされているかどうかを示します。flagtrue の場合は、DC 成分が両側スペクトルの中央にあることを示します。DC 成分がスペクトルの左端にある場合は、flagfalse に設定します。

メソッド

メソッドでは、dspdata オブジェクトに関数を直接実行する方法が提供されます。dspdata.psd オブジェクトに割り当てた変数に、直接メソッドを適用できます。dspdata.psd オブジェクトでは以下のメソッドを使用できます。

  • avgpower

  • centerdc

  • normalizefreq

  • onesided

  • plot

  • twosided

たとえば、周波数を正規化し、NormalizedFrequency パラメーターを true に設定するには、以下を使用します。

Hpsd = normalizefreq(Hpsd)

メソッドの使用方法とスペクトルのプロットの詳細については、dspdata のリファレンス ページを参照してください。

すべて折りたたむ

2 つの周波数成分をもつノイズの混入した正弦信号の片側パワー スペクトル密度を推定します。

Fs = 32e3;   
t = 0:1/Fs:2.96;
x = cos(2*pi*t*1.24e3)+ cos(2*pi*t*10e3)+ randn(size(t));
nfft = 2^nextpow2(length(x));
Pxx = abs(fft(x,nfft)).^2/length(x)/Fs;

PSD データ オブジェクトにスペクトルを格納し、結果をプロットします。

Hpsd = dspdata.psd(Pxx(1:length(Pxx)/2),'Fs',Fs);  
plot(Hpsd)

Figure contains an axes object. The axes object with title Power Spectral Density, xlabel Frequency (kHz), ylabel Power/frequency (dB/Hz) contains an object of type line.

両側スペクトルを作成し、プロットします。

Hpsd = dspdata.psd(Pxx,'Fs',Fs,'SpectrumType','twosided');
plot(Hpsd)

Figure contains an axes object. The axes object with title Power Spectral Density, xlabel Frequency (kHz), ylabel Power/frequency (dB/Hz) contains an object of type line.

バージョン履歴

R2006a より前に導入