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
algorithm^{11.1} consists
of the following steps:

- 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. - Refine the nominal
estimate using
*linear regression*. Linear regression simply fits a straight line through the data to give a least-squares fit. In matlab, the function`polyfit(x,y,1)`can be used,*e.g.*,`p = polyfit([0,1],[1,1.5],1)`returns`p = [0.5,1]`, where`p(1)`is the slope, and`p(2)`is the offset. - The slope
`p(1)`of the fitted line gives the estimate.

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

[Watch the Video] [Work some Exercises] [Examination]

Copyright ©

Center for Computer Research in Music and Acoustics (CCRMA), Stanford University