Я только начинаю учить numpy.fft
, поэтому заранее извиняюсь.У меня есть массив, состоящий из 1000 элементов 1 и 0, представляющих 1000 мс импульсного входа, состоящего из истинных и ложных.Я хотел выполнить rfft
для этого массива.Для простого примера я создал этот массив, который имеет 1 на каждый 3-й элемент и 0 в противном случае:
freq = 3
for j in range(0, 1000):
if freq != 0 and (((j + 1) % freq) == 0):
arr3hz.append(1)
else:
arr3hz.append(0)
Я ожидал, что rfft
как-то даст мне 3 Гц, я использовал этот код:
n = len(arr3hz)
d = 1 / 1000
hs = np.fft.rfft(arr3hz)
fs = np.fft.rfftfreq(n, d)
amps = np.absolute(hs)
for j in range(0, len(fs)):
fw.write("Freq: %d Amp: %f\n" % (fs[j], amps[j]))
В моем письменном файле я просто вижу элементы со случайной частотой со случайными амплитудами, которые я не смог понять.Что не так с моим использованием numpy.rfft
?Я также не был уверен, что использовать для n
и d
, а также для такого массива.