Numpy FFT замораживает скрипт - PullRequest
0 голосов
/ 05 января 2012

У меня есть скрипт, который принимает текстовый файл с 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=',')
...