When I create a list of discrete measurements of a sine wave and then use Fourier[] to transform it, I get a peak on the frequency axis that is characteristically less than the measured frequency and less by more than a bin-width. It may be my misunderstanding what Fourier is doing. Or it may be a mistake in my test code. Any help would be appreciated.
freq = 102; t[\[Theta]_] := \[Theta]/(freq 2 Pi)
tbl = Table[{t[ \[Theta]], Sin[\[Theta]]}, {\[Theta], 0, 5 (2 Pi),
Pi/500}];
fourier = Fourier[N[tbl[[All, 2]], 24]];
(Range[Length[tbl]] freq/Length[tbl])[[Max[
Position[Abs[fourier], Max[Abs[fourier]]]]]] // N
ListPlot[tbl,
PlotRange -> {{0, .051}, All}, AxesLabel -> {"s", ""},
PlotLabel -> Row[{"\[Omega] = ", Quantity[freq, "Hertz"]}]]
ListPlot[
Join[{{0, 0}},
Transpose[{(Range[Length[tbl]] freq/Length[tbl])[[2 ;; -1]],
Abs[fourier][[2 ;; -1]]}]],
PlotRange -> {(*{1/2,110}*){101.5, 102.5}, All},
AxesLabel -> {"Hz", ""},
PlotLabel -> "Fourier Spectrum", Joined -> True]
Clear[t, tbl, fourier, freq]
Fourier
here that may help you. $\endgroup$