Thanks! I should have emphasized that the plot also shows the magnitude (which diverges in your example). Here's how my method renders your function:

My functions don't diverge as they are defined by the Fourier transform. Here's how I've been generating them:
supp = 10;
size = 400;
prob = .2;
image = RotateLeft[
PadRight[
RandomInteger[BernoulliDistribution[prob], {supp, supp}], {size,
size}], Floor[{supp, supp}/2]];
fourier = RotateRight[Fourier[image], Floor[{size, size}/2]];