How to assess frequency stability of sung notes while keeping frequency precision under the possiblity that a vibrato (frequency modulation) is present.
Afficher commentaires plus anciens
dear community,
i have different recordings of a sequency of tones with increasing frequency. this tone sequence is repeated and sung at different base speeds (about 60 bpm up to 240 bpm). i'm not only interested in the precise catching of the fundamental frequency, but also in the tones' stability.
to get a precise analysis of the fundamental frequency, i am analyzing using a as big tone time window as possible, since the fft bin widths are reciprocal to the time window length.
concerning the stability of those sung tones i see two problems: since the tones are of different lengths, the time windiws and fft bins are of different length/width and as a consequence the bandwdth of e.g. the fundamental frequency peak bin is not comparable.
the other problem is the possible presence of a vibrato, which is a frequency modulation (a periodic sinusoidal jitter in frequency) which leads to a broader peak in frequency domain, but which influence i want to remove. saying that i am only interested in unperiodic changes in frequency per sung tone. my only idea to remove the influence of the vibrato is to analyse base frequency with a realy small window, looking at the sequence of extracted fundamental frequencies and temoving that using a lowpass (those vibrato frequency can be e.g. 8Hz) but by analysing with such small windows i loose the precision of the general fundamental frequency.
i hope you got my basic idea and problem and i would be happy to hear some ideas to solve my dilemma.
EDIT: I now added a sample file in which many tones contain a vibrato
Réponse acceptée
Plus de réponses (1)
William Rose
le 28 Déc 2021
Modifié(e) : William Rose
le 28 Déc 2021
0 votes
Are you willing to post an example file of such a recoridng?
Do you have an external reference signal, like a trigger, for when the pitch is (suposed to) change? If so, consider using it to partition the signal.
240 bpm is fast! You'd be lucky to get 1/8 of a second n each note at that speed, plus 1/8 second in between notes to change. And as you know, of the recording is only 1/8 of a second long, then the frequency resolution of the simple FFT 8 Hz.
I would experiemnt with the short-time Fourier transform - stft(). See the Matlab help here. I would choose a time reslution in the range (0.5 to 1)/(singer's beats per second) to get started.
I am skeptical that low passing to eliminate vibrato will help, but give it a try.
Also, check out MUSIC (MUltile SIgnal Clssification) on the Matlab file exchange.
Google "frequency estimation form short samples" and you will get a lot of journal articles that look promising.
1 commentaire
Jonas
le 29 Déc 2021
Catégories
En savoir plus sur Signal Operations dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!






