Continue to Site

Welcome to

Welcome to our site! is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Detecting audio frequency from very few samples

Not open for further replies.


Newbie level 3
Sep 1, 2009
Reaction score
Trophy points
United Kingdom
Activity points
detecting audio frequencies

Hi all,

I am diving into the world of DSP by attempting to write a program to capture SSTV images. I have figured out how to do a spectrum analysis to detect the peak frequency of a block of samples using FFTW, but that requires a fair number of samples to get any meaningful result. But the duration of actual pixels is very short, shorter than the period of the frequency even (0.67ms period (1500Hz) with a duration of as low as 0.23ms [1]), covering all of 10 samples at a 44.1kHz sampling rate, or even just 2(.5) samples at 11kHz.

I get the feeling I'm barking up the wrong tree somewhere. I don't see how it can be possible to get anything useful from two samples..

Any advide would be greatly appreciated.

Cheers, Chris.

[1] Spec **broken link removed**. See page 4, color scan time, Martin 2.

In my opinion, the correct topic is FM-demodulation rather than spectral analysis. The problem can't be solved however without considering the characteristics of the baseband signal. As another point, the demodulator should be almost invariant to a varying carrier level. The most promising FM-demodulation methods are based on a PLL tracking the carrier.

FvM said:
In my opinion, the correct topic is FM-demodulation rather than spectral analysis.

Right you are..


I have got most of the way with the demodulation, one thing I can't quite figure out though is how to get from the output value to the actual frequency. Playing around with the numbers I can get it reasonably accurate using value * 1330 + 1700. The 1700 is obvious (the carrier frequency), but where does 1330 come from? I'd like to be able to calculate an accurate value for this.

The process by which I am demodulating is by applying cos and sin waves at 1700Hz separately to the samples (which are 16-bit integers, sampled at 8kHz) to get the I and Q values, running them through a 23 tap FIR low pass filter (for which I can provide the coefficient values if required), then calculating the demodulated value with (Qn * In-1 - In * Qn-1) / (In^2 + Qn^2).

Not open for further replies.

Part and Inventory Search

Welcome to