Borrar filtros
Borrar filtros

Interpolation in time-domain vs frequnecy domain

7 visualizaciones (últimos 30 días)
Rene Riha
Rene Riha el 11 de Feb. de 2018
Editada: Rene Riha el 11 de Feb. de 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.

Respuestas (1)

Image Analyst
Image Analyst el 11 de Feb. de 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 comentario
Rene Riha
Rene Riha el 11 de Feb. de 2018
Editada: Rene Riha el 11 de Feb. de 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.

Iniciar sesión para comentar.

Categorías

Más información sobre Fourier Analysis and Filtering en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by