我按照教程在这里生成信号的频谱,为了测试,我生成了一个频率为的正弦信号。这导致了下图中的时域:
当我将其转换为频域时,我得到:
我现在的问题是:
- 为什么背景噪音的形状像现在这样?
- 我本来预计会有更均匀的噪音,或者更确切地说是线性形状的噪音。这种形状从何而来?
关于技术数据的编辑:
- 采样率为,应该足够了
- FFT长度与信号长度相同,即1323000点。
我按照教程在这里生成信号的频谱,为了测试,我生成了一个频率为的正弦信号。这导致了下图中的时域:
当我将其转换为频域时,我得到:
我现在的问题是:
关于技术数据的编辑:
首先,看看你所谓的背景噪音的力量:
它比峰值功率低 -150 dB 到 -120 dB。这意味着这些 FFT 点的幅度在主峰值幅度
到处都在尖叫“数字不准确”:
假设您的 FFT 是使用 32 位 IEEE754 浮点数实现的,您必须意识到对于 FFT 输出的每个点,至少有一个 FFT 长度的加法量以非常有限的数值精度发生。
现在你的 FFT 有很大的长度;加法使最稳定的算法崩溃。有关常用 FFT 算法的误差分析的一些详细信息,请参阅 [1]。
查看 DFT 矩阵以了解这些值如何产生的概念:对于频谱峰值的频率,将信号周期 ( ) 间隔样本相加; 因为它们总是具有相同的值(“周期”的定义),所以结果很大;对于所有其他人,应该相互抵消。例如,处的 bin总是将相同的绝对值相加,但符号交替。对于其他箱,您只需从正弦中获取值并将它们相加。现在发生的情况是,由于有限的浮点数学运算,当您将一个大数和一个小数相加,然后再次减去大数时,您将不会得到与原来相同的小数 - 精度会随着数量级而降低!
现在,FFT 是一种在这方面非常有弹性的算法(因为它不会尝试一次将所有 FFT 长度值相加),但是算法只能在给定机器上实现这么多的稳定性。
我本来预计会有更均匀的噪音,或者更确切地说是线性形状的噪音。
为什么?如果有的话,您正在观察 FFT 的缺陷与输入信号相关的过程。那样的东西不会有“白色”PSD!请记住,过程的 PSD 是其自相关的傅里叶变换;在你的情况下,似乎在更高的频率有更多的自相关。
帮您理解一下,并在输入中添加一些尽可能好的白高斯噪声,可能正弦幅度的方差为,然后再次执行您的 mag squared FFT . 您会在预期的位置看到本底噪声,并且它是平坦的,因为(主要)噪声源实际上是白色的,并且没有强相关性。
另外,您的FFT 真的没那么有用,除非你真的需要一个频率分辨率(我敢怀疑)。尝试使用较短的信号片段!
[1] Tasche, M. 和 H. Zeuner,快速三角变换的舍入误差分析,应用数学分析计算方法手册,G. Anastassiou(编辑),Chapman & Hall/CRC,Boca Rota,2000 , 357–406。