Jump to content

FFT resolution


Maci

Recommended Posts

Hello everybody, I am using an FFT function to analyse a time series that I am reading from memory. I am using a FFT function that produces a spectrum whose frequency range complies with the Nyquist criterion. I want to lower my highest frequency of interest to increase the spectral resolution. Would someone point at a function in the function palette which allows to input the the maximum frequency. In my application, I need a resolution on the order of a fraction of a hertz. Please, help.

Link to comment

How long are you acquiring for. in sec

The bin size of your FFT is dependent on the timespan of your acquisition.

Now I am not a signal processing guru, but I am working my way up the treacherous part of the learning curve, so perhaps I'm not getting your point.

But step 1, how long are you acquiring for?

If you want 1hz resolution I believe you need 1 sec worth of samples.

Your resolution is 1/(acquisition time)

Link to comment

As previously mentioned the resolution is decided by

Sample rate / number of samples, if e.g. I sample 2000 samples at 4 MS/s the resolution will be 4000000/2000 = 2000 (Hz)

It is possible to improve the situation a bit by zero padding the signal though, this is often referred to as spectral interpolation. Let's say that you have sampled 2000 samples - prior to running the FFT you add n * 2000 zeroes to the sample array. If n =1 this will double your resolution...however we are really just talking about an interpolation effect here so there is a limit as to how much you actually gain.

Mads

QUOTE (Maci @ Jan 30 2009, 04:39 AM)

Hello everybody, I am using an FFT function to analyse a time series that I am reading from memory. I am using a FFT function that produces a spectrum whose frequency range complies with the Nyquist criterion. I want to lower my highest frequency of interest to increase the spectral resolution. Would someone point at a function in the function palette which allows to input the the maximum frequency. In my application, I need a resolution on the order of a fraction of a hertz. Please, help.
Link to comment

QUOTE (Norm Kirchner @ Jan 30 2009, 12:37 AM)

How long are you acquiring for. in sec

The bin size of your FFT is dependent on the timespan of your acquisition.

Now I am not a signal processing guru, but I am working my way up the treacherous part of the learning curve, so perhaps I'm not getting your point.

But step 1, how long are you acquiring for?

If you want 1hz resolution I believe you need 1 sec worth of samples.

Your resolution is 1/(acquisition time)

Thank you, guys, for your prompt input. You all are saying the same thing and I agree. I think that I have enough data points to satisfy the basic Nyquist criterion, which requires that the data be sampled (at least) at twice the highest frequency of interest to avoid aliasing. In my case, I am sampling at 50kS/s. The FFT function I am using is giving me by default a spectrum with a range up to 25kHz. What I want to do is to reduce my frequency range to, say, 12.5kHz. This is in fact equivalent to sampling the data at 4 times the highest frequency of interest. So, I nead help locating a function in the LV-palette labyrinth which will allow me to input something (maximum frequncy, sampling rate, number of samples, or a combination of these). That way, I inclease the resolution. I hope my question is clearer.

Link to comment

QUOTE (Maci @ Feb 1 2009, 05:00 PM)

What I want to do is to reduce my frequency range to, say, 12.5kHz. This is in fact equivalent to sampling the data at 4 times the highest frequency of interest. So, I nead help locating a function in the LV-palette labyrinth which will allow me to input something (maximum frequncy, sampling rate, number of samples, or a combination of these). That way, I inclease the resolution. I hope my question is clearer.

I think you already have all the information you need from the posts above. If you need to add 4x pts to your current time record, pad with zeroes. In the search button above pallets type "zero pad" and find the function.

Search around in the "Signal Processing" pallets for other functions that might be of use to you.

After all, you have to do some of the work yourself.

N.

Link to comment

QUOTE (Neville D @ Jan 30 2009, 02:45 PM)

There is a Zero padder VI somewhere in the signal processing pallets.

Also, if padding, add zeroes upto a power of 2 to get a total of 2^N elements in your time array so that a more efficient (faster) FFT algorithm is used.

Neville.

Let paraphrase myself. I have more data points than I need for the spectrum I am after (3kHz). What I cannot find in the palettes is a function that will allow me to use up to 4 times the Nyquist frequency as a sampling rate. I can do this well in Excel, but the maximum number of points that the FFT algorithm in Excel is limited to 4096 points, which is not enough for the kind of frequency resolution I am after. Please, try again.

Link to comment

Maci,

You have two basic knobs to deal with.

  1. Signal Acquisition Time
  2. Signal Sampling Rate

If you want a finer resolution the you MUST capture for a longer time.

If you are concerned about data size and time to process the FFT then you can utilize the 'Zoom FFT' (See more details here)

But the jist of the Zoom is that you still sample for a longer time(to get finer frequency resolution), but a lower sampling rate accompanied with band filtering is applied and you 'zoom' into a section of the spectrum. So the net effect is that you don't decrease your capture time (in fact you increase it) but you decrease the data size and processing power needed.

Hopefully that gives a better picture of what we're getting at.

So for your situation, where you're sampling at 50k, you're taking unneeded samples. But if there is significant spectral content above 1/2 what you would like to sample at (12.5k) then it would get aliased into your signal and skew your results. That is where the filtering of the zoom FFT comes into play.

So for you, go ahead and turn down the sampling rate to what you really want, sample for a longer time and put the data into a zoom fft function and you'll get what you're looking for.

Enjoy

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.