Learn R Programming

warbleR (version 1.1.9)

dfts: Extract the dominant frequency values as a time series

Description

dfts extracts the dominant frequency values as a time series. of signals selected by manualoc or autodetec.

Usage

dfts(X, wl = 512, wl.freq = 512, length.out = 20, wn = "hanning", ovlp = 70, 
bp = c(0, 22), threshold = 15, threshold.time = NULL, threshold.freq = NULL, 
img = TRUE, parallel = 1, path = NULL, img.suffix = "dfts", pb = TRUE, 
clip.edges = FALSE, leglab = "dfts", frange.detec = FALSE, fsmooth = 0.1, ...)

Arguments

X

'selection.table' object or data frame with results containing columns for sound file name (sound.files), selection number (selec), and start and end time of signal (start and end). The ouptut of manualoc or autodetec can be used as the input data frame.

wl

A numeric vector of length 1 specifying the window length of the spectrogram, default is 512.

wl.freq

A numeric vector of length 1 specifying the window length of the spectrogram for measurements on the frecuency spectrum. Default is 512. Higher values would provide more accurate measurements.

length.out

A numeric vector of length 1 giving the number of measurements of dominant frequency desired (the length of the time series).

wn

Character vector of length 1 specifying window name. Default is "hanning". See function ftwindow for more options.

ovlp

Numeric vector of length 1 specifying % of overlap between two consecutive windows, as in spectro. Default is 70.

bp

A numeric vector of length 2 for the lower and upper limits of a frequency bandpass filter (in kHz). Default is c(0, 22).

threshold

amplitude threshold (%) for dominant frequency detection. Default is 15. Note that amplitude threshold for time and frequency domains can be defined independently. See "threshold.time" and "threshold.freq" arguments.

threshold.time

amplitude threshold (%) for the time domain. Use for dominant frequency detection. If NULL (default) then the 'threshold' value is used.

threshold.freq

amplitude threshold (%) for the frequency domain. Use for frequency range detection from the spectrum (see 'frange.detec'). If NULL (default) then the 'threshold' value is used.

img

Logical argument. If FALSE, image files are not produced. Default is TRUE.

parallel

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.

path

Character string containing the directory path where the sound files are located.

img.suffix

A character vector of length 1 with a sufix (label) to add at the end of the names of image files.

pb

Logical argument to control progress bar. Default is TRUE. Note that progress bar is only used when parallel = 1.

clip.edges

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.

leglab

A character vector of length 1 or 2 containing the label(s) of the frequency contour legend in the output image.

frange.detec

Logical. Controls whether frequency range of signal is automatically detected using the frange.detec function. If so, the range is used as the bandpass filter (overwriting 'bp' argument). Default is FALSE.

fsmooth

A numeric vector of length 1 to smooth the frequency spectrum with a mean sliding window (in kHz) used for frequency range detection (when frange.detec = TRUE). This help to average amplitude "hills" to minimize the effect of amplitude modulation. Default is 0.1.

...

Additional arguments to be passed to trackfreqs for customizing graphical output.

Value

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).

Details

This function extracts the dominant frequency values as a time series. The function uses the approx function to interpolate values between dominant frequency measures. 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 frequencies above 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).

See Also

sig2noise, trackfreqs, sp.en.ts, ffts, ffDTW, dfDTW

Other spectrogram creators: color.spectro, dfDTW, ffDTW, ffts, snrspecs, sp.en.ts, specreator, trackfreqs

Examples

Run this code
# NOT RUN {
{
# set the temp directory
setwd(tempdir())

#load data
data(list = c("Phae.long1", "Phae.long2","selec.table"))
writeWave(Phae.long2, "Phae.long2.wav") #save sound files 
writeWave(Phae.long1, "Phae.long1.wav")

# run function 
dfts(X = selec.table, length.out = 30, flim = c(1, 12), bp = c(2, 9), wl = 300)

}
# }

Run the code above in your browser using DataLab