Hi, Rujing-

As a preface, I don't know how practically useful each frequency is. For example, each spectral value is an estimator, with a very large uncertainty (as large as itself, actually, I believe). One reason to average across a range of values is to bring the uncertainty of the utilized number down. Things like zeropadding can affect your individual spectral measures, as well; but the sum of a reasonably sized interval is better behaved. Can I ask what your goal for the estimates is?

Another point is, are you estimating the power spectrum of FMRI time series that include censoring? If so, that adds a further wrinkle: the Fourier Transform (FT), which is typically used for estimating a power spectrum, requires having uniformly sampled data in time: that is, no censoring present (TR is constant for a time series in FMRI, so then without censoring the time series is, indeed, uniformly sampled).

So, 3dDFT will take the FT in time: this could only be used if there is *no* censoring present. You might want to use the "-abs" option to get the amplitude values from the Fourier Transform, and squaring those would give you the power spectrum. You might want to use "-inverse", depending on the units you want/expect.

3dLombScargle is a program that can be used to estimate a power spectrum in the presence of nonuniform sampling (if censoring has been used). Default output is an amplitude spectrum, but you can use the "-out_pow_spec" option to get the power spectrum directly.

--pt