Python np.fft.irfft()中的归一化因子是什么?

Python np.fft.irfft()中的归一化因子是什么?,python,numpy,fft,Python,Numpy,Fft,我正在使用np.fft.irfft()作为计算Wigner分布程序的一部分。因为我不想要fft的标准化版本,所以我需要标准化因子来“撤销”标准化 np.fft.irfft()的归一化因子是什么?我相信numpy.fft.irfft的范数在数组长度上是1。要看下面的程序: import numpy as np t = np.array([0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

我正在使用
np.fft.irfft()
作为计算Wigner分布程序的一部分。因为我不想要fft的标准化版本,所以我需要标准化因子来“撤销”标准化


np.fft.irfft()的归一化因子是什么?

我相信
numpy.fft.irfft
的范数在数组长度上是1。要看下面的程序:

import numpy as np

t = np.array([0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0])
x = np.fft.irfft(t)

print  "Array length: ", len(t), "\t 1/n: ", 1.0/float(len(t)), "\t max x val: ", max(x)


x1 = np.array([0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0])

t1 = np.fft.rfft(x1)

print  "Array length: ", len(t1), "\t 1/n: ", 1.0/float(len(t1)), "\t max t1 val: ", max(t1)
这将产生:

Array length:  128   1/n:  0.0078125     max x val:  0.00787401574803
Array length:  65    1/n:  0.0153846153846   max t1 val:  (1+0j)

由此我相信irfft的范数是1/n,而rfft的范数是1。这与此一致(请参阅实现细节)。

如果您的答案不在这里:,您可能需要查看源代码,或者设计一些测试用例。逆FFT应该有一个1/N项,它是这样的,并且
x==rfft(irfft(x))
。当您进行正向FFT时,您会得到一个预期的DC项,即输入的总和,如果逆项使您回到原始值,则必须只有1/N“归一化”。您不应该查看
x
的总和,而不是最大值吗?