ifft and fft problem

3 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)

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by