直接傅里叶变换的最大值

1 投票
1 回答
1288 浏览
提问于 2025-04-18 12:19

我有一组波形的样本,这些样本的值都在 -1+1 之间。这些值是从一个音乐文件中读取的。接下来,我将要:

  1. 进行直接傅里叶变换,使用 scipy.fftpack.rfft
  2. 通过将这些值除以样本数量的平方根来进行归一化。
  3. 计算列表中每个项目的功率,公式是 sqrt(real^2 + imag^2)

在完成这些操作后,我可以期待这个列表中的最大值是多少呢?我本以为最大功率应该是 1,因为输入数据中的最大幅度也是 1。不过,这种情况只适用于简单的正弦波。当我开始处理真实的音乐时,得到的值就会更高。

我该如何“归一化”功率,使其值在 01 之间呢?是否有可能找到最大值?如果不行,处理结果的最佳做法是什么?

1 个回答

2

如果你看一个直流信号 1 1 1 1,它的离散傅里叶变换(DFT)结果是 4 0 0 0

要把这个结果归一化到 [0,1] 的范围,你需要把它除以 4,也就是数据点的数量。

撰写回答