Subject: Re: Robust method of fundamental frequency estimation. From: Arturo Camacho <acamacho@xxxxxxxx> Date: Fri, 2 Feb 2007 18:47:41 -0500 List-Archive:<http://lists.mcgill.ca/scripts/wa.exe?LIST=AUDITORY>Dear members, I just want to add two points to what Yi-Wen said: > Dear list, > > > Just want to draw your attention to a good summary on various > auto-correlation based pitch determination methods, > > Arturo Camacho and John G. Harris, "A biological inspired pitch > determination algorithm", Fourth Joint Meeting of ASA and ASJ, Honolulu, > Nov. 2006. > > Contact arturo@xxxxxxxx if interested. > > Best regards, > Yi-Wen First, in that presentation we not only did a summary of pitch estimation algorithms (PEA) but also pointed out some pitfalls they have. Second, we did it not only for autocorrelation based algorithms, but also for many other algorithms we considered to be “classical”. Although some of these algorithms were initially proposed using a time-domain approach, all of them can also be formulated using the spectrum of the signal, and that is the approach we took. We expressed those algorithms as the selection of the pitch candidate (PC) that maximizes an integral transform of a function of the spectrum. Below is a summary of our findings. For each algorithm, we give a short DESCRIPTION, then the FUNCTION applied to the spectrum, the KERNEL of the integral transform, and finally a PROBLEM of the algorithm. Sometimes you will find that the algorithm also have problems presented before or problems that will be presented later. Notice that the order we present the algorithms is such that each subsequent algorithm does not exhibit the problem mentioned for the previous algorithm. A final note about semantics, to make the writing short in the descriptions, when we say spectrum we mean MAGNITUDE of the spectrum. HARMONIC PRODUCT SPECTRUM (HPS) ------------------------------- DESCRIPTION: multiplies the spectrum at multiples of the PC, or equivalently, adds the log of the spectrum at multiples of the PC. FUNCTION: log KERNEL: periodic sum of pulses PROBLEM: If any harmonic of the pitch is missing, the log is minus infinity and therefore the integral is also minus infinity. SUB-HARMONIC SUMMATION (SHS) ---------------------------- DESCRIPTION: adds the spectrum at multiples of the PC. FUNCTION: none KERNEL: periodic sum of pulses PROBLEM: Any subharmonic of the pitch has the same score as the pitch. SUB-HARMONIC SUMMATION with decay --------------------------------- DESCRIPTION: Same as SHS but uses a decaying factor to give less weight to high order harmonics. FUNCTION: none KERNEL: decaying periodic sum of pulses PROBLEM: The same score it produces for a pulse train at the pitch is produced for white noise at each PC. Therefore, not only it produces an infinite number of pitch estimates for white noise but also they have the same strength as a pulse train. SUBHARMONIC-TO-HARMONIC RATIO (SHR) ----------------------------------- DESCRIPTION: Same as SHS but subtracts the spectrum at the middle points between harmonics. Uses log spectrum, though. FUNCTION: log KERNEL: periodic sum of positive pulses plus half-period-shifted sum of negative pulses PROBLEM: Like all the algorithms presented above, it does not work for inharmonic signals HARMONIC SIEVE (HS) ------------------- DESCRIPTION: Same as SHS but instead of pulses it uses rectangles FUNCTION: none KERNEL: sum of rectangles PROBLEM: weighting applied to spectrum is too sharp. A slight shift in a component may take it in or out of the rectangle, possibly changing the estimated pitch drastically. CEPSTRUM (CEP) ------------- DESCRIPTION: Same as SHR but instead of pulses uses a cosine to transition from 1 to -1. FUNCTION: log KERNEL: cosine PROBLEM: uses the log (see HPS) UNBIASED AUTOCORRELATION (UAC) ------------------------------ DESCRIPTION: Same as CEP but squares the spectrum FUNCTION: square KERNEL: cosine PROBLEM: If signal is periodic then UAC is also periodic. Therefore there are infinite number of maximums. Taking the first local maximum (excluding maximum at zero) does not work either. Try a signal with first four harmonics with magnitudes 1,6,1,1. At high enough levels its pitch corresponds to the fundamental frequency, however, the first maximum in the UAC corresponds to the second harmonic. BIASED AUTOCORRELATION (BAC) ------------------------------ DESCRIPTION: Same as UAC but a bias is applied such that a weight of one is applied to a period of 0 and decays linearly to zero for a period T, where T is the size of the window. FUNCTION: square KERNEL: cosine PROBLEM: Like UAC, the squaring of the spectrum gives to much emphasis to salient harmonics. This feature combined with the bias may cause problems. For example, for the 1,6,1,1 signal, the bias can make the score of the second harmonic higher than the score of the fundamental (take for example the fundamental period as T/4) END OF LIST =========== In ISCAS 2007 we will be presenting an algorithm that avoids the problems presented here. It will be published in the proceedings of the conference. >From the order we presented here the algorithms it is easy to infer what the algorithm looks like. Arturo -- __________________________________________________ Arturo Camacho PhD Student Computer and Information Science and Engineering University of Florida E-mail: acamacho@xxxxxxxx Web page: www.cise.ufl.edu/~acamacho __________________________________________________