Is FFT the Proper Method for Transforming Green Function in MATLAB?

Click For Summary

Discussion Overview

The discussion revolves around the appropriateness of using the Fast Fourier Transform (FFT) method for transforming a Green function in MATLAB, particularly focusing on its application to non-periodic functions and the implications of zero-padding.

Discussion Character

  • Technical explanation
  • Debate/contested
  • Mathematical reasoning

Main Points Raised

  • One participant inquires whether the FFT command in MATLAB is suitable for transforming a Green function and questions if the number of transformed points (nfft) must equal the length of the Green function (N).
  • Another participant suggests trying the FFT and analyzing the results to determine if any unexpected behavior occurs.
  • A participant expresses concern about the validity of using the FFT for non-periodic functions like the Green function.
  • It is noted that the FFT in MATLAB is similar to other discrete Fourier transform implementations, and considerations such as zero-padding and windowing may be necessary for non-periodic functions.
  • One participant asks if zero-padding is necessary when the Green function is nonzero across almost all energies and raises a concern about the FFT output producing unexpectedly high values without zero-padding.
  • Another participant argues that proper use of the FFT assumes periodicity of the function and explains that zero-padding helps interpret the function as periodic, while using FFT without padding suggests the function is truly periodic, which may lead to high-order components if there are discontinuities.

Areas of Agreement / Disagreement

Participants express differing views on the necessity of zero-padding and the implications of using FFT for non-periodic functions. There is no consensus on whether the FFT is appropriate for the Green function without zero-padding, and the discussion remains unresolved regarding the best practices for this application.

Contextual Notes

Participants mention potential issues with high-order components arising from discontinuities in the function and the importance of considering the periodicity of the function when applying FFT.

Zahra G
Messages
6
Reaction score
0
Hi everybody.
I have a (1×N) Green function in MATLAB. I want to use the FFt function for Green function to transform the time domain. Does the FFT command work correctly for Green function using: A=fft(Green function, nfft). Here nfft is the number of transformed points. Is it necessary that N=nfft ?
 
Physics news on Phys.org
Why don't you try and tell us the result? Then we can analyze if something goes as not expected.
 
I tried and I wanted to be sure that using fft command is true for non-periodic function like Green function or not?
 
The FFT function in Matlab is really no different than other implementations of discrete Fourier transform. Hence, when you are using if for a non-periodic function (which in real life is almost always) you need to consider things like zero-padding (which is usually a good idea for non-periodic functions) and windowing ( should not really be needed here). One common -and not so obvious- problem is the way the elements in the resulting FFT are ordered. You may or mat not have to use the fftshift command, depending on what you are doing.
 
Thank you.
 
I would like to know that if my Green function was nonzero in almost energies (because the energy interval is from -infinity to infinity) is it necessary that I have zero padding?
Another question is that when I use the FFT without zero padding, my function goes to high orders. For example, if the value of the function is 0.4 the fft goes it to 10e03. Is it ordinary or not?
 
The proper use of the FFT implies that the function is periodic. The zero padding ensure that the function can be interpreted as "periodic" because when you shift the computational windows you can match them because they all go to zero at the boundary. Using FFT without padding implies that you function is truly periodic, it is continuous across the left-right boundary, left boundary value is equal to the right boundary value. When you have jumps in the function, inside the computational domain or because the left boundary values is different from the right one, then you will see those high order components.
 

Similar threads

  • · Replies 2 ·
Replies
2
Views
2K
  • · Replies 6 ·
Replies
6
Views
2K
  • · Replies 8 ·
Replies
8
Views
3K
  • · Replies 4 ·
Replies
4
Views
3K
  • · Replies 16 ·
Replies
16
Views
15K
  • · Replies 7 ·
Replies
7
Views
3K
  • · Replies 2 ·
Replies
2
Views
3K
  • · Replies 3 ·
Replies
3
Views
2K
  • · Replies 11 ·
Replies
11
Views
3K
  • · Replies 13 ·
Replies
13
Views
3K