Main Content

settlingtime

2 値波形の整定時間

説明

s = settlingtime(x,d) は、中央基準レベル瞬時から、各遷移が最終状態の 2% 許容誤差領域内に入って期間 d を超えて留まるようになる時点までの時間を返します。遷移を判定するため、関数 settlingtime はヒストグラム法により入力波形の状態レベルを推定し、Low 状態の上限と High 状態の下限を横断するすべての領域を識別します。

メモ

任意の遷移について波形のレベルが許容誤差の上下限内に留まらない場合や要求した期間が存在しない場合、あるいは介在する遷移が検出される場合、settlingtimes での対応する要素を NaN とマークします。settlingtimeNaN を返す場合については、シーク整定時間を参照してください。

s = settlingtime(x,Fs,d) では、サンプル レート Fs を指定します。

s = settlingtime(x,t,d) では、サンプル瞬時 t を指定します。

[s,slev,sinst] = settlingtime(___) は各遷移について、整定点のレベル slev とサンプル瞬時 sinst を返します。

[s,slev,sinst] = settlingtime(___,Name,Value) は、1 つ以上の名前と値の引数で指定される追加オプションを使い、整定時間、レベルおよび対応するサンプル瞬時を返します。前の構文の入力を任意に組み合わせて指定できます。

settlingtime(___) は信号をプロットし、整定時間が計算される各遷移の領域を暗い色で表示します。プロットでは各遷移の整定時間の位置、中間点クロッシングおよび関連する基準レベルが示されます。また状態レベルも、対応する許容誤差の上下限と共に表示されます。

すべて折りたたむ

2 値波形の整定点と、それに対応する波形での値を決定します。10 秒のシーク整定時間を指定します。

load('transitionex.mat', 'x')
[s,slev,sinst] = settlingtime(x,10);

波形をプロットして整定点に注釈を付けます。

settlingtime(x,10)

Figure Settling Time Plot contains an axes object. The axes object contains 11 objects of type patch, line. These objects represent settling time, signal, mid cross, settling point, upper boundary, upper state, lower boundary, mid reference, lower state.

ans = 1.8901

3 つの遷移をもつ 2 値波形の整定点を決定します。データは 4 MHz でサンプリングされています。1 μs のシーク整定時間を指定します。

load('transitionex.mat','x')
y = [x; fliplr(x)];
fs = 4e6;
t = 0:1/fs:(length(y)*1/fs)-1/fs;

[s,slev,sinst] = settlingtime(y,fs,1e-6);

波形をプロットして整定点に注釈を付けます。

settlingtime(y,fs,1e-6)

Figure Settling Time Plot contains an axes object. The axes object contains 11 objects of type patch, line. These objects represent settling time, signal, mid cross, settling point, upper boundary, upper state, lower boundary, mid reference, lower state.

ans = 3×1
10-6 ×

    0.4725
    0.1181
    0.4725

入力引数

すべて折りたたむ

2 値波形。実数値のベクトルとして指定します。x の最初のサンプル瞬時は t=0 と等しくなります。

シーク整定時間 (秒単位)。正のスカラーとして指定します。この引数は、中央基準レベル瞬時後の、settlingtime によって整定時間が求められる期間を定義します。中央基準レベル瞬時の後 d 秒以内に整定時間が発生しない場合、この関数は NaN を返します。詳細については、整定時間およびシーク整定時間を参照してください。

サンプル レート。正の実数スカラーとして Hz 単位で指定します。

サンプル瞬時。ベクトルとして指定します。t の長さは、入力 2 値波形 x の長さと等しくなければなりません。

名前と値の引数

オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。

例: s = settlingtime(x,Fs,Tolerance=5)

R2021a より前は、名前と値をそれぞれコンマを使って区切り、Name を引用符で囲みました。

例: s = settlingtime(x,Fs,'Tolerance',5)

波形振幅のパーセント比で表した中央基準レベル。スカラーとして指定します。詳細については、中央基準レベルを参照してください。

Low 状態レベルおよび High 状態レベル。1 行 2 列の実数値ベクトルとして指定します。最初の要素は Low 状態レベルで、2 番目の要素は High 状態レベルです。'StateLevels' を指定しない場合、この関数はヒストグラム法を使用して入力波形から状態レベルを推定します。

許容誤差レベル (状態の上下限)。スカラーとして指定し、パーセント比として表されます。Low 状態と High 状態の上下限は、状態レベル +/- 状態レベル間の差の倍数として表されます。詳細については、状態レベルの許容誤差を参照してください。

出力引数

すべて折りたたむ

整定時間。ベクトルとして返されます。整定時間は、中央基準レベル瞬時から、各遷移が最終状態の 2% 許容誤差領域内に入って期間 d を超えて留まるようになる時点までの時間に対応します。s の長さは、入力 2 値波形 x で検出された遷移の数と等しくなります。

メモ

settlingtime は、中央基準レベル瞬時を判断するのに内挿を使用するので、s はサンプリング瞬時に対応しない値を含む可能性があります。

整定点における波形での値。ベクトルとして返されます。

整定点の時点。ベクトルとして返されます。

詳細

すべて折りたたむ

整定時間

整定時間とは、中央基準レベル瞬時後、状態レベル周辺の 2% 許容誤差領域に信号が入ったまま留まるようになった時間です。整定時間を次の図に示します。Low 状態レベルおよび High 状態レベルは黒い破線で示され、状態レベルの上下 2% の許容誤差は赤い破線で表示され、整定時間は黄色い丸印で示されています。

中央基準レベル

Low 状態レベルが S_1、High 状態レベルが S_2 の 2 値波形における中央基準レベルは次のようになります。

S1+12(S2S1)

中央基準レベル瞬時

  • y50% によって中央基準レベルを示します。

  • t50%- および t50%+ によって、y50% の値に最も近い波形での値に対応する 2 つの連続するサンプリング瞬時を示します。

  • y50%- および y50%+ によって、t50%- および t50%+ における波形での値を示します。

中央基準レベル瞬時は次になります。

t50%=t50%+(t50%+t50%y50%+y50%)(y50%+y50%)

状態レベルの許容誤差

状態レベルごとに、上下限を指定することができます。こうした上下限は、「状態レベル +/- High 状態と Low 状態間の差のスカラー倍」として定義します。有用な許容誤差領域を提供するために、このスカラー値は 2/100 や 3/100 のような小さい数として指定します。一般に、Low 状態の $\alpha\%$ 領域は次のように定義されます。

$$S_1\pm{\alpha\over{100}}(S_2-S_1),$$

ここで、$S_1$ は Low 状態レベル、$S_2$ は High 状態レベルです。High 状態の $\alpha\%$ 許容誤差領域を得るには、式の最初の項を $S_2$ で置き換えます。

次の図は、正極性 2 値波形における各状態の 5% の上下限 (許容誤差領域) を示したものです。太い破線は、推定された状態レベルを示します。

シーク整定時間

シーク整定時間は、settlingtime によって整定点が求められる中央基準レベル瞬時後の時間間隔を定義します。settlingtime によりシーク整定時間内に整定点が検知されない場合、settlingtime はその整定時間に対し NaN を返します。次の図は 10 サンプルのシーク整定時間を示しています。

関数 settlingtime は、以下のいずれかの条件が発生した場合、指定したシーク整定時間内に整定点を見つけられないことがあります。

  • シーク整定間隔における波形の最後の値が、指定された許容誤差によって決まる状態の上限と下限の間にない場合。次の図は、8 サンプルのシーク整定時間と 2% 許容誤差領域でのこの条件を示しています。シーク整定間隔の最後のサンプルが状態の上限を越えています。この例では、シーク整定時間を増減させることで有効な整定時間を得ることが可能です。

  • 指定したシーク整定時間に対して十分な数の波形サンプルがない場合。次の図は、20 サンプルのシーク整定時間でのこの条件を示しています。シーク整定時間の範囲が波形の最後のサンプルを超えています。

  • 指定したシーク整定時間が終了する前に、介在する遷移が検出される場合。次の図は、22 サンプルのシーク整定時間でのこの条件を示しています。22 サンプルのシーク整定時間が終了する前に、介在する遷移が検出されています。

参照

[1] IEEE® Standard on Transitions, Pulses, and Related Waveforms, IEEE Standard 181, 2003, pp. 23–24.

拡張機能

C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。

バージョン履歴

R2012a で導入