
Last chance! 50% off unlimited learning
Sale ends in
Internal soundgen function.
modulationSpectrumFragment(
sound,
samplingRate,
specSource = "STFT",
audSpec_pars = NULL,
msType = c("2D", "1D")[1],
windowLength,
windowLength_points,
step,
step_points,
lowestFreq,
wn = "hanning",
zp = 0,
specMethod = c("spec", "meanspec")[2],
logSpec = FALSE,
logMPS = FALSE,
power = 1,
normalize = TRUE
)
numeric vector
sampling rate of x
(only needed if x
is a
numeric vector)
'STFT' = Short-Time Fourier Transform; 'audSpec' = a bank
of bandpass filters (see audSpectrogram
)
parameters for extracting an auditory spectrogram if
specType = 'audSpec'
. If specType = 'STFT'
, these settings
have no effect
'2D' = two-dimensional Fourier transform of a spectrogram; '1D' = separately calculated spectrum of each frequency band
parameters for extracting a spectrogram if
specType = 'STFT'
. Window length and step are specified in ms (see
spectrogram
). If specType = 'audSpec'
, these settings
have no effect
the function to call when calculating the spectrum of each
frequency band (only used when msType = '1D'
); 'meanspec' is faster
and less noisy, whereas 'spec' produces higher resolution
if TRUE, the spectrogram is log-transformed prior to taking 2D FFT
if TRUE, the modulation spectrum is log-transformed prior to calculating roughness
raise modulation spectrum to this power (eg power = 2 for ^2, or "power spectrum")
if TRUE, the modulation spectrum of each analyzed fragment
maxDur
in duration is separately normalized to have max = 1
s = soundgen(amFreq = 25, amDep = 100)
ms = soundgen:::modulationSpectrumFragment(s, 16000,
windowLength = 50, windowLength_points = .05 * 16000,
step = 5, step_points = .005 * 16000)
image(as.numeric(colnames(ms$ms_half)), as.numeric(rownames(ms$ms_half)),
t(log(ms$ms_half)))
Run the code above in your browser using DataLab