Next  |  Prev  |  Up  |  Top  |  Index  |  JOS Index  |  JOS Pubs  |  JOS Home  |  Search

## Fundamental Frequency Estimation from Spectral Peaks

Spectral peak measurement was discussed in Chapter 5. Given a set of peak frequencies , , it is usually straightforward to form a fundamental frequency estimate `` ''. This task is also called pitch detection, where the perceived ``pitch'' of the audio signal is assumed to coincide well enough with its fundamental frequency. We assume here that the signal is periodic, so that all of its sinusoidal components are harmonics of a fundamental component having frequency . (For inharmonic sounds, the perceived pitch, if any, can be complex to predict [54].)

An approximate maximum-likelihood -detection algorithm11.1 consists of the following steps:

1. Find the peak of the histogram of the peak-frequency-differences in order to find the most common harmonic spacing. This is the nominal estimate. The matlab hist function can be used to form a histogram from the measured peak-spacings.

2. Refine the nominal estimate using linear regression. A linear regression is a least-squares straight-line fit. Our straight line is , , where are the measured harmonic peak frequencies. (The histogram estimate can be used to reject peaks too far from the expected harmonic frequencies.) Thus, is the slope of the fitted line. In matlab, the function polyfit(x,y,1) can be used. As an ideal example, p = polyfit([1,2,3],[440,2*440,3*440],1) returns p = [440,0], where p(1) is the slope, and p(2) is the offset.

A matlab listing for estimation along these lines appears in §F.6.

Subsections
Next  |  Prev  |  Up  |  Top  |  Index  |  JOS Index  |  JOS Pubs  |  JOS Home  |  Search

[How to cite this work]  [Order a printed hardcopy]  [Comment on this page via email]