[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [AUDITORY] pitch
Here's the recipe:
(1) estimate the period with subsample resolution (e.g. with Praat or YIN),
(2) interpolate the signal over a period interval to an integer number of samples,
(3) apply the Digital Fourier Transform (DFT).
The coefficients of the DFT give the amplitude and phase of each harmonic. These values are exact if the signal is purely periodic.
Optionally, if the signal is noisy, you might want to average the complex DFTs of several periods (or equivalently, average the waveforms of the periods before applying the DFT). Alternatively, you might prefer to average the power spectra of those periods, and take the square root to get the RMS amplitude spectrum (similar to the Welch method). The choice between these two options depends on which aspects of the non-stationary signal you want to average out.
The period interval signal is not windowed before the DFT. If speed were an issue you might interpolate to a power of two and use FFT to calculate the DFT. Various methods are available for interpolation, the best choice depends on your exact needs. For a first approximation, simple linear or quadratic interpolation might suffice.
Alain
On 16 Oct 2013, at 15:16, herzfeld <herzfeld@xxxxxxxxxxxx> wrote:
> Can anyone point me to a method which takes as input a signal having a number of harmonics and computes each harmonic as frequency, amplitude and pitch even in the absence of some of the partials ?
>
> Fred
> -------------------
>
> Fred Herzfeld, MIT class of 1954
> 78 Glynn Marsh Drive # 59
> Brunswick, Ga. 31525
> USA
>
> tel: (912) 262-1276
> Web: http://alum.mit.edu/www/herzfeld (not up yet)