Main Content

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

risetime

立ち上がり 2 値波形遷移の立ち上がり時間

説明

r = risetime(x) は、入力 2 値波形 x の各遷移が 10% 基準レベルから 90% 基準レベルまでを横断する際に要する時間を含むベクトル r を返します。遷移を判定するため、risetime はヒストグラム法により入力波形の状態レベルを推定します。risetime は、Low 状態の上限と High 状態の下限を横断するすべての領域を識別します。Low 状態と High 状態の上下限は、状態レベル +/- 状態レベル間の差の倍数として表されます。状態レベルの許容誤差を参照してください。risetime は内挿を使用するので、r は 2 値波形 x のサンプリング瞬時に対応しない値を含む可能性があります。

r = risetime(x,fs) では、サンプルレートを Hz で指定します。サンプルレートは、x の要素に対応するサンプル瞬時を決定します。x の最初のサンプル瞬時は t = 0 に対応します。risetime は内挿を使用するので、r は 2 値波形 x のサンプリング瞬時に対応しない値を含む可能性があります。

r = risetime(x,t) では、サンプル瞬時 tx と同数の要素をもつベクトルとして指定します。

[r,lt,ut] = risetime(___) はベクトル ltut を返し、その要素は、x が下位パーセント基準レベルおよび上位パーセント基準レベルと交差する時点にそれぞれ対応します。

[r,lt,ut,ll,ul] = risetime(___) はレベル llul を返し、それぞれが下位と上位のパーセント基準レベルに対応します。

[___] = risetime(___,Name,Value) は、1 つ以上の Name,Value 引数ペアで指定される追加オプションを使用して、立ち上がり時間を返します。

risetime(___) は信号をプロットし、立ち上がり時間が計算される各遷移の領域を暗い色で表示します。プロットでは、下位および上位でのクロッシングとそれに関連する基準レベルが示されます。状態レベルと、それに対応する状態の上下限もプロットされます。

すべて折りたたむ

2.3 V クロック波形のサンプルで立ち上がり時間を決定します。

2.3 V クロックのデータを読み込みます。サンプルでの立ち上がり時間を決定します。既定の 10% と 90% のパーセント基準レベルを使用します。

load('transitionex.mat','x','t')
R = risetime(x)
R = 0.7120

立ち上がり時間は 1 未満であり、これは、遷移が 1 サンプルより短い時間で発生したことを示しています。時間情報を含むデータをプロットして、立ち上がり時間に注釈を付けます。

risetime(x,t);

Figure Rise Time Plot contains an axes. The axes contains 12 objects of type patch, line. These objects represent rise time, signal, upper cross, lower cross, upper boundary, upper state, lower boundary, upper reference, lower reference, lower state.

2 値波形を表す 2 つの信号を生成します。信号は、50 Hz で 20 秒間サンプリングされます。最初の信号では、測定開始から 13 秒で遷移が発生します。2 番目の信号では、測定開始から 5 秒で遷移が発生します。これらの信号は異なる振幅をもち、分散が異なるホワイト ガウス ノイズに組み込まれます。信号をプロットします。

tt = linspace(0,20,1001)';
e1 = 1.4*tanh(tt-13)+randn(size(tt))/3;
e2 = tanh(3*(tt-5))+randn(size(tt))/5;

plot(tt,e1,tt,e2)

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

遷移時間が一致するように信号を揃えます。相関ベースの方法では、この種の信号を適切に揃えることができません。

[y1,y2,D] = alignsignals(e1,e2);

plot(y1)
hold on
plot(y2)
hold off

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

risetime を使用して信号を整列させます。各信号について、信号が下位基準レベルと交差する瞬間と上位基準レベルと交差する瞬間の平均として、遷移時間を求めます。揃えた波形をプロットします。

[~,l1,u1] = risetime(e1,tt);
[~,l2,u2] = risetime(e2,tt);

t1 = tt-(l1+u1)/2;
t2 = tt-(l2+u2)/2;

plot(t1,e1,t2,e2)

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

4 MHz でサンプリングした 2.3 V クロック波形で、立ち上がり時間を決定します。20% および 80% の基準レベルを使用して立ち上がり時間を計算します。

2.3 V クロックのデータをサンプリング瞬時と共に読み込みます。連続するサンプル間の時間差の逆数としてサンプル レートを計算します。20% および 80% の基準レベルを使用して立ち上がり時間を決定します。注釈が付けられた波形をプロットします。

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

fs = 1/(t(2)-t(1));

risetime(x,'PercentReferenceLevels',[20 80])

Figure Rise Time Plot contains an axes. The axes contains 12 objects of type patch, line. These objects represent rise time, signal, upper cross, lower cross, upper boundary, upper state, lower boundary, upper reference, lower reference, lower state.

ans = 0.5340

4 MHz でサンプリングした 2.3 V クロック波形で、立ち上がり時間、基準レベル瞬時および基準レベルを決定します。

2.3 V クロックの波形をサンプリング瞬時と共に読み込みます。

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

立ち上がり時間、基準レベル瞬時および基準レベルを決定します。

[R,lt,ut,ll,ul] = risetime(x,t);

下位と上位の基準レベルおよび基準レベル瞬時と共に波形をプロットします。立ち上がり時間が上位と下位の基準レベル瞬時の差であることを示します。

plot(t,x)
xlabel('seconds')
ylabel('Volts')

hold on
plot([lt ut],[ll ul],'o')
hold off

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

fprintf('Rise time is %g seconds.',ut-lt)
Rise time is 1.78e-07 seconds.

入力引数

すべて折りたたむ

2 値波形。実数値のベクトルとして指定します。

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

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

名前と値のペアの引数

オプションの引数 Name,Value のコンマ区切りペアを指定します。Name は引数名で、Value は対応する値です。Name は引用符で囲まなければなりません。Name1,Value1,...,NameN,ValueN のように、複数の名前と値のペアの引数を、任意の順番で指定できます。

例: 'StateLevels',[0,0.8],'Tolerance',10,'PercentReferenceLevels',[20 50] は、低レベルと高レベルがそれぞれ 0 ± 10%0.8 ± 10% であり、信号が 0.8 × 0.2 から 0.8 × 0.5 に移るときに遷移が発生することを指定します。

波形振幅の割合で表した基準レベル。'PercentReferenceLevels' と 2 要素の正の行ベクトルから構成されるコンマ区切りのペアとして指定します。行ベクトルの要素は、下位と上位のパーセント基準レベルに対応します。High 状態レベルは 100% であると定義され、Low 状態レベルは 0% であると定義されます。詳細については、パーセント基準レベルを参照してください。

Low 状態レベルおよび High 状態レベル。'StateLevels' と 2 要素の正の行ベクトルから構成されるコンマ区切りのペアとして指定します。ベクトルの最初と 2 番目の要素が、Low 状態レベルと High 状態レベルに対応します。

状態の上下限。'Tolerance' および割合値として実数の正のスカラーから構成されるコンマ区切りのペアとして指定します。この名前と値のペアの詳細については、状態レベルの許容誤差を参照してください。

出力引数

すべて折りたたむ

立ち上がり遷移の持続時間。ベクトルとして返されます。サンプル レート Fs またはサンプル瞬時 t を指定する場合、立ち上がり時間は秒単位になります。サンプル レートやサンプル瞬時を指定しない場合、立ち上がり時間はサンプル数単位になります。

下位基準レベルのクロッシング瞬時。ベクトルとして返されます。ベクトル lt には、立ち上がり遷移が下位基準レベルと交差する時点が含まれています。既定の設定では、下位基準レベルは 10% 基準レベルです。'PercentReferenceLevels' の名前と値のペアを指定して、既定の基準レベルを変更できます。

上限基準レベルのクロッシング瞬時。ベクトルとして返されます。ベクトル ut には、立ち上がり遷移が上限基準レベルと交差する時点が含まれています。既定の設定では、上位基準レベルは 90% 基準レベルです。'PercentReferenceLevels' の名前と値のペアを指定して、既定の基準レベルを変更できます。

波形振幅単位で定めた下位基準レベル。実数の数値スカラーとして返されます。ll は、各立ち上がり遷移における下位基準レベルに対応する波形での値を含んだベクトルです。既定の設定では、下位基準レベルは 10% 基準レベルです。'PercentReferenceLevels' の名前と値のペアを指定して、既定の基準レベルを変更できます。

波形振幅単位で定めた上位基準レベル。実数の数値スカラーとして返されます。ul は、各立ち上がり遷移における上位基準レベルに対応する波形での値を含んだベクトルです。既定の設定では、上位基準レベルは 90% 基準レベルです。'PercentReferenceLevels' の名前と値のペアを指定して、既定の基準レベルを変更できます。

詳細

すべて折りたたむ

立ち上がり遷移

2 値波形での "立ち上がり遷移" は、Low 状態レベルから High 状態レベルへの遷移です。正極性 (立ち上がり) パルスの終端状態は開始状態よりも正方向に大きな値をとります。波形が遷移近傍で微分可能な場合、正の 1 次導関数を伴う遷移が等価な定義として与えられます。この図は立ち上がり遷移を示しています。

立ち上がり遷移は実際の波形での値に依存しないため、波形の振幅値は表示されていません。立ち上がり遷移は遷移の方向によって定義されます。

パーセント基準レベル

S1 が Low 状態、S2 が High 状態、U が "上位" パーセント基準レベルであるとすると、上位パーセント基準レベルに対応する波形での値は次のようになります。

S1+U100(S2S1).

L が "下位" パーセント基準レベルであるとすると、下位パーセント基準レベルに対応する波形での値は次のようになります。

S1+L100(S2S1).

状態レベルの許容誤差

各状態レベルには、状態の上下限を関連付けることができます。状態のこうした上下限は、「状態レベル +/- 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 値波形における各状態の 2% の上下限 (許容誤差領域) を示したものです。赤い破線は、推定された状態レベルを示します。

参照

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

拡張機能

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

R2012a で導入