Main Content

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

spectrum

構文

Hs = spectrum.estmethod(input1,...)

説明

メモ

spectrum.estmethod の使用は推奨されていません。代わりに、これに相当する関数を使用します。関数形式については、スペクトル推定法を参照してください。

Hs = spectrum.estmethod(input1,...) は、タイプ estmethod のスペクトル推定オブジェクト Hs を返します。このオブジェクトは指定された推定法に必要なすべてのパラメーター情報を含みます。各推定法は、いくつかの入力をとります。これらの入力は、それぞれのリファレンス ページで説明されています。

推定法

spectrum の推定法により、使用するスペクトル推定法が指定されます。使用可能な spectrum の推定法を以下にリストします。

メモ

スペクトル estmethod では spectrum を使用しなければなりません。

スペクトル推定法

spectrum.estmethod

説明

対応する関数

spectrum.burg

バーグ

pburg

spectrum.cov

共分散

pcov

spectrum.eigenvector

固有ベクトル

peig

spectrum.mcov

修正共分散

pmcov

spectrum.mtm

トムソン マルチテーパー

pmtm

spectrum.music

多重信号分類

pmusic

spectrum.periodogram

ピリオドグラム

periodogram

spectrum.welch

ウェルチ

pwelch

spectrum.yulear

ユール・ウォーカー

pyulear

各推定法の詳細については、MATLAB® プロンプトで構文 help spectrum.estmethod を使用するか、各推定法のリファレンス ページを参照してください。

メモ

オーバーラップおよびウィンドウ長の入力を使用する推定法では、オーバーラップするサンプル数をオーバーラップ率として指定し、ウィンドウ長の代わりにセグメント長を指定します。

ウィンドウを使用する推定法で、ウィンドウによって追加パラメーターが使用される場合は、プロパティが動的にパラメーターのスペクトル オブジェクトに追加されます。set (オブジェクト プロパティの変更を参照) を使用して、プロパティを変更できます。

メソッド

メソッドを使用すると、スペクトル推定パラメーターを再設定せずに、spectrum オブジェクトに関数を直接実行できます。これらのメソッドは、spectrum オブジェクトに割り当てた変数に直接適用できます。これらのメソッドの詳細については、MATLAB プロンプトで構文 help spectrum/method を使用するか、以下の表を参照してください。

スペクトル メソッド

メソッド説明

msspectrum

msspectrum メソッドは periodogram および welch スペクトル推定オブジェクトに対してのみ使用可能です。

平均二乗スペクトルは、周期性をもつ離散時間信号からの離散スペクトルを対象とするものです。平均二乗値の周波数分布が msspectrum です。パワー スペクトル密度 (psd) とは異なり、平均二乗スペクトルのピークは任意周波数における信号内のパワーを反映します。PSD では、パワーは周波数帯域の領域として反映されます。平均二乗スペクトルの単位は、パワーです。

Hmss = msspectrum(Hs,X) では、スペクトル オブジェクト Hs を使用して、離散時間信号 X の平均二乗 (パワー) 推定を含む平均二乗スペクトル オブジェクトが返されます。実数 X の既定値は 'onesided' で、複素数 X の既定値は 'twosided' ナイキスト周波数範囲です。

Hmss は平均二乗スペクトルが推定される位置での正規化周波数 W のベクトルを含みます。実信号に対する W の範囲は、FFT 点の数 (NFFT) が偶数の場合 [0,π] で、NFFT が奇数の場合 [0,π) です。複素数信号に対しては、W の範囲は [0,2π) です。指定周波数のベクトルのスペクトルの推定については、以下の FreqPoints プロパティを参照してください。

msspectrum メソッドにはこれらのプロパティが含まれ、msspectrum メソッドまたは msspectrumopts メソッドを使用して設定できます。これらのプロパティは、ここに一覧表示され、以下の msspectrumopts の項でも説明します。

SpectrumType'onesided' または 'twosided'
NormalizedFrequency ― 0 ~ 1 で周波数を正規化
Fs ― Hz 単位のサンプリング周波数
NFFT ― FFT データ点の数
CenterDC ― データと周波数を中心 DC 成分にシフト
FreqPoints'All' または 'User Defined'
FrequencyVector ― スペクトルを計算する周波数
ConfLevel ― 信頼区間を計算する信頼レベル。値は 0 ~ 1 になければなりません。

たとえば、Hmss = msspectrum(Hs,X,'FreqPoints','User Defined', FreqVector,fvect) では、周波数ベクトル fvect で定義された周波数点のみでスペクトルが計算される平均二乗スペクトル オブジェクトが返されます。

出力引数を設定せずに msspectrum(...) を使用すると、dB 単位で平均二乗スペクトルがプロットされます。

msspectrumopts

Hopts = msspectrumopts(Hs) では、スペクトル オブジェクト Hs のオプションを含むオブジェクトが返されます。

Hopts = msspectrumopts(Hs,X) では、データ固有のオプションと既定値をもつオブジェクトが返されます。

Hopts オプションオブジェクトを msspectrum メソッドへの引数として渡すことができます。Hopts オブジェクトの後に指定する個別オプションはすべて Hopts の値よりも優先されます。たとえば、Hmss = msspectrum(Hs,X,Hopts, 'SpectrumType', 'twosided') は、Hopts における既定の SpectrumType の値をオーバーライドします。

以下のプロパティは、msspectrumopts および msspectrum の両メソッドに適用されます。

Hmss = msspectrum (..., 'SpectrumType', 'twosided') では、両側平均二乗スペクトルが返されます。スペクトル長 (NFFT) は [0,2π) 上、または Fs が指定されている場合 [0,Fs) 上で計算されます。'onesided' を入力すると、ナイキスト範囲の 1/2 にある合計信号パワーを含む片側平均二乗スペクトルが返されます。既定値は 'onesided' です。

Hmss = msspectrum(Hs,X,'NormalizedFrequency',true) では、0 ~ 1 で正規化された周波数値をもつ平均二乗スペクトル オブジェクトが返されます。既定値は true です。

Hmss = msspectrum(Hs,X,'Fs',Fs) では、周波数関数として計算される平均二乗スペクトル オブジェクトが返されます。ここで、Fs は Hz 単位のサンプリング周波数です。Fs が指定されている場合、NormalizedFrequencyfalse に設定されます。

Hmss = msspectrum(...,'NFFT',nfft) では、使用する FFT 点の数が指定されます。有効値は、正の整数、'Nextpow2'、または 'Auto' です。'Nextpow2' は、入力の長さよりも大きな 2 のべき乗の最小値または 256 のどちらか大きい方を使用します。'Auto' では、入力の長さまたは 256 の大きい方が使用されます。既定値は 'Nextpow2' です。spectrum.welch では、'Nextpow2' および 'Auto' は、入力の長さではなく、SegmentLength と比較されることに注意してください。

Hmss = msspectrum (..., 'Centerdc', true) では、DC 成分がスペクトルの中心になるように、データと周波数値が移動されます。既定値は false です。

指定周波数のベクトルのスペクトルを推定するには、まず周波数点の数を 'User Defined' に設定します。これにより、msspectrum のプロパティ NFFT がプロパティ FrequencyVector で置き換えられます。
Hopts.FreqPoints = 'User Defined'
(FreqPoints の既定値は 'All' です。そのため、上記のように、msspectrum ではプロパティ NFFT が使用されますので注意してください。)

次に、使用する周波数ベクトル F を指定します。
Hopts.FrequencyVector = F
(FrequencyVector の既定値は 'Auto' であることに注意してください)。この例では、使用する周波数点の数には上記の NFFT 'Auto' のルールが適用されます。)

Hmms = msspectrum(...,'ConfLevel',p) では、計算された平均二乗スペクトルの誤差の推定である信頼区間を計算するための信頼度 p が指定されます。信頼度 (p) は 0 ~ 1 になります。たとえば、Hmss = msspectrum(Hs,X,'ConfLevel',0.95) は 95% 信頼区間を返します。

psd

music および eigenvector スペクトル オブジェクトでは psd メソッドがサポートされていません。pseudospectrum メソッドを参照してください。

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

Hpsd = psd (Hs,X) では、スペクトル オブジェクト Hs を使用して、離散時間信号 X のパワー スペクトル密度推定を含むパワー スペクトル密度オブジェクトが返されます。PSD は単位周波数あたりのパワーの分布です。実数 X の既定値は 'onesided'、複素数 X の既定値は 'twosided' です。

Hpsd は PSD が推定される位置での正規化周波数 W のベクトルです。実信号に対する W の範囲は、FFT 点の数 (NFFT) が偶数の場合 [0,π] で、NFFT が奇数の場合 [0,π) です。複素数信号に対しては、W の範囲は [0,2π) です。

psd メソッドにはこれらのプロパティが含まれ、psd メソッドまたは psdopts メソッドを使用して設定できます。これらのプロパティは、ここに一覧表示され、以下の psdopts の項でも説明します。

SpectrumType'onesided' または 'twosided'
NormalizedFrequency ― 0 ~ 1 で周波数を正規化
Fs ― Hz 単位のサンプリング周波数
NFFT ― FFT データ点の数
CenterDC ― データと周波数を中心 DC 成分にシフト
FreqPoints'All' または 'User Defined'
FrequencyVector ― スペクトルを計算する周波数
ConfLevel ― 信頼区間を計算する信頼度。値は 0 ~ 1 になければなりません。

たとえば、Hmss = psd(Hs,X,'FreqPoints','User Defined', FreqVector,fvect) では、周波数ベクトル fvect で定義された周波数点のみでスペクトルが計算される PSD オブジェクトが返されます。

出力引数を設定せずに psd(...) を使用すると、dB 単位で PSD がプロットされます。

psdopts

Hopts = psdopts(Hs) では、スペクトル オブジェクト Hs のオプションを含むオブジェクトが返されます。

Hopts = psdopts(Hs,X) では、データ固有のオプションと既定値をもつオブジェクトが返されます。

Hopts オプションオブジェクトを psd メソッドへの引数として渡すことができます。Hopts オブジェクトの後に指定する個別オプションはすべて Hopts の値よりも優先されます。たとえば、Hpsd = psd(Hs,X,Hopts,'SpectrumType', 'twosided') は、Hopts における SpectrumType の値をオーバーライドします。

以下のプロパティは、psdmopts および psd の両メソッドに適用されます。

Hpsd = psd (Hs,X,'SpectrumType','twosided') では、X の両側パワー スペクトル密度が返されます。スペクトル長は NFFT で、Fs が指定されていない場合は [0,2π) で、Fs が指定されている場合は [0,Fs) で計算されます。'onesided' を入力すると、合計信号パワーを含む片側 PSD が返されます。

Hmss = psd(Hs,X,'NormalizedFrequency',true) では、0 ~ 1 で正規化された周波数値をもつパワー スペクトル密度オブジェクトが返されます。既定値は true です。

Hpsd = psd (...,'Fs',Fs) では、周波数の関数として計算されるパワー スペクトル密度オブジェクトが返されます。ここで、Fs は Hz 単位のサンプリング周波数です。

Hmss = psd(...,'NFFT',nfft) では、使用する FFT 点の数が指定されます。有効値は、正の整数、'Nextpow2'、または 'Auto' です。'Nextpow2' は、入力の長さよりも大きな 2 のべき乗の最小値または 256 のどちらか大きい方を使用します。'Auto' では、入力の長さまたは 256 の大きい方が使用されます。既定値は 'Nextpow2' です。spectrum.welch では、'Nextpow2' および 'Auto' は、入力の長さではなく、SegmentLength と比較されることに注意してください。

Hmss = psd (..., 'Centerdc', true) では、DC 成分がスペクトルの中心になるように、データと周波数値が移動されます。既定値は false です。

指定周波数のベクトルのスペクトルを推定するには、まず周波数点の数を 'User Defined' に設定します。これにより、psd のプロパティ NFFT がプロパティ FrequencyVector で置き換えられます。
Hopts.FreqPoints = 'User Defined'
(FreqPoints の既定値は 'All' です。そのため、上記のように、psd ではプロパティ NFFT が使用されますので注意してください。)

Hmms = psd(...,'ConfLevel',p) では、計算された PSD の誤差の推定である信頼区間を計算するための信頼レベル p が指定されます。信頼度 (p) は 0 ~ 1 になります。たとえば、Hmss = psd(Hs,X,'ConfLevel',0.95) は 95% 信頼区間を返します。

pseudospectrum

このメソッドは、music または eigenvector スペクトル オブジェクトに対してのみ使用可能です。

Hps = pseudospectrum(Hs,X) では、スペクトル オブジェクト Hs を使用して、離散時間信号 X の疑似スペクトル推定を含むオブジェクトが返されます。Hs は、music または eigenvector オブジェクトでなければなりません。実数 X の既定値は 'half' で、複素数 X の既定値は 'whole' ナイキスト周波数範囲です。

Hps は PSD が推定される位置での正規化周波数 W のベクトルです。実信号に対する W の範囲は、FFT 点の数 (NFFT) が偶数の場合 [0,π] で、NFFT が奇数の場合 [0,π) です。複素数信号に対しては、W の範囲は [0,2π) です。

pseudospectrum メソッドにはこれらのプロパティが含まれ、pseudospectrum メソッドまたは pseudospectrumopts メソッドを使用して設定できます。以下では、これらのプロパティについて説明します。

SpectrumRange'half' または 'whole'
NormalizedFrequency ― 0 ~ 1 で周波数を正規化
Fs ― Hz 単位のサンプリング周波数
NFFT ― FFT 点の数
CenterDC ― データと周波数を中心 DC 成分にシフト
FreqPoints'All' または 'User Defined'
FrequencyVector ― スペクトルを計算する周波数

たとえば、Hmss = psd(Hs,X,'FreqPoints','User Defined', FreqVector,fvect) では、周波数ベクトル fvect で定義された周波数点のみでスペクトルが計算される PSD オブジェクトが返されます。

出力引数のない pseudospectrum(...) では、疑似スペクトルが dB 単位でプロットされます。

pseudospectrumopts

Hopts = pseudospectrumopts(Hs) では、スペクトル オブジェクト Hs のオプションを含むオブジェクトが返されます。

Hopts = pseudospectrumopts(Hs,X) では、データ固有のオプションと既定値をもつオブジェクトが返されます。Hopts オプションオブジェクトを pseudospectrum メソッドへの引数として渡すことができます。Hopts オブジェクトの後に指定する個別オプションはすべて Hopts の値よりも優先されます。たとえば、Hpseudospectrum= pseudospectrum(Hs,X, Hopts,'SpectrumRange', 'whole') は、Hopts における SpectrumRange の値をオーバーライドします。

Hmps = pseudospectrum (..., 'SpectrumRange', 'whole') では、ナイキスト範囲全体の疑似スペクトルが返されます。スペクトル長は NFFT で、Fs が指定されていない場合は [0,2π) で、Fs が指定されている場合は [0,Fs) で計算されます。'half' を入力すると、ナイキスト区間の半分における疑似スペクトルが計算されて返されます。

Hmss = pseudospectrum(Hs,X,'NormalizedFrequency',true) では、0 ~ 1 で正規化された周波数値をもつ疑似スペクトル オブジェクトが返されます。既定値は true です。

Hps = pseudospectrum(Hs,X,'Fs',Fs) では、周波数の関数として計算される疑似スペクトル オブジェクトが返されます。ここで、Fs は Hz 単位のサンプリング周波数です。

Hps = pseudospectrum(...,'NFFT',nfft) では、使用する FFT 点の数が指定されます。有効値は、正の整数、'Nextpow2'、または 'Auto' です。'Nextpow2' は、入力の長さよりも大きな 2 のべき乗の最小値または 256 のどちらか大きい方を使用します。'Auto' では、入力の長さまたは 256 の大きい方が使用されます。既定値は 'Nextpow2' です。

Hps = pseudospectrum(...,'Centerdc',true) では、DC 成分がスペクトルの中心になるように、データと周波数値が移動されます。既定値は false です。

指定周波数のベクトルのスペクトルを推定するには、まず周波数点の数を 'User Defined' に設定します。これにより、pseudospectrum のプロパティ NFFT がプロパティ FrequencyVector で置き換えられます。
Hopts.FreqPoints = 'User Defined'
(FreqPoints の既定値は 'All' です。そのため、上記のように、pseudospectrum ではプロパティ NFFT が使用されますので注意してください。)

powerest

powerestmusic および eigenvector スペクトル オブジェクトに対してのみ使用可能です。

POW = powerest(Hs,X) では、X の複素正弦波のべき乗の推定を含むベクトル POW が返されます。入力 X はベクトルまたは行列です。行列の場合は、X*X=R のデータ行列、または相関行列 R になります。HsInputType プロパティの値は X の解釈方法を決定します。Hsmusic または eigenvector スペクトル オブジェクトでなければなりません。

[POW,W]=powerest(Hs,X) は、POWと、X の正弦波の周波数 (ラジアン/サンプル) のベクトル W を返します。

[POW,F]=powerest(Hs,X,Fs) は、POW と、X の正弦波の周波数 (Hz) ベクトル F を返します。Fs は、サンプリング周波数です。

オブジェクト プロパティの表示

他のオブジェクトの場合と同様、get を使用して、spectrum オブジェクトのプロパティを表示できます。特定のプロパティを表示するには、以下を使用します。

 get(Hs,'property') 

ここで 'property' は特定のプロパティ名です。

オブジェクトのすべてのプロパティを表示するには、以下を使用します。

get(Hs)

オブジェクト プロパティの変更

特定のプロパティを設定するには、以下を使用します。

set(Hs,'property1',value, 'property2',value,...) 

ここで 'property1''property2' などは特定のプロパティ名です。

プロパティのオプションを表示するには、値を指定せずに set を使用します。

set(Hs,'property')

プロパティ名は必ず一重引用符で囲んでください。たとえば、バーグspectrum オブジェクト Hs の次数を 6 に変更するには、以下を使用します。

set(Hs,'order',6)

オブジェクトのプロパティの変更に set を使用するもう 1 つの例として、ピリオドグラム spectrum オブジェクトの動的に作成されたウィンドウ プロパティを変更してみましょう。

Hs=spectrum.periodogram       % Create periodogram object

Hs =

    EstimationMethod: 'Periodogram'
          WindowName: 'Rectangular'

set(Hs,'WindowName','Chebyshev')   % Change window type
Hs                                 % View changed object

Hs =

    EstimationMethod: 'Periodogram'
          WindowName: 'Chebyshev'  % Note changed property
       SidelobeAtten: 100

set(Hs,'SidelobeAtten',150)   % Change dynamic property
Hs                            % View changed object

Hs =

    EstimationMethod: 'Periodogram'
          WindowName: 'Chebyshev'
       SidelobeAtten: 150 

EstimationMethod プロパティ以外のすべての spectrum オブジェクト プロパティは、set コマンドを使用して変更できます。

オブジェクト プロパティは、inspect コマンドを使用しても変更できます。これにより [プロパティ インスペクター] ウィンドウが開き、dynamic プロパティ以外の、ウィンドウと共に使用されている任意のプロパティを編集できます。

inspect(Hs)

オブジェクトのコピー

オブジェクトのコピーを作成するには、copy メソッドを使用します。

H2 = copy(Hs)

メモ

構文 H2 = Hs を使用すると、オブジェクト ハンドルのみがコピーされ、新規オブジェクトは作成されません。

すべて折りたたむ

1 kHz で 300 ms 間サンプリングされる、周波数 200 Hz の余弦を生成します。ガウス ホワイト ノイズを付加します。そのパワー スペクトル密度推定を periodogram アルゴリズムで生成し、表示します。

Fs = 1000;
t = 0:1/Fs:0.3;
x = cos(2*pi*t*200) + randn(size(t));

Hs = spectrum.periodogram;
psd(Hs,x,'Fs',Fs)

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

他の例については、各推定法のリファレンス ページを参照してください。

バージョン履歴

R2006a より前に導入