Fourier will do the job, but I do not understand why you are doing the
rotates.
Here is a slightly different take on your problem with a Parseval check
at the end. (Just copy and drop it into an empty notebook.)
Cheers,
Kevin
Psi[x_] := \[Pi]^(-1/4) E^(-(x^2/2))
\[ScriptCapitalN] = 2^8;
L = 32.0;
\[CapitalDelta]x = L/\[ScriptCapitalN];
x = -16 + Table[i, {i, 0, \[ScriptCapitalN] - 1}]*\[CapitalDelta]x;
\[CapitalDelta]k = 1/L;
f = Psi[x];
k = Table[n \[CapitalDelta]k, {n, 0, \[ScriptCapitalN] - 1}];
F = \[CapitalDelta]x Fourier[f, FourierParameters -> {1, -1}];
ListPlot[Transpose[{k, Abs[F]^2}], PlotRange -> All, Joined -> True]
(* This part rotates the k-spectrum so it "looks right" *)
krot = Table[
n \[CapitalDelta]k, {n, -(\[ScriptCapitalN]/2), \[ScriptCapitalN]/
2 - 1}];
Frot = RotateRight[F, \[ScriptCapitalN]/2];
ListPlot[Transpose[{krot, Abs[Frot]^2}], PlotRange -> All,
Joined -> True]
(* Check that Parseval is right *)
{Total[Abs[f]^2] \[CapitalDelta]x, Total[Abs[F]^2] \[CapitalDelta]k}