Main Content

pulseperiod

説明

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

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

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

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

[p,initcross,finalcross] = pulseperiod(___) は、各パルスの最終遷移の中央基準レベル瞬時 finalcross を返します。前の構文の入力を任意に組み合わせて指定できます。

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

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

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

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

すべて折りたたむ

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

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

p = pulseperiod(x,t)
p = 5.0030e-06

波形のプロット上のパルス周期に注釈を付けます。

pulseperiod(x,t);

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

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

load('pulseex.mat','x','t')
[~,initcross,~,nextcross] = pulseperiod(x,t)
initcross = 3.1240e-06
nextcross = 8.1270e-06

パルス周期を出力します。データのプロット上に中央基準レベル瞬時を示します。

pulseperiod(x,t)

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

ans = 5.0030e-06

入力引数

すべて折りたたむ

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

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

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

名前と値の引数

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

例: p = pulseperiod(x,Fs,StateLevels=[0 5])

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

例: p = pulseperiod(x,Fs,'StateLevels',[0 5])

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

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

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

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

出力引数

すべて折りたたむ

秒単位のパルス周期。ベクトルとして返されます。"パルス周期" は、2 つの連続する遷移の中央基準レベル瞬時間の時間として定義されます。関数が 2 つの正極性遷移を見つけられない場合、p は空になります。

メモ

pulseperiod は中央基準レベル瞬時を判別するのに内挿を使用するので、p は 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] IEEE® Standard on Transitions, Pulses, and Related Waveforms, IEEE Standard 181, 2003.

拡張機能

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

バージョン履歴

R2012a で導入