8
\$\开始组\$

我有一个关于理想正弦波DFT的问题。

这是我用韵律模拟的结果。

我分析了一个理想的正弦波(来自vsin源),并将其通过带有hanning窗口的dft计算器函数。对于理想的正弦波,我应该只看到信号分量。然而,除了三个信号箱之外,我还有很多音调。尽管这些音调的值很小,但我仍然想知道为什么它们会出现理想的正弦波(它们不应该出现)。

非常感谢你,

肯尼在此处输入图像描述

\$\端组\$
0

5个答案5

重置为默认值
21
\$\开始组\$

你说你有一个理想的正弦波。但你呢?你可能只有一个很好的近似值。取决于它是32位还是64位实数,您最多只能在第24位或第56位的最低有效位位置有量化噪声。这将导致宽带噪声。计算出预期的噪声功率,并将其与观察到的噪声地板进行比较。

您会注意到,观察到的噪声底线高于输入量化水平。这有两个原因。

  1. 你使用的是一个窗口,比如汉宁。在理想情况下,所有DFT窗口的“噪声增益”都为几分贝。窗口越窄,噪声增益就越大。

  2. 窗乘法和DFT运算使用的算法将在每个阶段引入量化噪声。中间计算的处理不仅取决于(几乎总是与IEEE754兼容的)硬件,还取决于软件的使用方式。虽然某些硬件在中间阶段能够保持80位的精度,但许多实现仅在硬件中保持64位,当以64位实数保存回内存时,只有56位。

您需要研究所使用的DFT算法的细节、运行的硬件、编译器标志的影响,以找出最终DFT中每增加一分贝的噪声。

\$\端组\$
  • \$\开始组\$ 你好,Neil_UK,非常感谢你的回答。我很感激。我可以用我自己的话重述一遍吗?让你看看我是否理解正确?正弦波(来自Cadence电压源)在其dft上有许多杂音的原因是,来自理想源的正弦波只是“真实理想”正弦波的近似值,因为计算机只能存储32位或64位细节(有限)。因此,正弦波中存在量化误差,导致音调出现在其dft上。由于许多因素,噪声下限可能高于理论值。 \$\端组\$ 评论 5月31日14:56
  • \$\开始组\$ @肯卢修斯是的,原始样本上的量化噪声形成了你可能看到的噪声的下限。从窗口到FFT本身,所有中间操作中存在的量化噪声可能对最终噪声有较大贡献。 \$\端组\$
    – 尼尔_UK
    评论 5月31日15:34
  • \$\开始组\$ 非常感谢您的帮助:) \$\端组\$ 评论 6月2日11:18
13
\$\开始组\$

图中的噪声底线大约为-190…-200dB,这只是计算中舍入误差和其他噪声源的结果。我猜它使用的是浮点数学,它没有无限精度,所以它引入了量化噪声。固定点有固定的数量,但浮点没有,所以很难计算。它体现在FFT、正弦波生成、窗口计算等方面。

即使是时间轴也会有量化误差,例如,双精度无法准确编码“0.001”,因此如果使用毫秒时间步长,而不是0.001,则实际会得到0.0010000000000002081668171172168513294309377670,然后一些。。。

\$\端组\$
  • 1
    \$\开始组\$ 嗨,波布路克斯,非常感谢你的回答。我现在明白了。我看到正弦波dft上有很多音调的原因是正弦波的量化噪声(由于精度有限,近似于理想正弦)以及窗口和dft等计算的噪声。是否正确:) \$\端组\$ 评论 5月31日15:05
  • \$\开始组\$ 是的,就是这个主意! \$\端组\$ 评论 5月31日16:59
  • \$\开始组\$ 非常感谢你! \$\端组\$ 评论 6月2日11:11
9
\$\开始组\$

TL;DR:你需要象征性地做DFT,才能得到确切的值。

“完美”正弦函数值的恰当术语是准确的正弦函数的值。

正弦函数的大多数值都是无理数,因此无论选择哪种基数,都无法用数字精确表示。

如果你以符号方式进行DFT,如果使用Mathematica之类的工具很费时,那当然是可能的,你会得到一个精确振幅的峰值,而在其他地方会得到精确的零,因为符号计算可以精确地用于某些问题,而某些函数的DFT恰好是一个。事实上,正弦波和的DFT很容易在课堂上的黑板上完成。涉及更多的函数需要更长的时间,或者没有初等函数的精确解。

\$\端组\$
6
\$\开始组\$

在dB(对数)标度上,不可能精确地表示零振幅。它将是“负无穷分贝”

如果你切换到线性比例,你会得到一个平坦的零层和一个在任何合理分辨率下的峰值。

另一方面,你的“噪音底线”远低于-180dB。这意味着您的计算噪音(量化、舍入、抖动等)非常低。

我不知道现实世界中的电路有这样的噪声级。

\$\端组\$
2
\$\开始组\$

因为它只是一个单一的尖峰,它需要无限的时间。正弦波的时间范围基本上是一个平方函数-如果你从负无穷大到无穷大采样,你会留下一个尖峰/峰值。此外,正如另一个答案所述,离散形式具有有限的步长/分辨率,这些是将影响精细DFT的不连续性。

\$\端组\$
2
  • \$\开始组\$ 错了。FT已经将输入信号视为从负无穷大到正无穷大永远重复。 \$\端组\$ 评论 5月24日12:49
  • 4
    \$\开始组\$ @退出反犹太主义除非正弦波有一个与窗口相称的周期,否则窗口宽度的周期实际上是不连续的。避免这种情况的频率集的测量值为零。。。 \$\端组\$ 评论 5月24日13:55

您的答案

单击“发布您的答案”,表示您同意我们的服务条款并确认您已阅读我们的隐私政策.

不是你想要的答案吗?浏览标记的其他问题问你自己的问题.