Learn R Programming

seewave (version 2.1.6)

ama: Amplitude modulation analysis of a time wave

Description

This function computes the Fourier analysis of a time wave envelope. This allows to detect periodicity, in particular those generated by amplitude modulations.

Usage

ama(wave, f, channel = 1, envt = "hil", wl = 512, plot = TRUE, type = "l", ...)

Arguments

wave

an R object.

f

sampling frequency of wave (in Hz). Does not need to be specified if embedded in wave.

channel

channel of the R object, by default left channel (1).

envt

the type of envelope to be used: either "abs" for absolute amplitude envelope or "hil" for Hilbert amplitude envelope.

wl

length of the window for the analysis (even number of points, by default = 512).

plot

logical, if TRUE the spectrum of the envelope (by default TRUE).

type

if plot is TRUE, type of plot that should be drawn. See plot for details (by default "l" for lines).

other meanspec parameters.

Value

If plot is FALSE, ama returns a numeric vector corresponding to the computed spectrum. If peaks is not NULL, ama returns a list with two elements:

spec

the spectrum computed

peaks

the peaks values (in kHz).

Details

This function is based on env and meanspec. The envelope of wave is first computed and the spectrum of this envelope is then processed. All env and meanspec arguments can be set up. Be sure to set up wl large enough if you want to detect low amplitude modulation periodicity.

See Also

env, fma, meanspec

Examples

Run this code
# NOT RUN {
data(orni)
# detection of the main amplitude modulation in a cicada song:
# one with a 0.258 kHz frequency (due to pulses in the echemes)
# one with a 2.369 kHz frequency (fundamental frequency)
ama(orni,f=22050,wl=1024)
# these amplitude modulations can be identify with a cursor:
ama(orni,f=22050,wl=1024,identify=TRUE)
# }

Run the code above in your browser using DataLab