A bit of backstory - bear with me.
I fly RC planes. We recently had a speed competition (which I won 141 MPH WOOT!). The problem is that we have a difficult time determining the speed of the aircraft. The planes are too small and too fast to easily pick up on radar. Stop watches over a distance have been suggested, but determined to be too inaccurate. Flying through traps (optical sensors) would make the timing easier, but it would be very tough to fly through the traps and the equipment would be expensive.
What we’ve resorted to doing is recording the sound of the plane passing by, then determining the speed using this program:
http://www.sprut.de/electronic/soft/scope.htm#download
What it does is analyze the frequency of the sound the airplane makes. As the the airplane passes, the frequency drops due to the doppler effect. By comparing the frequency of the approach sound to that of the departure sound, you can determine the speed. The program works, but it’s cumbersome.
To get a speed, I have to record the sound of my plane going by, load it on my computer, edit it down to about 10 secs or so, convert it to a .wav file and upload it to the program. Then, I have to convert the temp from F. to C. analyze the signal, make a guess at the best places to put my lines (look at the site if you don’t know what I’m talking about) and then convert the speed that it gives me from KPH to MPH.
So here’s the deal. The equation to determine speed from the frequency of the sound is pretty straightforward if you know delta(f) ( based on the the frequency of the sound approaching and the frequency of the sound departing) and the speed of sound. The (simplified)equation to determine the speed of sound based on temp is pretty straightforward. I would think that writing a program that would determine the speed automatically would be pretty doable - if I could get the numbers for the approach and departure sound frequencies.
So somehow, I need to be able to determine the frequency of the sound of the plane. It’s going to be the loudest thing that the mic is picking up so I should be able to filter out the quiter sounds. I’m imagining a program that records the frequency of the sound once every 1/4 sec. It will save the last 8 or 9 samples. Delta (f) would just be the current sample averaged with the sample from 2 seconds ago - though I"m not sure on the interval. Most of the actual coding needs to be hashed out, but the bottom line is that I need to determine the frequency of a sound at something like 1/4 sec intervals.
Does anyone know how that could be done? Oh, and has anything I’ve just explained made any sense? I’ll be happy to try and clarify what I’m talking about.