title: How to use cepstral?
body: <p>Recently I asked this question: <a href="https://stackoverflow.com/questions/4914832/how-to-get-the-fundamental-frequency-from-fft">How to get the fundamental frequency from FFT?</a> (you don't actually need to read it)</p>
  
  <p>My doubt right now it: <strong>how to use the cepstral algorithm?</strong></p>
  
  <p>I just don't know how to use it because the only language that I know is ActionScript 3, and for this reason I have few references about the native functions found in C, Java and so on, and how I should implement them on AS. Most articles are about these languages  =/
  (althought, <strong>answers in other languages than AS are welcome</strong>, just explain how the script works please)</p>
  
  <p>The articles I found about cepstral to find the fundamental frequency of a FFT result told me that I should do this:</p>
  
  <p>signal → FT → abs() → square → log → FT → abs() → square → power cepstrum</p>
  
  <p>mathematically:
  |F{log(|F{f(t)}|²)}|²</p>
  
  <p>Important info:</p>
  
  <ul>
  <li>I am developing a GUITAR TUNER in flash</li>
  <li>This is the first time I am dealing with advanced sound</li>
  <li>I am using an FFT to extract frequency bins from the signal that reaches user's microphone, but I got stuck in getting the fundamental frequency from it</li>
  </ul>
  
  <p>I don't know:</p>
  
  <ul>
  <li>How to apply a square in an ARRAY (I mean, the data that my FFT gives me is an array. Should I multiply it by itself? ActionScript's debug throws errors when I try to fftResults * fftResults)</li>
  <li>How to apply the "log". I would not know how to apply it even if I had a single number.</li>
  <li>What is the difference between complex cepstral and power cepstral. Also, what of them should I use? I am trying to develop a guitar tuner.</li>
  </ul>
  
  <p><strong>Thanks!</strong></p>