我有一个脚本,它接受一个包含2列和多行作为输入的文本文件(时间序列的x和y值),并计算y值的傅里叶变换。
当计算FFT时,即当前形式的脚本挂起 - 即在'计算FFT ...'打印语句之后。在IDLE或Linux shell中执行时,不会给出错误消息。
当我使用ctrl-C来中断脚本时,“振幅光谱输出文件”已成功创建并包含光谱数据。在为下一个文件计算FFT时,循环仅继续挂起......
有人能解释一下这个问题吗?
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=',')