Main Content

etfe

経験的な伝達関数とピリオドグラムの推定

説明

g = etfe(data) は、次の形式の伝達関数を推定します。

y(t)=G(q)u(t)+v(t)

data には、時間領域または周波数領域の入出力データか時系列データが格納されます。

  • data が時間領域の入出力信号の場合、g はデータの入力のフーリエ変換に対する出力のフーリエ変換の比です。

    非周期的なデータの場合は、128 の等間隔の周波数 [1:128]/128*pi/Ts で伝達関数が推定されます。

    0 または正の整数の期間 (data.Period = integer) を含む周期的なデータの場合は、周波数 k*2*pi/periodk = 0 からナイキスト周波数までの応答が計算されます。

  • data が周波数領域の入出力信号の場合、g は入力が非ゼロのすべての周波数における入力に対する出力の比です。

  • data が時系列データ (入力チャネルなし) の場合、g はデータのピリオドグラム (フーリエ変換の正規化された絶対二乗) です。対応するスペクトル推定は、Spectrum Normalizationで説明されているように正規化されます。これは Signal Processing Toolbox™ 製品の spectrum 正規化とは異なります。

g = etfe(data,M) は、生のスペクトル推定に対して、約 pi/M の周波数分解能のハミング ウィンドウを使用して平滑化処理を適用します。M の効果は、spa における M の効果と同様です。M は周期的なデータの場合は無視されます。この構文は、大きい M の値を必要とする狭帯域のスペクトルやシステムに対して spa の代わりに使用します。

g = etfe(data,M,N) は、非周期的なデータに対する周波数間隔を指定します。

  • 非周期的な時間領域データの場合、N で周波数グリッド [1:N]/N*pi/Ts rad/TimeUnit を指定します。指定しない場合、N は 128 です。

  • 周期的な時間領域データの場合、N は無視されます。

  • 周波数領域データの場合、Nfmin:delta_f:fmax です。ここで、[fmin fmax]data の周波数の範囲、delta_f(fmax-fmin)/(N-1) rad/TimeUnit です。指定しない場合、データに含まれる入力が非ゼロの周波数で応答が計算されます。

すべて折りたたむ

推定データを読み込みます。

load iddata1 z1;

経験的な伝達関数と平滑化スペクトル推定を推定します。

ge = etfe(z1);
gs = spa(z1);

2 つのモデルをボード線図で比較します。

bode(ge,gs)

Figure contains 2 axes objects. Axes object 1 with title From: u1 To: y1 contains 2 objects of type line. These objects represent ge, gs. Axes object 2 contains 2 objects of type line. These objects represent ge, gs.

周期的入力を生成し、それを使用してシステムをシミュレートしてから、励起周波数点における推定モデルの周波数応答を元のシステムと比較します。

シミュレーションを使用して周期的な入力信号と出力信号を生成します。

m = idpoly([1 -1.5 0.7],[0 1 0.5]);
u = iddata([],idinput([50,1,10],'sine'));
u.Period = 50;
y = sim(m,u);

経験的な伝達関数を推定します。

me = etfe([y u]);

経験的な伝達関数を元のモデルと比較します。

bode(me,'b*',m,'r')

Figure contains 2 axes objects. Axes object 1 with title From: u1 To: y1 contains 2 objects of type line. These objects represent me, m. Axes object 2 contains 2 objects of type line. These objects represent me, m.

生のスペクトル推定に対してハミング ウィンドウを使用して平滑化処理を実行し、応答を比較します。

データを読み込みます。

load iddata1

平滑化処理を使用した場合と使用しない場合のそれぞれで経験的な伝達関数を推定します。

ge1 = etfe(z1);
ge2 = etfe(z1,32);

モデルをボード線図で比較します。

平滑化処理の効果により、ge2 の方が ge1 よりも滑らかになっています。

bode(ge1,ge2)

Figure contains 2 axes objects. Axes object 1 with title From: u1 To: y1 contains 2 objects of type line. These objects represent ge1, ge2. Axes object 2 contains 2 objects of type line. These objects represent ge1, ge2.

低周波数と高周波数のそれぞれの周波数間隔で経験的な伝達関数を推定し、応答を比較します。

データを読み込みます。

load iddata9

低周波数と高周波数のそれぞれの周波数間隔で経験的な伝達関数を推定します。

ge1 = etfe(z9,[],32);
ge2 = etfe(z9,[],512);

2 つのモデルの出力パワー スペクトルをプロットします。

spectrum(ge1,'b.-',ge2,'g')

Figure contains an axes object. The axes object with title From: e@y1 To: y1 contains 2 objects of type line. These objects represent ge1, ge2.

入力引数

すべて折りたたむ

推定データ。iddata オブジェクトとして指定します。データは、時間領域または周波数領域の入出力信号か時系列データにすることができます。

周波数分解能。正のスカラーとして指定します。

周波数間隔。正のスカラーとして指定します。周波数領域データの場合、既定の周波数間隔は推定データに固有の間隔になります。

出力引数

すべて折りたたむ

伝達関数の推定。idfrd モデルとして返されます。

推定結果と使用されたオプションに関する情報は、モデルの Report プロパティに格納されます。Report には次のフィールドがあります。

Report のフィールド説明
Status

モデルのステータスの概要。モデルが構築によって作成されたものか推定によって取得されたものかを示します。

Method

使用された推定コマンド。

WindowSize

ハミング ウィンドウのサイズ。

DataUsed

推定に使用されたデータの属性。次のフィールドをもつ構造体として返されます。

フィールド説明
Name

データ セットの名前。

Type

データ型。

Length

データ サンプルの数。

Ts

サンプル時間。

InterSample

入力サンプル間動作。次の値のいずれかとして返されます。

  • 'zoh' — ゼロ次ホールドにより、サンプル間で区分的に一定な入力信号を維持。

  • 'foh' — 1 次ホールドにより、サンプル間で区分的に線形な入力信号を維持。

  • 'bl' — 帯域幅を制限した動作により、ナイキスト周波数を超える連続時間入力信号のパワーがゼロになるように指定。

InputOffset

推定時に時間領域の入力データから削除されたオフセット。非線形モデルの場合は [] になります。

OutputOffset

推定時に時間領域の出力データから削除されたオフセット。非線形モデルの場合は [] になります。

Report の使用の詳細については、Estimation Reportを参照してください。

バージョン履歴

R2006a より前に導入