Main Content

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

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

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

すべて折りたたむ

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

load('pulseex.mat','x','t')
w = pulsewidth(x,t)
w = 1.5016e-06

波形をプロットしてパルス幅に注釈を付けます。

pulsewidth(x,t);

Figure Pulse Width Plot contains an axes. The axes contains 10 objects of type patch, line. These objects represent pulse width, signal, mid cross, upper boundary, upper state, lower boundary, mid reference, lower state.

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

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

[w,initcross,finalcross] = pulsewidth(x,fs);

結果と遷移の注釈をプロットします。

pulsewidth(x,fs);
ax = gca;
ax.XTick = [initcross finalcross];

Figure Pulse Width Plot contains an axes. The axes contains 10 objects of type patch, line. These objects represent pulse width, signal, mid cross, upper boundary, upper state, lower boundary, mid reference, lower state.

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

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

結果と遷移の注釈をプロットします。

pulsewidth(x,fs,'StateLevels',[0 5]);
ax = gca;
ax.XTick = [initcross finalcross];

Figure Pulse Width Plot contains an axes. The axes contains 10 objects of type patch, line. These objects represent pulse width, signal, mid cross, upper boundary, upper state, lower boundary, mid reference, lower state.

詳細

すべて折りたたむ

中央基準レベル

Low 状態レベルが S1、High 状態レベルが S2 の 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 状態の $\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.

R2012a で導入