Good day!

I fear you became a â€śvictimâ€ť of the log-representation of the Fourier power spectrum.

Generally, logarithmic representations shouldnâ€™t be used without specifying the â€śdynamic rangeâ€ť, i.e. the number of displayed decades. This is not done when using ImageJâ€™s FFT command. Consequently, numerical artifacts may be presented that may have various causes, e.g. rounding.

That said, I suspect you deal with spectral components that are in fact artifacts.

Here is a demo-macro that sets a defined number of displayed decades:

```
n = 128;
dec = 6;
newImage( "Grating", "32-bit black", n, n, 1 );
for ( j = 0; j < n; j++ ) {
for ( i = 0; i < n; i++ ) {
setPixel( i, j, 0.5*(1+cos( i * PI / 10.666666666666666 )) );
}
}
resetMinAndMax();
run( "FFT Options...", "raw do" );
run( "Square Root" );
resetMinAndMax();
rename( "AS of Grating" );
run( "Set... ", "zoom=400 x=" + n/2 + " y=" + n/2 );
run( "Duplicate...", "title=" + dec + "dec_log-AS of Grating" );
getRawStatistics( N, mn, mi, mx );
run( "Divide...", "value=" + d2s( mx, 9 ) );
run( "Log" );
run( "Multiply...", "value=" + d2s( 1 / log( 10 ), 9 ) );
setMinAndMax( -dec, 0 );
run( "8-bit" );
run( "Set... ", "zoom=400 x=" + n/2 + " y=" + n/2 );
```

(AS: Modulus of the Fourier Amplitude Spectrum.)

Please note that the three spectral **amplitude** values are 4096, 8192, 4096, just as the theory predicts:

With 6 displayed decades of the log-amplitude spectrum no spurious signals are displayed:

With 8 displayed decades of the log-amplitude spectrum you see them:

Regards

Herbie