Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>What's wrong with your existing technique that you're interested in a new one? I don't think a cepstrum is going to give you more accurate pitch, if that's the goal. It will, however, help you with <a href="http://en.wikipedia.org/wiki/Missing_fundamental" rel="nofollow noreferrer">suppressed fundamentals</a>. I suppose you could use the cepstrum to get you close, then go back to the first FFT (which I would keep in its original form) and then apply your cunning technique to the bin that the cepstrum guides you to.</p> <p>As for the quadratic fit, it's referred to in <a href="http://www.tedknowlton.com/resume/CCPPT.htm" rel="nofollow noreferrer">this paper</a> by Ted Knowlton, which came up in another SO question recently, but I've never used it.</p> <p>I should add that the quadratic fit technique, at least as outlined in the reference from Knowlton, depends on using a rectangular window on the first FFT. As <a href="https://stackoverflow.com/questions/4583193/vdsp-do-the-fft-functions-include-windowing/4583449#4583449">Paul R</a> explained in another of your questions, if you're doing audio processing you should use a Hann or Hamming window on the first FFT. So I guess an overall algorithm could look like:</p> <ul> <li>Take time domain buffer <code>x</code>, make a windowed copy <code>w</code>.</li> <li><code>Sx = FFT(x)</code>, <code>Sw = FFT(w)</code></li> <li><code>c = Log of square magnitude of Sw</code></li> <li><code>Cx = FFT(c)</code></li> <li>Estimate fundamental (and maybe harmonics) using <code>Cx</code></li> <li>Use <code>Sw</code> to do cunning phase trick on fundamental (or higher harmonic) bin(s)</li> <li>And/or use <code>Sx</code> to do quadratic bin fit around fundamental (or higher harmonic)</li> </ul> <p>The <code>(or higher harmonic)</code> note applies if you do indeed have suppressed fundamentals.</p> <p>And I mentioned this in your other question, but what makes you think the log requires a lookup table? Why not just call the log function? I imagine that the time taken by two FFTs (O(n*logn)) dwarfs any other processing you can do.</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload