直接傅里叶变换的最大值
我有一组波形的样本,这些样本的值都在 -1
到 +1
之间。这些值是从一个音乐文件中读取的。接下来,我将要:
- 进行直接傅里叶变换,使用
scipy.fftpack.rfft
。 - 通过将这些值除以样本数量的平方根来进行归一化。
- 计算列表中每个项目的功率,公式是
sqrt(real^2 + imag^2)
。
在完成这些操作后,我可以期待这个列表中的最大值是多少呢?我本以为最大功率应该是 1
,因为输入数据中的最大幅度也是 1
。不过,这种情况只适用于简单的正弦波。当我开始处理真实的音乐时,得到的值就会更高。
我该如何“归一化”功率,使其值在 0
到 1
之间呢?是否有可能找到最大值?如果不行,处理结果的最佳做法是什么?
1 个回答
2
如果你看一个直流信号 1 1 1 1
,它的离散傅里叶变换(DFT)结果是 4 0 0 0
。
要把这个结果归一化到 [0,1] 的范围,你需要把它除以 4,也就是数据点的数量。