Learn R Programming

seewave (version 1.6.4)

localpeaks: Local maximum frequency peak detection

Description

This functions searches for local peaks of a frequency spectrum

Usage

localpeaks(spec, f = NULL, bands = 10, plot = TRUE,
xlab = "Frequency (kHz)", ylab = "Amplitude", labels = TRUE, ...)

Arguments

Value

  • A two-column matrix, the first column corresponding to the frequency values (x-axis) and the second column corresponding to the amplitude values (y-axis) of the peaks.

Details

The function proceed as follows
  • divides the spectrum in bands. The limits of the bands are set with the argumentbands. There are two options:
    • you set a number of bands with equal size by giving a single value tobands. For instance, settingbandsto a value of 10 will slice the spectrum in 10 equal parts and return 10 local peaks.
    • you set the limits of the bands. This is achieve by giving a numeric vector tobands. The limits can follow a regular or irregular series. For instance attributing the vector c(0,2,4,8) will generate the following bands [0,2[, [2,4[, [4,8] kHz. Be aware that the last value should not exceed half the sampling frequency used to obtain the spectrumspec.
  • uses the functionfpeakswith the argumentnmaxset to 1.

See Also

fpeaks, meanspec, spec

Examples

Run this code
data(sheep)
spec <- meanspec(sheep, f=8000)
# a specific number of bands with all the same size
localpeaks(spec, bands=5)
# bands directly specified  with a regular sequence
localpeaks(spec, bands=seq(0,8/2,by=0.5))
# bands directly specified  with an irregular sequence
localpeaks(spec, bands=c(0,0.5,1,1.5,3,4))
# Amaj octave bands, note that there is no peak detection
# in the higher part of the spectrum as sequence stops at 3520 Hz
localpeaks(spec, bands=octaves(440, below=3, above=3)/1000)

Run the code above in your browser using DataLab