These are hard questions to answer, for a couple of reasons.
First, it has been a LONG time since I used periodograms seriously (say 1985).
Second, since I don't have access to your data, I'm flying blind here.
Here's my first stab at suggestions, in no particular order:
- Look at the outputs of 3dPeriodogram to see what could be causing the weirdness in the fit.
- Consider using 3dTfitter with the -L1 option to do a least-absolute-sum fit rather than a least-squares fit -- this will reduce the impact of "outliers" in the periodogram "data".
- More intricate: use 1dNLfit to fit the power law decay formula "a*f^(-p)" directly, rather than using the log transformation to make a linear fitting problem. Fitting the desired curve directly is usually preferred over transforming the problem to make the regression linear. However, 1dNLfit only operates on 1D text files, as it is pretty slow to run on a whole 3D dataset -- so you'll either have to ROI average the periodograms first, or extract the periodograms from and ROI, run 1dNLfit a lot, and then average.
I don't think it is "nfft" itself which is your problem, unless indirectly you happen to be cutting off some wacky data when you shrink nfft.
Something else you might consider would be doing global signal regression during the pre-processing, and eliminating the bandpassing.