The reassigned spectrogram is a special graphic time / frequency representation; especially suited for "fast" spectrograms. Compared with the classic spectrogram (aka 'waterfall') display, reassigned spectrograms can offer better resolution in the time- as well as in the frequency domain.
For example, the following two spectrograms show the same signal, using the same display parameters (same FFT window, same FFT size, same scroll interval...):
Image 1 : Reassigned Spectrogram of a synthetic signal
Image 2 : Classic spectrogram, showing the same signal (a few seconds later)
The reassigned spectrogram shows a much 'sharper' image than the classic spectrogram, as long as the criteria for separability are fulfilled, and the signals have a sufficient signal-to-noise ratio. The principle of time/frequency reassignment is described further below; several in-depth articles about the topic can be found through a websearch.
The display settings, and the configuration of the test signal generator are contained in the configuration 'reassigned_spectrogram_test.usr' . How to load such files into SpecLab is explained here.
The parameters for the two spectrograms shown above were:
The test signal was produced with SL's test signal generator. It consisted of..
<To Be Completed>
To switch the spectrogram display mode from "classic" to "reassigned", select (from SpecLab's main menu):
See also: Spectrum Lab's main index, display settings, Controls on the left side and on the bottom of the main window (separate documents).
The classic spectrogram plots the magnitudes found in each frequency bin. It discards the phase information from the short-time fourier transform.
The reassigned spectrogram tries to "sharpen" the time/frequency display
by using phase information from the complex short-time fourier transform
(STFT).
For example, by comparing the phase between two neighbouring frequency bins
(within the same STFT) it is possible to relocate the energy from that cell
along the time(!) axis.
By comparing the phase in a frequency bin (between two neighbouring STFTs),
it is possible to relocate the energy from that cell along the frequency(!)
axis.
Details, and implementation notes can be found in the literature; some articles are listed further below.
To use the reassigned spectrogram effectively, one doesn't have to understand exactly how it works; but it's important to know the limitations.
<ToDo: Complete this>
If two different signals are present in the same cell (overlapping in time, and/or in frequency), they cannot be separated.
The effect of non separable signals in a reassigned spectrogram is visible in image 1:
At the intersection between the vertical line (= the sharp falling edge of the sawtooth signal) and the slow frequency modulated sine wave, some pixels appear "scattered".
To a certain degree, such effects can be minimized by selecting the FFT size (number of points; and thus the FFT window length in seconds) so that:
These important parameters are summarized on SpecLab's FFT configuration
tab (from the main menu: "Options".."FFT Settings").
Here the FFT properties used in the test configuration:
FFT input size ("length"): 512 points
FFT window function: Hann
Effect of FFT settings with fs= 44.1000 kHz:
Width of one FFT-bin: 86.1328 Hz
Equiv. noise bandwidth: 129.199 Hz
Max freq range: 0.00000 Hz .. 22.0500 kHz
FFT window time: 0.012 s
Overlap from scroll interval: 93.8 %
In this example, two signals can only be separated (i.e. produce a "good" time/frequency reassigned spectrogram) if they are separated by at least 129 Hz (in frequency), or by at least 12 milliseconds (in time).
A higher frequency resolution decreases the time resolution, and vice versa. In this regard, the same limitations exist for the classic spectrogram and for the reassigned spectrogram. Carefully selecting the optimum FFT size is essential :
The preconfigured settings in Spectrum Lab's Quick Settings menu may help to find a good starting point for a certain application.
Since web links are so short-lived, do a websearch to find the following articles:
Last modified: 2009-06-12