Estimation of Fundamental Frequencies from a Wspec object
Estimation of Fundamental Frequencies from an object of class
Additionally, some heuristics are used to distinguish silence, noise (and breathing for singers)
from real tones.
FF(object, peakheight = 0.01, silence = 0.2, minpeak = 9, diapason = 440, notes = NULL, interest.frqs = seq(along = object@freq), search.par = c(0.8, 10, 1.3, 1.7)) FFpure(object, peakheight = 0.01, diapason = 440, notes = NULL, interest.frqs = seq(along = object@freq), search.par = c(0.8, 10, 1.3, 1.7))
An object of class
The peak's proportion of the maximal peak height to be considered for fundamental frequency detection. The default (0.01) means peaks smaller than 0.02 times the maximal peak height are omitted.
The maximum proportion of periodograms to be considered as silence or noise (such as breathing). The default (0.2) means that less than 20 out of 100 periodograms represent silence or noise.
If more than
minpeakpeaks are considered for detection and passed argument
peakheight, such periodograms are detected to be silence or noise (if
silence > 0).
Frequency of diapason a, default is 440 (Hertz).
Optional, a vector of integers indicating the notes (in halftones from diapason a) that are expected. By applying this restriction, the “detection error” might be reduced in some cases.
Optional, either a vector of integers indicating the indices of (fundamental) frequencies in
objectthat are expected, or one of the character strings
"soprano". For these voice types, only typical frequency ranges are considered for detection.
By applying this restriction, the “detection error” might be reduced in some cases.
Parameters to look for peaks:
The first peak larger than
peakheight * 'largest_peak'is taken.
Its frequency is multiplied by
1+search.parNow, any larger peak between the old peak and that value is taken, if (a) it exists and if (b) it is above the
Within the interval of frequencies
'current peak' * search.par[3:4], another high peak is looked for. If any high peak exists in that interval, it can be assumed we got the wrong partial and the ‘real’ fundamental frequency can be re-estimated from the next two partials.
FFpure just estimates the fundamental frequencies for all periodograms contained in the
object (of class
FF additionally uses some heuristics to distinguish silence, noise (and breathing for singers)
from real tones. It is recommended to use the wrapper function
FF rather than
If silence detecion can be omitted by specifying
silence = 0.
Vector of estimated fundamental frequencies (in Hertz) for each periodogram conatined in
These functions are still in development and may be changed in due course.