Main Content

slewrate

2 値波形のスルー レート

説明

s = slewrate(x) は、2 値波形 x で見つかるすべての遷移についてスルー レートを返します。遷移を判定するため、関数 slewrate はヒストグラム法により入力波形の状態レベルを推定し、Low 状態の上限と High 状態の下限を横断するすべての領域を識別します。

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

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

[s,lt,ut] = slewrate(___) は、波形が下位パーセント基準レベルと交差する時点 lt と、上位パーセント基準レベルと交差する時点 ut を返します。下位と上位のパーセント基準レベルを指定しない場合、各レベルは既定の設定でそれぞれ 10% と 90% となります。前の構文の入力を任意に組み合わせて指定できます。

[s,lt,ut,ll,ul] = slewrate(___) は、下位基準レベルに対応する波形での値 ll と、上位基準レベルに対応する波形での値 ul を返します。

s = slewrate(___,Name,Value) は、1 つ以上の Name,Value 引数で指定される追加オプションを使って、すべての遷移のスルー レートを返します。

slewrate(___) は 2 値波形をプロットし、スルー レートが計算される各遷移の領域を暗い色で表示します。プロットでは、下位および上位の基準レベルのクロッシングとそれぞれに関連する基準レベルが示されます。プロットでは状態レベルと、それに関連する許容誤差の上下限も示されます。

すべて折りたたむ

出力引数なしで slewrate を使用して、4 MHz でサンプリングしたステップ波形のスルー レート情報をプロットします。

transitionex.mat ファイルを読み込んでスルー レートを計算します。波形のプロットのスルー レートに注釈を付けます。

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

slewrate(x,t)

ans = 1.0310e+07

2 つが正で 1 つが負の 3 つの遷移をもつ 2 値波形を作成します。サンプル レートは 4 MHz です。3 つの遷移のスルー レートを取得します。

load('transitionex.mat','x')
fs = 4e6;

y = [x;fliplr(x)];
t = (0:length(y)-1)/4e6;

S = slewrate(y,t)
S = 3×1
107 ×

    1.0310
   -0.9320
    1.0310

波形のプロット上の結果に注釈を付けます。

slewrate(y,t);

4 MHz でサンプリングされた 3 つの遷移をもつ波形について、下位遷移および上位遷移の時間を返します。

load('transitionex.mat','x')
fs = 4e6;

y = [x;fliplr(x)];
t = (0:length(y)-1)/fs;

[~,LT,UT] = slewrate(y,t)
LT = 3×1
10-4 ×

    0.0504
    0.0998
    0.1504

UT = 3×1
10-4 ×

    0.0521
    0.0978
    0.1521

時間ベクトルの代わりにサンプル レートを使用して繰り返します。

[~,LT,UT] = slewrate(y,fs)
LT = 3×1
10-4 ×

    0.0504
    0.0998
    0.1504

UT = 3×1
10-4 ×

    0.0521
    0.0978
    0.1521

波形のプロット上の結果に注釈を付けます。

slewrate(y,fs);

4 MHz でサンプリングされた 3 つの遷移をもつ波形について、下位および上位の基準レベルに対応する波形での値を返します。これらの値を既定のレベルである 10% と 90% で計算します。

load("transitionex.mat","x")
fs = 4e6;

y = [x;fliplr(x)];
t = (0:length(y)-1)/fs;

[~,~,~,LL,UL] = slewrate(y,t)
LL = 0.2212
UL = 2.0564

20% と 80% で計算を繰り返します。波形のプロット上の結果に注釈を付けます。

slewrate(y,t,PercentReferenceLevels=[20 80]);

入力引数

すべて折りたたむ

2 値波形。実数値のベクトルとして指定します。入力波形に少なくとも 1 つの遷移がない場合、この関数は空行列を返します。x の最初の時点は t=0 に対応します。

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

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

名前と値の引数

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

例: s = slewrate(x,t,Tolerance=5)

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

例: s = slewrate(x,t,'Tolerance',5)

パーセント基準レベル。1 行 2 列の実数値ベクトルとして指定します。詳細については、パーセント基準レベルを参照してください。

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

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

出力引数

すべて折りたたむ

スルー レート。ベクトルとして返されます。正のスルー レートは、上位パーセント基準レベルが下位パーセント基準レベルよりも後に発生することを示します。負のスルー レートは、上位パーセント基準レベルが下位パーセント基準レベルよりも先に発生することを示します。スルー レートは 10% 基準レベルと 90% 基準レベルを接続するラインの勾配です。

入力信号が下位パーセント基準レベルと交差するときの時点。ベクトルとして返されます。

入力信号が上位パーセント基準レベルと交差するときの時点。ベクトルとして返されます。

下位パーセント基準レベルにおける波形での値。ベクトルとして返されます。

上位パーセント基準レベルにおける波形での値。ベクトルとして返されます。

詳細

すべて折りたたむ

パーセント基準レベル

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

S1+U100(S2S1).

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

S1+L100(S2S1).

スルー レート

スルー レートは上位パーセント基準レベルと下位パーセント基準レベルを接続するラインの勾配です。tL によって波形が下位基準レベルを交差するときの時点を示し、tU によって波形が上位基準レベル交差するときの時点を示すものとします。パーセント基準レベルで与えられている上位と下位のパーセント基準レベルの定義を使用すると、スルー レートは次のようになります。

S1+U100(S2S1){S1+L100(S2S1)}tUtL=UL100S2S1tUtL.

tL が tU よりも先に発生する場合、スルー レートは正になります。tU が tL よりも先に発生する場合、スルー レートは負になります。

状態レベルの許容誤差

状態レベルごとに、上下限を指定することができます。こうした上下限は、「状態レベル +/- 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.

拡張機能

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

バージョン履歴

R2012a で導入