メインコンテンツ

pulsewidth

2 値波形のパルス幅

説明

w = pulsewidth(x) は、入力 2 値波形における、各正極性パルスの初回遷移と最終遷移の中央基準レベル瞬時の時間差を返します。

w = pulsewidth(x,fs) では、サンプル レート fs を Hz で指定します。波形の最初のサンプルは t = 0 に対応します。

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

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

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

[w,initcross,finalcross,midlev] = pulsewidth(___) は、中央基準レベルに対応する波形での値 midlev を返します。

W = pulsewidth(___,Name,Value) は、1 つ以上の Name,Value 引数を使用して追加のオプションを指定します。

pulsewidth(___) は信号をプロットし、関数がパルス幅を計算する各パルスの領域を暗色で表示します。この関数により中間点クロッシングの位置と、関連する基準レベルがマークされます。また、この関数は状態レベルとそれに関連する上下限もプロットします。

すべて折りたたむ

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 object. The axes object with xlabel Time (seconds), ylabel Level (Volts) contains 10 objects of type patch, line. One or more of the lines displays its values using only markers 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 object. The axes object with xlabel Time (seconds), ylabel Level (Volts) contains 10 objects of type patch, line. One or more of the lines displays its values using only markers These objects represent pulse width, signal, mid cross, upper boundary, upper state, lower boundary, mid reference, lower state.

データからレベルを推定する代わりに、2 値波形の状態レベルを指定します。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 object. The axes object with xlabel Time (seconds), ylabel Level (Volts) contains 10 objects of type patch, line. One or more of the lines displays its values using only markers These objects represent pulse width, signal, mid cross, upper boundary, upper state, lower boundary, mid reference, lower state.

入力引数

すべて折りたたむ

2 値波形。実数値のベクトルとして指定します。

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

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

名前と値の引数

すべて折りたたむ

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

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

例: 'StateLevels',[0 5] は、Low の状態レベルとして 0、High の状態レベルとして 5 を指定します。

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

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

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

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

出力引数

すべて折りたたむ

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

メモ

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

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

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

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

詳細

すべて折りたたむ

参照

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

拡張機能

すべて展開する

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

バージョン履歴

R2012a で導入