ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

undershoot

2 値波形遷移のアンダーシュート指標

構文

US = undershoot(X)
US = undershoot(X,FS)
US = undershoot(X,T)
[US,USLEV,USINST] = undershoot(...)
[...] = undershoot(...,Name,Value)
undershoot(...)

説明

US = undershoot(X) は、2 値波形 X における各遷移の最終状態レベルを下回る最大偏差を返します。アンダーシュート、US は、状態レベル間の差のパーセント比として表されます。「アンダーシュート」を参照してください。US の長さは入力信号で検出された遷移の数に対応します。X のサンプル瞬時は、ベクトルのインデックスに対応します。遷移を判定するため、undershoot はヒストグラム法により入力波形の状態レベルを推定します。undershoot は、Low 状態の上限と High 状態の下限を横断するすべての領域を識別します。Low 状態と High 状態の上下限は、状態レベル +/- 状態レベル間の差の倍数として表されます。「状態レベルの許容誤差」を参照してください。

US = undershoot(X,FS) では、サンプリング周波数 FS を Hz で指定します。サンプリング周波数は、X の要素に対応するサンプル瞬時を決定します。X の最初のサンプル瞬時は t=0 に対応します。

US = undershoot(X,T) では、サンプル瞬時 TX と同数の要素をもつベクトルとして指定します。

[US,USLEV,USINST] = undershoot(...) は各遷移について、オーバーシュートのレベル USLEV とサンプル瞬時 USINST を返します。

[...] = undershoot(...,Name,Value) は、1 つまたは複数の Name,Value 引数ペアによって指定される追加オプションを用いて、最終状態レベルより値の下回る最大偏差を返します。

undershoot(...) は 2 値波形をプロットし、各遷移のアンダーシュートの位置と共に、下位および上位の基準レベル瞬時とそれに関連する基準レベルを示します。undershoot ではまた状態レベルを、関連する状態の上下限と共にプロットします。

入力引数

X

2 値波形。X は実数値の行ベクトルまたは列ベクトルです。

FS

Hz のサンプルレート。

T

サンプル瞬時のベクトル。T の長さは、2 値波形 X の長さと等しくなければなりません。

名前/値のペアの引数

'PercentReferenceLevels'

波形振幅のパーセント比で表した基準レベル。Low 状態レベルは 0 パーセントであると定義されます。High 状態レベルは 100 パーセントであると定義されます。'PercentReferenceLevels' の値は、要素が下位パーセント基準レベルと上位パーセント基準レベルに対応する 2 要素の実数行ベクトルです。

既定値: [10 90]

'Region'

アンダーシュートの計算を実行する領域を指定します。'Region' の有効な値は 'Preshoot' または 'Postshoot' です。'Preshoot' を指定する場合、遷移前の逸脱領域の終了は、信号が最初の状態から抜け出る際の最終時点として定義されます。'Postshoot' を指定する場合、遷移後の逸脱領域の開始は、信号が 2 番目の状態に入る時点として定義されます。

既定値: 'Postshoot'

'SeekFactor'

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

既定値: 3

'StateLevels'

Low 状態レベルおよび High 状態レベル。Low 状態レベルおよび High 状態レベルに使用するレベルを、1 番目と 2 番目の要素が入力波形の Low 状態レベルおよび High 状態レベルに対応する 2 要素の実数行ベクトルとして指定します。

'Tolerance'

各遷移の初期レベルと最終レベルが間に収まらなければならない、それぞれの状態レベルの許容誤差を指定します。'Tolerance' の値は、High と Low の状態レベル間の差に対するパーセント比を表わすスカラーです。「状態レベルの許容誤差」を参照してください。

既定値: 2

出力引数

US

状態レベル間の差のパーセント比として表されるアンダーシュート。アンダーシュートの割合は、各遷移の最終状態レベルからの最大偏差に基づいて計算されます。既定の設定では、アンダーシュートは遷移後の逸脱領域について計算されます。「アンダーシュート」を参照してください。

USLEV

遷移前または遷移後のアンダーシュートのレベル。

USINST

遷移前または遷移後のアンダーシュートのサンプル瞬時。サンプリング周波数またはサンプリング瞬時を指定すると、アンダーシュート瞬時の単位は秒となります。サンプリング周波数またはサンプリング瞬時を指定しない場合、アンダーシュート瞬時は入力ベクトルのインデックスとなります。

定義

アンダーシュート

立ち上がり (正極正) パルスでは、アンダーシュートは次の割合として表されます。

100(S2U)(S2S1)

ここで、U は High 状態レベルを下回る最大偏差、S2 は High 状態、S1 は Low 状態です。

立ち下がり (負極性) パルスでは、アンダーシュートは次の割合として表されます。

100(S1U)(S2S1)

以下の図は、立ち上がり遷移のアンダーシュートの計算を示しています。

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

状態レベルの許容誤差

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

S1±α100(S2S1)

ここで、S1 は Low 状態レベル、S2 は High 状態レベルです。式の最初の項を S2 で置き換えると、High 状態の α% 許容誤差領域が得られます。

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

すべて展開する

遷移後の逸脱領域におけるアンダーシュートの割合

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

2.3 V クロックのデータを読み込みます。波形をプロットします。この例では、遷移後の領域における最大のアンダーシュートはインデックス 23 付近で発生することがわかります。

load('transitionex.mat', 'x');
plot(x);
set(gca,'xtick',[1 5 12 19 23 30 40]);
grid on;

最大アンダーシュート率を決定します。

us = undershoot(x);

遷移後の逸脱領域におけるアンダーシュートの割合、レベルおよびサンプル瞬時

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

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

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

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

[us,uslev,usinst] = undershoot(x,t);
plot(t.*1e6,x); xlabel('Microseconds');
hold on; grid on;
plot(usinst*1e6,uslev,'ro','markerfacecolor',[1 0 0]);

遷移前の逸脱領域におけるアンダーシュートの割合、レベルおよびサンプル瞬時

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

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

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

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

load('transitionex.mat', 'x','t');
[us,uslev,usinst] = undershoot(x,t,'Region','Preshoot');
plot(t.*1e6,x); xlabel('Microseconds');
hold on; grid on;
plot(usinst*1e6,uslev,'ro','markerfacecolor',[1 0 0]);

参考文献

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

この情報は役に立ちましたか?