zc {seewave} | R Documentation |
This function measures the period of a full oscillating cycle.
zc(wave, f, plot = TRUE, interpol = 1, threshold = NULL, xlab = "Time (s)", ylab = "Frequency (kHz)", ylim = c(0, f/2000),...)
wave |
data describing a time wave
or a Sample object generated loading a wav file
with loadSample (package sound). |
f |
sampling frequency of wave (in Hz).
Does not need to be specified if wave is a Sample object. |
plot |
logical, if TRUE plots the dominant frequency along
the time wave(by default TRUE ). |
interpol |
interpolation factor. |
threshold |
amplitude threshold for signal detection (in % ). |
xlab |
title of the x axis. |
ylab |
title of the y axis. |
ylim |
the range of y values. |
... |
other plot graphical parameters. |
If plot
is FALSE
, zc
returns a vector of numeric data with
the instantaneous frequency.
If plot
is FALSE
, zc
returns a two-column matrix, the first column corresponding to time in seconds (x-axis) and the second column corresponding
to the instantaneous frequency of the time wave in kHz (y-axis).
‘NA’s correspond either to pause periods (e. g. detected applying
threshold
or sections of the time wave not crossing the zero line. To remove ‘NA’s with na.omit
allows to get only instantaneous frequency values but
discards information about pause sections.
interpol
adds points to the time wave by linear interpolation
(through approx
). This increases measurement precision but as well
time process. Type argument of plot
cannot be set to “l”.
Jerome Sueur sueur@mnhn.fr, Caroline Simonis csimonis@mnhn.fr and Thierry Aubin thierry.aubin@u-psud.fr
Hopp, S. L., Owren, M. J. and Evans, C. S. (Eds) 1998. Animal acoustic communication. Springer, Berlin, Heidelberg.
data(pellucens) pellu1<-cutw(pellucens,f=22050,from=0,to=1,plot=FALSE) # without interpolation zc(pellu1,f=22050,threshold=5,pch=20) # with interpolation zc(pellu1,f=22050,threshold=5,interpol=20,pch=20) # a way to plot with a line and to filter low frequencies pellu2<-zc(pellu1,f=22050,threshold=5,interpol=20,plot=FALSE) pellu3<-na.omit(pellu2[,2]) pellu4<-pellu3[pellu3>3] plot(x=seq(0,nrow(pellu1)/22050,length.out=length(pellu4)), y=pellu4,type="l",xlab="Time(s)",ylab="Frequency(kHz)")