Learn R Programming

phonTools (version 0.2-2.0)

spectrogram: Create Spectrograms

Description

Create and display spectrograms.

Usage

spectrogram (sound, fs = 22050, windowlength = 5, 
timestep = -500, padding = 10, 
preemphasisf = 50, maxfreq = 5000, colors = TRUE, 
dynamicrange = 50, nlevels = dynamicrange, maintitle = "", 
show = TRUE, window = 'kaiser', windowparameter = 3, 
quality = FALSE)

Arguments

sound
Either a numeric vector representing a sequence of samples taken from a sound wave or a sound object created with the loadsound() or makesound() functions.
fs
The sampling frequency in Hz. If a sound object is passed this does not need to be specified.
windowlength
The desired analysis window length in milliseconds.
timestep
If a negative value is given, -N, then N equally-spaced time steps are calculated. If a positive number is given, this is the spacing between adjacent analyses, in milliseconds.
padding
The amount of zero padding for each window, measured in units of window length. For example, if the window is 50 points, and padding = 10, 500 zeros will be appended to each window.
preemphasisf
Preemphasis of 6 dB per octave is added to frequencies above the specified frequency. For no preemphasis, set to a frequency higher than the sampling frequency.
maxfreq
the maximum frequency to be displayed for the spectrogram up to a maximum of fs/2. This is set to 5000 Hz by default.
colors
If TRUE, a color spectrogram will be displayed. If FALSE, greyscale is used. If a vector of colors is provided, these colors are used to create the spectrogram.
nlevels
The number of divisions to be used for the z-axis of the spectrogram. By default it is set equal to the dynamic range, meaning that a single color represents 1 dB on the z-axis.
dynamicrange
Values greater than this many dB below the maximum will be displayed in the same color.
maintitle
A string indicating the spectrogram title if one is desired.
show
If FALSE, no spectrogram is plotted. This is useful if the user would like to perform an action on an existing spectrogram plot without having to redraw it.
window
the window to be applied to the signal, applied by the windowfunc function in this package.
windowparameter
the parameter for the window to be applied to the signal, if appropriate.
quality
If TRUE, a contour plot is created, which results in a high-quality image that may be slow to plot. If FALSE, a lower-quality image is created that plots much faster.

Value

  • If output is set to TRUE, an object of class 'spectrogram', a list containing the elements:
  • spectrograma matrix containing the magnitude at each bin center. Frequencies differ across columns, while time varies between rows.
  • fsthe sampling frequency of the sound from which the spectrogram was made.
  • windowlengththe length of the analysis window used to create the spectrogram.
  • timestepthe timestep (in milliseconds) used to create the spectrogram.
  • dynamicrangethe dynamic range (in dB) of the spectrogram.
  • colorthe colors used to create the spectrogram. This value corresponds to the 'color' parameter set when calling spectrogram().
  • maxfreqthe maximum desired frequency when plotting.

Details

This function is used to create and plot spectrograms. The user may specify all analysis parameters, in addition to the colors used to display the spectrogram. The function optionally returns a spectrogram object for which the plot() function is defined.

Examples

Run this code
## uncoment and run. 
data (sound)             ## use the example 'sound' object provided
#sound = loadsound()       ## or run this line to use you own sound

spectrogram (sound)
# spectrogram (sound, quality = TRUE)

Run the code above in your browser using DataLab