У меня есть скрипт, который принимает текстовый файл с 2 столбцами и множеством строк в качестве входных данных (значения x и y временного ряда) и вычисляет преобразование Фурье для значений y.
Скрипт в его текущей форме зависает при вычислении БПФ, т.е. после оператора печати «Вычисление БПФ ...». При выполнении в IDLE или через оболочку linux сообщение об ошибке не выдается.
Когда я выполняю ctrl-C, чтобы прервать сценарий, «файл амплитудных спектров» успешно создается и содержит данные спектров. Цикл продолжает зависать только при вычислении БПФ для следующего файла ...
Может кто-нибудь пролить свет на эту проблему?
for file in os.listdir(dir_name):
if fnmatch.fnmatch(file, '*.slice'):
infile = genfromtxt(dir_name+file, unpack=False, delimiter=',')
y = infile[:,1]
n = len(y)
k = arange(n)
T = n/Fs
frq = k/T # two sides frequency range
frq = frq[range(n/2)] # one side frequency range
print 'Computing FFT...'
Y = fft(y)/n # fft computing and normalization
print 'Computed FFT...'
Y = Y[range(n/2)]
print 'Normalised FFT range...'
print 'Creating amplitude spectra outfile...'
specarray = column_stack((frq,abs(Y)))
savetxt(dir_name+file+'.spectra', specarray, fmt='%f', delimiter=',')