ドキュメンテーション

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

pulsewidth

2 値波形のパルス幅

構文

W = pulsewidth(X)
W = pulsewidth(X,FS)
W = pulsewidth(X,T)
[W,INITCROSS] = pulsewidth(...)
[W,INITCROSS,FINALCROSS] = pulsewidth(...)
[W,INITCROSS,FINALCROSS,MIDLEV] = pulsewidth(...)
W = pulsewidth(...,Name,Value)
pulsewidth(...)

説明

W = pulsewidth(X) は、2 値波形 X における、各正極性パルスの初回遷移と最終遷移の中央基準レベル瞬時間の時間差を含んだベクトル W を返します。遷移を決定するため、pulsewidth ではヒストグラム法により X の Low 状態レベルおよび High 状態レベルを推定します。pulsewidth は、Low 状態の上限と High 状態の下限を横断するすべての領域を識別します。Low 状態と High 状態の上下限は、状態レベル +/- 状態レベル間の差の倍数として表されます。「状態レベルの許容誤差」を参照してください。pulsewidth は中央基準レベル瞬時を判別するのに内挿を使用するので、W は 2 値波形 X のサンプリング瞬時に対応しない値を含む可能性があります。

W = pulsewidth(X,FS) では、サンプルレート FS を正のスカラー値として Hz で指定します。波形の最初のサンプルは t=0 に対応します。pulsewidth は中央基準レベル瞬時を判別するのに内挿を使用するので、W は 2 値波形 X のサンプリング瞬時に対応しない値を含む可能性があります。

W = pulsewidth(X,T) では、サンプル瞬時 TX と同数の要素をもつベクトルとして指定します。pulsewidth は中央基準レベル瞬時を判別するのに内挿を使用するので、W は 2 値波形 X のサンプリング瞬時に対応しない値を含む可能性があります。

[W,INITCROSS] = pulsewidth(...) は列ベクトル INITCROSS を返し、その要素は各パルスの初回遷移の中央基準レベル瞬時に対応します。

[W,INITCROSS,FINALCROSS] = pulsewidth(...) は列ベクトル FINALCROSS を返し、その要素は各パルスの最終遷移の中央基準レベル瞬時に対応します。

[W,INITCROSS,FINALCROSS,MIDLEV] = pulsewidth(...) は、中央基準レベルに対応する波形での値 MIDLEV を返します。

W = pulsewidth(...,Name,Value) は、1 つまたは複数の Name,Value 引数ペアで指定される追加オプションを用いて、パルス幅を返します。

pulsewidth(...) は信号をプロットし、パルス幅が計算される各パルスの領域を暗色で表示します。これにより中間点クロッシングの位置と、関連する基準レベルがマークされます。状態レベルと、それに関連する上限および下限もプロットされます ('Tolerance' という名前の Name,Value ペアで調整可能)。

入力引数

X

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

FS

Hz のサンプルレート。

T

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

名前/値のペアの引数

'MidPercentReferenceLevel'

波形振幅のパーセント比で表した中央基準レベル。「中央基準レベル」を参照してください。

既定値: 50

'Polarity'

パルスの極性。極性を 'positive' または 'negative' として指定します。'positive' を指定する場合、pulsewidth は初回遷移が立ち上がり (正極性) のパルスを探します。'negative' を指定する場合、pulsewidth は初回遷移が立ち下がり (負極性) のパルスを探します。「パルスの極性」を参照してください。

既定値: 'positive'

'StateLevels'

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

'Tolerance'

割合として表される許容誤差レベル (状態の上下限)。「状態レベルの許容誤差」を参照してください。

既定値: 2

出力引数

W

秒単位のパルス幅。パルス幅は、パルスの初回遷移と最終遷移の間の時間差です。初回遷移と最終遷移の時間は [1] で transition occurence instants と呼ばれています。

INITCROSS

初回遷移の中央基準レベル瞬時

FINALCROSS

最終遷移の中央基準レベル瞬時

MIDLEV

中央基準レベルに対応する波形での値

定義

中央基準レベル

Low 状態レベルが S_1、High 状態レベルが S_2 の 2 値波形における中央基準レベルは次のようになります。

S1+12(S2S1)

中央基準レベル瞬時

y50% によって中央基準レベルを示します。

t50%- および t50%+ によって、y50% の値に最も近い波形での値に対応する 2 つの連続するサンプリング瞬時を示します。

y50%- および y50%+ によって、t50%- および t50%+ における波形での値を示します。

中央基準レベル瞬時は次のようになります。

t50%=t50%+(t50%+t50%y50%+y50%)(y50%+y50%)

パルスの極性

パルスの初回遷移が立ち上がりである場合、パルスは正極性となります。次の図は正極性のパルスを示しています。

すなわち、正極性 (立ち上がり) パルスの終端状態は開始状態よりも正方向に大きな値をとることになります。

パルスの初回遷移が立ち下がりである場合、パルスは負極性となります。次の図は負極性のパルスを示しています。

すなわち、負極性 (立ち下がり) パルスの開始状態は終端状態よりも正方向に大きな値をとることになります。

状態レベルの許容誤差

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

S1±α100(S2S1)

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

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

すべて展開する

2 値波形のパルス幅

4 MHz でサンプリングした 2 値波形のパルス幅を計算します。

load('pulseex.mat', 'x', 't');
w = pulsewidth(x, t);
plot(t,x); grid on;

2 値波形の最初と 2 番目の遷移時間

4 MHz でサンプリングした 2 値波形の初回遷移と最終遷移の発生を計算します。結果と遷移の注釈をプロットします。

load('pulseex.mat', 'x', 't');
fs = 4e6;
[w,initcross,finalcross] = pulsewidth(x,fs);
plot(t.*1e6,x);
set(gca,'xtick',[initcross*1e6 finalcross*1e6]);
grid on;
xlabel('microseconds');

2 値波形の状態レベルの指定

データからレベルを推定する代わりに、2 値波形の状態レベルを指定します。'StateLevels' の名前/値ペアを使用して、Low 状態レベルを 0、High 状態レベルを 5 と入力します。

load('pulseex.mat', 'x', 't');
[w,initcross,finalcross] = pulsewidth(x,fs,'StateLevels',[0 5]);

参考文献

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

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