Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Help me understand FFT function (Matlab)

Tags:

matlab

fft

1) Besides the negative frequencies, which is the minimum frequency provided by the FFT function? Is it zero?
2) If it is zero how do we plot zero on a logarithmic scale?
3) The result is always symmetrical? Or it just appears to be symmetrical?
4) If I use abs(fft(y)) to compare 2 signals, may I lose some accuracy?

like image 513
Jader Dias Avatar asked Jan 11 '09 22:01

Jader Dias


1 Answers

1) Besides the negative frequencies, which is the minimum frequency provided by the FFT function? Is it zero?

fft(y) returns a vector with the 0-th to (N-1)-th samples of the DFT of y, where y(t) should be thought of as defined on 0 ... N-1 (hence, the 'periodic repetition' of y(t) can be thought of as a periodic signal defined over Z).

The first sample of fft(y) corresponds to the frequency 0. The Fourier transform of real, discrete-time, periodic signals has also discrete domain, and it is periodic and Hermitian (see below). Hence, the transform for negative frequencies is the conjugate of the corresponding samples for positive frequencies.

For example, if you interpret (the periodic repetition of) y as a periodic real signal defined over Z (sampling period == 1), then the domain of fft(y) should be interpreted as N equispaced points 0, 2π/N ... 2π(N-1)/N. The samples of the transform at the negative frequencies -π ... -π/N are the conjugates of the samples at frequencies π ... π/N, and are equal to the samples at frequencies π ... 2π(N-1)/N.

2) If it is zero how do we plot zero on a logarithmic scale?

If you want to draw some sort of Bode plot you may plot the transform only for positive frequencies, ignoring the samples corresponding to the lowest frequencies (in particular 0).

3) The result is always symmetrical? Or it just appears to be symmetrical?

It has Hermitian symmetry if y is real: Its real part is symmetric, its imaginary part is anti-symmetric. Stated another way, its amplitude is symmetric and its phase anti-symmetric.

4) If I use abs(fft(y)) to compare 2 signals, may I lose some accuracy?

If you mean abs(fft(x - y)), this is OK and you can use it to get an idea of the frequency distribution of the difference (or error, if x is an estimate of y). If you mean abs(fft(x)) - abs(fft(y)) (???) you lose at least phase information.

like image 129
Federico A. Ramponi Avatar answered Sep 30 '22 16:09

Federico A. Ramponi