This original signal is shown below (time domain): enter image description here

It is a real signal. According to the signal processing theory, the form part of the angle is conjugate to that of the latter part. That is, $\sphericalangle X(e^{j\omega}) =\sphericalangle X^*(e^{-j\omega})$ when $x[n] \in \mathbb{R}$.

However, I implement X = angle(fft(x)); and plot(X) in MATLAB. The figure is shown below: enter image description here

The phase is continuous! Could anyone explain the reason? Thanks in advance!


Your real signal is a sine wave. The amplitude is smoothly shifting in a manner consistent with delay.

If you picked a signal that was real white noise, the phase would have abrupt transitions


X = angle(fft(x))

is numerically very questionable. If your signal is periodic in exactly the length of vector x you're observing, then the (theoretical) DFT would be zero in all but two bins. You can't really take the angle of $0$.

If your signal has a period that doesn't exactly fit in x, then you're observing the phase of two superimposed sinc pulses, as that's what a rectangular windowing leads to.

A sinc is for all points (but the maximum) defined as $\frac{\sin ax}{bx}$ (with $a$ and $b$ depending on who you ask and how you scale), and if you look at that, it definitely does have at least a strongly linear component.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.