0

为简单起见,假设我们有一个函数sin(x)并用它计算了 -1 和 1 之间的 1000 个样本。我们可以绘制这些样本。现在在下一步中,我们要绘制 sin(x) 的积分,即- cos(x) + C。现在我可以用我现有的样本计算积分,如下所示:

y[n] = x[n] + y[n-1]

因为它是一个累积和,我们需要对其进行归一化以在 y 轴上获得介于 -1 和 1 之间的样本。

y = 2 * ( x - min(x) / max(x) - min(x) ) - 1

为了标准化,我们需要一个最大值和一个最小值。

现在我们要计算 sin(x) 的下 1000 个样本并再次计算积分。因为它是一个累积和,所以我们将有一个新的最大值,这意味着我们需要对所有 2000 个样本进行归一化。

现在我的问题基本上是:

在不知道最大值和最小值的情况下,如何在这种情况下标准化样本?如果我有一组具有新最大​​值/最小值的新样本,我该如何防止再次标准化所有先前的样本?

4

1 回答 1

1

我找到了解决方案:)

我还想提一下:这是关于像正弦这样的周期函数,所以基本上最大值和最小值应该总是相同的,对吧?

在特殊情况下,这是不正确的:

如果您的样本不包含函数的完整周期(具有函数的全局最大值和最小值)。当您选择非常低的频率时,可能会发生这种情况。

你能做什么:

  • 只需计算频率为 1 的函数(如 sin(x))的样本。它将包含函数的全局最大值和最小值(重要的是 y 在 -1 和 1 之间变化,而不是 0 和 1!)

  • 然后用累积和计算积分。

  • 获取样本的最大值和最小值

  • 您可以按比例放大或缩小:最大/频率最小/频率

  • 现在可以用于标准化以任何其他频率计算的样本。

它只需要在开始时计算一次。

于 2021-03-04T12:06:20.297 回答