I am using the TMS320F28027F processor. I am sampling a signal that contains 1Hz to 100Hz components. The main frequency I am interested in is a 10Hz signal. I would like to monitor the amplitude of this 10Hz signal without interference form the other frequencies. My sample rate is 1000 samples per second. I could do an FFT and acquire the amplitude of the 10 Hz signal or I could perform a digital bandpass filter with a center at 10Hz. Most of the other frequencies are 30 Hz and above and below 7Hz, so I think a digital filter would work well and would probably use les processor resources than an FFT. My experience with FFTs is practically null. I was looking for some expert guidance on what would be the best approach since all I need is to monitor the amplitude of the 1Hz signal.
I am also running the InstaSpin FOC code to run a motor, so my processor is already using most of its MIPS to run the motor. If an FFT is best, what type FFT and what minimum size should I use? If the filter approach is best should I do an FIR or IIR filter to get the most accurate amplitude for the 10Hz signal? Or is there some other method I could use to acquire the amplitude of the 1 Hz signal with minimal processor overhead?
It may be important to know that I am generating the 10 Hz signal with the PWM1 output. I filter the PWM1 output with a hardware sallen-key filter to generate a pseudo sine wave. This sinewave then drives part of my system which I then sample the output of at 1000sps. Most the other frequencies are from my system and the PWM1 square wave harmonics not completely filtered by the sallen-key filter. I am trying to keep the hardware and MIPS to a minimum in order to save cost. Any help or guidance would be appreciated.