Имеется массив нулей:
N = 4
h = np.zeros(shape=N)
np.angle(h)
array([ 0., 0., 0., 0.])
noise = np.fft.fft(np.random.normal(size=N))
noise * h
array([ 0.+0.j, 0.-0.j, -0.+0.j, -0.+0.j])
angle(noise * h)
array([ 0. , -0. , 3.14159265, 3.14159265])
P.S. Разумеется, задача не стоит в том, как получить массив «нулей», в реальной задаче h нулевой только в некоторой области, в которой и хочется иметь нулевой угол.
P.P.S. А вот в Matlab такого не наблюдается:
N = 400;
noise = fft(randn(1, N));
h = zeros(1, N);
y = h .* noise;
max(abs(angle(y)))
Matlab постоянно выдаёт строгий ноль.
Перемещено mono из talks