Last chance! 50% off unlimited learning
Sale ends in
sp.en.ts
spectral entropy across signals as a time series.
of signals selected by manualoc
or autodetec
.
sp.en.ts(X, wl = 512, length.out = 20, wn = "hanning", ovlp = 70, bp = NULL,
threshold = 15, img = TRUE, parallel = 1, path = NULL, img.suffix = "sp.en.ts",
pb = TRUE, clip.edges = FALSE, leglab = "sp.en.ts", sp.en.range = c(2, 10), ...)
A numeric vector of length 1 specifying the window length of the spectrogram, default is 512. Note that this is particularly important for measuring spectral entropy. Low values (~100) generate a very detail contour of the variation in spectral entropy that is probably not useful for assesing signal similarity.
A character vector of length 1 giving the number of measurements of spectral entropy desired (the length of the time series).
Character vector of length 1 specifying window name. Default is
"hanning". See function ftwindow
for more options.
Numeric vector of length 1 specifying % of overlap between two
consecutive windows, as in spectro
. Default is 70.
A numeric vector of length 2 for the lower and upper limits of a
frequency bandpass filter (in kHz). Default is NULL
.
amplitude threshold (%) for dominant frequency detection. Default is 15.
Logical argument. If FALSE
, image files are not produced. Default is TRUE
.
Numeric. Controls whether parallel computing is applied. It specifies the number of cores to be used. Default is 1 (i.e. no parallel computing). Not available in Windows OS.
Character string containing the directory path where the sound files are located.
A character vector of length 1 with a sufix (label) to add at the end of the names of image files.
Logical argument to control progress bar. Default is TRUE
. Note that progress bar is only used
when parallel = 1.
Logical argument to control whether edges (start or end of signal) in
which amplitude values above the threshold were not detected will be removed. If
TRUE
this edges will be excluded and signal contour will be calculated on the
remainging values. Default is FALSE
.
A character vector of length 1 or 2 containing the label(s) of the frequency contour legend in the output image.
Numeric vector of length 2. Range of frequency in which to display the entropy values on the spectrogram (when img = TRUE). Default is c(2, 10). Negative values can be used in order to stretch more the range.
Additional arguments to be passed to trackfreqs
for customizing
graphical output.
A data frame with the dominant frequency values measured across the signals. If img is
TRUE
it also produces image files with the spectrograms of the signals listed in the
input data frame showing the location of the dominant frequencies
(see trackfreqs
description for more details).
This function spectral entropy across signals as a time series.
The function uses the approx
function to interpolate values between spectral
entropy measures (calculated with csh
). If there are no frequencies above the amplitude theshold
at the begining or end of the signals then NAs will be generated. On the other hand,
if there are no frequenciesabove the amplitude theshold in between signal segments in which amplitude was
detected then the values of this adjacent segments will be interpolated
to fill out the missing values (e.g. no NAs in between detected amplitude segments). Missing values at the start
of end can be removed with "clip.edges".
specreator
for creating spectrograms from selections,
snrspecs
for creating spectrograms to
optimize noise margins used in sig2noise
Other spectrogram creators: color.spectro
,
dfDTW
, dfts
,
ffDTW
, ffts
,
snrspecs
, specreator
,
trackfreqs
# NOT RUN {
{
# set the temp directory
setwd(tempdir())
#load data
data(list = c("Phae.long1", "Phae.long2", "Phae.long3", "Phae.long4","selec.table"))
writeWave(Phae.long2, "Phae.long2.wav") #save sound files
writeWave(Phae.long1, "Phae.long1.wav")
writeWave(Phae.long3, "Phae.long3.wav") #save sound files
writeWave(Phae.long4, "Phae.long4.wav")
# without clip edges
sp.en.ts(X = selec.table, threshold = 10, bp = NULL, clip.edges = FALSE, length.out = 10,
type = "b", sp.en.range = c(-25, 10))
# with clip edges and length.out 10
sp.en.ts(X = selec.table, threshold = 10, bp = c(2, 12), clip.edges = TRUE, length.out = 10)
}
# }
Run the code above in your browser using DataLab