Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

時間領域と周波数領域間のデータの変換

System Identification Toolbox™ には、時間領域と周波数領域の両方でデータの解析を行うツールと、モデルの推定と評価を行うツールが用意されています。測定データと同じ領域にないツールとメソッドを使用するために、時間領域と周波数領域間でデータを変換できます。

iddata オブジェクトには時間領域データまたは周波数領域データが格納されます。

  • "時間領域" データは、時間の関数としてサンプリングされた 1 つ以上の入力変数 u(t) と、1 つ以上の出力変数 y(t) で構成されます。

  • "周波数領域" データは、変換された入力時間領域信号および出力時間領域信号、または独立した可変周波数の関数としてサンプリングされたシステム周波数応答のいずれかで構成されます。

MATLAB® で時間領域データと周波数領域データを表現する方法の詳細については、Representing Data in MATLAB Workspaceを参照してください。

データは 1 つの領域から別の領域に変換できます。次の表に、時間領域と周波数領域間でデータを変換するコマンドをまとめます。コマンドの詳細については、対応するコマンドのリファレンス ページを参照してください。

コマンド説明構文の例
fft

時間領域データを周波数領域に変換します。

周波数値の数として N を指定できます。

時間領域 iddata オブジェクト t_data を周波数領域 iddata オブジェクト f_dataN 周波数点を指定して変換するには、次を使用します。

f_data = 
  fft(t_data,N)
ifft周波数領域データを時間領域に変換します。周波数は線形で等間隔です。

周波数領域 iddata オブジェクト f_data を時間領域 iddata オブジェクト t_data に変換するには、次を使用します。

t_data = 
  ifft(f_data)

iddata データを idfrd 周波数応答の形式に変換するのは、推定の一種です。iddata オブジェクトを使用して周波数応答を推定する場合は、Transforming Between Frequency-Domain and Frequency-Response Dataを参照してください。

時間領域と周波数領域間のデータの変換

時間領域から周波数領域にデータを変換し、時間領域に戻して、元のデータと変換後のデータから推定されたモデルのパフォーマンスを比較します。

300 のサンプルが含まれる時間領域データ z1 を読み込んでプロットします。

load iddata1 z1
plot(z1)

Figure contains 2 axes. Axes 1 with title y1 contains an object of type line. This object represents z1. Axes 2 with title u1 contains an object of type line. This object represents z1.

z1 のサンプル時間 Ts を求めます。

Ts = z1.Ts
Ts = 0.1000

サンプル時間は 0.1 秒です。

z1 を周波数領域に変換します。

z1f = fft(z1)
z1f =

Frequency domain data set with responses at 151 frequencies.
Frequency range: 0 to 31.416 rad/seconds
Sample time: 0.1 seconds                                                                              
                                                                                                      
Outputs      Unit (if specified)                                                                      
   y1                                                                                                 
                                                                                                      
Inputs       Unit (if specified)                                                                      
   u1                                                                                                 
                                                                                                      

周波数範囲は、pi/Ts のナイキスト周波数と同じ 31.416 rad/s に拡張されます。

周波数領域データをプロットします。

plot(z1f)

Figure contains 4 axes. Axes 1 with title y1 contains an object of type line. This object represents z1f. Axes 2 contains an object of type line. This object represents z1f. Axes 3 with title u1 contains an object of type line. This object represents z1f. Axes 4 contains an object of type line. This object represents z1f.

z1f を元の時間領域に変換して、2 つの時間領域信号をまとめてプロットします。

z1t = ifft(z1f)
z1t =

Time domain data set with 300 samples.
Sample time: 0.1 seconds               
                                       
Outputs      Unit (if specified)       
   y1                                  
                                       
Inputs       Unit (if specified)       
   u1                                  
                                       
plot(z1t,z1)

Figure contains 2 axes. Axes 1 with title y1 contains 2 objects of type line. These objects represent z1t, z1. Axes 2 with title u1 contains 2 objects of type line. These objects represent z1t, z1.

信号は正確に整列します。

z1z1t の 2 次状態空間モデルを推定します。

sys1 = ssest(z1,2);
sys1t = ssest(z1t,2);
compare(z1,sys1,sys1t)

Figure contains an axes. The axes contains 3 objects of type line. These objects represent z1 (y1), sys1: 70.63%, sys1t: 70.63%.

z1f の状態空間モデルを推定します。

sys1f = ssest(z1f,2);
compare(z1f,sys1f)

Figure contains 2 axes. Axes 1 contains 2 objects of type line. These objects represent z1f (y1), sys1f: 70.85%. Axes 2 contains 2 objects of type line. These objects represent z1f (y1), sys1f: 70.85%.

時間領域モデルと周波数領域モデルの適合割合は似ています。

参考

| | | | |

関連するトピック