This graph shows a spectrogram plot over the region from 10Hz to the end of the measurement. It can be used to view the results of sweep measurements, the frequency content of imported audio files or the results of stepped sine measurements for which the spectrum data has been captured at each measurement frequency.

The spectrogram is like a waterfall viewed from above, with the level indicated by colour. The scale showing how colour relates to level is displayed to the right of the plot. The vertical axis of the plot can show time, increasing towards the top of the plot, or frequency with time on the horizontal axis. When viewing sweep measurements the time starts before the peak of the impulse so that the onset of the response can be seen. The areas where the response is decaying more slowly show up as streaks along the time axis. The dashed line shows the peak level in the plot at each frequency.

The spectrogram plot is generated in the same way as the Spectral Decay plot, shifting the impulse response window to the right by a proportion of the time range to generate each succeeding slice. The window type is selected in the graph controls. The plot uses logarithmically spaced data at 96 points per octave.

To produce the spectrogram plot click the *Generate* in the bottom left
corner of the graph area (shortcut Alt+G). The legend panel shows the plot value
at the intersection of the vertical and horizontal cursor lines.

An ideal Spectrogram decays very rapidly off the bottom of the scale range.
Here is an example of a plot produced from a soundcard loopback measurement in
*Fourier* mode.

*Mode* selects the type of spectrogram plot that will be produced,
which can be either *Fourier* or *Wavelet*. In Fourier mode
the plot uses fixed width windows, which mean the plot has the same time resolution
at all frequencies. If the plot spans a wide range of frequencies this usually means
the time resolution is either too low at high frequencies or too high at low frequencies.
A 100 ms window, for example, gives 10 Hz frequency resolution. At low frequencies that
is a big octave fraction (1/1.4 octaves at 20 Hz), at high frequencies a very, very small
octave fraction (1/1386 octaves at 20 kHz). For a time-frequency plot it would be more useful
if the tradeoff between time and frequency resolution varied with frequency, using a constant
octave fraction for frequency resolution rather than a constant number of Hz and so giving
higher time resolution at high frequencies and lower at low frequencies. A wavelet transform
can achieve that, specifically a constant Q Continuous Wavelet Transform (CWT). A constant Q
wavelet transform is mathematically equivalent to using a frequency-dependent window to produce
the spectrogram, which is what REW does. This method is faster than typical CWT calculations,
but may produce some artefacts in parts of the response that extend to frequencies close to
half the sample rate - using a higher sample rate shifts these beyond the usual range of interest.

Here is a 1/6 octave *Wavelet* spectrogram of the same soundcard loopback measurement shown
above. It becomes narrower as frequency increases, reflecting the increasing time resolution
of the wavelet plot.

Here is the same measurement from the first image above as a 1/12 octave *Wavelet*
spectrogram.

The difference between the Fourier and Wavelet spectrograms can be more easily seen when looking at responses with reflections. Here are two plots of a response which has a series of reflections at 1 ms intervals after the peak. In the Fourier spectrogram, using a 10 ms window and a 10 ms span after the peak, the effect on the frequency response and decay are clearly visible, with peaks at 1 kHz intervals. However, the reflections themselves cannot be distinguished.

The wavelet plot also shows the frequency response and decay effects, but thanks to its greater time resolution at high frequencies the reflections themselves become visible as horizontal bars.

In *Wavelet* mode a *Freq. Resolution* control replaces the *Window*
control and allows resolutions between 1 octave and 1/24th octave to be selected.

The *Window type* control selects the window that is used for each slice of
a Fourier spectrogram, Hann is well suited to viewing the content of imported audio files,
Gaussian provides a more optimal time/frequency tradeoff for sweep measurements.

The *Span before peak* and *Span after peak* controls determine
how much spectrogram data will be generated around the impulse response peak for
a sweep measurement. There are no span controls for imported audio files, the spectrogram
is generated for the whole span of the file.

*Draw contours* adds contour lines at the dB interval set in the
adjacent spinner.

*Normalise to peak at each frequency* scales (boosts) the plot at
each frequency so that it has the same peak value. This can be useful when
examining energy decay or the time alignment between drive units as it removes
the level differences. Note that using 3D enhancement with normalisation may
result in artefacts along the frequency axis.

*Fill spectrogram floor* fills the floor of the plot with the colour
at the bottom of the scale range. When the floor is filled the grid is drawn on top
of the spectrogram, it can be shown/hidden using the Show/Hide Grid toggle in the
Graph menu or using the Ctrl+Shift+G shortcut.

If *Show modal frequencies* is selected the theoretical modal
frequencies for the room dimensions entered in the
Modal Analysis section of the
EQ Window are plotted at the bottom of the graph.

The *Amplitude* control offers a choice between linear and logarithmic
scales. The log scales are dB SPL and dBFS, the linear scales are % peak and % FS.
Using the linear % peak scale with a Wavelet plot makes it easier to see timing
shifts. The dBFS and % FS scales may eb useful when viewing imported audio files.

*Frequency axis* determines whether frequency is along the X or Y axis.
Spectrograms of audio data typically have frequency along the Y (vertical) axis,
having frequency along the X (horizontal) axis allows easier visual comparison with
waterfall plots.

The *Colour Scheme* for the plot can be changed, the plots above use the
"Heat" scheme, here is a plot using the "Copper" colour scheme with 3D enhancement active.

One of the colour schemes is based on cubehelix by Dave Green, see https://www.mrao.cam.ac.uk/~dag/CUBEHELIX/. It is based on a helical path around the diagonal of an RGB colour cube, taking into account the perceived intensity of colours to create a scheme that perceptually has monotonically increasing brightness. The cubehelix scheme can be configured to change its appearance using the settings panel below, which is activated by clicking the icon to the right of the colour scheme selector:

*Start hue* is the hue in degrees at the base of the plot. *Rotation* is
how many degrees the helix travels around the cube diagonal, setting rotation to zero
produces a scheme with a single hue. Rotation can be positive or negative. *Hue factor*
is a scaling applied to the colours, a factor of 1.0 ensure perceptual uniformity but higher
values produce a more colourful scheme. The original scheme covers the whole span from
black to white, but the *Min grey* and *Max grey* controls allow starting
at a level above black, making the start hue visible, and ending before white, leaving
some colour at the top of the scale.

The *Scale Top*, *Scale Bottom* and *Scale Range* controls adjust how the plot
colours correspond to the values in the Spectrogram data. Any values higher
than the Scale Top are drawn in the colour at the top of the scale, any values
lower than the Scale Bottom are drawn in the colour at the bottom. If the
Scale Top setting is changed the Scale Bottom will be adjusted to keep the
same Scale Range. If the Scale Bottom is changed the Scale range will be
adjusted to keep the same Scale Top. If the Scale Range is changed the Scale
Bottom will be adjusted, keeping the same Scale Top.

*Match time scale to window and range* adjusts the time axis range
so that it starts at the Window width before zero (e.g. -300 ms for a 300 ms
Window setting) and ends at the Time Range (e.g. 1000 ms for a 1000 ms Time Range)
so that the plot shows all the generated data.

*Match top of scale to peak* adjusts the Scale Top value so that
it corresponds to the highest level found in the data.

Select *Plot the peak energy curve* to overlay a line showing where the
highest SPL occurs at each frequency, this can highlight variations in peak energy
arrival time versus frequency - an ideal peak energy curve would be a straight
line with the same time value for all frequencies.

*3D enhancement* gives the plot a more three-dimensional appearance.

If *Banded colours* is selected the colour scale has discrete steps
rather than a continuous blend from one colour to another - there are 11 colours
in that case to provide 10 bands across the scale range.

The control settings are remembered for the next time REW runs. The
*Apply Default Settings* button restores the controls to their default values.

Stepped sine measurements have a reduced
set of controls, to select the amplitude, frequency axis, colour scheme and the SPL range.
The equivalent of the time axis for stepped sine measurements is the test frequency at which
the spectrum data was captured, those frequencies are shown along the axis. When a stepped sine
measurement is selected the axis is automatically scaled to show all of the test frequencies in
the measurement, but it can subsequently be zoomed in or out using the axis zoom buttons.
Note that spectrograms can only be generated for stepped sine measurements that had the option
to *Capture spectrum data at each frequency* selected.