Learn R Programming

seewave (version 1.7.6)

zcr: Zero-crossing rate

Description

This functions computes the zero-crossing rate of a time function, i. e. the average number the sign of a time wave changes.

Usage

zcr(wave, f, wl = 512, ovlp = 0, plot = TRUE, type = "o", xlab =
"Time (s)", ylab = "Zero crossing rate", ...)

Arguments

wave
an R object.
f
sampling frequency of wave (in Hz). Does not need to be specified if embedded in wave.
wl
length of the window for the analysis (even number of points, by default = 512). If NULL the zero-crossing rate is computed of the complete signal.
ovlp
overlap between two successive analysis windows (in %) if wl is not NULL.
plot
a logical, if TRUE plots a the zero-crossing rate results along time.
type
if plot is TRUE, type of plot that should be drawn. See plot for details (by default "l" for lines).
xlab
if plot is TRUE, label of the x axis.
ylab
if plot is TRUE, label of the y axis.
...
other plot graphical parameters.

Value

  • The are two possibilities:
    1. a numeric vector of length 1 ifwlisNULL,
    2. a numeric two-column matrix is returned with the first columnn being time (s) and the second colum being the zero-crossing rate (no scale) ifwlis notNULL.

Details

The zero-crossing rate is computed according to: $$zcr = \frac{1}{2 \times N} \sum_{t=0}^{N-1} |sgn[x(t+1)] -sgn[x(t)]|$$ with: N the length of the signal x and where: $$sgn[x(t)] = 1$$ if $$x(t) \leq 0$$ and $$sgn[x(t)] = -1$$ if $$x(t) > 0$$

References

http://en.wikipedia.org/wiki/Zero-crossing_rate

See Also

zc

Examples

Run this code
data(tico)
## a single value for the complete signal, no plot
zcr(tico, wl=NULL)
## a series of values computed for a sliding window oof 512 samples, plot
zcr(tico)

Run the code above in your browser using DataLab