4
$\begingroup$

I am currently working on the FFT function in MATLAB. In this function, i require a 1024 number of data Time Domain plot and produce a 400 number of data Frequency domain plot.

After applying the FFT function, i obtain a result of a graph going up to 6000Hz.

However, the Frequency band produced is too big and I only wanna analyze between 0 ~ 500 Hz. I applied the Chirp-Z transform to obtain the band of 0 ~ 500 Hz, at the same time retaining the output as 400 number of data. This is what I obtain:

enter image description here

The problem arise as I made a comparison to the graph originally in Frequency Domain already.

enter image description here

(Please note that I have already both the original graphs - Time and Frequency domain to make comparison with)

As I compared the graph from MATLAB and the original one, there seems to be extra 'fingers' or so present when its supposed to be a straight line. What could be the problem and its appropriate solution?

EDIT 1

After trying almost all available Window functions, the taylorwin Window function seems the best and this is the result:

enter image description here

However it still does not produce a graph that is almost similar to the original graph

$\endgroup$
  • 1
    $\begingroup$ Are you applying a suitable window function prior to the FFT ? $\endgroup$ – Paul R Apr 24 '13 at 7:40
  • $\begingroup$ @PaulR I'm using this function from MATLAB - Chirp Z-Transform mathworks.com/help/signal/ref/czt.html $\endgroup$ – barryloh Apr 24 '13 at 8:14
  • 2
    $\begingroup$ OK - but are you applying a suitable window function prior to the FFT ? $\endgroup$ – Paul R Apr 24 '13 at 9:17
  • 2
    $\begingroup$ Is the red graph the FFT output? It seems like you've used lots more data to generate the red / black graph than what you are displaying in the blue / white graphs (windowed or unwindowed). $\endgroup$ – Peter K. Apr 24 '13 at 11:55
  • 1
    $\begingroup$ Is it possible to get several lots of the 1024-sized time-domain data that you are using for matlab? The only way to get better resolution with the FFT (or CZT) is to get more data. Another approach you might try is something like pyulear, which does a "high resolution" (AR) spectrum... however, it probably is not quite what you're after. $\endgroup$ – Peter K. Apr 24 '13 at 12:25

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.