Does the inverse continuous time Fourier transform exist for a Dirac delta (A single causal/non-causal spike)?
-
1$\begingroup$ See the answers to a related recent question on math.SE which will also tell you how to use tables of common Fourier transform pairs with respect to the radian frequency variable $\omega$ radians/second to obtain Fourier transform pairs with respect to frequency variable $f$ in Hertz. For the particular case of impulses in time or frequency, the key is the sifting property: $$\int_{-\infty}^{\infty} x(y) \delta(y-a)\mathrm dy = x(a) ~ \text{if}~x(y)~\text{is continuous at}~a.$$ $\endgroup$– Dilip SarwateCommented Feb 22, 2012 at 18:30
2 Answers
Yes, this is a complex exponential $e^{2 \pi i f_0 t}$, at a frequency determined by the delta's "position" $f_0$ (your input being $\delta(f - f_0)$). Write the integral for the inverse Fourier transform, use the definition of $\delta$ and you'll see it "selects" at this particular frequency the complex exponential being integrated.
-
1$\begingroup$ This is a very important transform that is often found in a table of common Fourier transforms like this one. $\endgroup$– Jason RCommented Feb 22, 2012 at 14:26
As a side note: forward and inverse Fourier Transform are mostly the same thing. For example a rectangle in one domain corresponds to a sin(x)/x in the other domain (regardless whether it starts in time or frequency). The same goes for a delta: impulse in one domain corresponds to a complex exponential in the other.
You can implement an inverse FFT (based on a forward FFT) as follows:
- take the conjugate
- forward FFT
- take the conjugate again
- divide by length of the sequence
In Matlab that would look like this
n = 1024;
x0 = randn(n,1) + j*rand(n,1); % random sequence
fx = fft(x0); % take the FFT
x1 = conj(fft(conj(fx)))/n; % inverse fft based on fw fft
% print an error metric how close we got to the orginal signal
fprintf('Error = %6.2f dB\n', 10*log10(sum( (x1-x0).* conj(x1-x0))./sum(x0.*conj(x0))));
-
$\begingroup$ I wouldn't include step #4 in your list above, as it won't necessarily be the case. There is no single agreed-upon notion of how scaling is handled in the DFT/IDFT. What you indicated does work with MATLAB's implementation, but it's possible that another would not require the division by $N$. $\endgroup$– Jason RCommented Feb 23, 2012 at 14:02
-
1$\begingroup$ That's true. Matlab's scaling is probably the most common (and seen in most textbooks). 1/sqrt(N) for both forward and inverse would be better is it ensure the cleanest version of Parseval's theorem, i.e energy in the time domain equals energy in the frequency domain. $\endgroup$– HilmarCommented Feb 24, 2012 at 0:03