C = midcross(X) C = midcross(X,FS) C = midcross(X,T) [C,MIDLEV]
= midcross(...) C = midcross(X,Name,Value) midcross(...)

Description

C = midcross(X) returns
a vector, C, of time instants where each transition
of the input signal, X, crosses the 50% reference
level. The sample instants correspond to the indices of the input
vector. Because midcross uses interpolation to
determine the crossing instant, C may contain
values that do not correspond to sampling instants. To determine the
transitions, midcross estimates the state levels
of X by a histogram method. midcross identifies
all intervals which cross the upper-state boundary of the low state
and the lower-state boundary of the high state. The low-state and
high-state boundaries are expressed as the state level plus or minus
a multiple of the difference between the state levels. See State-Level Tolerances.

C = midcross(X,FS) specifies
the sample rate, FS, in hertz as a positive scalar.
The first sample instant corresponds to t=0.
Because midcross uses interpolation to determine
the crossing instant, C may contain values that
do not correspond to sampling instants.

C = midcross(X,T)
specifies the sample instants, T, as a vector
with the same number of elements as X. Because midcross uses
interpolation to determine the crossing instant, C may
contain values that do not correspond to sampling instants.

[C,MIDLEV]
= midcross(...) returns the waveform value corresponding
to the mid-reference level.

C = midcross(X,Name,Value) returns
the time instants corresponding to mid-reference level crossings with
additional options specified by one or more Name,Value pair
arguments.

midcross(...) plots the signal and marks
the location of the mid-crossings (mid-reference level instants) and
the associated reference levels. midcross also
plots the state levels with upper and lower state boundaries.

Input Arguments

X

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

FS

Sample rate in hertz.

T

Vector of sample instants. The length of T must
equal the length of the bilevel waveform, X.

Name-Value Pair Arguments

Specify optional comma-separated pairs of Name,Value arguments.
Name is the argument
name and Value is the corresponding
value. Name must appear
inside single quotes (' ').
You can specify several name and value pair
arguments in any order as Name1,Value1,...,NameN,ValueN.

'MidPercentReferenceLevel'

Mid-reference level as a percentage of the waveform amplitude.

Default: 50

'StateLevels'

Low and high state levels. StateLevels is
a 1-by-2 real-valued vector. The first element is the low state level.
The second element is the high state level. If you do not specify
low- and high-state levels, midcross estimates
the state levels from the input waveform using the histogram method.

'Tolerance'

Tolerance levels (lower- and upper-state boundaries) expressed
as a percentage. See State-Level Tolerances.

Default: 2

Output Arguments

C

Time instants of the mid-reference level crossings.

Assuming a sampling interval of 1, compute
the mid-reference level instant of a bilevel waveform and plot the
result.

load('transitionex.mat', 'x');
C = midcross(x);
plot(x); hold on;
plot([C C],[-0.5 2.5],'r','linewidth',2);

The instant at which the waveform crosses the 50% reference
level is 21.5. Note that this is not a sampling instant present in
the input vector because midcross uses interpolation
to identify the mid-reference level crossing.

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 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
α% tolerance region for the low state is defined as

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 α% 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.

References

[1] IEEE^{®} Standard on Transitions,
Pulses, and Related Waveforms, IEEE Standard 181, 2003.
p. 20.