Я пытаюсь рассчитать фазовый спектр синусоиды.Следующий код генерирует синусоиду 1 Гц с нулевой начальной фазой.
import numpy
from numpy import pi, sin, arange
from pylab import plot, show, xlabel, ylabel, xlim, grid
sampling_rate = 500
sampling_time = 1 / sampling_rate
length = 1 # in seconds
n = sampling_rate * length # number of points
time = arange(0, n * sampling_time, sampling_time)
# Generate sinusoid: frequency=1Hz, phase=0
signal = sin(2 * pi * time)
fft = numpy.fft.fft(signal)
fft_phase = numpy.angle(fft)
fft_freq = numpy.arange(n) * sampling_rate / n
plot(fft_freq, fft_phase)
ylabel("FFT Angle")
xlabel("Frequency (Hz)")
xlim(left=0, right=5)
grid(True)
show()
Но результат не соответствует моим ожиданиям.Он имеет ненулевую фазу с частотой 1 Гц:
![enter image description here](https://i.stack.imgur.com/OUcXL.png)
Показывает неправильную фазу гармоники 1 Гц.Что не так с кодом (или подходом)?