POV-Ray : Newsgroups : povray.off-topic : Frequency locked loop? : Re: Frequency locked loop? Server Time
6 Sep 2024 01:27:33 EDT (-0400)
  Re: Frequency locked loop?  
From: andrel
Date: 15 Mar 2009 19:28:58
Message: <49BD8F3A.2030207@hotmail.com>
On 15-3-2009 5:42, triple_r wrote:
> I know there are better places to ask this, but there's been a fair amount of
> signal processing talk around here in recent history, and everything I google
> comes up with patents and microprocessor talk.
> 
> The basic situation is that I want to program a piano tuner (we'll see about
> having the guts to tune the thing).  It didn't take more than a couple hours to
> write a c program that takes audio input, FFT's it, and tells you the closest
> pitch.  The problem is the frequency resolution.  I essentially get the refresh
> rate for resolution, e.g. 10 updates per second -> 10 Hz resolution.

That is not true. Your resolution mainly depends on your sampling 
frequency. The only way you can get a resolution of 10 Hz with 10 Hz 
updates is by sampling at 1kHz, which is much too low for your 
application anyway.
Your resolution can be computed by dividing your sample frequency by the 
number of samples.

>  This
> resolution won't cut it.  G#4 is 415.3 Hz, A4 is 440 Hz, and A#4 is 466.164 Hz,
> so you can see what I'm up against.  Here are my ideas:
> 
> 1) Zero-pad the data pre-fft.  (I'm not sure whether this actually improves the
> quality of the information.)
It might sharpen your peaks as would using a Hamming or Hanning window. 
I think I would also use overlapping windows to increase the number of 
samples. I.e. if the sampling is more a problem than the computational 
power.
> 
> 2) Use a feedback loop to control the frequency of a test wave.  (I don't know
> what the controller should look like.)

Me neither ;) I actually don't know what you mean.

> 3) FFT.  Locate max.  Band-pass.  Inverse-fft. 

You know what frequency you are expecting, so you don't need to locate 
your maximum. Then the problem is more easily solved by a filter in the 
time domain.

> Count zero-crossings?  (Not robust for noisy signals?)
depends on the bandwidth of the filter. Can be very robust. Note that 
some instruments have higher amplitude for harmonics than at the 
fundamental frequency. There is also no guarantee that you get only 2 
zero crossings because of the harmonics. A narrow bandwidth filter will 
indeed solve most of these problems. BTW how are you going to count 
exactly 93.2328 crossings with your 10 updates per second?

> 
> As I said, my lack of knowledge in this area makes it difficult to locate the
> relevant resources.  Does anyone know of a feedback loop 

Do you want a pure digital solution or an mixed distal/analog or even a 
pure analog?
You may want to have a look at phase locked loops, because you can 
digitize the voltage that drives the frequency.

> or other more
> sophisticated tools for this purpose?

I think you can buy them, at least I knew them for guitars... Yep, you 
can find them by googling. Not as much fun as building one oneself though.


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.