Main Content

overshoot

2 値波形遷移のオーバーシュート計量

説明

os = overshoot(x) は、入力 2 値波形の Low 状態レベルと High 状態レベルの差のパーセント比として表されるオーバーシュートを返します。os の値は、各遷移の最終状態レベルを超える最大絶対偏差に対応します。

os = overshoot(x,fs) では、サンプルレート fs を Hz で指定します。

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

[os,oslev,osinst] = overshoot(___) は各遷移について、オーバーシュートのレベル oslev とサンプル瞬時 osinst を返します。前の構文の入力を任意に組み合わせて指定できます。

[___] = overshoot(___,Name,Value) は、1 つ以上の Name,Value 引数を使用して追加のオプションを指定します。前の構文の出力を任意に組み合わせて使用できます。

overshoot(___) は 2 値波形をプロットし、各遷移のオーバーシュートの位置を示します。また、この関数は、下位および上位の基準レベル瞬時とそれに関連する基準レベル、および状態レベルとそれに関連する状態の上下限をプロットします。

すべて折りたたむ

2.3 V クロック波形における、High 状態レベルに対する最大オーバーシュート率を決定します。

2.3 V クロックのデータを読み込みます。遷移の最大オーバーシュート率を決定します。オーバーシュートのレベルおよびサンプル瞬時も決定します。この例では、遷移後の領域における最大のオーバーシュートはインデックス 22 付近で発生します。

load('transitionex.mat','x')

[oo,lv,nst] = overshoot(x)
oo = 6.1798
lv = 2.4276
nst = 22

波形をプロットします。オーバーシュートおよび対応するサンプル瞬時に注釈を付けます。

overshoot(x);

ax = gca;
ax.XTick = sort([ax.XTick nst]);

Figure Overshoot Plot contains an axes object. The axes object contains 12 objects of type line. These objects represent signal, upper cross, lower cross, post-overshoot, upper boundary, upper state, lower boundary, upper reference, lower reference, lower state.

2.3 V クロック波形において、High 状態レベルに対する最大オーバーシュート率、オーバーシュートのレベルおよびサンプル瞬時を決定します。

2.3 V クロックのデータをサンプリング瞬時と共に読み込みます。クロック データは 4 MHz でサンプリングされています。

load('transitionex.mat','x','t')

最大のオーバーシュートが発生する位置の、最大オーバーシュート率、ボルト単位でのオーバーシュートのレベルおよび時点を決定します。結果をプロットします。

[os,oslev,osinst] = overshoot(x,t)
os = 6.1798
oslev = 2.4276
osinst = 5.2500e-06
overshoot(x,t);

Figure Overshoot Plot contains an axes object. The axes object contains 12 objects of type line. These objects represent signal, upper cross, lower cross, post-overshoot, upper boundary, upper state, lower boundary, upper reference, lower reference, lower state.

2.3 V クロック波形において、Low 状態レベルに対する最大オーバーシュート率、オーバーシュートのレベルおよびサンプル瞬時を決定します。'Region''Preshoot' に指定して遷移前の計量を出力します。

2.3 V クロックのデータをサンプリング瞬時と共に読み込みます。クロック データは 4 MHz でサンプリングされています。

load('transitionex.mat','x','t')

最大のオーバーシュートが発生する位置の、最大オーバーシュート率、ボルト単位でのオーバーシュートのレベルおよびサンプリング瞬時を決定します。結果をプロットします。

[os,oslev,osinst] = overshoot(x,t,'Region','Preshoot')
os = 4.8050
oslev = 0.1020
osinst = 4.7500e-06
overshoot(x,t,'Region','Preshoot');

Figure Overshoot Plot contains an axes object. The axes object contains 12 objects of type line. These objects represent signal, upper cross, lower cross, pre-overshoot, upper boundary, upper state, lower boundary, upper reference, lower reference, lower state.

入力引数

すべて折りたたむ

2 値波形。実数値のベクトルとして指定します。x のサンプル瞬時は、ベクトルのインデックスに対応します。x の最初のサンプル瞬時は t = 0 に対応します。

サンプルレート (ヘルツ単位)。実数の正のスカラーとして指定します。サンプルレートは、x の要素に対応するサンプル瞬時を決定します。

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

名前と値の引数

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

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

例: 'Region','Preshoot' は、遷移前の逸脱領域を指定します。

波形振幅のパーセント比で表した基準レベル。1 行 2 列の実数値ベクトルとして指定します。この関数は、Low 状態レベルを 0% として定義し、High 状態レベルを 100% として定義します。最初の要素は下位パーセント基準レベルに対応し、2 番目の要素は上位パーセント基準レベルに対応します。

オーバーシュートを計算する逸脱領域。'Preshoot' または 'Postshoot' で指定します。'Preshoot' を指定する場合、この関数は遷移前の逸脱領域の終了を、信号が最初の状態から抜け出る際の最終時点として定義します。'Postshoot' を指定する場合、この関数は遷移後の逸脱領域の開始を、信号が 2 番目の状態に入る時点として定義します。既定では、この関数はオーバーシュートを遷移後の逸脱領域について計算します。

逸脱領域の継続時間。実数値スカラーとして指定します。この関数は、各遷移の指定した継続時間のオーバーシュートを、対応する遷移の継続時間の倍数として計算します。逸脱領域の継続時間が経過する前に波形のエッジに到達した場合、あるいは完全な遷移の介在が検出された場合、継続時間は波形のエッジまたは介在する遷移の開始で打ち切られます。

Low 状態レベルおよび High 状態レベル。1 行 2 列の実数値ベクトルとして指定します。最初の要素は入力波形の Low 状態レベルに対応し、2 番目の要素は High 状態レベルに対応します。

許容誤差レベル。実数値スカラーとして指定します。この関数は、許容誤差を High と Low の状態レベル間の差のパーセント比として表します。各遷移の初期レベルと最終レベルは、それぞれの状態レベル内でなければなりません。

出力引数

すべて折りたたむ

状態レベル間の差のパーセント比として表されるオーバーシュート。ベクトルとして返されます。OS の長さは入力信号で検出された遷移の数に対応します。詳細については、オーバーシュートを参照してください。

オーバーシュート レベル。列ベクトルとして返されます。

遷移前または遷移後のオーバーシュートのサンプル瞬時。列ベクトルとして返されます。fs または t を指定すると、オーバーシュート瞬時の単位は秒となります。fs または t を指定しない場合、オーバーシュート瞬時は入力ベクトルのインデックスとなります。

詳細

すべて折りたたむ

状態レベルの推定

遷移を判定するため、関数 overshoot はヒストグラム法により、次の手順で入力 2 値波形 x の状態レベルを推定します。

  1. データの最小および最大振幅を決定します。

  2. 指定したヒストグラムのビンの数について、ビン幅を決定します。これは、ビン数に対する振幅範囲の比です。

  3. データ値をヒストグラムのビンに振り分けます。

  4. カウントが非ゼロの最小および最大インデックスのヒストグラム ビンを特定します。

  5. ヒストグラムを 2 つのサブヒストグラムに分割します。

  6. 上位および下位ヒストグラムのモードまたは平均を決定して状態レベルを計算します。

この関数は、Low 状態の上限と High 状態の下限を横断するすべての間隔を識別します。Low 状態と High 状態の上下限は、状態レベル +/- 状態レベル間の差の倍数として表されます。

オーバーシュート

この関数は、各遷移の最終状態レベルからの最大偏差に基づいてオーバーシュートのパーセント比を計算します。

立ち上がり (正極性) パルスでは、オーバーシュートは次のように表されます。

100(OS2)(S2S1)

ここで、O は High 状態レベルを超える最大偏差、S2 は High 状態、S1 は Low 状態です。

立ち下がり (負極性) パルスでは、オーバーシュートは次のように表されます。

100(OS1)(S2S1)

この図は、立ち上がり遷移のオーバーシュートの計算を示しています。

Overshoot for positive-going transition

赤い破線は、推定された状態レベルを示します。双方向の黒い矢印は High と Low の状態レベル間の差を示しています。黒い実線は、オーバーシュートの値と High 状態レベルとの差を示しています。

状態レベルの許容誤差

状態レベルごとに、上下限を指定することができます。こうした上下限は、「状態レベル +/- 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% の上下限 (許容誤差領域) を示したものです。太い破線は、推定された状態レベルを示します。

参照

[1] IEEE Standard 181. IEEE® Standard on Transitions, Pulses, and Related Waveforms (2003): 15–17.

拡張機能

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

バージョン履歴

R2012a で導入