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

2 次查看(过去 30 天)
Is there an explanation to this? Thank you in advance.

采纳的回答

Wayne King
Wayne King 2013-2-19
编辑:Wayne King 2013-2-19
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))

更多回答(1 个)

Matt J
Matt J 2013-2-19
编辑:Matt J 2013-2-19
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!

Translated by