У меня есть некоторый набор данных длины N
. Я хочу, чтобы окно этого набора данных через Nuttal окно . Моя текущая цель - создать массив окон длиной N
, а затем умножить его на исходный набор данных. Однако создание этого массива кажется медленным. Есть ли более умный способ сделать это?
Мой текущий подход:
def window_function(data):
#Some prefactors - not important for this question
a0,a1,a2,a3 = 0.355768,0.487396,0.144232,0.012604
N = len(data) #length of the input dataset
nuttal = np.zeros(len(data)) #an empty array which I subsequently populate
for i in range(N):
nuttal[i] =a0 -a1*np.cos(2*np.pi*i/N) + a2*np.cos(4*np.pi*i/N) -a3*np.cos(6*np.pi*i/N)
return data*nuttal
Итерация по N
для больших N особенно медленная