I have a 1D periodic lattice with 'p' components (unit cells). I want to take a discrete Fourier transform in space to get a reciprocal space, where I will have $k$ (reciprocal vector) dependence.

I generate the 1D periodic lattice with "p" components by this MWE:

p = 10;

a = Table[0, {i, 1, p}, {j, 1, p}];

For[i = 1, i <= p, i++,

  For[j = 1, j <= p, j++,
   a[[i, j]] = 
     If[(Abs[i - j] == p - 1 \[Or] 
         Abs[i - j] == 1) \[And] (j <= p \[And] i <= p), 1, 0];


Now, I would like to generate the reciprocal lattice from the above, where each point $a[i] = \sum_{k} e^{ik}\, a[k] $.

reciplatA = Fourier[a, FourierParameters -> {0, 2 \[Pi]/p}]; 

But I don't think I want this form. It is supposed to be a diagonal matrix, which isn't the case. Thus, how can I have some Fourier variable conjugate to the space variables, i.e., $k$ appearing after the transform.
How can we obtain such a form?
Can we extend this to 2D, where we will have two Fourier variables $\{k_1, k_2\}$?

  • $\begingroup$ I think your approach is too complicated. You make a one dim problem artificially 2 dim. I think you should define a 1 dimensional potential (in the simplest case using only 0 and 1' s). It makes things easier, if it is symmetric about the origin. This can then be easily Fourier transformed. For 2 and 3 dim. the same approach will work. $\endgroup$ Commented Mar 1, 2021 at 21:02
  • $\begingroup$ @DanielHuber I agree on that ;) Actually my problem is 2D, orginally, that's why you can find traces of 2D in the MWE. How exactly I Fourier transformed? $\endgroup$
    – L.K.
    Commented Mar 2, 2021 at 10:45
  • $\begingroup$ A simpler way to create your a[[i,j]] matrix is probably to use AdjacencyMatrix@CycleGraph@p... as for obtaining the Fourier transform, it's unclear what you actually want, since the formula you quote doesn't make much sense (a is one-dimensional instead of two-dimensional, i is used as an index and also maybe as the imaginary i, etc) $\endgroup$ Commented Mar 2, 2021 at 12:36

1 Answer 1


Here are two most simple examples I can think of. I choose a potential that is periodic and symmetric around the first point in order to get a real FFT.

Note that the output from FFT is a bit confusing. It is a list with coefficients of:{ DC component, increasing positive frequencies, decreasing negative frequencies}. Look it up in the manual or a book.

Here is a 1 dim example with period 10:

d = ConstantArray[0, 100];
Do[d[[i]] = 1, {i, 1, 100, 10}]
fft1 = Fourier[d] // Chop

And here a 2 dim example:

d = ConstantArray[0, {100, 100}];
Do[d[[i, j]] = 1, {i, 1, 100, 10}, {j, 1, 100, 10}];
Fourier[d] // Chop
  • $\begingroup$ My great apologies for being late. Actually, I realized I was not very clear in my question at all. Many thanks for your very valuable input. Let me make the question more clear, perhaps. $\endgroup$
    – L.K.
    Commented Mar 5, 2021 at 10:23

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.