Clear Filters
Clear Filters

fast fourier transform functions function

1 view (last 30 days)
I have a question about fft function. I have a set of data consisting of two columns; one is time in seconds, and the other is amplitude. now I need to find the seven dominant frequencies buried in the noisy time signal, and also I know that very low frequencies (less than 0.01Hz) can spoof my low-frequency output unless I subtract the mean of the data from the time series before taking the Fourier transform. I need a hint to start writing the code for this, I read the Matlab help page, but it confused me more. any help that can explain this more to me will be appreciated, Thank you

Accepted Answer

Image Analyst
Image Analyst on 7 Oct 2012
Can't you just FFT the signal, then call sort() and take the 7 frequencies with the largest signal?
By the way, how did you get your noisy signal? Could a Lock-in Amplifier help improve your signal?
  3 Comments
Salar
Salar on 7 Oct 2012
I get error for this code, and it's not working,
Image Analyst
Image Analyst on 7 Oct 2012
Edited: Image Analyst on 7 Oct 2012
Well, you define f, but then redefine it. Was the output of the sin() function supposed to be "data" instead of f? Secondly, you don't use A and t. Thirdly, your signal is just one frequency, not lots of them plus noise. Fourth, you define freq, which has nothing to do with anything. Basically this program is a mess. Try again. Next time start with data, then fft the data, then take the real part or magnitude and sort it. Then take the 7 highest components.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!