ifft and fft problem

2 vues (au cours des 30 derniers jours)
J J
J J le 22 Juil 2012
Hi all, this is probably very trivial but I am not understanding what the source of discrepancy is:
I have a gamma distribution (h1), I take its fft and then ifft. I should get the same thing (h1), but there is a factor 2 difference. Why?
k1 = 3; theta1 = 3;
% sparse sampling
dts = 1;
ts = (0:dts:359); % time
Ts = length(ts);
fs_s = 1/dts; % sampling frequency
dfs = fs_s/Ts;
f_s = (-fs_s/2:dfs:fs_s/2-dfs); % frequency
h1_s = (1/gamma(k1)) .* (ts.^(k1-1)) .* exp(-ts/theta1)/(theta1^k1);
h1_s_FT = dts*fftshift(fft(h1_s));
h1_s_hat = abs(f_s.*ifft(ifftshift(h1_s_FT)));
figure; plot(ts,h1_s,ts,h1_s_hat,'r')
I am missing a factor 2 somewhere. Thanks.
  1 commentaire
J J
J J le 22 Juil 2012
Note that the real and imaginary fft plots look correct. So I guess there is something about ifft that I am missing.

Connectez-vous pour commenter.

Réponse acceptée

Dr. Seis
Dr. Seis le 23 Juil 2012
Modifié(e) : Dr. Seis le 23 Juil 2012
Did you mean to use "fs_s" instead of "f_s" here:
h1_s_hat = abs(fs_s.*ifft(ifftshift(h1_s_FT)));
I guess that's why you needed ".*" instead of "*" to get it to work.
  1 commentaire
J J
J J le 23 Juil 2012
oh!

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Fourier Analysis and Filtering dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by