Fourier DFT scaling problem
- To: mathgroup at smc.vnet.net
- Subject: [mg126592] Fourier DFT scaling problem
- From: Arthur <arth_e at ymail.com>
- Date: Tue, 22 May 2012 05:19:31 -0400 (EDT)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
Hi all. I hope someone can help me with what seems to be a fairly elementary problem, nevertheless I have spent a good deal of time trying to come to a solution without any success. I am fairly new to the Fourier transform. My problem is that the output of the Fourier[] command has a scaling dependency on my sampling parameters which I cannot figure out how to remove. In general I have a numerical function Psi[x] (a wavefunction) and I would like to compute an approximation to the Fourier transform F[Psi[x]] ~~ Psihat[k]. I am assuming the best way to achieve this is using the built in Fourier[] function. Now although I expect to have a numerical function Psi[x] my problem is apparent even when I define Psi[x] analytically. If I have Psi[x_] := (Pi^(-1/4)) (E^(-x^2/2)) and take the continuous FT FourierTransform[Psi[x], x, k] OUT: (Pi^(-1/4)) (E^(-k^2/2)) The output is as expected an identical function of k (since Psi[x] was a normalized eigenfunction of the FT). If I try to take the DFT of Psi[x] however: /******CODE******/ n1 = 2^8.; (* sampling points *) L = 32.; (* domain [-L/2,L/2] *) dx = L/n1; (*step size*) X = Table[-dx n1/2 + (n - 1) dx, {n, n1}]; (* lattice *) rot[X_] := RotateLeft[X, n1/2]; (* rotate input/output of fourier *) F[X_] := rot@Fourier@rot@X; (* DFT *) SetOptions[ListLinePlot, PlotRange -> {{-L/2, L/2}, {0, 1}}, DataRange -> {-L/2, L/2}, Filling -> Axis]; ListLinePlot[Abs[Psi[X]]^2] ListLinePlot[Abs[F@Psi[X]]^2] /******END******/ The second graph of the squared modulus of F@Psi[X] is evidently incorrectly scaled. Moreover this scaling error is not improved by increasing the sampling frequency, and is in fact exacerbated by it. It seems reasonable that the scaling be dependent on the value dx, though I have done a lot of experimentation with the FourierParameters command to remove this dependence though I can't get it to work in a way that is independent of the choice of Psi[x]. Any help would be *greatly* appreciated! Thanks and best regards, Arthur