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 つ以上の名前と値の引数で指定される追加オプションを使用して、立ち上がり時間を返します。

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);

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

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

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)

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

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

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

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)

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,fs,PercentReferenceLevels=[20 80])

ans = 1.3350e-07

入力引数

すべて折りたたむ

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

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

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

名前と値の引数

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

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

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

例: "StateLevels",[0 0.8],"Tolerance",10,"PercentReferenceLevels",[20 50]

波形振幅のパーセント比で表した基準レベル。2 要素の正の行ベクトルとして指定します。行ベクトルの要素は、下位と上位のパーセント基準レベルに対応します。High 状態レベルは 100% であると定義され、Low 状態レベルは 0% であると定義されます。詳細については、パーセント基準レベルを参照してください。

Low 状態レベルおよび High 状態レベル。2 要素の行ベクトルとして指定します。ベクトルの最初と 2 番目の要素が、Low 状態レベルと High 状態レベルに対応します。

状態の上下限。割合値として実数の正のスカラーで指定します。詳細については、状態レベルの許容誤差を参照してください。

出力引数

すべて折りたたむ

立ち上がり遷移の持続時間。ベクトルとして返されます。サンプル レート 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 値波形における各状態の 5% の上下限 (許容誤差領域) を示したものです。太い破線は、推定された状態レベルを示します。

参照

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

拡張機能

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

バージョン履歴

R2012a で導入