How to obtain the time domain from the frequency domain while computing the numerical inverse Fourier transform of a function not centred at zero frequency?

22 views (last 30 days)
Hey,
I am trying to calculate the numerical inverse fourier transform of a complicated function. For obtaining the time interval from the frequency interval to plot the function and obtain some information I have two questions. I know for the fourier transform if we have time intervals of ts and N number of points, the frequency domain interval would be deltaf = 1/(N*ts). And if we have t = (0:N-1)*ts for time, we would have f = (0:N-1)*deltaf for frequency. Now, if I want to go from frequency to time are the same relations still valid? I mean the same as before if we have f = (0:N-1)*deltaf then t = (0:N-1)*ts where ts = 1/(N*deltaf) . Is that correct? Also, I do have another confusion. My function in frequency spans from 4E9 Hz to 4.5E9 Hz. So, for 500 MHz. I am wondering when I take the inverse fourier transform, how can I obtain the t domain from the given frequency domain for the inverse fourier transform function? I am asking because now there is a huge frequency diffrence between 0 and my given freuqncy range and so I should have a lot of points in my numerical calculation to show that range which is not efficient. One option is to shift the function in the frequency domain such that it is centered at zero frequency and then there would be a missing phase in the inverse fourier transform function in time domain because FF[exp(if0t)*x(t)] <---> x(f-f0) but the time domain can be obtained easily from the frequency domain.
However, if I want to avoid this strategy how can I obtain time domain from frequency domain when calculating the inverse fourier transform numerically?
I appreciate your comments on this!

Answers (1)

Ayush
Ayush on 27 Oct 2023
Hey Shaily,
I understand you want to know if the same relations hold when going from frequency to time in the inverse Fourier transform as going from time to frequency domain . You also want to know if there is more efficient method to obtain the time domain representation for a function with a large frequency difference, without requiring a high number of points in the numerical calculation.
The same relations hold true means if you have a frequency range "f = (0:N-1)*deltaf", then the corresponding time range can be obtained as "t = (0:N-1)ts", where "ts = 1/(Ndeltaf)".
In your case, with a frequency range spanning from 4E9 Hz to 4.5E9 Hz (500 MHz), there is a large frequency difference between 0 and your given range. To efficiently obtain the time domain representation without requiring a large number of points, you have a few options:
  1. Shifting the function in the frequency domain: By centering the function at zero frequency, you can reduce the range of frequencies to consider. However, this approach introduces a missing phase in the inverse Fourier transform function in the time domain.
  2. Zero-padding: Another approach is to use zero-padding techniques. By adding zeros to your frequency domain data, you can increase the number of points and achieve a finer time resolution without losing accuracy. Zero-padding does not add additional information, but it allows you to capture a wider frequency range efficiently.
By considering these strategies, you can obtain the time domain from the frequency domain when calculating the numerical inverse Fourier transform while balancing efficiency and accuracy.
Hope this helps!
Regards,
Ayush Goyal

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!