Main Content

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

等間隔および非等間隔の時間ベクトルの作成

時系列を含む計算で使用するための等間隔および非等間隔の時間ベクトルを作成することができます。

サンプリング周波数が既知の場合は、コロン演算子を使用します。システムが 1 秒間に 15 Hz のレートで時間をサンプリングする場合は、時間ゼロのものを含め 16 の読み取り値が得られます。

Fs = 15;
Ts = 1/Fs;
ts = 0:Ts:1;

時間間隔の開始および終了とサンプル数が既知の場合は、linspace を使用します。ストップウォッチを開始して 1 秒後に停止するとします。計測で 15 個の読み取り値が得られたことがわかっている場合、時間ベクトルを生成できます。

tl = linspace(0,1,15);

サンプルからサンプル レートを直接計算し、それを使用して時間ベクトルを再構成できます。

sf = 1/(tl(2)-tl(1));

TL = (0:length(tl)-1)/sf;

ErrorTL = max(abs(tl-TL))
ErrorTL = 0

linspace を使用して ts を再構成することもできます。

lts = length(ts);
TS = linspace(ts(1),ts(lts),lts);

ErrorTS = max(abs(ts-TS))
ErrorTS = 1.1102e-16

linspace とコロン演算子により、既定で行ベクトルが作成されます。これを転置して列ベクトルを得ます。

tcol = tl';
ttrans = ts';

任意の特性の非等間隔な時間ベクトルを生成するには、linspace とコロン演算子を組み合わせます。

サンプリングしなければならないガウス変調正弦波パルスがあるとします。パルスは 1 秒の間隔の間では急速に変化しますが、その前と後の秒では徐々に変化します。

関心領域を 100 Hz でサンプリングし、その前と後の領域からは 5 つのみサンプリングします。大かっこを使用してベクトルを連結します。

gpl = @(x) 2.1*gauspuls(x-1.5,5,0.4);

Ffast = 100;
Tf = 1/Ffast;
Nslow = 5;
tdisc = [linspace(0,1,Nslow) 1+Tf:Tf:2-Tf linspace(2,3,Nslow)];

関数の 20,001 個のサンプルを生成し、連続時間パルスをシミュレーションします。tsf で定義されたサンプルのプロットを重ね合わせます。

Tcont = linspace(0,3,20001)';

plot(Tcont,gpl(Tcont),tdisc,gpl(tdisc),'o','markersize',5)

Figure contains an axes. The axes contains 2 objects of type line.

参考