Python 直接傅里叶变换的最大值

Python 直接傅里叶变换的最大值,python,fft,dft,spectrum,Python,Fft,Dft,Spectrum,我有一个波形样本列表,所有值都在-1和+1之间。这些值已从音乐文件中读取。我现在会 应用直接傅里叶变换(scipy.fftpack.rfft) 通过将值除以样本数的平方根来规范化这些值 计算列表中每个项目的功率。(sqrt(real^2+imag^2)) 在所有这些之后,我可以期望在此列表中的最大值是什么?我会期望最大功率是1,因为输入数据中的最大振幅也是1。然而,这只是简单正弦波的情况。一旦我开始用真正的音乐做这些,我就会得到更高的价值 如何“规范化”获取0和1之间的值的能力?甚至有可能找出最

我有一个波形样本列表,所有值都在
-1
+1
之间。这些值已从音乐文件中读取。我现在会

  • 应用直接傅里叶变换(
    scipy.fftpack.rfft
  • 通过将值除以样本数的平方根来规范化这些值
  • 计算列表中每个项目的功率。(
    sqrt(real^2+imag^2)
  • 在所有这些之后,我可以期望在此列表中的最大值是什么?我会期望最大功率是
    1
    ,因为输入数据中的最大振幅也是
    1
    。然而,这只是简单正弦波的情况。一旦我开始用真正的音乐做这些,我就会得到更高的价值


    如何“规范化”获取
    0
    1
    之间的值的能力?甚至有可能找出最大值吗?如果不是,缩放结果的最佳做法是什么?

    如果查看直流信号
    1
    ,其DFT为
    4 0 0

    要将其标准化为[0,1],需要除以4,即点数。

    我已经在这样做了,请参见我问题中的#2。正弦波的最大值为
    1
    ,与预期值相同。如果我使用另一种波(音乐),我会得到更高的值,我想知道我能期望的最大值是多少。