A technique for sharpening the
spectrogram uses information from the phase spectrum to sharpen the amplitude spectrum.
The scheme locates simple sinusoids, linear chirps, and impulses at the correct frequency or
time with a higher resolution than the inherent FFT resolution tradeoffs. The basis of the calculation is that the
instantaneous frequency (IF) in each FFT frequency band is equal to the first time derivitive
of the short-term FFT (STFT) phase at frequency ω and time T:
IF = ∂/∂t(arg(STFT(ω,T)))
and the local group delay (GD) at frequency ω and time T is approximately
GD = ∂/∂ω(arg(STFT(ω,T)))
where the function
arg returns the phase angle of the transform (see Fulop).
Chassande-Mottin, et.al. show that reassignment is equivalent to moving energy up the local gradient of intensity of the spectrogram (for Gaussian windows). This higher precision does not violate basic time/frequency uncertainty (see Gardner and Magnasco). There is still mixing between reassigned frequencies or impulses which are close together. Plante, et.al. illustrate this with a nice figure shown to the left. Each elipse represents one frequency-time cell of the STFTs which make up a spectrogram. The energy in the cell is is placed at a location determined by the IF and GD.
An online matlab reassignmentt code (Fitz, 2008) was modified for faster rendering and more straightforward selection of minimum plotting amplitude and rendering method. The modified raspecgram and ratoplot (called by raspecgram) produce a reassigned spectrogram, but require a few other routines from the Fitz site. The code runs in Gnu Octave as well as matlab. There is also reassignment code at mathworks.
Examples show the effect of the reassignment.
The first example
generates two FM signals, with a superimposed linear chirp. The
waveform and spectrogram are shown the the first figure, the reassigned
spectrum in the second figure. Note that in much of the reassigned plot
the FM signals and chirp are well localized, but when they approach each
other some scattering occurs. Scattering can be optimized (as usual in a
spectrogram) by changing the size and overlap of the FFTs used to
produce the results. The reassigned spectrogram was rendered using one
color for all points above an energy amplitude cutoff. The rendering
mode is refered to in the code as
fast. The rendering mode format is
method_size_marker. For instance
color_1_circle are all valid. Valid methods are
fast/color. Valid markers are
Waveform and spectrogram of the test signal.
Reassigned spectrrogram of the test signal.
The second example
is a nestling green-rumped parrotlet (Forpus passerinus) begging call
(thanks to Karl Berg) with a complex multiharmonic, FM structure. The
spectrogram of a short segment is shown in the first figure, the
reassigned spectrum of one vocal burst in the second figure and another
in the third figure. The reassigned spectrogram shows a lot of detailed
FM which is hard to discriminate in the original spectrogram. There is
enough similarity between the two vocal bursts (and enough coherent
structure in each image) to suggest that much of the fine detail
revealed is real. The reassigned spectrogram was rendered using four
colors for points in four log(energy) bins above an energy amplitude
cutoff. Red is highest energy, then yellow, green and blue. The
rendering mode is refered to in the code as
The third example is a boat-whistle call of the gulf toadfish (Opsanus beta) (Thanks to Luke Remage-Healey and Aaron Rice). The sound is a short noise burst followed after a pause by steady, harmonic-rich hoot. The image pair shows a short segment analysed with a 512 point STFT and 90% overlap...Read more »