Why is the FFT of a constant returns 0 for the angle?

5 views (last 30 days)
Is there an explanation to this? Thank you in advance.
  2 Comments
Nina
Nina on 19 Feb 2013
I was not expecting anything, I was just curious about the reasons I guess...

Sign in to comment.

Accepted Answer

Wayne King
Wayne King on 19 Feb 2013
Edited: Wayne King on 19 Feb 2013
The DFT of a single constant, or a constant vector is only going to give a nonzero discrete Fourier transform coefficient at 0 frequency, the exp(-1i*2*pi*0/N), complex exponential.
Specifically, it will just be the sum of the elements in your vector. If you really meant a single constant, that is obviously equal to the constant
fft(2)
If you have a vector
x = 2*ones(10,1);
fft(x) % gives only one nonzero term (20) the sum of the element
For a real-valued signal that will always have a phase of 0 since it will be of the form
a+1i*0
where a is the sum. Note that if the input is complex-valued, the angle is the same as each of the constant inputs.
x = 2*ones(10,1)+1i*3*ones(10,1);
angle(x(1))
xdft = fft(x);
angle(xdft(1))

More Answers (1)

Matt J
Matt J on 19 Feb 2013
Edited: Matt J on 19 Feb 2013
Symmetry, for one thing. A real symmetric signal always has a real symmetric spectrum, and real-valued spectra have 0 phase.

Community Treasure Hunt

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

Start Hunting!