Author |
Topic  |
|
woodster
UK
Posts |
Posted - 09/16/2004 : 09:39:28 AM
|
Origin Version (Select Help-->About Origin): 7 Operating System:XP
Hi, another question about FFTs....
I was wondering how you change the resolution of the FFT. I'm performing an amplitude FFT on a pulse with 4096 data points, but the FFT seems as low resolution as the one i performed on a pulse with only 512 data points. I can't analyse such data since i may be missing important features in the FFT.
Thanks very much |
|
Mike Buess
USA
3037 Posts |
Posted - 09/16/2004 : 11:21:51 AM
|
The resolution or your spectrum is defined as the increment between the frequency values. A smaller increment means better resolution. The frequency increment is the inverse of the length (duration) of your pulse. Increasing the number of data points does not necessarily improve the resolution. It depends on how you obtained the extra data points...
1. Increasing the number of points by digitizing faster increases the spectral width (you can see higher frequency features) but does not improve resolution. The pulse length is the same and so is the frequency increment.
2. Taking more points at the same digitization rate increases the pulse length and improves resolution while keeping the spectral width the same.
Lengthening the pulse will improve your resolution but merely digitizing faster will not. How did you increase your point count?
Mike Buess Origin WebRing Member
Edited by - Mike Buess on 09/16/2004 11:45:30 AM |
 |
|
woodster
UK
Posts |
Posted - 09/23/2004 : 09:54:06 AM
|
I'm scanning a pulse which has a specific lifetime, so to increase my point count i just took more samples at shorter time intervals over the same total time. This, as you said, spread all my points over a greater frequency range and so didn't actually improve the FFT resolution. What would you suggest doing to reduce the FFT frequency range whilst maintaining or increasing the point count? Bearing in mind that I have a specific time interval in which I can sample...?
Cheers again |
 |
|
Mike Buess
USA
3037 Posts |
Posted - 09/23/2004 : 11:34:16 AM
|
If you can't actually increase the pulse length you can try increasing it artificially by adding zeros at the end. In pulsed NMR this is known as zero-filling. The NMR signal oscillates at the offset frequency (carrier freq - resonance freq) and decays exponentially, typically reaching the noise level before the end of the acquisition window. If N points are acquired the resolution can be doubled by appending N zeros to the time domain data before applying FFT.
If your signal is not decaying then zero-filling will not help much and may actually distort your spectrum. But it's easy to try so I'll explain how. I'll assume your pulse data is in the active worksheet with columns A(X) and B(Y). Copy the following lines and paste them to Origin's script window. Then select all lines and execute by pressing Enter.
get col(B) -e npt; // npt is the number of rows nn=2*npt; set %H -er nn; // double the number of rows dwell=col(A)[2]-col(A)[1]; // dwell time start=col(A)[1]; // first time value (row 1) stop=start+dwell*(nn-1)); // last time value (row nn) col(A)=data(start,stop,dwell); // fill in time column (1st half will be the same as before) tmp=data(1,nn); // create a temporary dataset with nn rows tmp=0; // set all values to zero copy -b 1 col(B) tmp -b 1 -e npt; // copy existing Y values to tmp col(B)=tmp; // copy tmp to col(B) (1st half will be the same, 2nd half will be zeros) del tmp; // delete tmp
Good luck!
Mike Buess Origin WebRing Member
Edited by - Mike Buess on 09/23/2004 11:37:37 AM |
 |
|
|
Topic  |
|