Filter löschen
Filter löschen

Interpolation in time-domain vs frequnecy domain

7 Ansichten (letzte 30 Tage)
Rene Riha
Rene Riha am 11 Feb. 2018
Bearbeitet: Rene Riha am 11 Feb. 2018
Hello, could you tell me or explain where is the difference between fft and ifft code when I use fft(x, n) with zero-padding to index n to interpolate frequency domain, but to interpolate time-domain I have to use ifft(ifftshift(padarray((fftshift(X)), [0 n/2]))) (with n/2 zeros on both sides of vector) to get right results? Why ifft(X, n) is not working? Thanks for your answers.

Antworten (1)

Image Analyst
Image Analyst am 11 Feb. 2018
You don't have to. You don't have to use padarray and fftshift at all. Just doing a round trip of fft() and ifft() should get you the original vector x. Shifting is only needed if you want to visualize the zero frequency at the middle of your vector instead of at the first element. If you want, you could keep a separate copy, X_shifted, just for display but do all your computations on the original X.
  1 Kommentar
Rene Riha
Rene Riha am 11 Feb. 2018
Bearbeitet: Rene Riha am 11 Feb. 2018
But I was interesting rather in interpolation problem. When I use command ifft(X, n) I get this obviously wrong result.
But when I write ifft(ifftshift(padarray((fftshift(X)), [0 n/2]))) the results are what I would expect (a sinusoid).
The principal idea is why I can't pad with n zeros before ifft operation at the end of array as in fft, but I have to pad with n/2 zeros at the both ends after fftshift, again ifftshift padded array and finally perform ifft operation.

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Fourier Analysis and Filtering finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by