時間領域相関解析とは
"時間領域相関解析" とは、データからの有限インパルス応答 (FIR) モデルとしての、動的システムのインパルス応答のノンパラメトリック推定のことです。推定されたモデルは、伝達関数モデル オブジェクト (idtf) として保存されます。伝達関数モデルの詳細については、伝達関数モデルとはを参照してください。
相関解析では線形システムを仮定しており、特定のモデル構造は必要ありません。
"インパルス応答" は、入力がインパルスである場合に生じた出力信号であり、離散モデルに対して次の定義があります。
入力 "u(t)" に対する応答は、次のように、インパルス応答の畳み込みと等しいものになります。
サポートされる推定データ
以下の特性をもつデータからインパルス応答モデルを推定できます。
実数または複素数のデータ。
単出力または多出力のデータ。
サンプル時間が非ゼロの時間領域または周波数領域のデータ。
時間領域データは等間隔サンプルでなければなりません。相関解析に時系列データは使用できません。
相関解析のアルゴリズム
"相関解析" とは、モデル次数に関する具体的な仮定なしで線形モデルのインパルス応答を推定する手法を指します。
インパルス応答 g は、入力がインパルス信号である場合のシステム出力です。一般的な入力 u(t) に対する出力応答はインパルス応答による畳み込みになります。連続時間の場合は次のとおりです。
離散時間の場合は次のとおりです。
g(k) の値は "離散時間インパルス応答係数" です。
観測された入出力データから、いくつかの異なる方法で値を推定できます。impulseest は、最小二乗法を使用して最初の n 個の係数を推定することで、次数 n の有限インパルス応答 (FIR) モデルを取得します。
impulseest には、推定のための重要なオプションがいくつか用意されています。
"正則化" — 最小二乗推定を正則化します。正則化を使用すると、アルゴリズムは g(k) における事前の減衰と相互相関の推定を形成し、この事前推定を観測データからの g に関する現在の情報とマージします。この手法では、推定の分散は小さくなりますが、一部バイアスもかかります。事前推定の符号化には、いくつかのカーネルからいずれかを選択できます。
モデル次数
nはかなり大きくなることが多いため、このオプションは非常に重要です。正則化を使用しない場合、妥当な分散を確保するためにnが自動的に小さくなることがあります。正則化カーネルは、
impulseestOptionsの名前と値の引数RegularizationKernelを使用して指定します。"前置白色化" — 次数
PWの入力白色化フィルターをデータに適用することで入力を事前に白色化します。前置白色化は、正則化されていない推定の実行時に使用します。前置白色化フィルターを使用することで、インパルス応答の無視される裾 (k>n) の影響が最小限に抑えられます。アルゴリズムは次のようにして前置白色化を行います。入力信号
uを白色化する次数PWのフィルターAを定義します。1/A = A(u)e。ここで、Aは多項式、eはホワイト ノイズです。入力と出力を
Aでフィルター処理します。uf = Au,yf = Ayフィルター処理された信号
ufとyfを推定に使用します。
前置白色化は、
impulseestOptionsの名前と値のペアの引数PWを使用して指定します。"自己回帰パラメーター" — 基となる基本の FIR モデルを自己回帰パラメーター NA で補完して ARX モデルにします。
このオプションを使用すると、n の値が小さい場合により良い結果が得られるほか、データが閉ループで生成される場合の不偏推定も可能になります。
impulseestは、t > 0 の場合は NA を5に設定し、t < 0の場合は NA を0(自己回帰成分なし) に設定します。"非因果的効果" — 負のラグに対する応答を含めます。このオプションは、推定データに出力フィードバックが含まれる場合に使用します。
ここで、h(k) は制御器のインパルス応答、r は設定点または外乱項です。アルゴリズムは、このようなフィードバック h がある場合にその特性に対処し、推定の呼び出しの y と u の位置を単純に入れ替えて g と同じように h を推定します。
mi = impulseest(data,nk,nb)で負の遅延 (nk< 0) を指定してimpulseestを使用すると、次のインパルス応答を含むモデルmiが返されます。この整列はラグ に対応します。アルゴリズムでこのように整列されるのは、モデル
miの入力遅延 (InputDelay) がnkであるためです。
多入力多出力システムの場合、インパルス応答 g(k) は ny 行 nu 列の行列になります。ここで、ny は出力の数、nu は入力の数です。行列 g(k) の i–j の要素は、j 番目の入力のインパルスの後の i 番目の出力の動作を記述したものになります。