The difference between the obtained result using fftshift when employing the ifft() function

4 visualizzazioni (ultimi 30 giorni)
I am trying to calculate the inverse fourier transform of a function using ifft(). I have noted some differences in the result with and without using the fftshift of the ifft result. I am trying to calculate the output pulse from a system and still not sure which of the answers are acceptable. I have attached the relevant code.
Without fftshift this is the answer for the output:
where the pulses on the left and right are:
Now if I use the fftshift for the result of ifft function I see only one pulse in the middle (the small chunk on the right is gone):
and if I zoom in I see:
Now, I am wondering is there a differemce bewtween these two results? In other words does the small chunk I see on the right of the first figure matter? If I am looking for the output from my system which of these two answers are more reliable (with or without using fftshift)? Also, if I write a code for the inverse Fourier transform myself do I still see that small chunk?
I appreciate your comments.

Risposta accettata

Walter Roberson
Walter Roberson il 18 Apr 2023
Spostato: Walter Roberson il 18 Apr 2023
In the original, on the right we see a large pulse, then left of that is a smaller pulse, and left of that is a pretty small pulse, and then (it looks like) nothing until the axis.
With the shifted version, the large pulse has three smaller pulses to the left of it.
The pulses to the right have not "disappeared": they have been moved to left of centre.
fftshift / ifftshift effectively just cut the plot in two and move the right side to be left of the other side.
x = linspace(0,1,100);
plot(x, 'displayname', 'original');
ix = fftshift(x);
hold on
plot(ix, 'displayname', 'shifted');
hold off
legend show
  3 Commenti

Accedi per commentare.

Più risposte (0)

Community Treasure Hunt

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

Start Hunting!

Translated by