Please, help me. How can I calculate the inverse fourier transform without use the ifft function?
2 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
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 Commenti
Risposta accettata
Wayne King
il 22 Mar 2013
Modificato: Wayne King
il 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))
Più risposte (0)
Vedere anche
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!