假设我有sig一个 .wav 文件形式的信号,我已经读取了该文件,现在我有一个该音频的样本数组,之后我对该数组执行了 FFT 并得到了一个复杂的数组数字,那将是fft,它由正值和负值组成。之后,我ps使用以下公式计算了功率谱:
ps[a] = sqrt(fft[a].real^2 + fft[a].imag^2)。
所以,基本上流程是这样的:sig fft ps. 现在,问题是:我可以倒退吗,意思是:ps fft sig?
假设我有sig一个 .wav 文件形式的信号,我已经读取了该文件,现在我有一个该音频的样本数组,之后我对该数组执行了 FFT 并得到了一个复杂的数组数字,那将是fft,它由正值和负值组成。之后,我ps使用以下公式计算了功率谱:
ps[a] = sqrt(fft[a].real^2 + fft[a].imag^2)。
所以,基本上流程是这样的:sig fft ps. 现在,问题是:我可以倒退吗,意思是:ps fft sig?
不,功率谱只保存了 DFT 信号所保存的信息的一半,它保存了原始音频信号所保存的所有信息。
可悲的是,那一半很重要,重建是不可能的。您可能会想出一个估计器,通过执行幅度平方来“猜测”您丢失的相位信息,但在一般情况下它不会恢复原始信号。我不知道有任何此类估算器可以做一些有用的事情。
简而言之:您可以反转 DFT,这是一个可逆操作。您无法恢复计算复数的幅度平方——这是一个不可逆的操作,因此,您无法从 PSD 估计中恢复原始信号。
为了说明这一点:
想象一下你录制了一小时(假设从到 $t=1800) 的完美静音,中间是一秒钟的纯 100 Hz 正弦音。
其 DFT 非常简单:在时域中,它是一个正弦(无限)乘以一个单位矩形窗口。我们知道它的范围;它是正弦傅里叶变换的卷积(狄拉克与“面积”在正频率,和在负频率处)与矩形窗口的傅里叶变换卷积(总是按比例缩放的)功能)。因此,我们知道该记录的 DFT 必须是两个移位 sinc 的总和,其中一个在频率轴上被“镜像”。
现在,我们仅通过逐点计算幅度平方来估计 PSD,我们最终会得到看起来像正负频率上的两个正块的东西。出于显而易见的原因,它与幅度轴对称。我们称 DFT,这给我们留下了 PSD 估计
我们现在决定音调的 1 不应该在,但让我们说; 现在,我们不再重新计算整个频谱,而是应用傅里叶变换的时移特性:时域偏移是与在频域。这样,我们只需要在频域中乘以这个函数。
瞧!让成为我们的频谱,并且是我们的 PSD 估计值。观察到与复杂的调制xponential 不会改变幅度平方 - 因此,您无法仅从 PSD 判断时间变化。