I generate a periodic discrete data representing a time dependent function and I want to apply a discrete Fourier transform to this data using just one period of it.
I think something is wrong with my Fourier transform code:
a = 0.05; L = 15; T = 20 \[Pi]; hdc = 2.1;
sol = NDSolve[{a*D[u[t, x], t] == D[u[t, x], x, x] - Sin[u[t, x]],
u[0, x] == 0, Derivative[0, 1][u][t, 0] == Tanh[t/0.01]*hdc,
Derivative[0, 1][u][t, L] == 0}, u, {t, 0, T}, {x, 0, L},
MaxStepSize -> 0.005, MaxSteps -> 10^6];
q := NIntegrate[(
Evaluate[First[Derivative[1, 0][u][tp, x] /. sol]])^2, {x, 0, L},
Method -> "LocalAdaptive", MinRecursion -> 50,
MaxRecursion -> 100];
data = Parallelize[Table[q, {tp, 25.8, T, 0.5}]];
ListLinePlot[data, PlotRange -> All]
ListLinePlot[Abs[Fourier[data]]]
LaunchKernels[10]
. But its very memory hungry even with 64GB RAM I went more than 80% few times during the computation. But now I can offer the onlooker those plots ... $\endgroup$:P
$\endgroup$MatrixPlot
. It makes it look neater. Here's my question as an example. Noted that I also used a Hard threshold value to obtain these plots. $\endgroup$