Could anybody please tell me whether I can perform this integration with FFT in MATLAB? How? Please answer as soon as possible with the details.
Suppose there exists 2 rectangular planes, say, input
accessed by x1
and y1
variables and the resulting plane is output
accessed by tetax
and tetay
variables.
This is the integral in pseudo-code:
output(tetax,tetay)=double integral of [input(x1,y1)*exp(-j*k*((tetax*x1)+(tetay*y1)))](dx1)(dy1)
where: -1<= x1 <= 1 and -1<= y1 <= 1
tetax
and tetay
should change so they can span the final rectangular plane.
I would really appreciate a prompt and detai开发者_运维知识库led answer.
Since this looks like homework, I'll just give some hints. The trick is to rewrite the integral to look like a normal 2D Fourier integral of a function.
There are two issues:
1) You need to combine k and your tetax, tetay to look like a normal wavenumber (and compensate for this in the appropriate way).
2) You need to deal with the limits being in the range (-1,1) whereas the Fourier integral needs them in the range (-inf, +inf). To do this, pick a function to go inside the Fourier integral that will make this work.
Then it will be obvious how to do this in Matlab. It's a cute problem and I hope this doesn't ruin it (and if people think it does, let me know and I'll delete this answer, or delete it for me if you can).
Your problem looks like a Fourier transform, not a discrete Fourier transform (DFT). A FFT calculates the latter type of transform.
Briefly, a Fourier transform involves an integral, while a DFT involves a sum.
精彩评论