How to find Fourier Transform Peaks ?

1 view (last 30 days)
Isidoros Giakoumatos
Isidoros Giakoumatos on 11 Jul 2013
Hi, I am a student in engineering and my project is about identifying frequencies corresponding to vibrations in internal combustion car engines. I have obtained the signal of the vibrations via accelerometer connected to laptop microphone and transformed it in frequency domain via FFT command.
My problem is that I cannot figure the way how to generate a code that would return me the frequencies that present some peak values of the spectrum. For example, my highest vibration is somewhere near to 30 Hz, but how can I instuct Matlab to automatically return precise values?
Does anyone knows codes and functions related to Fourier waveform processing?
Thank you in advance!

Answers (1)

Matt J
Matt J on 11 Jul 2013
Edited: Matt J on 11 Jul 2013
Rather than using FFTs, I would do something like this
peak = fminsearch(@(f) -abs(dot( exp(-2j*pi*f*yourTimes),yourSamples)),30);
where yourSamples are your time domain signal values and yourTimes are the times in seconds where the samples are recorded.

Categories

Find more on Vibration Analysis in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!