Lattice discrete Fourier transforms

Click For Summary

Homework Help Overview

The discussion revolves around the application of lattice discrete Fourier transforms on a 5x5 lattice where each site contains the number 1. The original poster expresses confusion regarding the Fourier transform of a constant function and the apparent paradox of surviving terms in the transform.

Discussion Character

  • Exploratory, Assumption checking, Mathematical reasoning

Approaches and Questions Raised

  • Participants discuss the correct formulation of the Fourier transform, questioning the original poster's use of exponents and the implications of a constant function on the transform results. There is an exploration of the behavior of the transform when varying the k-vector and the interpretation of results for non-integer k-values.

Discussion Status

Some participants have provided guidance on the correct factors to include in the Fourier transform and have shared code to compute the sums. The original poster has attempted to apply the suggestions but continues to encounter unexpected results, indicating an ongoing exploration of the problem.

Contextual Notes

The original poster expresses urgency regarding the resolution of this issue, indicating potential implications for their coursework. There is also mention of the need to consider finite terms in the sum and the resulting effects on the Fourier transform's behavior.

Niles
Messages
1,834
Reaction score
0

Homework Statement


Hi

Say I have a 5x5 lattice, where each entry (or we can call it site) contains the number 1. Now, on the lattice we have a function g(R), which is equal to the number on the site. In this case g(R)=1 for all sites (here R is a vector from the point (3,3), which denotes the site we are talking about).

Now I wish to Fourier transform the function g, and I use the lattice discrete FT

<br /> f(\mathbf{k}) = \sum_{\mathbf{R} } e^{i \mathbf{k} \cdot \mathbf{R} } g(\mathbf{R})<br />

where k is a vector. Now, since each site contains the number 1, the system is homogeneous, and from the inverse Fourier transform,

<br /> g(\mathbf R) = \sum_{\mathbf k} e^{-i\mathbf k\mathbf R} f(\mathbf k),<br />

we see that only the k=0-term can survive, since g(R) is constant. But by performing the sum

<br /> f(\mathbf{k}) = \sum_{\mathbf{R} } e^{i \mathbf{k} \cdot \mathbf{R} } g(\mathbf{R}),<br />

it is quite obvious that all terms are there, i.e. it is not only the k=0 term that survives. That is a paradox I cannot explain. Can you guys shed some light on this?Niles.
 
Last edited:
Physics news on Phys.org
Your exponents are missing some factors. Instead of

e^{-ik\cdot R}

it should be

e^{-2\pi i k \cdot R / N}

where in your case N = 5.

Then for k \neq 0 you will be summing evenly spaced samples around the unit circle, so the result will be zero.
 
Last edited:
P.S. Since your function is constant, the 2d DFT is equivalent to two iterated 1d DFT's. If I write k = (k_1, k_2) and R = (R_1, R_2), then

f(k) = \sum_R e^{2\pi i (k_1 R_1 + k_2 R_2) / N} = \sum_{R_1} e^{2\pi i k_1 R_1 / N} \sum_{R_2} e^{2\pi i k_2 R_2 / N}
 
Thanks for helping. I just tried doing it again (with the correct factor in the exponential) for a 3x3 system, but still other terms show up (I tried writing it up manually).
 
I'm sorry to bump the thread, but it is extremely important that this issue gets solved (I potentially have to redo 6 months of course work), and I am all out of good ideas.
 
Last edited:
I'm not sure what is going wrong for you. Maybe I am misinterpreting what you want to do. I wrote the following segment of Matlab code (actually Octave, but it should work for Matlab as well) to calculate your sum:

Code:
fid = fopen('out.txt','w');

for a = -2:2
    for b = -2:2
        k = [a b];
        f_k = 0;
        for m = -2:2
            for n = -2:2
                r = [m n];
                f_k = f_k + exp(i*2*pi * (k * r') / 5);
            end
        end
        fprintf(fid, 'f([%d %d]) = %f + i*%f\n', a, b, real(f_k), imag(f_k));
    end
end

fclose(fid);

Here is the result I got:

f([-2 -2]) = 0.000000 + i*0.000000
f([-2 -1]) = -0.000000 + i*0.000000
f([-2 0]) = -0.000000 + i*0.000000
f([-2 1]) = -0.000000 + i*-0.000000
f([-2 2]) = 0.000000 + i*0.000000
f([-1 -2]) = -0.000000 + i*0.000000
f([-1 -1]) = -0.000000 + i*0.000000
f([-1 0]) = 0.000000 + i*-0.000000
f([-1 1]) = -0.000000 + i*-0.000000
f([-1 2]) = 0.000000 + i*0.000000
f([0 -2]) = -0.000000 + i*0.000000
f([0 -1]) = 0.000000 + i*0.000000
f([0 0]) = 25.000000 + i*0.000000
f([0 1]) = 0.000000 + i*0.000000
f([0 2]) = -0.000000 + i*0.000000
f([1 -2]) = 0.000000 + i*0.000000
f([1 -1]) = -0.000000 + i*0.000000
f([1 0]) = 0.000000 + i*0.000000
f([1 1]) = -0.000000 + i*-0.000000
f([1 2]) = -0.000000 + i*0.000000
f([2 -2]) = 0.000000 + i*0.000000
f([2 -1]) = -0.000000 + i*0.000000
f([2 0]) = -0.000000 + i*0.000000
f([2 1]) = -0.000000 + i*0.000000
f([2 2]) = 0.000000 + i*0.000000
 
jbunniii said:
I'm not sure what is going wrong for you. Maybe I am misinterpreting what you want to do.

No no, you got it. What I want to do is to find f(k). But you change the value of the k-vector? Why is it that you do that, instead of leaving it just as (kx,ky)?
 
Wait, ignore my post #7. I will try out your example, and return when I get a result.
 
Ok, now I get the same table as you. But the problem comes when we choose e.g. k=(0, 1.5)T - there f(k) blows up (I get f(k)=6.18 in that case).
 
  • #10
Niles said:
Ok, now I get the same table as you. But the problem comes when we choose e.g. k=(0, 1.5)T - there f(k) blows up (I get f(k)=6.18 in that case).

Yes, if you look at points that do not have integer coordinates, you will not get zero. In fact, if you evaluate f at all points (instead of just integers), you will obtain a 2-dimensional "sinc" function.

The reason for this is that you only use finitely many terms in the sum. You are in effect calculating the Fourier transform of a 2-dimensional "rectangle" function.

If you use more terms, you will more closely approximate an "impulse."

See here for a visualization:

http://cnyack.homestead.com/files/artran/ft2dxy1.htm
 

Similar threads

Replies
3
Views
2K
  • · Replies 5 ·
Replies
5
Views
2K
  • · Replies 6 ·
Replies
6
Views
3K
  • · Replies 7 ·
Replies
7
Views
2K
  • · Replies 1 ·
Replies
1
Views
973
  • · Replies 9 ·
Replies
9
Views
1K
  • · Replies 7 ·
Replies
7
Views
7K
  • · Replies 2 ·
Replies
2
Views
2K
  • · Replies 3 ·
Replies
3
Views
1K
  • · Replies 1 ·
Replies
1
Views
1K