Documentation

This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English verison of the page.

Note: This page has been translated by MathWorks. Please click here
To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.

statelevels

State-level estimation for bilevel waveform with histogram method

Syntax

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

Description

LEVELS = statelevels(X) estimates the low- and high-state levels in the bilevel waveform, X, using the histogram method. See Algorithms.

LEVELS = statelevels(X,NBINS) specifies the number of bins to use in the histogram as a positive scalar. If unspecified, NBINS defaults to 100.

LEVELS = statelevels(X,NBINS,METHOD) estimates state levels using the mean or mode of the subhistograms. Valid entries for METHOD are 'mean' or 'mode'. METHOD defaults to 'mode'. See Algorithms.

[LEVELS,HISTOGRAM] = statelevels(...) returns the histogram, HISTOGRAM, of the values in X.

[LEVELS,HISTOGRAM,BINLEVELS] = statelevels(...) returns the centers of the histogram bins.

statelevels(...) displays a plot of the signal and the corresponding computed histogram.

Input Arguments

X

Bilevel waveform. X is a real-valued row or column vector.

NBINS

Number of histogram bins

Default: 100

METHOD

State-level estimation method in the subhistograms. METHOD specifies the statistic to use for the estimation of the low- and high-state levels. Valid entries for METHOD are 'mode' or 'mean'. See Algorithms.

Default: 'mode'

Output Arguments

LEVELS

Levels of low and high states. LEVELS is a 1-by-2 row vector of state levels estimated by the histogram method. The first element of LEVELS is the low-state level. The second element of LEVELS is the high-state level.

HISTOGRAM

Histogram counts (frequencies). HISTOGRAM is a column vector with NBINS elements containing the number of data values in each histogram bin.

BINLEVELS

Histogram bin centers. BINLEVELS is a column vector containing the bin centers for the histogram counts in HISTOGRAM.

Examples

collapse all

Estimate the low- and high-state levels of 2.3 V underdamped clock data. Plot the data with the estimated state levels and subhistograms.

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

statelevels(x);

Estimate the low and high-state levels of 2.3 V underdamped clock data sampled at 4 MHz.

Use the default number of bins and modes of the subhistograms to estimate the state levels.

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

Plot the clock data with the lines indicating the estimated low and high-state levels.

statelevels(x)
ans =

    0.0027    2.3068

Estimate the low and high-state levels of 2.3 V underdamped clock data sampled at 4 MHz.

Use the default number of bins and means of the subhistograms to estimate the state levels. Plot the clock data with the lines indicating the estimated low and high-state levels.

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

statelevels(x,1e3,'mean')
ans =

   -0.0014    2.3014

Estimate the low- and high-state levels of 2.3 V underdamped clock data sampled at 4 MHz. Return the histogram counts and histogram bin centers used in the histogram method. Use four bins.

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

    0.2427    2.0428


histog =

    50
     0
     0
    50


bilevs =

    0.2427
    0.8427
    1.4428
    2.0428

Plot the waveform and annotate the levels.

statelevels(x,4);

More About

collapse all

State

A particular level, which can be associated with an upper- and lower-state boundary. States are ordered from the most negative to the most positive. In a bilevel waveform, the most negative state is the low state. The most positive state is the high state.

State-Level Tolerances

Each state level can have associated lower- and upper-state boundaries. These state boundaries are defined as the state level plus or minus a scalar multiple of the difference between the high state and the low state. To provide a useful tolerance region, the scalar is typically a small number such as 2/100 or 3/100. In general, the $\alpha\%$ region for the low state is defined as

$$S_1\pm{\alpha\over{100}}(S_2-S_1),$$

where $S_1$ is the low-state level and $S_2$ is the high-state level. Replace the first term in the equation with $S_2$ to obtain the $\alpha\%$ tolerance region for the high state.

The following figure illustrates lower and upper 2% state boundaries (tolerance regions) for a positive-polarity bilevel waveform. The red dashed lines indicate the estimated state levels.

Algorithms

statelevels uses the histogram method to estimate the states of a bilevel waveform. The histogram method is described in [1]. To summarize the method:

  1. Determine the maximum and minimum amplitudes and amplitude range of the data.

  2. For the specified number of histogram bins, determine the bin width as the ratio of the amplitude range to the number of bins.

  3. Sort the data values into the histogram bins.

  4. Identify the lowest-indexed histogram bin, ilow, and highest-indexed histogram bin, ihigh, with nonzero counts.

  5. Divide the histogram into two subhistograms.

    The indices of the lower histogram bins are ilowi ≤ 1/2(ihighilow).

    The indices of the upper histogram bins are ilow + 1/2(ihighilow) ≤ iihigh.

  6. Compute the state levels by determining the mode or mean of the lower and upper histograms.

References

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

Introduced in R2012a

Was this topic helpful?