I am working with a piece of equipment that does acoustic analysis. It does this by acquiring a time domain signal and performing an FFT on it to extract the amplitude and phase at a single desired frequency, call it f0. Now, I understand the FFT. That part is easy enough. However, what I don't understand is the consequences of all the extra steps I found in this instrument's LabView code. Here's the procedure:
- Acquire time domain signal and apply calibration coefficient to every point.
- Subtract mean from signal to remove DC component
- Mix with a pure tone at f0 by multiplying the complex time domain signal with cos(2πf0) - i sin(2πf0)
- Window using exact Blackman
- Perform FFT
- Take DC component of output, divide by N/2 (where N is the number of samples in the time domain)
- Get amplitude and phase at f0 from DC component
Specifically, I'm confused on how step 3 allows me to get the value at f0 by looking at the DC component of the FFT output. I've recreated this in python using numpy.fft.fft and some simulated signals and I get similar results.
At the end of the day, I guess this sounds like a theory/math question.