zcr {seewave} | R Documentation |
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, channel = 1, wl = 512, ovlp = 0, plot = TRUE, type = "o", xlab =
"Time (s)", ylab = "Zero crossing rate", ...)
Arguments
wave |
an R object. |
f |
sampling frequency of |
channel |
channel of the R object, by default left channel (1). |
wl |
length of the window for the analysis (even number of
points, by default = 512). If |
ovlp |
overlap between two successive analysis windows (in %) if
|
plot |
a logical, if |
type |
if |
xlab |
if |
ylab |
if |
... |
other |
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) \geq 0
and
sgn[x(t)] = -1
if
x(t) < 0
Value
The are two possibilities:
a numeric vector of length 1 if
wl
isNULL
,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) if
wl
is notNULL
.
Note
The are two possibilities:
if
wl
isNULL
then the zero-crossing rate is computed for the complete signal.if
wl
is notNULL
the the zero-crossing rate is computed for for a window sliding along the time wave.
The ZCR is supposed to help in detection of voiced/unvoiced sound sections.
Author(s)
Jerome Sueur
References
https://en.wikipedia.org/wiki/Zero-crossing_rate
See Also
Examples
data(tico)
## a single value for the complete signal, no plot
zcr(tico, wl=NULL)
## a series of values computed for a sliding window of 512 samples, plot
zcr(tico)