Signalyze header gif
Home > Docs > Calibration of FFT spectra last updated Friday, December 7, 2001
Calibration of FFT spectra using Signalyze 3.12:
Correction for averaged wide-band displays


© 2001 by Guy Carden. All rights reserved.

Guy Carden
Department of Linguistics
University of British Columbia
July 2001


It is routine good practice to calibrate any measurement system before using it for serious work: You put in known inputs, and see how well the measurements match the input. In most cases you find that your measurements are not exact: Typically there is a small area of random variation that represents the imprecision of the measuring instrument, and a larger error with a predictable size and direction. Once you have identified the predictable part of the error, you can apply a "calibration correction" to cancel it out.

This note reports the results of a calibration of FFT spectral measurements in Signalyze 3.12 using a range of Mac systems [Note 1]. This data confirms some good advice in the Signalyze 3.12 Manual, and supplies calibration corrections for a number of useful displays. Note that some of the calibration corrections are substantial -- If you have been using averaged wide-bands to measure vowel formants as in How to find a formant, you will want to make appropriate adjustments.

The Signalyze version 3.0 manual warns us forcefully (p62, p231) that "for research purposes, one should never rely on read-outs obtained by clicking in spectrograms", and recommends making numerical measurements using spectrum displays. My calibration results confirm this: Shift-CMND-click measurements in a spectrogram window vary by up to 100 Hz relative to known inputs. Measurements from FFT spectrum displays are reasonably accurate, and their errors fall in predictable patterns that we can correct for with an appropriate calibration, as shown in Table 1.

Wide-band FFT measurements are accurate within 20 Hertz or so, which is good enough, since you typically use these short-window spectra for measuring things like stop bursts where great precision is not relevant. [Note 2] Narrow-band FFT measurements are accurate to within 10 Hz or so, which is also usually good enough: You use narrow-band displays for rough estimates of fundamental frequency [Note 3], to track harmonics, and to estimate formant center frequencies for vowels. Only the last function calls for precise measurement, and it's hard to estimate formant center frequencies closer than about 10 Hz anyway.

The useful averaged-spectrum display [Note 4] is an exception: The frequency values you get from the averaged-spectrum display are consistently significantly higher than the input frequency, so that a "calibration correction" is needed when you use the numbers for some precision task like measuring vowel formants. For any given sampling rate, the error is a constant number of Hz at all frequencies: For example, for our usual 22,050 Hz sampling rate, an averaged wide-band spectrum will give you numbers that are consistently about 45 Hz higher than the actual frequency. This means that you need to apply a calibration correction by subtracting 45 Hz from the numbers you get from the system's averaged wide-band spectrum display. [Note 5] The size of the error changes substantially at different sampling rates, as shown in Table 1 below. [Note 6]

Table 1. Signalyze 3.12 Recommended Calibration Corrections for FFT spectra

Type of display Sampling rate Observed errors in Hz
(some examples)
Calibration correction
Wide-band, very-wide-band, and extra-wide-band
averaged spectra
11,025 Hz +20; +20; +23; +31 subtract 20 Hz
22,050 Hz +45; +45; +44; +45; +41; +46; +46; +43 subtract 45 Hz
44,100 Hz +86; +108; +100 subtract 90 Hz
 
Extra-wide-band
spectral cross-section
11,025 Hz +4; +15 Not recommended
for precision measurements:
See Note 2.
22,050 Hz +18
44,100 Hz +25; +24; +47; +47
 
Very-wide-band
spectral cross-section
11,025 Hz +12; +19
22,050 Hz +14
44,100 Hz +25, +43; +31
 
Wide-band
spectral cross-section
11,025 Hz +8; +11;
22,050 Hz +14; +18; +7; +11; +7; +11
44,100 Hz +25; +13; +16
 
Narrow-band
spectral cross-section
11,025 Hz +5; 0; +5; +8; +8; +8 subtract 10 Hz
22,050 Hz +11; +11; +11
44,100 Hz +8; +13; +11; +8; +10
 
Very-narrow-band
spectral cross-section
11,025 Hz +4; 0; +4; +7; +4; +7 subtract 5 Hz
22,050 Hz +5; +5; +5; +4; 0; +4; +5
44,100 Hz +6; 0; +9; +6; +2; +3

 

How did I measure? Sample calibration measurements

The Signalyze display Calibration WB Ave Spectra #5 gives a sample of how I did the measurements in Table 1.

The Information Bar at the top of the display confirms that the sampling rate was 22,050 Hz. Recall that Table 1 shows that sampling rate is an important variable in the calibration corrections.

Track 1 shows the waveform of the input signal. For this test, I used a nominal 512 Hz tuning fork as a test input; for higher frequencies, I used analog output from a signal generator. Waveform measurements showed that the tuning fork's actual fundamental varied from 512 to 515 Hz, with frequency of about 514 Hz in the part of the signal I used for spectral analysis. I take this 514 Hz waveform measurement as the assumed correct value for the calibration.

Tracks 2a,b,c,d show very-narrow-band and narrow-band spectral cross-sections with and without pre-emphasis with cursors at 521 and 525 Hz. For the VNB, the 521 cursor location is a bit right of the center of gravity of the harmonic; moving the cursor one click left to 517 would be too far left, so an eyeball best estimate splits the difference at 519 Hz. This gives us errors of +5 Hz and +11 Hz, as reported in Table 1.

Tracks 3a,b show a very-wide-band spectrogram (3a) and the averaged very-wide-band spectrum (3b) computed from the spectrogram data. (Wide-band and extra-wide-band displays gave equivalent results.) The 20 ms window for the averaging is designed to give an effective window for the averaged spectrum that looks at essentially the same data as the 33 and 25 ms windows of the VNB and NB spectral cross-sections in track 2. It is easy to see that the spectrogram display for the 514 Hz input is not lined up exactly with the numerical scale: The 500-Hz line is noticeably above center, and a Shift-CMND-click aimed at the center of the dark area gives 474 Hz, confirming the Manual's warning about the lack of precision. More important, the averaged VWB spectrum in track 3b implies a frequency of 559 Hz, 45 Hz higher than the actual input frequency. This error remains consistent at about +45 Hz for a number of systems and inputs, permitting a straightforward calibration correction. [Note 7]

Tracks 4a,b,c show non-averaged wide-band spectral cross sections, with windows centered on the area averaged for (3b). These cross-sections show errors of +15-20 Hz, substantially less than error in the averaged display. Wide-band cross-sections taken at different points along the 20 ms window in (3a) would show essentially the same results.

Signalyze footer gif