Main Content

pulsesep

2 値波形パルスの間隔

説明

S = pulsesep(x) は、各正極性パルスの最終立ち下がり遷移と次の立ち上がり遷移における中央基準レベル瞬時間の差を返します。各パルスを構成する遷移を判定するため、関数 pulsesep はヒストグラム法により入力波形の状態レベルを推定します。この関数は、Low 状態の上限と High 状態の下限を横断するすべての領域を識別します。

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

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

[s,initcross] = pulsesep(___) は、最初の正極性遷移の中央基準レベル瞬時 initcross を返します。前の構文の入力を任意に組み合わせて指定できます。

[s,initcross,finalcross] = pulsesep(___) は、各パルスの最終遷移の中央基準レベル瞬時 finalcross を返します。

[s,initcross,finalcross,nextcross] = pulsesep(___) は、各パルスの後で次に検知される遷移の中央基準レベル瞬時 nextcross を返します。

[s,initcross,finalcross,nextcross,midlev] = pulsesep(___) は、中央基準レベル midlev を返します。

[s,initcross,finalcross,nextcross,midlev] = pulsesep(___,Name,Value) は、1 つ以上の名前と値の引数で指定される追加オプションを使用して、パルスの間隔を返します。

pulsesep(___) は信号をプロットし、パルス間隔が算出されている各パルスの間の領域を暗色で表示します。この関数では、中間点クロッシングの位置と、関連する基準レベルがマークされます。また、この関数は状態レベルとそれに関連する上下限もプロットします。上下限は、名前と値の引数 'Tolerance' を使用して調整できます。

すべて折りたたむ

2 つの正極性遷移を伴う 2 値波形のパルス間隔を計算します。サンプルレートは 4 MHz です。

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

s = pulsesep(x,t)
s = 3.5014e-06

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

pulsesep(x,t);

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

2 値波形のパルス間隔を定義する中央基準レベル瞬時を決定します。

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

[~,~,finalcross,nextcross] = pulsesep(x,t)
finalcross = 4.6256e-06
nextcross = 8.1270e-06

パルス間隔を返します。データのプロット上の中央基準レベル瞬時に注釈を付けます。

pulsesep(x,t)

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

ans = 3.5014e-06

入力引数

すべて折りたたむ

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

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

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

名前と値の引数

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

例: p = pulsesep(x,t,Polarity="negative")

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

例: p = pulsesep(x,t,'Polarity',"negative")

波形振幅のパーセント比で表した中央基準レベル。スカラーとして指定します。詳細については、中央基準レベルを参照してください。

パルスの極性。"positive" または "negative" で指定します。"positive" を指定する場合、この関数は初回遷移が立ち上がり (正極性) のパルスを探します。"negative" を指定する場合、この関数は初回遷移が立ち下がり (負極性) のパルスを探します。詳細については、パルスの極性を参照してください。

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

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

出力引数

すべて折りたたむ

秒単位のパルス間隔。ベクトルとして返されます。"パルス間隔" は、1 つのパルスの最終遷移と次のパルスの初回遷移における中央基準レベル瞬時の時間として定義されます。詳細については、パルス間隔を参照してください。

メモ

pulsesep は中央基準レベル瞬時を判別するのに内挿を使用するので、s は 2 値波形 x のサンプリング瞬時に対応しない値を含む可能性があります。

初回遷移の中央基準レベル瞬時。ベクトルとして返されます。

最終遷移の中央基準レベル瞬時。ベクトルとして返されます。

先行するパルスの最終遷移の後に続く、初回遷移の中央基準レベル瞬時。ベクトルとして返されます。

中央基準レベルに対応する波形での値。スカラーとして返されます。

詳細

すべて折りたたむ

中央基準レベル

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 値波形における各状態の 5% の上下限 (許容誤差領域) を示したものです。太い破線は、推定された状態レベルを示します。

パルス間隔

パルス間隔は、1 つのパルスの最終遷移の中央基準レベル瞬時と、次のパルスの初回遷移の中央基準レベル瞬時との時間差です。次の図はパルス間隔を説明したものです。

参照

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

拡張機能

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

バージョン履歴

R2012a で導入