msToSpec: Modulation spectrum to spectrogram

View source: R/invertModulSpec.R

msToSpecR Documentation

Modulation spectrum to spectrogram


Takes a complex MS and transforms it to a complex spectrogram with proper row (frequency) and column (time) labels.


msToSpec(ms, windowLength = NULL, step = NULL)



target modulation spectrum (matrix of complex numbers)


length of FFT window, ms


you can override overlap by specifying FFT step, ms (NB: because digital audio is sampled at discrete time intervals of 1/samplingRate, the actual step and thus the time stamps of STFT frames may be slightly different, eg 24.98866 instead of 25.0 ms)


Returns a spectrogram - a numeric matrix of complex numbers of the same dimensions as ms.


s = soundgen(sylLen = 250, amFreq = 25, amDep = 50,
             pitch = 250, samplingRate = 16000)
spec = spectrogram(s, samplingRate = 16000, windowLength = 25, step = 5)
ms = specToMS(spec)
image(x = as.numeric(colnames(ms)), y = as.numeric(rownames(ms)),
      z = t(log(abs(ms))), xlab = 'Amplitude modulation, Hz',
      ylab = 'Frequency modulation, cycles/kHz')
spec_new = msToSpec(ms)
image(x = as.numeric(colnames(spec_new)), y = as.numeric(rownames(spec_new)),
      z = t(log(abs(spec_new))), xlab = 'Time, ms',
      ylab = 'Frequency, kHz')

soundgen documentation built on Aug. 14, 2022, 5:05 p.m.