ドキュメンテーション

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

statelevels

ヒストグラム法を使用した、2 値波形の状態レベル推定

構文

LEVELS = statelevels(X)
LEVELS = statelevels(X,NBINS)
LEVELS = statelevels(X,NBINS,METHOD)
[LEVELS,HISTOGRAM] = statelevels(...)
[LEVELS,HISTOGRAM,BINLEVELS] = statelevels(...)
statelevels(...)

説明

LEVELS = statelevels(X) は、ヒストグラム法を使用して 2 値波形 X の Low 状態レベルおよび High 状態レベルを推定します。アルゴリズムを参照してください。

LEVELS = statelevels(X,NBINS) では、ヒストグラムで使用するビンの数を正のスカラー値として指定します。指定しない場合、NBINS は既定の設定で 100 となります。

LEVELS = statelevels(X,NBINS,METHOD) は、サブヒストグラムの平均またはモードを使用して状態レベルを推定します。METHOD の有効なエントリは 'mean' または 'mode' です。METHOD の既定の設定は 'mode' です。アルゴリズムを参照してください。

[LEVELS,HISTOGRAM] = statelevels(...) は、X の値のヒストグラム HISTOGRAM を返します。

[LEVELS,HISTOGRAM,BINLEVELS] = statelevels(...) は、各ヒストグラム ビンの幅の中心値を返します。

statelevels(...) は、信号とそれに対応する計算されたヒストグラムのプロットを表示します。

入力引数

X

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

NBINS

ヒストグラム ビンの数

既定値: 100

METHOD

サブヒストグラムでの状態レベルの推定法。METHOD は、Low 状態レベルおよび High 状態レベルの推定に使用する統計手法を指定します。METHOD の有効なエントリは 'mode' または 'mean' です。アルゴリズムを参照してください。

既定値: 'mode'

出力引数

LEVELS

Low および High 状態のレベル。LEVELS は、ヒストグラム法で推定された状態レベルの 1 行 2 列の行ベクトルです。LEVELS の最初の要素は Low 状態レベルです。LEVELS の 2 番目の要素は High 状態レベルです。

HISTOGRAM

ヒストグラム カウント (頻度)。HISTOGRAM は、各ヒストグラム ビンにあるデータ値の数を含む NBINS 要素の列ベクトルです。

BINLEVELS

ヒストグラム ビンの幅の中心値。BINLEVELS は、HISTOGRAM でのヒストグラム カウントに対する各ビンの幅の中心値を含む列ベクトルです。

すべて折りたたむ

2.3 V 不足減衰クロック データの Low 状態レベルおよび High 状態レベルを推定します。推定された状態レベルとサブヒストグラムを使ってデータをプロットします。

load('clockex.mat','x')

statelevels(x);

4 MHz でサンプリングされた 2.3 V 不足減衰クロック データの Low 状態レベルおよび High 状態レベルを推定します。

既定のビン数とサブヒストグラムのモードを使用して、状態レベルを推定します。

load('clockex.mat','x','t')
levs = statelevels(x);

推定された Low 状態レベルおよび High 状態レベルを示すラインと共にクロック データをプロットします。

statelevels(x)

ans = 1×2

    0.0027    2.3068

4 MHz でサンプリングされた 2.3 V 不足減衰クロック データの Low 状態レベルおよび High 状態レベルを推定します。

既定のビン数とサブヒストグラムの平均を使用して、状態レベルを推定します。推定された Low 状態レベルおよび High 状態レベルを示すラインと共にクロック データをプロットします。

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

statelevels(x,1e3,'mean')

ans = 1×2

   -0.0014    2.3014

4 MHz でサンプリングされた 2.3 V 不足減衰クロック データの Low 状態レベルおよび High 状態レベルを推定します。ヒストグラム法で使用されるヒストグラム カウントと各ヒストグラム ビンの幅の中心値を返します。4 つのビンを使用します。

load('clockex.mat','x','t')
[levs,histog,bilevs] = statelevels(x,4)
levs = 1×2

    0.2427    2.0428

histog = 4×1

    50
     0
     0
    50

bilevs = 4×1

    0.2427
    0.8427
    1.4428
    2.0428

波形をプロットして、レベルに注釈を付けます。

statelevels(x,4);

詳細

すべて折りたたむ

状態

上位状態境界および下位状態境界を伴う特定のレベル。状態は最小の負から最大の正まで順に配列されます。2 値波形において、最小の負の状態は Low 状態です。最大の正の状態は High 状態です。

状態レベルの許容誤差

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

ここで、 は Low 状態レベル、 は High 状態レベルです。High 状態の 許容誤差領域を得るには、式の最初の項を で置き換えます。

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

アルゴリズム

statelevels は、ヒストグラム法を使用して 2 値波形の状態を推定します。ヒストグラム法は [1] に記述されています。要約は以下のとおりです。

  1. データの最大振幅、最小振幅、振幅範囲を決定します。

  2. 指定した数のヒストグラムのビンについて、ビン数に対する振幅範囲の比としてビン幅を決定します。

  3. データ値をヒストグラムのビンに振り分けます。

  4. カウントがゼロでない最小インデックスのヒストグラム ビン ilow と最大インデックスのヒストグラム ビン ihigh を特定します。

  5. ヒストグラムを 2 つのサブヒストグラムに分割します。

    下位ヒストグラム ビンのインデックスは ilow ≤ i ≤ 1/2(ihigh — ilow) となります。

    上位ヒストグラム ビンのインデックスは ilow + 1/2(ihigh – ilow) ≤ i ≤ ihigh となります。

  6. 下位および上位ヒストグラムのモードまたは平均を決定して状態レベルを計算します。

参考文献

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

R2012a で導入