def quad_fourier(filtered_enb):
"""
Integrate fft function for fixed period
filtered_enb - info about entropy blocks (size, entropy, shift)
"""
x = np.linspace(-pi_range, pi_range)
y = 0.0
period_length = 10000.0
if len(filtered_enb) == 1 and filtered_enb[0][2] == 8.0:
return 0, 0
for i in range(len(filtered_enb)):
m = 1
if i % 2 != 0:
m = -1
block_length = abs(filtered_enb[i][1] - filtered_enb[i][0])
if block_length == 0: continue
T = block_length / period_length
y += m * filtered_enb[i][2] * \
np.sin(x * ((2 * np.pi) / T) + block_length / period_length)
yf = fft(y)
return integrate.quad(lambda a: yf[a], -pi_range, pi_range)
评论列表
文章目录