Please, help me. How can I calculate the inverse fourier transform without use the ifft function?
12 views (last 30 days)
Show older comments
Hi. I have one function in frequency domain and I have to calculate the response in the time domain. The problem is that I don't have the function in time domain to compare. I don't know what is the relationship between the vector of frequencies that I am working and the vector of time that I'll have my response. I'd like to have the response in real time and not constructed about a number of points in vector of time.
Then, I have one vector of positive frequencies and one function discretized for this frequencies and I have to transform this response to time domain.
I need help. Please, try to help me. Thanks.
0 Comments
Accepted Answer
Wayne King
on 22 Mar 2013
Edited: Wayne King
on 22 Mar 2013
If you have the discrete Fourier transform for the positive frequencies as a vector in MATLAB, then (if the signal is real-valued), you can obtain the inverse DFT. Of course you will need to know the sampling frequency to provide a meaningful time vector.
Just to show you:
Fs = 1000;
t = 0:0.001:1-0.001;
x = cos(2*pi*100*t)+randn(size(t));
xdft = fft(x);
Now I'll just pretend I'm starting with the positive frequencies of xdft
ydft = xdft(1:length(x)/2+1);
% for even length ydft
N = length(ydft);
ydft(N+1:2*N-2) = fliplr(conj(ydft(2:N-1)));
sig = ifft(ydft);
Now note that x and sig are equal
max(abs(x-sig))
More Answers (0)
See Also
Categories
Find more on Transforms in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!