[sdiy] Chromatic Tuner Design
rburnett at richieburnett.co.uk
Thu Feb 7 00:01:09 CET 2019
Interpolating the spectrum with a polynomial is one way to infer the true frequency of spectral peaks that lie in between FFT bins. This works with some success provided there isn't too much noise or other tones contributing to the adjacent bins.
Another method of getting finer frequency resolution from the FFT is to perform two consecutive FFTs on the signal and then look at how much the phase has changed in the dominant bins from one FFT frame to the next. Again this is susceptible to noise though and doesn't work if there is more than one tone contributing to the magnitude and phase in a given spectral bin!
In my opinion Autocorrelation or AMDF deal much better with complex or difficult signals for pitch detection than the FFT does. For example think of what the first dominant spectral bin would be for the FFT of a harmonic waveform that just happens to have its fundamental frequency absent. Whereas AC or AMDF don't care if the fundamental frequency is missing, they just look for time-domain periodicity, so aren't so easily tricked.
They also take the entire waveform into account so aren't so easily tricked by complex waveforms that cross zero several times during each period. Whereas squaring up the audio waveform with a comparator and either counting the zero-crossings or measuring the time between zero-crossings are both doomed to failure on all but the simplest of waveforms like sine, tri, sqr, etc...
FFT also has a lot of latency for pitch detection because you have to buffer up a full frame of audio data before you can even start to transform it into the frequency domain and begin looking for spectral peaks.
Sent from my Xperia SP on O2
---- Steve wrote ----
>Synth-diy mailing list
>Synth-diy at synth-diy.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Synth-diy